diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ee16e2e8fd047e58a9e2ffdbfc63a75e4f0c6209..1b93b8504a418a7b753e2287fdd1fd06710de0f0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<manifest android:hardwareAccelerated="true" android:versionCode="104018" android:versionName="1.4.18" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
+<manifest android:hardwareAccelerated="true" android:versionCode="104019" android:versionName="1.4.19" package="fr.duniter.cesium" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
     <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
     <uses-permission android:name="android.permission.INTERNET" />
     <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
diff --git a/assets/www/config.js b/assets/www/config.js
index 750c7566a722be75d513a52c0510a86071dcfe18..0c493fb90bb97370011f83925ec6a923a21a6f32 100644
--- a/assets/www/config.js
+++ b/assets/www/config.js
@@ -86,8 +86,8 @@ angular.module("cesium.config", [])
 			"defaultCountry": "France"
 		}
 	},
-	"version": "1.4.18",
-	"build": "2019-12-28T12:21:25.417Z",
+	"version": "1.4.19",
+	"build": "2020-01-03T21:08:16.367Z",
 	"newIssueUrl": "https://git.duniter.org/clients/cesium-grp/cesium/issues/new"
 })
 
diff --git a/assets/www/dist_css/cesium-136da7166b.css b/assets/www/dist_css/cesium-5af6568327.css
similarity index 85%
rename from assets/www/dist_css/cesium-136da7166b.css
rename to assets/www/dist_css/cesium-5af6568327.css
index 21612dc1389f450c674acbc70eb7a1476e1bf549..16c50371b50e75045e58005b880be58f57d1e4da 100644
--- a/assets/www/dist_css/cesium-136da7166b.css
+++ b/assets/www/dist_css/cesium-5af6568327.css
@@ -22,4 +22,4 @@
  * https://github.com/fians/Waves/blob/master/LICENSE 
  *
  */
-.ink{cursor:pointer}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.popup .button{cursor:pointer}.ink-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.ink-button,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;font-size:14px;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text,.button-text:link,.button-text:visited,.ink-button-input{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text:link,.button-text:visited,.ink-button-input{font-size:14px}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-100"]>.ink-ripple,[class$=-clear]>.ink-ripple,[class$=-light]>.ink-ripple,[class$=-stable]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:"RobotoDraft","Roboto","Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none;padding:0}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{top:0}.title-left,.title-right,.title.title-left,.title.title-right{left:48px}.button-positive,.positive-bg{background-color:#3f51b5;color:#fff}.button-text{background-color:#3f51b5}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3f51b5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1a237e;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#c5cae9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196f3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0d47a1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#bbdefb;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673ab7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311b92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#d1c4e9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4caf50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1b5e20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#c8e6c9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#ff9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#e65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#ffe0b2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#f44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#b71c1c;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#ffcdd2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#e0e0e0;color:#fff}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3f51b5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#c5cae9}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0d47a1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#bbdefb}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673ab7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311b92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#d1c4e9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4caf50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1b5e20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#c8e6c9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#ff9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#e65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#ffe0b2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#f44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#b71c1c}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#ffcdd2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#e0e0e0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#bfd5c9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.item,.item-complex .item-content,.item-radio .item-content,.menu{background-color:transparent}.bar .button.button-clear,.bar .button.button-text,.dark-bg h2,.item.dark-bg h2,.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p{color:#fff}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover,.popover.ng-enter,.popover.ng-leave{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popover{position:absolute;right:8px;top:8px}.popover.ng-enter,.popover.ng-leave{opacity:1;transform:translate(0,-14px) scale(1,1)}.popover,.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0)}.button{overflow:hidden!important}@font-face{font-family:"Cesiumicons";src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:"Cesiumicons";speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color 100ms linear;-moz-transition:background-color 100ms linear;-o-transition:background-color 100ms linear;-ms-transition:background-color 100ms linear;transition:background-color 100ms linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-pop,.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms}.digit-keyboard.animation-slide-up{transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}@media screen and (max-width:400px){@-ms-viewport{width:320px}}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}}@media screen and (max-width:767px){.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:768px){.item-toggle .toggle{right:32px}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:991px){body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (min-width:992px){body{cursor:inherit}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:767px){.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.hidden-menu,.visible-nomenu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid gray;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item.unread,.popover-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .item-avatar,.popover-notification .item-avatar{padding:12px 10px 8px 76px;min-height:80px!important}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,#menu .footer .view-notification ion-item h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-wallets .item-avatar{padding-left:95px!important}#menu .footer .popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar #menu .footer .icon-help:last-child,.popover-wallets .item-avatar .icon-alert:last-child,.popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar .icon:last-child{display:none}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:gray!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center}#home .center,#home .center .button{display:inline-block}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.gray b,.popover-helptip .button-close,.popover-helptip .button-close b,.popover-share .bar-footer .button-close,.popover-share .bar-footer .button-close b,.popover-share .bar-header span,.popover-share .bar-header span b{color:gray!important}#home h4 a,.gray a,.gray a:hover,.gray a:visited,.icon-help a,.icon-help a:hover,.icon-help a:visited,.popover-helptip .button-close a,.popover-helptip .button-close a:hover,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a,.popover-share .bar-header span a:hover,.popover-share .bar-header span a:visited,.positive a,.positive a:hover,.positive a:visited,.text-editable:hover a,.text-editable:hover a:hover,.text-editable:hover a:visited{color:inherit}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}body{--refresher-bg-height:100px;--refresher-background-color:inherit}.refresher-positive-900-bg{--refresher-background-color:#1a237e}.refresher-dark-100-bg{--refresher-background-color:#555}.platform-android .refresher-dark-100-bg:before,.platform-android .refresher-positive-900-bg:before{background-color:var(--refresher-background-color);position:absolute;display:block;top:0;width:100%;height:var(--refresher-bg-height,100px);z-index:-10;content:" "}.platform-android .scroll-refresher{z-index:50}.platform-ios .refresher-dark-100-bg,.platform-ios .refresher-positive-900-bg{background-color:var(--refresher-background-color)!important}.platform-ios .refresher-dark-100-bg .scroll,.platform-ios .refresher-positive-900-bg .scroll{background-color:#fff;bottom:auto;min-height:100%}#home h4,.refresher-dark-100-bg .scroll-refresher .ionic-refresher-content,.refresher-light .scroll-refresher .ionic-refresher-content,.refresher-positive-900-bg .scroll-refresher .ionic-refresher-content{color:#fff}.refresher-dark-100-bg .scroll-refresher .spinner,.refresher-light .scroll-refresher .spinner,.refresher-positive-900-bg .scroll-refresher .spinner{stroke:#fff;fill:#fff}.view-wallet{--refresher-bg-height:200px}.view-wallet .hero{height:200px}.view-wallet .hero h4:after{content:' ';display:inline-block}.view-wallet .item-text-wrap{white-space:normal!important}.view-wallet .item .comment{font-style:italic!important}.popover-helptip .view-wallet .item h3 .button-close,.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .list .item span,.view-wallet-tx .list .item span{display:inline}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}.view-identity .qrcode,.view-wallet .qrcode{position:absolute;display:block;top:0;right:0;width:0;height:0;background:#fff;z-index:1;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important;overflow:hidden}.view-identity .qrcode img,.view-wallet .qrcode img{display:float;float:right;width:0;height:0;z-index:1;transition:all .5s ease-out!important}.view-identity .qrcode.on,.view-wallet .qrcode.on{width:50px;height:50px;padding:3px;margin:7px}.view-identity .qrcode.on img,.view-wallet .qrcode.on img{width:44px;height:44px}.view-identity .qrcode.on.active,.view-wallet .qrcode.on.active{margin:0!important;padding:10px;width:200px;height:200px}.view-identity .qrcode.on.active img,.view-wallet .qrcode.on.active img{width:180px;height:180px}@media screen and (max-width:991px){.view-identity .hero.hero-qrcode-active h1,.view-identity .hero.hero-qrcode-active h2,.view-identity .hero.hero-qrcode-active h3,.view-identity .hero.hero-qrcode-active h4,.view-identity .hero.hero-qrcode-active h5,.view-identity .hero.hero-qrcode-active i.avatar,.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i.avatar{margin-right:200px}}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet-tx{--refresher-bg-height:100px}.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx{--refresher-bg-height:140px}.view-wallet-tx .hero{height:140px}}.view-wallet-tx .item-text-wrap{white-space:normal!important}.view-wallet-tx .item .comment{font-style:italic!important}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx{border-top:solid 1px #d3d3d3!important;padding-bottom:6px;padding-top:8px;margin:0!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.item-tx .badge{right:1%!important;top:13px}.item-tx .badge-white{background-color:#fff}.item-tx .vertical-center{position:absolute;top:30%;width:40%}.item-tx .width-cup{width:175px}.expert-mode .item-tx .item-note{top:8%}.expert-mode .item-tx .badge-secondary{top:calc(8% + 23px)!important}.view-identity{--refresher-bg-height:200px;--refresher-background-color:#555}.view-identity .member{--refresher-background-color:#1a237e}.view-identity .hero{height:200px;background-color:var(--refresher-background-color)}.card .card-header{font-size:90%;opacity:.8;filter:alpha(opacity=80)}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .card-header{padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#d9d9d9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important;margin-bottom:1px}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.item-avatar,.lookupForm .list .item.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#d9d9d9;background-color:#f8f8f8;border:solid 1px #d9d9d9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em,.view-messages .list .item h2.unread{font-weight:700!important}@media screen and (max-width:991px){.item .badge{right:16px}}@media screen and (min-width:992px){.list .item.item-border-large{margin-bottom:1px;border-bottom:solid 1px #ccc!important}.list.item-border-large .item{border-bottom:solid 1px #ccc!important;margin:0 0 1px}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important;margin-bottom:1px}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item.item-button-right .badge,.item.item-icon-right .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.item h2 .text-editable:hover:after{font-size:14px}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#d9d9d9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.text-italic{font-style:italic!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1a237e;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:gray!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#d9d9d9;background-color:#e0e0e0;border:solid 1px #d9d9d9}.icon-alert,.icon-help{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center,div[dropzone]{text-align:center}.helptip-anchor-left,div[dropzone] .item,div[dropzone] .list .item{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px;border:solid 1px #d9d9d9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable,.view-messages .list .item h2.read{color:#444!important}.bar-header .button-icon .avatar{border:solid 1px #d9d9d9;height:31px;width:31px;position:relative;left:0;top:6px}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding:3px 8px}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{line-height:14px;margin:0;padding:0}.ion-spinner-small,.ion-spinner-small svg{height:14px;width:14px}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;font:20pt 700;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1a237e!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}@media screen and (max-width:767px){.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0}.buttons-tabs .button.button-tab{padding:2px 10px 0!important}}#newAccount h1{font-size:25px;margin-top:30px}.badge sub,.badge sup{line-height:inherit}#home h1,#home h2{padding-top:15px;text-align:center}#home h2{font-size:22px;padding-bottom:15px;color:#fff}#home .footer .title{padding-top:0;font-size:14px;color:gray}#modal-license{color:#000}.bar .button.button-clear{font-size:12px!important;font-weight:300!important;width:initial!important;min-width:44px!important;max-width:90px!important}.bar .button.button-clear:first-child{margin-left:5px}.popup-buttons .button{padding:0 2px!important}#composeMessage .list .item,#transfer .list .item,.list .item-input,.popover .list .item{border-bottom:solid 1px #ccc}#transfer .list .item.item-no-border{border-bottom:0}#transfer .item.item-icon-right input{padding-right:50px!important}.menu .avatar{height:88px;width:88px}.center{text-align:center}.col-pubkey{min-width:130px!important}.modal .title{text-align:center!important}.slider{height:100%}.slider-slide{color:#000;background-color:#fff;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-weight:300}#list{width:170px;margin:30px auto;font-size:20px}#list ol{margin-top:30px}#list ol li{text-align:left;list-style:decimal;margin:10px 0}.button.ng-hide{display:none}.settings .item-divider{background-color:#f5f5f5}.settings .item .input-label{width:80%}.settings .item-select .input-label,.settings .item-toggle .input-label{display:inline;width:auto;max-width:50%}.settings .item .badge{top:22px}.no-margin{margin:0!important}.item-block,.list .item-peer{padding-top:9px;padding-bottom:3px}.list .item-peer .badge{top:14px;right:6%}.list .item-peer:hover .badge.badge-balanced,.list .item-peer:hover .badge.badge-energized{color:#fff!important}.list .item-peer .badge .badge-secondary,.list .item-peer .badge.badge-secondary{top:31px;font-size:10px;padding-right:6px}.list .item-peer.compacted{padding-top:0;padding-bottom:0;min-height:3px!important;max-height:3px!important;border-bottom:double 1px #ddd!important}.list .item-peer.compacted>*{display:none}.item-block{padding-top:4px;max-height:48px}.item-block .badge{top:12px;right:6%}.item-block.item-block-empty{min-height:24px!important;max-height:24px!important;padding-top:0;padding-bottom:0}.item-block.item-block-empty .badge{padding-top:0!important;top:inherit}.item-block.item-block-empty .badge.badge-balanced{top:0!important;padding-top:3px!important;padding-bottom:2px!important}.item-block-empty.compacted{min-height:3px!important;max-height:3px!important;border-bottom:0!important}.item-block.item-block-empty.compacted{border-bottom:double 1px #eee!important}.list .item.item-wallet .badge{top:29px}.list .item.item-wallet{height:38px}.ng-image-crop{text-align:center;margin:0 auto;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ng-image-crop>section{background:#ccc}.ng-image-crop button{margin-top:10px}.ng-image-crop .cropping-guide{display:block;background:rgba(255,255,255,.3);border:2px dashed #fff;position:absolute;pointer-events:none}.ng-image-crop--circle .cropping-guide{border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.ng-image-crop .cropping-canvas{background:rgba(255,255,255,.3);margin:0 auto;cursor:move}.ng-image-crop .zoom-handle{display:block;position:absolute;bottom:1px;left:1px;background:rgba(255,255,255,.7);width:80px;height:80px;cursor:move;border-radius:200px 50px}.ng-image-crop .zoom-handle>span{color:rgba(0,0,0,.5);-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);display:block;position:relative;top:32px}.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane,.leaflet-marker-icon,.leaflet-marker-pane,.leaflet-marker-shadow,.leaflet-overlay-pane,.leaflet-overlay-pane svg,.leaflet-popup-pane,.leaflet-shadow-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-tile-pane,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-control-layers label,.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-tile-pane{z-index:2}.leaflet-objects-pane{z-index:3}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup,.leaflet-fade-anim .leaflet-tile{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup,.leaflet-fade-anim .leaflet-tile-loaded{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-clickable{cursor:pointer}.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-clickable,.leaflet-dragging .leaflet-container{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078a8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-align:center;text-decoration:none;color:#000}.leaflet-bar a:hover{display:block;background-color:#f4f4f4}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVbSURBVEiJrZZfSFt3FMe/v3tvbmLUZleNKSHE/LGRiNbGRovTtrA9lcFkpcOnMvawwhhjrb3soQ8djGFhXMQNRqEvY3R9kJVuPpRRWQebcdKYxkaHqcHchKJ2rVo1WhNz//z2UOLUadVuv9fvOedzfuec3x9CKcV+1qVLlwgAdHV17cuR7AfU29tb43a73wWAVCr1Q0dHx8T/Curu7i5ubGw843K5ms1mMwBgdXUV6XQ6HI1Gb3Z2dj7/z6C+vr6T1dXVp6xWa+l2+uzs7PLk5OTP7e3tv70S6Pr1647q6uoOt9vtYRjmpcnouo5UKiVPTk72nj17dmpPIEmS+IaGhnaPx3O8tLSU3ahRSotyudzrAGAymf4ghGQ36svLy5osywOxWKxPFMX8jqBbt241ejyed+x2e9nWjPL5fK2iKC2UUiMAEELWDAbDEM/z41ttZ2Zmnsmy/OPp06ejm0DXrl2rqK2tPeNyuQ7zPL9pi5qmVaytrZ3Qdf3gdiVhGOYvo9H4O8uyc1sSI+l0enR8fPzmuXPn5sjt27ff8nq9bwiCYNpSJsPa2lqzqqr1AF7eJEDnOG7MaDSGCSHKRmFhYSGXTCZ/Zd1u93dOp3NJEAS9ICqK4snlcm/puu4EQHaBAADRdf2gqqo1hJBllmUXCsLjx4+L7t69e4Ztamqaffjw4QepVOr5oUOHDKqqvqkoShAAvwfA1sVrmlataVqlqqqzvb29lnA43KwoymeEUoqenp7XdF3vW11dPX7s2DHi9XpfgfHPSiaTuHfvHjWbzQMMw7SfP39+kUSj0ZOU0qsA/EtLSwiHwygpKUFraysOHDiwL0Amk8Hg4CBWVlbQ3NwMi8UCAHFCyIesw+H43uFwuAwGg9lkMsHj8SCfzyMUCkFRFNhsNux2YDVNQzQaRSgUgsvlwtGjR2EyvZitbDbL9Pf3H2YDgcD8xMREk67rCZvN5iSEkLKyMrjdbsiyjJGREVgslh13NzU1hf7+fui6jra2NlitVhBCQCmlo6OjoYGBASWbzX5BKKW4cuWKhRDyk67rJ4LBIFNRUbEeaHZ2FpFIBDabDS0tLSgqKipkiqGhITx58gTBYBBWq3XdZ25uDpFIhLIsO8jzfPuFCxeekTt37rQCuAqgfmVlBfF4HOXl5Thy5Ah4/sXgUUoRj8chyzIaGhoAALFYDB6PB36/H4S8OAH5fB4PHjzA/Pw8/H4/SkpKACAB4CPW6/XeqKysrOI4rpjnedjtdmSzWUSjURgMBgiCAEIIrFYrHA4HxsfHsbi4iNbWVtjt9nWILMsYGhpCeXk5ampqYDQaC3AyPDxcSy5evPg2IaTL6XTO+3y+NkIIAwCKoiCRSEBVVTQ1Ne3Yo0wmg+HhYXAcB5/PB4PBUJBoMpkclGW5lFJ6mVBKIYpiMYDLHMedCgQCnCAI/oL1wsICEokEHA4H6uvr1ydQ13WMjY1hamoKPp8PgiBshE/ev38/oyjKLwA+lyTp+abbWxTFOgDfCIKAQCAQ4DiutNCjdDqNp0+fIhAIAABGRkZQWVkJl8u1Xj5N01Zjsdjw3NwcBfCxJEl/FmL/6z0SRZEAeJ8QIvp8vsWqqqqWgpbL5RCPxwEAfr9//awAwPT0dDgejxfput4D4FtJkjYF3vGFFUWxHMCXRqPxcDAYtBYXF1dtZ5fNZmcikcijbDY7DuBTSZLmt7Pb9c8gimIbIeQrm82Wqaura2EYxggAlFI1Ho8PTk9PmymlnZIkhV4WZ0+/IFEUOQCdDMO8V19fn2NZ1hCLxaimaTcAdEuSpO4WY1//OlEUnQC+BkABfCJJ0qO9+v4NmO9xnZob3WcAAAAASUVORK5CYII=);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAbrwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAArPSURBVGiB3Zp7TFvXHce/916/eBhCDInJwDjGBhvjQHi5SclaKRL5Z1Wl/rEq/WNr11TJmkpMw900pLVrplJ1cadFarp0zdZmmpZpf3SqNrUKfSnKgwI2sQPGBmNjAsUOxCW8bGzfe8/+SEAkMfa1A5m075/2+f3O+Z7X595zLkUIwf+T6EdRSWdnp7izs1P8KOqitnqE3n///QMajeYZAPD7/R8fPXr00lbWt2WGTp48qdRoNC/s2bNHXVhYyALA/Py86Pr16wG/3//hq6++GtqKejfdUGdnJ6XT6Q4bDIZWjUaTNLnf76fcbvdlr9d7vqura1MbsKmGTp8+XadWqw/v3bu3UCQS8anKsixLX7t2bT4QCJw/fvy4c7PasCmGTpw4Ia+qqnrRZDIZSkpK2ExiZ2dnRYODg+7R0dE/v/baa4sP25aHNnT27Nkf6HS6QwaD4aF2TLfbzXu93gtHjhz5z8PkydrQqVOnKtVq9Y/q6uqUubm5GY3KRopEIiKn0xkKBAJ/bW9v92WTI2NDnZ2dYoPB8ILRaGwoKyvjsqk0naamphiXyzXgdrs/7OrqSmQSm5GhM2fOHNBoNM/U1dVJKYoSFEgIEcVisWYAkEql/RRFCRpNQgjldDpjfr//42PHjglmlyBDJ0+eVO7evfsndXV1FatMEaJEIqGOx+MHCCFyAKAoalEikVwSi8UBoTnm5+dFTqdzYnx8/C9C2JXS0CpT9Hr9gcrKypTb8HrxPJ+/srJygOf53cn+p2l6XCaTXaJpekloTp/PR3s8nkvp2LWhoXfffbderVYfbmhoKEjHlPVtjcVidSzLNhFCUj67URSVEIlENqlU6gQgKD/LsvTAwMBCIBA4/8orrziS5r3f0IkTJ+Q6ne6IyWQy7NixQ/CCZFm2NB6PP8Hz/HahMQBA0/R3EonkokgkCgqNmZmZEQ8ODrq9Xu/Z+9l1j6EPPvjgKZ1Od6impoYSmpzneVksFtvHcZxBaEwyMQzjlkqlPTRNrwiNGR4eJl6v98JLL73079XfKEIITp06VVlRUfHj+vr6nZkwJR6P6xOJxH5CiCxTA8lEUdSKWCy+KpFIPEJjIpGIyOFw3JyYmDjX3t7uo86dO3fUaDQ2lJeXCzbCcdz2WCz2BM/zpdk1PbVomg5KpdKLDMN8JzRmcnJS5HK5Bhi9Xv9RcXHx7V27dqUd6rtMMcfj8YOEkIKHa3bKeuQsy9bwPC9mGCZEUVTaTWNsbKzQbrc/RXV0dBAAMYVCcfnpp5+eKC4uTmrsfqY8KqVj161bt2SffPJJRTgcbgUgZVpbW3sIIQei0Wij0+ksmZubW9DpdEsUdWdf4Hk+PxqNHmRZtgWA9NFZWZOU4zgdy7LFd0crDgCEEHz66aelX3zxxfcjkUg9gAmapg8zV65c8fX09PwpHo/zhJC22dnZ2oGBARQUFCwVFBTUxOPxQ4QQxf/AyD0ihBSxLFtDCCFerzdy/vz5PcFg8CAhRAqgSy6XP/fmm2+O3LNtd3R0VFEU9R6AgyKRiNfr9fS+ffsgFj+S8420SiQS6Onpgcfj4VmWpQF8SQh5+Z133hldLSNaH/Dss8+GGYYJ3Lhxg9jtdnpoaAiTk5NoampCdXX1IzewXiMjI7DZbJifn4dMJqPNZjNRqVQBjuPC68utjhA1MDDwPIDfASgG7vSGw+HA2NgYAEClUmH//v0oKip6pEbm5uZw9epV3LhxAwCg1WpRX1+/ftbcAvCLhoaGjwAQyuFwGDmOOwOgNVnCcDiMvr4+zM3NQSaTwWg0orm5GTS9tUd6PM+jv78fLpcLKysrKCoqQktLCxSKDZfzZYZhjjFarfYfKpWqmabppAslNzcXWq0WMpkMwWAQU1NTCAQCyM/Px7Zt27bEzMTEBD7//HP4fD5QFIWGhgaYzWbk5uZuGMNxXPHXX39tYkwm07nh4eGZ3Nxcz/bt27+XrDBFUVAoFNBoNIhEIggGg/D5fLh9+zaUSuWmbRqRSAQXL15EX18flpeXoVKp8OSTT0KpVGIVI8nk8/n6uru7xYuLi3WrHDr07bffmvx+f295eTktkUiSwlMsFkOlUqGkpAQzMzMIBoPwer0AAKVS+VBmHA4HvvrqK4RCIeTl5aG1tRU1NTUpO2t5eXn6s88+Gx4fHzcDmKVp+jBFCMEbb7whW1xc/BWAXwJgKysrbS0tLY9TFCXaKBnP8xgaGoLb7QbHcSgtLcW+ffsyNhYKhdDT04NgMAiGYWAwGFBbW5tyjRJC2L6+vis+n68Jd3bqt+Vy+Vuvv/76yoYcysvLi5nNZmm6Bi4sLMBmsyEUCkEsFkOv1+Oxxx5LOw0TiQS++eYbeDweJBIJKJVKNDU1oaAg9SNiKBRCb28vu7y8LEISDt1jqLu7ezuAt0Oh0IsjIyNUPB5HeXk5mpubIZWmfuqZmJiA3W7HysoKCgsLU7LrPqagsbERFRUVKfPHYjH09/djcnISEokE1dXVUCqV/wLQ3tbWNvmAoe7u7ucBnMRdDrEsC6/Xu5bAZDKhqqoq5eJMxy4BTHlAhBCMjo5icHAQqx2s0+kgEq2thiUAvwFwqq2tjaUuXLhQA+CPAL6fLOHCwgJcLhcWFxeFsADAg+yqra0FAAwNDQllygN55HI5jEZjqil5HcBPmerq6r/t2LFjL8MwOclKSaVSlJWVQSKRIBQKwefzIRqNYufOnRsu3GTsmp6eFswUlmVht9ths9mQSCRQVVUFo9EImWzjF2OO4+ROp1NPdXR0JAAsaLVat0ajeXzDCNyZxx6PBzdv3kROTg727t0LtVqdKgTRaBR2ux0A0NjYiJycpP22pkAggGvXrq11ml6vT7t+p6en+10uVykhpIzq6OhoA/AegEqxWOxsamrKl8vllakShMNhDA8Pr1VqNpuRn5+fstJ0WlpaQm9v71pn1dTUpJ2S0Wh02mazTUajUTMAH4CXKUIILBaLDMAqh+iSkpIre/bsaWEYZsN5wfM8/H4/AoEAKIqCwWCAyWRKuWkkEyEEg4ODcLvdIIRArVZDo9Gk5ZDb7b4yNTW1xiEAb1mt1ns5ZLFYqnBntA5SFDVlNBqDu3btak7VoOXlZXg8HoTDYeTn56OlpUUwXEOhEPr6+rC0tASFQgG9Xo+8vLyUMeFweNDhcEg5jqsC8CWAl61Wa3IOrTP2HIDfA9iZk5PT29TUVJ6Tk7MrXeNGRkYghF0bMCWlkUQiMWe324cWFhZaAcwA+LnVav37/eU2PAq2WCyFALoAHAMQLSsrsxkMhpSPQ+nYJYApSeX3+y+PjY3VANgG4AyATqvVOp+sbNrbB4vF0nw3SQPDMKP19fUxhUJhShWTjF0AMmEKAGBxcdFns9mWEolEHYABAMesVmt/qhhB1ykWi4UBcBzAbwHICwoKLjc2NtaKxeINX18JIZicnMTY2Bh4/s6xGk3T0Gq1KC8vT7l5cBwXuX79et/s7OzjAKIAfg3gtNVqTXvBltGFl8ViKQXwBwA/BPCdVqsd1mg0Sd90V7XKLgAZMwXAPwH8zGq1Cj7Iz+qO1WKxZMyudErGFKvV2p1pnqwvjbNhVzKlYko27Xroa/1s2LWqdEzJRpv2JUkm7BLKlGy0qZ/GCGFXJkzJRlvyNVYydkkkktxMmZKNtuzzsvvZBYADEEEGTMlGW/4B4Dp2ARkyJRv9F9vsxWD/43R9AAAAAElFTkSuQmCC);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333;border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:rgba(255,255,255,.8);z-index:1000;box-shadow:0 1px 7px rgba(0,0,0,.65);margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{box-shadow:0 1px 7px #999;background:#fff}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:18px;padding:0 18px 0 2px;margin:3px 0 3px 3px}.leaflet-control-search.search-load .search-input{background:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///5mZmfj4+M/Pz/Ly8rS0tMnJyZmZmbu7u6enp93d3eTk5KCgoNfX15qamq6ursLCwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==) no-repeat center right #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:18px;position:absolute;right:22px;margin:3px 0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 0 -46px;text-decoration:none;opacity:.8}.leaflet-control-search .search-cancel:hover{opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:26px;height:26px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px 2px #fff;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px -22px #fafafa;background-color:#f4f4f4}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;list-style:none;padding-left:0;min-width:120px;max-height:122px;box-shadow:1px 1px 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden;cursor:pointer}.leaflet-control-search .search-tip{margin:2px;padding:2px 4px;display:block;color:#000;background:#eee;border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em}.leaflet-bar button,.leaflet-bar button:hover{border:none;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar button{background-position:50% 50%;background-repeat:no-repeat;overflow:hidden;background-color:#fff}.leaflet-bar button:hover{background-color:#f4f4f4}.leaflet-bar button:first-of-type{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar button:last-of-type{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar button.disabled,.leaflet-bar.disabled{cursor:default;pointer-events:none;opacity:.4}.easy-button-button .button-state{display:block;width:100%;height:100%;position:relative}.leaflet-touch .leaflet-bar button{width:30px;height:30px;line-height:30px}.leaflet-control-loading:empty{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-repeat:no-repeat}.leaflet-control-layer-container,.leaflet-control-loading,.leaflet-control-zoom a.leaflet-control-loading,.leaflet-control-zoomslider a.leaflet-control-loading{display:none}.hero .content i.avatar:hover .button,.leaflet-control-layer-container.is-loading,.leaflet-control-loading.is-loading,.leaflet-control-zoom a.leaflet-control-loading.is-loading,.leaflet-control-zoomslider a.leaflet-control-loading.is-loading{display:block}.leaflet-bar-part-bottom{border-bottom:medium none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.awesome-marker{background:url(../img/markers-soft.png) no-repeat 0 0;width:35px;height:46px;position:absolute;left:0;top:0;display:block;text-align:center}.awesome-marker-shadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==) no-repeat 0 0;width:36px;height:16px}@media (min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.awesome-marker{background-image:url(../img/markers-soft@2x.png);background-size:720px 46px}.awesome-marker-shadow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAgCAYAAACvgw7DAAAFhElEQVR42tWZ/0ubVxSHZZQxpJQRwoqEUkJQQhlBCcEiQRGJiKFEQqQ4lKFYLA5FsSjKioqipRutbLJ2f627g+dyDmfvqfetzlLh+aFpcr88+dxzb+7bdwt/33wG974g/rhu+pdzwt86fJdA/82w7Un/18m6kRBXgD+5+4YHDt/fEtImfRppVlJ+MY4QEWEmbyZZUBQVP2TwMJGBDMx7aFP6K4gwJBlBecVYISIDCSJAJm0mUIJH8NhQdqjkh8/SNv2VRB6SjCAtJ2dKMGuFIEIEMHGZ2CAMQdXwxPDjNdQ++f+0Q9tD9F1RkgYYLwlCDmIg19IhJQiRVJToFAlMViYxHBiBOjQyGP0ETzMw76Ed+qC/YSVrSAkqiRySo1IjAnwkKSKlQKMIQQYS4sQZ/Bg0A+MwYZg0TKViPjeh+mjS72iUhKCqyCE5pCZdDEmxUmjwURQSZSCiqSbXCkwHZmAW2g7PEmkbZml/mj6nlKgm42rE9DDushHzQGpNohjefB8pD2NK6GSEjscZ1AyD7QTmAt1AD+YVz/Mjn6e9LswB0pCEICVnhFQPIabEfAoiJj0xkhaWj5LSoNMW39ocA14I/BRYCvwMy58NbdDe4r9twwLCEIUcEoSYCbWkhqk1g0lLyTv92bTQUBkpdZWSDoNbZAKrgbXAy8B64JdE1jN4SVsvAquwokUhaJ70dNTyaiEmLqUaYiqUArZu0qLF+EdjOa/wwWKsK2r5tPiGFhjoGhPcCmwHdgKvEtlRbMNWYDOwQbtIEjlGDIlhKUmNqZOWKuOPW3bRSct1iUGMbM2PabxBp20GtMygt5jkfuAg8DpwaOF1y6+BA9iDXdpDEoKQQ79LLKv5mBZVX8ZZQiO66Nqt2jngISFNTJkoPqXjLoOKUvaY5HHgJHDmcAoncBw4UtIOkLtnxJAapEid6aqkTKliW2f5VOPysXUFjJQ0Mf1KTAXzTb6VeeK8wQQOmeibwNvA7xn8xv+95X3nyIqCDiU9iGFJUXPWkLKo6krbLJ2GpIQdiJoiy8dJyg3E1IjoDDvCCgPfZ3LnCHgf+MNwwevveE+UE1N0RGKilJ0MIUv021Vb86QIYefJJUSkXF1d4eS6rdoXM0uUV5nA6ygFCZeBDxpe+1MEkSBJzbESs6uWzwu+gEWzdFpIidtxzWzHck5h6fgpETHI8cWYGlOMW7VKzEKWGCb/V+Bj4G/4wGtRzDsSc07SjjKSsqaEPFdCpkWIpMQc9UmJCLEXVVaGFXPP4G/XUnybjpg3TPhSS4GPKjHvVVJOY10hJduxyKpa0gt01Nlk3JxkbXEt+j8OBREhpIgRORzw6LiqdqUexXeTb/qUFFzE1MAly4vaQkpYNrHAqh1nSS2Ztl0yJiFsvyYhbh0RHDH+UvJSw7cxqM4xc9SZdbUrnaniewEiRBJyoBKyniGk4y8ZOY+kLhn4z19+MYLcw8ghr0ZqppnEMpPbZUmcIOAMTA1hubDTILenziKT5nBmt92B9G1XhOQQk3iliRgGU+JbqzOBttqdNkUOp1451e5LUWXJSFHtaCHebxunqKZJ4d+3LEZ2JwZWYcCjLKlnTHCZFGwgIB7MYjFdUculJwczKaZquVT9c4gUVKeG9P3fYuS3VPaPyRrf7CQ7Ro/0yDWD+qHn7C5j5ug+aO9m7c2+FZLndv/2xPin4BLJqcZf2wiaMbdxs3KzJncjzlWjFFM5lJl0+A/I7lpMX+bdDHKIe1WlZ0zuddXVIjJMMsr21t6mI+8DsbsXQ2pEDqdhuf+tsHM8YfJgbujZZh0Z/W4xNX9fXoz/+8nKKdlnSYqKTYctplYIfC1i7KFPnhwwUXnMah+dioxCsgyEfD1iIPMxrVAQ0p8ZexLuWsw/8PFSG0HPbPgAAAAASUVORK5CYII=);background-size:35px 16px}}.awesome-marker i{color:#333;margin-top:10px;display:inline-block;font-size:14px}.awesome-marker .icon-white{color:#fff}.awesome-marker-icon-red{background-position:0 0}.awesome-marker-icon-darkred{background-position:-180px 0}.awesome-marker-icon-lightred{background-position:-360px 0}.awesome-marker-icon-orange{background-position:-36px 0}.awesome-marker-icon-beige{background-position:-396px 0}.awesome-marker-icon-green{background-position:-72px 0}.awesome-marker-icon-darkgreen{background-position:-252px 0}.awesome-marker-icon-lightgreen{background-position:-432px 0}.awesome-marker-icon-blue{background-position:-108px 0}.awesome-marker-icon-darkblue{background-position:-216px 0}.awesome-marker-icon-lightblue{background-position:-468px 0}.awesome-marker-icon-purple{background-position:-144px 0}.awesome-marker-icon-darkpurple{background-position:-288px 0}.awesome-marker-icon-pink{background-position:-504px 0}.awesome-marker-icon-cadetblue{background-position:-324px 0}.awesome-marker-icon-white{background-position:-574px 0}.awesome-marker-icon-gray{background-position:-648px 0}.awesome-marker-icon-lightgray{background-position:-612px 0}.awesome-marker-icon-black{background-position:-682px 0}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:rgba(181,226,140,.6)}.marker-cluster-small div{background-color:rgba(110,204,57,.6)}.marker-cluster-medium{background-color:rgba(241,211,87,.6)}.marker-cluster-medium div{background-color:rgba(240,194,12,.6)}.marker-cluster-large{background-color:rgba(253,156,115,.6)}.marker-cluster-large div{background-color:rgba(241,128,23,.6)}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px "Helvetica Neue",Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}@keyframes chartjs-render-animation{0%{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}.item-category{border:1px solid #ddd!important}.item-category .h2{overflow:inherit;text-overflow:inherit;white-space:normal!important}.item-category .item-divider,.item-category.item-divider{background-color:#f5f5f5!important}.item-record{height:80px!important;padding-top:5px!important}.row-record{border-bottom:solid 1px #ccc!important;padding:0!important;height:75px!important;overflow:hidden}.row-record .col{padding-top:5px;padding-bottom:0}.row-record .item-avatar i.item-image{font-size:34px!important}.card-record .badge-picture-count,.row-record .badge-picture-count{position:absolute!important;right:inherit!important;top:inherit!important}.card-record .badge-picture-count{left:67px!important;bottom:15px!important}.row-record .badge-picture-count{left:54px!important;bottom:13px!important}.card-record .item-thumbnail-left{padding-left:150px}.card-record .item-thumbnail-left .item-image{border-radius:0;box-shadow:none;max-width:130px;max-height:130px;top:inherit;background-repeat:no-repeat}.card-record .card-footer .badge{top:inherit;bottom:10px;right:10px}.row-record .col-text-wrap{padding:0;margin:0}.row-record .col .text-wrap{height:70px;white-space:normal;position:relative;word-wrap:break-word!important;overflow:hidden!important;text-overflow:ellipsis;-o-text-overflow:ellipsis;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}.row-record .col .text-wrap:after{content:'';position:absolute;bottom:0;right:0;width:100%;height:30%;background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-o-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-ms-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 )}.item.gallery{display:inline-block}.item-more-comments{padding-top:0;padding-bottom:0;min-height:inherit!important}.hero .content .button.button-camera{display:block;position:absolute;bottom:0;right:0}.hero .content i.avatar .button{display:none;position:absolute;bottom:-25px;left:-3px}.hero .content i.avatar{font-size:55px!important;line-height:88px}.view-message h1.title{font-size:22px;margin-top:5px}.view-messages .list .item{height:80px}.view-messages .list .item-content{padding-top:8px;padding-bottom:8px}.view-page ion-content.refresher-top-bg:before{background-color:#f8f8f8!important;height:200px}.view-page .hero{background-color:#f8f8f8!important}.view-page .hero .content i.avatar{border:1px solid gray;color:gray!important}.modal-search-location .bar-footer{height:30px}.modal-search-location .bar-footer .copyright{font-size:12px;line-height:30px}.list.dropdown-list{z-index:1010;opacity:1;display:block;list-style:none;position:absolute;background-color:#fff;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(0,0,0,.2);width:100%;overflow-y:auto;overflow-x:hidden;cursor:pointer}.list.dropdown-list .item{padding-top:5px;padding-bottom:5px}.list.dropdown-list .item.active,.list.dropdown-list .item:active,.list.dropdown-list .item:focus,.list.dropdown-list .item:hover{background-color:#b2e0ff}.cion-page-association:before,.ion-page-association:before{font-family:"Ionicons";content:"\f212"}.cion-page-company:before,.ion-page-company:before{font-family:"Cesiumicons";content:"\e903"}.cion-page-institution:before,.ion-page-institution:before{font-family:"Cesiumicons";content:"\e921"}.cion-page-shop:before,.ion-page-shop:before{font-family:"Ionicons";content:"\f110"}.buttons-block{display:block;height:57px}.popover-graph-currency{height:300px!important;max-width:250px!important}.legend{font:14px/16px Arial,Helvetica,sans-serif;background:rgba(255,255,255,.9);box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:5px;padding:6px 8px;width:180px;line-height:18px;color:#555}.legend .outline{border:0}.legend i{width:16px;height:16px;float:left;margin-right:8px;opacity:.7}.search-tip{white-space:nowrap}.leaflet-popup .item-peer{padding-bottom:3px;padding-top:0}.leaflet-popup .item.item-icon-left>i.avatar:first-child{left:9px;top:0}.leaflet-popup .item-peer .badge{top:inherit;bottom:0;right:5px;font-size:12px}.leaflet-popup .item-peer .badge .badge-secondary,.leaflet-popup .item-peer .badge.badge-secondary{top:inherit;bottom:-16px;right:5px;font-size:9px;padding-right:0}.view-map-network .leaflet-popup-content{max-height:250px}.view-map-network .leaflet-popup-content .item-peer .row{display:block}.view-map-network .leaflet-popup-content .item-peer .col.col-15,.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:70px;text-align:start!important}.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-flex:0 0 20%;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%}.view-map-registry .leaflet-popup-content,.view-map-wot .leaflet-popup-content{min-width:200px}.view-map-wot .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-wot .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.view-map-registry .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-registry .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.marker-cluster-small.blue{background-color:rgba(56,170,221,.6)}.marker-cluster-small.blue div{background-color:rgba(37,144,193,.9);color:#fff}.marker-cluster-medium.blue{background-color:rgba(37,144,193,.6)}.marker-cluster-medium.blue div{background-color:rgba(18,121,167,.9);color:#fff}.marker-cluster-large.blue{background-color:rgba(18,121,167,.6)}.marker-cluster-large.blue div{background-color:rgba(0,99,141,.9);color:#fff}.marker-cluster-small.green{background-color:rgba(110,170,37,.6)}.marker-cluster-small.green div{background-color:rgba(92,150,19,.9);color:#fff}.marker-cluster-medium.green{background-color:rgba(92,150,19,.6)}.marker-cluster-medium.green div{background-color:rgba(71,126,1,.9);color:#fff}.marker-cluster-large.green{background-color:rgba(171,126,1,.6)}.marker-cluster-large.green div{background-color:rgba(51,103,0,.9);color:#fff}.marker-cluster-small.lightgreen{background-color:rgba(187,249,112,.4)}.marker-cluster-small.lightgreen div{background-color:rgba(162,221,90,.8);color:gray}.marker-cluster-medium.lightgreen{background-color:rgba(162,221,90,.6)}.marker-cluster-medium.lightgreen div{background-color:rgba(136,192,69,.8);color:#fff}.marker-cluster-large.lightgreen{background-color:rgba(136,192,69,.6)}.marker-cluster-large.lightgreen div{background-color:rgba(115,168,49,.8);color:#fff}.marker-cluster-small.lightgray{background-color:rgba(163,163,163,.6)}.marker-cluster-small.lightgray div{background-color:rgba(163,163,163,.9);color:#fff}.marker-cluster-medium.lightgray{background-color:rgba(139,139,139,.6)}.marker-cluster-medium.lightgray div{background-color:rgba(139,139,139,.9);color:#fff}.marker-cluster-large.lightgray{background-color:rgba(116,116,116,.6)}.marker-cluster-large.lightgray div{background-color:rgba(116,116,116,.9);color:#fff}.marker-cluster-small.red{background-color:rgba(212,62,42,.4)}.marker-cluster-small.red div{background-color:rgba(186,42,23,.8);color:#fff}.marker-cluster-medium.red{background-color:rgba(186,42,23,.6)}.marker-cluster-medium.red div{background-color:rgba(161,23,5,.8);color:#fff}.marker-cluster-large.red{background-color:rgba(161,23,5,.6)}.marker-cluster-large.red div{background-color:rgba(137,5,0,.8);color:#fff}
\ No newline at end of file
+.ink{cursor:pointer}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink,.popup .button{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.popup .button{cursor:pointer}.ink-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background-color:rgba(255,255,255,.4);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.ink-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.button-clear,.button-fab,.button-flat,.button-raised,.button-text,.ink-button,.ink-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.activated.button-text,.button-clear.activated,.button-clear:active,.button-fab.activated,.button-fab:active,.button-flat.activated,.button-flat:active,.button-raised.activated,.button-raised:active,.button-text:active,.ink-button.activated,.ink-button:active,.ink-circle.activated,.ink-circle:active,.ink.activated,.ink:active,.popup .button.activated,.popup .button:active{-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.button-clear,.button-fab,.button-fab:link,.button-fab:visited,.button-flat,.button-flat:link,.button-flat:visited,.button-raised,.button-raised:link,.button-raised:visited,.ink-button,.ink-button:link,.ink-button:visited{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;font-size:14px;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text,.button-text:link,.button-text:visited,.ink-button-input{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:none;text-align:center;text-decoration:none;z-index:1}.button-clear:link,.button-clear:visited,.button-text:link,.button-text:visited,.ink-button-input{font-size:14px}.ink-button{padding:10px 15px;border-radius:2px}.ink-button-input{margin:0;padding:10px 15px}.ink-input-wrapper{border-radius:2px;vertical-align:bottom}.ink-input-wrapper.ink-button{padding:0}.ink-input-wrapper .ink-button-input{position:relative;top:0;left:0;z-index:1}.ink-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.ink-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.ink-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.ink-block{display:block}.ink-ripple{z-index:0}.button-clear .ink-ripple,.button-text .ink-ripple,.ink-dark .ink-ripple,.list .ink-ripple,[class$="-100"]>.ink-ripple,[class$=-clear]>.ink-ripple,[class$=-light]>.ink-ripple,[class$=-stable]>.ink-ripple{background-color:rgba(0,0,0,.2)}.tab-item{position:relative}*{font-family:"RobotoDraft","Roboto","Helvetica Neue","Segoe UI",sans-serif}.rounded{border-radius:4px}a{cursor:pointer}.has-header.expanded{top:76px}.bar{border-bottom:none;padding:0}.bar .button{min-height:44px;min-width:44px;max-width:48px;margin-bottom:0;max-height:44px;width:48px}.bar .title+.buttons.buttons-right{top:0}.title-left,.title-right,.title.title-left,.title.title-right{left:48px}.button-positive,.positive-bg{background-color:#3f51b5;color:#fff}.button-text{background-color:#3f51b5}.activated.button-text,.bar .activated.button-text,.bar .button-positive,.bar .button-positive.activated,.bar .button-positive:active,.bar .button-positive:hover,.bar .button-text,.bar .button-text:active,.bar .button-text:hover,.bar-positive,.bar-positive.activated,.bar-positive:active,.bar-positive:hover,.button-bar-positive,.button-bar-positive.activated,.button-bar-positive:active,.button-bar-positive:hover,.button-positive.activated,.button-positive:active,.button-positive:hover,.button-text:active,.button-text:hover,.header-positive,.header-positive.activated,.header-positive:active,.header-positive:hover,.positive-bg.activated,.positive-bg:active,.positive-bg:hover,.positive-border,.positive-border.activated,.positive-border:active,.positive-border:hover{background-color:#3f51b5;color:#fff}.bar .button-positive-900,.bar .button-positive-900.activated,.bar .button-positive-900:active,.bar .button-positive-900:hover,.bar-positive-900,.bar-positive-900.activated,.bar-positive-900:active,.bar-positive-900:hover,.button-bar-positive-900,.button-bar-positive-900.activated,.button-bar-positive-900:active,.button-bar-positive-900:hover,.button-positive-900,.button-positive-900.activated,.button-positive-900:active,.button-positive-900:hover,.header-positive-900,.header-positive-900.activated,.header-positive-900:active,.header-positive-900:hover,.positive-900-bg,.positive-900-bg.activated,.positive-900-bg:active,.positive-900-bg:hover,.positive-900-border,.positive-900-border.activated,.positive-900-border:active,.positive-900-border:hover{background-color:#1a237e;color:#fff}.bar .button-positive-100,.bar .button-positive-100.activated,.bar .button-positive-100:active,.bar .button-positive-100:hover,.bar-positive-100,.bar-positive-100.activated,.bar-positive-100:active,.bar-positive-100:hover,.button-bar-positive-100,.button-bar-positive-100.activated,.button-bar-positive-100:active,.button-bar-positive-100:hover,.button-positive-100,.button-positive-100.activated,.button-positive-100:active,.button-positive-100:hover,.header-positive-100,.header-positive-100.activated,.header-positive-100:active,.header-positive-100:hover,.positive-100-bg,.positive-100-bg.activated,.positive-100-bg:active,.positive-100-bg:hover,.positive-100-border,.positive-100-border.activated,.positive-100-border:active,.positive-100-border:hover{background-color:#c5cae9;color:#fff}.bar .button-calm,.bar .button-calm.activated,.bar .button-calm:active,.bar .button-calm:hover,.bar-calm,.bar-calm.activated,.bar-calm:active,.bar-calm:hover,.button-bar-calm,.button-bar-calm.activated,.button-bar-calm:active,.button-bar-calm:hover,.button-calm,.button-calm.activated,.button-calm:active,.button-calm:hover,.calm-bg,.calm-bg.activated,.calm-bg:active,.calm-bg:hover,.calm-border,.calm-border.activated,.calm-border:active,.calm-border:hover,.header-calm,.header-calm.activated,.header-calm:active,.header-calm:hover{background-color:#2196f3;color:#fff}.bar .button-calm-900,.bar .button-calm-900.activated,.bar .button-calm-900:active,.bar .button-calm-900:hover,.bar-calm-900,.bar-calm-900.activated,.bar-calm-900:active,.bar-calm-900:hover,.button-bar-calm-900,.button-bar-calm-900.activated,.button-bar-calm-900:active,.button-bar-calm-900:hover,.button-calm-900,.button-calm-900.activated,.button-calm-900:active,.button-calm-900:hover,.calm-900-bg,.calm-900-bg.activated,.calm-900-bg:active,.calm-900-bg:hover,.calm-900-border,.calm-900-border.activated,.calm-900-border:active,.calm-900-border:hover,.header-calm-900,.header-calm-900.activated,.header-calm-900:active,.header-calm-900:hover{background-color:#0d47a1;color:#fff}.bar .button-calm-100,.bar .button-calm-100.activated,.bar .button-calm-100:active,.bar .button-calm-100:hover,.bar-calm-100,.bar-calm-100.activated,.bar-calm-100:active,.bar-calm-100:hover,.button-bar-calm-100,.button-bar-calm-100.activated,.button-bar-calm-100:active,.button-bar-calm-100:hover,.button-calm-100,.button-calm-100.activated,.button-calm-100:active,.button-calm-100:hover,.calm-100-bg,.calm-100-bg.activated,.calm-100-bg:active,.calm-100-bg:hover,.calm-100-border,.calm-100-border.activated,.calm-100-border:active,.calm-100-border:hover,.header-calm-100,.header-calm-100.activated,.header-calm-100:active,.header-calm-100:hover{background-color:#bbdefb;color:#fff}.bar .button-royal,.bar .button-royal.activated,.bar .button-royal:active,.bar .button-royal:hover,.bar-royal,.bar-royal.activated,.bar-royal:active,.bar-royal:hover,.button-bar-royal,.button-bar-royal.activated,.button-bar-royal:active,.button-bar-royal:hover,.button-royal,.button-royal.activated,.button-royal:active,.button-royal:hover,.header-royal,.header-royal.activated,.header-royal:active,.header-royal:hover,.royal-bg,.royal-bg.activated,.royal-bg:active,.royal-bg:hover,.royal-border,.royal-border.activated,.royal-border:active,.royal-border:hover{background-color:#673ab7;color:#fff}.bar .button-royal-900,.bar .button-royal-900.activated,.bar .button-royal-900:active,.bar .button-royal-900:hover,.bar-royal-900,.bar-royal-900.activated,.bar-royal-900:active,.bar-royal-900:hover,.button-bar-royal-900,.button-bar-royal-900.activated,.button-bar-royal-900:active,.button-bar-royal-900:hover,.button-royal-900,.button-royal-900.activated,.button-royal-900:active,.button-royal-900:hover,.header-royal-900,.header-royal-900.activated,.header-royal-900:active,.header-royal-900:hover,.royal-900-bg,.royal-900-bg.activated,.royal-900-bg:active,.royal-900-bg:hover,.royal-900-border,.royal-900-border.activated,.royal-900-border:active,.royal-900-border:hover{background-color:#311b92;color:#fff}.bar .button-royal-100,.bar .button-royal-100.activated,.bar .button-royal-100:active,.bar .button-royal-100:hover,.bar-royal-100,.bar-royal-100.activated,.bar-royal-100:active,.bar-royal-100:hover,.button-bar-royal-100,.button-bar-royal-100.activated,.button-bar-royal-100:active,.button-bar-royal-100:hover,.button-royal-100,.button-royal-100.activated,.button-royal-100:active,.button-royal-100:hover,.header-royal-100,.header-royal-100.activated,.header-royal-100:active,.header-royal-100:hover,.royal-100-bg,.royal-100-bg.activated,.royal-100-bg:active,.royal-100-bg:hover,.royal-100-border,.royal-100-border.activated,.royal-100-border:active,.royal-100-border:hover{background-color:#d1c4e9;color:#fff}.balanced-bg,.balanced-bg.activated,.balanced-bg:active,.balanced-bg:hover,.balanced-border,.balanced-border.activated,.balanced-border:active,.balanced-border:hover,.bar .button-balanced,.bar .button-balanced.activated,.bar .button-balanced:active,.bar .button-balanced:hover,.bar-balanced,.bar-balanced.activated,.bar-balanced:active,.bar-balanced:hover,.button-balanced,.button-balanced.activated,.button-balanced:active,.button-balanced:hover,.button-bar-balanced,.button-bar-balanced.activated,.button-bar-balanced:active,.button-bar-balanced:hover,.header-balanced,.header-balanced.activated,.header-balanced:active,.header-balanced:hover{background-color:#4caf50;color:#fff}.balanced-900-bg,.balanced-900-bg.activated,.balanced-900-bg:active,.balanced-900-bg:hover,.balanced-900-border,.balanced-900-border.activated,.balanced-900-border:active,.balanced-900-border:hover,.bar .button-balanced-900,.bar .button-balanced-900.activated,.bar .button-balanced-900:active,.bar .button-balanced-900:hover,.bar-balanced-900,.bar-balanced-900.activated,.bar-balanced-900:active,.bar-balanced-900:hover,.button-balanced-900,.button-balanced-900.activated,.button-balanced-900:active,.button-balanced-900:hover,.button-bar-balanced-900,.button-bar-balanced-900.activated,.button-bar-balanced-900:active,.button-bar-balanced-900:hover,.header-balanced-900,.header-balanced-900.activated,.header-balanced-900:active,.header-balanced-900:hover{background-color:#1b5e20;color:#fff}.balanced-100-bg,.balanced-100-bg.activated,.balanced-100-bg:active,.balanced-100-bg:hover,.balanced-100-border,.balanced-100-border.activated,.balanced-100-border:active,.balanced-100-border:hover,.bar .balanced-100-bg:hover,.bar .button-balanced-100,.bar .button-balanced-100.activated,.bar .button-balanced-100:active,.bar-balanced-100,.bar-balanced-100.activated,.bar-balanced-100:active,.bar-balanced-100:hover,.button-balanced-100,.button-balanced-100.activated,.button-balanced-100:active,.button-balanced-100:hover,.button-bar-balanced-100,.button-bar-balanced-100.activated,.button-bar-balanced-100:active,.button-bar-balanced-100:hover,.header-balanced-100,.header-balanced-100.activated,.header-balanced-100:active,.header-balanced-100:hover{background-color:#c8e6c9;color:#fff}.bar .button-energized,.bar .button-energized.activated,.bar .button-energized:active,.bar .button-energized:hover,.bar-energized,.bar-energized.activated,.bar-energized:active,.bar-energized:hover,.button-bar-energized,.button-bar-energized.activated,.button-bar-energized:active,.button-bar-energized:hover,.button-energized,.button-energized.activated,.button-energized:active,.button-energized:hover,.energized-bg,.energized-bg.activated,.energized-bg:active,.energized-bg:hover,.energized-border,.energized-border.activated,.energized-border:active,.energized-border:hover,.header-energized,.header-energized.activated,.header-energized:active,.header-energized:hover{background-color:#ff9800;color:#fff}.bar .button-energized-900,.bar .button-energized-900.activated,.bar .button-energized-900:active,.bar .button-energized-900:hover,.bar-energized-900,.bar-energized-900.activated,.bar-energized-900:active,.bar-energized-900:hover,.button-bar-energized-900,.button-bar-energized-900.activated,.button-bar-energized-900:active,.button-bar-energized-900:hover,.button-energized-900,.button-energized-900.activated,.button-energized-900:active,.button-energized-900:hover,.energized-900-bg,.energized-900-bg.activated,.energized-900-bg:active,.energized-900-bg:hover,.energized-900-border,.energized-900-border.activated,.energized-900-border:active,.energized-900-border:hover,.header-energized-900,.header-energized-900.activated,.header-energized-900:active,.header-energized-900:hover{background-color:#e65100;color:#fff}.bar .button-energized-100,.bar .button-energized-100.activated,.bar .button-energized-100:active,.bar .button-energized-100:hover,.bar-energized-100,.bar-energized-100.activated,.bar-energized-100:active,.bar-energized-100:hover,.button-bar-energized-100,.button-bar-energized-100.activated,.button-bar-energized-100:active,.button-bar-energized-100:hover,.button-energized-100,.button-energized-100.activated,.button-energized-100:active,.button-energized-100:hover,.energized-100-bg,.energized-100-bg.activated,.energized-100-bg:active,.energized-100-bg:hover,.energized-100-border,.energized-100-border.activated,.energized-100-border:active,.energized-100-border:hover,.header-energized-100,.header-energized-100.activated,.header-energized-100:active,.header-energized-100:hover,.modal.modal-help .activated.row.selected,.modal.modal-help .row.selected,.modal.modal-help .row.selected:active,.modal.modal-help .row.selected:hover{background-color:#ffe0b2}.assertive-bg,.assertive-bg.activated,.assertive-bg:active,.assertive-bg:hover,.assertive-border,.assertive-border.activated,.assertive-border:active,.assertive-border:hover,.bar .button-assertive,.bar .button-assertive.activated,.bar .button-assertive:active,.bar .button-assertive:hover,.bar-assertive,.bar-assertive.activated,.bar-assertive:active,.bar-assertive:hover,.button-assertive,.button-assertive.activated,.button-assertive:active,.button-assertive:hover,.button-bar-assertive,.button-bar-assertive.activated,.button-bar-assertive:active,.button-bar-assertive:hover,.header-assertive,.header-assertive.activated,.header-assertive:active,.header-assertive:hover{background-color:#f44336;color:#fff}.assertive-900-bg,.assertive-900-bg.activated,.assertive-900-bg:active,.assertive-900-bg:hover,.assertive-900-border,.assertive-900-border.activated,.assertive-900-border:active,.assertive-900-border:hover,.bar .button-assertive-900,.bar .button-assertive-900.activated,.bar .button-assertive-900:active,.bar .button-assertive-900:hover,.bar-assertive-900,.bar-assertive-900.activated,.bar-assertive-900:active,.bar-assertive-900:hover,.button-assertive-900,.button-assertive-900.activated,.button-assertive-900:active,.button-assertive-900:hover,.button-bar-assertive-900,.button-bar-assertive-900.activated,.button-bar-assertive-900:active,.button-bar-assertive-900:hover,.header-assertive-900,.header-assertive-900.activated,.header-assertive-900:active,.header-assertive-900:hover{background-color:#b71c1c;color:#fff}.assertive-100-bg,.assertive-100-bg.activated,.assertive-100-bg:active,.assertive-100-bg:hover,.assertive-100-border,.assertive-100-border.activated,.assertive-100-border:active,.assertive-100-border:hover,.bar .button-assertive-100,.bar .button-assertive-100.activated,.bar .button-assertive-100:active,.bar .button-assertive-100:hover,.bar-assertive-100,.bar-assertive-100.activated,.bar-assertive-100:active,.bar-assertive-100:hover,.button-assertive-100,.button-assertive-100.activated,.button-assertive-100:active,.button-assertive-100:hover,.button-bar-assertive-100,.button-bar-assertive-100.activated,.button-bar-assertive-100:active,.button-bar-assertive-100:hover,.header-assertive-100,.header-assertive-100.activated,.header-assertive-100:active,.header-assertive-100:hover{background-color:#ffcdd2;color:#fff}.bar .button-stable,.bar .button-stable.activated,.bar .button-stable:active,.bar .button-stable:hover,.bar-stable,.bar-stable.activated,.bar-stable:active,.bar-stable:hover,.button-bar-stable,.button-bar-stable.activated,.button-bar-stable:active,.button-bar-stable:hover,.button-stable,.button-stable.activated,.button-stable:active,.button-stable:hover,.header-stable,.header-stable.activated,.header-stable:active,.header-stable:hover,.stable-bg,.stable-bg.activated,.stable-bg:active,.stable-bg:hover,.stable-border,.stable-border.activated,.stable-border:active,.stable-border:hover{background-color:#e0e0e0;color:#fff}.icon-help,.icon-help *,.icon-help:active,.icon-help:active *,.icon-help:hover,.icon-help:hover *,.positive,.positive *,.positive-900,.positive-900 *,.positive-900:active,.positive-900:active *,.positive-900:hover,.positive-900:hover *,.positive:active,.positive:active *,.positive:hover,.positive:hover *,.text-editable:active:hover,.text-editable:active:hover *,.text-editable:hover,.text-editable:hover *{color:#3f51b5}.positive-100,.positive-100 *,.positive-100:active,.positive-100:active *,.positive-100:hover,.positive-100:hover *{color:#c5cae9}.calm-900,.calm-900 *,.calm-900:active,.calm-900:active *,.calm-900:hover,.calm-900:hover *{color:#0d47a1}.calm-100,.calm-100 *,.calm-100:active,.calm-100:active *,.calm-100:hover,.calm-100:hover *{color:#bbdefb}.royal,.royal *,.royal:active,.royal:active *,.royal:hover,.royal:hover *{color:#673ab7}.royal-900,.royal-900 *,.royal-900:active,.royal-900:active *,.royal-900:hover,.royal-900:hover *{color:#311b92}.royal-100,.royal-100 *,.royal-100:active,.royal-100:active *,.royal-100:hover,.royal-100:hover *{color:#d1c4e9}.balanced,.balanced *,.balanced:active,.balanced:active *,.balanced:hover,.balanced:hover *{color:#4caf50}.balanced-900,.balanced-900 *,.balanced-900:active,.balanced-900:active *,.balanced-900:hover,.balanced-900:hover *{color:#1b5e20}.balanced-100,.balanced-100 *,.balanced-100:active,.balanced-100:active *,.balanced-100:hover,.balanced-100:hover *{color:#c8e6c9}.energized,.energized *,.energized:active,.energized:active *,.energized:hover,.energized:hover *{color:#ff9800}.energized-900,.energized-900 *,.energized-900:active,.energized-900:active *,.energized-900:hover,.energized-900:hover *{color:#e65100}.energized-100,.energized-100 *,.energized-100:active,.energized-100:active *,.energized-100:hover,.energized-100:hover *{color:#ffe0b2}.assertive,.assertive *,.assertive:active,.assertive:active *,.assertive:hover,.assertive:hover *,.icon-alert,.icon-alert *,.icon-alert:active,.icon-alert:active *,.icon-alert:hover,.icon-alert:hover *{color:#f44336}.assertive-900,.assertive-900 *,.assertive-900:active,.assertive-900:active *,.assertive-900:hover,.assertive-900:hover *{color:#b71c1c}.assertive-100,.assertive-100 *,.assertive-100:active,.assertive-100:active *,.assertive-100:hover,.assertive-100:hover *{color:#ffcdd2}.stable,.stable *,.stable:active,.stable:active *,.stable:hover,.stable:hover *{color:#e0e0e0}.light,.light *,.light:active,.light:active *,.light:hover,.light:hover *{color:#fff}.button-text-dark,.button-text-dark *,.button-text-dark:active,.button-text-dark:active *,.button-text-dark:hover,.button-text-dark:hover *,.dark,.dark *,.dark:active,.dark:active *,.dark:hover,.dark:hover *{color:#444}.light-border{border-color:#ddd}.navbar-default .navbar-nav>li>a{margin:0;padding-right:26px;padding-left:26px;border-top:3px solid transparent;color:#bfd5c9;opacity:1}.mid-bar{padding:16px}.mid-bar h1,.mid-bar h2,.mid-bar h3,.mid-bar h4,.mid-bar h5,.mid-bar h6{color:#fff;margin-bottom:5px}.mid-bar p{color:rgba(255,255,255,.5);margin-bottom:0}.card>.item-avatar,.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:95px}.item,.item-complex .item-content,.item-radio .item-content,.menu{background-color:transparent}.bar .button.button-clear,.bar .button.button-text,.dark-bg h2,.item.dark-bg h2,.popup-container.confirm .popup-head h1,.popup-container.confirm .popup-head h2,.popup-container.confirm .popup-head h3,.popup-container.confirm .popup-head h5,.popup-container.confirm .popup-head h6,.popup-container.confirm .popup-head p,.popup-container.warning .popup-head h1,.popup-container.warning .popup-head h2,.popup-container.warning .popup-head h3,.popup-container.warning .popup-head h5,.popup-container.warning .popup-head h6,.popup-container.warning .popup-head p{color:#fff}.tabs-striped .tabs{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#menu .footer .bar .button.button-icon .icon-help:before,.bar .button.button-icon #menu .footer .icon-help:before,.bar .button.button-icon .icon-alert:before,.bar .button.button-icon .icon-help:before,.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:24px}.button-icon.button.activated,.button-icon.button.active{opacity:initial}.popover,.popover.ng-enter,.popover.ng-leave{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.popover{position:absolute;right:8px;top:8px}.popover.ng-enter,.popover.ng-leave{opacity:1;transform:translate(0,-14px) scale(1,1)}.popover,.popover.ng-leave{opacity:0;transform:translate(50%,-50%) scale(0,0)}.button{overflow:hidden!important}@font-face{font-family:"Cesiumicons";src:url(../fonts/cesiumicons.eot?v=1.2);src:url(../fonts/cesiumicons.eot?v=1.2#iefix) format("embedded-opentype"),url(../fonts/cesiumicons.ttf?v=1.2) format("truetype"),url(../fonts/cesiumicons.woff?v=1.2) format("woff"),url(../fonts/cesiumicons.woff) format("woff"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE+R2VuZXJhdGVkIGJ5IEljb01vb248L21ldGFkYXRhPgo8ZGVmcz4KPGZvbnQgaWQ9ImNlc2l1bWljb25zIiBob3Jpei1hZHYteD0iMTAyNCI+Cjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMDI0IiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiAvPgo8bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMTAyNCIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwOyIgaG9yaXotYWR2LXg9IjUxMiIgZD0iIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwMDsiIGQ9Ik03MDQuNjMxIDU3MS4xMjhjLTg4LjYxMy0xNDEuNDA5LTIyMC40MDMtMjYzLjQwOC0zODUuNTIxLTMwNS40NzMtNjcuMjUyLTE4LjQ5My0xMzcuMTEyLTI1LjgyMi0yMDYuNzA1LTI3LjAyMiA4NS41NDktMTYzLjA5NSAyNzUuODEtMjYyLjI3MiA0NTguNTQ1LTIzNy45NSAxODEuMTY2IDE5LjA3NiAzNDEuNjYyIDE1Ny4yMTUgMzg4LjMzOCAzMzMuMTYyLTU0LjYwMSAxMDMuOTI0LTE0MS40OSAxOTcuODc0LTI1NC42NTYgMjM3LjI4M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTAxOyIgZD0iTTcwNS45MzcgNTcyLjA4OGMtMTYuNzU2LTExMS44MTUtODUuMDg2LTIwNy4yLTEwNy4yNjctMzE3LjIyMS05LjE4OC01MS41NDEgMjYuNzg2LTExMC42NDItMTQuNTc5LTE1NS41MTQtNDYuMjEtNTIuNDAyLTExOC45MDctNjUuMzc5LTE4MS45MzgtODcuNDY2IDE3Ny43My00Ny45MSAzNzkuNjYgMjQuMjE1IDQ4NS45ODIgMTc0Ljc4IDUwLjU1IDY5LjExNiA4MC45OTIgMTUyLjY4OSA4Ni42OTYgMjM4LjEyNS00Ni4wODUgOS40ODMtNjkuNDM2IDU1LjAyMC0xMTAuNTU2IDc0LjIwMS00OS45MTcgMjkuOTkyLTEwMy41NzEgNTMuNTE0LTE1OC4zMzkgNzMuMDk1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDI7IiBkPSJNNzA0LjQyMiA1NjMuNGMtMjMuNzg2LTUxLjQwOC0yNi40MzYtMTA5Ljc1Ny01NC4wODQtMTU5LjcyNi03LjIxMS0zMi45MDktNDEuMDkxLTg0LjI4OC0yOS40OTgtMTA2LjQ4OSAxMDEuNTktMTYuNTQyIDIwMy4xODEtMzMuMDg1IDMwNC43NzEtNDkuNjI3IDE4LjI3OCAzNS42NDkgMzEuODQ1IDczLjcxMSA0MC4yMDEgMTEyLjg5NC03My44NjggNzkuMjY5LTE1MC40NzEgMTYzLjQyNi0yNTUuMzU4IDIwMC42MzVsLTYuMDMyIDIuMzE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDM7IiBkPSJNNjY4LjYxNiA0NDUuNzk0Yy0yMC45ODMtMzEuNjc5LTI3LjI0NS03MC40MDgtNDQuMTA0LTEwNC40MjYtMTYuMjIxLTM1LjY4OS01MS40MTUtMTE5LjQ3MiAxOS42ODQtMTA5Ljg5IDUwLjQ1OSAyNC42NTQgOTUuMDUwLTEzLjM3OSAxNDUuODE5LTE2LjkyOSA0MC4zMTctNS41NjEgODIuMTM3LTQuNjY1IDEyMS4yOTUgNy4yMDEgMTQuOTgzIDMxLjcxNiA1MC42ODYgODIuNTk0IDM4LjcyNiAxMDguMzA1LTQ4LjU2MyA5Ljg2Ny05OS40NzMgMTMuODc5LTE0NS4yMTUgMzMuNjkgMTkuMjczIDQ1LjU5NS01NC45NzQgNTUuNDY1LTg5Ljk3NiA2OC44NC0xNS4zNDEgNC42MzctMzAuNzY1IDguOTk4LTQ2LjIyOSAxMy4yMDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwNDsiIGQ9Ik02MDcuNzE0IDE2MC44NzNjLTMwLjE4My04NS4wMDItMTIzLjE4Ni0xMTkuOTQ4LTIwMS44MzItMTQ1Ljk0MyA1LjAyMC0xMS4xODYgNzEuMTg2LTE2LjMyNSAxMDAuNzg3LTE3LjMyNiAxMTcuMTE1LTMuMDY3IDIzNC41NDIgNDEuMDg2IDMyMC40OCAxMjAuNzUyLTc0LjgzMSAyLjgzNC0xNDkuNTQ5IDE0Ljc4NC0yMTkuNDM1IDQyLjUxN3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA1OyIgZD0iTTU5OC40ODUgMjY4LjUzNGMtNC4xNzQtNDIuNzY0LTI1LjE4OC0xMTUuOTM2IDM0LjAyOC0xMjguNDk0IDU4LjUzNy0xNC41ODEgMTE5LjQzNC0xOC41MTEgMTc3LjA2Ny0zNy4wMjAgNDUuMjAxIDM3LjQ0NyA4My4xNjcgODMuNTk5IDExMS4xMiAxMzUuMjE3LTEwNy45OC0xLjY4MS0yMTkuNDMxLTEwLjIwNC0zMjIuMjE1IDMwLjI5N3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA2OyIgZD0iTTYwNy4yMSA2MDAuNzhjMTguOTU5IDIuMjkgMzUuMjM0IDEuODk2IDI4LjI4OC0yMS43MiA1LjkzNS0xNC42NDQtMzYuNjE0LTE0LjYwNy0yOC4yODggMS44NDEgMCA2LjYyNiAwIDEzLjI1MiAwIDE5Ljg3OXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTA3OyIgZD0iTTQ0NC41NDEgNzAyLjk2MmMyMS4wODggMy45NTggMzIuNjU0LTEuNjA0IDI2Ljk1NC0yNC40MzUtNS42NzMtMTEuMDcxLTM3LjY5Ny03LjY1LTI2Ljk1NCAxNC4wMzYgMCAzLjQ2NiAwIDYuOTMzIDAgMTAuMzk5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MDg7IiBkPSJNNTA0LjUzMiA2ODEuNzhjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwOTsiIGQ9Ik01MDIuNTM5IDQxNy40MjZjMTguNzg2IDAgMzcuNTcyIDAgNTYuMzU4IDAgMC0xOC43ODYgMC0zNy41NzIgMC01Ni4zNTgtMTguNzg2IDAtMzcuNTcyIDAtNTYuMzU4IDAgMCAxOC43ODYgMCAzNy41NzIgMCA1Ni4zNTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYTsiIGQ9Ik01MDguODU2IDYzMC4xNTdjMTMuNDc4LTMuMjk4IDQzLjIzNiA5LjY4MiAzNi43NTUtMTMuNTc1IDYuMjU0LTIzLjAzMC03LjA1Ny0yNi40OTYtMjcuMTUtMjMuMTgtMTguNTY3LTUuNDk2LTUuODcxIDI2LjUyNy05LjYwNSAzNi43NTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwYjsiIGQ9Ik01NjkuMTAzIDQ3NC4xNGMxOC45NyAxLjkyOSAzNi40OTIgMi40MDkgMjkuNDA0LTIxLjcyIDYuODk0LTE1LjkzMi0zNy4yMzUtMTUuODMzLTI5LjQwNCAwLjcyNSAwIDYuOTk4IDAgMTMuOTk2IDAgMjAuOTk0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MGM7IiBkPSJNNjI3LjA4NyA1MzEuNDAzYzE5LjM1IDcuODY5IDI5LjQwOC05LjU4MiAxOS4zMzgtMjIuMDUzLTIxLjU4My00LjE0Ny0yMC44MDEgMy4zODctMTkuMzM4IDIyLjA1M3oiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBkOyIgZD0iTTU0Ny42MjcgNTI1LjIzMWMxMy40NzgtMy4yOTggNDMuMjM2IDkuNjgyIDM2Ljc1NS0xMy41NzUgNi4yNTQtMjMuMDMwLTcuMDU3LTI2LjQ5Ni0yNy4xNS0yMy4xOC0xOC41NjctNS40OTYtNS44NzEgMjYuNTI3LTkuNjA1IDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTBlOyIgZD0iTTQwMy44MDIgMzM1LjAyNGMxNC40MjYtMS45OTggMzYuNzMgMy44ODIgNDYuNTU2LTIuNzE1LTIuMDIwLTE0LjMxNSAzLjkxMy0zNi41ODQtMi43MTUtNDYuMjkyLTEyLjg3OSAzLjU0NS00MC4wMTctNy4xNjktNDMuODQxIDUuNDMgMCAxNC41MjYgMCAyOS4wNTEgMCA0My41Nzd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkwZjsiIGQ9Ik00NDcuOTA3IDQwNi4wODRjMTYuODM2LTAuMTE3IDM5LjY3NyA1Ljc3IDMxLjg1NC0xOS4wMDUgNy44Mi0yNC4zNTUtMTYuMDgwLTE2Ljk5LTMxLjg1NC0xNy43NSAwIDEyLjI1MiAwIDI0LjUwMyAwIDM2Ljc1NXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTEwOyIgZD0iTTUxNS4yOTEgNDY4LjU2N2MtMTguOTcxIDEuODk0LTM2LjYxMiAyLjQ1OS0yOS41MS0yMS43Mi0yLjUzOC0xMi45OSAzOS42MjctMTMuMzc0IDI5LjUxIDUuODkxIDAgNS4yNzYgMCAxMC41NTMgMCAxNS44Mjl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTkxMTsiIGQ9Ik01NzguNDg2IDU3Mi44NjZjMjEuMjMyIDQuOTIgMjkuNDY5LTMuMTU2IDI0LjUwMy0yNC40MzUtMTMuMTA0LTguNTMyLTMyLjk1NS0yLjEwNi0yNC41MDMgMTkuMjAxdjUuMjM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGU5MTI7IiBkPSJNNjAxLjQ3MSA2NDEuNjg5Yy0xOC45NzEgMS44OTQtMzYuNjEyIDIuNDU5LTI5LjUxLTIxLjcyLTIuNTM4LTEyLjk5IDM5LjYyNy0xMy4zNzQgMjkuNTEgNS44OTEgMCA1LjI3NiAwIDEwLjU1MyAwIDE1LjgyOXoiIC8+CjxnbHlwaCB1bmljb2RlPSImI3hlOTE1OyIgZ2x5cGgtbmFtZT0iZGlhc3BvcmEiIGhvcml6LWFkdi14PSIxMDY0IiBkPSJNNjcwLjEgMjIuMTA5Yy0yOC42OTIgNDAuMDQ2LTczLjQ1OSAxMDIuNTcxLTk5LjQ4MiAxMzguOTQ1LTI2LjU3OSAzNy4xNTEtNDguMjAyIDY2LjE0Ni00OS4zNCA2Ni4xNjEtMS4xNjkgMC4wMTUtNDIuOTg2LTU2LjE5Ni05OC45MTItMTMyLjk2MS01My4yODgtNzMuMTQzLTk3LjMzLTEzMi45ODctOTcuODcyLTEzMi45ODctMS41MTYgMC0xOTIuMTE0IDEzNC4yNS0xOTIuNjA1IDEzNS42NjMtMC4yMzcgMC42ODQgNDIuODUgNjMuOTM1IDk1Ljc1MSAxNDAuNTU5czk2LjE4MiAxNDAuNTIzIDk2LjE4MiAxNDEuOTk5YzAgMi4zOC0xNy4xNDIgOC4zOTgtMTUxLjYwNSA1My4yMjYtODMuMzgzIDI3Ljc5OC0xNTIuNDIyIDUwLjg2MS0xNTMuNDIgNTEuMjUxLTEuMzg4IDAuNTQyIDYuNTUgMjcuMTAzIDMzLjc4MyAxMTMuMDMyIDE5LjU3OCA2MS43NzggMzYuMDQwIDExMi44MjggMzYuNTgxIDExMy40NDRzNzMuMDExLTIyLjU3NCAxNjEuMDQzLTUxLjUzNGM4OC4wMzMtMjguOTYgMTYwLjc5Ni01Mi42NTQgMTYxLjY5Ni01Mi42NTNzMS45MTkgMS4zNDggMi4yNjMgMi45OTRjMC4zNDQgMS42NDYgMS4xMDQgNzYuNjAxIDEuNjg4IDE2Ni41NjZzMS41NDYgMTY0LjMyMiAyLjEzNyAxNjUuMjM2YzAuODQ3IDEuMzA5IDI1LjU3NiAxLjY1OCAxMTYuMzY0IDEuNjQyIDYzLjQwOC0wLjAxMSAxMTUuOTQ4LTAuNDYgMTE2Ljc1Ni0wLjk5NyAxLjAxOC0wLjY3NyAyLjc1Ny01MC4xMzggNS42Ny0xNjEuMjI2IDQuNzgzLTE4Mi40MDggNC44ODYtMTg0Ljg1MiA3Ljc5NS0xODQuODUyIDEuMTI4IDAgNzAuODk2IDIzLjM1MyAxNTUuMDQxIDUxLjg5NnMxNTMuNCA1MS40MzMgMTUzLjkwMSA1MC44NjhjMS43LTEuOTE4IDcwLjcxNS0yMjYuNjAyIDY5Ljg2NS0yMjcuNDUxLTAuNDY0LTAuNDY0LTcwLjY5LTI0LjUxNC0xNTYuMDU2LTUzLjQ0NC0xMTcuNDMyLTM5Ljc5Ny0xNTUuMzE1LTUzLjE0My0xNTUuNjMzLTU0LjgyNy0wLjIzNS0xLjI0NCA0MC4xNDktNjEuNTk0IDkxLjQ5OS0xMzYuNzM3IDUwLjU1NS03My45ODEgOTEuNzMzLTEzNS4wNjIgOTEuNTA3LTEzNS43MzctMC41MjEtMS41NDktMTg5LjY4MS0xNDAuODg0LTE5MS4yNjMtMTQwLjg4NC0wLjY0MiAwLTI0LjY0MyAzMi43NjUtNTMuMzM1IDcyLjgxeiIgLz4KPC9mb250PjwvZGVmcz48L3N2Zz4=) format("svg");font-weight:400;font-style:normal}.cesiumicons,.cion,.ion-library:before,.ion-office:before,.ion-social-diaspora:before,.ion-social-duniter:before{display:inline-block;font-family:"Cesiumicons";speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-social-duniter:before{content:""}.ion-social-diaspora:before{content:""}.ion-office:before{content:""}.ion-library:before{content:""}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color 100ms linear;-moz-transition:background-color 100ms linear;-o-transition:background-color 100ms linear;-ms-transition:background-color 100ms linear;transition:background-color 100ms linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-pop,.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms}.digit-keyboard.animation-slide-up{transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}@media screen and (max-width:400px){@-ms-viewport{width:320px}}@media screen and (max-width:767px){.hidden-xs{display:none!important;visibility:hidden!important}.padding-top-xs{padding-top:10px}}@media screen and (min-width:768px){.hidden-xs{display:inherit;visibility:visible}.row.hidden-xs{display:flex!important}.button.hidden-xs{display:inline-block}}@media screen and (max-width:767px){.visible-xs{display:inherit!important;visibility:visible!important}.button.visible-xs{display:inline-block!important}}@media screen and (min-width:768px){.visible-xs{display:none!important;visibility:hidden!important}}@media screen and (max-width:767px){.padding-xs{padding:16px!important}.no-padding-xs{padding:0!important}.no-margin-xs{margin:0!important}}@media screen and (min-width:768px) and (max-width:991px){.hidden-sm,.row-header.hidden-sm,.row.hidden-sm{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:inline-block!important}.badge:empty{display:none!important}.padding-sm{padding:16px!important}.no-padding-sm{padding:0!important}.no-margin-sm{margin:0!important}}@media screen and (min-width:768px){.item-toggle .toggle{right:32px}}@media screen and (min-width:992px){.hidden-sm{display:inherit;visibility:visible}.row.hidden-sm{display:flex!important}.button.hidden-sm{display:flex}#menu .footer .popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-center.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-left.icon-help .button.hidden-sm,#menu .footer .popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-center.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-left.icon-help .button.hidden-sm,.popover-helptip #menu .footer .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-center.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-left.icon-help .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-alert .button.hidden-sm,.popover-helptip .icon-bottom-right.icon-help .button.hidden-sm,.popover-helptip .icon-center.icon-alert .button.hidden-sm,.popover-helptip .icon-center.icon-help .button.hidden-sm,.popover-helptip .icon-left.icon-alert .button.hidden-sm,.popover-helptip .icon-left.icon-help .button.hidden-sm,.popover-helptip .icon-right.icon-alert .button.hidden-sm,.popover-helptip .icon-right.icon-help .button.hidden-sm,.popover-helptip .icon.icon-bottom-center .button.hidden-sm,.popover-helptip .icon.icon-bottom-left .button.hidden-sm,.popover-helptip .icon.icon-bottom-right .button.hidden-sm,.popover-helptip .icon.icon-center .button.hidden-sm,.popover-helptip .icon.icon-left .button.hidden-sm,.popover-helptip .icon.icon-right .button.hidden-sm,.pull-left .button.hidden-sm,.pull-right .button.hidden-sm{display:inline-block}}@media screen and (max-width:767px){.hidden-sm{display:inherit;visibility:visible}}@media screen and (max-width:991px){.visible-sm{display:inherit!important;visibility:visible!important}.button.visible-sm{display:inline-block!important}}@media screen and (min-width:992px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:767px){.visible-sm{display:none;visibility:hidden}}@media screen and (max-width:991px){body{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEbSURBVDiNndMxK4ZRGMbx3zmRMrwvM2XCQFFik/IJpCw+hJLPgfIhLBY+gEEGJQPFwGZg9TIoBrfhOfSQHl7XeM7/fw3nvk+KCPWklEawgGlMlOMrnOMoIm6/8B8FKaWMFazhGQ94LFwbg+jHDvYi4u2zIKWUsIk5XNfE72ljHKfYiIjI5WIZMzhrkJW7s8IuQ8IwdnGDpwa5nhbGsJqxiNcuZIV9xWJWvXY3cr1kOmMSnX8UdDCZEb+RDYmMS9WMu80gLrNqw1r/KGjhPOMQvaol+Wva6MFhjoh7bGEUuVGrkgu7HRH3H8IBTjCLgQZ5oDAnxfnymRKWsI4X1Zw7NbGFPmxjP4qYfvjOQ5jHlGpHqCZ1geOIuKvz76QSW1T3cwmnAAAAAElFTkSuQmCC),auto}}@media screen and (min-width:992px){body{cursor:inherit}}@media screen and (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important;visibility:hidden!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:400px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (min-width:1200px){.hidden-md{display:inherit;visibility:visible}}@media screen and (max-width:991px){.hidden-md{display:inherit;visibility:visible}}@media screen and (min-width:992px) and (max-width:1199px){.visible-md{display:inherit!important;visibility:visible!important}}@media screen and (min-width:1200px){.visible-md{display:none;visibility:hidden}}@media screen and (max-width:991px){.visible-md{display:none;visibility:hidden}}@media screen and (min-width:1200px){.hidden-lg{display:none!important;visibility:hidden!important}.visible-lg{display:inherit!important;visibility:visible!important}.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:450px!important;display:block!important}.badge:empty{display:none!important}}@media screen and (max-width:1199px){.hidden-lg{display:inherit;visibility:visible}.visible-lg{display:none;visibility:hidden}}@media screen and (max-width:768px){.no-padding-xs{padding:inherit}}@media screen and (max-width:767px){.no-margin-xs{margin:0!important}}@media screen and (min-width:992px){.disable-user-behavior,.scroll,body,html{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important;-webkit-touch-callout:default!important;-webkit-tap-highlight-color:#387ef5;-webkit-user-drag:none!important;touch-action:auto!important;-ms-touch-action:auto!important;-ms-content-zooming:none!important}}@media screen and (max-width:844px){.hidden-nomenu{display:none!important;visibility:hidden!important}.visible-nomenu{display:inherit!important;visibility:visible!important}}@media screen and (min-width:845px){.hidden-nomenu{display:inherit;visibility:visible}.hidden-menu,.visible-nomenu{display:none!important;visibility:hidden!important}.visible-menu{display:inherit!important;visibility:visible!important}}@media screen and (max-width:844px){.hidden-menu{display:inherit;visibility:visible}.visible-menu{display:none;visibility:hidden}}body,html{position:absolute;top:0;left:0;height:100%;width:100%}.item.item-icon-right .item-select select,.item.item-icon-right.item-select select{right:48px;padding:0 20px 0 16px}.item.item-icon-right .item-select:after,.item.item-icon-right.item-select:after{right:56px}#unitPopover .item.selected,.popover-unit .item.selected{background-color:#f8f8f8}@media (max-width:767px){.popover-share{width:auto}}.ios ion-content{pointer-events:auto}.popover-share{height:110px}.popover-share .bar{box-shadow:none!important}.popover-share .bar-header{height:20px}.popover-share .bar-header .title{font-size:12px;font-weight:700;height:20px;line-height:19px;max-width:260px;margin:0 5px;text-align:left}.popover-share .bar-header span{font-size:10px;height:20px;position:absolute;right:0;top:0;margin:0 5px;display:block}.popover-share .has-header{top:20px}.popover-share .has-footer{bottom:40px}.popover-share .bar-footer{color:#387ef5;height:40px}.popover-share .bar-footer .button-icon{padding:0 5px}.popover-share .bar-footer .button-close{position:absolute;right:0;bottom:0}.popover-share .item{padding:5px}.popover-share .item input{border:1px solid gray;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}.popover-share .item input:focus{border-color:#387ef5;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.3),0 0 8px #08c}.popover-share .list .item{border-bottom:0!important}.popover-light .bar-footer,.popover-light .bar-header,.popover-notification .bar-footer,.popover-notification .bar-header{height:30px}.popover-light .bar-footer .title,.popover-light .bar-header .title,.popover-notification .bar-footer .title,.popover-notification .bar-header .title{color:#000;text-align:left;left:0!important;font-size:14px;line-height:30px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-center.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-center.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-footer .icon-center.icon-alert,.popover-helptip .popover-light .bar-footer .icon-center.icon-help,.popover-helptip .popover-light .bar-footer .icon-right.icon-alert,.popover-helptip .popover-light .bar-footer .icon-right.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-light .bar-footer .icon.icon-center,.popover-helptip .popover-light .bar-footer .icon.icon-right,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-light .bar-header .icon-center.icon-alert,.popover-helptip .popover-light .bar-header .icon-center.icon-help,.popover-helptip .popover-light .bar-header .icon-right.icon-alert,.popover-helptip .popover-light .bar-header .icon-right.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-center,.popover-helptip .popover-light .bar-header .icon.icon-bottom-right,.popover-helptip .popover-light .bar-header .icon.icon-center,.popover-helptip .popover-light .bar-header .icon.icon-right,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon-center.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-center.icon-help,.popover-helptip .popover-notification .bar-footer .icon-right.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-right.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-footer .icon.icon-center,.popover-helptip .popover-notification .bar-footer .icon.icon-right,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-right.icon-help,.popover-helptip .popover-notification .bar-header .icon-center.icon-alert,.popover-helptip .popover-notification .bar-header .icon-center.icon-help,.popover-helptip .popover-notification .bar-header .icon-right.icon-alert,.popover-helptip .popover-notification .bar-header .icon-right.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-center,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-right,.popover-helptip .popover-notification .bar-header .icon.icon-center,.popover-helptip .popover-notification .bar-header .icon.icon-right,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-footer .popover-helptip .icon-center.icon-alert,.popover-light .bar-footer .popover-helptip .icon-center.icon-help,.popover-light .bar-footer .popover-helptip .icon-right.icon-alert,.popover-light .bar-footer .popover-helptip .icon-right.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-light .bar-footer .popover-helptip .icon.icon-center,.popover-light .bar-footer .popover-helptip .icon.icon-right,.popover-light .bar-footer .pull-right,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-light .bar-header .popover-helptip .icon-center.icon-alert,.popover-light .bar-header .popover-helptip .icon-center.icon-help,.popover-light .bar-header .popover-helptip .icon-right.icon-alert,.popover-light .bar-header .popover-helptip .icon-right.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-center,.popover-light .bar-header .popover-helptip .icon.icon-bottom-right,.popover-light .bar-header .popover-helptip .icon.icon-center,.popover-light .bar-header .popover-helptip .icon.icon-right,.popover-light .bar-header .pull-right,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon-center.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-footer .popover-helptip .icon-right.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-footer .popover-helptip .icon.icon-center,.popover-notification .bar-footer .popover-helptip .icon.icon-right,.popover-notification .bar-footer .pull-right,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-center.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-center.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-right.icon-help,.popover-notification .bar-header .popover-helptip .icon-center.icon-alert,.popover-notification .bar-header .popover-helptip .icon-center.icon-help,.popover-notification .bar-header .popover-helptip .icon-right.icon-alert,.popover-notification .bar-header .popover-helptip .icon-right.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-center,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-right,.popover-notification .bar-header .popover-helptip .icon.icon-center,.popover-notification .bar-header .popover-helptip .icon.icon-right,.popover-notification .bar-header .pull-right{margin-right:10px}#menu .footer .popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-light .bar-header .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-footer .icon-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,#menu .footer .popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-light .bar-header .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip #menu .footer .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-footer .icon-left.icon-alert,.popover-helptip .popover-light .bar-footer .icon-left.icon-help,.popover-helptip .popover-light .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-light .bar-footer .icon.icon-left,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-light .bar-header .icon-left.icon-alert,.popover-helptip .popover-light .bar-header .icon-left.icon-help,.popover-helptip .popover-light .bar-header .icon.icon-bottom-left,.popover-helptip .popover-light .bar-header .icon.icon-left,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon-left.icon-alert,.popover-helptip .popover-notification .bar-footer .icon-left.icon-help,.popover-helptip .popover-notification .bar-footer .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-footer .icon.icon-left,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-bottom-left.icon-help,.popover-helptip .popover-notification .bar-header .icon-left.icon-alert,.popover-helptip .popover-notification .bar-header .icon-left.icon-help,.popover-helptip .popover-notification .bar-header .icon.icon-bottom-left,.popover-helptip .popover-notification .bar-header .icon.icon-left,.popover-light .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-footer .popover-helptip .icon-left.icon-alert,.popover-light .bar-footer .popover-helptip .icon-left.icon-help,.popover-light .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-light .bar-footer .popover-helptip .icon.icon-left,.popover-light .bar-footer .pull-left,.popover-light .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-light .bar-header .popover-helptip .icon-left.icon-alert,.popover-light .bar-header .popover-helptip .icon-left.icon-help,.popover-light .bar-header .popover-helptip .icon.icon-bottom-left,.popover-light .bar-header .popover-helptip .icon.icon-left,.popover-light .bar-header .pull-left,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon-left.icon-alert,.popover-notification .bar-footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-footer .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-footer .popover-helptip .icon.icon-left,.popover-notification .bar-footer .pull-left,.popover-notification .bar-header #menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header #menu .footer .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip #menu .footer .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-bottom-left.icon-help,.popover-notification .bar-header .popover-helptip .icon-left.icon-alert,.popover-notification .bar-header .popover-helptip .icon-left.icon-help,.popover-notification .bar-header .popover-helptip .icon.icon-bottom-left,.popover-notification .bar-header .popover-helptip .icon.icon-left,.popover-notification .bar-header .pull-left{margin-left:10px}.popover-light .bar-footer a,.popover-light .bar-header a,.popover-notification .bar-footer a,.popover-notification .bar-header a{font-size:14px;text-decoration:none;line-height:30px}.popover-light .has-footer,.popover-notification .has-footer{bottom:28px}.popover-light .has-header,.popover-notification .has-header{top:30px}.popover-light .item.unread,.popover-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.popover-light .item-avatar,.popover-notification .item-avatar{padding:12px 10px 8px 76px;min-height:80px!important}#menu .footer .popover-light .item-avatar h4 i.icon-help,#menu .footer .popover-notification .item-avatar h4 i.icon-help,#menu .footer .view-notification ion-item h4 i.icon-help,.popover-light .item-avatar h4 #menu .footer i.icon-help,.popover-light .item-avatar h4 i.icon,.popover-light .item-avatar h4 i.icon-alert,.popover-light .item-avatar h4 i.icon-help,.popover-notification .item-avatar h4 #menu .footer i.icon-help,.popover-notification .item-avatar h4 i.icon,.popover-notification .item-avatar h4 i.icon-alert,.popover-notification .item-avatar h4 i.icon-help,.view-notification ion-item h4 #menu .footer i.icon-help,.view-notification ion-item h4 i.icon,.view-notification ion-item h4 i.icon-alert,.view-notification ion-item h4 i.icon-help{font-size:18px!important;line-height:12px!important;vertical-align:middle!important}.popover-light .item-avatar .item-content .item-image,.popover-light .item-avatar .item-content>img:first-child,.popover-light .item-avatar .item-image,.popover-light .item-avatar>img:first-child,.popover-notification .item-avatar .item-content .item-image,.popover-notification .item-avatar .item-content>img:first-child,.popover-notification .item-avatar .item-image,.popover-notification .item-avatar>img:first-child{top:12px;left:10px}.popover-light .button.button-small,.popover-notification .button.button-small{height:30px;font-size:12px;padding:0 5px!important;line-height:30px}.popover-invitation,.popover-network,.popover-peer-info{width:420px}.popover-wallets .item-avatar{padding-left:95px!important}#menu .footer .popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar #menu .footer .icon-help:last-child,.popover-wallets .item-avatar .icon-alert:last-child,.popover-wallets .item-avatar .icon-help:last-child,.popover-wallets .item-avatar .icon:last-child{display:none}.popover-endpoints .item .badge,.popover-peer-info .item .badge{right:16px!important}.popover-endpoints .item .badge.badge-secondary,.popover-peer-info .item .badge.badge-secondary{top:35px!important}.popover-unit{height:108px;max-width:115px}.view-notification .item.unread{background-color:#ecf0f7!important;border-color:#dddfe2!important}.bar.bar-header .button.button-clear.button-icon i.ion-android-more-vertical,.bar.bar-header .button.button-clear.button-icon.ion-android-more-vertical,.bar.bar-header .button.button-icon.button-text i.ion-android-more-vertical,.bar.bar-header .button.button-icon.ion-android-more-vertical.button-text{padding-left:8px;padding-right:8px}#menu .footer .popover-helptip .bar .buttons.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-center.icon-help,#menu .footer .popover-helptip .bar .buttons.icon-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-bottom-right.icon-help,#menu .footer .popover-helptip .bar>.button.icon-center.icon-help,#menu .footer .popover-helptip .bar>.button.icon-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-bottom-right.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-center.icon-help,.bar #menu .footer .popover-helptip .buttons.icon-right.icon-help,.bar .buttons.pull-right,.bar .popover-helptip #menu .footer .buttons.icon-bottom-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-bottom-right.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-center.icon-help,.bar .popover-helptip #menu .footer .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon-bottom-center.icon-alert,.bar .popover-helptip .buttons.icon-bottom-center.icon-help,.bar .popover-helptip .buttons.icon-bottom-right.icon-alert,.bar .popover-helptip .buttons.icon-bottom-right.icon-help,.bar .popover-helptip .buttons.icon-center.icon-alert,.bar .popover-helptip .buttons.icon-center.icon-help,.bar .popover-helptip .buttons.icon-right.icon-alert,.bar .popover-helptip .buttons.icon-right.icon-help,.bar .popover-helptip .buttons.icon.icon-bottom-center,.bar .popover-helptip .buttons.icon.icon-bottom-right,.bar .popover-helptip .buttons.icon.icon-center,.bar .popover-helptip .buttons.icon.icon-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right,.popover-helptip #menu .footer .bar .buttons.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-center.icon-help,.popover-helptip #menu .footer .bar .buttons.icon-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-bottom-right.icon-help,.popover-helptip #menu .footer .bar>.button.icon-center.icon-help,.popover-helptip #menu .footer .bar>.button.icon-right.icon-help,.popover-helptip .bar .buttons.icon-bottom-center.icon-alert,.popover-helptip .bar .buttons.icon-bottom-center.icon-help,.popover-helptip .bar .buttons.icon-bottom-right.icon-alert,.popover-helptip .bar .buttons.icon-bottom-right.icon-help,.popover-helptip .bar .buttons.icon-center.icon-alert,.popover-helptip .bar .buttons.icon-center.icon-help,.popover-helptip .bar .buttons.icon-right.icon-alert,.popover-helptip .bar .buttons.icon-right.icon-help,.popover-helptip .bar .buttons.icon.icon-bottom-center,.popover-helptip .bar .buttons.icon.icon-bottom-right,.popover-helptip .bar .buttons.icon.icon-center,.popover-helptip .bar .buttons.icon.icon-right,.popover-helptip .bar>.button.icon-bottom-center.icon-alert,.popover-helptip .bar>.button.icon-bottom-center.icon-help,.popover-helptip .bar>.button.icon-bottom-right.icon-alert,.popover-helptip .bar>.button.icon-bottom-right.icon-help,.popover-helptip .bar>.button.icon-center.icon-alert,.popover-helptip .bar>.button.icon-center.icon-help,.popover-helptip .bar>.button.icon-right.icon-alert,.popover-helptip .bar>.button.icon-right.icon-help,.popover-helptip .bar>.button.icon.icon-bottom-center,.popover-helptip .bar>.button.icon.icon-bottom-right,.popover-helptip .bar>.button.icon.icon-center,.popover-helptip .bar>.button.icon.icon-right{top:0!important}.bar.bar-header{padding-right:5px!important}.bar.bar-header .buttons-right span{margin-left:0!important}.bar .title+.buttons.buttons-right{right:5px}.button-icon{border-color:transparent;box-shadow:none!important}.button-small-padding{padding:0 7px!important}.button-text{color:gray!important;font-size:12px}.button-text.button-small{padding:5px 2px;font-size:12px!important}.button-text-positive{color:#387ef5!important}.button-text-stable{color:#b2b2b2!important}.popup-buttons .button.icon-left,.popup-buttons .button.icon-right{padding-left:32px!important;padding-right:32px!important;line-height:42px}.button-fab-bottom-left.has-footer,.button-fab-bottom-right.has-footer{bottom:64px!important}#home .logo{margin-top:15px;width:100%;background-position:center center;background-repeat:no-repeat}#home .center{float:none;text-align:center}#home .center,#home .center .button{display:inline-block}@media screen and (max-width:767px){#home .logo{height:96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AgRBwUf93UlLAAAIABJREFUeNrtnXd8VkX2/99z71PTewEChBK6VCnSAigIUlVgLeuqq7vq2nddf+vqV9a2rm0XXQvsVxF11Q0qJKFLCSBNqZESOoSEkoTwpD/t3vP7IyEkkEASsO3Xeb2e1+u5be7c85k5M/M558zAz+nn9HP6Of1gSf3UP2DSOxuuMUW1AbAoWfH5Pf33/ZTKb/lJS3+aaIba+mfN9A4FMOA24GcAGi4/0TI+IcIMJlxBlAbh4scGoOv4fVAOIAqXHQr8BeRl3I4nOZ1+CqaIMNkoDGqhVRT+ZOvQDwpAxhwCkkoomnmzKjhTc5NTJMhnR1UIAXYnIVJGuKYR6dHoa4libHI6VwHhUqlAS02rc5vptRdofs8JEfPAhd43OUV0QJ8zRXl/7gMamIalSgdTcZ+CXwOBgBtYpjTSMdipFC1N6ILCIbDT6mXVshvUwfryG71Q7BUVRJcUcHLzb5XvZwDqScNTZYipMQ1hWFVJj4vJGw47M5Zcqwrr6g+GXEVb5WGQMmmlwUm/TsbqsWp3XfkPSZNEzYIvY4zK+RmAmjV+nvQTjSeBsQAi7FXwFiHMyBim3A3NZ0SqxBqK0UAHUXztrWDx+imqouY9ySkSh5W45IlkTlPK/D8NQPJ86YrJC8C4qlP7gLUIZUojRgQNReiZ+0UoBE4oxXFMjiPkorMtY5wqODfvwenSyyKMFY1iND6rWet7p0tAEHQP0Nm5aIwq/j8HwLBUGSgaT4nJNUqhVZ32C2QrOI3iNEKRUpgihAGaQLiCSIF4ReWoqUY6DGxGsUlg1arNbGRaZe0eMk8SlMYvFRheO7PWjVJ5ZzrnfCcD8JOTMUkd/u8GYJpoyb25SgnXi3CzaEQowaqgHOEjMflrxkSOoJQ0JK8hPWiu6bQVoZuC7gJXAl0V1WDmK5iPMF88LM2YokpHpkmiT3GHKeQrgw8zJikXwLD50tvwUr76+rr7jZ80AIMXSrTu5zcCdwL7lRCCoj8gCDN0gyeXX69O1SfogT0J1PwEKRtBmARpGoHqw8ljJC8rSRtwz3Lp/7ts0bAKGLqJQxSdTKE3igEKoqu+1o3wmTL558qJamNyqvRB8VsMFmRMUvMABs+TzladoBXj1Nf/FQCMSJUrDMWDQAcFH5omu5XGe0A74CRwV8Z4Nf+czjHIEkCM3yRGCTEGROnq/DmLvNT+finY31Uf+tgMue6lrXW9X0ApaCnQT+BKBSFVFw4rxVzNZK5PZ6hSRPisvLhulMpLTpeOpkHE6omshwa0xB8jAEPSJFHBc5rCKiYvZUxQm4aly20ivAM4ET7TDe45U+uT0yVKhEQ0Wmsm4TXzig3A2j2SkE7hhMc6aR5sJTjQQuDL9yb32r1lTdifXvrYlTxmqnhNTISSKsF7vCbuMh+lJT7yT7kpOFlByapjxO0tpp/XoE1V9iUIS5TGQUwGicZbGePUv0d8IUk+jajVE9W6n9RMOHmuhCmNJ0whVmk8u3Kcyhq9UOxD0+TfItwMuJTirpXj1cfJKRI0PF36+qGdEoIUYFOYI1sT3j+GpJZBdIl00M6pE1nXu0KCgkCBw24Ns2pgrdT6te6NsNd+5sYqsW8v5NAr2zidU0p3FDeKcFrpfClwdfJ8aWFs4lVrXyzJC6RHxnVq208CgOR0uQW4yYTnV41T68+okwofnynFKIGDojFWPLiS58vVylfeRiSApBAcN7ahfY8oukY76KspAr5r1dg9gsQPh5N4rIwTf9vi25vpsvYTkylKyFEKm/Tk76qUJw0nbUd8IUnLr1d76+ufzoyyfjAABi+UaIufV0XYmbGF8WcKNOILiTQszAf6AxuUxt1K6IBuxqq/tn8wNj6hfPrsjNMxAQwH9Ka9/dJUdIzNG3fquS5xt954X9GGpEe27i+mv8DNaOzwO/jECneLnbZD5knF6onq6Hnf3pfINZD/gwEwLFWuF4PJuuLxZeNUdnUfME8SDI0VQDtN8ZnpY7aycFWbUJz3dNb6rM0c0ybt07cdFcd3Q9tOTXp3xyv64naXEx3bosnlT5n1GseO7qf/lf1Df92D/utOsPfZrWhuP10FksRkqa4Ypym6DEwV19oJqqTm87qgX5Mqzb6coI59r51w8kqxqGJeEEVRxhb+WrMZVtX8NUAn4H1RrOsQSuBDXRjSMZyxmsJaXlbC1GEJtEzsyJv/2fCDTAJdp/KYOqIVfQdfy7NvzK0+bwrmu1ms+WQ/3QXCAJcGN2BgWbGdZeeqnGHzZdTKsWpJU8qgNeWhUYslQkqYrWB+xnj1fM0CjUuXAMNCKtBJQUqonW9e7MtVbw/ixc4RTNIUVoCAwGDuffw1dmVuZH3G/B8EgDdeeBjTMHjgiem1haLQ7u7E0E+uxh/pYDsQZsAS00Kv5J70Oi8jk5yh6TLgeyn0iAWSlJwqc4akSeK513rPEOvQNFmQnCaSnCbpb+yQp8p8clTqSYZhyG3XdZLrB8eJ1+OW7zPt3bVFkjspeW/6Uxe8zxSRd3fLhuRU8VZ916JrPpP252mENHn8uyfM0iU5OU3mjV4oIXX2B2nyWnKayIj5svbbUzK/IYLYsXWdDOuEfDzzxe8VgLsm9ZDx/SLFXVHWoPt3FkrO8HQpqgIhe8h86XROXzh+SKr0/M5U0PA0GW4tK3wyOGfrDOf+jSF1gDNR4GGHTtbn19C8awTXNSTfLj0GcNWIibz/5jRcp/K+l1a8YuGn7N+9jYeffgu7o2Ej3s7hNH9jINkojgMJymRDcrokn7ke5WGBUtz4nQAwPE2GC9waULi/u453oWmRSeeg3wHhA02j4OPhxITaaNWYQjz05zdAYF1G+vcCQGH+CXr0TWbY6CmNeq5zOF1/2Z5vUBxQEBiUt2vFhLc35U56a8MOf8HG7cH5u64dvkBaXVYAhqfKEBPuc1i4F5QFwFQWZ03extSYK2B58ypOhTuIaKxAouNa8PGyg4y54dfnXzQ8cPrbyp8YlwWAG3/1MH+fvbJJz96exNhYBzsQVmt+N0r8zQS6CHTRvWVe0+CeywbA8HTpZWj8nmBuXTRGedxh8a9XhLR4VTT1KUDyLHEoJy8podNN7fimYzgdmyqUyOj4eq6Y4HFV/hB+6KQptBf70U7p2JRp1rLQaWJWICQg0uDhfb0TsZFfSIwXngnQuXnRMOVOXikObwm5JhxdcmuL7MkpYsuzMhlhSridzb/pxODv6JPBEVV72uIpwMidV3nGGoaWcOP3CkLrYLoMi2Pe5hxlqaNOfDN0Pv1Xwfomt4DeM8TqtTLdAvdVm+lcxAFoGnkgKt/OcKUxBgj45yDi1XfFrOp2COtU+VM6P5b0aHcGmxZ7mWmxuQS1F2SHIAc1C/MUTL2kFhAUzyuYvLpswllqAb0SANE4OTidnsogQjQmj23JmhDDlXwqr5zImGb8X0kFR3ZFjh7QdV7KfuJF59+rxqo3aswJ2jaUpNPqGE5ORdiRMUFtqkV5qUqrkkNh0YRYE661ahx5qBtXzXr9f7jp6jbMfusZvB73d//19kj0xNvRE29Ha3F2QFZ2bCOFuz+l+NDS7+zVecezeeLecdwxriu9i1eOtGq4lcnwIfMkocZt24f3pkejW0ByukQh9F81QT1SB+kYJhoet58edjvbPR6m3tOZrRaNNrfd9z+43eXMfnMaX3wwnfv+32uMmvirJn9kWUkRh/btoCDvGOVlxZiGgTMwGKczkBatk2iW0AbNtR78ZZW1KGoQWEPwlR3HXbgHW1D8ZRe8x11OyqxX+fDt51Cazp0PPkvPXlcFjN5DYdphWqC4HpgOoBQrBQYBWxpFxg1Ll2eC4MX0caq85vnJKWIrcHC7qRFlMXjXD390WBi9aAwdahi/2bdrCy/9+dfsz9pG+869ePz592jbsXuDPvDIgd0sTf2AtStSOXLgwjZxXbfQqWM7evdMYkRyf1r0+Q3KHklpzlo8rgNYnJGEtr3usgl/7Yo0XnnqLlynCxg68gYefupNwiJjADjt5vgNyzkoJvkEc1NG1YBFipmxaoL6VYMBGJYuYzA4tXKi2nge/5MqsSbcic5Jr8EcqyL3d13ZcWMi5xFQIsLy+R/z+vMPUlpymlETbuOex14hNDyqzgIcP3qQGa8+zuovv0DMxts1lKb45V2/545HXq5dDvdJMN2gB6HskU1TNyeO8sS94ziQtZ2kLr3543Pv1lmhHljL3B2nSBR4dNUEtbJKnikrx6kpZ+02otXl/KUBDEgRp0CzuoRfOfEiCkW8YbDVChN0RfGk1vStUyBKcfW4W0hZmc0v7vwjy+d/SvbBrDo/cP6cf/Hrid1ZteSzOoWv6ToRUXHExLckMDi0bnOMKfQZdH5tl9NbME98iRTvbHLND4+IISgkjKf/nsKMzzbV25pvbU+M0vAqmFKD0j5ek7BMn4+j3j7AbmMgQbxfX0FEo79mkm3qFGkmU0Y0J0tXNL9Q4R3OQH7z+xf5xa8fIyTs/Br47vQn+eid5887f+WgUQy55nr6DBxJbLNWKHVWSxa7TrE/axub1y3jq+XzyD6YRc/+w+l2ZXLjpev3gsV2wVusNjv/mJ1x0ayujKafVZHhUfRNnithGZOUS1NsFugNHAJwKuxUudvXAmBgqgSbGkdWD1P+egwvQZQQLFBs86FMnavv7EiDXfjqEn7KrFfPE377Tj25/8/TuaL34Avm1av/CHr1H8Hdj/6VzE2rCQyq0TJMH+RtAM2KihyAJl5Eq6PiuQ5T+t51+ALjsLfqT8DIZ0HTmtxSNIXlqjhKMo4Rr2AE8LloZCo/I6s1g6fuFqAFGjhXj1P1R5WU0kMJ2QCGheFhdnbGOoltamEzN69hxqu1qfN+Q8bwxsdfXVD4daUr+gypVy0oWxjYY1DWkHN1FmTNozy+M+VdhlBqFOCaMZjTsyfjP7y+ySCMSSAe8Boalc2xjP2mOktKWrW6HQ20pZkU1Jfp6IUSguA3tcoJtzIZOiaB0qYW0jQMpj97P6ZxllTr1X8Ez705r8G08IV7ZAtE9oDwrvXfszedshN7MOI7AOALbUZZt5F4midQuup/yH//Bjy7Gm+h6xVND4uiTKt0jSRjiirVwHlmFOm31M06WC40W/MIPXCzBQeJojAFBoxv3XSXkWULPubgnszq4+DQCP704mwsFuulCV78YFZpUEvAWcpC/JinNqJsYRT5Y9i/IZ3cfevJ37sJX2gkNpuV8NBg4uMiad48BqPtIKzFJyjbOpOib2YR3GkMzr6/bhhjonC0CSNv72muGJkuHZeOU9Ujj+IQguweyhpFxvVOlwBDkFVTVOnQdHEgBNl1fLHOSkqiKWnuv/9Z6/iOB/5CVGzzS674Zv4apLQyOkmLHowK7lB1wc/GFSn8Z+5KMjN3XnCY63TY6ZjUin5XdqFv906ElORSfGIDJR8sJqTbDTh6/uKi5RgQjWNfIYZXkQxkiapsAT6DYDOEokbR0QHQ0YAdZ4BS0KZdCCeaKqSjh/aQlXnW3zUgKOSSZssXSz6vhxeeuIsnnn6d7du+vegco8LtYWvmXt55dy6rN+7EHdMeHT8S1wxXbgb5H/4C39FvLphHvxiamQpDhG4ASqiYnCK6CeHR+eePgC7QAkQpIWzNOHW6Rt+VMDCu6X5E33xV22tj+OipBAQGXxZhK6WfsRVV16m//+Vevkz7d635Sdeu3YjWSwmIqyQNS0rLyD2Wz6Hs4xj+yn4pMMDJ4KsqO3ZPRGusJXkoDbyJnTi1/h84vw4ldNLroJ0viqRQOipFFpB0ZryVD07NT0h9gYF1CvTqdBIMk9wa02VBI/rKaKKaKqRvt66tddytz+UzH6joIajoIdXH+7O2seiLWdXHfXp259HHniA+Pp4Ti17FaF/bdl5e4WbL9j1s2rybhBax2G1n5we+4Bh0dxE2Vw7eZkmU+91437+eiDEvoMfV7ux1DUeIlfJiLy2SZ4nDVPjsFgK8Wv2apk4ADGhffILVtT5SiE4Mbpytt2Y6dzbcpUfT3GjchfswvSXojjDsYW1qXTu14wMMTxErl571pQ0KCOCZ51/C6XRinDqEFhzAuYbNAKeDQf27M6h/3UNawxEKKGynj+INT8Cb1Jv8L6cR2m0yzh61qf8YB95iL7qKpK0Ifr+DYAz8DaajJ6eIDeDcEE5dR7do2JsKwPGjB2upg/jmiU1jSo+tw3UgnfIT5+tjv/s0fncheSeqGy8tWrbE6aw0YRdvW4wvrkOT3ms4QjCcIdhclXkbid0oykqjbOOsWvclhqBVcWztAAwvzUwfpxoMwPEAWig/h8+honWR+lFsyPjfXVFWqwPW9Mtv3bIFNcMWnEBQjdlxbk4uHo8bTBOf99Ji8AxHKKbNgaWs0hfXaJFESU4GxYufqr6nZTCBCjRTiFGKQA0CNGv9zrvnqSAdmkf62Hh+t4xLqqC9upsNw187xnn8L+7hkaffrlttuMsROWs8DQoOa7IQIrvcWpmXOt8CGt5xMhheOsdvYF7VuZLSEv7xj79zb3I7jFadLhlkf0Ak1uITHM7ay5Ovfnz2wiPPAfC7WZlAN5QiBiEIDUfyWAozGtYCRCmw+wo2fjTx7Q2ZE9/a8OyZTlhMigwTz5kmcR6SFyC2bPbaNIjffwkB6kpHISh/KfiKzv7ED34PZM5myNjJxETHVD+yePEiHnrtAzZ8m41hXno4sC8kDoe/pO75xJrnWldJKEYUEZi4LxSDXKsFDF5IlDI5LUp1USKdDYujoKr2mwgej8Fxi0brZd82ToAWixWHM7BaDZUWuxr3xd5CEANR1kqOpyIHs6A2b6OFXQkHMiC+A3almPaXZ/jDY7+nvKzynYfzinj9nRQiwkMYPqQPw4b0IjQkqMkgxHXpxWcvhOCOru0muj8rv6hK2lFKiNNsHL0gkVerpvqI93s4hqan+QIiT/sCooKqxqGiwOfycbKpBQ4OPRv25XGX4/N6GjHT/aqS2y/cVM/QqAj2zodmHatVU6dOnXn7rRl06FDbVanwdDGfpa7gwcf/zjvvzuXQkWNNbIkKb2iz6k757GmbW4GhhAiBQKOU7AYDYGhE6BHkp/62z5/KI9p94g5pHjQsVTpg4EZhFFTQZOfN8MjaBOqhfTsuT89bfBLysiC27XmXWrZsyduvT+fhCb1JbFXbY8PwG3y1YTtPPTeT516axZbtexo/uLAFVgrRe3aSW64HlCqoUOBU4M2YokobDICYqIwqu4Cq9PHHhAla5UIZlmNlHG+qnDp07VPreHdmI8JwraFgi0DZzqGW8/ZC2TGIqN8IX/rNHPpeey3PPvkbnnniboYO6onNVpv8y9p3hNf++QmvvfkJ5RWN8+rwhjXHVlzZiixuF4UB7Q4KlJtCNIr9F7UlnPkzTURTGtXKvd1RVlIZ0TjeVBxDYd1f1PQW0Ll7/1rHWzYsb7jBI2YoWvy1qIhKK6jowagTx1AhzVGxvVABrRC9TnsH5cUnMavY1jaJzbn7VxN4/W+PMPX6q4kMr23m3LJtD8+//D5er6+RILTA5spFHT/M2sipG4ASTSNMGuAVUQ3AmuWEo6juHWf+VvkQlgARGrQX0DNP1T+huFjq2vOqWsfrVqRxKr8JDSp/F2rvfFTClajQjihni8qf7jx/tHJkM4SfT94GBQUwbvQgXnvhQaZMGlGLejhy9ATpi75qnCqyOFCmD79Yjd1uZ4VoVJhCgGayq8EAGD6CTX9tytTUSamiJiYqsB0oodxtNK0jbtE6iXYde9Qaip5LT5+tUqeh7NDZn1EOhhd2poBrN8S0bZAJ0bVvHf6o+ulu3aIzfsxgnnzs9lpqafW6xocFe8MS8LqNUkzQIECDALGwucEAmAZOo0YLAFg9Vu0W2KiEAYpKm+bxCpoctDzxlt/VOv7Pe6+wP+v87KQ8G7NgffVP9s2HnR9DRCwExzRwxlSBmA1bmSyxdTNGX3OWmzpVWERFI/sCS1kBJSGdjlT1pWGi8EWXXTx8tRoAXbCtnXC+uVHXmQVgSKVr4o5CmrySyKgJt9G8ZbuzMvJ5ee4PN1NYUI+ZoeAQ6tA6sJqVtV413HBeunkuRssuDb4/Pra284ApjXOFtx7OZH3XaXPFJEIUIUDhnCnKaLgK0jDrWphixRjWCOzXNKJNIfTLoxxpKgAWq41H//IOqob6OHJgNw/cMojc7KoBgwjkbEEdWQ+aF4luAVZH40m74lOYF3E7qZlycs+OLxx2G4EBzsZNCywBsuKkJU9pODGIEhqmqs+2AAOzngmHaML7CH6lMXRHIeUl3nPIukakXv1HcPv902qdO5Z9gDvHd2Xmn2+gZMPbqIAAiL8CFdQCZYtEaeeTsH6/j127dpK1+/wGmZ46j3U7D2IYDYuoyT56guWrzk7yrujarnEkYP5hPK1HHs8rIxQ4qTRClFx4BnweFaEM6lV6UR7m5zs5AfRAsXaXi4x+MdzeVBBuu/cpKspK+fTdl852Yh4Pn3zxBSmpqXTp0pUePXoSGxtLWGgYcApXkYvCwlOcPn2aPXuy2Lt3Lz6fjylTptKxU22Sbd+W1aSv3kzgsl307JZE506JtE6IIzoqHKfTjuE3KCop42ReIZu2ZbFy9ebqoaeuaYwbPahxLfvEPr4eO+sLthFnCLGa4pSCkkYB4HPWbbMEmDNFeZPTZSbC0yYMm3eEJf0u0hd6PW4++d+/0a5jDwaOmFDFQRRD7jfgLeG3o7uRGHQfr787m7LSs1S1YRhkZm4nM3N70xnLispvLyur4KsN2/lqw9m8lKYQs279rjTF7bdcV2vWXOH2sGffEXp0S6p7JOUrxxaeyEd7KVMKlwb3A6eFhjmvVQPgL+bC5EwQ71DM4yjafX2czNMessLtdceErUp/n3+88CiuIhe3Tp7MwHgPGG6w6BDaAgIigUhGTmxFnyEj+fiTj1i4YAEVFRWN07uaRljY+dR2YlwoAU5HnbPa+oTfLD6KX04dTbcutSmNNWu38cGni2jfNoG7fjWe5vHRta7bd6/BddOKPcfW4jAhFHCgyDFpmANDNaneO10CNp/jln5uGpouC5VJm0BKnX8IWHIwOUFPxnBXEmCmwZGj2bz81v+yc98BWrZqyeN//BOdOzdsJOLxuNm4cSPbt2/j4MGDuFwuiopcFBUX4XA4seg6ERGRxMTE0KplK9onJdGnTx/Cw88PyjyxdDplzTvw7c797Nx9iNzj+ZzMK8Tj8VHuduOw2XA47cRGR9AyIZY+PTrSMak1mna+jUFE2LhpF+//ewFl5RUM7HcFt0wdRXBQAHrZaUJLiuWZVu/965uT7PIL92iKr0VIUhr/WjlWvddgAOpzn66ZktPkDxoM1MTbv4slu/CVHsfbWjTsJSXFzJw5gwUL5xMYGMT9v7ufkSOvreVY+32mE0unY7Tpdlnz9Hi9pC5Yw4Ila9F1nRsnDOP6mCKyp6z75JGvtW+VSXNR3GFzu54ydfutFl/FGwOyImZPu0iYUrUKatDCpUKGqYg1lK3NPl98wsbCwgMDozydZ73/HosXL+Lmm27hl7+8DbvdwQ+bLj/wdpuNKZNGMGxQL979MJ2P5ywl8b67i6Zv1dYhmMB9CmYGFuz5W5Vc39sWap8LuC5bSavW10w1DVJ03Xi+uZzU3ut1MLqirMjqdlcQExPLjyHlL38Hb6uk7+4FhsHx1UvMlGs2PvxNAYUKJogwHgvtwg5vPMyZxac89vB5j/R0NZiOvliaM0UZAid9XpYj+to8M8ox80BEXkhIyI9G+AB253e74plz51LZPPKzF7YUsEmZtBRhLIp3KlfklVwgD+GkR/eYl72tDkuXEQgdxMpC8bIkkPKYvyV9a3YN80b8WAAwDm/kVOEBfCFxlz1v28HNbHWOWPHXwId+rwzaCkxDEeXU6dCUpY8bHZWwcjMrgf4Zo9VhCzxboZzlL+xt7Sv3qYofCwB6dBu00tOXPV/L6aPs8bXe96LzoRcsQjHCDUBXJTzU1HWnGx8WMk2ZArlXp0vL5RPUR6A+P0mUenF7UK78GBZzAFBWxDAuL6gVJRzM9uQ+Ff36g1FjyfDDJNG4EVi1crxKaWq+TYrL0U0+9MMdAA4Lj5mavnOddAualdm0ha8vyU2lrvxyt2NGXL5YYc1TYe7bnXviz60+/E20hy/z0+iJyWMiVFgUt11S3k15aPlEtUtB7OQU0ReNUR6Lg9tNpbs+qehrT93rb/SGCM899yzT/vL0ZRNYac5u/IH1h6aapsniZRvYmrn34v2Jz+vZvuPE8RcTZt4jm1maX4YVxf+KIkaDO2uuFPm9AVBZMmbnORkDsOwalW36uNOv2TxvFg801h4oOtrQbLJ272b16gzatml7eaRvmngqii6soZRi1dqt/Gt2Kn5//R6X5adPFW7a4cqb0fzlu8szgxdkPI0hUaQA3RW8u3K8+vySW1dTH1w5UW3UhGo/71XXq/Wm4n6/2Jh2alTZjv3HsrmIUUNEePmVlwgLC+cXv7jpssi/6Kt3MVt3vSgAv71jIsUlZaTVY//NOXLi6LrsgILprd6cMG9yzKKMaco/NJ3pShgHbKeABy6LervE+eZXyalS7W+yepxaaJg84cMa8MjpycXb9ufn4KufXlq6dDEHDx7g0Uf/gNVqveSPKft2MRWawrRd3JjSumU8/Xp3IW3hGlyus8xxhc9wbco8tn9rcfPD77d9cdTqCWpr1fD7TwoeUIqDaNyacYdy/+AArBivVkBtRnT1RPWxUjzjRwv8Q9ENheuP23dSdKxO8u2tN9+kQ8eODBp06cEaJRvnUOI6ihHXpsHP3HbTaFCK2Z8uwjQxdhdUbFuXWVp8yN593udRT47LGF05qEhOlWkivKAUuUrn4Yyx6jJ5lV0iAABYyTh3obqM8epdBY/4BdsTJ5P5oHTgEk4eEIyzjPes92dRUlrK43/806WNePIPULDoNUrtghEUwp5tAAAGFUlEQVTfuH4kNCSICdcOlm+27OLTpbuzj+Yq+9Ko+6Y+ctd9f1w2RRVNThHb0HR5F8XTqnJ2+4IdLutaOJcMQMYYlaM4P3Bj5XiVqsPvBDyzjrVo9Uf37Z8ZbvGRtx8xDfZk7ebaa68lMbFpgRpSWsDhea+ya+3nFLfqjBnUuOgpQ/DtK2Knpe2V3wQEBvuz9mXvndPmr/3/fWv7DaBkxBcSme9giRLuFDhqKl71CvMWjVGeywnAZaENe88Qa3ASel3bTA1Lky6m8A8NWkY5OfLWAHfXqJzF8Xhd+MJaYLU1LujGvfNLinN3IhaNl+fvYPO2LB6+Zyp9ejXM97/Yy6k9xWp/ToEhTrc3xir+bZ9y3UOLHhxWPXyu2tEpDUgEtuuK9/zC+lXjVb1hkpPXiXPOANwN2vum5uz6cgBQFc5UazY16c31d5tK3a+OblSGxfppSXyv6Hw319y00pH7SPeJ+8e08wy2HvwSXLkQFg22+iMmPftWU3J0J4a3FIlvjdHmiipScjuqAXWo2MupI6VyZF+pPd/qKmtpFSMyFHP9+63/duOKcSoXXqlZYW4Qk1lAMDBfUyzwC0dWjaNO1+wRqRLr0wgpdZHdWOFfNgDqVBGailPCFSgQ3XFUabwlgssPo17eSvS8w/aFL/Yd2zPCQTzHt4DrEHiLICwebEF49iynJGcvhq8EiWuF0bJhsV0iSsp8RmF+hco/WqEV5FQEFIeUF7XSff6wEMo1V0DCix9FPTC3chn6s04BoxZLhMfD6wK3AB4NnhfIFsEV42b5ucIdtVji3T76i5/M1RNUk3dw/X428xTApLmC40pYampcta+ITpOXU9E1gmVjE3odbxbbKzTMSnRwwdfxLH0lzlecazWtNt0SGIy3yivaFIVflN8veH2GuCt8ZoAgjv2FnoPuE/qJ0369zFviDQ7weqNElNUUPTpez7PkWdu/lt7s7qUZ33KMB5QJD57L8I7xeJlJ5RI8ezTFg6aQgOC3eFhSM8Z3SJokaopRHi85MW7SGuJ89Z33AXWlsW+va25VeksA5fcf87W6Kr9IiNUgVkFzEwYqoYdSJImiWAmrlWKbSG3/pK5Fa1t1KF07yO4rDfbruq5M06LhtyKK/VnbA0+dyHW069anMDK2ebkhyuO3Bm/7Kvz6uSedrY7iI+fMHmF1qo8vJNLQmY7iFgBRvKdrPGOYDFeg42Vxxg0qh2miDe3JUKUxVAnfSjCpGfUs7/OjAaAhaViqdFBWhpsmvUUYqIQSEZYpja+ViWmCXemV1iUBQ4zKEF8d/GiUmVBuMSnzaVSIjiuutGHugANSxOmw84Ao/h8QjuKAMnlI9/CVz8F4FA5lshIbfs3HOEORAKzvcIz5My/zDqw/+FaGk1NEL7TTxdRJEJP2UrmXZJgSFioL86PK2HSpzfwslS7a0J7coBR/qxrhVCC8FHpqawp+6eBxxPT1RLQoEUFTQrypOGwoPv9qbP3b4/7kAagBhC3PQXdlEmqCTdO5AhihBBuQgcY63c6GZdeooqYIflgvxgk8D3Sp6pVSLRq/17yU2gp3vWLxlvxSlGYUt7hyughzko6zeeb3sN/wj2472+SVYtErSPL7aC46OVYDq0+nj2bSTaCzUvgQdgBZunDEp5FjmJw4d3MdgIGpEmxT3GTCQwo6V53erjRWmIIPE4umKA3M29XO4i25GVT5vPv6BX6f3/sj3lFb1NXpJPhMOugKwzQ4yHZyPP0JsfvoDMQBsUqIEUUMEKZMSkRRpiBUoBuKrggOQFDsBP5jGqywKg4sn6CqvZcnvLOhsyZcIeCbd2//z38G4Jw0eqHYywxaIiRoGprh51iQjZyadthRiyXC42USMFVghKrc9rZQwQcoZmTUWMHqx5R+EgCcq6KC927/H01840CzidKDyyMSC3yOkK7KxFr1RZsVzAxSfJR+EXfLnwFoQprw1oZ/KqiOdyqN6ojfGbobWAUs1032+gTBxG+zUuaHcpuNitAi3HMmYzaFMviukoX/ghRQevz2tClhs3+KZdf+GwDQvUXHfqpl/2m2AI23BBZW61G/2vJTBeD/A62herFIRO47AAAAAElFTkSuQmCC);background-size:96px 96px}#home .footer{display:none}}@media screen and (min-width:768px) and (max-width:991px){#home .logo{height:144px;background-image:url(../img/logo_144px.png);background-size:144px 144px}#home .button{max-width:350px;margin-top:20px}}@media screen and (min-width:992px){#home .logo{height:200px;background-image:url(../img/logo_200px.png);background-size:200px 200px}#home .button{max-width:350px;margin-top:20px}.circle-bg-dark{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-725px -145px;background-size:1024px 1024px}}.gray,.gray b,.popover-helptip .button-close,.popover-helptip .button-close b,.popover-share .bar-footer .button-close,.popover-share .bar-footer .button-close b,.popover-share .bar-header span,.popover-share .bar-header span b{color:gray!important}#home h4 a,.gray a,.gray a:hover,.gray a:visited,.icon-help a,.icon-help a:hover,.icon-help a:visited,.popover-helptip .button-close a,.popover-helptip .button-close a:hover,.popover-helptip .button-close a:visited,.popover-share .bar-footer .button-close a,.popover-share .bar-footer .button-close a:hover,.popover-share .bar-footer .button-close a:visited,.popover-share .bar-header span a,.popover-share .bar-header span a:hover,.popover-share .bar-header span a:visited,.positive a,.positive a:hover,.positive a:visited,.text-editable:hover a,.text-editable:hover a:hover,.text-editable:hover a:visited{color:inherit}.item a{text-decoration:none}.no-padding{padding:0!important}.avatar-member{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0LKSJACf7RAAAFqElEQVR42u2dbUjdZRjGf+c4dTndFnO+TRcD3ZIxdVlJL2PSIHDZBqtRaINojWRrgR8a4fDbIOrzoIKIMay2iGpQsg0y4xRZIk5i1NTaik3TZeRcvmzl0wc7qTPz6Lnv5/kfz/86XzxyuM59Xf/r//o893MCBqtIoYgSSsgjndWkk8RV+v959dFPP9/wm82CAtYM2MCTPMZGgnN87iZNvMdH1mww+q8Es9e0m/nhhjltnjG361enL3+HOT9P8ZMYNC+YhFg2IN2cWbD4MNrN3bFqQIm5FLV8Y4wZMbtj0YBdZlhEvjHGjJsXY82A+8yomPwJ1OhUqnMazKOVTGHOUe7lW/lS5zorLwSJnBKXD0s5SUpsGHCAzQqsUMgr8qTyu8AqulmpYgCMcQd9spTyCahTkw/JHJCmlE5AIj2kqxkAA6xlWJJQOgEVqvJhFY/LEkobUKUqH2Cbtw0oVTdgqyyd7DEgiWES1C1YxyU5MtkEFFiQD/dLkskacKcF+ZAb7waIXmbHogEZ3jVANJyxaEDAigHJ8W6AKDRuh2MKfgJcF+AafgJ8A+IcfgJcF+AafgJcF+AafgJE2URvU2aFqM2SzwSXM8ASCwaMkc9lKTLJBNRbkQ/JvCRHJpeANPpZasUAuEa21PiQXAJ2WJMPy9ktRSVnwBPW5IPgCJScAXdZNSDHewbcsGpAmvcMGLVqgNhkGTkDfrVqQLv3DHjfqgGnpYjkrgMyuGLpQgigkO9liOQS0M+H1uS/JSVf9l5gBV9RaEH+TxRxTYpM8l5gkEcZUJc/zB45+dK3wz9QhW4LiuERQpKE0k+EzvKuqgENNMsSyj8SO6lqwFFpQvmpskv4kTwl+e3ydxzyCfhTfiv9i9flKTX6BVZymWUK8ofI4bo0qcZj8d85psAKDfLytRonC7ig8Ii8hA75UnUGRrr4RJyzRUO+3sjQq8J8hjqdQrUMCAkfsV/jM51C9Zqnl3GOfCGuixRpHABBc3D0D/bwlwiTYa+WfN3R4RZeFuFRiz9orx+QSEvUF6+K8Qft+QE3eSpqDsX4g40VJKL9AuU5B/4MEdcFuIZvgOsCXEPbgFQPMDg1INsDDL4BLg2IfqRIeaxJ24CdHmD4X+heCaZxNerJk2OsZkivRN0EVAvMHU2mWrNEzQSk0C1yCOslX3bViKnQTECt0BE8m1q9IvUSUEaz2NTJUcr5OrYMyKWVLEG+X7hHboL0VOjsArk0isqHLBp1WrM1DCijlU3irJtopcz7BqRwmGbhrR9GFs0cFl9PTHBpujRTY3qEF9GbiR5TY9K8tJxeKtlkU8hOHrLUMgNjNHGK7+ilN9pHpvMxYAXVPKu0Upwc2nmTtxmM+PMRRiXB7DcD6vGWwoDZH+lqtJEl4EGOUux6084THTzPF3N/bO6zQA4NhGJOPhQToiGCxoo5InLQDLnOc1QYMgcXvgsk8QZPu96QAjjGc7P3s8xuQAYf8IDr2oXwJbvon58BG2lkreu6BfEz2zkfuQEb+FxhYVy36GMrFyIzYB0h1riuVwFX2MLFW/858zSYR9OilA9raJo5i/nWBGQSosB1pYroYsv0lYmnJyDIiUUtHwo4MV3zdAPqKXddoTrKqZ/6duouUM6ncTFcPs62yb6TSQPS6ZBrSfY4eigOd7qGt3iA43EjH3I4Hp58FTZgHxWuq7KKCvZN/DGxC6TSveiu/OZCH/lcDyfgUNzJh0wOwUQCcujS+PEKz2OYAnqCwJG4lA8pHIGAKaI9Ls7+/4VxNgfMGR52XYdDnA0Yyz846DXEa/h9A3wDfAN8A3wDfAOAIL2uS3CK3iBtrmtwira4NyBg1nOO21zX4QgjlATp1OrMjwHU0RkwEOBjtruuxQEaqcQEAUMltYy4rscqRqilEjN1XGA9VZRSqt2k5By9tNHGO3ROvP0bpkYvBeY8k00AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NDE6MzQrMDI6MDCAxbwoAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEzVDExOjQxOjM0KzAyOjAw8ZgElAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=)}.avatar.disable{opacity:.7}.avatar-wallet{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgBA0JMBOJU4OdAAAB2klEQVR42u3au0ocUQCH8e+IxFRKUohrkG0Eu4BiLrCFDxDBNtjoI1gYTJnGQrRInc4HyBuopNHgBVZIwCJFsHBXLURtQiIyKYyFN3B3zJyd3e/X7e7MmXP+e26zOyBJkiRJkiRJkiRJkiRJkppVSF9E0sk0r+jKuOYnrLMQTqMHkHSzQTHS17fLy3CYroi21JWYj9Z8KDIfvwdUKAC7bGfc+CH6gGrojTyJJBemMr/u+4sLpy2njRZnAAZgAK2t/YHKGUzeZlzz5w2yFU6/EKVsQHAIGIABGIABGIABRN4ILbOVcc1fM9IQCfp7gHOAARiAAbgMXpuhH/GJ0brK/sG78OVfKR0cXPnsQ/iYkwAYY6LOM4eZpXR5q3/t77bH+RkCO5HObZQeEL4nQ7ypcwh8boIAIJQpuwoYQMsugwBJ/73L/h1+3vr+OYtXXn/Lzz7gCV8ZqOH4LUrhz4155IzJvA6B0VqaDwzHu7f/PwEsc1zT8RXWmmoOCJWkl9L95wBWbw6AvO8DfrHkMmgABmAABtDw0j8gUaWHeA9K7odC7GVwhXGgGOmB2ZX4PaDAJs8i9d89XoRq5AAgecoMg3Rm3PhTysyFIyRJkiRJkiRJkiRJkiRJku7wFyuiadmIs5Q9AAAAAElFTkSuQmCC)}.popup-container.confirm .popup,.popup-container.warning .popup{min-width:250px!important;width:350px!important}.popup-container.warning .popup-head{background-color:#ef473a}.popup-container.confirm .popup-head{background-color:#387ef5}body{--refresher-bg-height:100px;--refresher-background-color:inherit}.refresher-positive-900-bg{--refresher-background-color:#1a237e}.refresher-dark-100-bg{--refresher-background-color:#555}.platform-android .refresher-dark-100-bg:before,.platform-android .refresher-positive-900-bg:before{background-color:var(--refresher-background-color);position:absolute;display:block;top:0;width:100%;height:var(--refresher-bg-height,100px);z-index:-10;content:" "}.platform-android .scroll-refresher{z-index:50}.platform-ios .refresher-dark-100-bg,.platform-ios .refresher-positive-900-bg{background-color:var(--refresher-background-color)!important}.platform-ios .refresher-dark-100-bg .scroll,.platform-ios .refresher-positive-900-bg .scroll{background-color:#fff;bottom:auto;min-height:100%}#home h4,.refresher-dark-100-bg .scroll-refresher .ionic-refresher-content,.refresher-light .scroll-refresher .ionic-refresher-content,.refresher-positive-900-bg .scroll-refresher .ionic-refresher-content{color:#fff}.refresher-dark-100-bg .scroll-refresher .spinner,.refresher-light .scroll-refresher .spinner,.refresher-positive-900-bg .scroll-refresher .spinner{stroke:#fff;fill:#fff}.view-wallet{--refresher-bg-height:200px}.view-wallet .hero{height:200px}.view-wallet .hero h4:after{content:' ';display:inline-block}.view-wallet .item-text-wrap{white-space:normal!important}.view-wallet .item .comment{font-style:italic!important}.popover-helptip .view-wallet .item h3 .button-close,.popover-helptip .view-wallet-tx .item h3 .button-close,.popover-share .bar-footer .view-wallet .item h3 .button-close,.popover-share .bar-footer .view-wallet-tx .item h3 .button-close,.popover-share .bar-header .view-wallet .item h3 span,.popover-share .bar-header .view-wallet-tx .item h3 span,.view-wallet .item h3 .gray,.view-wallet .item h3 .popover-helptip .button-close,.view-wallet .item h3 .popover-share .bar-footer .button-close,.view-wallet .item h3 .popover-share .bar-header span,.view-wallet-tx .item h3 .gray,.view-wallet-tx .item h3 .popover-helptip .button-close,.view-wallet-tx .item h3 .popover-share .bar-footer .button-close,.view-wallet-tx .item h3 .popover-share .bar-header span{font-size:11px!important}.view-wallet .list .item span,.view-wallet-tx .list .item span{display:inline}.view-wallet .item-divider .badge{top:16px!important}.view-wallet .item.item-wallet-event{padding-top:5px;padding-bottom:5px;min-height:30px;max-height:auto;height:auto}.view-wallet .item.item-wallet-event:last-child{min-height:48px}#menu .footer .view-wallet .item.item-icon-left.item-wallet-event .icon-help,.view-wallet .item.item-icon-left.item-wallet-event #menu .footer .icon-help,.view-wallet .item.item-icon-left.item-wallet-event .icon,.view-wallet .item.item-icon-left.item-wallet-event .icon-alert,.view-wallet .item.item-icon-left.item-wallet-event .icon-help{font-size:17px;height:18px;top:6px}.view-identity .qrcode,.view-wallet .qrcode{position:absolute;display:block;top:0;right:0;width:0;height:0;background:#fff;z-index:1;-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;-webkit-transition:all .5s ease-out!important;transition:all .5s ease-out!important;overflow:hidden}.view-identity .qrcode img,.view-wallet .qrcode img{display:float;float:right;width:0;height:0;z-index:1;transition:all .5s ease-out!important}.view-identity .qrcode.on,.view-wallet .qrcode.on{width:50px;height:50px;padding:3px;margin:7px}.view-identity .qrcode.on img,.view-wallet .qrcode.on img{width:44px;height:44px}.view-identity .qrcode.on.active,.view-wallet .qrcode.on.active{margin:0!important;padding:10px;width:200px;height:200px}.view-identity .qrcode.on.active img,.view-wallet .qrcode.on.active img{width:180px;height:180px}@media screen and (max-width:991px){.view-identity .hero.hero-qrcode-active h1,.view-identity .hero.hero-qrcode-active h2,.view-identity .hero.hero-qrcode-active h3,.view-identity .hero.hero-qrcode-active h4,.view-identity .hero.hero-qrcode-active h5,.view-identity .hero.hero-qrcode-active i.avatar,.view-wallet .hero.hero-qrcode-active h1,.view-wallet .hero.hero-qrcode-active h2,.view-wallet .hero.hero-qrcode-active h3,.view-wallet .hero.hero-qrcode-active h4,.view-wallet .hero.hero-qrcode-active h5,.view-wallet .hero.hero-qrcode-active i.avatar{margin-right:200px}}.popover-wallet-actions{height:400px}@media screen and (max-width:991px){.view-wallet-tx{--refresher-bg-height:100px}.view-wallet-tx .hero{height:100px}}@media screen and (min-width:992px){.view-wallet-tx{--refresher-bg-height:140px}.view-wallet-tx .hero{height:140px}}.view-wallet-tx .item-text-wrap{white-space:normal!important}.view-wallet-tx .item .comment{font-style:italic!important}.view-wallet-tx .item-divider .badge{top:16px!important}.stable-100-bg{background-color:#f2f2f2!important}.item-tx{border-top:solid 1px #d3d3d3!important;padding-bottom:6px;padding-top:8px;margin:0!important}.item-tx .badge-energized{background-color:rgba(255,201,0,.3);color:#888!important}.item-tx .badge{right:1%!important;top:13px}.item-tx .badge-white{background-color:#fff}.item-tx .vertical-center{position:absolute;top:30%;width:40%}.item-tx .width-cup{width:175px}.expert-mode .item-tx .item-note{top:8%}.expert-mode .item-tx .badge-secondary{top:calc(8% + 23px)!important}.view-identity{--refresher-bg-height:200px;--refresher-background-color:#555}.view-identity .member{--refresher-background-color:#1a237e}.view-identity .hero{height:200px;background-color:var(--refresher-background-color)}.card .card-header{font-size:90%;opacity:.8;filter:alpha(opacity=80)}.card .stable-900-bg,.card.stable-900-bg,.item .stable-900-bg,.item-complex .item-content .stable-900-bg,.item-radio .item-content .stable-900-bg,.item.stable-900-bg{background-color:#e0e0e0!important}.card .item{background:inherit}.card .stable-bg,.card.stable-bg,.item .stable-bg,.item-complex .item-content .stable-bg,.item-radio .item-content .stable-bg,.item.stable-bg{background-color:#f8f8f8!important}.card .card-header{padding-top:5px!important;padding-bottom:0!important;min-height:25px}.card .item .card-footer{margin-bottom:5px}.card .card-avatar .avatar,.card.card-avatar .avatar{box-shadow:0 3px 4px 0 rgba(0,0,0,.26);top:7px;background-color:#d9d9d9}.card .card-avatar img.avatar,.card.card-avatar img.avatar{border:0;min-height:54px;min-width:54px}.card .card-avatar .item.item-avatar,.card.card-avatar .item.item-avatar{padding-top:10px;padding-bottom:2px;min-height:45px!important;margin-bottom:1px}.card .card-avatar .card-footer,.card.card-avatar .card-footer{padding-left:88px;overflow:hidden}#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,#menu .footer .popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card .card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card .card-avatar .card-footer .popover-helptip .icon.icon-center a,.card .card-avatar .card-footer .popover-helptip .icon.icon-right a,.card .card-avatar .card-footer .pull-right a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer #menu .footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip #menu .footer .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-bottom-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-center.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-alert a,.card.card-avatar .card-footer .popover-helptip .icon-right.icon-help a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-bottom-right a,.card.card-avatar .card-footer .popover-helptip .icon.icon-center a,.card.card-avatar .card-footer .popover-helptip .icon.icon-right a,.card.card-avatar .card-footer .pull-right a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip #menu .footer .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card .card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card .card-avatar .card-footer .icon.icon-center a,.popover-helptip .card .card-avatar .card-footer .icon.icon-right a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-bottom-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-center.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-alert a,.popover-helptip .card.card-avatar .card-footer .icon-right.icon-help a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-bottom-right a,.popover-helptip .card.card-avatar .card-footer .icon.icon-center a,.popover-helptip .card.card-avatar .card-footer .icon.icon-right a{margin-right:8px}.a.underline:active,.underline a:active,.underline a:focus,.underline a:hover,a.underline:focus,a.underline:hover{outline:1px!important;text-decoration:underline!important}.card-avatar-small .card,.card-avatar-small .card .card-avatar,.card-avatar-small .card.card-avatar,.card-avatar-small.card{min-height:45px}.card-avatar-small .card .avatar,.card-avatar-small .card .card-avatar .avatar,.card-avatar-small .card .card-avatar .item-avatar .avatar,.card-avatar-small .card .item-avatar .avatar,.card-avatar-small .card.card-avatar .avatar,.card-avatar-small .card.card-avatar .item-avatar .avatar,.card-avatar-small.card .avatar,.card-avatar-small.card .item-avatar .avatar{box-shadow:0 2px 2px 0 rgba(0,0,0,.26);height:30px!important;width:30px!important;left:5px!important}.card-avatar-small .card .card-avatar .item.item-avatar,.card-avatar-small .card .item.item-avatar,.card-avatar-small .card.card-avatar .item.item-avatar,.card-avatar-small.card .item.item-avatar{min-height:25px!important;padding-left:42px!important}.card-avatar-small .card .card-avatar .card-footer,.card-avatar-small .card .card-footer,.card-avatar-small .card.card-avatar .card-footer,.card-avatar-small.card .card-footer{padding-top:0;padding-left:42px!important}.gallery .card-gallery,.gallery .card.card-gallery{margin-bottom:15px!important;float:left;display:block}.gallery .card-gallery img,.gallery .card.card-gallery img{max-height:150px}.gallery .card-gallery-new{max-height:199px}.list .item.text-left{text-align:left!important}.list .item.large-button-bar,.list .item.text-center{text-align:center!important}.list .item.text-right{text-align:right!important}.list .item-divider.item-divider-top-border{border-top:solid 1px rgba(0,0,0,.12)}.lookupForm .list .item.item-avatar.item-checkbox .item-content{padding-left:47px;min-height:auto!important;height:auto!important}.fade-in{opacity:0;filter:alpha(opacity=0);-webkit-transform:translate3d(-30px,1px,0);-webkit-transition:all 1s ease-in-out}.fade-in.on{opacity:1;filter:alpha(opacity=100);-webkit-transform:translate3d(0,0,0)}.item-avatar,.lookupForm .list .item.item-avatar{min-height:80px!important}.item-avatar .item-content i.item-image:first-child,.item-avatar .item-content img.item-image:first-child,.item-avatar .item-content>i:first-child,.item-avatar .item-content>img:first-child,.item-avatar i.item-image:first-child,.item-avatar img.item-image:first-child,.item-avatar-left .item-content i.item-image:first-child,.item-avatar-left .item-content img.item-image:first-child,.item-avatar-left .item-content>i:first-child,.item-avatar-left .item-content>img:first-child,.item-avatar-left i.item-image:first-child,.item-avatar-left img.item-image:first-child,.item-avatar-left>i:first-child,.item-avatar-left>img:first-child,.item-avatar>i:first-child,.item-avatar>img:first-child{color:#d9d9d9;background-color:#f8f8f8;border:solid 1px #d9d9d9;overflow:hidden!important;font-size:45px!important;line-height:56px;width:100%!important;max-height:56px!important;max-width:56px!important;top:12px!important}#menu .footer .item-avatar .item-content>.icon-help:first-child:before,#menu .footer .item-avatar .item-image.icon-help:first-child:before,#menu .footer .item-avatar.item-icon-right .icon-help:first-child:before,#menu .footer .item-avatar>.icon-help:first-child:before,.item-avatar #menu .footer .item-content>.icon-help:first-child:before,.item-avatar #menu .footer .item-image.icon-help:first-child:before,.item-avatar .icon.item-image:first-child:before,.item-avatar .item-content>.icon-alert:first-child:before,.item-avatar .item-content>.icon-help:first-child:before,.item-avatar .item-content>.icon:first-child:before,.item-avatar .item-image.icon-alert:first-child:before,.item-avatar .item-image.icon-help:first-child:before,.item-avatar.item-icon-right #menu .footer .icon-help:first-child:before,.item-avatar.item-icon-right .icon-alert:first-child:before,.item-avatar.item-icon-right .icon-help:first-child:before,.item-avatar.item-icon-right .icon:first-child:before,.item-avatar>.icon-alert:first-child:before,.item-avatar>.icon-help:first-child:before,.item-avatar>.icon:first-child:before{width:56px!important}#menu .footer .item-avatar.item-icon-right .icon-help:last-child,#menu .footer .item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right #menu .footer .icon-help:last-child,.item-avatar.item-icon-right .icon-alert:last-child,.item-avatar.item-icon-right .icon-help:last-child,.item-avatar.item-icon-right .icon:last-child,.item-avatar.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-avatar.item-icon-right.ink .icon.ion-ios-arrow-right,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-avatar.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}.item.item-icon-left>i.avatar:first-child{position:absolute;display:flex;height:100%;align-items:center;font-size:16px;left:16px;top:8px;max-height:32px;max-width:32px}.item.item-checkbox.item-avatar * .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar * .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar *>i.avatar:first-child,.item.item-checkbox.item-avatar *>i.item-image:first-child,.item.item-checkbox.item-avatar .item-content>i.avatar:first-child,.item.item-checkbox.item-avatar .item-content>i.item-image:first-child,.item.item-checkbox.item-avatar>i.avatar:first-child,.item.item-checkbox.item-avatar>i.item-image:first-child{left:65px}.item.item-checkbox .item-content .item-avatar,.item.item-checkbox.item-avatar .item-content{padding-left:65px}#menu .footer .item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink #menu .footer .ion-ios-arrow-right.icon-help,.item-icon-left.item-icon-right.ink .icon.ion-ios-arrow-right,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-alert,.item-icon-left.item-icon-right.ink .ion-ios-arrow-right.icon-help{left:auto}@media screen and (max-width:767px){#menu .footer .item.item-icon-right>.icon-help:last-child,#menu .footer .item.item-icon-right>.ion-ios-arrow-right.icon-help,.item.item-icon-right>.icon-alert:last-child,.item.item-icon-right>.icon-help:last-child,.item.item-icon-right>.icon.ion-ios-arrow-right,.item.item-icon-right>.icon:last-child,.item.item-icon-right>.ion-ios-arrow-right.icon-alert,.item.item-icon-right>.ion-ios-arrow-right.icon-help{right:1px}}.item em,.view-messages .list .item h2.unread{font-weight:700!important}@media screen and (max-width:991px){.item .badge{right:16px}}@media screen and (min-width:992px){.list .item.item-border-large{margin-bottom:1px;border-bottom:solid 1px #ccc!important}.list.item-border-large .item{border-bottom:solid 1px #ccc!important;margin:0 0 1px}.list.item-border-large .item-divider{border-top:0}}.list .item.item-border{border-bottom:solid 1px #ccc!important;margin-bottom:1px}.list .item.item-small-height{padding-top:2px;padding-bottom:0;min-height:24px}.list .item.item-small-height .badge{padding-top:0!important;top:inherit}.list .item.item-small-height .badge.badge-assertive,.list .item.item-small-height .badge.badge-balanced,.list .item.item-small-height .badge.badge-calm,.list .item.item-small-height .badge.badge-editable:hover,.list .item.item-small-height .badge.badge-energized,.list .item.item-small-height .badge.badge-positive,.list .item.item-small-height .badge.badge-royal{top:1px!important;padding-top:3px!important;padding-bottom:2px!important}.form-errors:first-child{margin:5px 0}.form-errors:last-child{margin:5px 0 0}.form-error{padding:0 16px;font-size:12px;color:red;vertical-align:middle;text-align:end;top:0;position:relative}.item-input-error{border-bottom:2px solid red!important}.item-input.item-button-right input,.item-input.item-button-right textarea{margin-right:100px}.item-input.item-button-right .button,.item-input.item-button-right button{top:6px}.item-input.item-button-right.item-floating-label input,.item-input.item-button-right.item-floating-label textarea{padding-right:100px}.item-input.item-button-right.item-floating-label .button{top:inherit;bottom:6px}.item-input.item-button-right.item-floating-label .button-icon{height:inherit}.item.item-button-right .badge,.item.item-icon-right .badge{right:43px}@media screen and (max-width:767px){.badge{text-overflow:ellipsis!important;white-space:nowrap;overflow:hidden!important;max-width:300px!important;display:block!important}.badge:empty{display:none!important}.item.item-button-right .badge,.item.item-icon-right .badge{right:26px!important}}.badge-editable:hover{cursor:pointer}.badge-editable:hover:before{content:" "}.platform-ipad .bar-title{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%)}.platform-ipad .bar-title .title{background-color:#fff;margin-left:0;margin-right:0;height:44px}.bar .badge-button{margin:0!important;padding:0 4px!important;font-size:10px;position:absolute!important;top:5px;right:3px}.text-editable:hover{cursor:pointer}.text-editable:hover:after{content:""}.item h2 .text-editable:hover:after{font-size:14px}.modal.modal-full-height{bottom:0}@media screen and (max-width:767px){.modal{top:0!important;left:0!important;bottom:0;min-height:100%!important;width:100%!important}}@media screen and (max-width:991px){.modal{bottom:0}.modal .swiper-pagination{visibility:hidden!important}.modal.modal-full-height{top:0}.modal.modal-full-height ion-content.keyboard-up .scroll{min-height:calc(100% + 67px)}}@media (min-width:992px){.modal.modal-full-height{min-height:80%}}.modal.about .bar.bar-header .button+.title{left:0!important}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{top:16px}.item-button-right .item-content>.button.button-small,.item-button-right .item-content>.buttons .button-small,.item-button-right>.button.button-small,.item-button-right>.buttons .button-small{font-size:14px}.item.large-button-bar{margin-bottom:10px}.item-avatar-left-padding{padding-left:95px}.item-thumbnail-left-padding{padding-left:106px}.item-thumbnail-left,.item.item-thumbnail-left{min-height:100px!important}.item-thumbnail-left .item-content i.item-image,.item-thumbnail-left .item-content>i:first-child,.item-thumbnail-left i.item-image,.item-thumbnail-left>i:first-child{color:#d9d9d9;background-color:#f8f8f8;overflow:hidden!important;font-size:50px!important;line-height:80px;padding:0 15px;background-position:center;background-size:cover;display:inline-block}@media screen and (max-width:400px){.card>.item.item-thumbnail-left,.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:84px!important}.item-thumbnail-left .item-content img.item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left img.item-image,.item-thumbnail-left>img:first-child{max-width:70px;max-height:70px}.item h2{font-size:13px!important}}.item-icon-left-padding{padding-left:40px}.item-icon-right-padding{padding-right:40px}.text-keep-lines{white-space:pre-line!important}.text-italic{font-style:italic!important}.menu.menu-left{background-color:#f5f5f5}.menu.menu-left .item{opacity:.75;color:#000}.menu.menu-left .item-button-right .item-content>.button,.menu.menu-left .item-button-right .item-content>.buttons,.menu.menu-left .item-button-right>.button,.menu.menu-left .item-button-right>.buttons{top:8px!important}.menu.menu-left .item.active{background-color:#b2e0ff!important}.menu.menu-left .item.active .item-content{background-color:transparent}.menu.menu-left .item-menu-disable{color:#444!important}@media screen and (max-width:991px){.menu.menu-left .item.item-divider{min-height:2px;height:2px;padding-top:0;padding-bottom:0}.menu.menu-left .item,.menu.menu-left .item.item-complex .item-content{height:40px;min-height:40px;padding-top:10px;padding-bottom:10px}.menu.menu-left .item .badge,.menu.menu-left .item.item-complex .item-content .badge{top:10px;padding:2px 6px;font-size:12px}.menu.menu-left .item.item-complex{padding-top:0}.menu.menu-left .item.item-button-right .button{height:30px;min-height:30px;top:4px}.menu.menu-left ion-content.has-footer{bottom:0!important}.menu.menu-left .bar-header{background-color:#1a237e;color:#fff;height:150px;padding-right:0!important}.platform-ios.platform-cordova .menu.menu-left .bar-header{height:calc(constant(safe-area-inset-top) + 150px);height:calc(env(safe-area-inset-top) + 150px)}.menu.menu-left .bar-header .hero{height:150px;box-shadow:none}.menu.menu-left .bar-header .hero .content{bottom:0}.menu.menu-left .has-header{top:150px}.platform-ios.platform-cordova .menu.menu-left .has-header{top:calc(constant(safe-area-inset-top) + 150px);top:calc(env(safe-area-inset-top) + 150px)}}@media screen and (min-width:768px){.menu.menu-left .item.item-divider{min-height:5px;height:5px}.menu.menu-left .footer a{font-size:14px!important;color:gray!important}}@media screen and (min-width:992px){.menu.menu-left{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iNTEycHgiIGhlaWdodD0iNTEycHgiIHZpZXdCb3g9IjAgMCA1MDAgNTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOmJ4PSJodHRwczovL2JveHktc3ZnLmNvbSI+CiAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC42MDgyNjEsIDAsIDAsIDAuNjA4MjYxLCAtMjAuMDg0OTc2LCAzLjI1NTczNikiPgogICAgPGc+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC43ODsiIGlkPSJwYXRoLTEwIiBkPSJNIDQxOS4xMzMgODUuNzM4IEMgNDE3LjI5NSA4NS43MzkgNDE1LjQ1NSA4NS43NTQgNDEzLjYxMSA4NS43NzggQyAzNTQuODUyIDg2LjU2MSAyOTkuMDIzIDk5LjE3NCAyNDguMzU4IDEyMS4zMiBDIDU4NC4xMjEgMTMuMjA2IDc5Ni4xNzUgMjExLjI2IDgzMS43IDUwOC43NzMgTCA4NDYuMzgzIDUwNy4xMjQgQyA4MTUuNTg2IDIzNS44MDEgNjUyLjQ3NyA4NS41ODggNDE5LjEzMyA4NS43MzggWiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjM3MywgMC4yNjY4NzgsIC0wLjI2Njg3OCwgMC45NjM3MywgODkuNTA1MjMxLCAtMTM2LjYxNTA2MSkiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDE7IiBpZD0icGF0aC0zIiBkPSJNIDE0Ni4wMzcgMTk0LjA2NSBDIDE0NC4yMDEgMTk0LjA2NiAxNDIuMzYxIDE5NC4wODEgMTQwLjUxNyAxOTQuMTA0IEMgODEuNzYgMTk0Ljg4OCAyNS45MzEgMjA3LjUwMyAtMjQuNzM2IDIyOS42NDggQyAzMTEuMDI5IDEyMS41MzEgNTIzLjA4MyAzMTkuNTgzIDU1OC42MDQgNjE3LjA5MyBMIDU3My4yODQgNjE1LjQ0MyBDIDU0Mi40OSAzNDQuMTIyIDM3OS4zODUgMTkzLjkxMyAxNDYuMDM3IDE5NC4wNjUgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMTgwOTg4LCAtMC45ODM0ODUsIDAuOTgzNDg1LCAtMC4xODA5ODgsIC0zOS4yOTg1ODEsIDcwNS44OTc1NDQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMSIgZD0iTSA0ODcuNzQ0IDE5My4wODQgQyA0ODUuOTA2IDE5My4wODUgNDg0LjA2NyAxOTMuMSA0ODIuMjIzIDE5My4xMjMgQyA0MjMuNDY0IDE5My45MDcgMzY3LjYzNSAyMDYuNTIgMzE2Ljk3NSAyMjguNjY4IEMgNjUyLjcyNiAxMjAuNTUyIDg2NC43NzUgMzE4LjYwNSA5MDAuMjk5IDYxNi4xMDkgTCA5MTQuOTc5IDYxNC40NiBDIDg4NC4xODQgMzQzLjE0NCA3MjEuMDgxIDE5Mi45MzUgNDg3Ljc0NCAxOTMuMDg0IFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjE5OTk3LCAwLjc4NDYwNSwgLTAuNzg0NjA1LCAwLjYxOTk5NywgNTIzLjA2NzIzMSwgLTM0My4zMzE1MzkpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjg0OyIgaWQ9InBhdGgtMTIiIGQ9Ik0gMjk1Ljk2OSA0MzIuNzU3IEMgMjk0LjEzMSA0MzIuNzU4IDI5Mi4yOTMgNDMyLjc3MyAyOTAuNDQ5IDQzMi43OTcgQyAyMzEuNjg4IDQzMy41OCAxNzUuODYgNDQ2LjE5NCAxMjUuMTk4IDQ2OC4zNDEgQyA0NjAuOTU3IDM2MC4yMjYgNjczLjAwNSA1NTguMjggNzA4LjUyNiA4NTUuNzg2IEwgNzIzLjIwNyA4NTQuMTM5IEMgNjkyLjQxMiA1ODIuODE5IDUyOS4zMSA0MzIuNjA5IDI5NS45NjkgNDMyLjc1NyBaIiB0cmFuc2Zvcm09Im1hdHJpeCgtMC45Nzg4NDksIDAuMjA0NTg0LCAtMC4yMDQ1ODQsIC0wLjk3ODg0OSwgOTYzLjgyMDc5NiwgMTExNi4zNjcyOTMpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAwLjQ7IiBpZD0icGF0aC0xMyIgZD0iTSAxNTguMDM2IDE0OC44MyBDIDE1Ni4yIDE0OC44MzMgMTU0LjM2IDE0OC44NDYgMTUyLjUxNiAxNDguODcyIEMgOTMuNzU5IDE0OS42NTMgMzcuOTMgMTYyLjI2NyAtMTIuNzM0IDE4NC40MTEgQyAzMjMuMDIyIDc2LjMwMSA1MzUuMDc2IDI3NC4zNTIgNTcwLjYwNCA1NzEuODU3IEwgNTg1LjI4NiA1NzAuMjA4IEMgNTU0LjQ4MyAyOTguODkxIDM5MS4zOCAxNDguNjgzIDE1OC4wMzYgMTQ4LjgzIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuMzM4NjE0LCAtMC45NDA5MjYsIDAuOTQwOTI2LCAwLjMzODYxNCwgLTExNS41OTUxNTgsIDQ4My43MDU5ODQpIiBieDpvcmlnaW49IjAuNSAwLjUiLz4KICAgICAgPHBhdGggc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IGZpbGwtcnVsZTogZXZlbm9kZDsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDFweDsgc3Ryb2tlLWxpbmVjYXA6IGJ1dHQ7IHN0cm9rZS1saW5lam9pbjogbWl0ZXI7IHN0cm9rZS1vcGFjaXR5OiAxOyBvcGFjaXR5OiAxOyIgaWQ9InBhdGgtMTQiIGQ9Ik0gNTAxLjAxOSAyODguMjkyIEMgNDk5LjE4MSAyODguMjkzIDQ5Ny4zNCAyODguMzA4IDQ5NS40OTYgMjg4LjMzMSBDIDQzNi43MzYgMjg5LjExNSAzODAuOTA4IDMwMS43MjYgMzMwLjI0MyAzMjMuODc0IEMgNjY2LjAwNCAyMTUuNzU3IDg3OC4wNjIgNDEzLjgxMiA5MTMuNTg2IDcxMS4zMjIgTCA5MjguMjY4IDcwOS42NzMgQyA4OTcuNDY4IDQzOC4zNTIgNzM0LjM2MSAyODguMTQxIDUwMS4wMTkgMjg4LjI5MiBaIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2NDY1NiwgMC45ODYzNTEsIC0wLjk4NjM1MSwgMC4xNjQ2NTYsIDk4Mi44NTcyNjYsIC0yMzMuNDUyMDYzKSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMC40OyIgaWQ9InBhdGgtMTUiIGQ9Ik0gMTkyLjk1NCAzNzYuNTIxIEMgMTkxLjExNSAzNzYuNTIyIDE4OS4yNzcgMzc2LjUzNyAxODcuNDMzIDM3Ni41NjEgQyAxMjguNjc0IDM3Ny4zNDQgNzIuODQ1IDM4OS45NTggMjIuMTgxIDQxMi4xMDMgQyAzNTcuOTQgMzAzLjk4OSA1NjkuOTg3IDUwMi4wNDUgNjA1LjUwNSA3OTkuNTUzIEwgNjIwLjE4OCA3OTcuOTA1IEMgNTg5LjM5MiA1MjYuNTg0IDQyNi4yOTUgMzc2LjM2OSAxOTIuOTU0IDM3Ni41MjEgWiIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuOTMxNDA0LCAtMC4zNjM5ODgsIDAuMzYzOTg4LCAtMC45MzE0MDQsIDQxOS40OTkwMDYsIDExODIuNTk5ODA5KSIgYng6b3JpZ2luPSIwLjUgMC41Ii8+CiAgICAgIDxwYXRoIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBmaWxsLXJ1bGU6IGV2ZW5vZGQ7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxcHg7IHN0cm9rZS1saW5lY2FwOiBidXR0OyBzdHJva2UtbGluZWpvaW46IG1pdGVyOyBzdHJva2Utb3BhY2l0eTogMTsgb3BhY2l0eTogMTsiIGlkPSJwYXRoLTE2IiBkPSJNIDIyMS42MTQgNjMuOTczIEMgMjE5Ljc3NyA2My45NzYgMjE3LjkzOCA2My45OSAyMTYuMDk0IDY0LjAxNSBDIDE1Ny4zMzQgNjQuNzk1IDEwMS41MDYgNzcuNDA5IDUwLjg0MSA5OS41NTQgQyAzODYuNTk4IC04LjU1OSA1OTguNjUxIDE4OS40OTcgNjM0LjE3MyA0ODcuMDAxIEwgNjQ4Ljg1NCA0ODUuMzU0IEMgNjE4LjA1OCAyMTQuMDM3IDQ1NC45NTQgNjMuODI0IDIyMS42MTQgNjMuOTczIFoiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzUwNDUyLCAtMC42NjA5MjUsIDAuNjYwOTI1LCAwLjc1MDQ1MiwgLTcwLjgwMzMyMiwgMjkwLjkyMDI3MykiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8cGF0aCBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgZmlsbC1ydWxlOiBldmVub2RkOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMXB4OyBzdHJva2UtbGluZWNhcDogYnV0dDsgc3Ryb2tlLWxpbmVqb2luOiBtaXRlcjsgc3Ryb2tlLW9wYWNpdHk6IDE7IG9wYWNpdHk6IDAuNDsiIGlkPSJwYXRoLTE3IiBkPSJNIDQ0MS44ODggMzQyLjA5OCBDIDQ0MC4wNDcgMzQyLjA5OCA0MzguMjA3IDM0Mi4xMTQgNDM2LjM2MiAzNDIuMTM4IEMgMzc3LjYwMSAzNDIuOTIyIDMyMS43NjUgMzU1LjUzNSAyNzEuMTAzIDM3Ny42ODEgQyA2MDYuODg2IDI2OS41NjcgODE4Ljk0NCA0NjcuNjE1IDg1NC40NjIgNzY1LjEzMyBMIDg2OS4xNDIgNzYzLjQ4MyBDIDgzOC4zNTQgNDkyLjE1NCA2NzUuMjQyIDM0MS45NDggNDQxLjg4OCAzNDIuMDk4IFoiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjM1NjU4MiwgMC45MzQyNjQsIC0wLjkzNDI2NCwgLTAuMzU2NTgyLCAxMjU2Ljc1OTQ5MywgMTY5LjE4MjU1MikiIGJ4Om9yaWdpbj0iMC41IDAuNSIvPgogICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc2MjQ5MywgMCwgMCwgMC43NjI0OTMsIDE5LjI5NDY0NywgLTcxNi4zMjI4MTUpIj4KICAgICAgICA8cGF0aCBkPSJNIDU2Ni40NjYgMTA4OS4xMzcgTCA1NjYuNDY2IDExNDguMjIyIEMgNTY1Ljg2NyAxMTQ4LjIxOSA1NjUuMjY3IDExNDguMjE3IDU2NC42NjcgMTE0OC4yMTcgQyA1NjEuNDgxIDExNDguMjE3IDU1OC4zMSAxMTQ4LjI1OSA1NTUuMTU0IDExNDguMzQxIEwgNTU1LjE1NCAxMDg5LjEzNyBaIE0gOTA4LjI5IDE0NzcuMTQ2IEwgOTU2Ljk4NyAxNDc3LjE0NiBMIDk1Ni45ODcgMTQ4OC40NTggTCA5MDguNTY5IDE0ODguNDU4IEMgOTA4LjUzOSAxNDg0LjY5MyA5MDguNDQ3IDE0ODAuOTIyIDkwOC4yOSAxNDc3LjE0NiBaIE0gNTY2LjQ2NiAxODM1LjAxMyBMIDU2Ni40NjYgMTg3Ni40NjcgTCA1NTUuMTU0IDE4NzYuNDY3IEwgNTU1LjE1NCAxODM0Ljg4NiBDIDU1OC4zMTggMTgzNC45NzMgNTYxLjQ5IDE4MzUuMDE3IDU2NC42NjcgMTgzNS4wMTcgQyA1NjUuMjY3IDE4MzUuMDE3IDU2NS44NjcgMTgzNS4wMTYgNTY2LjQ2NiAxODM1LjAxMyBaIE0gMjIwLjc3NSAxNDg4LjQ1OCBMIDE2OS42NTcgMTQ4OC40NTggTCAxNjkuNjU3IDE0NzcuMTQ2IEwgMjIxLjA4OSAxNDc3LjE0NiBDIDIyMC45MjEgMTQ4MC45MDkgMjIwLjgxNiAxNDg0LjY4IDIyMC43NzUgMTQ4OC40NTggWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgc3Ryb2tlOiBub25lOyIgYng6b3JpZ2luPSIwIDAiLz4KICAgICAgICA8cGF0aCBkPSJNIDc2MC4xMjEgMTE0My4zMTEgTCA3MTcuMzM2IDEyMTcuNDE3IEMgNzE1LjcyIDEyMTYuNTE4IDcxNC4wOTYgMTIxNS42MzIgNzEyLjQ2NSAxMjE0Ljc2MSBMIDc1NS4zMTggMTE0MC41MzcgWiBNIDgzMC4xMjIgMTMyNC4yMDMgTCA5MDAuNDI0IDEyODMuNjE0IEwgOTAzLjE5OCAxMjg4LjQxNyBMIDgzMy4wNCAxMzI4LjkyMyBDIDgzMi4wOCAxMzI3LjMzOSA4MzEuMTA3IDEzMjUuNzY2IDgzMC4xMjIgMTMyNC4yMDMgWiBNIDg0MC41OTkgMTY0MS4xMzcgTCA5MDMuMTk3IDE2NzcuMjc4IEwgOTAwLjQyNCAxNjgyLjA4MiBMIDgzNy45MTEgMTY0NS45OSBDIDgzOC44MjEgMTY0NC4zOCA4MzkuNzE3IDE2NDIuNzYyIDg0MC41OTkgMTY0MS4xMzcgWiBNIDcyNS4xNjggMTc2MS44NDMgTCA3NjAuMTIyIDE4MjIuMzg1IEwgNzU1LjMxOCAxODI1LjE1OCBMIDcyMC4zNzkgMTc2NC42NDEgQyA3MjEuOTg1IDE3NjMuNzIyIDcyMy41ODIgMTc2Mi43ODkgNzI1LjE2OCAxNzYxLjg0MyBaIE0gNDAzLjUzOCAxNzYwLjkzMiBMIDM2Ni40NTYgMTgyNS4xNTkgTCAzNjEuNjUzIDE4MjIuMzg2IEwgMzk4LjgwMiAxNzU4LjA0MiBDIDQwMC4zNzIgMTc1OS4wMTkgNDAxLjk1MSAxNzU5Ljk4MiA0MDMuNTM4IDE3NjAuOTMyIFogTSAyODkuNTggMTY0Mi42ODkgTCAyMjEuMzUgMTY4Mi4wODIgTCAyMTguNTc3IDE2NzcuMjc5IEwgMjg2Ljk0NCAxNjM3LjgwNyBDIDI4Ny44MDcgMTYzOS40MzcgMjg4LjY4NSAxNjQxLjA2NSAyODkuNTggMTY0Mi42ODkgWiBNIDI5NC4zNTQgMTMzMi4xNjggTCAyMTguNTc2IDEyODguNDE3IEwgMjIxLjM1IDEyODMuNjE0IEwgMjk3LjIxMyAxMzI3LjQxNCBDIDI5Ni4yNDYgMTMyOC45OSAyOTUuMjkzIDEzMzAuNTc1IDI5NC4zNTQgMTMzMi4xNjggWiBNIDQwNi4wNzkgMTIyMC4yNTkgTCAzNjEuNjUzIDExNDMuMzExIEwgMzY2LjQ1NyAxMTQwLjUzNyBMIDQxMC44ODkgMTIxNy40OTUgQyA0MDkuMjc2IDEyMTguNDAzIDQwNy42NzMgMTIxOS4zMjQgNDA2LjA3OSAxMjIwLjI1OSBaIiBzdHlsZT0iZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBzdHJva2U6IG5vbmU7IiBieDpvcmlnaW49IjAgMCIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8cmVjdCB4PSI0MjkuMzY3IiB5PSI0MjUuOTc5IiB3aWR0aD0iMjAuMDAzIiBoZWlnaHQ9IjIxLjczNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTkxIiB0cmFuc2Zvcm09Im1hdHJpeCgxLCAwLCAwLCAwLjk5OTk5OSwgLTMwMS4zNzcwNzUsIC0yMTkuNDk4NDM0KSIvPgogICAgPHJlY3QgeD0iNDQ2Ljg1MyIgeT0iMjUuNDYyIiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05MyIvPgogICAgPHJlY3QgeD0iLTEzNS45NTYiIHk9IjYwNS4xNDEiIHdpZHRoPSIzOS44NTEiIGhlaWdodD0iMzkuODUxIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk5OTk5LCAwLCAwLCAxLCA4NDYuMTc2NzU2LCAtMzk0Ljk1NjAyNCkiLz4KICAgIDxyZWN0IHg9IjIyNS43NzkiIHk9IjY4OS44MzYiIHdpZHRoPSIyNS45OSIgaGVpZ2h0PSIyNS45OSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk1Ii8+CiAgICA8cmVjdCB4PSI1OTQuMDEzIiB5PSI3MzcuMTQyIiB3aWR0aD0iMjAuNzkyIiBoZWlnaHQ9IjIyLjUyNSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTk2Ii8+CiAgICA8cmVjdCB4PSIzODcuMjM1IiB5PSI0NzkuMzk3IiB3aWR0aD0iMjUuOTkiIGhlaWdodD0iMjUuOTkiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7IG9wYWNpdHk6IDE7IGZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsgZmlsbC1vcGFjaXR5OiAxOyBzdHJva2U6IG5vbmU7IHN0cm9rZS13aWR0aDogMzQuOTsgc3Ryb2tlLW1pdGVybGltaXQ6IDQ7IHN0cm9rZS1kYXNoYXJyYXk6IG5vbmU7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBzdHJva2Utb3BhY2l0eTogMC45OTYwNzg7IiBpZD0icGF0aC05OCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4wMDAwMDEsIDAsIDAsIDAuOTk5OTk5LCAzNjUuMjc0OTY2LCA3OS4yOTUyNDEpIi8+CiAgICA8cmVjdCB4PSI0MjEuOTYyIiB5PSI3NzUuOTM3IiB3aWR0aD0iMzIuOTIiIGhlaWdodD0iMzQuNjUzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyBvcGFjaXR5OiAxOyBmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGZpbGwtb3BhY2l0eTogMTsgc3Ryb2tlOiBub25lOyBzdHJva2Utd2lkdGg6IDM0Ljk7IHN0cm9rZS1taXRlcmxpbWl0OiA0OyBzdHJva2UtZGFzaGFycmF5OiBub25lOyBzdHJva2UtZGFzaG9mZnNldDogMDsgc3Ryb2tlLW9wYWNpdHk6IDAuOTk2MDc4OyIgaWQ9InBhdGgtOTkiLz4KICAgIDxyZWN0IHg9Ii02Ni45MzkiIHk9Ii01NjguOTc4IiB3aWR0aD0iMjAuODY3IiBoZWlnaHQ9IjIwLjc5MiIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsgb3BhY2l0eTogMTsgZmlsbDogcmdiKDI1NSwgMjU1LCAyNTUpOyBmaWxsLW9wYWNpdHk6IDE7IHN0cm9rZTogbm9uZTsgc3Ryb2tlLXdpZHRoOiAzNC45OyBzdHJva2UtbWl0ZXJsaW1pdDogNDsgc3Ryb2tlLWRhc2hhcnJheTogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IHN0cm9rZS1vcGFjaXR5OiAwLjk5NjA3ODsiIGlkPSJwYXRoLTEwMSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDAuOTk5OTk3LCAzMS4zNTY5MjgsIDk4NC43MzYzMDYpIi8+CiAgPC9nPgo8L3N2Zz4=);background-repeat:no-repeat;background-position:-500px -100px;background-size:1024px 1024px;background-color:#f5f5f5;height:100%}}.certifications .item-divider .badge{top:16px!important}.certifications-lg .avatar-large{left:auto;position:relative;font-size:55px!important;height:88px;width:88px;color:#d9d9d9;background-color:#e0e0e0;border:solid 1px #d9d9d9}.icon-alert,.icon-help{font-size:38px;vertical-align:middle}#menu .footer .icon-help{font-size:25px!important;position:absolute;left:12px;top:8px;z-index:99}.popover-helptip{background-color:rgba(68,68,68,.85)!important;height:auto!important}.popover-helptip .button-close{padding:8px;height:25px;font-size:18.2px}.popover-helptip a,.popover-helptip a:active,.popover-helptip a:hover{text-decoration:underline}.nobackdrop .popover-backdrop.active{background-color:transparent!important}.helptip-anchor,.helptip-anchor-center,.helptip-anchor-left,.helptip-anchor-right{display:block;position:absolute;width:100%;bottom:0}.helptip-anchor-center,div[dropzone]{text-align:center}.helptip-anchor-left,div[dropzone] .item,div[dropzone] .list .item{text-align:left}.helptip-anchor-right{text-align:right}.helptip-anchor a:before,.helptip-anchor-center a:before,.helptip-anchor-left a:before,.helptip-anchor-right a:before{content:" "}@media (max-width:767px){.popover-helptip{width:auto}}#menu .footer .popover-helptip .icon-left.icon-help,.popover-helptip #menu .footer .icon-left.icon-help,.popover-helptip .icon-left.icon-alert,.popover-helptip .icon-left.icon-help,.popover-helptip .icon.icon-left{font-size:30px;position:relative;top:8px;left:8px}#menu .footer .popover-helptip .icon-right.icon-help,.popover-helptip #menu .footer .icon-right.icon-help,.popover-helptip .icon-right.icon-alert,.popover-helptip .icon-right.icon-help,.popover-helptip .icon.icon-right{font-size:30px;position:relative;top:8px;right:8px}#menu .footer .popover-helptip .icon-center.icon-help,.popover-helptip #menu .footer .icon-center.icon-help,.popover-helptip .icon-center.icon-alert,.popover-helptip .icon-center.icon-help,.popover-helptip .icon.icon-center{font-size:30px;width:100%;text-align:center;position:relative;top:8px;height:0}#menu .footer .popover-helptip .icon-bottom-right.icon-help,.popover-helptip #menu .footer .icon-bottom-right.icon-help,.popover-helptip .icon-bottom-right.icon-alert,.popover-helptip .icon-bottom-right.icon-help,.popover-helptip .icon.icon-bottom-right{font-size:30px;position:relative;bottom:8px;right:8px}#menu .footer .popover-helptip .icon-bottom-left.icon-help,.popover-helptip #menu .footer .icon-bottom-left.icon-help,.popover-helptip .icon-bottom-left.icon-alert,.popover-helptip .icon-bottom-left.icon-help,.popover-helptip .icon.icon-bottom-left{font-size:30px;position:relative;bottom:8px;left:8px}#menu .footer .popover-helptip .icon-bottom-center.icon-help,.popover-helptip #menu .footer .icon-bottom-center.icon-help,.popover-helptip .icon-bottom-center.icon-alert,.popover-helptip .icon-bottom-center.icon-help,.popover-helptip .icon.icon-bottom-center{font-size:30px;position:relative;width:100%;bottom:8px;text-align:center;height:0}.popover.popover-profile{height:200px}.popover.popover-profile .avatar{height:90px;width:90px;left:20px;top:20px;border:solid 1px #d9d9d9}.popover.popover-profile .bar.bar-footer{height:58px}.popover.popover-profile .bar.bar-footer .col .button{max-width:inherit;width:100%;padding:5px 0;margin:0}.popover.popover-profile .bar .button-positive,.popover.popover-profile .bar .button-text{background-color:#387ef5!important}.popover.popover-profile .bar .button-stable,.view-messages .list .item h2.read{color:#444!important}.bar-header .button-icon .avatar{border:solid 1px #d9d9d9;height:31px;width:31px;position:relative;left:0;top:6px}.bar-header .button-icon .avatar.active{background-color:#e0e0e0}.list .badge .badge-secondary,.list .badge.badge-secondary{font-size:12px;font-style:italic;top:37px;font-weight:400!important;margin-right:0;padding:3px 8px}.list .item-avatar .badge.badge-avatar{position:absolute!important;left:60px!important;right:inherit!important;top:15px!important;margin:0!important;padding:0 4px!important;font-size:10px}.popover.popover-login-methods{height:280px;width:290px}.popover.popover-login-methods.auth{height:204px}@media (max-width:767px){.popover.popover-login-methods{height:256px}.popover.popover-login-methods.auth{height:204px}}.ion-es-user-api:before{content:url(../img/logo.small.cs.dune.svg)}.ion-bma-tor-api:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAATEAYAAAChBNO0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAB3lJREFUWMPNmGtUVNcVx/93mBlmgEGeAyhYUoSERhmM9ZHSCL4AqURFEmSBEZOgWGqh0pqYNkREiIlxxSXqYpUoJhqVRWJ41tooKNYIGR8R8QlKAsj7PQ9k7tx7++Gc6VpQnctK4lo9X35zz+x79v7vM2fffYfB/8lYty4iIjFx/Oz0TEJpD2HTLwj1RmqwvbDw9OmjR3+8XylxHPBPcuk1QucbKIUn3GeZ/45eJlCWEfJfEJp3Ew6qqIADhNw3lsDHCrf1I9SMEi6XERpOEV7YRLn950q8lODUfcLJWVRIpkgCLGMG5S5q/kfKRXR+D0H7TSrIhfD2+B33JUiII0xZR6i4QljwiLC23HLDT915y2BIIIKY0J84DFsII/5NePHS2O9dqdDT8YTBdOezUwlzHxKyOT+XcMuQUCY93QQwv6TudkAKbygBhKAEMZMiuA7uGtc601HIETYL259loYASikNbif2uWU9LuGXQI2CqI5Q/rQw4Uvq6/86rUq0DpB9KG2xWrmzybvMt8FFnyBvmX6m5sbN/qiFT3294Pq9HUi1RSq4YE3+s8McXVUkela0g5BxoAr5MJgycR8i8Q+OmP1nfY3S+zbrbrgrKNdQ+gPDBNcIWvxFvw7GRBkChV+bbajvbg34951pwcYDUrDLfM2fZpGtrapK/XR1ikLCSQxKPG/8VIpaIxwv2CSNcyRH+ZgehcwFhz1l6BJLoDi2IIgwtpsvSwAevWxcu+BBmLiZ8iZ7d0BrC+C19tl2He9f+cKcitXhhaar8kGyJ/Dl5+txbihi7EuV+mZ1sozxavt9mhcQoiZTIVx3Hi1iE36pN1gU+aX6BPWHpAsI9VHBcJ2F4NGFCNWN9wUBavM7fInQvx2MHq6WZbiGsjL3N1JfdqgDWx2ZoNu4FKtnil8oLnhkMUsz+SPPu1mURbas+XuqX+KW7ndc2dYVS3Tjjps89CVA+fGxJaTY/YDira9GvO/cv5gFjwzx8fwNZt9qbkLv5+DiC/k5Y/AFhQBNEhsT613wppVnkF0AbE65EOCDkCHnAkYozyuNNQM2bpz87lxKuXey/PDo8unRnkmt66xs+yYemF866PENQqtllplzWH5g27Vce/ksBzRtzZJp7EmfhIr9X+HphHBgwYIrayfoZ9GlgmzXWv00rYZr/RIVPNAGhlG+JrEMbFcFTtlwmk20Gco9t/ir76gtVizetKAnPP1ATv3BDbYJqxvsqT6cwx2z4DysHzw7nA85rXZ2d2wAunq3mQgDNxrlzZnYBCg+7VMVqAJ8Je4VCFzuyflY9YcpHY917ORGGFU1MthBLqJOLJEAIox/iRVbsoPaOB9dUag4XSouDN80Nmdm/9fXIPaviohr8NhtN+lhjEcDam15kWwCPbVNe8wwFdMuH5uk6AVOaKce0CFAE2mUpUwHVQadGRwdA8BZG4GZxo6C1Jo2eZb+phPafEqpU1sM0BBK+R/uMcEYkAaiiwr4RsRsFBw4cfz6mbl7wy/y0Rv/h5+UB3qGZ/B4hht8B8LuFFfx2wCXHLcXFFeg/2VPcNxlQJtg/tDsOyJbKOGkqYC5idWwuYDNV8pZEAwiXUPW/3n19CWfT2oRXCSRfWQ/zPu0r9tNOs9YkloA+ygEROw5deIhOYZFdmMOAfZ7DC47tzsGT4pS8/s7QXf0WwKnTJdc5BeiWd6R0xQIOMY7xqn8A8lrbM/IRgPFkIphngJFso/ej+QDrZYpihwDmbWYX87fx7phuwilrqfA/j92wJ+5TCSGrscyIJeA8ZZ2I3SBsoYAtWvlWbhdfL+SzR9ledpugtmmXJtlwwPCRgSVDQYDiO6WXwgmQVksTpU3AUFR/xYAWQC860Qv0ft25vscDMMzXbzV0AEwxapnSJ7k10scZQ99JmG+th2mm/Y7wygQTIFgeiH8SScBtuEINN2Ztt7LjD11xP5R9H9Ho2BzedFBoFIqFemCgo8+jfw0gmybn5NHA4M6+GwM2gPRz2UaZFjCFjEaa7IG2qmbPlruA6dToSdMOAMuY1Yge7073HmE9rQ6S+TQB90X0PEf5yUQTcJiQvyxiRxsn5vfT5bMWB6X28tdwafBqRt65u6jfd+fCSMOw20Dd8BGgc1ZbZEcGwJawJnY3wDfwb/M1gL5E12B4Beha1v5x1z4AznCHCwAj9DCO91dOH3PafYRS+pbJXBDZKNqvWIq2aAK412gCSq3bWYoQ79K/t/uDPjNwVXpReznt875qTWXOWb+c9d+nNYU2pw/trw/QFlwvA/rcux/1vQv0xHfoesqgbyy6mX33HfT2nux8tccOECqFE0IZADd4wp1LosLpa/ZfHQhN9H8MNNONyLUeJm9L7dSWGan1G4y0pexeRTg5nS5Eqyi6CPrpe/yQgpkpeZMJwRlV3aRc1WyTtEpdrj0z5cMSvXF4jc7jtp9tgCJfEb+p9Eaydsn183OTZa/Lm2VHld2tUQ8+bY2Gg+nEaORooPkE8xfGh6lt3EAaoSO0un9Ci1xPztg4hxtpnLQfcaA1QaBHhKH/U7Q/S8g6We78Dzmv92D5rFiKAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEwLTE0VDExOjU4OjIwKzA1OjAwUOI3hwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNS0xMC0xNFQxMTo1ODoyMCswNTowMCG/jzsAAAAvdEVYdHN2Zzpjb21tZW50AD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/5MH3awAAAABJRU5ErkJggg==)}.row-header{border-bottom:solid 1px #ccc!important;margin:0;min-height:28px!important}.col-header{text-align:center;display:block!important}.col-15{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:15%}.col-border-left{border-left:solid 1px #ccc!important}.col-border-right{border-right:solid 1px #ccc!important}.ion-spinner-small{line-height:14px;margin:0;padding:0}.ion-spinner-small,.ion-spinner-small svg{height:14px;width:14px}.icon-secondary{position:absolute;height:100%;display:flex;align-items:center;font-size:16px;left:25px;top:-7px}div[dropzone]{border:2px dashed #bbb;border-radius:5px;padding:15px;font:20pt 700;color:#bbb;margin-bottom:20px;cursor:pointer}div[dropzone]:hover{background-color:#f2f2f2}.button-fab-hero.button-fab-top-left,.button-fab-hero.button-fab-top-right,.hero .button-fab-top-left,.hero .button-fab-top-right{top:170px!important}.bar .button.button-fab.mini,.button.button-fab.mini{min-width:40px;min-height:40px}.button-fab-hero.button-fab-top-left.mini,.button-fab-hero.button-fab-top-right.mini,.hero .button-fab-top-left.mini,.hero .button-fab-top-right.mini{top:178px!important}.text-no-transform{text-transform:inherit}.button-icon-event,.item-icon-event{text-transform:inherit;pointer-events:none!important}#menu .footer .button-icon-event .icon-help,#menu .footer .item-icon-event .icon-help,.button-icon-event #menu .footer .icon-help,.button-icon-event .icon,.button-icon-event .icon-alert,.button-icon-event .icon-event,.button-icon-event .icon-help,.item-icon-event #menu .footer .icon-help,.item-icon-event .icon,.item-icon-event .icon-alert,.item-icon-event .icon-event,.item-icon-event .icon-help{pointer-events:all!important}.hero.dark-100-bg{background-color:#555}.hero.positive-900-bg{background-color:#1a237e!important}.hero.stable-bg{background-color:#f8f8f8!important}.popover-locked-outputs .item .badge{right:16px!important}.animate-show-hide.ng-hide{opacity:0}.animate-show-hide.ng-hide-add,.animate-show-hide.ng-hide-remove{transition:all linear .3s}.modal iframe.iframe-license{width:100%;height:calc(100% - 171px)!important}@media screen and (max-width:767px){.modal iframe.iframe-license{height:calc(100% - 104px)}}@media screen and (min-width:768px) and (max-width:991px) and (min-height:600px){.modal iframe.iframe-license{height:calc(100% - 171px)}}@media screen and (min-width:992px){.modal iframe.iframe-license{height:calc(100% - 171px)}.modal.modal-license iframe.iframe-license{height:calc(100% - 111px)!important}}.modal.modal-help .row.selected .col:first-child{font-weight:700}@media screen and (max-width:767px){.modal.modal-help .row .col:first-child{font-weight:700}.modal.modal-help h2{padding-left:10px}}.modal.modal-login .item.item-icon-right.item-text-wrap .item-content{margin-right:58px;text-overflow:ellipsis;overflow:hidden}.popover-locales{height:284px;width:200px}.popover-locales .item{height:48px}.buttons-tabs{display:block;height:57px;border:0;padding:16px 16px 0;overflow:hidden}.buttons-tabs .button.button-tab:first-child{border-top-left-radius:15px}.buttons-tabs .button.button-tab:last-child{border-top-right-radius:15px}.buttons-tabs .button.button-tab.active{background-color:#b2e0ff}.buttons-tabs.border-bottom{border-bottom:solid 1px #ccc!important}@media screen and (max-width:767px){.buttons-tabs{padding:10px 10px 0}.buttons-tabs .button.button-tab{padding:2px 10px 0!important}}#newAccount h1{font-size:25px;margin-top:30px}.badge sub,.badge sup{line-height:inherit}#home h1,#home h2{padding-top:15px;text-align:center}#home h2{font-size:22px;padding-bottom:15px;color:#fff}#home .footer .title{padding-top:0;font-size:14px;color:gray}#modal-license{color:#000}.bar .button.button-clear{font-size:12px!important;font-weight:300!important;width:initial!important;min-width:44px!important;max-width:90px!important}.bar .button.button-clear:first-child{margin-left:5px}.popup-buttons .button{padding:0 2px!important}#composeMessage .list .item,#transfer .list .item,.list .item-input,.popover .list .item{border-bottom:solid 1px #ccc}#transfer .list .item.item-no-border{border-bottom:0}#transfer .item.item-icon-right input{padding-right:50px!important}.menu .avatar{height:88px;width:88px}.center{text-align:center}.col-pubkey{min-width:130px!important}.modal .title{text-align:center!important}.slider{height:100%}.slider-slide{color:#000;background-color:#fff;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-weight:300}#list{width:170px;margin:30px auto;font-size:20px}#list ol{margin-top:30px}#list ol li{text-align:left;list-style:decimal;margin:10px 0}.button.ng-hide{display:none}.settings .item-divider{background-color:#f5f5f5}.settings .item .input-label{width:80%}.settings .item-select .input-label,.settings .item-toggle .input-label{display:inline;width:auto;max-width:50%}.settings .item .badge{top:22px}.no-margin{margin:0!important}.item-block,.list .item-peer{padding-top:9px;padding-bottom:3px}.list .item-peer .badge{top:14px;right:6%}.list .item-peer:hover .badge.badge-balanced,.list .item-peer:hover .badge.badge-energized{color:#fff!important}.list .item-peer .badge .badge-secondary,.list .item-peer .badge.badge-secondary{top:31px;font-size:10px;padding-right:6px}.list .item-peer.compacted{padding-top:0;padding-bottom:0;min-height:3px!important;max-height:3px!important;border-bottom:double 1px #ddd!important}.list .item-peer.compacted>*{display:none}.item-block{padding-top:4px;max-height:48px}.item-block .badge{top:12px;right:6%}.item-block.item-block-empty{min-height:24px!important;max-height:24px!important;padding-top:0;padding-bottom:0}.item-block.item-block-empty .badge{padding-top:0!important;top:inherit}.item-block.item-block-empty .badge.badge-balanced{top:0!important;padding-top:3px!important;padding-bottom:2px!important}.item-block-empty.compacted{min-height:3px!important;max-height:3px!important;border-bottom:0!important}.item-block.item-block-empty.compacted{border-bottom:double 1px #eee!important}.list .item.item-wallet .badge{top:29px}.list .item.item-wallet{height:38px}.ng-image-crop{text-align:center;margin:0 auto;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.ng-image-crop>section{background:#ccc}.ng-image-crop button{margin-top:10px}.ng-image-crop .cropping-guide{display:block;background:rgba(255,255,255,.3);border:2px dashed #fff;position:absolute;pointer-events:none}.ng-image-crop--circle .cropping-guide{border-radius:50%;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%}.ng-image-crop .cropping-canvas{background:rgba(255,255,255,.3);margin:0 auto;cursor:move}.ng-image-crop .zoom-handle{display:block;position:absolute;bottom:1px;left:1px;background:rgba(255,255,255,.7);width:80px;height:80px;cursor:move;border-radius:200px 50px}.ng-image-crop .zoom-handle>span{color:rgba(0,0,0,.5);-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);display:block;position:relative;top:32px}.leaflet-image-layer,.leaflet-layer,.leaflet-map-pane,.leaflet-marker-icon,.leaflet-marker-pane,.leaflet-marker-shadow,.leaflet-overlay-pane,.leaflet-overlay-pane svg,.leaflet-popup-pane,.leaflet-shadow-pane,.leaflet-tile,.leaflet-tile-container,.leaflet-tile-pane,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;-ms-touch-action:none;touch-action:none}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-control-layers label,.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container img{max-width:none!important}.leaflet-container img.leaflet-image-layer{max-width:15000px!important}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-tile-pane{z-index:2}.leaflet-objects-pane{z-index:3}.leaflet-overlay-pane{z-index:4}.leaflet-shadow-pane{z-index:5}.leaflet-marker-pane{z-index:6}.leaflet-popup-pane{z-index:7}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:7;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup,.leaflet-fade-anim .leaflet-tile{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup,.leaflet-fade-anim .leaflet-tile-loaded{opacity:1}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-clickable{cursor:pointer}.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-clickable,.leaflet-dragging .leaflet-container{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078a8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,.5)}.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-align:center;text-decoration:none;color:#000}.leaflet-bar a:hover{display:block;background-color:#f4f4f4}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px 'Lucida Console',Monaco,monospace;text-indent:1px}.leaflet-control-zoom-out{font-size:20px}.leaflet-touch .leaflet-control-zoom-in{font-size:22px}.leaflet-touch .leaflet-control-zoom-out{font-size:24px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVbSURBVEiJrZZfSFt3FMe/v3tvbmLUZleNKSHE/LGRiNbGRovTtrA9lcFkpcOnMvawwhhjrb3soQ8djGFhXMQNRqEvY3R9kJVuPpRRWQebcdKYxkaHqcHchKJ2rVo1WhNz//z2UOLUadVuv9fvOedzfuec3x9CKcV+1qVLlwgAdHV17cuR7AfU29tb43a73wWAVCr1Q0dHx8T/Curu7i5ubGw843K5ms1mMwBgdXUV6XQ6HI1Gb3Z2dj7/z6C+vr6T1dXVp6xWa+l2+uzs7PLk5OTP7e3tv70S6Pr1647q6uoOt9vtYRjmpcnouo5UKiVPTk72nj17dmpPIEmS+IaGhnaPx3O8tLSU3ahRSotyudzrAGAymf4ghGQ36svLy5osywOxWKxPFMX8jqBbt241ejyed+x2e9nWjPL5fK2iKC2UUiMAEELWDAbDEM/z41ttZ2Zmnsmy/OPp06ejm0DXrl2rqK2tPeNyuQ7zPL9pi5qmVaytrZ3Qdf3gdiVhGOYvo9H4O8uyc1sSI+l0enR8fPzmuXPn5sjt27ff8nq9bwiCYNpSJsPa2lqzqqr1AF7eJEDnOG7MaDSGCSHKRmFhYSGXTCZ/Zd1u93dOp3NJEAS9ICqK4snlcm/puu4EQHaBAADRdf2gqqo1hJBllmUXCsLjx4+L7t69e4Ztamqaffjw4QepVOr5oUOHDKqqvqkoShAAvwfA1sVrmlataVqlqqqzvb29lnA43KwoymeEUoqenp7XdF3vW11dPX7s2DHi9XpfgfHPSiaTuHfvHjWbzQMMw7SfP39+kUSj0ZOU0qsA/EtLSwiHwygpKUFraysOHDiwL0Amk8Hg4CBWVlbQ3NwMi8UCAHFCyIesw+H43uFwuAwGg9lkMsHj8SCfzyMUCkFRFNhsNux2YDVNQzQaRSgUgsvlwtGjR2EyvZitbDbL9Pf3H2YDgcD8xMREk67rCZvN5iSEkLKyMrjdbsiyjJGREVgslh13NzU1hf7+fui6jra2NlitVhBCQCmlo6OjoYGBASWbzX5BKKW4cuWKhRDyk67rJ4LBIFNRUbEeaHZ2FpFIBDabDS0tLSgqKipkiqGhITx58gTBYBBWq3XdZ25uDpFIhLIsO8jzfPuFCxeekTt37rQCuAqgfmVlBfF4HOXl5Thy5Ah4/sXgUUoRj8chyzIaGhoAALFYDB6PB36/H4S8OAH5fB4PHjzA/Pw8/H4/SkpKACAB4CPW6/XeqKysrOI4rpjnedjtdmSzWUSjURgMBgiCAEIIrFYrHA4HxsfHsbi4iNbWVtjt9nWILMsYGhpCeXk5ampqYDQaC3AyPDxcSy5evPg2IaTL6XTO+3y+NkIIAwCKoiCRSEBVVTQ1Ne3Yo0wmg+HhYXAcB5/PB4PBUJBoMpkclGW5lFJ6mVBKIYpiMYDLHMedCgQCnCAI/oL1wsICEokEHA4H6uvr1ydQ13WMjY1hamoKPp8PgiBshE/ev38/oyjKLwA+lyTp+abbWxTFOgDfCIKAQCAQ4DiutNCjdDqNp0+fIhAIAABGRkZQWVkJl8u1Xj5N01Zjsdjw3NwcBfCxJEl/FmL/6z0SRZEAeJ8QIvp8vsWqqqqWgpbL5RCPxwEAfr9//awAwPT0dDgejxfput4D4FtJkjYF3vGFFUWxHMCXRqPxcDAYtBYXF1dtZ5fNZmcikcijbDY7DuBTSZLmt7Pb9c8gimIbIeQrm82Wqaura2EYxggAlFI1Ho8PTk9PmymlnZIkhV4WZ0+/IFEUOQCdDMO8V19fn2NZ1hCLxaimaTcAdEuSpO4WY1//OlEUnQC+BkABfCJJ0qO9+v4NmO9xnZob3WcAAAAASUVORK5CYII=);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAbrwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAArPSURBVGiB3Zp7TFvXHce/916/eBhCDInJwDjGBhvjQHi5SclaKRL5Z1Wl/rEq/WNr11TJmkpMw900pLVrplJ1cadFarp0zdZmmpZpf3SqNrUKfSnKgwI2sQPGBmNjAsUOxCW8bGzfe8/+SEAkMfa1A5m075/2+f3O+Z7X595zLkUIwf+T6EdRSWdnp7izs1P8KOqitnqE3n///QMajeYZAPD7/R8fPXr00lbWt2WGTp48qdRoNC/s2bNHXVhYyALA/Py86Pr16wG/3//hq6++GtqKejfdUGdnJ6XT6Q4bDIZWjUaTNLnf76fcbvdlr9d7vqura1MbsKmGTp8+XadWqw/v3bu3UCQS8anKsixLX7t2bT4QCJw/fvy4c7PasCmGTpw4Ia+qqnrRZDIZSkpK2ExiZ2dnRYODg+7R0dE/v/baa4sP25aHNnT27Nkf6HS6QwaD4aF2TLfbzXu93gtHjhz5z8PkydrQqVOnKtVq9Y/q6uqUubm5GY3KRopEIiKn0xkKBAJ/bW9v92WTI2NDnZ2dYoPB8ILRaGwoKyvjsqk0naamphiXyzXgdrs/7OrqSmQSm5GhM2fOHNBoNM/U1dVJKYoSFEgIEcVisWYAkEql/RRFCRpNQgjldDpjfr//42PHjglmlyBDJ0+eVO7evfsndXV1FatMEaJEIqGOx+MHCCFyAKAoalEikVwSi8UBoTnm5+dFTqdzYnx8/C9C2JXS0CpT9Hr9gcrKypTb8HrxPJ+/srJygOf53cn+p2l6XCaTXaJpekloTp/PR3s8nkvp2LWhoXfffbderVYfbmhoKEjHlPVtjcVidSzLNhFCUj67URSVEIlENqlU6gQgKD/LsvTAwMBCIBA4/8orrziS5r3f0IkTJ+Q6ne6IyWQy7NixQ/CCZFm2NB6PP8Hz/HahMQBA0/R3EonkokgkCgqNmZmZEQ8ODrq9Xu/Z+9l1j6EPPvjgKZ1Od6impoYSmpzneVksFtvHcZxBaEwyMQzjlkqlPTRNrwiNGR4eJl6v98JLL73079XfKEIITp06VVlRUfHj+vr6nZkwJR6P6xOJxH5CiCxTA8lEUdSKWCy+KpFIPEJjIpGIyOFw3JyYmDjX3t7uo86dO3fUaDQ2lJeXCzbCcdz2WCz2BM/zpdk1PbVomg5KpdKLDMN8JzRmcnJS5HK5Bhi9Xv9RcXHx7V27dqUd6rtMMcfj8YOEkIKHa3bKeuQsy9bwPC9mGCZEUVTaTWNsbKzQbrc/RXV0dBAAMYVCcfnpp5+eKC4uTmrsfqY8KqVj161bt2SffPJJRTgcbgUgZVpbW3sIIQei0Wij0+ksmZubW9DpdEsUdWdf4Hk+PxqNHmRZtgWA9NFZWZOU4zgdy7LFd0crDgCEEHz66aelX3zxxfcjkUg9gAmapg8zV65c8fX09PwpHo/zhJC22dnZ2oGBARQUFCwVFBTUxOPxQ4QQxf/AyD0ihBSxLFtDCCFerzdy/vz5PcFg8CAhRAqgSy6XP/fmm2+O3LNtd3R0VFEU9R6AgyKRiNfr9fS+ffsgFj+S8420SiQS6Onpgcfj4VmWpQF8SQh5+Z133hldLSNaH/Dss8+GGYYJ3Lhxg9jtdnpoaAiTk5NoampCdXX1IzewXiMjI7DZbJifn4dMJqPNZjNRqVQBjuPC68utjhA1MDDwPIDfASgG7vSGw+HA2NgYAEClUmH//v0oKip6pEbm5uZw9epV3LhxAwCg1WpRX1+/ftbcAvCLhoaGjwAQyuFwGDmOOwOgNVnCcDiMvr4+zM3NQSaTwWg0orm5GTS9tUd6PM+jv78fLpcLKysrKCoqQktLCxSKDZfzZYZhjjFarfYfKpWqmabppAslNzcXWq0WMpkMwWAQU1NTCAQCyM/Px7Zt27bEzMTEBD7//HP4fD5QFIWGhgaYzWbk5uZuGMNxXPHXX39tYkwm07nh4eGZ3Nxcz/bt27+XrDBFUVAoFNBoNIhEIggGg/D5fLh9+zaUSuWmbRqRSAQXL15EX18flpeXoVKp8OSTT0KpVGIVI8nk8/n6uru7xYuLi3WrHDr07bffmvx+f295eTktkUiSwlMsFkOlUqGkpAQzMzMIBoPwer0AAKVS+VBmHA4HvvrqK4RCIeTl5aG1tRU1NTUpO2t5eXn6s88+Gx4fHzcDmKVp+jBFCMEbb7whW1xc/BWAXwJgKysrbS0tLY9TFCXaKBnP8xgaGoLb7QbHcSgtLcW+ffsyNhYKhdDT04NgMAiGYWAwGFBbW5tyjRJC2L6+vis+n68Jd3bqt+Vy+Vuvv/76yoYcysvLi5nNZmm6Bi4sLMBmsyEUCkEsFkOv1+Oxxx5LOw0TiQS++eYbeDweJBIJKJVKNDU1oaAg9SNiKBRCb28vu7y8LEISDt1jqLu7ezuAt0Oh0IsjIyNUPB5HeXk5mpubIZWmfuqZmJiA3W7HysoKCgsLU7LrPqagsbERFRUVKfPHYjH09/djcnISEokE1dXVUCqV/wLQ3tbWNvmAoe7u7ucBnMRdDrEsC6/Xu5bAZDKhqqoq5eJMxy4BTHlAhBCMjo5icHAQqx2s0+kgEq2thiUAvwFwqq2tjaUuXLhQA+CPAL6fLOHCwgJcLhcWFxeFsADAg+yqra0FAAwNDQllygN55HI5jEZjqil5HcBPmerq6r/t2LFjL8MwOclKSaVSlJWVQSKRIBQKwefzIRqNYufOnRsu3GTsmp6eFswUlmVht9ths9mQSCRQVVUFo9EImWzjF2OO4+ROp1NPdXR0JAAsaLVat0ajeXzDCNyZxx6PBzdv3kROTg727t0LtVqdKgTRaBR2ux0A0NjYiJycpP22pkAggGvXrq11ml6vT7t+p6en+10uVykhpIzq6OhoA/AegEqxWOxsamrKl8vllakShMNhDA8Pr1VqNpuRn5+fstJ0WlpaQm9v71pn1dTUpJ2S0Wh02mazTUajUTMAH4CXKUIILBaLDMAqh+iSkpIre/bsaWEYZsN5wfM8/H4/AoEAKIqCwWCAyWRKuWkkEyEEg4ODcLvdIIRArVZDo9Gk5ZDb7b4yNTW1xiEAb1mt1ns5ZLFYqnBntA5SFDVlNBqDu3btak7VoOXlZXg8HoTDYeTn56OlpUUwXEOhEPr6+rC0tASFQgG9Xo+8vLyUMeFweNDhcEg5jqsC8CWAl61Wa3IOrTP2HIDfA9iZk5PT29TUVJ6Tk7MrXeNGRkYghF0bMCWlkUQiMWe324cWFhZaAcwA+LnVav37/eU2PAq2WCyFALoAHAMQLSsrsxkMhpSPQ+nYJYApSeX3+y+PjY3VANgG4AyATqvVOp+sbNrbB4vF0nw3SQPDMKP19fUxhUJhShWTjF0AMmEKAGBxcdFns9mWEolEHYABAMesVmt/qhhB1ykWi4UBcBzAbwHICwoKLjc2NtaKxeINX18JIZicnMTY2Bh4/s6xGk3T0Gq1KC8vT7l5cBwXuX79et/s7OzjAKIAfg3gtNVqTXvBltGFl8ViKQXwBwA/BPCdVqsd1mg0Sd90V7XKLgAZMwXAPwH8zGq1Cj7Iz+qO1WKxZMyudErGFKvV2p1pnqwvjbNhVzKlYko27Xroa/1s2LWqdEzJRpv2JUkm7BLKlGy0qZ/GCGFXJkzJRlvyNVYydkkkktxMmZKNtuzzsvvZBYADEEEGTMlGW/4B4Dp2ARkyJRv9F9vsxWD/43R9AAAAAElFTkSuQmCC);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,.7);margin:0}.leaflet-control-attribution{padding:0 5px;color:#333}.leaflet-control-scale-line{color:#333;border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,.5)}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:0 0}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:rgba(255,255,255,.8);z-index:1000;box-shadow:0 1px 7px rgba(0,0,0,.65);margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{box-shadow:0 1px 7px #999;background:#fff}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:18px;padding:0 18px 0 2px;margin:3px 0 3px 3px}.leaflet-control-search.search-load .search-input{background:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///5mZmfj4+M/Pz/Ly8rS0tMnJyZmZmbu7u6enp93d3eTk5KCgoNfX15qamq6ursLCwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==) no-repeat center right #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:18px;position:absolute;right:22px;margin:3px 0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 0 -46px;text-decoration:none;opacity:.8}.leaflet-control-search .search-cancel:hover{opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:26px;height:26px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px 2px #fff;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAABGCAYAAADMz7TxAAAKQ2lDQ1BJQ0MgcHJvZmlsZQAAeNqdU3dYk/cWPt/3ZQ9WQtjwsZdsgQAiI6wIyBBZohCSAGGEEBJAxYWIClYUFRGcSFXEgtUKSJ2I4qAouGdBiohai1VcOO4f3Ke1fXrv7e371/u855zn/M55zw+AERImkeaiagA5UoU8Otgfj09IxMm9gAIVSOAEIBDmy8JnBcUAAPADeXh+dLA//AGvbwACAHDVLiQSx+H/g7pQJlcAIJEA4CIS5wsBkFIAyC5UyBQAyBgAsFOzZAoAlAAAbHl8QiIAqg0A7PRJPgUA2KmT3BcA2KIcqQgAjQEAmShHJAJAuwBgVYFSLALAwgCgrEAiLgTArgGAWbYyRwKAvQUAdo5YkA9AYACAmUIszAAgOAIAQx4TzQMgTAOgMNK/4KlfcIW4SAEAwMuVzZdL0jMUuJXQGnfy8ODiIeLCbLFCYRcpEGYJ5CKcl5sjE0jnA0zODAAAGvnRwf44P5Dn5uTh5mbnbO/0xaL+a/BvIj4h8d/+vIwCBAAQTs/v2l/l5dYDcMcBsHW/a6lbANpWAGjf+V0z2wmgWgrQevmLeTj8QB6eoVDIPB0cCgsL7SViob0w44s+/zPhb+CLfvb8QB7+23rwAHGaQJmtwKOD/XFhbnauUo7nywRCMW735yP+x4V//Y4p0eI0sVwsFYrxWIm4UCJNx3m5UpFEIcmV4hLpfzLxH5b9CZN3DQCshk/ATrYHtctswH7uAQKLDljSdgBAfvMtjBoLkQAQZzQyefcAAJO/+Y9AKwEAzZek4wAAvOgYXKiUF0zGCAAARKCBKrBBBwzBFKzADpzBHbzAFwJhBkRADCTAPBBCBuSAHAqhGJZBGVTAOtgEtbADGqARmuEQtMExOA3n4BJcgetwFwZgGJ7CGLyGCQRByAgTYSE6iBFijtgizggXmY4EImFINJKApCDpiBRRIsXIcqQCqUJqkV1II/ItchQ5jVxA+pDbyCAyivyKvEcxlIGyUQPUAnVAuagfGorGoHPRdDQPXYCWomvRGrQePYC2oqfRS+h1dAB9io5jgNExDmaM2WFcjIdFYIlYGibHFmPlWDVWjzVjHVg3dhUbwJ5h7wgkAouAE+wIXoQQwmyCkJBHWExYQ6gl7CO0EroIVwmDhDHCJyKTqE+0JXoS+cR4YjqxkFhGrCbuIR4hniVeJw4TX5NIJA7JkuROCiElkDJJC0lrSNtILaRTpD7SEGmcTCbrkG3J3uQIsoCsIJeRt5APkE+S+8nD5LcUOsWI4kwJoiRSpJQSSjVlP+UEpZ8yQpmgqlHNqZ7UCKqIOp9aSW2gdlAvU4epEzR1miXNmxZDy6Qto9XQmmlnafdoL+l0ugndgx5Fl9CX0mvoB+nn6YP0dwwNhg2Dx0hiKBlrGXsZpxi3GS+ZTKYF05eZyFQw1zIbmWeYD5hvVVgq9ip8FZHKEpU6lVaVfpXnqlRVc1U/1XmqC1SrVQ+rXlZ9pkZVs1DjqQnUFqvVqR1Vu6k2rs5Sd1KPUM9RX6O+X/2C+mMNsoaFRqCGSKNUY7fGGY0hFsYyZfFYQtZyVgPrLGuYTWJbsvnsTHYF+xt2L3tMU0NzqmasZpFmneZxzQEOxrHg8DnZnErOIc4NznstAy0/LbHWaq1mrX6tN9p62r7aYu1y7Rbt69rvdXCdQJ0snfU6bTr3dQm6NrpRuoW623XP6j7TY+t56Qn1yvUO6d3RR/Vt9KP1F+rv1u/RHzcwNAg2kBlsMThj8MyQY+hrmGm40fCE4agRy2i6kcRoo9FJoye4Ju6HZ+M1eBc+ZqxvHGKsNN5l3Gs8YWJpMtukxKTF5L4pzZRrmma60bTTdMzMyCzcrNisyeyOOdWca55hvtm82/yNhaVFnMVKizaLx5balnzLBZZNlvesmFY+VnlW9VbXrEnWXOss623WV2xQG1ebDJs6m8u2qK2brcR2m23fFOIUjynSKfVTbtox7PzsCuya7AbtOfZh9iX2bfbPHcwcEh3WO3Q7fHJ0dcx2bHC866ThNMOpxKnD6VdnG2ehc53zNRemS5DLEpd2lxdTbaeKp26fesuV5RruutK10/Wjm7ub3K3ZbdTdzD3Ffav7TS6bG8ldwz3vQfTw91jicczjnaebp8LzkOcvXnZeWV77vR5Ps5wmntYwbcjbxFvgvct7YDo+PWX6zukDPsY+Ap96n4e+pr4i3z2+I37Wfpl+B/ye+zv6y/2P+L/hefIW8U4FYAHBAeUBvYEagbMDawMfBJkEpQc1BY0FuwYvDD4VQgwJDVkfcpNvwBfyG/ljM9xnLJrRFcoInRVaG/owzCZMHtYRjobPCN8Qfm+m+UzpzLYIiOBHbIi4H2kZmRf5fRQpKjKqLupRtFN0cXT3LNas5Fn7Z72O8Y+pjLk722q2cnZnrGpsUmxj7Ju4gLiquIF4h/hF8ZcSdBMkCe2J5MTYxD2J43MC52yaM5zkmlSWdGOu5dyiuRfm6c7Lnnc8WTVZkHw4hZgSl7I/5YMgQlAvGE/lp25NHRPyhJuFT0W+oo2iUbG3uEo8kuadVpX2ON07fUP6aIZPRnXGMwlPUit5kRmSuSPzTVZE1t6sz9lx2S05lJyUnKNSDWmWtCvXMLcot09mKyuTDeR55m3KG5OHyvfkI/lz89sVbIVM0aO0Uq5QDhZML6greFsYW3i4SL1IWtQz32b+6vkjC4IWfL2QsFC4sLPYuHhZ8eAiv0W7FiOLUxd3LjFdUrpkeGnw0n3LaMuylv1Q4lhSVfJqedzyjlKD0qWlQyuCVzSVqZTJy26u9Fq5YxVhlWRV72qX1VtWfyoXlV+scKyorviwRrjm4ldOX9V89Xlt2treSrfK7etI66Trbqz3Wb+vSr1qQdXQhvANrRvxjeUbX21K3nShemr1js20zcrNAzVhNe1bzLas2/KhNqP2ep1/XctW/a2rt77ZJtrWv913e/MOgx0VO97vlOy8tSt4V2u9RX31btLugt2PGmIbur/mft24R3dPxZ6Pe6V7B/ZF7+tqdG9s3K+/v7IJbVI2jR5IOnDlm4Bv2pvtmne1cFoqDsJB5cEn36Z8e+NQ6KHOw9zDzd+Zf7f1COtIeSvSOr91rC2jbaA9ob3v6IyjnR1eHUe+t/9+7zHjY3XHNY9XnqCdKD3x+eSCk+OnZKeenU4/PdSZ3Hn3TPyZa11RXb1nQ8+ePxd07ky3X/fJ897nj13wvHD0Ivdi2yW3S609rj1HfnD94UivW2/rZffL7Vc8rnT0Tes70e/Tf/pqwNVz1/jXLl2feb3vxuwbt24m3Ry4Jbr1+Hb27Rd3Cu5M3F16j3iv/L7a/eoH+g/qf7T+sWXAbeD4YMBgz8NZD+8OCYee/pT/04fh0kfMR9UjRiONj50fHxsNGr3yZM6T4aeypxPPyn5W/3nrc6vn3/3i+0vPWPzY8Av5i8+/rnmp83Lvq6mvOscjxx+8znk98ab8rc7bfe+477rfx70fmSj8QP5Q89H6Y8en0E/3Pud8/vwv94Tz+4A5JREAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAAD2EAAA9hAag/p2kAAAAHdElNRQfdCR0OKzSQTWy0AAAEPElEQVRYw+2XXWhbZRjHf8vH7I6b2eqihLItXYgKTfuCClurOMUJboIyGV75gkLdja43IujFELxwV8KYV0KFwXsh+AHiTZkoohYUHGM7S4c2ZongPFvjUk+1J93apN48iYf0JP0wiBd5IOTkPe/7f77+z/mfwP/dNrW5dxtwF9Ajv6vAdWB+vYBRYBA4AowAO2XfPHAe+BSYBCprjfo54FvgJnALmAGuAX8BNaAAvAFsCzoc9l2HgAPAW8CDwI/AOHAG+Ay4CGwG7gMGABe4IE4CbSfwvkQ1CTwFRJoc3g98ACzKnky7VB8DikAZGJWmBNlBib4CvNzch5DvejewHbgCfCM1DLLvgB+k+7t9LFgBGBVvLrDQJpN5YK7pTCDgonzvaNVBsW2yx38mEPBnYBZIAU+I9yDejgD7pIZXAK+V5+3S5YpQ5Blgqy+lHmA/8JFMzTlgqB0PF6TDGaHHPiAJ9Ar3jgCvSJdD8imsxsUQcBj4HPhDanTTNzUeUJL1GjANvADcHhQhwLLU5ZwcXJauX5NoPpGULWCvDEMG+FMiXW5H9ChwJ9AvjUrI6G0CHgbOSuQ14Cd5Bvwre1RKUxNevkrTrK7XvpZausBvwMd0rWsd1mWtdaAuG2PWp8ta6zXpsjGmspqMAqCUOgq8KbO5R2baAnaJg0eAqFLqom3bt1pGqLUOyeZ3AAVclmiyMmJ7RVr3A78DbwPjxpglP6B/lnsBLel+D5wEztYPiMOvgNeAo8Dzos3ZVpoyCDwurxxngC/83o0xNWPMeZGJPPAAcEBrvTZdNsb8N7ostOmcLmutN6bLwsdmsBW6bIzxWgFOAV+KbrwIHNZab60XXWvdI0CjIq+XpZ7BxLZte0EpFajLSqmWuqyUumDbdi1wUpRSvwIOcDeQBoaBp4FnhfRxachmqfO9gKuUytm2vbgC0LbtZaXUhnRZIl1u97SJAnfIJyRvDTeksw8BJ0RKo0AOOGGM+TDShm+LAnAj4Pak1vqkcPCgvATs6upy1zopo8VioW+2XD7uuu4hz/OGgAXLsqZjsdjEjt7ed5PJ/qtrBsxmLx1zHOeU53lbgg5YllVJJBJjmczg+KqA2eylY78Ui+8tVatt04qEw+xJJl8KAg3503Qc51QdLB6PrwCqry1VqziOc7pYLPS1BJwtl8fqacbjcYaHRxgY+Off68BAhuHhkQao53lbZsvl4yuir1+4rvtk/bpUKpHP50mlUo2NqVSKfD5PqVTCd+YQ8HogoOd59/hvTE1lG0AA+Xy+sdbqTLOmdMQiPjpMu3NzQ/6a1dP0R+qP0rKs6ZaAsVhsog4Yj8cbYH6AVCrFzMz1Rh1jsdhESx4Wi4W+XC6X83fa34DmNcuyKul0Ot08NY0aJpP9VxOJxFgkHG50utnqa5FwmEQiMRY0gkGjN+o4zumOjF4nHg5d69oG7G9LxrhhWXdE7gAAAABJRU5ErkJggg==) no-repeat 2px -22px #fafafa;background-color:#f4f4f4}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;list-style:none;padding-left:0;min-width:120px;max-height:122px;box-shadow:1px 1px 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden;cursor:pointer}.leaflet-control-search .search-tip{margin:2px;padding:2px 4px;display:block;color:#000;background:#eee;border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em}.leaflet-bar button,.leaflet-bar button:hover{border:none;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar button{background-position:50% 50%;background-repeat:no-repeat;overflow:hidden;background-color:#fff}.leaflet-bar button:hover{background-color:#f4f4f4}.leaflet-bar button:first-of-type{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar button:last-of-type{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar button.disabled,.leaflet-bar.disabled{cursor:default;pointer-events:none;opacity:.4}.easy-button-button .button-state{display:block;width:100%;height:100%;position:relative}.leaflet-touch .leaflet-bar button{width:30px;height:30px;line-height:30px}.leaflet-control-loading:empty{background-image:url(data:image/gif;base64,R0lGODlhEAAQAPQAAP///wAAAPDw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH+GkNyZWF0ZWQgd2l0aCBhamF4bG9hZC5pbmZvACH5BAAKAAAAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAEAAQAAAFdyAgAgIJIeWoAkRCCMdBkKtIHIngyMKsErPBYbADpkSCwhDmQCBethRB6Vj4kFCkQPG4IlWDgrNRIwnO4UKBXDufzQvDMaoSDBgFb886MiQadgNABAokfCwzBA8LCg0Egl8jAggGAA1kBIA1BAYzlyILczULC2UhACH5BAAKAAEALAAAAAAQABAAAAV2ICACAmlAZTmOREEIyUEQjLKKxPHADhEvqxlgcGgkGI1DYSVAIAWMx+lwSKkICJ0QsHi9RgKBwnVTiRQQgwF4I4UFDQQEwi6/3YSGWRRmjhEETAJfIgMFCnAKM0KDV4EEEAQLiF18TAYNXDaSe3x6mjidN1s3IQAh+QQACgACACwAAAAAEAAQAAAFeCAgAgLZDGU5jgRECEUiCI+yioSDwDJyLKsXoHFQxBSHAoAAFBhqtMJg8DgQBgfrEsJAEAg4YhZIEiwgKtHiMBgtpg3wbUZXGO7kOb1MUKRFMysCChAoggJCIg0GC2aNe4gqQldfL4l/Ag1AXySJgn5LcoE3QXI3IQAh+QQACgADACwAAAAAEAAQAAAFdiAgAgLZNGU5joQhCEjxIssqEo8bC9BRjy9Ag7GILQ4QEoE0gBAEBcOpcBA0DoxSK/e8LRIHn+i1cK0IyKdg0VAoljYIg+GgnRrwVS/8IAkICyosBIQpBAMoKy9dImxPhS+GKkFrkX+TigtLlIyKXUF+NjagNiEAIfkEAAoABAAsAAAAABAAEAAABWwgIAICaRhlOY4EIgjH8R7LKhKHGwsMvb4AAy3WODBIBBKCsYA9TjuhDNDKEVSERezQEL0WrhXucRUQGuik7bFlngzqVW9LMl9XWvLdjFaJtDFqZ1cEZUB0dUgvL3dgP4WJZn4jkomWNpSTIyEAIfkEAAoABQAsAAAAABAAEAAABX4gIAICuSxlOY6CIgiD8RrEKgqGOwxwUrMlAoSwIzAGpJpgoSDAGifDY5kopBYDlEpAQBwevxfBtRIUGi8xwWkDNBCIwmC9Vq0aiQQDQuK+VgQPDXV9hCJjBwcFYU5pLwwHXQcMKSmNLQcIAExlbH8JBwttaX0ABAcNbWVbKyEAIfkEAAoABgAsAAAAABAAEAAABXkgIAICSRBlOY7CIghN8zbEKsKoIjdFzZaEgUBHKChMJtRwcWpAWoWnifm6ESAMhO8lQK0EEAV3rFopIBCEcGwDKAqPh4HUrY4ICHH1dSoTFgcHUiZjBhAJB2AHDykpKAwHAwdzf19KkASIPl9cDgcnDkdtNwiMJCshACH5BAAKAAcALAAAAAAQABAAAAV3ICACAkkQZTmOAiosiyAoxCq+KPxCNVsSMRgBsiClWrLTSWFoIQZHl6pleBh6suxKMIhlvzbAwkBWfFWrBQTxNLq2RG2yhSUkDs2b63AYDAoJXAcFRwADeAkJDX0AQCsEfAQMDAIPBz0rCgcxky0JRWE1AmwpKyEAIfkEAAoACAAsAAAAABAAEAAABXkgIAICKZzkqJ4nQZxLqZKv4NqNLKK2/Q4Ek4lFXChsg5ypJjs1II3gEDUSRInEGYAw6B6zM4JhrDAtEosVkLUtHA7RHaHAGJQEjsODcEg0FBAFVgkQJQ1pAwcDDw8KcFtSInwJAowCCA6RIwqZAgkPNgVpWndjdyohACH5BAAKAAkALAAAAAAQABAAAAV5ICACAimc5KieLEuUKvm2xAKLqDCfC2GaO9eL0LABWTiBYmA06W6kHgvCqEJiAIJiu3gcvgUsscHUERm+kaCxyxa+zRPk0SgJEgfIvbAdIAQLCAYlCj4DBw0IBQsMCjIqBAcPAooCBg9pKgsJLwUFOhCZKyQDA3YqIQAh+QQACgAKACwAAAAAEAAQAAAFdSAgAgIpnOSonmxbqiThCrJKEHFbo8JxDDOZYFFb+A41E4H4OhkOipXwBElYITDAckFEOBgMQ3arkMkUBdxIUGZpEb7kaQBRlASPg0FQQHAbEEMGDSVEAA1QBhAED1E0NgwFAooCDWljaQIQCE5qMHcNhCkjIQAh+QQACgALACwAAAAAEAAQAAAFeSAgAgIpnOSoLgxxvqgKLEcCC65KEAByKK8cSpA4DAiHQ/DkKhGKh4ZCtCyZGo6F6iYYPAqFgYy02xkSaLEMV34tELyRYNEsCQyHlvWkGCzsPgMCEAY7Cg04Uk48LAsDhRA8MVQPEF0GAgqYYwSRlycNcWskCkApIyEAOwAAAAAAAAAAAA==);background-repeat:no-repeat}.leaflet-control-layer-container,.leaflet-control-loading,.leaflet-control-zoom a.leaflet-control-loading,.leaflet-control-zoomslider a.leaflet-control-loading{display:none}.hero .content i.avatar:hover .button,.leaflet-control-layer-container.is-loading,.leaflet-control-loading.is-loading,.leaflet-control-zoom a.leaflet-control-loading.is-loading,.leaflet-control-zoomslider a.leaflet-control-loading.is-loading{display:block}.leaflet-bar-part-bottom{border-bottom:medium none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.awesome-marker{background:url(../img/markers-soft.png) no-repeat 0 0;width:35px;height:46px;position:absolute;left:0;top:0;display:block;text-align:center}.awesome-marker-shadow{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==) no-repeat 0 0;width:36px;height:16px}@media (min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:1.5dppx){.awesome-marker{background-image:url(../img/markers-soft@2x.png);background-size:720px 46px}.awesome-marker-shadow{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAgCAYAAACvgw7DAAAFhElEQVR42tWZ/0ubVxSHZZQxpJQRwoqEUkJQQhlBCcEiQRGJiKFEQqQ4lKFYLA5FsSjKioqipRutbLJ2f627g+dyDmfvqfetzlLh+aFpcr88+dxzb+7bdwt/33wG974g/rhu+pdzwt86fJdA/82w7Un/18m6kRBXgD+5+4YHDt/fEtImfRppVlJ+MY4QEWEmbyZZUBQVP2TwMJGBDMx7aFP6K4gwJBlBecVYISIDCSJAJm0mUIJH8NhQdqjkh8/SNv2VRB6SjCAtJ2dKMGuFIEIEMHGZ2CAMQdXwxPDjNdQ++f+0Q9tD9F1RkgYYLwlCDmIg19IhJQiRVJToFAlMViYxHBiBOjQyGP0ETzMw76Ed+qC/YSVrSAkqiRySo1IjAnwkKSKlQKMIQQYS4sQZ/Bg0A+MwYZg0TKViPjeh+mjS72iUhKCqyCE5pCZdDEmxUmjwURQSZSCiqSbXCkwHZmAW2g7PEmkbZml/mj6nlKgm42rE9DDushHzQGpNohjefB8pD2NK6GSEjscZ1AyD7QTmAt1AD+YVz/Mjn6e9LswB0pCEICVnhFQPIabEfAoiJj0xkhaWj5LSoNMW39ocA14I/BRYCvwMy58NbdDe4r9twwLCEIUcEoSYCbWkhqk1g0lLyTv92bTQUBkpdZWSDoNbZAKrgbXAy8B64JdE1jN4SVsvAquwokUhaJ70dNTyaiEmLqUaYiqUArZu0qLF+EdjOa/wwWKsK2r5tPiGFhjoGhPcCmwHdgKvEtlRbMNWYDOwQbtIEjlGDIlhKUmNqZOWKuOPW3bRSct1iUGMbM2PabxBp20GtMygt5jkfuAg8DpwaOF1y6+BA9iDXdpDEoKQQ79LLKv5mBZVX8ZZQiO66Nqt2jngISFNTJkoPqXjLoOKUvaY5HHgJHDmcAoncBw4UtIOkLtnxJAapEid6aqkTKliW2f5VOPysXUFjJQ0Mf1KTAXzTb6VeeK8wQQOmeibwNvA7xn8xv+95X3nyIqCDiU9iGFJUXPWkLKo6krbLJ2GpIQdiJoiy8dJyg3E1IjoDDvCCgPfZ3LnCHgf+MNwwevveE+UE1N0RGKilJ0MIUv021Vb86QIYefJJUSkXF1d4eS6rdoXM0uUV5nA6ygFCZeBDxpe+1MEkSBJzbESs6uWzwu+gEWzdFpIidtxzWzHck5h6fgpETHI8cWYGlOMW7VKzEKWGCb/V+Bj4G/4wGtRzDsSc07SjjKSsqaEPFdCpkWIpMQc9UmJCLEXVVaGFXPP4G/XUnybjpg3TPhSS4GPKjHvVVJOY10hJduxyKpa0gt01Nlk3JxkbXEt+j8OBREhpIgRORzw6LiqdqUexXeTb/qUFFzE1MAly4vaQkpYNrHAqh1nSS2Ztl0yJiFsvyYhbh0RHDH+UvJSw7cxqM4xc9SZdbUrnaniewEiRBJyoBKyniGk4y8ZOY+kLhn4z19+MYLcw8ghr0ZqppnEMpPbZUmcIOAMTA1hubDTILenziKT5nBmt92B9G1XhOQQk3iliRgGU+JbqzOBttqdNkUOp1451e5LUWXJSFHtaCHebxunqKZJ4d+3LEZ2JwZWYcCjLKlnTHCZFGwgIB7MYjFdUculJwczKaZquVT9c4gUVKeG9P3fYuS3VPaPyRrf7CQ7Ro/0yDWD+qHn7C5j5ug+aO9m7c2+FZLndv/2xPin4BLJqcZf2wiaMbdxs3KzJncjzlWjFFM5lJl0+A/I7lpMX+bdDHKIe1WlZ0zuddXVIjJMMsr21t6mI+8DsbsXQ2pEDqdhuf+tsHM8YfJgbujZZh0Z/W4xNX9fXoz/+8nKKdlnSYqKTYctplYIfC1i7KFPnhwwUXnMah+dioxCsgyEfD1iIPMxrVAQ0p8ZexLuWsw/8PFSG0HPbPgAAAAASUVORK5CYII=);background-size:35px 16px}}.awesome-marker i{color:#333;margin-top:10px;display:inline-block;font-size:14px}.awesome-marker .icon-white{color:#fff}.awesome-marker-icon-red{background-position:0 0}.awesome-marker-icon-darkred{background-position:-180px 0}.awesome-marker-icon-lightred{background-position:-360px 0}.awesome-marker-icon-orange{background-position:-36px 0}.awesome-marker-icon-beige{background-position:-396px 0}.awesome-marker-icon-green{background-position:-72px 0}.awesome-marker-icon-darkgreen{background-position:-252px 0}.awesome-marker-icon-lightgreen{background-position:-432px 0}.awesome-marker-icon-blue{background-position:-108px 0}.awesome-marker-icon-darkblue{background-position:-216px 0}.awesome-marker-icon-lightblue{background-position:-468px 0}.awesome-marker-icon-purple{background-position:-144px 0}.awesome-marker-icon-darkpurple{background-position:-288px 0}.awesome-marker-icon-pink{background-position:-504px 0}.awesome-marker-icon-cadetblue{background-position:-324px 0}.awesome-marker-icon-white{background-position:-574px 0}.awesome-marker-icon-gray{background-position:-648px 0}.awesome-marker-icon-lightgray{background-position:-612px 0}.awesome-marker-icon-black{background-position:-682px 0}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out,-o-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:rgba(181,226,140,.6)}.marker-cluster-small div{background-color:rgba(110,204,57,.6)}.marker-cluster-medium{background-color:rgba(241,211,87,.6)}.marker-cluster-medium div{background-color:rgba(240,194,12,.6)}.marker-cluster-large{background-color:rgba(253,156,115,.6)}.marker-cluster-large div{background-color:rgba(241,128,23,.6)}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px "Helvetica Neue",Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}@keyframes chartjs-render-animation{0%{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}.item-category{border:1px solid #ddd!important}.item-category .h2{overflow:inherit;text-overflow:inherit;white-space:normal!important}.item-category .item-divider,.item-category.item-divider{background-color:#f5f5f5!important}.item-record{height:80px!important;padding-top:5px!important}.row-record{border-bottom:solid 1px #ccc!important;padding:0!important;height:75px!important;overflow:hidden}.row-record .col{padding-top:5px;padding-bottom:0}.row-record .item-avatar i.item-image{font-size:34px!important}.card-record .badge-picture-count,.row-record .badge-picture-count{position:absolute!important;right:inherit!important;top:inherit!important}.card-record .badge-picture-count{left:67px!important;bottom:15px!important}.row-record .badge-picture-count{left:54px!important;bottom:13px!important}.card-record .item-thumbnail-left{padding-left:150px}.card-record .item-thumbnail-left .item-image{border-radius:0;box-shadow:none;max-width:130px;max-height:130px;top:inherit;background-repeat:no-repeat}.card-record .card-footer .badge{top:inherit;bottom:10px;right:10px}.row-record .col-text-wrap{padding:0;margin:0}.row-record .col .text-wrap{height:70px;white-space:normal;position:relative;word-wrap:break-word!important;overflow:hidden!important;text-overflow:ellipsis;-o-text-overflow:ellipsis;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;-o-hyphens:auto;hyphens:auto}.row-record .col .text-wrap:after{content:'';position:absolute;bottom:0;right:0;width:100%;height:30%;background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,#fff));background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-o-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:-ms-linear-gradient(top,rgba(255,255,255,0) 0%,#fff 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 )}.item.gallery{display:inline-block}.item-more-comments{padding-top:0;padding-bottom:0;min-height:inherit!important}.hero .content .button.button-camera{display:block;position:absolute;bottom:0;right:0}.hero .content i.avatar .button{display:none;position:absolute;bottom:-25px;left:-3px}.hero .content i.avatar{font-size:55px!important;line-height:88px}.view-message h1.title{font-size:22px;margin-top:5px}.view-messages .list .item{height:80px}.view-messages .list .item-content{padding-top:8px;padding-bottom:8px}.view-page ion-content.refresher-top-bg:before{background-color:#f8f8f8!important;height:200px}.view-page .hero{background-color:#f8f8f8!important}.view-page .hero .content i.avatar{border:1px solid gray;color:gray!important}.modal-search-location .bar-footer{height:30px}.modal-search-location .bar-footer .copyright{font-size:12px;line-height:30px}.list.dropdown-list{z-index:1010;opacity:1;display:block;list-style:none;position:absolute;background-color:#fff;border-radius:0 0 2px 2px;box-shadow:0 2px 4px rgba(0,0,0,.2);width:100%;overflow-y:auto;overflow-x:hidden;cursor:pointer}.list.dropdown-list .item{padding-top:5px;padding-bottom:5px}.list.dropdown-list .item.active,.list.dropdown-list .item:active,.list.dropdown-list .item:focus,.list.dropdown-list .item:hover{background-color:#b2e0ff}.item-document.compacted{min-height:16px!important;max-height:16px!important;border-bottom:0!important}.item-document.compacted .col{padding-top:1px}.cion-page-association:before,.ion-page-association:before{font-family:"Ionicons";content:"\f212"}.cion-page-company:before,.ion-page-company:before{font-family:"Cesiumicons";content:"\e903"}.cion-page-institution:before,.ion-page-institution:before{font-family:"Cesiumicons";content:"\e921"}.cion-page-shop:before,.ion-page-shop:before{font-family:"Ionicons";content:"\f110"}.buttons-block{display:block;height:57px}.popover-graph-currency{height:300px!important;max-width:250px!important}.legend{font:14px/16px Arial,Helvetica,sans-serif;background:rgba(255,255,255,.9);box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:5px;padding:6px 8px;width:180px;line-height:18px;color:#555}.legend .outline{border:0}.legend i{width:16px;height:16px;float:left;margin-right:8px;opacity:.7}.search-tip{white-space:nowrap}.leaflet-popup .item-peer{padding-bottom:3px;padding-top:0}.leaflet-popup .item.item-icon-left>i.avatar:first-child{left:9px;top:0}.leaflet-popup .item-peer .badge{top:inherit;bottom:0;right:5px;font-size:12px}.leaflet-popup .item-peer .badge .badge-secondary,.leaflet-popup .item-peer .badge.badge-secondary{top:inherit;bottom:-16px;right:5px;font-size:9px;padding-right:0}.view-map-network .leaflet-popup-content{max-height:250px}.view-map-network .leaflet-popup-content .item-peer .row{display:block}.view-map-network .leaflet-popup-content .item-peer .col.col-15,.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-box-flex:0;-webkit-flex:0 0 15%;-moz-box-flex:0;-moz-flex:0 0 15%;-ms-flex:0 0 15%;flex:0 0 15%;max-width:70px;text-align:start!important}.view-map-network .leaflet-popup-content .item-peer .col.col-20{-webkit-flex:0 0 20%;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%}.view-map-registry .leaflet-popup-content,.view-map-wot .leaflet-popup-content{min-width:200px}.view-map-wot .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-wot .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.view-map-registry .leaflet-popup-content .item-avatar .item-image{left:0}.view-map-registry .leaflet-popup-content .item-avatar .item-content{padding-left:70px}.marker-cluster-small.blue{background-color:rgba(56,170,221,.6)}.marker-cluster-small.blue div{background-color:rgba(37,144,193,.9);color:#fff}.marker-cluster-medium.blue{background-color:rgba(37,144,193,.6)}.marker-cluster-medium.blue div{background-color:rgba(18,121,167,.9);color:#fff}.marker-cluster-large.blue{background-color:rgba(18,121,167,.6)}.marker-cluster-large.blue div{background-color:rgba(0,99,141,.9);color:#fff}.marker-cluster-small.green{background-color:rgba(110,170,37,.6)}.marker-cluster-small.green div{background-color:rgba(92,150,19,.9);color:#fff}.marker-cluster-medium.green{background-color:rgba(92,150,19,.6)}.marker-cluster-medium.green div{background-color:rgba(71,126,1,.9);color:#fff}.marker-cluster-large.green{background-color:rgba(171,126,1,.6)}.marker-cluster-large.green div{background-color:rgba(51,103,0,.9);color:#fff}.marker-cluster-small.lightgreen{background-color:rgba(187,249,112,.4)}.marker-cluster-small.lightgreen div{background-color:rgba(162,221,90,.8);color:gray}.marker-cluster-medium.lightgreen{background-color:rgba(162,221,90,.6)}.marker-cluster-medium.lightgreen div{background-color:rgba(136,192,69,.8);color:#fff}.marker-cluster-large.lightgreen{background-color:rgba(136,192,69,.6)}.marker-cluster-large.lightgreen div{background-color:rgba(115,168,49,.8);color:#fff}.marker-cluster-small.lightgray{background-color:rgba(163,163,163,.6)}.marker-cluster-small.lightgray div{background-color:rgba(163,163,163,.9);color:#fff}.marker-cluster-medium.lightgray{background-color:rgba(139,139,139,.6)}.marker-cluster-medium.lightgray div{background-color:rgba(139,139,139,.9);color:#fff}.marker-cluster-large.lightgray{background-color:rgba(116,116,116,.6)}.marker-cluster-large.lightgray div{background-color:rgba(116,116,116,.9);color:#fff}.marker-cluster-small.red{background-color:rgba(212,62,42,.4)}.marker-cluster-small.red div{background-color:rgba(186,42,23,.8);color:#fff}.marker-cluster-medium.red{background-color:rgba(186,42,23,.6)}.marker-cluster-medium.red div{background-color:rgba(161,23,5,.8);color:#fff}.marker-cluster-large.red{background-color:rgba(161,23,5,.6)}.marker-cluster-large.red div{background-color:rgba(137,5,0,.8);color:#fff}
\ No newline at end of file
diff --git a/assets/www/dist_js/cesium-33384bdb49.js b/assets/www/dist_js/cesium-33384bdb49.js
deleted file mode 100644
index 2babacafb9bbd37212c397e1a8d94e814b652492..0000000000000000000000000000000000000000
--- a/assets/www/dist_js/cesium-33384bdb49.js
+++ /dev/null
@@ -1,49 +0,0 @@
-function Peer(e){var t=this;Object.keys(e).forEach(function(n){t[n]=e[n]}),t.endpoints=t.endpoints||[]}function Block(e,t){"use strict";var n=this;t&&t.length?_.forEach(t,function(t){n[t]=e[t]}):["currency","issuer","medianTime","number","version","powMin","dividend","membersCount","hash","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions","unitbase"].forEach(function(t){n[t]=e[t]}),n.identitiesCount=n.identities?n.identities.length:0,n.joinersCount=n.joiners?n.joiners.length:0,n.activesCount=n.actives?n.actives.length:0,n.leaversCount=n.leavers?n.leavers.length:0,n.revokedCount=n.revoked?n.revoked.length:0,n.excludedCount=n.excluded?n.excluded.length:0,n.certificationsCount=n.certifications?n.certifications.length:0,n.transactionsCount=n.transactions?n.transactions.length:0,n.empty=n.isEmpty()}function exact(e){return new RegExp("^"+e+"$")}function Ws2pMessage(e){var t=this,n=e.split(":");if(n.length<3||!n[0].startsWith("WS2P"))throw Error("Invalid format: "+e);if("HEAD"==n[1]){if(n.length<4)throw Error("Invalid format: "+e);if(4==n.length)t.pubkey=n[2],t.buid=n[3];else{if(n[2]>=1){var i=n[0];if(i.length>4){var a=this.regexp.WS2P_PREFIX.exec(i);if(!a)throw Error("Invalid format: "+e);var o=a[1];if(o){t.private={useTor:o.startsWith("T")};var r=o.substring(1);"A"==r?t.private.mode="all":"M"==r?t.private.mode="mixed":"S"==r&&(t.private.mode="strict")}var s=a[2];s&&(t.public={useTor:s.startsWith("T"),mode:"all"})}t.pubkey=n[3],t.buid=n[4],t.ws2pid=n[5],t.software=n[6],t.version=n[7],t.powPrefix=n[8]}}}}function PluginExtensionPointController(e,t){"ngInject";e.extensionPoint=t.extensions.points.current.get()}function AppController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,_,f){"ngInject";e.walletData=E.data,e.search={},e.login=E.isLogin(),e.auth=E.isAuth(),e.motion=p.motion.default,e.fullscreen=p.screen.fullscreen.isEnabled(),e.showHome=function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.home").then(p.loading.hide)},e.scanQrCodeAndGo=function(){if(b.barcode.enable)return b.barcode.scan().then(function(e){if(e)return m.uri.parse(e).then(function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return n.go("app.wot_identity",{pubkey:e.pubkey,node:e.host?e.host:null})}).catch(function(t){return console.debug("[app] Scan data is not an URI (get error: "+(t&&t.message||t)+"). Trying to decode as a WIF or EWIF format..."),d.keyfile.parseData(e).then(function(e){if(!e||!e.signPk||!e.signSk)throw t;var i=u.base58.encode(e.signPk);console.debug("[app] Detected WIF/EWIF format. Will login to wallet {"+i.substring(0,8)+"}");var a=E.isLogin()?E.children.create({store:!1}):E;return a.login({silent:!0,forceAuth:!0,minData:!1,authData:{pubkey:i,keypair:e}}).then(function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.new_transfer",{all:!0,wallet:a.isDefault()?void 0:a.id})})}).catch(p.onError("ERROR.SCAN_UNKNOWN_FORMAT"))})}).catch(p.onError("ERROR.SCAN_FAILED"))},e.createHelptipScope=function(n,i){if(n||!t.tour&&t.settings.helptip.enable&&!p.screen.isSmall()){var a=e.$new();return s(i||"HelpTipCtrl",{$scope:a}),a}},e.startHelpTour=function(n,i){if(t.tour=!0,!i)return r.clearHistory(),r.clearCache().then(function(){e.startHelpTour(n,!0)});var a=e.createHelptipScope(!0,n);return a.startHelpTour().then(function(){a.$destroy(),delete t.tour}).catch(function(e){delete t.tour})},e.isLogin=function(){return e.login},e.loadWalletData=function(e){return console.warn("[app-controller] DEPRECATED  - Please use csWallet.load() instead of $scope.loadWalletData()",new Error),e=e||{},(e.wallet||E).loadData(e).then(function(e){if(!e)throw"CANCELLED";return e})},e.loadWallet=function(t){if(console.warn("[app-controller] DEPRECATED  - Please use csWallet.loginOrLoad() instead of $scope.loadWallet()",new Error),!c.isStarted())return c.ready().then(function(){return e.loadWallet(t)});t=t||{};var n=t.wallet||E;return t.auth&&!n.isAuth()?n.auth(t).then(function(e){if(e)return e;throw"CANCELLED"}):n.isLogin()?n.isDataLoaded(t)?a.when(n.data):e.loadWalletData(t):n.login(t).then(function(e){if(e)return e;throw"CANCELLED"})},e.loginAndGo=function(t,i){e.closeProfilePopover(),i=i||{};var a=i.wallet||E;if(delete i.wallet,t=t||"app.view_wallet",a.isLogin())return n.go(t,i);if(_.httpsMode&&l.location&&"https:"!==l.location.protocol){var o=l.location.href,r=o.indexOf("#"),s=-1!=r?o.substr(0,r):o;if(s="https"+s.substr(4),o=s+n.href(t),!_.httpsModeDebug)return void(l.location.href=o);console.debug("[httpsMode] --- Should redirect to: "+o)}return a.login(i).then(function(){return n.go(t,i)}).then(p.loading.hide)},e.logout=function(t){t=t||{};var n=t.wallet||E;return!t.force&&e.profilePopover?e.profilePopover.hide().then(function(){return t.force=!0,e.logout(t)}):t.askConfirm?p.alert.confirm("CONFIRM.LOGOUT").then(function(n){if(n)return t.askConfirm=!1,e.logout(t)}):(p.loading.show(),n.logout().then(function(){if(i.isOpenLeft()&&i.toggleLeft(),n.isDefault())return r.clearHistory(),r.clearCache().then(function(){return e.showHome()})}).catch(p.onError()))},e.doAuth=function(e){return(e&&e.wallet||E).auth().then(p.loading.hide)},e.isUserPubkey=function(e){return E.isUserPubkey(e)},E.api.data.on.login(e,function(t,n){return e.login=!0,n?n.resolve():a.when()}),E.api.data.on.logout(e,function(){e.login=!1}),E.api.data.on.auth(e,function(t,n){return e.auth=!0,n?n.resolve():a.when()}),E.api.data.on.unauth(e,function(){e.auth=!1}),e.showTransferModal=function(e){return g.showTransfer(e)},e.showAboutModal=function(){return g.showAbout()},e.showJoinModal=function(){return e.closeProfilePopover(),g.showJoin()},e.showSettings=function(){return e.closeProfilePopover(),n.go("app.settings")},e.showHelpModal=function(e){return g.showHelp(e)},e.showProfilePopover=function(t){return p.popover.show(t,{templateUrl:"templates/common/popover_profile.html",scope:e,autoremove:!0,afterShow:function(t){e.profilePopover=t,o(function(){p.ink({selector:"#profile-popover .ink, #profile-popover .ink-dark"})},100)}})},e.closeProfilePopover=function(){e.profilePopover&&e.profilePopover.isShown()&&o(function(){e.profilePopover.hide()})},e.showPeerInfoPopover=function(t){return p.popover.show(t,{templateUrl:"templates/network/popover_peer_info.html",autoremove:!0,scope:e.$new(!0)})},e.openLink=function(e,t,n){return e.stopPropagation(),e.preventDefault(),n=n||{},n.onError=function(){return p.popover.copy(e,t)},f.uri.open(t,n),!1},e.showFab=function(e,t){p.motion.toggleOn({selector:"#"+e+".button-fab"},t)},e.hideFab=function(e,t){p.motion.toggleOff({selector:"#"+e+".button-fab"},t)},e.doMotion=function(t){return e.motion.show(t)},e.askFullscreen=function(){if(!e.fullscreen&&p.screen.isSmall()&&b.isWeb())return p.alert.confirm("CONFIRM.FULLSCREEN",null,{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then(function(t){t&&e.toggleFullscreen()})},e.toggleFullscreen=function(){e.fullscreen=!p.screen.fullscreen.isEnabled(),p.screen.fullscreen.toggleAll()}}function HomeController(e,t,n,i,a,o,r,s,l){"ngInject";e.loading=!0,e.locales=angular.copy(l.locales),e.enter=function(n,a){ionic.Platform.isIOS()&&window.StatusBar&&(StatusBar.overlaysWebView(!1),StatusBar.overlaysWebView(!0)),a&&a.stateParams&&a.stateParams.error?(e.error=a.stateParams.error,e.node=s.data.node,e.loading=!1,i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),t.go("app.home",{error:void 0},{reload:!1,inherit:!0,notify:!1})):r.ready().then(function(){e.loading=!1}).catch(function(t){e.node=s.data.node,e.loading=!1,e.error=t})},e.$on("$ionicView.enter",e.enter),e.reload=function(){e.loading=!0,delete e.error,n(e.enter,200)},e.doQuickFix=function(e){"settings"==e&&(i.nextViewOptions({historyRoot:!0}),t.go("app.settings"))},e.changeLanguage=function(t){a.use(t),e.hideLocalesPopover(),l.data.locale=_.findWhere(e.locales,{id:t})},e.showLocalesPopover=function(t){o.popover.show(t,{templateUrl:"templates/api/locales_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.localesPopover=t}})},e.hideLocalesPopover=function(){e.localesPopover&&(e.localesPopover.hide(),e.localesPopover=null)}}function JoinController(e,t,n,i,a){"ngInject";angular.extend(this,n("HomeCtrl",{$scope:e})),e.showJoinModal=function(){return e.loading?t(e.showJoinModal,500):a.isLogin()||e.error?void 0:t(i.showJoin,300)},e.$on("$ionicView.enter",e.showJoinModal)}function JoinChooseAccountTypeModalController(e,t,n,i,a){"ngInject";e.formData={},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.loading=!0,e.load=function(){if(e.loading)return a.get().then(function(t){t&&(e.currency=t,e.formData.currency=t.name,e.loading=!1)}).catch(i.onError("ERROR.GET_CURRENCY_FAILED"))},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",function(e,t){t.slider.lockSwipes()}),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.selectAccountTypeAndClose=function(t){e.formData.accountType=t,e.closeModal(e.formData)},e.doQuickFix=function(n){"settings"==n&&(e.closeModal(),t.go("app.settings"))},e.showHelpModal=function(e){n.showHelp({anchor:e})}}function JoinModalController(e,t,n,i,a,o,r,s,l,c,u,d,p){"ngInject";e.formData={pseudo:p.uid||"",pubkey:p.pubkey||void 0},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500,pager:!1,showPager:!1}},e.slideBehavior={},e.loading=!0,e.isLicenseRead=o.isIOS(),e.showUsername=!1,e.showPassword=!1,e.formData.computing=!1,e.smallscreen=r.screen.isSmall(),e.userIdPattern=d.constants.regexp.USER_ID,e.accountAvailable=!!p.pubkey,e.currency=p.currency,e.accountType=p.accountType||"member";var m;e.load=function(){if(e.loading){if(!(m=p.walletId&&u.children.get(p.walletId)||p.pubkey&&u.children.getByPubkey(p.pubkey)||(!p.pubkey||u.isUserPubkey(p.pubkey))&&u))throw new Error("Cannot found the corresponding wallet, from parameters.pubkey or parameters.walletId");console.debug("[join] Starting join modal on wallet {0}".format(m.id)),"member"===e.accountType&&(e.licenseFileUrl=l.getLicenseUrl(),e.licenseFileUrl&&(".txt"!=e.licenseFileUrl.substring(e.licenseFileUrl.length-3)&&(e.licenseFileUrl=e.licenseFileUrl+".html"),e.isLicenseRead||a(function(){e.isLicenseRead||(e.isLicenseRead=!0)},5e3))),e.slideBehavior=e.computeSlideBehavior(),e.loading=!1}},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",function(e,t){t.slider.lockSwipes()}),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.showAccountPubkey=function(){if(p.pubkey&&p.pseudo===e.formData.pseudo)return e.formData.pubkey=p.pubkey,void(e.formData.computing=!1);e.formData.computing=!0,s.scryptKeypair(e.formData.username,e.formData.password).then(function(t){return e.formData.pubkey=s.util.encode_base58(t.signPk),e.checkAccountAvailable()}).then(function(){return a(function(){e.formData.computing=!1},400)}).catch(function(t){e.formData.pubkey=void 0,e.formData.computing=!1,r.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t)})},e.formDataChanged=function(){e.formData.computing=!1,e.formData.pubkey=null},e.getCurrentFormName=function(){var t=e.slides.slider.activeIndex;if("member"===e.accountType){if(t+=e.licenseFileUrl?0:1,0===(t+=p.pubkey&&t>=2?2:0))return"licenseForm";if(1===t)return"pseudoForm";if(2===t)return"saltForm";if(3===t)return"passwordForm";if(4===t)return"confirmForm"}else{if(0===t)return"saltForm";if(1===t)return"passwordForm";if(2===t)return"confirmForm"}},e.computeSlideBehavior=function(){var t=e.getCurrentFormName();return"licenseForm"===t?{hasPreviousButton:!1,hasNextButton:!1,hasAcceptButton:!0}:"pseudoForm"===t?{helpAnchor:"join-pseudo",hasPreviousButton:e.licenseFileUrl&&!0,hasNextButton:!0,focus:"pseudo"}:"saltForm"===t?{helpAnchor:"join-salt",hasPreviousButton:"member"===e.accountType,hasNextButton:!0,focus:"salt"}:"passwordForm"===t?{helpAnchor:"join-password",hasPreviousButton:!0,hasNextButton:!0,focus:"password"}:"confirmForm"===t?{hasPreviousButton:!0,hasNextButton:!1,hasSendButton:!0,helpAnchor:"join-pubkey"}:{hasPreviousButton:!1,hasNextButton:!0}},e.doNext=function(){var t=e.getCurrentFormName();if(t&&e[t]){if(e[t].$submitted=!0,!e[t].$valid)return;if("pseudoForm"===t&&e.uiAlreadyUsed)return;"passwordForm"===t&&e.showAccountPubkey()}e.slideNext(),e.slideBehavior=e.computeSlideBehavior()},e.doPrev=function(){e.slidePrev(),e.slideBehavior=e.computeSlideBehavior()},e.doNewAccount=function(n){if(!n){var o="member"===e.accountType?"ACCOUNT.NEW.CONFIRMATION_MEMBER_ACCOUNT":"ACCOUNT.NEW.CONFIRMATION_WALLET_ACCOUNT";return r.alert.confirm(o,void 0,{cssClass:"warning",okText:"member"==e.accountType?"COMMON.BTN_SEND":"COMMON.BTN_CONTINUE",okType:"button-assertive"}).then(function(t){t&&e.doNewAccount(!0)})}var s=function(e){return function(t){throw parameter.uid?m.unauth().then(function(){r.onError(e)(t)}):m.logout().then(function(){r.onError(e)(t)}),new Error("CANCELLED")}};return r.loading.show(),m.login({auth:!0,isNew:!0,method:"SCRYPT_DEFAULT",expectedPubkey:e.formData.pubkey,showMethods:!1}).then(function(){if("member"===e.accountType){e.closeModal(),l.data.wallet=l.data.wallet||{},l.data.wallet.alertIfUnusedWallet=!1;var n=angular.isUndefined(p.uid)||angular.isUndefined(p.blockUid)||p.uid.toUpperCase()!==e.formData.pseudo.toUpperCase();n||m.setSelf(p.uid,p.blockUid);return(n?m.self(e.formData.pseudo,!1).catch(s("ERROR.SEND_IDENTITY_FAILED")):i.when()).then(function(){return m.membership.inside().catch(function(e){e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND||s("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e)})}).then(function(){return e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})}).then(function(){return a(function(){return m.isDataLoaded({requirements:!0})&&r.loading.hide(),e.downloadRevocationRegistration()},2e3)})}e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})}).catch(function(e){if(r.loading.hide(),"CANCELLED"!==e)return e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND?void console.error("[wallet] Node: already membership",e):void r.alert.error("ERROR.UNKNOWN_ERROR")})},e.downloadRevocationRegistration=function(){return r.alert.confirm("DOWNLOAD.POPUP_REVOKE_MESSAGE","DOWNLOAD.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_DOWNLOAD",okType:"button-assertive",cancelText:"COMMON.BTN_LATER"}).then(function(e){if(e)return m.downloadRevocation()})},e.showHelpModal=function(e){c.showHelp({anchor:e})},e.startListenLicenseBottom=function(){var t=angular.element(document.querySelector(".modal #iframe-license"));if(!(t=t&&t.length?t[0]:void 0)||!t.contentWindow)return console.debug("[join] Waiting license frame to be load..."),a(e.startListenLicenseBottom,1e3);e.licenseBottomInterval=n(function(){var n=t.contentWindow.document.body.scrollTop;t.contentWindow.document.body.scrollHeight-t.contentWindow.document.body.clientHeight===n&&(e.isLicenseRead=!0,e.stopListenLicenseBottom())},1e3)},e.stopListenLicenseBottom=function(){e.licenseBottomInterval&&(n.cancel(e.licenseBottomInterval),delete e.licenseBottomInterval)},e.$on("modal.hidden",e.stopListenLicenseBottom),e.checkUid=function(){if(!e.formData.pseudo||e.formData.pseudo.length<3)return e.formData.computing=!1,void delete e.uiAlreadyUsed;var t=e.formData.pseudo.toUpperCase();if(e.formData.computing=!0,p.uid&&t===p.uid.toUpperCase())return e.formData.computing=!1,void(e.uiAlreadyUsed=!1);d.wot.lookup({search:t}).then(function(n){e.uiAlreadyUsed=(n.results||[]).some(function(e){return(e.uids||[]).some(function(e){return e.uid.toUpperCase()===t})}),e.formData.computing=!1}).catch(function(t){console.error(t),e.formData.computing=!1,e.uiAlreadyUsed=!1})},e.$watch("formData.pseudo",e.checkUid,!0),e.checkAccountAvailable=function(){return p.pubkey?void(e.accountAvailable=!0):(delete e.accountAvailable,d.tx.sources({pubkey:e.formData.pubkey}).then(function(t){e.accountAvailable=!t||!t.sources.length}).catch(function(t){console.error(t),e.accountAvailable=!1}))},e.identifierRecovery=function(){e.slides.slider.unlockSwipes();for(var t=0;t<2;t++)e.slides.slider.slidePrev();e.slides.slider.lockSwipes(),e.slideBehavior=e.computeSlideBehavior()}}function LoginController(e,t,n,i){"ngInject";angular.extend(this,n("HomeCtrl",{$scope:e})),e.showLoginModal=function(){return e.loading?t(e.showLoginModal,500):i.isLogin()||e.error?void 0:t(i.login,300)},e.$on("$ionicView.enter",e.showLoginModal)}function LoginModalController(e,t,n,i,a,o,r,s,l,c,u,d,p){"ngInject";p=p||{},e.computing=!1,e.pubkey=null,e.formData={},e.showPubkey=!1,e.showComputePubkeyButton=!1,e.autoComputePubkey=!1,e.pubkeyPattern="^(:?{0}|{1})$".format(l.constants.regexp.PUBKEY,l.constants.regexp.PUBKEY_WITH_CHECKSUM),e.isAuth=p.auth,e.okText=p.okText,e.title=p.title||(e.isAuth?"AUTH.TITLE":"LOGIN.TITLE"),e.showMethods=!angular.isDefined(p.showMethods)||p.showMethods,e.showNewAccountLink=!angular.isDefined(p.showNewAccountLink)||p.showNewAccountLink,e.expectedPubkey=p.expectedPubkey,e.expectedUid=p.uid,e.scryptParamsValues=_.keys(a.constants.SCRYPT_PARAMS).reduce(function(e,t){return e.concat({id:t,label:"LOGIN.SCRYPT."+t,params:a.constants.SCRYPT_PARAMS[t]})},[{id:"USER",label:"LOGIN.SCRYPT.USER",params:{}}]),e.init=function(){r().then(function(){e.autoComputePubkey="a"===ionic.Platform.grade.toLowerCase()&&!s.screen.isSmall()}),e.formData.rememberMe=u.data.rememberMe,e.formData.keepAuthIdle=u.data.keepAuthIdle,e.formData.keepAuth=e.formData.keepAuthIdle==u.constants.KEEP_AUTH_IDLE_SESSION;var t=p.method||u.data.login&&u.data.login.method||"SCRYPT_DEFAULT",n=u.data.login&&u.data.login.params;(e.isAuth&&"PUBKEY"===t||"SCAN"===t||"default"===t)&&(t="SCRYPT_DEFAULT"),e.changeMethod(t,n)},e.enter=function(){s.loading.hide(),s.ink({selector:".modal-login .ink"})},e.$on("modal.shown",e.enter),e.leave=function(){e.formData={},e.computing=!1,e.pubkey=null,e.methods=[]},e.$on("modal.hide",e.leave),e.doLogin=function(n){var i=e.formData.method;if(e.form.$valid||"SCAN"===i){d.keyboard.close();var r,c=e.formData.keepAuthIdle;if("SCRYPT_DEFAULT"===i||"SCRYPT_ADVANCED"===i){if(!e.formData.username||!e.formData.password)return;var m=e.formData.scrypt&&e.formData.scrypt.params;s.loading.show(),r=a.scryptKeypair(e.formData.username,e.formData.password,m).then(function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.pubkey=n,e.showPubkey=!0,e.pubkeyError=!0,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t,params:e.formData.scrypt&&"SCRYPT_DEFAULT"!=e.formData.scrypt.id?m:void 0})}).catch(s.onError("ERROR.CRYPTO_UNKNOWN_ERROR"))}else if("FILE"===i){if(!e.formData.file||!e.formData.file.valid||!e.formData.file.pubkey)return;c=e.formData.keepAuth&&u.constants.KEEP_AUTH_IDLE_SESSION||c,r=s.loading.show().then(function(){return e.readKeyFile(e.formData.file,{withSecret:e.isAuth||e.formData.keepAuth})}).then(function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.formData.file.valid=!1,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t})}).catch(s.onError("ERROR.AUTH_FILE_ERROR"))}else if("PUBKEY"===i){var E=e.formData.pubkey&&e.formData.pubkey.trim(),b=e.formData.uid&&e.formData.uid.trim()||void 0;if(!E)return;var g=l.regexp.PUBKEY.exec(E);if(g)r=s.loading.show().then(function(){return{pubkey:E,uid:b}});else{if(!(g=l.regexp.PUBKEY_WITH_CHECKSUM.exec(E)))return e.showWotLookupModal(E);E=g[1];var _=g[2],f=o.util.pkChecksum(E);_!=f?e.form.pubkey.$error={checksum:!0}:r=s.loading.show().then(function(){return{pubkey:E,uid:b}})}}else if("SCAN"===i){var T=e.formData.pubkey&&(!e.isAuth||!!e.formData.keypair);if(!T)return;r=s.loading.show().then(function(){return{pubkey:e.formData.pubkey,keypair:e.formData.keypair}})}return r?r.then(function(n){if(n){var a=!angular.equals(u.data.rememberMe,e.formData.rememberMe),o=!angular.equals(u.data.keepAuthIdle,c),r=!angular.equals(u.data.login&&u.data.login.method,i),l=!angular.equals(u.data.login&&u.data.login.params,n.params);return(a||o||r||l)&&(u.data.rememberMe=e.formData.rememberMe,u.data.keepAuthIdle=c,u.data.useLocalStorage=!!u.data.rememberMe||u.data.useLocalStorage,u.data.login=u.data.login||{},u.data.login.method=i,u.data.login.params=n.params,t(u.store,500)),p.success&&p.success(e.formData),p.silent&&s.loading.hide(),e.closeModal(n)}}):void console.warn("[login] unknown method: ",i)}},e.onScryptFormChanged=function(){e.computing||(e.pubkey=null,e.pubkeyError=!1,e.showPubkey=!!e.formData.username&&!!e.formData.password,e.autoComputePubkey&&e.showPubkey?(e.computePubkey(),e.showComputePubkeyButton=!1):e.showComputePubkeyButton=!e.autoComputePubkey&&e.showPubkey)},e.$watch("formData.username + formData.password",e.onScryptFormChanged,!0),e.computePubkey=function(){return e.showComputePubkeyButton=!1,e.computing=!0,e.pubkey=null,t(function(){var t=e.formData.username,n=e.formData.password,i=e.formData.scrypt&&e.formData.scrypt.params;return a.scryptSignPk(t,n,i).then(function(i){if(t!==e.formData.username||n!==e.formData.password)return e.computePubkey();e.pubkey=a.util.encode_base58(i),e.expectedPubkey&&e.expectedPubkey!=e.pubkey&&(e.pubkeyError=!0),e.computing=!1}).catch(function(t){s.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t),e.computing=!1,e.autoComputePubkey=!1,e.onScryptFormChanged()})},100)},e.showJoinModal=function(){e.closeModal(),t(function(){c.showJoin()},300)},e.showAccountSecurityModal=function(){e.closeModal(),t(function(){c.showAccountSecurity()},300)},e.showHelpModal=function(e){return c.showHelp(e)},e.doScan=function(){if(!e.computing)return e.computing=!0,e.formData.pubkey=null,e.formData.keypair=null,d.barcode.scan().then(function(t){if(t)return e.isAuth?n.when(t):l.uri.parse(t).then(function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return e}).catch(function(e){return console.debug("[login] Error while parsing as URI: "+(e&&e.message||e)),t})}).then(function(e){if(e)return e&&e.pubkey?e:o.keyfile.parseData(e,{silent:!0}).then(function(e){if(!e||!e.signPk||!e.signSk)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return{pubkey:a.base58.encode(e.signPk),keypair:e}}).catch(s.onError("ERROR.SCAN_UNKNOWN_FORMAT"))}).then(function(t){t&&t.pubkey&&(e.pubkeyError=e.expectedPubkey&&e.expectedPubkey!=t.pubkey,e.formData.pubkey=t.pubkey,e.formData.keypair=t.keypair)}).then(function(){e.computing=!1,s.loading.hide(10)}).catch(function(t){e.computing=!1,s.onError("ERROR.SCAN_FAILED")(t)})},e.changeMethod=function(t,n){if(e.hideMethodsPopover(),t&&t!=e.formData.method)if(console.debug("[login] method is: "+t),e.formData.method=t,e.formData.uid=null,e.form&&delete e.form.$submitted,"SCRYPT_DEFAULT"==t||"SCRYPT_ADVANCED"==t){e.pubkey=null;var i;n?(i=_.find(e.scryptParamsValues,function(e){return e.params&&angular.equals(e.params,n)}))||(i=_.findWhere(e.scryptParamsValues,{id:"USER"})||{},i.params=n):i=_.findWhere(e.scryptParamsValues,{id:"DEFAULT"}),e.changeScrypt(i),e.autoComputePubkey=e.autoComputePubkey&&"SCRYPT_DEFAULT"==t}else{if("SCAN"==t)return e.doScan();e.formData.username=null,e.formData.password=null,e.formData.pubkey=null,e.pubkey=null,e.computing=!1}},e.changeScrypt=function(t){e.formData.scrypt=angular.copy(t||{}),e.onScryptFormChanged()},e.readKeyFile=function(n,i){return i=i||{},i.password=i.password||e.formData.file.password||function(){return e.formData.file.password=void 0,c.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:e}).then(function(n){return e.formData.file.password=n,t(function(){return n},150)})},o.keyfile.read(e.formData.file,i).catch(function(t){if(e.formData.file.password=void 0,"CANCELLED"===t&&s.loading.hide(10),t&&t.ucode==o.errorCodes.BAD_PASSWORD)return e.readKeyFile(e.formData.file,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw t})},e.fileChanged=function(n){if(e.validatingFile=!0,e.formData.file=n&&n.target&&n.target.files&&n.target.files.length&&n.target.files[0],!e.formData.file)return void(e.validatingFile=!1);t(function(){return console.debug("[login] key file changed: ",e.formData.file),e.validatingFile=!0,e.readKeyFile(e.formData.file,{withSecret:!1,password:e.formData.file.password}).then(function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)}).catch(function(t){if(t&&"CANCELLED"===t)return void e.removeKeyFile();e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t)})})},e.onKeyFileDrop=function(n){n&&n.fileData&&(e.formData.file={name:n.fileData.name,size:n.fileData.size,content:n.fileContent},e.validatingFile=!0,t(function(){return e.readKeyFile(e.formData.file,{withSecret:!1}).then(function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)}).catch(function(t){e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t)})}))},e.removeKeyFile=function(){e.formData.file=void 0},e.showWotLookupModal=function(n){return c.showWotLookup({q:n}).then(function(n){if(n&&n.pubkey)return e.formData.pubkey=n.pubkey,e.formData.uid=n.uid||void 0,t(e.doLogin,300)})},e.showMethodsPopover=function(t){t.defaultPrevented||s.popover.show(t,{templateUrl:"templates/login/popover_methods.html",scope:e,autoremove:!0,afterShow:function(t){e.methodsPopover=t,s.ink({selector:".popover-login-methods .item"})}})},e.hideMethodsPopover=function(){e.methodsPopover&&(e.methodsPopover.hide(),e.methodsPopover=null)},e.init()}function AuthController(e,t){angular.extend(this,t("LoginModalCtrl",{$scope:e,parameters:{auth:!0}})),e.setForm=function(t){e.form=t}}function HelpController(e,t,n,i,a){"ngInject";e.$on("$ionicView.enter",function(o){e.locale=a.data.locale.id,t.stateParams&&t.stateParams.anchor&&(e.anchor=t.stateParams.anchor,n(function(){i(t.stateParams.anchor)},100))})}function HelpModalController(e,t,n,i,a){"ngInject";e.itemsClass={},e.locale=i.data.locale.id,a=a||{},a&&"string"==typeof a&&(a={anchor:a}),a.anchor&&(t(function(){n(a.anchor)},100),e.itemsClass={},e.itemsClass[a.anchor]="selected",e.listClass="selection")}function HelpTipController(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.tour=!1,e.continue=!0,e.executeStep=function(t,n,i){if((i=angular.isDefined(i)?i:0)>=n.length)return o.when(!0);var a=n[i];if("function"!=typeof a)throw new Error("[helptip] Invalid step at index {0} of '{1}' tour: step must be a function".format(i,t));var r=a();return"boolean"==typeof r&&(r=o.when(r)),r.then(function(a){return angular.isUndefined(a)?(e.continue=!1,i):a&&i!==n.length-1?e.executeStep(t,n,i+1):a?-1:i+1}).catch(function(n){return n&&"transition prevented"==n.message?console.error("ERROR: in help tour [{0}], in step [{1}] -> use large if exists, to prevent [transition prevented] error".format(t,i)):console.error("ERROR: in help tour  [{0}], in step [{1}] : {2}".format(t,i,n)),e.continue=!1,i})},e.showHelpTip=function(t,n){return n=n||{},n.bindings=n.bindings||{},n.bindings.value=n.bindings.value||"",n.bindings.hasNext=!angular.isDefined(n.bindings.hasNext)||n.bindings.hasNext,n.timeout=n.timeout||(p.enable?900:500),n.autoremove=!0,n.bindings.tour=e.tour,n.backdropClickToClose=!e.tour,s.popover.helptip(t,n)},e.showHelpModal=function(e){Modals.showHelp({anchor:e})},e.startHelpTour=function(){return e.tour=!0,e.continue=!0,e.startCurrencyTour(0,!0).then(function(t){return!(!t||e.cancelled)&&(c.data.helptip.currency=t,c.store(),e.continue)}).then(function(t){return!!t&&e.startNetworkTour(0,!0).then(function(t){return!(!t||e.cancelled)&&(c.data.helptip.network=t,c.store(),e.continue)})}).then(function(t){return!!t&&e.startWotLookupTour(0,!0).then(function(t){return!(!t||e.cancelled)&&(c.data.helptip.wotLookup=t,c.store(),e.continue)})}).then(function(t){return!!t&&e.startWotTour(0,!0).then(function(t){return!(!t||e.cancelled)&&(c.data.helptip.wot=t,c.store(),e.continue)})}).then(function(t){return!!t&&e.startWotCertTour(0,!0).then(function(t){return!!t&&(c.data.helptip.wotCerts=t,c.store(),e.continue)})}).then(function(t){return!!t&&e.startWalletNoLoginTour(0,!0)}).then(function(t){return!!t&&(!m.isLogin()||e.startWalletTour(0,!0).then(function(t){return!!t&&(c.data.helptip.wallet=t,c.store(),e.continue)}))}).then(function(t){return!!t&&(!m.isLogin()||e.startWalletCertTour(0,!0).then(function(t){return!!t&&(c.data.helptip.walletCerts=t,c.store(),e.continue)}))}).then(function(t){return!!t&&(!m.isLogin()||e.startTxTour(0,!0).then(function(t){return!!t&&(c.data.helptip.tx=t,c.store(),e.continue)}))}).then(function(t){return!!t&&e.startHeaderTour(0,!0)}).then(function(t){return!!t&&e.startSettingsTour(0,!0)}).then(function(t){return!!t&&e.finishTour()})},e.startCurrencyTour=function(n,a){var o,l=function(){t.is("app.currency.tab_parameters")&&t.go("app.currency.tab_wot")},d=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-currency",{bindings:{content:"HELP.TIP.MENU_BTN_CURRENCY",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency":"app.currency_lg").then(function(){return e.showHelpTip("helptip-currency-mass-member",{bindings:{content:"HELP.TIP.CURRENCY_MASS",icon:{position:"center"}}})})},function(){return!c.data.useRelative||e.showHelpTip("helptip-currency-mass-member-unit",{bindings:{content:"HELP.TIP.CURRENCY_UNIT_RELATIVE",contentParams:o,icon:{position:s.screen.isSmall()?"right":"center"}}})},function(){return r("helptip-currency-rules-anchor"),e.showHelpTip("helptip-currency-rules",{bindings:{content:"HELP.TIP.CURRENCY_RULES",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return l(),r("helptip-currency-newcomers-anchor"),e.showHelpTip("helptip-currency-newcomers",{bindings:{content:"HELP.TIP.CURRENCY_WOT",icon:{position:"center"},hasNext:a},timeout:1200})}];return u.get().then(function(t){return o=t.parameters,e.executeStep("currency",d,n)})},e.startNetworkTour=function(o,r){var d,p=function(){t.is("app.currency")&&a(function(){var e=n.document.querySelectorAll("ion-tabs .tabs a");e&&3==e.length&&angular.element(e[2]).triggerHandler("click")},100)},m=[function(){return!!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-network",{bindings:{content:"HELP.TIP.MENU_BTN_NETWORK",icon:{position:"left"}}}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency.tab_network":"app.network").then(function(){return p(),e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_BLOCKCHAIN",icon:{position:"center",glyph:"ion-information-circled"}},timeout:1200})})},function(){return p(),e.showHelpTip("helptip-network-peer-0",{bindings:{content:"HELP.TIP.NETWORK_PEERS",icon:{position:s.screen.isSmall()?void 0:"center"}},timeout:1e3,retry:20})},function(){return p(),e.showHelpTip("helptip-network-peer-0-block",{bindings:{content:"HELP.TIP.NETWORK_PEERS_BLOCK_NUMBER",icon:{position:s.screen.isSmall()?void 0:"center"}}})},function(){p();var t=c.data.locale.id;return e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_PEERS_PARTICIPATE",contentParams:{installDocUrl:l.helptip&&l.helptip.installDocUrl?l.helptip.installDocUrl[t]?l.helptip.installDocUrl[t]:l.helptip.installDocUrl:"http://duniter.org"},icon:{position:"center",glyph:"ion-information-circled"},hasNext:r}})}];return u.parameters().then(function(t){return d=t,
-e.executeStep("network",m,o)})},e.startWotLookupTour=function(o,r){var l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-wot",{bindings:{content:"HELP.TIP.MENU_BTN_WOT",icon:{position:"left"}},onError:"continue"})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.wot_lookup.tab_search":"app.wot_lookup_lg").then(function(){return e.showHelpTip("helptip-wot-search-text",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WOT_SEARCH_TEXT_XS":"HELP.TIP.WOT_SEARCH_TEXT",icon:{position:"center"}}})})},function(){return e.showHelpTip("helptip-wot-search-result-0",{bindings:{content:"HELP.TIP.WOT_SEARCH_RESULT",icon:{position:"center"}},timeout:700,retry:15})},function(){var t=n.document.getElementById("helptip-wot-search-result-0");return!t||(a(function(){angular.element(t).triggerHandler("click")}),e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS",hasNext:r},timeout:2500}))}];return e.executeStep("wotLookup",l,o)},e.startWotTour=function(t,n){var i,a=[function(){return e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_COUNT",contentParams:i,icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip("helptip-wot-view-certifications-count",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_CLICK",icon:{position:"center"},hasNext:n}})}];return u.get().then(function(n){return i=n.parameters,i.currentUD=n.currentUD,e.executeStep("wot",a,t)})},e.startWotCertTour=function(i,o){var r=[function(){if(t.is("app.wot_identity")){var i=n.document.getElementById("helptip-wot-view-certifications");if(!i)return!0;a(function(){angular.element(i).triggerHandler("click")})}return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:1e3,retry:10})},function(){return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:o}})}];return e.executeStep("certs",r,i)},e.startWalletNoLoginTour=function(t,n){if(m.isLogin())return o.when(!0);var a=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"},hasNext:n}})}];return e.executeStep("wallet-no-login",a,t)},e.startWalletTour=function(n,a){if(!m.isLogin())return o.when(!0);var l,c=m.data.isMember||m.data.requirements&&m.data.requirements.pendingMembership,p=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_ACCOUNT_MEMBER":"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet").then(function(){return e.showHelpTip(s.screen.isSmall()?"helptip-wallet-options-xs":"helptip-wallet-options",{bindings:{content:"HELP.TIP.WALLET_OPTIONS",icon:{position:s.screen.isSmall()?"right":"center"}}})})},function(){return r("helptip-wallet-pubkey"),e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.WALLET_PUBKEY",icon:{position:"center"},hasNext:!c&&a},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return c?(r("helptip-wallet-certifications"),e.showHelpTip("helptip-wallet-certifications",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WALLET_RECEIVED_CERTIFICATIONS":"HELP.TIP.WALLET_CERTIFICATIONS",icon:{position:"center"},hasNext:a},timeout:500,onError:"continue"})):a}];return p.length!=d.wallet.stepCount&&console.error("[help] Invalid value of 'csHelpConstants.wallet.stepCount'. Please update to {0}".format(p.length)),u.get().then(function(t){return l=t.parameters,l.currentUD=t.currentUD,e.executeStep("wallet",p,n)})},e.startWalletCertTour=function(i,r){if(!m.isLogin())return o.when(!0);var l,c=!1,d=[function(){if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-certifications");if(!i)return c=!0,!0;a(function(){angular.element(i).triggerHandler("click")})}return!s.screen.isSmall()||e.showHelpTip("helptip-received-certs",{bindings:{content:"HELP.TIP.WALLET_RECEIVED_CERTS"}})},function(){return!(!c&&s.screen.isSmall())||t.go("app.view_wallet").then(function(){return e.showHelpTip("helptip-wallet-given-certifications",{bindings:{content:"HELP.TIP.WALLET_GIVEN_CERTIFICATIONS",icon:{position:"center"}},timeout:500})})},function(){if(c)return!0;if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-given-certifications");if(!i)return c=!0,!0;a(function(){angular.element(i).triggerHandler("click")},500)}return e.showHelpTip(s.screen.isSmall()?"fab-select-certify":"helptip-certs-select-certify",{bindings:{content:"HELP.TIP.WALLET_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return e.tour||c?r:e.showHelpTip("helptip-certs-stock",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:r}})}];return u.parameters().then(function(t){return l=t,e.executeStep("certs",d,i)})},e.startTxTour=function(n,a){if(!m.isLogin())return o.when(!0);var r,s=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-tx",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_TX_MEMBER":"HELP.TIP.MENU_BTN_TX",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet_tx").then(function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:c.data.useRelative?"HELP.TIP.WALLET_BALANCE_RELATIVE":"HELP.TIP.WALLET_BALANCE",contentParams:r,icon:{position:"center"}},retry:20})})},function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:"HELP.TIP.WALLET_BALANCE_CHANGE_UNIT",contentParams:r,icon:{position:"center",glyph:"ion-information-circled"}}})}];return u.get().then(function(t){return r=t.parameters,r.currentUD=t.currentUD,e.executeStep("tx",s,n)})},e.startHeaderTour=function(t,r){function l(){var e=n.document.querySelectorAll("#helptip-header-bar-btn-profile");return e&&e.length?_.find(e,function(e){return e.offsetWidth>0}):null}if(s.screen.isSmall())return o.when(!0);var c=[function(){if(s.screen.isSmall())return!0;var t=l();return!t||e.showHelpTip(t,{bindings:{content:"HELP.TIP.HEADER_BAR_BTN_PROFILE",icon:{position:"right"}}})},function(){if(s.screen.isSmall())return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"},hasNext:r},timeout:1e3});var t=l();return!t||(a(function(){angular.element(t).triggerHandler("click")}),e.showHelpTip("helptip-popover-profile-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"center"},hasNext:r},timeout:1e3}).then(function(t){return e.closeProfilePopover(),t}))}];return e.executeStep("header",c,t)},e.startSettingsTour=function(n,a){var o,r=[function(){return!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"}},timeout:1e3}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.settings").then(function(){return e.showHelpTip("helptip-settings-btn-unit-relative",{bindings:{content:"HELP.TIP.SETTINGS_CHANGE_UNIT",contentParams:o,icon:s.screen.isSmall()?{position:"right",style:"margin-right: 60px"}:{position:"center"},hasNext:a},timeout:1e3})})}];return u.parameters().then(function(t){return o=t,e.executeStep("settings",r,n)})},e.finishTour=function(){if(i.isOpen()&&i.toggleLeft(!1),m.isLogin())return t.go("app.view_wallet").then(function(){return e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.END_LOGIN",hasNext:!1},timeout:1200})});var n;return o.all([e.showHome(),u.parameters().then(function(e){n=e})]).then(function(){return e.showHelpTip("helptip-home-logo",{bindings:{content:"HELP.TIP.END_NOT_LOGIN",contentParams:n,hasNext:!1}})})}}function HelpTourController(e){e.$on("$ionicView.enter",function(t,n){e.startHelpTour()})}function WalletController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){"ngInject";e.loading=!0,e.settings=b.data,e.qrcodeId="qrcode-wallet-"+e.$id,e.toggleQRCode=!1;var T;e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=g.children.count()>0,e.loading)return(T=n.stateParams&&n.stateParams.id?g.children.get(n.stateParams.id):g)?(e.isDefaultWallet=T.isDefault(),e.walletId=T.id,e.cleanLocationHref(n),e.load()):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());c.loading.hide(),a(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.load=function(){if(T)return T.login().then(function(t){e.formData=t,e.loading=!1,e.updateView(),e.showQRCode(),T.isDefault()&&e.showHelpTip(),e.addListeners(),c.loading.hide()}).catch(function(t){"CANCELLED"===t&&e.showHome()})},e.updateView=function(){e.motion.show({selector:"#wallet .item"}),e.$broadcast("$$rebind::rebind")},e.setRegisterForm=function(t){e.registerForm=t},e.onWalletLogout=function(){e.hideQRCode(),e.removeListeners(),delete e.formData,T=null,e.loading=!0},e.addListeners=function(){e.listeners=[T.api.data.on.logout(e,e.onWalletLogout),e.$watchCollection("formData.events",function(t,n){!n||e.loading||angular.equals(t,n)||e.updateView()})]},e.removeListeners=function(){_.forEach(e.listeners,function(e){e()}),e.listeners=[]},e.showUidPopup=function(){return n(function(t,n){r(["ACCOUNT.NEW.TITLE","ACCOUNT.POPUP_REGISTER.TITLE","ACCOUNT.POPUP_REGISTER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then(function(n){e.formData.newUid=e.formData.uid?""+e.formData.uid:"",i.show({templateUrl:"templates/wallet/popup_register.html",title:n["ACCOUNT.POPUP_REGISTER.TITLE"],subTitle:n["ACCOUNT.POPUP_REGISTER.HELP"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.registerForm.$submitted=!0,e.registerForm.$valid&&e.formData.newUid)return e.formData.newUid;t.preventDefault()}}]}).then(function(n){if(!n)return delete e.formData.uid,void c.loading.hide();t(n)})})})},e.self=function(){return e.hideActionsPopover(),e.showUidPopup().then(function(t){return c.loading.show(),T.self(t).then(function(){e.updateView(),c.loading.hide()}).catch(function(t){c.onError("ERROR.SEND_IDENTITY_FAILED")(t).then(function(){e.self()})})})},e.doMembershipIn=function(t){return T.membership.inside().then(function(){e.updateView(),c.loading.hide()}).catch(function(n){if("CANCELLED"===n)throw n;if(n&&n.ucode!=m.errorCodes.MEMBERSHIP_ALREADY_SEND)return console.error("[wallet] Node: already membership",n),void c.loading.hide();if(!t||t<=2)return a(function(){return e.doMembershipIn((t||0)+1)},1e3);throw n})},e.membershipIn=function(t){if(e.hideActionsPopover(),T.isMember())return c.alert.info("INFO.NOT_NEED_MEMBERSHIP");var n=angular.isDefined(e.formData.blockUid)&&e.formData.uid||void 0;return d.showJoinMember({uid:n,blockUid:n&&e.formData.blockUid,pubkey:e.formData.pubkey}).catch(function(e){"CANCELLED"!==e&&(T.data.uid?c.onError("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e):c.onError("ERROR.SEND_IDENTITY_FAILED")(e))})},e.membershipOut=function(t,n){return e.hideActionsPopover(),t?n?(c.loading.show(),T.membership.out().then(function(){c.loading.hide(),c.toast.show("INFO.MEMBERSHIP_OUT_SENT")}).catch(c.onError("ERROR.SEND_MEMBERSHIP_OUT_FAILED"))):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then(function(t){t&&e.membershipOut(!0,!0)}):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then(function(t){t&&e.membershipOut(!0)})},e.doUpdate=function(t){return console.debug("[wallet] Refreshing data..."),(t?T.refreshData():c.loading.show().then(T.refreshData).then(c.loading.hide)).then(e.updateView).catch(c.onError("ERROR.REFRESH_WALLET_DATA"))},e.renewMembership=function(t){return T.isMember()||e.formData.requirements.wasMember?t||e.formData.requirements.needRenew?T.auth({minData:!0}).then(function(){return c.loading.hide(),c.alert.confirm("CONFIRM.RENEW_MEMBERSHIP")}).then(function(t){if(t)return c.loading.show(),e.doMembershipIn()}).catch(function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))}):r("CONFIRM.NOT_NEED_RENEW_MEMBERSHIP",{membershipExpiresIn:e.formData.requirements.membershipExpiresIn}).then(function(e){return c.alert.confirm(e)}).then(function(t){if(t)return e.renewMembership(!0)}):c.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")},e.fixIdentity=function(){if(e.formData.uid)return n.all([T.auth(),r("CONFIRM.FIX_IDENTITY",{uid:e.formData.uid})]).then(function(e){return c.alert.confirm(e[1])}).then(function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid)}).then(e.doMembershipIn).catch(function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})},e.fixMembership=function(){if(e.formData.uid)return T.isMember()?c.alert.info("INFO.NOT_NEED_MEMBERSHIP"):(e.hideActionsPopover(),T.auth({silent:!0}).then(function(){c.alert.confirm("CONFIRM.FIX_MEMBERSHIP")}).then(function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid,!1)}).then(e.doMembershipIn).catch(function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))}))},e.doQuickFix=function(t){"renew"===t?e.renewMembership():"membership"===t?e.membershipIn(!0):"fixMembership"===t?e.fixMembership(!1):"fixIdentity"===t&&e.fixIdentity()};var h=e.logout;e.logout=function(t){if(e.isDefaultWallet)return h(t)},e.startWalletTour=function(){return e.hideActionsPopover(),f.wallet.tour()},e.showHelpTip=function(){return f.wallet.helptip()},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),c.motion.toggleOff({selector:"#"+e.qrcodeId}))},e.showCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"received"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_by_id_lg",{id:e.walletId,type:"received"})},e.showGivenCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"given"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_by_id_lg",{id:e.walletId,type:"given"})},e.showTxHistory=function(){o.go(e.isDefaultWallet?"app.view_wallet_tx":"app.view_wallet_tx_by_id",{id:e.walletId})},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showTransferModal=function(){return!!e.formData.balance&&e.formData.balance>0||g.children.count()?d.showTransfer({wallet:T.id}).then(function(t){t&&(c.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}):void c.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showSecurityModal=function(){return e.hideActionsPopover(),d.showAccountSecurity({wallet:T}).then(function(t){if(t)return"self"===t?e.self():"membershipIn"===t?e.membershipIn():void 0})},e.showSelectIdentitiesModal=function(){return e.hideActionsPopover(),d.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then(function(t){if(t&&t.uid)return e.loading=!0,T.setSelf(t.uid,t.blockUid).then(function(){e.loading=!1,e.updateView(),c.loading.hide()})})},e.showSelectWalletModal=function(){if(g.children.count())return d.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then(function(t){if(t&&(!T||t.id!==T.id))return e.removeListeners(),e.loading=!0,T=t,console.debug("[transfer] Using wallet {"+T.id+"}"),e.formData={},e.load()})},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.name||e.formData.uid||e.formData.pubkey,a=(E.shareBaseUrl||t.rootPath)+o.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});c.screen.isSmall()&&(n=angular.element(document.querySelector("#wallet-share-anchor"))||n),c.popover.share(n,{bindings:{url:a,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},postMessage:i}})},e.showSelectWalletPopover=function(t){return p.showSelectWallet(t,{parameters:{excludedWalletId:e.walletId}}).then(function(t){if(t&&t.id!==e.walletId)return t.isDefault()?o.go("app.view_wallet"):o.go("app.view_wallet_by_id",{id:t.id})})},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&a(function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,l.search(t).replace()},300)}}function WalletTxController(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";e.loading=!0,e.settings=u.data,e.listeners=[];var E;e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=p.children.count()>0,e.loading)return(E=n.stateParams&&n.stateParams.id?p.children.get(n.stateParams.id):p)?(e.walletId=E.id,e.cleanLocationHref(n),e.load()):(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());e.addListeners(),i(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.load=function(){if(E){var t=E.isDataLoaded({minData:!0}),n={requirements:!t,minData:!t,sources:!0,tx:{enable:!0}};return E.login(n).then(function(t){e.formData=t,e.loading=!1,e.updateView(),e.showFab("fab-transfer"),E.isDefault()&&e.showHelpTip(),e.addListeners(),o.loading.hide()}).catch(function(t){"CANCELLED"===t&&e.showHome()})}},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&i(function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,a.search(t).replace()},300)},e.updateView=function(){e.formData&&!e.loading&&(e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".view-wallet-tx .item",ink:!1}))},e.downloadHistoryFile=function(t){t=t||{},t.fromTime=t.fromTime||-1;var n=e.formData.pubkey;m.downloadHistoryFile(n,t)},e.doUpdate=function(t){console.debug("[wallet] TX history reloading...");var n=e.formData&&e.formData.tx&&e.formData.tx.fromTime||void 0,i={sources:!0,tx:{enable:!0,fromTime:n},api:!1};return(t?E.refreshData(i):o.loading.show().then(function(){return E.refreshData(i)}).then(o.loading.hide)).then(e.updateView).catch(o.onError("ERROR.REFRESH_WALLET_DATA"))},e.addListeners=function(){e.listeners=[E.api.data.on.balanceChanged(e,e.updateView),e.$watch("settings.useRelative",e.updateView,!0),e.$watch("settings.showUDHistory",function(t,n){e.formData&&!e.loading&&t!==n&&e.doUpdate()},!0)],e.settings.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,function(t){e.loading||(console.debug("[wallet] Received new block. Will reload history."),i(function(){e.doUpdate(!0)},500))}))},e.removeListeners=function(){_.forEach(e.listeners,function(e){e()}),e.listeners=[]},e.showTransferModal=function(){return!!e.formData.balance&&e.formData.balance>0||p.children.count()?r.showTransfer({wallet:E.id}).then(function(t){t&&(o.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}):void o.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showHelpTip=function(e,t){},e.showTxErrors=function(t){return E.isDefault()?e.goState("app.view_wallet_tx_errors"):e.goState("app.view_wallet_tx_errors_by_id",{id:E.id})},e.showMoreTx=function(t){return t=t||e.formData.tx.fromTime-u.data.walletHistoryTimeSecond||c.date.now()-2*u.data.walletHistoryTimeSecond,o.loading.show(),E.refreshData({tx:{enable:!0,fromTime:t}}).then(function(){e.updateView(),o.loading.hide()}).catch(function(n){n.ucode==l.errorCodes.HTTP_LIMITATION?i(function(){return e.showMoreTx(t)},2e3):o.onError("ERROR.REFRESH_WALLET_DATA")(n)})},e.showSelectWalletModal=function(){if(p.children.count())return r.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then(function(t){if(t&&(!E||t.id!==E.id))return e.removeListeners(),e.loading=!0,E=t,console.debug("[transfer] Using wallet {"+E.id+"}"),e.formData={},e.load()})};e.toUnlockUIArray=function(t,n,i){return n=n||0,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce(function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type}),i.concat(e.toUnlockUIArray(a,n+10))):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))},[])},e.showLockedOutputsPopover=function(t,n){t.lockedOutputs&&(e.popoverData=e.popoverData||{},e.popoverData.lockedOuputs=t.lockedOutputs.reduce(function(t,n){return t.concat({amount:n.amount,unlockFunctions:n.unlockFunctions,unlockConditions:e.toUnlockUIArray(n.unlockTree)})},[]),o.popover.show(n,{templateUrl:"templates/wallet/tx_locked_outputs_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}}))},e.hideLockedOutputsPopover=function(){e.lockedOutputsPopover&&(e.lockedOutputsPopover.hide(),e.popoverData&&delete e.popoverData.unlockConditions,e.lockedOutputsPopover=null)},e.showSelectWalletPopover=function(t){return s.showSelectWallet(t,{scope:e}).then(function(t){if(t&&t.id!==E.id)return t.isDefault()?e.goState("app.view_wallet_tx"):e.goState("app.view_wallet_tx_by_id",{id:t.id})})},e.goState=function(t,i){return e.hideLockedOutputsPopover(),n.go(t,i)}}function WalletTxErrorController(e,t,n,i){"ngInject";var a;e.settings=n.data,e.loading=!0,e.formData={},e.$on("$ionicView.enter",function(n,o){return a=o.stateParams&&o.stateParams.id?i.children.get(o.stateParams.id):i,a?e.load():(t.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())}),e.load=function(){if(a)return a.login().then(function(n){e.formData=n,e.loading=!1,e.doMotion(),t.loading.hide()})},e.doUpdate=function(n){return e.loading=!0,(n?a.refreshData():t.loading.show().then(i.refreshData).then(t.loading.hide)).then(function(){e.doMotion(),e.loading=!1}).catch(function(n){t.onError("ERROR.REFRESH_WALLET_DATA")(n),e.loading=!1})},e.filterReceivedTx=function(e){return e.amount&&e.amount>0},e.filterSentTx=function(e){return e.amount&&e.amount<0},e.hasReceivedTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterReceivedTx)&&!0},e.hasSentTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterSentTx)&&!0}}function WalletSecurityModalController(e,t,n,i,a){var o=a&&a.wallet||n;e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.isLastSlide=!1,e.smallscreen=t.screen.isSmall(),e.recover={},e.isValidFile=!1,e.login=o.isLogin(),e.hasSelf=o.hasSelf(),e.needSelf=e.login&&o.data.requirements.needSelf,e.canRevoke=e.login&&e.hasSelf&&!o.data.requirements.revoked,e.needMembership=e.login&&o.data.requirements.needMembership,e.option=e.login?"saveID":"recoverID",e.formData={addQuestion:"",level:"4",questions:[]};for(var r=[],s=1;s<20;s++)r.push("ACCOUNT.SECURITY.QUESTION_"+s.toString());i(r).then(function(t){_.each(t,function(t){e.formData.questions.push({value:t,checked:!1})})}),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes(),e.isLastSlide=!1},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes(),e.isLastSlide=3===e.slides.slider.activeIndex&&("saveID"==e.option||"recoverID"==e.option)||2===e.slides.slider.activeIndex&&"revocation"==e.option},e.doNext=function(n){if(!n)switch(e.slides.slider.activeIndex){case 1:switch(e.option){case"saveID":n="questionsForm";break;case"recoverID":e.isValidFile?(e.slideNext(),e.hasContent=!1,e.fileData=""):t.alert.error("ERROR.NOT_VALID_SAVE_ID_FILE","ERROR.LOAD_FILE_FAILED")}break;case 2:switch(e.option){case"recoverID":n="recoverForm";break;case"saveID":n="answersForm"}}if(n){if(e[n].$submitted=!0,!e[n].$valid)return;switch(n){case"recoverForm":e.recoverId();break;case"answersForm":e.downloadSaveIDFile();break;default:e.slideNext()}}},e.selectOption=function(t){e.option=t,e.slideNext()},e.restore=function(){1===e.slides.slider.activeIndex&&"saveID"===e.option?(e.formData={addQuestion:"",level:"4",questions:[]},i(r).then(function(t){_.each(t,function(t){e.formData.questions.push({value:t,checked:!1})})})):2===e.slides.slider.activeIndex&&"saveID"===e.option?_.each(e.formData.questions,function(e){e.answer=void 0}):1===e.slides.slider.activeIndex&&"recoverID"===e.option?(e.hasContent=!1,e.recover={},e.fileData="",e.isValidFile=!1):2===e.slides.slider.activeIndex&&"recoverID"===e.option?_.each(e.recover.questions,function(e){e.answer=void 0}):2===e.slides.slider.activeIndex&&"revocation"===e.option&&(e.isValidFile=!1,e.hasContent=!1,e.revocation=void 0)},e.recoverContent=function(t){if(e.hasContent=angular.isDefined(t)&&""!==t,e.fileData=t.fileData?t.fileData:"",e.isValidFile=""!==e.fileData&&"text/plain"==e.fileData.type,e.isValidFile&&"recoverID"===e.option){e.content=t.fileContent.split("\n");var n=_.indexOf(e.content,"Questions: "),i=-1;_.each(e.content,function(t,n){/^Issuer:/.test(t)?i=n:/^Crypted-Nonce:/.test(t)?e.recover.cypherNonce=t.split(" ")[1]:/^Crypted-Pubkey:/.test(t)?e.recover.cypherPubkey=t.split(" ")[1]:/^Crypted-Salt:/.test(t)?e.recover.cypherSalt=t.split(" ")[1]:/^Crypted-Pwd:/.test(t)&&(e.recover.cypherPwd=t.split(" ")[1])}),e.recover.questions=[];for(var a=n+1;a<i;a++)e.recover.questions.push({value:e.content[a]})}else e.isValidFile&&"revocation"===e.option&&(e.revocation=t.fileContent)},e.recoverId=function(){if(e.recoverForm.$valid)return e.recover.answer="",_.each(e.recover.questions,function(t){e.recover.answer+=t.answer}),o.recoverId(e.recover).then(function(n){angular.isDefined(n)?(e.recover=n,e.slideNext()):t.alert.error("ERROR.RECOVER_ID_FAILED")})},e.addQuestion=function(){""!==e.formData.addQuestion&&(e.formData.questions.push({value:e.formData.addQuestion,checked:!0}),e.formData.addQuestion="")},e.downloadSaveIDFile=function(){var n;return o.auth({forceAuth:!0,expectedPubkey:e.pubkey,silent:!0,success:function(e){n=e}}).catch(function(e){e&&"CANCELLED"===e||t.alert.error("ERROR.SALT_OR_PASSWORD_NOT_CONFIRMED","ERROR.LOGIN_FAILED")}).then(function(t){if(t){var i={file:_.filter(e.formData.questions,function(e){return e.checked})},a={salt:n.username,pwd:n.password,questions:"",answer:""};return _.each(i.file,function(e){a.questions+=e.value+"\n",a.answer+=e.answer}),o.getCryptedId(a).then(function(t){o.downloadSaveId(t),e.closeModal()})}})},e.isRequired=function(){return _.filter(e.formData.questions,function(e){return e.checked}).length<e.formData.level},e.revokeWithFile=function(){e.isValidFile?e.revokeIdentity():t.alert.error("ERROR.NOT_VALID_REVOCATION_FILE","ERROR.LOAD_FILE_FAILED")},e.downloadRevokeFile=function(){return o.auth({forceAuth:!0}).then(function(){return o.downloadRevocation()}).then(function(){t.loading.hide()}).catch(function(e){e&&"CANCELLED"===e||t.onError("ERROR.DOWNLOAD_REVOCATION_FAILED")(e)})},e.revokeWalletIdentity=function(){return e.hasSelf?o.auth({forceAuth:!0}).then(function(n){if(t.loading.hide(),n)return e.revokeIdentity()}).catch(function(e){"CANCELLED"!==e&&t.onError("ERROR.REVOCATION_FAILED")(e)}):t.alert.error("ERROR.ONLY_SELF_CAN_EXECUTE_THIS_ACTION")},e.revokeIdentity=function(n){return n?t.loading.show().then(function(){return e.revocation?o.revokeWithFile(e.revocation):o.revoke()}).then(function(){return t.toast.show("INFO.REVOCATION_SENT"),e.closeModal(),t.loading.hide()}).catch(t.onError("ERROR.REVOCATION_FAILED")):t.alert.confirm("CONFIRM.REVOKE_IDENTITY","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then(function(e){if(e)return t.alert.confirm("CONFIRM.REVOKE_IDENTITY_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"})}).then(function(t){t&&e.revokeIdentity(!0,!0)})},e.self=function(){return e.closeModal("self")},e.membershipIn=function(){return e.closeModal("membershipIn")},e.downloadKeyFile=function(n){return o.auth({forceAuth:!0}).then(function(){return o.downloadKeyFile(n)}).then(function(){return t.loading.hide(),e.closeModal()}).catch(function(e){if(e&&"CANCELLED"===e)return void t.loading.hide();t.onError("ERROR.DOWNLOAD_KEYFILE_FAILED")(e)})}}function WalletListAbstractController(e,t,n,i,a,o,r,s){"ngInject";e.loading=!0,e.wallets=null,e.formData={useRelative:o.data.useRelative,showDefault:!0,showBalance:!1,balance:void 0,updatingWalletId:void 0,stopped:!1,minData:!0},e.motion=null,e.setParameters=function(t){t=t||{},e.formData.useRelative=angular.isDefined(t.useRelative)?t.useRelative:e.formData.useRelative,e.formData.showBalance=angular.isDefined(t.showBalance)?t.showBalance:e.formData.showBalance,e.formData.minData=angular.isDefined(t.minData)?t.minData:e.formData.minData,e.formData.excludedWalletId=t.excludedWalletId,e.formData.showDefault=(angular.isDefined(t.showDefault)?t.showDefault:e.formData.showDefault)&&"default"!==e.formData.excludedWalletId},e.load=function(n){n=n||{},e.loading=!1!==n.silent,e.formData.balance=void 0,e.formData.updatingWalletId=void 0,e.formData.stopped=!1;var o=[];o.push(r.name().then(function(t){return e.currency=t,a.ready()})),e.defaultWallet=e.formData.showDefault?s:void 0,e.wallets||o.push(s.children.all().then(function(t){e.wallets=t,i.loading.hide()}));var l={silent:!0,minData:e.formData.minData,sources:e.formData.showBalance,tx:{enable:!1},api:!0},c=!1,u=0,d=Date.now(),p=0;return(o.length?t.all(o):t.when()).then(function(){var i=e.formData.showDefault?[s].concat(e.wallets):e.wallets;if(i.length)return console.debug("[wallets] Loading {0} wallets...".format(i.length)),i.reduce(function(t,i){return!n.refresh&&i.isDataLoaded(l)?(console.debug("[wallets] Wallet #{0} already loaded. Skipping".format(i.id)),t.then(function(){p+=i.data.balance,e.updateWalletView(i.id)})):(u++,t.then(function(){if(!e.formData.stopped){e.formData.updatingWalletId=i.id;var t;if(n.refresh&&i.data.loaded){var a=angular.merge({requirements:!i.data.requirements.loaded||i.data.requirements.isMember||i.data.requirements.wasMember||i.data.requirements.pendingMembership},l);t=i.refreshData(a)}else t=i.loadData(l);return t.then(function(t){p+=t.balance,e.updateWalletView(i.id)}).catch(function(e){console.error("[wallets] Error while loading data of wallet #{0}".format(i.id),e),c=!0}),t}}))},t.when())}).then(function(){if(c)return i.alert.error("ERROR.LOAD_WALLET_LIST_FAILED").then(function(){e.resetData(),e.cancel()});e.formData.stopped||(u&&console.debug("[wallets] Loaded data of {0} wallet(s) in {1}ms".format(u,Date.now()-d)),e.formData.balance=p,e.formData.updatingWalletId=void 0,e.loading=!1,i.loading.hide(),e.updateView())}).catch(function(t){if(e.resetData(),t&&"CANCELLED"===t)throw e.cancel(),t;return i.onError("ERROR.LOAD_WALLET_LIST_FAILED")(t)})},e.filterFn=function(e){return function(t){return!e||t.id!==e.excludedWalletId}},e.resetData=function(){console.debug("[wallets] Cleaning wallet list"),e.wallets=null,e.loading=!0,e.entered=!1,e.formData.balance=void 0,e.formData.updatingWalletId=void 0},e.updateView=function(t){if(e.wallets&&e.wallets.length){var n=t&&" #wallet-"+t||"";e.motion?e.motion.show({selector:".list .item.item-wallet"+n,ink:!0}):i.ink({selector:".list .item.item-wallet"+n})}},e.updateWalletView=function(t){e.motion?e.motion.show({selector:".list #wallet-"+t,ink:!0}):i.ink({
-selector:".list #wallet-"+t})},e.doUpdate=function(i){return e.loading||!e.wallets||!e.wallets.length||e.formData.updatingWalletId?t.when():(e.selectPrevented=!0,n(function(){e.selectPrevented=!1},1e3),e.load({silent:i,refresh:!0}).then(function(){e.loading=!1,e.selectPrevented=!1,i&&e.$broadcast("$$rebind::rebind"),e.updateView()}))},e.addNewWallet=function(n){return n?o.data.useLocalStorageEncryption&&!s.isAuth()?s.auth({minData:!0}).then(function(){return e.addNewWallet(n)}).catch(function(e){if("CANCELLED"===e)return i.loading.hide();i.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}):s.api.data.raisePromise.load(n.data).catch(console.error).then(function(){e.addListenersOnWallet(n),s.children.add(n)}):t.reject("Missing 'wallet' argument")},e.showNewWalletModal=function(){var t=s.children.instance();return t.login({showNewAccountLink:!1,title:"ACCOUNT.WALLET_LIST.BTN_NEW",okText:"COMMON.BTN_ADD",minData:!0,sources:!0,api:!1,success:i.loading.show,method:"PUBKEY"}).then(function(n){return n?s.isUserPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_MAIN_WALLET")):s.children.hasPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_EXISTING_WALLET")):(console.debug("[wallet] Adding secondary wallet {"+n.pubkey.substring(0,8)+"}"),e.addNewWallet(t).then(function(){i.loading.hide(),e.updateView()})):void i.loading.hide(100)}).catch(function(e){"CANCELLED"===e&&i.loading.hide()})},e.addListenersOnWallet=function(e){},e.cancel=function(){console.warn("cancel() must be implement by subclass")},e.select=function(e,t){console.warn("select() must be implement by subclass")}}function WalletSelectModalController(e,t,n){"ngInject";angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.$on("modal.shown",function(){e.setParameters(n),e.load()}),e.cancel=function(){e.closeModal()},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closeModal(n)},n&&e.setParameters(n)}function WalletListViewController(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";e.settings=p.data,e.listeners=[],angular.extend(this,t("WalletListAbstractCtrl",{$scope:e,parameters:{}})),e.formData.name=void 0,e.motion=c.motion.default,e.entered=!1,e.enter=function(t,n){if(!e.entered)return e.entered=!0,e.setParameters({showDefault:!0,showBalance:!0,minData:!1}),e.load().then(function(){c.loading.hide(),e.wallets&&(e.addListeners(),e.showFab("fab-add-wallet"))});e.addListeners(),e.formData.stopped&&(e.loading=!1,e.formData.stopped=!1,e.formData.updatingWalletId=void 0,e.updateView())},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.formData.stopped=!0,e.formData.updatingWalletId=void 0,e.loading=!1,e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.cancel=function(){e.showHome()},e.select=function(t,i){t.isDefaultPrevented()||!i||e.selectPrevented||(i.isDefault()?n.go("app.view_wallet"):n.go("app.view_wallet_by_id",{id:i.id}),t.preventDefault())},e.editWallet=function(t,n){return t.preventDefault(),e.showEditPopup(n).then(function(t){if(t)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then(function(){n.data.localName=t,m.storeData(),c.loading.hide(),e.updateView()}).catch(function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.SAVE_WALLET_LIST_FAILED")(e)})})},e.downloadAsFile=function(){if(e.wallets)return m.children.downloadFile()},e.selectAndRemoveWallet=function(){return e.hideActionsPopover(),u.showSelectWallet({wallets:e.wallets,showDefault:!1}).then(function(t){if(t&&t.id)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then(function(){m.children.remove(t.id),c.loading.hide(),e.updateView()}).catch(function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)})})},e.showImportFileModal=function(){e.hideActionsPopover();var t=function(t){console.debug("[wallet] Adding secondary wallet {"+t.pubkey.substring(0,8)+"}");var n=m.children.instance();return n.login({authData:t,minData:!0,sources:!0,api:!1,success:c.loading.show}).then(function(i){return i.localName=t.localName,e.addNewWallet(n)})};return l.show("templates/wallet/list/modal_import_file.html","WalletListImportModalCtrl").then(function(n){if(n&&n.length)return c.loading.show(),(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then(function(){return n.reduce(function(e,n){return e.then(function(){return t(n)})},a.when())}).then(function(){c.loading.hide(),e.updateView()}).catch(function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)})})},e.setEditForm=function(t){e.editForm=t},e.showEditPopup=function(t){return a(function(n,i){o(["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE","ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then(function(i){e.formData.name=t.data.localName||t.data.name||t.data.uid||t.data.pubkey.substring(0,8),s.show({templateUrl:"templates/wallet/list/popup_edit_name.html",title:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE"],subTitle:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP"],scope:e,buttons:[{text:i["COMMON.BTN_CANCEL"]},{text:i["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.editForm.$submitted=!0,e.editForm.$valid&&e.formData.name)return e.formData.name;t.preventDefault()}}]}).then(function(t){if(!t)return delete e.formData.name,void c.loading.hide();n(t)})})})},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/list/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onWalletLogout=function(){e.resetData(),e.removeListeners()},e.addListeners=function(){e.removeListeners(),e.listeners=[m.api.data.on.logout(e,e.onWalletLogout)],p.data.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,function(t){e.loading||(console.debug("[wallet-list] Received new block. Will reload list."),i(function(){e.doUpdate(!0)},300))})),_.forEach(e.wallets||[],e.addListenersOnWallet)},e.addListenersOnWallet=function(t){t&&(e.listeners.push(t.api.data.on.unauth(e,e.updateView)),e.listeners.push(t.api.data.on.auth(e,function(t,n){return i(e.updateView),n?n.resolve():a.when()})))},e.removeListeners=function(){_.forEach(e.listeners,function(e){e()}),e.listeners=[]};var E=e.updateView;e.updateView=function(){E(),e.$broadcast("$$rebind::rebind")};var b=e.updateWalletView;e.updateWalletView=function(t){b(t),e.$broadcast("$$rebind::rebind")},e.$watch("settings.useRelative",function(t,n){e.formData&&!e.loading&&t!==n&&(e.formData.useRelative=p.data.useRelative,e.updateView())},!0)}function WalletSelectPopoverController(e,t,n,i){"ngInject";angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.motion=null,e.$on("popover.shown",function(){e.loading&&(e.setParameters(i),e.load())}),e.updateView=function(){e.wallets&&e.wallets.length&&(n.ink({selector:".popover-wallets .list .item"}),e.$broadcast("$$rebind::rebind"))},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closePopover(n)}}function WalletListImportModalController(e,t,n,i){"ngInject";e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1,e.importFromFile=function(a){e.validatingFile=!0,e.hasContent=angular.isDefined(a)&&""!==a,e.fileData=a.fileData?a.fileData:"";var o=""!==e.fileData&&("text/csv"==e.fileData.type||"text/plain"==e.fileData.type||"application/vnd.ms-excel");if(!o)return console.error("[wallet] Import failed. Invalid file type: "+e.fileData.type),e.isValidFile=!1,void(e.validatingFile=!1);console.debug("[wallet] Parsing file to import...");var r=a.fileContent.split("\n");e.content=r.reduce(function(e,t){if(!t||!t.trim().length)return e;var a=t.split("\t",3)||void 0;if(a&&3!=a.length)return console.debug("[wallet] Import: skip invalid row: "+t),o=!1,e;var r={pubkey:a[0],uid:a[1],localName:a[2]};return n.regexp.PUBKEY.test(r.pubkey)?i.isUserPubkey(r.pubkey)?(console.debug("[wallet] Pubkey equals to main wallet. Skip this row: ",t),e):i.children.hasPubkey(r.pubkey)?(console.debug("[wallet] Pubkey already in wallet list. Skip this row",t),e):e.concat(r):(console.debug("[wallet] Invalid pubkey, found in this row: ",t),o=!1,e)},[]),e.isValidFile=o,t(function(){e.validatingFile=!1},250)},e.removeFile=function(){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1}}function WotLookupController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){"ngInject";e.search={text:"",loading:!0,type:null,results:[]},e.entered=!1,e.wotSearchTextId="wotSearchText",e.enableFilter=!0,e.enableWallets=!1,e.allowMultiple=!1,e.selection=[],e.showResultLabel=!0,e.parameters={},e.enter=function(t,n){if(e.entered)e.updateLocationHref(),e.search.results&&e.search.results.length&&e.motion.show({selector:".lookupForm .list .item",ink:!0});else{var a=angular.merge({},e.parameters,n&&n.stateParams);a&&a.q?(e.search.text=a.q,i(function(){e.doSearch()},100)):a&&a.hash?(e.search.text="#"+a.hash,i(function(){e.doSearch()},100)):i(function(){u.data.initPhase&&!a.type?e.doGetPending(0,void 0,!0):"newcomers"==a.type||!c.initPhase&&!a.type?e.doGetNewcomers(0,void 0,!0):"pending"==a.type?e.doGetPending(0,void 0,!0):"wallets"==a.type&&e.doGetWallets(0,void 0,!0)},100),e.entered=!0,i(l.ink,100),e.showHelpTip()}},e.$on("$ionicView.enter",e.enter),e.resetWotSearch=function(){e.search={text:null,loading:!1,type:"newcomers",results:[]}},e.updateLocationHref=function(){},e.doSearchText=function(){e.doSearch(),e.updateLocationHref(),p.keyboard.close()},e.doSearch=function(){e.search.loading=!0;var t=e.search.text.trim();return l.screen.isSmall()&&t.length<3||!t.length?(e.search.results=void 0,e.search.loading=!1,e.search.type="none",e.search.total=void 0,n.when()):(e.search.type="text",b.search(t).then(function(n){if("text"==e.search.type&&e.search.text.trim()===t){if(!(n&&n.length||!m.regexp.PUBKEY.test(t)&&!m.regexp.PUBKEY_WITH_CHECKSUM.test(t)))return m.uri.parse(t).then(function(t){e.doDisplayResult([t])});e.doDisplayResult(n);var i=_.countBy(n,function(e){return e.divider&&"divider"||"results"});e.search.total=i&&i.results||0}}).catch(l.onError("ERROR.WOT_LOOKUP_FAILED")))},e.doGetNewcomers=function(t,n,i){return t=t||0,n=n||10,n<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="newcomers",t||i||e.updateLocationHref(),b.newcomers(t,n).then(function(i){return"newcomers"===e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),!0)}).catch(function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.hasMore=!1,e.search.total=void 0,l.onError("ERROR.LOAD_NEWCOMERS_FAILED")(n)})},e.doGetPending=function(t,n,i){t=t||0,n=n||10,n<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="pending";var a=u.data.initPhase?b.all:b.pending;return t||i||e.updateLocationHref(),a(t,n).then(function(i){return"pending"==e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),e.search.hasMore=!u.data.initPhase&&e.search.hasMore,!0)}).catch(function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.total=void 0,e.search.hasMore=!1,l.onError("ERROR.LOAD_PENDING_FAILED")(n)})},e.doGetWallets=function(t,n,i){return t=t||0,n=n||10,n<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="wallets",t||i||e.updateLocationHref(),E.children.all().then(function(i){if(!i||"wallets"!=e.search.type)return!1;var a=[E].concat(i).reduce(function(e,t,n){var i={id:n,pubkey:t.data.pubkey,uid:t.data.uid,name:t.data.localName||t.data.name,avatar:t.data.avatar};return e.concat(i)},[]);return e.doDisplayResult(a,t,n,a.length),e.search.hasMore=!1,!0})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,("newcomers"==e.search.type?e.doGetNewcomers:e.doGetPending)(t).then(function(t){t&&(e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete"))}).catch(function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.select=function(e){var n=e.state;!n&&e.pubkey&&(n=E.isUserPubkey(e.pubkey)?"app.view_wallet":"app.wot_identity"),n&&(s.nextViewOptions({historyRoot:!1,disableAnimate:!1,expire:300}),t.go(n,e.stateParams||e))},e.next=function(){console.warn("Selected identities (should be override):",e.selection)},e.toggleCheck=function(t,n){var i=e.search.results[t];i.checked?e.addToSelection(i):e.removeSelection(i,n)},e.toggleSelect=function(e){e.selected=!e.selected},e.addToSelection=function(t){var n=angular.copy(t);n.name&&(n.name=n.name.replace("<em>","").replace("</em>","")),e.selection.push(n)},e.removeSelection=function(t,n){var i=_.findWhere(e.selection,{id:t.id});if(i&&e.selection.splice(e.selection.indexOf(i),1),!e.search.loading){var a=_.findWhere(e.search.results,{id:t.id});a&&a.checked&&(a.checked=!1)}},e.scanQrCode=function(){p.barcode.enable&&p.barcode.scan().then(function(t){t&&m.uri.parse(t).then(function(n){n.pubkey?e.search.text=n.pubkey:t.uid?e.search.text=n.uid:e.search.text=t,e.doSearch()})}).catch(l.onError("ERROR.SCAN_FAILED"))},e.showHelpTip=function(t){if(e.isLogin()&&!((t=angular.isDefined(t)?t:d.data.helptip.wotLookup)<0)){0===t&&(t=1);var n=e.createHelptipScope();if(n)return n.startWotLookupTour(t,!1).then(function(e){n.$destroy(),d.data.helptip.wotLookup=e,d.store()})}},e.doDisplayResult=function(t,n,i,a){t=t||[],e.allowMultiple&&t.length&&e.selection.length&&_.forEach(e.selection,function(e){var n=_.findWhere(t,{id:e.id});n&&(n.checked=!0)}),e.search.results=n?e.search.results.concat(t):t||[],e.search.total=angular.isDefined(a)?a:void 0,e.search.loading=!1,e.search.hasMore=e.search.results.length>=n+i,e.smallscreen=l.screen.isSmall(),e.search.results.length&&t.length>0&&e.motion&&e.motion.show({selector:".lookupForm .list .item",ink:!0})},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/wot/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function WotLookupModalController(e,t,n,i,a){"ngInject";angular.extend(this,t("WotLookupCtrl",{$scope:e})),a=a||{},e.search.loading=!1,e.enableFilter=!!angular.isDefined(a.enableFilter)&&a.enableFilter,e.enableWallets=!!angular.isDefined(a.enableWallets)&&(i.isLogin()&&i.children.count()&&a.enableWallets),e.allowMultiple=!!angular.isDefined(a.allowMultiple)&&a.allowMultiple,e.parameters=a,e.showResultLabel=!1,e.wotSearchTextId="wotSearchTextModal",e.allowMultiple&&a.selection&&(e.selection=a.selection);var o=e.enter;e.enter=function(t){e.parameters&&e.parameters.q&&(e.search.text=e.parameters.q,e.parameters.q.trim().length>2&&o(t))},e.$on("modal.shown",e.enter),e.cancel=function(){e.closeModal()},e.select=function(t){e.closeModal({pubkey:t.pubkey,uid:t.uid,name:t.name&&t.name.replace(/<\/?em>/gi,"")})},e.next=function(){e.closeModal(e.selection)},e.updateLocationHref=function(){},e.showHelpTip=function(){}}function WotIdentityAbstractController(e,t,n,i,a,o,r,s,l,c,u,d,p){"ngInject";e.formData={hasSelf:!0},e.disableCertifyButton=!0,e.loading=!0,e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack}),e.load=function(t,n,i){return d.load(t,n,i).then(function(n){if(!n)return r.onError("ERROR.IDENTITY_NOT_FOUND")().then(e.showHome);e.formData=n;var i=p.isLogin();e.revoked=n.requirements&&(n.requirements.revoked||n.requirements.pendingRevocation),e.canCertify=n.hasSelf&&!e.revoked&&(!i||!p.isUserPubkey(t)||p.children.count()>0),e.canSelectAndCertify=n.hasSelf&&(p.isUserPubkey(t)||p.children.hasPubkey(t));var a=i&&_.find((n.received_cert||[]).concat(n.received_cert_pending||[]),function(e){return e.pubkey===p.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire});e.alreadyCertified=!(!e.canCertify||!i||p.children.count()>0)&&!!a,e.disableCertifyButton=e.alreadyCertified||e.revoked,e.loading=!1}).catch(function(t){e.loading=!1,r.onError("ERROR.LOAD_IDENTITY_FAILED")(t)})},e.doUpdate=function(t){t||(e.loading=!0,r.loading.show());var n={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,n).then(r.loading.hide)},e.certify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then(function(t){if(t)return t.auth({minData:!0}).then(function(n){if(r.loading.hide(),!u.data.initPhase&&!n.isMember)return void r.alert.error(n.requirements.needSelf?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF");if(!u.data.initPhase&&!e.formData.hasSelf)return void r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");if(e.formData.requirements.expired)return void r.alert.error("ERROR.IDENTITY_EXPIRED");var a=_.find(e.formData.received_cert,function(e){return e.pubkey===t.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire});return a?void i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then(function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")}):(a=_.findWhere(e.formData.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?void i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then(function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")}):void r.alert.confirm("CONFIRM.CERTIFY_RULES","CONFIRM.POPUP_SECURITY_WARNING_TITLE",{cssClass:"warning",okText:"WOT.BTN_YES_CERTIFY",okType:"button-assertive"}).then(function(n){n&&(r.loading.show(),t.certify(e.formData.uid,e.formData.pubkey,e.formData.blockUid||e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.timestamp,e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.sig,e.formData.isMember,e.formData.wasMember).then(function(n){r.loading.hide(),n&&(e.prepareNewCert(t,n),e.alreadyCertified=!0,r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.received_cert_pending.unshift(n),e.formData.requirements.pendingCertificationCount++,e.doMotion())}).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))})}).catch(function(e){"CANCELLED"!==e&&r.onError("ERROR.LOGIN_FAILED")(e)})})},e.selectAndCertify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then(function(t){return t.auth({minData:!0}).then(function(e){return u.data.initPhase||e.isMember?(r.loading.hide(),s.showWotLookup()):void r.alert.error(e.requirements.needSelf||e.requirements.needMembership?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")}).then(function(e){if(e&&e.pubkey){if(!e.uid)return void r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");r.loading.show();var t={cache:!1,blockUid:e.blockUid};return d.load(e.pubkey,e.uid,t)}}).then(function(n){if(n){if(r.loading.hide(),!n||!n.hasSelf)return void r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");if(n.requirements.expired)return void r.alert.error("ERROR.IDENTITY_EXPIRED");var a=_.findWhere(n.received_cert,{pubkey:t.data.pubkey,valid:!0});if(a)return void i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then(function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")});if(a=_.findWhere(n.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))return void i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then(function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")});i("CONFIRM.CERTIFY_RULES_TITLE_UID",{uid:n.uid}).then(function(e){return r.alert.confirm("CONFIRM.CERTIFY_RULES",e)}).then(function(i){i&&(r.loading.show(),t.certify(n.uid,n.pubkey,n.blockUid||n.requirements&&n.requirements.meta&&n.requirements.meta.timestamp,n.requirements&&n.requirements.meta&&n.requirements.meta.sig,n.isMember,n.wasMember).then(function(t){if(r.loading.hide(),t)return d.extendAll([t],"pubkey").then(function(){r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.given_cert_pending.unshift(t),e.doMotion()})}).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))})}}).catch(function(e){"CANCELLED"!==e&&r.onError("ERROR.LOAD_IDENTITY_FAILED")(e)})})},e.prepareNewCert=function(e,t){t.uid=e.data.uid,t.pubkey=e.data.pubkey,t.isMember=e.data.isMember,t.avatar=e.data.avatar,t.name=e.data.name},e.removeActionParamInLocationHref=function(e){if(e&&e.stateParams&&e.stateParams.action){var t=angular.copy(e.stateParams);t.action=null,a.nextViewOptions({disableAnimate:!0,disableBack:!1,historyRoot:!1}),n.go(e.stateName,t,{reload:!1,inherit:!0,notify:!1})}},e.doAction=function(t,n){if("certify"==t)return e.certify();"transfer"==t&&e.showTransferModal(n)},e.showCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"received",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showGivenCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"given",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showSharePopover=function(i){var a=e.formData.name||e.formData.uid||e.formData.pubkey,o=(l.shareBaseUrl||t.rootPath)+n.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});r.screen.isSmall()&&(i=angular.element(document.querySelector("#wot-share-anchor-"+e.formData.pubkey))||i),r.popover.share(i,{bindings:{url:o,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},postMessage:a}})}}function WotIdentityViewController(e,t,n,i,a,o,r,s){"ngInject";angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motion=o.motion.fadeSlideInRight,e.qrcodeId="qrcode-wot-"+e.$id,e.$on("$ionicView.enter",function(t,n){var a=function(){e.doMotion(),n.stateParams&&n.stateParams.action&&(i(function(){e.doAction(n.stateParams.action.trim())},100),e.removeActionParamInLocationHref(n)),e.showQRCode()},o={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};if(n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0){if(e.loading)return e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,o).then(a)}else if(n.stateParams&&n.stateParams.uid&&n.stateParams.uid.trim().length>0){if(e.loading)return e.load(null,n.stateParams.uid,o).then(a)}else e.showHome()}),e.doMotion=function(){e.motion.show({selector:".view-identity .list .item"}),e.showFab("fab-transfer"),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify-"+e.formData.uid),e.$broadcast("$csExtension.motion")},e.doQuickFix=function(t){if("showSelectIdentities"===t)return e.showSelectIdentities()},e.showSelectIdentities=function(){if(e.formData.requirements&&e.formData.requirements.alternatives)return r.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then(function(e){if(e&&e.pubkey)return a.go("app.wot_identity",{pubkey:e.pubkey,uid:e.uid,block:e.meta&&e.meta.timestamp||e.blockUid})})},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),o.motion.toggleOff({selector:"#"+e.qrcodeId}))}}function WotIdentityTxViewController(e,t,n,i,a,o,r,s){"ngInject";e.formData={},e.loading=!0,e.motion=s.motion.fadeSlideInRight,e.$on("$ionicView.enter",function(t,n){e.loading?(e.pubkey=n.stateParams.pubkey,e.uid=n.stateParams.uid,e.load()):e.updateView()}),e.load=function(t){return n.all([o.extend({pubkey:e.pubkey}),r.load(e.pubkey,t)]).then(function(t){e.formData=angular.merge(t[0],t[1]),e.loading=!1,e.updateView()})},e.doUpdate=function(t){return console.debug("[wot] TX history reloading..."),e.formData={},(t?e.load():s.loading.show().then(e.load).then(s.loading.hide)).then(e.updateView).catch(s.onError("ERROR.IDENTITY_TX_FAILED"))},e.updateView=function(){e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show()},e.downloadHistoryFile=function(t){t=t||{},t.fromTime=t.fromTime||-1,r.downloadHistoryFile(e.pubkey,t)},e.showMoreTx=function(n){return n=n||e.formData.tx.fromTime-a.data.walletHistoryTimeSecond||moment().utc().unix()-2*a.data.walletHistoryTimeSecond,s.loading.show(),r.load(e.pubkey,n).then(function(t){angular.merge(e.formData,t),e.updateView(),s.loading.hide()}).catch(function(a){a.ucode==i.errorCodes.HTTP_LIMITATION?t(function(){return e.showMoreTx(n)},2e3):s.onError("ERROR.IDENTITY_TX_FAILED")(a)})}}function WotCertificationsViewController(e,t,n,i,a,o){"ngInject";var r;angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motions={receivedCertifications:angular.copy(o.motion.fadeSlideIn),givenCertifications:angular.copy(o.motion.fadeSlideInRight),avatar:angular.copy(o.motion.fadeIn)},e.motions.receivedCertifications.enable=!0,e.motions.givenCertifications.enable=!0,e.motions.avatar.enable=!0,e.$on("$ionicView.enter",function(t,n){if(n.stateParams&&n.stateParams.type&&(e.motions.receivedCertifications.enable="given"!=n.stateParams.type,e.motions.givenCertifications.enable="given"==n.stateParams.type,e.motions.avatar.enable=!1),e.loading){var i={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};return n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0?e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,i).then(function(){e.doMotion(),e.showHelpTip()}):(r=n.stateParams&&n.stateParams.id?a.children.get(n.stateParams.id):a,r?r.isLogin()?e.load(r.data.pubkey,r.data.uid,i).then(function(){e.doMotion(),e.showHelpTip()}):e.showHome():(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome()))}e.doMotion()}),e.$on("$ionicView.leave",function(){e.loading=!0}),e.doUpdate=function(){var t={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,t).then(function(){e.doMotion(),e.showHelpTip()})},e.doMotion=function(t){e.doMotionReceivedCertifications(0,t),e.motions.avatar.enable&&e.motions.avatar.show({selector:".col-avatar ."+e.motions.avatar.ionListClass}),e.doMotionGivenCertifications(e.motions.receivedCertifications.enable?100:10,t)},e.doMotionReceivedCertifications=function(n,i){e.motions.receivedCertifications.enable?(i||e.motions.receivedCertifications.show({selector:".list.certifications .item",timeout:n}),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify",n)):(e.canCertify||t.tour)&&e.hideFab("fab-certify",0)},e.doMotionGivenCertifications=function(n,i){e.motions.givenCertifications.enable?(i||e.motions.givenCertifications.show({selector:".list.given-certifications .item",timeout:n}),(e.canSelectAndCertify||t.tour)&&e.showFab("fab-select-certify")):(e.canSelectAndCertify||t.tour)&&e.hideFab("fab-select-certify",0)},e.showHelpTip=function(){if(e.isLogin()&&i.data.helptip.enable){var t=e.createHelptipScope();if(t){var n=a.isUserPubkey(e.formData.pubkey),o=n?i.data.helptip.walletCerts:i.data.helptip.wotCerts;if(!(o<0)){return(n?t.startWalletCertTour(o,!1):t.startWotCertTour(o,!1)).then(function(e){t.$destroy(),n?i.data.helptip.walletCerts=e:i.data.helptip.wotCerts=e,i.store()})}}}}}function WotSelectPubkeyIdentityModalController(e,t,n,i){e.loading=!0,e.load=function(){return i&&i.identities?(e.identities=i.identities,e.pubkey=e.identities[0].pubkey,e.loading=!1,t.when()):(e.pubkey=i&&i.pubkey,pubkey?n.loadRequirements({pubkey:pubkey,uid:uid}).then(function(t){t&&t.requirements&&(e.identities=t.requirements,t.requirements.alternatives?e.identities=[t.requirements].concat(t.requirements.alternatives):e.identities=[t.requirements]),e.loading=!1}):t.reject("Missing parameters: [pubkey] or [identities]"))},e.$on("modal.shown",e.load)}function NetworkLookupController(e,t,n,i,a,o,r,s,l,c,u,d,p){"ngInject";e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,type:void 0,results:[],endpoint:null,bma:void 0,ssl:void 0,ws2p:void 0,sort:void 0,asc:!0},e.compactMode=!0,e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[network] Closing listeners"),_.forEach(e.listeners,function(e){e()}),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then(function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&(n.stateParams.type&&-1!=["mirror","member","offline"].indexOf(n.stateParams.type)&&(e.search.type=n.stateParams.type),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())}).catch(function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1}))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpoint:angular.isDefined(e.search.endpoint)?e.search.endpoint:null,bma:e.search.bma,ssl:e.search.ssl,ws2p:e.search.ws2p,online:!(e.search.type&&"offline"===e.search.type)},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then(function(){e.networkStarted&&e.updateView(t),e.refreshing=!1}))}))),e.showHelpTip()},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleSearchType=function(t){e.hideActionsPopover(),e.search.type===t||"none"===t?e.search.type=void 0:e.search.type=t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search({type:e.search.type}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpoint===t||null===t?e.search.endpoint=null:e.search.endpoint=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.$broadcast("$$rebind::rebind")},e.selectPeer=function(n){if(n.compacted&&e.compactMode)return void e.toggleCompactMode();if(n.online&&n.hasBma()){var i={server:n.getServer()};n.isSsl()&&(i.ssl=!0),n.isTor()&&(i.tor=!0),t.go("app.view_peer",i)}},e.$on("csView.action.refresh",function(t,n){"peers"===n&&e.refresh()}),e.$on("csView.action.showActionsPopover",function(t,n){e.showActionsPopover(n)}),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);i=(i||[]).reduce(function(e,i){var a=r.node.parseEndPoint(i)||r.node.parseEndPoint(i,n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer(a)+(a&&a.path||"")})},[]),i.length&&s.popover.show(e,{
-templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then(function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})})},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:c.data.helptip.network,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope();if(i)return i.tour=n,i.startNetworkTour(t,!1).then(function(e){i.$destroy(),n||(c.data.helptip.network=e,c.store())})}}}function NetworkLookupModalController(e,t,n){"ngInject";angular.extend(this,t("NetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.search.bma=angular.isDefined(n.bma)?n.bma:e.search.bma,e.search.ssl=angular.isDefined(n.ssl)?n.ssl:e.search.ssl,e.search.ws2p=angular.isDefined(n.ws2p)?n.ws2p:e.search.ws2p,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",function(){e.leave()}),e.showHelpTip=function(){},e.enter()}function NetworkLookupPopoverController(e,t){"ngInject";angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",function(){e.leave()}),e.showHelpTip=function(){},e.enter()}function PeerInfoPopoverController(e,t,n,i,a,o){"ngInject";e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then(function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl}).catch(function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl}),o.node.summary().then(function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software}).catch(function(){delete e.formData.version,delete e.formData.software}),o.version.latest().then(function(t){e.formData.latestRelease=t}).catch(function(){delete e.formData.latestRelease})]).then(function(){if(e.formData.latestRelease&&"duniter"==e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")})},i.api.data.on.newBlock(e,function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())}),n.api.data.on.changed(e,function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())}),e.load()}function PeerViewController(e,t,n,i,a,o,r){"ngInject";e.node={},e.loading=!0,e.isHttps="https:"===n.location.protocol,e.isReachable=!0,e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack}),e.$on("$ionicView.enter",function(t,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||r.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&r.useSsl,s="true"==n.stateParams.tor||!!i&&r.useTor;return e.load(a,o,s).then(function(){return e.$broadcast("$csExtension.enter",t,n)}).then(function(){e.loading=!1}).catch(function(){e.loading=!1})}),e.load=function(n,i,s){var l={server:n,host:n,useSsl:i,useTor:s},c=n.split(":");return 2==c.length&&(l.host=c[0],l.port=c[1]),angular.merge(e.node,s?r.lightInstance(l.host+".to",443,!0,6e4):r.lightInstance(l.host,l.port,l.useSsl),l),e.isReachable=!e.isHttps||i,e.isReachable?t.all([e.node.network.peering.self().then(function(t){e.node.pubkey=t.pubkey,e.node.currency=t.currency}).catch(function(e){console.error(e&&e.message||e)}),e.node.network.peers().then(function(t){var n=(t&&t.peers||[]).map(function(e){var t=new Peer(e);return t.online="UP"===e.status,t.buid=t.block,t.blockNumber=t.buid&&t.buid.split("-")[0],t.dns=t.getDns(),t.id=t.keyID(),t.server=t.getServer(),t});return o.extendAll([e.node].concat(n)).then(function(){e.peers=_.sortBy(n,function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.uid?1:0))}),e.motion.show({selector:".item-peer"})})}),e.node.blockchain.current().then(function(t){e.current=t})]).catch(function(e){throw console.error(e&&e.message||e),a.onError(s?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")(e),e}):r.network.peers().then(function(t){var n=(t&&t.peers||[]).reduce(function(e,t){var n=new Peer(t);return(n.getEndpoints("BASIC_MERKLED_API")||[]).reduce(function(e,t){var i=r.node.parseEndPoint(t);return i.dns!=l.host&&i.ipv4!=l.host&&i.ipv6!=l.host||i.port!=l.port?e:(n.bma=i,e.concat(n))},e)},[]),i=n.length&&n[0];if(i)return e.node.pubkey=i.pubkey,e.node.currency=i.currency,o.extend(e.node);console.warn("Could not get peer from /network/peers")})},e.selectPeer=function(e){if(e.online&&!e.isWs2p()){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),i.go("app.view_peer",t)}},e.openRawPeering=function(t){return e.openLink(t,e.node.url+"/network/peering")},e.openRawCurrentBlock=function(t){return e.openLink(t,e.node.url+"/blockchain/current")}}function CurrencyViewController(e,t,n,i,a,o,r,s,l,c,u){"ngInject";e.formData={useRelative:!1,currency:"",M:0,MoverN:0,UD:0,cactual:0,c:0,dt:0,sigQty:0,sigStock:0,msWindow:0,msValidity:0,sigWindow:0,sigValidity:0,sigPeriod:0,medianTime:0,difficulty:0,Nprev:0,stepMax:0,sentries:0,xpercent:0,durationFromLastUD:0,blockUid:null,dtReeval:0,udReevalTime0:0,allRules:angular.isDefined(s.data.currency&&s.data.currency.allRules)?s.data.currency.allRules:s.data.expertMode,allWotRules:angular.isDefined(s.data.currency&&s.data.currency.allWotRules)?s.data.currency.allWotRules:s.data.expertMode,licenseUrl:s.getLicenseUrl()},e.loading=!0,e.screen=r.screen,e.enter=function(t,i){e.loading&&(e.formData.useRelative=s.data.useRelative,l.get().then(e.load).then(function(){e.isLogin()&&e.showHelpTip()}).catch(r.onError("ERROR.GET_CURRENCY_FAILED")),c.api.data.on.mainBlockChanged(e,function(t){e.loading||e.formData.blockUid!==t.buid&&(console.debug("[currency] Updating parameters UI (new main block detected)"),n(e.load,1e3))})),e.$broadcast("$csExtension.enter",i)},e.$on("$ionicView.enter",e.enter),e.load=function(){var n,i,a={},s=Date.now();return t.all([o.blockchain.parameters().then(function(e){a.currency=e.currency,a.c=e.c,a.dt=e.dt,a.sigQty=e.sigQty,a.sigStock=e.sigStock,a.msWindow=e.msWindow,a.msValidity=e.msValidity,a.sigWindow=e.sigWindow,a.sigValidity=e.sigValidity,a.sigPeriod=e.sigPeriod,a.stepMax=e.stepMax,a.xpercent=e.xpercent,a.avgGenTime=e.avgGenTime,a.dtReeval=e.dtReeval,a.udTime0=e.udTime0,a.udReevalTime0=e.udReevalTime0,a.dtReeval||(a.dtReeval=a.dt)}),o.blockchain.current().then(function(e){n=e.monetaryMass,a.N=e.membersCount,a.medianTime=e.medianTime,a.difficulty=e.powMin,a.blockUid=[e.number,e.hash].join("-")}).catch(function(e){if(e&&e.ucode==o.errorCodes.NO_CURRENT_BLOCK)return n=0,a.N=0,a.medianTime=moment().utc().unix(),a.difficulty=0,void(a.blockUid=null);throw e}),o.blockchain.stats.ud().then(function(e){if(e.result.blocks.length){var t=e.result.blocks[e.result.blocks.length-1];return o.blockchain.block({block:t}).then(function(e){a.currentUD=e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend,i=e.medianTime,a.Nprev=e.membersCount})}return i=0,a.Nprev=0,o.blockchain.parameters().then(function(e){a.currentUD=e.ud0})})]).then(function(){var t=n-a.currentUD*a.Nprev,o=a.Nprev?t/a.Nprev:0;return a.cactual=o?100*a.currentUD/o:0,a.M=n,a.MoverN=a.Nprev?(t||n)/a.Nprev:0,a.UD=a.currentUD,a.durationFromLastUD=i?a.medianTime-i:0,a.sentries=Math.ceil(Math.pow(a.N,1/a.stepMax)),angular.extend(e.formData,a),console.debug("[currency] Parameters loaded in "+(Date.now()-s)+"ms"),e.loading=!1,e.$broadcast("$$rebind::rebind"),r.ink(),r.loading.hide()}).catch(function(t){e.loading=!1,r.onError("ERROR.LOAD_PEER_DATA_FAILED")(t)})},e.refresh=function(){if(!e.loading)return e.loading=!0,r.loading.show(),e.load().then(function(){e.$broadcast("csView.action.refresh","currency")})},e.refreshPeers=function(){return e.$broadcast("csView.action.refresh","peers"),t.when()},e.showExtendActionsPopover=function(t){e.$broadcast("csView.action.showActionsPopover",t)},e.onAllRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allRules!==e.formData.allRules&&(s.data.currency.allRules=e.formData.allRules,s.store())},e.$watch("formData.allRules",e.onAllRulesChange),e.onAllWotRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allWotRules!==e.formData.allWotRules&&(s.data.currency.allWotRules=e.formData.allWotRules,s.store())},e.$watch("formData.allWotRules",e.onAllWotRulesChange),e.startCurrencyTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:s.data.helptip.currency,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope(n);if(i)return i.tour=n,i.startCurrencyTour(t,!1).then(function(e){i.$destroy(),s.data.helptip.currency=e,s.store()})}},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showHelpModal=function(e){a.showHelp({anchor:e})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"templates/currency/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function CurrencyLicenseModalController(e,t,n,i,a){"ngInject";e.loading=!0,e.load=function(){e.loading&&(e.licenseUrl=i.getLicenseUrl(),e.licenseUrl&&".txt"!=e.licenseUrl.substring(e.licenseUrl.length-3)&&(e.licenseUrlHtml=e.licenseUrl+".html",e.licenseUrl=e.licenseUrl+".txt"),e.loading=!1)},e.$on("modal.shown",e.load),e.downloadFile=function(){if(e.licenseUrl)return t.get(e.licenseUrl).success(function(e){var t=new Blob([e],{type:"text/plain; charset=utf-8"});a.saveAs(t,"license.txt")}).error(function(){n.onError("ERROR.GET_LICENSE_FILE_FAILED")()})}}function TransferController(e,t,n){"ngInject";angular.extend(this,t("TransferModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,i){return i&&i.stateParams&&e.setParameters(i.stateParams),e.load().then(n.loading.hide)},e.$on("$ionicView.enter",e.enter),e.setForm=function(t){e.form=t},e.closeModal=function(){return e.showHome()}}function TransferModalController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){"ngInject";var b;e.convertedBalance=0,e.formData={destPub:null,amount:null,comment:null,useRelative:m.data.useRelative,useComment:!1,all:!1,restPub:null,restAmount:null,walletId:null},e.udAmount=null,e.minAmount=.01,e.commentPattern=s.regexp.COMMENT,e.currency=p.data.name,e.loading=!0,e.commentInputId="transferComment-"+e.$id,e.enableSelectWallet=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:l.screen.isSmall(),(e.smallscreen||r.enable)&&(e.digitKeyboardSettings=e.digitKeyboardSettings||r.keyboard.digit.settings.bindModel(e,"formData.amount",{decimal:!0,decimalSeparator:".",resizeContent:!1}),e.digitKeyboardVisible=!1),e.setParameters=function(t){t&&(t.pubkey&&(e.formData.destPub=t.pubkey),t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),t.amount?(e.formData.amount=t.amount,e.formData.useRelative=!1):t.udAmount&&(e.formData.amount=t.udAmount,e.formData.useRelative=!0),t.comment&&(e.formData.useComment=!0,e.formData.comment=t.comment),t.restPub||t.all?(e.restUid="",e.restPub=t.restPub,e.formData.restPub=t.restPub,e.formData.all=!0):e.formData.all=!1,t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=u.id)},e.setParameters(E),e.load=function(){return e.enableSelectWallet=u.children.count()>0,b=e.enableSelectWallet&&(e.formData.walletId?u.children.get(e.formData.walletId):u)||u,b.isDefault()||console.debug("[transfer] Using wallet {"+b.id+"}"),b.login({sources:!0,silent:!0}).then(function(t){if(b&&!e.$$destroyed){if(e.walletData=t,e.formData.walletId=b.id,e.onUseRelativeChanged(),e.onAmountChanged(),e.$watch("walletData.balance",e.onAmountChanged,!0),e.$watch("formData.amount",e.onAmountChanged,!0),e.$watch("formData.useRelative",e.onUseRelativeChanged,!0),e.$watch("walletData.balance",e.onUseRelativeChanged,!0),l.ink({selector:".modal-transfer .ink"}),e.destPub&&!e.destUid)return d.extend({pubkey:e.destPub}).then(function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1});e.loading=!1}}).catch(function(t){if("CANCELLED"===t)return e.cancel();l.onError("ERROR.LOGIN_FAILED")(t)})},e.$on("modal.shown",e.load),e.cancel=function(){e.closeModal(),b=null},e.onUseRelativeChanged=function(){e.currency=p.data.name,e.formData.useRelative?(e.convertedBalance=e.walletData.balance/p.data.currentUD,e.minAmount=.01/(p.data.currentUD/100)):(e.convertedBalance=e.walletData.balance/100,e.minAmount=.01),e.form&&!e.loading&&e.form.$setPristine(!0)},e.onAmountChanged=function(){if(!e.sending){var t=e.formData.amount;t&&"string"==typeof t&&(t=parseFloat(t.replace(new RegExp("[.,]"),".")));var n=!0;t&&t<e.minAmount?(n=!1,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error.min=!0):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.min&&delete e.form.amount.$error.min,t&&t>e.convertedBalance?(e.form.$valid=!1,e.form.amount.$invalid=!0,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error={max:!0}):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.max&&delete e.form.amount.$error.max,e.form.$valid=n,e.form.amount&&(e.form.amount.$invalid=!n),n&&e.formData.all&&t?e.formData.useRelative?(e.formData.restAmount=e.walletData.balance-t*p.data.currentUD,e.formData.restAmount<.01&&(e.formData.restAmount=0)):e.formData.restAmount=e.walletData.balance-100*t:e.formData.restAmount=void 0}},e.doTransfer=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.destPub&&e.formData.amount){var n=e.formData.amount;if("string"==typeof n&&(n=parseFloat(n.replace(new RegExp("[.,]"),"."))),!e.sending){e.sending=!0;var a;return t.all([b.auth({silent:!0}),p.currentUD().then(function(e){a=e}),e.hideDigitKeyboard(300)]).then(e.askTransferConfirm).then(function(t){return t?l.loading.show().then(function(){e.formData.useRelative?n*=a:n=100*n.toFixed(2);var t=e.formData.comment&&e.formData.comment.trim();return t&&!t.length&&(t=null),e.formData.all&&e.formData.restAmount>0?b.transferAll(e.formData.destPub,n,t,e.formData.useRelative,e.formData.restPub):b.transfer(e.formData.destPub,n,t,e.formData.useRelative)}).then(function(){return l.loading.hide(),e.closeModal(!0)}).then(function(t){return i(function(){e.sending=!1,l.toast.show("INFO.TRANSFER_SENT")},500),t}):void(e.sending=!1)}).catch(function(t){e.sending=!1,"CANCELLED"!==t&&l.onError("ERROR.SEND_TX_FAILED")(t)})}}},e.askTransferConfirm=function(){return n(["COMMON.UD","COMMON.EMPTY_PARENTHESIS"]).then(function(t){var i=e.formData.all&&e.formData.restAmount>0;return n(i?"CONFIRM.TRANSFER_ALL":"CONFIRM.TRANSFER",{from:e.walletData.isMember?e.walletData.uid:a("formatPubkey")(e.walletData.pubkey),to:e.destUid||e.destPub,amount:e.formData.amount,unit:e.formData.useRelative?t["COMMON.UD"]:a("abbreviate")(e.currency),comment:e.formData.comment&&0!==e.formData.comment.trim().length?e.formData.comment:t["COMMON.EMPTY_PARENTHESIS"],restAmount:i&&a("formatAmount")(e.formData.restAmount,{useRelative:e.formData.useRelative}),restTo:i&&(e.restUid||e.restPub)})}).then(l.alert.confirm)},e.addComment=function(){e.formData.useComment=!0},e.showWotLookupModal=function(t){return t=t||"destPub",e.hideDigitKeyboard(0),c.showWotLookup({enableWallets:!0}).then(function(n){n&&("destPub"==t?(e.destUid=n.uid,e.destPub=n.uid?"":n.pubkey,e.formData.destPub=n.pubkey):"restPub"==t&&(e.restUid=n.uid,e.restPub=n.uid?"":n.pubkey,e.formData.restPub=n.pubkey))})},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return c.showSelectWallet({useRelative:e.formData.useRelative,showDefault:!0,showBalance:!0}).then(function(t){!t||b&&b.id===t.id||(b=t,e.walletData=b.data,console.debug("[transfer] Using wallet {"+b.id+"}"),e.onAmountChanged())})},e.showUnitPopover=function(t){l.popover.show(t,{templateUrl:"templates/wallet/popover_unit.html",scope:e}).then(function(t){e.formData.useRelative=t})},e.showDigitKeyboard=function(){if(e.digitKeyboardSettings&&!e.digitKeyboardVisible)return r.enable?(r.keyboard.close(),i(function(){e.digitKeyboardVisible=!0},200)):(e.digitKeyboardVisible=!0,t.when())},e.hideDigitKeyboard=function(n){return e.digitKeyboardVisible?(e.digitKeyboardVisible=!1,i(function(){},n||200)):t.when()}}function SettingsController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){"ngInject";e.formData=angular.copy(E.data),e.popupData={},e.loading=!0,e.nodePopup={},e.bma=u,e.keepAuthIdleLabels={10:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:10}},30:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:30}},60:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTE",labelParams:{value:1}},600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTES",labelParams:{value:10}},3600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.HOUR",labelParams:{value:1}},9999:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.ALWAYS"}},e.keepAuthIdles=_.keys(e.keepAuthIdleLabels),e.blockValidityWindowLabels={0:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.NONE"},6:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:6,time:void 0}},12:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:12,time:void 0}},24:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:24,time:void 0}}},e.blockValidityWindows=_.keys(e.blockValidityWindowLabels),e.$on("$ionicView.enter",function(){t.all([E.ready(),m.parameters().then(function(e){return e&&e.avgGenTime}).catch(function(e){return console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)",e),{avgGenTime:300}}).then(function(t){_.each(e.blockValidityWindows,function(n){n>0&&(e.blockValidityWindowLabels[n].labelParams.time=t.avgGenTime*n)})})]).then(e.load)}),e.setPopupForm=function(t){e.popupForm=t},e.load=function(){return e.loading=!0,e.locales=angular.copy(E.locales),angular.merge(e.formData,E.data),e.formData.locale=E.data.locale&&E.data.locale.id&&_.findWhere(e.locales,{id:E.data.locale.id})||_.findWhere(e.locales,{id:E.defaultSettings.locale.id}),o(function(){e.loading=!1,l.ink({selector:".item"}),e.showHelpTip()},100)},e.reset=function(){e.actionsPopover&&e.actionsPopover.hide(),e.pendingSaving=!0,E.reset().then(b.restart).then(function(){e.load(),e.pendingSaving=!1})},e.changeLanguage=function(e){r.use(e)},e.changeNode=function(t){var n=e.formData.node.port&&80!=e.formData.node.port&&443!=e.formData.node.port?e.formData.node.port:void 0;t=t||{host:e.formData.node.host,port:n,useSsl:angular.isDefined(e.formData.node.useSsl)?e.formData.node.useSsl:443==e.formData.node.port},e.showNodePopup(t).then(function(t){if(t.host!==e.formData.node.host||t.port!==e.formData.node.port||t.useSsl!==e.formData.node.useSsl||e.formData.node.temporary){l.loading.show();var n=u.instance(t.host,t.port,t.useSsl,!0);n.isAlive().then(function(a){return a?(l.loading.hide(),angular.merge(e.formData.node,t),delete e.formData.node.temporary,u.copy(n),e.bma=u,b.restart(),i.clearCache()):(l.loading.hide(),l.alert.error("ERROR.INVALID_NODE_SUMMARY").then(function(){e.changeNode(t)}))})}})},e.showNodeList=function(){var t=!!("true"===p.httpsMode||!0===p.httpsMode||"force"===p.httpsMode||n.location&&"https:"===n.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),c.showNetworkLookup({enableFilter:!0,bma:!0,ssl:!!t||void 0}).then(function(e){if(e){var t=e.getBMA();return{host:t.dns?t.dns:e.hasValid4(t)?t.ipv4:t.ipv6,port:t.port||80,useSsl:t.useSsl||443==t.port}}}).then(function(t){e.changeNode(t)})},e.showNodePopup=function(n){return t(function(t,i){e.popupData.newNode=n.port?[n.host,n.port].join(":"):n.host,e.popupData.useSsl=n.useSsl,e.popupForm&&e.popupForm.$setPristine(),r(["SETTINGS.POPUP_PEER.TITLE","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then(function(n){a.show({templateUrl:"templates/settings/popup_node.html",title:n["SETTINGS.POPUP_PEER.TITLE"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then(function(e){if(!e)return void l.loading.hide();var n=e.server.split(":");n[1]=n[1]?n[1]:80,t({host:n[0],port:n[1],useSsl:e.useSsl})})})})},e.save=function(){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o(function(){return e.pendingSaving=!1,e.save()},500)):(e.saving=!0,o(function(){return e.cleanupHelpTip(),E.apply(e.formData),E.store()},100).then(function(){e.saving=!1}))},e.onDataChanged=function(n,i,a){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o(function(){return e.pendingSaving=!1,e.onDataChanged(n,i,a)},500)):void(a!==e||angular.equals(n,i)||e.save())},e.$watch("formData",e.onDataChanged,!0),E.api.data.on.changed(e,function(t){if(!(e.loading||e.saving||e.pendingSaving)){!angular.equals(t.useLocalStorageEncryption,e.formData.useLocalStorageEncryption)&&(console.debug("[settings] Settings changed (outside the settings page). Reloading..."),e.load())}}),e.getServer=function(){return e.formData.node&&e.formData.node.host?d.getServer(e.formData.node.host,e.formData.node.port):""},e.cleanupHelpTip=function(){if(e.formData.helptip.enable!==E.data.helptip.enable){var t=e.formData.helptip.enable;e.formData.helptip=angular.merge({},E.defaultSettings.helptip),e.formData.helptip.enable=t}},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/settings/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.startSettingsTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((e.isLogin()||n)&&!((t=angular.isDefined(t)?t:E.data.helptip.settings)<0)){0===t&&(t=1);var i=e.createHelptipScope(n);if(i)return i.startSettingsTour(t,!1).then(function(e){i.$destroy(),E.data.helptip.settings=e,E.store()})}}}function BlockLookupController(e,t,n,i,a,o,r,s,l,c,u){"ngInject";e.search={result:[],total:0,loading:!0,loadingMore:!1,hasMore:!1,type:"last"},e.node={},e.currency=!1,e.entered=!1,e.searchTextId=null,e.ionItemClass="item-border-large",e.defaultSizeLimit=r.screen.isSmall()?50:100,e.helptipPrefix="helptip-network",e.listeners=[],e.enter=function(t,n){if(e.entered)e.addListeners();else{if(n&&n.stateParams&&n.stateParams.q&&(e.search.text=n.stateParams.q,e.search.text&&e.search.text.trim().length&&(e.search.type="text")),n&&n.stateParams&&n.stateParams.server){var i="true"==n.stateParams.ssl,a="true"==n.stateParams.tor,o={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:a},c=n.stateParams.server.split(":");if(2==c.length&&(o.host=c[0],o.port=c[1]),!s.node.same(o.host,o.port))return e.node=a?s.instance(o.host+".to",443,!0,6e5):s.instance(o.host,o.port,o.useSsl),e.node.blockchain.parameters().then(function(t){e.currency=t.currency,e.enter()});e.node=s}if(!e.currency)return l.get().then(function(t){if(e.currency=t?t.name:null,e.node=t.node?t.node:s,!e.currency)return void r.alert.error("ERROR.GET_CURRENCY_FAILED");e.enter()}).catch(r.onError("ERROR.GET_CURRENCY_FAILED"));e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!r.screen.isSmall()&&u.data.expertMode,e.doSearch(),e.addListeners(),e.entered=!0,e.showHelpTip()}},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicParentView.leave",e.leave),e.$on("$destroy",e.leave),e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(t){t=angular.isDefined(t)?t:0,e.search.loading=0===t,e.search.hasMore=!1;var n;if(0===t)n=e.node.blockchain.current().then(function(t){var n=t.number<e.defaultSizeLimit?t.number:e.defaultSizeLimit;return e.node.blockchain.blocksSlice({count:n,from:t.number-n}).then(function(e){return e&&e.splice(0,0,t),e})}).catch(function(e){if(e&&e.ucode==s.errorCodes.NO_CURRENT_BLOCK)return[];throw e});else{var i=e.search.results[e.search.results.length-1].number,a=i<e.defaultSizeLimit?i:e.defaultSizeLimit;n=e.node.blockchain.blocksSlice({count:a,from:i-a})}return n.then(function(n){if(!n||!n.length)return e.doDisplayResult([],t,0),void(e.search.loading=!1);n=n.reduce(function(e,t){var n=new Block(t);return n.cleanData(),e.concat(n)},[]),n=_.sortBy(n,function(e){return-1*e.number});var i=(0===t?n[0].number:e.search.results[0].number)+1;return e.doPrepareResult(n,t).then(function(){e.doDisplayResult(n,t,i),e.search.loading=!1})}).catch(function(t){r.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t),e.search.loading=!1})};var d=i("formatDateShort");e.doPrepareResult=function(t,n){if(n=angular.isDefined(n)?n:0,"last"==e.search.type){var i;if(n>0&&e.search.results.length){var a=e.search.results[e.search.results.length-1];i=a.empty?a.day:void 0}_.forEach(t,function(e,t){if(e.empty){var a=d(e.medianTime),o=0!==t||0!==n,r=!i||i==a;e.compacted=o&&r,i=a}else i=void 0})}return c.extendAll(t,"issuer")},e.doDisplayResult=function(t,n,i){e.search.results=n?e.search.results.concat(t):t||[],e.search.hasMore=i&&e.search.results.length<i,e.search.total=i||e.search.total,e.smallscreen=r.screen.isSmall(),e.$broadcast("$$rebind::rebind"),t&&t.length&&e.motion.show({selector:".list-blocks .item-block"})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,e.doSearch(t).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}).catch(function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.removeListeners=function(){e.listeners.length&&(console.debug("[block] Closing listeners"),_.forEach(e.listeners,function(e){e()}),e.listeners=[])},e.addListeners=function(){e.listeners.length||(console.debug("[block] Starting listeners"),e.node===s?e.listeners=[l.api.data.on.newBlock(e,e.onBlock)]:e.listeners=[e.node.websocket.block().onListener(function(t){if(t){var n=new Block(t);n.cleanData(),e.onBlock(n)}})])},e.onBlock=function(t){if(!(e.search.loading||"last"!=e.search.type||e.search.sort&&"desc"!=e.search.sort))if(e.search.results=e.search.results||[],e.search.results.length){var n=_.findWhere(e.search.results,{number:t.number});n?n.hash!=t.hash&&(console.debug("[ES] [blockchain] block #{0} updated (by websocket)".format(t.number)),angular.copy(t,n),e.doPrepareResult([t,e.search.results[1]]).then(function(){return e.showBlock(n)})):(console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.splice(0,0,t),e.doPrepareResult([t,e.search.results[1]]).then(function(){return e.showBlock(t)}))}else console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.push(t),e.doPrepareResult([t]).then(function(){return e.showBlock(t)})},e.showBlock=function(t){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:"#block-"+t.number})},e.selectBlock=function(n){n.compacted&&e.compactMode?(e.toggleCompactMode(),t(function(){o("block-"+n.number)},900)):s.node.same(e.node.host,e.node.port)?a.go("app.view_block_hash",{number:n.number,hash:n.hash}):a.go("app.view_server_block_hash",{server:e.node.server,ssl:e.node.useSsl,number:n.number,hash:n.hash})},e.toggleCompactMode=function(){if(e.compactMode=!e.compactMode,e.doDisplayResult(e.search.results,0,e.search.total),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type){var n=e.search.results[e.search.results.length-1];n&&n.number>0&&t(function(){e.search.hasMore=!0},500)}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){}}function BlockViewController(e,t,n,i,a,o,r){"ngInject";e.loading=!0,e.formData={},e.compactMode=!0,e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!i.screen.isSmall()||t.enableBack}),e.enter=function(t,n){if(e.loading){if(n&&(e.number=n.stateParams&&angular.isDefined(n.stateParams.number)?n.stateParams.number:"current",e.hash=n.stateParams&&n.stateParams.hash?n.stateParams.hash:void 0,n.stateParams&&n.stateParams.server)){var r="true"==n.stateParams.ssl,s="true"==n.stateParams.tor,l={server:n.stateParams.server,host:n.stateParams.server,useSsl:r,useTor:s},c=n.stateParams.server.split(":");if(2==c.length&&(l.host=c[0],l.port=c[1]),!a.node.same(l.host,l.port))return e.node=s?a.instance(l.host+".to",443,!0,6e5):a.instance(l.host,l.port,l.useSsl),e.node.blockchain.parameters().then(function(t){e.currency=t.currency,e.enter()});e.node=a}e.currency&&e.node?e.load():o.get().then(function(t){t&&(e.currency=t.name,e.node=t.node,e.load())}).catch(i.onError("ERROR.GET_CURRENCY_FAILED"))}},e.$on("$ionicView.enter",e.enter),e.leave=function(){},e.$on("$ionicParentView.beforeLeave",e.leave),e.load=function(){if(e.number){return("current"==e.number?e.node.blockchain.current():e.node.blockchain.block({block:e.number})).then(function(t){var n=new Block(t);if(n.parseData(),!n||!angular.isDefined(n.number)||!n.hash)return e.loading=!1,void i.alert.error("ERROR.GET_BLOCK_FAILED");if(e.hash&&n.hash!=e.hash)return e.loading=!1,void i.alert.error("ERROR.INVALID_BLOCK_HASH");var o=[];n.joiners.length&&(o=o.concat(n.joiners)),n.certifications.length&&(o=n.certifications.reduce(function(e,t){return t.to={pubkey:t.to},t.from={pubkey:t.from},e.concat(t.to,t.from)},o),n.certifications=_.groupBy(n.certifications,function(e){return e.to.pubkey})),n.transactions.length&&(o=n.transactions.reduce(function(e,t){return t.issuers=t.issuers.reduce(function(e,t){return e.concat({pubkey:t})},[]),_.forEach(t.outputs||[],function(e){e.unlockCondition&&angular.merge(e,a.tx.parseUnlockCondition(e.unlockCondition))}),e.concat(t.issuers.concat(t.outputs||[]))},o));var s={pubkey:n.issuer};return o.push(s),r.extendAll(o).then(function(){e.updateView({block:n,issuer:s})})}).catch(function(t){e.loading=!1,i.onError("ERROR.GET_BLOCK_FAILED")(t)})}},e.updateView=function(t){e.formData=t.block,e.issuer=t.issuer,e.loading=!1},e.toggleCompactMode=function(){e.compactMode=!e.compactMode};e.toUnlockUIArray=function(t,n,i){return n=n||10,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce(function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type}),i.concat(e.toUnlockUIArray(a,n+10))):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))},[])},e.showUnlockConditionPopover=function(t,n){t.unlockTree&&(e.popoverData=e.popoverData||{},
-e.popoverData.unlockConditions=e.toUnlockUIArray(t.unlockTree),i.popover.show(n,{templateUrl:"templates/blockchain/unlock_condition_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.unlockConditionPopover=t}}))},e.hideUnlockConditionsPopover=function(){e.unlockConditionPopover&&(e.unlockConditionPopover.hide(),e.unlockConditionPopover=null)},e.goState=function(t,i){e.hideUnlockConditionsPopover(),n.go(t,i)},e.openRawBlock=function(t){return e.openLink(t,e.node.url+"/blockchain/block/"+e.formData.number)},e.showHelpTip=function(e){}}function EsNotification(e,t){var n={registry:"EVENT.REGISTRY."},i=this;e=e||{},i.type=e.type&&e.type.toLowerCase(),i.time=e.time,i.hash=e.hash,i.read=!!e.read_signature,i.message=e.reference&&n[e.reference.index]?n[e.reference.index]+e.code:"EVENT."+e.code,i.params=e.params,t&&"function"==typeof t&&(i.markAsReadCallback=t),i.markAsRead=function(){i.markAsReadCallback&&i.markAsReadCallback(i)};var a;return e.code=e.code||"",e.code.startsWith("MEMBER_")?(i.avatarIcon="ion-person",i.icon="ion-information-circled positive",i.state="app.view_wallet",i.medianTime=i.time):e.code.startsWith("TX_")?(i.avatarIcon="ion-card",i.icon="TX_SENT"==e.code?"ion-paper-airplane dark":"ion-archive balanced",i.medianTime=i.time,a=e.params.length>0?e.params[0]:null,a&&-1==a.indexOf(",")&&(i.pubkey=a),i.state="app.view_wallet_tx",i.stateParams={refresh:!0}):e.code.startsWith("CERT_")?(i.avatarIcon="CERT_RECEIVED"==e.code?"ion-ribbon-b":"ion-ribbon-a",i.icon="CERT_RECEIVED"==e.code?"ion-ribbon-b balanced":"ion-ribbon-a gray",i.pubkey=e.params.length>0?e.params[0]:null,i.medianTime=i.time,i.state="app.wallet_cert",i.stateParams={type:"CERT_RECEIVED"==e.code?"received":"given"}):e.code.startsWith("MESSAGE_")?(i.avatarIcon="ion-email",i.icon="ion-email dark",a=e.params.length>0?e.params[0]:null,a&&-1==a.indexOf(",")&&(i.pubkey=a),i.id=e.reference.id):e.reference&&"page"==e.reference.index?(i.avatarIcon="ion-ios-book",e.reference.anchor?(i.icon="ion-ios-chatbubble-outline dark",i.state="app.view_page_anchor",i.stateParams={id:e.reference.id,title:e.params[1],anchor:function(e){return e?e.substr(0,4)+e.substr(e.length-4):""}(e.reference.anchor)}):(i.icon="ion-ios-book dark",i.state="app.view_page",i.stateParams={id:e.reference.id,title:e.params[1]})):"INFO"==e.type?(i.avatarIcon="ion-information",i.icon="ion-information-circled positive"):"WARN"==e.type?(i.avatarIcon="ion-alert-circled",i.icon="ion-alert-circled energized"):"ERROR"==e.type&&(i.avatarIcon="ion-close",i.icon="ion-close-circled assertive"),i}function Comment(e,t){var n=this;n.id=e,n.message=null,n.html=null,n.issuer=null,n.time=null,n.creationTime=null,n.reply_to=null,n.replyCount=0,n.parent=null,n.replies=[],n.onRemoveListeners=[],n.copy=function(e){n.message=e.message,n.html=e.html,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.id=e.id||n.id,n.reply_to=e.reply_to||n.reply_to,n.uid=e.uid||n.uid,n.name=e.name||n.name,n.avatarStyle=e.avatarStyle||n.avatarStyle,e.parent&&(n.parent=e.parent),e.replies&&n.setReplies(e.replies)},n.copyFromJson=function(e){n.message=e.message,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.reply_to=e.reply_to},n.addOnRemoveListener=function(e){e&&"function"==typeof e&&n.onRemoveListeners.push(e)},n.cleanAllListeners=function(){n.onRemoveListeners=[]},n.setReplies=function(e){n.removeAllReplies(),n.addReplies(e)},n.addReplies=function(e){e&&e.length&&(e=e.sort(function(e,t){return e.time-t.time}),_.forEach(e,function(e){e.parent=n,n.replies.push(e)}),n.replyCount+=e.length)},n.containsReply=function(e){return-1!=n.replies.indexOf(e)},n.addReply=function(e){n.replyCount+=1,n.replies.push(e),n.replies=n.replies.sort(function(e,t){return e.time-t.time}),e.parent=n},n.removeAllReplies=function(){if(n.replyCount){var e=n.replies.splice(0,n.replies.length);n.replyCount=0,_.forEach(e,function(e){e.remove()})}},n.removeReply=function(e){var t=_.findIndex(n.replies,{id:e});if(-1!=t){n.replyCount--;delete n.replies.splice(t,1)[0].parent}},n.remove=function(){n.parent&&(n.parent.removeReply(n.id),delete n.parent),n.onRemoveListeners.length&&(_.forEach(n.onRemoveListeners,function(e){e(n)}),n.issuer=null,n.message=null,n.cleanAllListeners())},t&&"object"==typeof t&&n.copyFromJson(t)}function Invitation(e){var t=this;if(e=e||{},t.type=e.type&&e.type.toLowerCase(),t.time=e.time,t.id=e.id,"certification"==t.type){if(t.comment=e.comment,t.icon="ion-ribbon-a",t.okText="WOT.BTN_CERTIFY",!e.content||-1==e.content.indexOf("-"))return console.error("[invitation] Empty content for invitation [{0}]".format(t.id)),t.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(t.pubkey=e.issuer);var n=e.content.lastIndexOf("-");if(-1==n)return console.error("[invitation] Bad content format for invitation [{0}]: {1}".format(t.id,e.content)),t.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(t.pubkey=e.issuer);var i={uid:e.content.substr(0,n),pubkey:e.content.substr(n+1)};t.state="app.wot_identity",t.stateParams={pubkey:i.pubkey,uid:i.uid,action:"certify"},i.pubkey==e.issuer?(t.pubkey=e.issuer,t.uid=i.uid,t.message="INVITATION.ASK_CERTIFICATION"):(t.issuer={pubkey:e.issuer},t.message="INVITATION.SUGGESTION_CERTIFICATION",t.pubkey=i.pubkey,t.uid=i.uid)}}function ESPicturesEditController(e,t,n,i){"ngInject";e.selectNewPicture=function(t){if(i.enable)e.openPicturePopup();else{var n=angular.element(document.querySelector(t||"#pictureFile"));n&&n.length>0&&n[0].click()}},e.openPicturePopup=function(){i.camera.getPicture().then(function(t){e.pictures.push({src:"data:image/png;base64,"+t,isnew:!0})}).catch(t.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(n){if(n.target.files&&n.target.files.length){t.loading.show();var i=n.target.files[0];return t.image.resizeFile(i).then(function(i){e.pictures.push({src:i,isnew:!0}),n.target.value="",t.loading.hide(100)}).catch(function(e){console.error(e),n.target.value="",t.loading.hide()})}},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.rotatePicture=function(n){var i=e.pictures[n];t.image.rotateSrc(i.src).then(function(e){i.src=e})}}function ESCategoryModalController(e,t,n,i){"ngInject";e.loading=!0,e.allCategories=[],e.categories=[],this.searchText="",this.title=i&&i.title,e.afterLoad=function(i){e.categories=i,e.allCategories=i,e.loading=!1,n(function(){t.ink()},10)},this.doSearch=function(){var t=this.searchText.toLowerCase().trim();t.length>1?(e.loading=!0,e.categories=e.allCategories.reduce(function(e,n){return n.parent&&-1!=n.name.toLowerCase().search(t)?e.concat(n):e},[]),e.loading=!1):e.categories=e.allCategories},i&&i.categories?e.afterLoad(i.categories):i&&i.load&&i.load().then(function(t){e.afterLoad(t)})}function ESCommentsController(e,t,n,i,a,o,r){"ngInject";e.loading=!0,e.defaultCommentSize=5,e.formData={},e.comments={},e.$on("$recordView.enter",function(t,n){e.loading?e.anchor=n&&n.stateParams.anchor:!e.loading&&e.id&&e.load(e.id,{animate:!1})}),e.$on("$recordView.load",function(t,n,i){e.id=n||e.id,e.service=i||e.service,console.debug("[ES] [comment] Will use {"+i.index+"} service"),e.id&&e.load(e.id).then(function(){e.scrollToAnchor()})}),e.load=function(t,n){return n=n||{},n.from=n.from||0,n.size=n.size||e.anchor&&-1,n.size=n.size||e.defaultCommentSize,n.animate=!angular.isDefined(n.animate)||n.animate,n.loadAvatarAllParent=!angular.isDefined(n.loadAvatarAllParent)||n.loadAvatarAllParent,e.loading=!0,e.service.load(t,n).then(function(i){!n.animate&&i.result.length&&_.forEach(i.result,function(e){e.isnew=!0}),e.comments=i,e.comments.hasMore=i.total>i.result.length,e.loading=!1,e.service.changes.start(t,i,e),e.motion.show({selector:".comments .item",ink:!1})})},e.$on("$recordView.beforeLeave",function(){if(e.comments){if(!e.service)return void console.error("[comment] Comment controller has no service ! Unable to listen changes...");e.service.changes.stop(e.comments)}}),e.scrollToAnchor=function(){if(e.anchor){var t=document.getElementsByName(e.anchor);if(!t||!t.length)return a(e.scrollToAnchor,500);for(var n=0;n<t.length-1;n++)angular.element(t[n]).remove();o(e.anchor),a(function(){e.anchor=null},1500)}},e.showMore=function(){e.load(e.id,{from:0,size:-1,loadAvatarAllParent:!1}).then(function(){e.motion.show({selector:".card-avatar"})})},e.onKeypress=function(t){t&&10==t.charCode&&t.ctrlKey&&(e.save(),t.preventDefault())},e.save=function(){e.formData.message&&e.formData.message.length&&e.loadWallet({minData:!0,auth:!0}).then(function(){r.loading.hide();var t=e.formData;return e.formData={},e.focusNewComment(),e.service.save(e.id,e.comments,t)}).then(function(){e.comments.total++}).catch(r.onError("COMMENTS.ERROR.FAILED_SAVE_COMMENT"))},e.share=function(i,a){var o,s=angular.copy(n.params);s.anchor?(s.anchor=t("formatHash")(a.id),o=n.href(n.current.name,s,{absolute:!0})):o=n.href(n.current.name,s,{absolute:!0})+"/"+t("formatHash")(a.id);var l=_.findIndex(e.comments.result,{id:a.id}),c=o+"?u="+(a.uid||t("formatPubkey")(a.issuer));r.popover.show(i,{templateUrl:"templates/common/popover_share.html",scope:e,bindings:{titleKey:"COMMENTS.POPOVER_SHARE_TITLE",titleValues:{number:l?l+1:1},date:a.creationTime,value:c,postUrl:o,postMessage:a.message},autoselect:".popover-share input"})},e.edit=function(t){var n=new Comment;n.copy(t),e.formData=n},e.remove=function(t){t&&(t.remove(),e.comments.total--)},e.reply=function(t){t&&t.id&&(e.formData={parent:t},e.focusNewComment(!0))},e.cancel=function(){e.formData={},e.focusNewComment()},e.focusNewComment=function(e){r.screen.isSmall()?e&&i("comment-form-input"):i("comment-form-textarea")},e.removeParentLink=function(){delete e.formData.parent,delete e.formData.reply_to,e.focusNewComment()},e.toggleExpandedReplies=function(e,t){e.expandedReplies=e.expandedReplies||{},e.expandedReplies[t]=!e.expandedReplies[t]},e.toggleExpandedParent=function(e,t){e.expandedParent=e.expandedParent||{},e.expandedParent[t]=!e.expandedParent[t]}}function ESSocialsEditController(e,t,n,i,a){"ngInject";e.socialData={url:null,reorder:!1},e.addSocialNetwork=function(){if(e.socialData.url&&0!==e.socialData.url.trim().length){e.formData.socials=e.formData.socials||[];var o=e.socialData.url.trim();if(_.findWhere(e.formData.socials,{url:o}))return void(e.socialData.url="");var r=a.get(o);if(!r)return i.alert.error("PROFILE.ERROR.INVALID_SOCIAL_NETWORK_FORMAT"),void t("socialUrl");e.formData.socials.push(r),e.socialData.url="",e.motion.show({selector:"#social-"+n("formatSlug")(r.url),startVelocity:1e4})}},e.editSocialNetwork=function(n){var i=e.formData.socials[n];e.formData.socials.splice(n,1),e.socialData.url=i.url,t("socialUrl")},e.reorderSocialNetwork=function(t,n,i){t&&n!=i&&(e.formData.socials.splice(n,1),e.formData.socials.splice(i,0,t))},e.filterFn=function(e){return!e.recipient||e.valid}}function ESSocialsViewController(e){"ngInject";e.openSocial=function(t,n){return e.openLink(t,n.url,{type:n.type})},e.filterFn=function(e){return!e.recipient||e.valid}}function ESAvatarModalController(e){e.formData={initCrop:!1,imageCropStep:0,imgSrc:void 0,result:void 0,resultBlob:void 0},e.openFileSelector=function(){var e=angular.element(document.querySelector(".modal-avatar #fileInput"));e&&e.length>0&&e[0].click()},e.fileChanged=function(t){var n=t.target.files,i=new FileReader;i.readAsDataURL(n[0]),i.onload=function(t){var n=this.result;e.$applyAsync(function(){e.formData.imgSrc=n})}},e.doNext=function(){2==e.formData.imageCropStep?e.doCrop():3==e.formData.imageCropStep&&e.closeModal(e.formData.result)},e.doCrop=function(){e.formData.initCrop=!0},e.clear=function(){e.formData={initCrop:!1,imageCropStep:1,imgSrc:void 0,result:void 0,resultBlob:void 0}}}function ESPositionEditController(e,t,n,i){"ngInject";var a=t.plugins&&t.plugins.es&&t.plugins.es.defaultCountry,o=!1;e.formPosition={loading:!1,enable:void 0},e.tryToLocalize=function(){if(!e.formPosition.loading&&!o){var t=e.getAddressToSearch();return t?(e.formPosition.loading=!0,n.point.searchByAddress(t).then(function(n){return n&&1==n.length?e.updateGeoPoint(n[0]):e.openSearchLocationModal({text:t,results:n||[],forceFallback:!n||!n.length})}).then(function(){e.formPosition.loading=!1}).catch(function(t){console.error(t),e.formPosition.loading=!1})):(o=!0,n.point.current().then(e.updateGeoPoint).then(function(){o=!1}).catch(function(e){console.error(e),o=!1}))}},e.onCityChanged=function(){if(!e.loading)return e.formPosition.enable?(e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0),e.tryToLocalize()):void 0},e.onUseGeopointChanged=function(){e.loading||(e.formPosition.enable?e.tryToLocalize():e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0,e.dirty=!0))},e.onGeopointChanged=function(){e.loading&&(e.formPosition.enable=e.formData.geoPoint&&!!e.formData.geoPoint.lat&&!!e.formData.geoPoint.lon)},e.$watch("formData.geoPoint",e.onGeopointChanged),e.getAddressToSearch=function(){return e.formData.address&&e.formData.city?[e.formData.address.trim(),e.formData.city.trim()].join(", "):e.formData.city||e.formData.address||e.formData.location},e.updateGeoPoint=function(t){if(t&&t.lat&&t.lon&&(e.dirty=!0,e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=parseFloat(t.lat),e.formData.geoPoint.lon=parseFloat(t.lon),t.address&&t.address.city)){var n=[t.address.city];t.address.postcode&&n.push(t.address.postcode),t.address.country!=a&&n.push(t.address.country),e.formData.city=n.join(", ")}},e.openSearchLocationModal=function(t){t=t||{};var n={text:t.text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.formData.city,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return i.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0}).then(e.updateGeoPoint)}}function ESLookupPositionController(e,t,n,i,a){"ngInject";var o=n.plugins&&n.plugins.es&&n.plugins.es.defaultCountry,r=!1;e.geoDistanceLabels=[5,10,20,50,100,250,500].reduce(function(e,t){return e[t]={labelKey:"LOCATION.DISTANCE_OPTION",labelParams:{value:t}},e},{}),e.geoDistances=_.keys(e.geoDistanceLabels),e.searchPosition=function(n){if(r)return t.when();r=!0;var a=n?i.point.searchByAddress(n).then(function(t){return t&&1==t.length?(t[0].exact=!0,t[0]):e.openSearchLocationModal({text:n,results:t||[],forceFallback:!t||!t.length}).then(function(e){if(e&&e.address&&e.address.city){var t=[e.address.city];e.address.postcode&&t.push(e.address.postcode),e.address.country!=o&&t.push(e.address.country),e.shortName=t.join(", ")}return e})}):i.point.current();return a.then(function(e){if(r=!1,e&&e.lat&&e.lon)return{lat:parseFloat(e.lat),lon:parseFloat(e.lon),name:e.shortName,exact:e.exact}}).catch(function(e){console.error(e),r=!1}),a},e.openSearchLocationModal=function(t){t=t||{};var n={text:t.text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.search.location,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return a.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0})}}function ESSearchPositionItemController(e,t,n,i,a){"ngInject";var o=i.plugins&&i.plugins.es&&i.plugins.es.defaultCountry,r=!1;e.locations=void 0,e.selectLocationIndex=-1,e.onKeydown=function(t){switch(t.keyCode){case 27:e.hideDropdown();break;case 13:e.locations&&e.locations.length&&e.onEnter();break;case 38:e.onArrowUpOrDown(-1),t.preventDefault();break;case 40:e.onArrowUpOrDown(1),t.preventDefault();break;case 8:case 45:case 46:break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:e.showDropdown()}},e.onEnter=function(){e.selectLocationIndex>-1?e.selectLocation(e.locations[e.selectLocationIndex]):e.selectLocation(e.locations[0])},e.onArrowUpOrDown=function(t){e.locations&&(e.selectLocationIndex+=t,e.selectLocationIndex>=e.locations.length&&(e.selectLocationIndex=0),e.selectLocationIndex<0&&(e.selectLocationIndex=e.locations.length-1),_.forEach(e.locations||[],function(t,n){t.selected=n==e.selectLocationIndex}))},e.onLocationChanged=function(){r||e.search.loading||(e.search.geoPoint=void 0,e.showDropdown())},e.showDropdown=function(){var t=e.search.location&&e.search.location.trim();if(!t||t.length<3)return e.hideDropdown(!0);var n=e.requestId&&e.requestId+1||1;return e.requestId=n,r=!0,a.point.searchByAddress(t).then(function(t){e.requestId==n&&(r=!1,e.locations=t||[],e.license=t&&t.length&&t[0].license)}).catch(function(t){throw e.hideDropdown(),t})},e.hideDropdown=function(n){return n?(e.locations=void 0,e.selectLocationIndex=-1,e.license=void 0,void(r=!1)):t(function(){r||(e.locations=void 0,e.license=void 0,r=!1)},500)},e.selectLocation=function(t,n){if(r=!0,t)if(e.search.geoPoint=e.search.geoPoint||{},e.search.geoPoint.lat=parseFloat(t.lat),e.search.geoPoint.lon=parseFloat(t.lon),n)e.search.geoPoint.exact=!0;else if(t&&t.address&&t.address.city){var i=[t.address.city];t.address.postcode&&i.push(t.address.postcode),t.address.country!=o&&i.push(t.address.country),e.search.location=i.join(", ")}e.hideDropdown(!0)},e.openSearchLocationModal=function(t){t=t||{text:e.search.location};var i={text:t.text||e.search.location};return n.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",i,{focusFirstInput:!0}).then(e.selectLocation)}}function ESSearchPositionModalController(e,t,n,i,a){"ngInject";e.search={text:a.text||"",fallbackText:a.fallbackText||void 0,forceFallback:!!angular.isDefined(a.forceFallback)&&a.forceFallback,loading:!1,results:a.results||void 0},e.$on("modal.shown",function(){e.doSearch(!0)}),e.doSearch=function(a){var o=e.search.text&&e.search.text.trim();if(!o)return t.when();e.search.loading=!0;var r=a&&e.search.fallbackText&&e.search.fallbackText.trim();return r=r&&r!=o?r:void 0,(a&&e.search.forceFallback&&e.search.results?t.when(e.search.results):i.point.searchByAddress(o)).then(function(e){return e&&e.length||!r?e:t.all([n("LOCATION.MODAL.ALTERNATIVE_RESULT_DIVIDER",{address:r}),i.point.searchByAddress(r)]).then(function(e){var t=e[0];return e=e[1],e&&e.length?[{name:t}].concat(e):e})}).then(function(t){e.search.loading=!1,e.search.results=t||[],e.license=t&&t.length&&t[0].license}).catch(function(t){throw e.search.loading=!1,e.search.results=[],e.license=void 0,t})}}function ESExtensionController(e,t,n){"ngInject";e.extensionPoint=n.extensions.points.current.get(),e.enable=t.isEnable(),t.api.state.on.changed(e,function(t){e.enable=t,e.$broadcast("$$rebind::state")})}function ESMenuExtendController(e,t,n,i,a){"ngInject";angular.extend(this,n("ESExtensionCtrl",{$scope:e})),e.showRegistryLookupView=function(){t.go(i.screen.isSmall()?"app.wot_lookup.tab_registry":"app.registry_lookup_lg")},e.showNotificationsPopover=function(t){return i.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_notification.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,function(){e.scope.closePopover(),t()})}})},e.showMessagesPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/message/popover_message.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,function(){e.scope.closePopover(),t()})}}):a.auth({minData:!0}).then(function(){return i.loading.hide(),e.showMessagesPopover(t)})},e.showInvitationsPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_invitation.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,function(){e.scope.closePopover(),t()})}}):a.auth().then(function(){return i.loading.hide(),e.showInvitationsPopover(t)})}}function ESProfilePopoverExtendController(e,t,n,i,a){"ngInject";e.updateView=function(){e.enable=a.isLogin()&&i.isEnable()},e.showEditUserProfile=function(){e.closeProfilePopover(),n.go("app.edit_profile")},i.api.state.on.changed(e,e.updateView),a.api.data.on.login(e,function(n,a){return e.enable=i.isEnable(),a&&a.resolve()||t.when()}),a.api.data.on.logout(e,function(){e.enable=!1}),e.updateView()}function ESExtendSettingsController(e,t){"ngInject";e.extensionPoint=t.extensions.points.current.get()}function ESPluginSettingsController(e,t,n,i,a,o,r,s,l,c,u,d){"ngInject";e.hasWindowNotification=!!("Notification"in window),e.formData={},e.popupData={},e.loading=!0,e.enter=function(t,n){e.load()},e.$on("$ionicView.enter",e.enter),e.load=function(t){e.loading=!0;var n=e.formData.enable;e.formData=c.data.plugins&&c.data.plugins.es?angular.copy(c.data.plugins.es):{enable:!1,host:void 0,port:void 0},t&&n&&(e.formData.enable=n),e.isFallbackNode=e.formData.enable&&u.node.isFallback(),e.server=e.getServer(u),e.loading=!1},d.api.state.on.changed(e,function(t){e.load(!0)}),e.setPopupForm=function(t){e.popupForm=t},e.changeEsNode=function(t){t=t||{host:e.formData.host,port:e.formData.port&&80!=e.formData.port&&443!=e.formData.port?e.formData.port:void 0,useSsl:angular.isDefined(e.formData.useSsl)?e.formData.useSsl:443==e.formData.port},e.showNodePopup(t).then(function(t){if(t.host==e.formData.host&&t.port==e.formData.port&&t.useSsl==e.formData.useSsl)return void o.loading.hide();o.loading.show();var n=u.instance(t.host,t.port,t.useSsl);return n.isAlive().then(function(i){return i?(e.formData.host=n.host,e.formData.port=n.port,e.formData.useSsl=n.useSsl,u.copy(n)):(o.loading.hide(),o.alert.error("ERROR.INVALID_NODE_SUMMARY").then(function(){e.changeEsNode(t)}))}).then(function(){e.server=e.getServer(u),e.isFallbackNode=!1,o.loading.hide()})})},e.showNodePopup=function(t){return n(function(n,r){var s=[t.host];t.port&&80!=t.port&&s.push(t.port),e.popupData.newNode=s.join(":"),e.popupData.useSsl=angular.isDefined(t.useSsl)?t.useSsl:443==t.port,e.popupForm&&e.popupForm.$setPristine(),i(["ES_SETTINGS.POPUP_PEER.TITLE","ES_SETTINGS.POPUP_PEER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then(function(t){a.show({templateUrl:"templates/settings/popup_node.html",title:t["ES_SETTINGS.POPUP_PEER.TITLE"],subTitle:t["ES_SETTINGS.POPUP_PEER.HELP"],scope:e,buttons:[{text:t["COMMON.BTN_CANCEL"]},{text:t["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return e.popupData.newNode;t.preventDefault()}}]}).then(function(t){if(!t)return void o.loading.hide();var i=t.split(":"),a=e.popupData.useSsl||443==i[1];n({host:i[0],port:i[1]||(a?443:80),useSsl:a})})})})},e.showNodeList=function(){var n=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),r.showNetworkLookup({enableFilter:!0,endpoint:u.constants.ES_USER_API_ENDPOINT,ssl:!!n||void 0}).then(function(e){if(e){var t=e.getEndpoints().reduce(function(e,t){var n=u.node.parseEndPoint(t);return n?e.concat(n):e},[]);if(t.length){var n=t[0];return{host:n.dns?n.dns:e.hasValid4(n)?n.ipv4:n.ipv6,port:n.port||80,useSsl:n.useSsl||443==n.port}}}}).then(function(t){e.changeEsNode(t)})},e.onFormChanged=function(){if(!e.loading){if(e.hasWindowNotification&&e.formData.notifications.emitHtml5!==("granted"===window.Notification.permission))return void window.Notification.requestPermission(function(t){e.formData.notifications.emitHtml5="granted"===t,e.onFormChanged()});e.loading=!0,c.data.plugins=c.data.plugins||{},c.data.plugins.es=c.data.plugins.es?angular.merge(c.data.plugins.es,e.formData):e.formData,delete c.data.plugins.es.newNode,c.store().then(function(){e.loading=!1})}},e.$watch("formData",e.onFormChanged,!0),e.getServer=function(t){if(t=t||e.formData,t.host)return s.getServer(t.host,t.port)}}function ESWalletController(e,t,n,i,a){"ngInject";angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.showProfileHelp=!1,e.showNewPageModal=function(){var e=n.params&&n.params.id?a.children.get(n.params.id):a;return e?i.showNewPage({wallet:e}):void UIUtils.alert.error("ERROR.UNKNOWN_WALLET_ID")}}function ESWotLookupExtendController(e,t,n){"ngInject";angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.openRegistryLookup=function(){var t=e.search.text&&e.search.text.trim()||"",i=e.search.location&&e.search.location.trim()||"",a={q:t.length?t:void 0,location:i.length?i:void 0};n.go("app.wot_lookup.tab_registry",a)}}function ESWotIdentityViewController(e,t,n,i,a,o,r,s,l,c){"ngInject";angular.extend(this,i("ESExtensionCtrl",{$scope:e})),e.canCertify=!1,e.showNewMessageModal=function(t){return r.login({minData:!0,method:"default"}).then(function(){return a.loading.hide(),!(!t&&!e.formData.profile)||a.alert.confirm("MESSAGE.CONFIRM.USER_HAS_NO_PROFILE").then(function(e){if(e)return!0})}).then(function(t){return!!t&&s.showMessageCompose({destPub:e.formData.pubkey,destUid:e.formData.name||e.formData.uid}).then(function(e){e&&a.toast.show("MESSAGE.INFO.MESSAGE_SENT")})})},e.showSuggestCertificationModal=function(){e.hideCertificationActionsPopover();var t;return r.auth({minData:!0}).then(function(i){if(a.loading.hide(),i)return i.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"WOT.SUGGEST_CERTIFICATIONS_MODAL.TITLE",help:"WOT.SUGGEST_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then(function(o){if(o&&o.length)return t=o,n.all([l.box.getKeypair(i.keypair),a.alert.confirm("WOT.CONFIRM.SUGGEST_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then(function(a){if(a){var o=a[0];if(a[1]){var r=moment().utc().unix();return n.all(t.reduce(function(t,n){return t.concat(c.send({issuer:i.pubkey,recipient:e.formData.pubkey,time:r,content:[n.uid,n.pubkey].join("-")},o,"certification"))},[]))}}}).then(function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")}).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")})},e.showAskCertificationModal=function(){e.hideCertificationActionsPopover();var t;return(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then(function(e){return e.auth({minData:!0})}).then(function(e){if(a.loading.hide(),e)return e.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!1,title:"WOT.ASK_CERTIFICATIONS_MODAL.TITLE",help:"WOT.ASK_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then(function(i){if(i&&i.length)return t=i,n.all([l.box.getKeypair(e.keypair),a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then(function(i){var o=i&&i[0],r=i&&i[1];if(o&&r){var s=moment().utc().unix();return n.all(t.reduce(function(t,n){return t.concat(c.send({issuer:e.pubkey,recipient:n.pubkey,time:s,content:[e.uid,e.pubkey].join("-")},o,"certification"))},[])).then(function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")}).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}})}):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")})},e.askCertification=function(){return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then(function(e){return e.auth({minData:!0})}).then(function(t){if(a.loading.hide(),t)return t.isMember?a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATION",void 0,{okText:"COMMON.BTN_SEND"}).then(function(n){if(n)return c.send({issuer:t.pubkey,recipient:e.formData.pubkey,content:[t.uid,t.pubkey].join("-")},{type:"certification",keypair:t.keypair}).then(function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")}).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")})},e.showCertificationActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/wot/popover_certification_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.certificationActionsPopover=t}})},e.hideCertificationActionsPopover=function(){e.certificationActionsPopover&&(e.certificationActionsPopover.hide(),e.certificationActionsPopover=null)},"buttons-top-fab"===e.extensionPoint&&e.$on("$csExtension.motion",function(t){!!e.formData.profile&&e.showFab("fab-compose-"+e.formData.uid)})}function ESRegistryLookupController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g){"ngInject";angular.extend(this,a("ESLookupPositionCtrl",{$scope:e}));e.search={text:"",results:[],loading:!0,lastRecords:!0,type:null,category:null,location:null,advanced:null,issuer:null,geoDistance:isNaN(p.data.plugins.es.geoDistance)?20:p.data.plugins.es.geoDistance},e.searchTextId="registrySearchText",e.enableFilter=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:c.screen.isSmall(),e.options=angular.merge(e.options||{},{location:{show:!0,help:"REGISTRY.SEARCH.LOCATION_HELP"}}),e.enter=function(n,i){if(!e.entered||!e.search.results||0===e.search.results.length){if(!e.geoUnit)return r("LOCATION.DISTANCE_UNIT").then(function(t){return e.geoUnit=t,e.enter(n,i)});var a=function(){e.searchTextId&&t(e.searchTextId),e.entered=!0,e.doSearch()};if(i.stateParams&&i.stateParams.q&&"string"==typeof i.stateParams.q&&(e.search.text=i.stateParams.q),i.stateParams&&i.stateParams.hash&&(e.search.text="#"+i.stateParams.hash),i.stateParams&&i.stateParams.location)e.search.location=i.stateParams.location,i.stateParams.lat&&i.stateParams.lon&&(e.search.geoPoint={lat:parseFloat(i.stateParams.lat),lon:parseFloat(i.stateParams.lon)}),i.stateParams.d&&(e.search.geoDistance=i.stateParams.d);else{var o=p.data.plugins.es.registry&&p.data.plugins.es.registry.defaultSearch;if(o&&(o.location?angular.merge(e.search,p.data.plugins.es.registry.defaultSearch):o=void 0),!o&&m.isLogin()&&m.data.profile){if(!m.isDataLoaded())return c.loading.show(),m.loadData().then(function(){return c.loading.hide(),e.enter(n,i)});e.search.geoPoint=m.data.profile.geoPoint,e.search.location=m.data.profile.city||(m.data.profile.geoPoint?r.instant("LOCATION.PROFILE_POSITION"):void 0)}}i.stateParams&&(i.stateParams.type||i.stateParams.last)?i.stateParams.last||"last"==i.stateParams.type?(e.search.lastRecords=!0,e.search.type=void 0):e.search.type=i.stateParams.type:e.search.lastRecords=!1,i.stateParams&&i.stateParams.issuer&&(e.search.issuer=i.stateParams.issuer),i.stateParams&&i.stateParams.category?b.category.get({id:i.stateParams.category}).then(function(t){e.search.category=t,a()}).catch(c.onError("REGISTRY.ERROR.LOAD_CATEGORY_FAILED")):a()}e.showFab("fab-add-registry-record")},e.$on("$ionicView.enter",function(t,n){return e.enter(t,n)}),e.leave=function(){var t=!1;p.data.plugins.es.registry=p.data.plugins.es.registry||{},p.data.plugins.es.registry.defaultSearch=p.data.plugins.es.registry.defaultSearch||{};var i=e.search.location&&e.search.location.trim(),a=p.data.plugins.es.registry.defaultSearch.location;a&&a===i||(p.data.plugins.es.registry.defaultSearch={location:i,geoPoint:i&&e.search.geoPoint?angular.copy(e.search.geoPoint):void 0},t=!0);var o=p.data.plugins.es.geoDistance;o&&o===e.search.geoDistance||(p.data.plugins.es.geoDistance=e.search.geoDistance,t=!0),t&&n(function(){p.store()})},e.$on("$ionicView.leave",function(){return e.leave()}),e.onGeoPointChanged=function(){e.search.loading||e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon&&!e.search.geoPoint.exact&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.geoPoint",e.onGeoPointChanged,!0),e.resolveLocationPosition=function(){if(!e.search.loadingPosition)return e.search.loadingPosition=!0,e.searchPosition(e.search.location).then(function(t){if(!t)throw e.search.loading=!1,e.search.results=void 0,e.search.total=0,e.search.loadingPosition=!1,e.search.geoPoint=void 0,"CANCELLED";e.search.geoPoint=t,t.shortName&&!t.exact&&(e.search.location=t.shortName),e.search.loadingPosition=!1})},e.doGetLastRecords=function(t){return e.hidePopovers(),e.search.text=void 0,e.doSearch(t)},e.doSearchText=function(){e.doSearch(),l.keyboard.close()},e.doSearch=function(t){if(e.search.loading=!t,
-e.search.location&&e.search.location.length>=3&&!e.search.geoPoint)return e.resolveLocationPosition().then(function(){return e.doSearch(t)});var n=e.search.text&&e.search.text.trim()||"";e.search.lastRecords=!n||!n.length;var i=[],a=[];if(n&&n.length)if(d.regexp.PUBKEY.test(n))a.push({term:{pubkey:n}});else{n=n.toLowerCase();var o=n?g.util.parseTags(n):void 0,r=["title","description","city","address"];i.push({multi_match:{query:n,fields:r,type:"phrase_prefix"}}),i.push({match:{title:{query:n,boost:2}}}),i.push({prefix:{title:n}}),i.push({match:{description:n}}),i.push({nested:{path:"category",query:{bool:{filter:{match:{"category.name":n}}}}}}),o&&o.length&&a.push({terms:{tags:o}})}else e.search.issuer&&a.push({term:{issuer:e.search.issuer}});e.search.type&&a.push({term:{type:e.search.type}}),e.search.category&&a.push({nested:{path:"category",query:{bool:{filter:{term:{"category.id":e.search.category.id}}}}}});var s=e.search.location&&e.search.location.trim().toLowerCase();if(e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon)if(s&&s.length){var l=s.split(",")[0];a.push({or:[{and:[{not:{exists:{field:"geoPoint"}}},{match_phrase:{city:l}}]},{geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}}]})}else a.push({geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}});var c={highlight:{fields:{title:{},description:{},tags:{}}},from:t};return i.length>0&&(c.query=c.query||{bool:{}},c.query.bool.should=i,c.query.bool.minimum_should_match=1),a.length>0&&(c.query=c.query||{bool:{}},c.query.bool.filter=a),e.search.lastRecords&&(c.sort={creationTime:"desc"}),e.updateLocationHref(),e.doRequest(c)},e.doRequest=function(t){t=t||{},t.from=t.from||0,t.size=t.size||10,t.size<10&&(t.size=10),e.search.loading=0===t.from;var n=e.requestId&&e.requestId+1||1;return e.requestId=n,b.record.search(t).then(function(a){if(e.requestId==n){if(!a||!a.hits||!a.hits.length)return e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.loading=!1,void(e.search.hasMore=!1);var o=i("formatSlug");_.forEach(a.hits,function(e){e.urlTitle=o(e.title)}),t.from?e.search.results=e.search.results.concat(a.hits):(e.search.results=a.hits,e.search.total=a.total),e.search.hasMore=e.search.results.length<a.total,e.search.loading=!1,e.motion.show({selector:".list .item",ink:!0})}}).catch(function(n){e.search.loading=!1,e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.hasMore=!1,c.onError("REGISTRY.ERROR.LOOKUP_RECORDS_FAILED")(n)})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,(e.search.lastRecords?e.doGetLastRecords:e.doSearch)(t).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}).catch(function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.removeType=function(){e.search.type=null,e.doSearch(),e.updateLocationHref()},e.removeCategory=function(){e.search.category=null,e.category=null,e.doSearch(),e.updateLocationHref()},e.removeLocation=function(){e.search.location=null,e.search.geoPoint=null,e.doSearch(),e.updateLocationHref()},e.updateLocationHref=function(t){t||n(function(){var t=e.search.text&&e.search.text.trim(),n=e.search.location&&e.search.location.trim(),i={location:n&&n.length?n:void 0,category:e.search.category?e.search.category.id:void 0,last:!!e.search.lastRecords||void 0,type:e.search.type?e.search.type:void 0,lat:e.search.geoPoint&&e.search.geoPoint.lat||void 0,lon:e.search.geoPoint&&e.search.geoPoint.lon||void 0,d:e.search.geoPoint&&e.search.geoDistance||void 0};t&&t.match(/^#\w+$/)?i.hash=t.substr(1):t&&t.length&&(i.q=t),o.search(i).replace()})},e.onToggleAdvanced=function(){e.search.entered&&!e.search.lastRecords&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.advanced",e.onToggleAdvanced,!0),e.toggleAdvanced=function(){e.search.advanced=!e.search.advanced,n(e.hidePopovers,200)},e.showRecordTypeModal=function(t){e.hidePopovers(),n(function(){t.isDefaultPrevented()||u.show("plugins/es/templates/registry/modal_record_type.html").then(function(t){t&&(e.search.type=t,e.doSearch(),e.updateLocationHref())})},350)},e.showCategoryModal=function(t){n(function(){t.isDefaultPrevented()||b.category.all().then(function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})}).then(function(t){t&&t.parent&&(e.search.category=t,e.doSearch(),e.updateLocationHref())})},350)},e.showNewPageModal=function(){return e.hidePopovers(),E.showNewPage()},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.filtersPopover=null)},e.showFiltersPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_filters.html",scope:e,autoremove:!0,afterShow:function(t){e.filtersPopover=t}})},e.hideFiltersPopover=function(){e.filtersPopover&&(e.filtersPopover.hide(),e.filtersPopover=null)},e.hidePopovers=function(){e.hideActionsPopover(),e.hideFiltersPopover()}}function ESWalletPagesController(e,t,n,i,a,o){"ngInject";angular.extend(this,t("ESRegistryLookupCtrl",{$scope:e})),e.searchTextId=void 0;var r;e.enter=function(t,a){return e.entered?a.stateParams&&a.stateParams.refresh?n(e.doSearch,2e3):void 0:(r=a.stateParams&&a.stateParams.id?o.children.get(a.stateParams.id):o,r?r.login({minData:!0}).then(function(t){i.loading.hide(),e.search.issuer=t.pubkey,e.search.advanced=!0,n(e.doSearch,100),e.showFab("fab-wallet-add-registry-record")}):(i.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome()))},e.doUpdate=function(){if(r&&r.isLogin())return e.search.issuer=o.data.pubkey,e.search.advanced=!0,e.doSearch()},e.showNewPageModal=function(){return e.hidePopovers(),a.showNewPage({wallet:r})}}function ESRegistryRecordViewController(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";e.formData={},e.id=null,e.category={},e.pictures=[],e.canEdit=!1,e.showTransfer=!1,e.loading=!0,e.motion=p.motion.fadeSlideIn,e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!p.screen.isSmall()||t.enableBack}),e.$on("$ionicView.enter",function(t,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),e.$broadcast("$recordView.enter",i)):n.go("app.wot_lookup.tab_registry")}),e.$on("$ionicView.beforeLeave",function(t,n){e.$broadcast("$recordView.beforeLeave",n)}),e.load=function(t,o){return t=t||e.id,e.loading=!0,i.all([d.record.load(t).then(function(t){e.id=t.id,e.formData=t.record,e.canEdit=u.isUserPubkey(e.formData.issuer)||u.children.hasPubkey(e.formData.issuer),e.showTransfer=!e.canEdit&&e.formData.pubkey,e.issuer=t.issuer,e.avatar=e.formData.avatar,e.avatarStyle=e.formData.avatar&&{"background-image":'url("'+e.avatar.src+'")'},p.loading.hide(),e.loading=!1,e.motion.show({selector:".list > .item, .list > ng-if > .item"})}).catch(function(a){e.secondTry?(e.loading=!1,a&&404===a.ucode?(p.toast.show("REGISTRY.ERROR.RECORD_NOT_EXISTS"),n.go("app.wot_lookup.tab_registry")):p.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(a)):(e.secondTry=!0,i(function(){e.load(t)},100))}),d.record.picture.all({id:t}).then(function(t){e.pictures=t._source.pictures&&t._source.pictures.reduce(function(e,t){return e.concat(m.image.fromAttachment(t.file))},[]),e.pictures.length>0&&e.motion.show({selector:".lazy-load .item.card-gallery",startVelocity:3e3})}).catch(function(){e.pictures=[]}),a(function(){return e.$broadcast("$recordView.load",t,d.record.comment)})]).then(function(){e.motion.show({selector:".lazy-load .item",startVelocity:3e3}),o&&a(function(){l(o)},1e3)})},e.edit=function(){var t=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);if(t)return p.loading.show(),n.go("app.registry_edit_record",{id:e.id,wallet:t.id})},e.delete=function(){e.hideActionsPopover();var t=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);if(t){var i;s(["REGISTRY.VIEW.REMOVE_CONFIRMATION","REGISTRY.INFO.RECORD_REMOVED"]).then(function(e){return i=e,p.alert.confirm(e["REGISTRY.VIEW.REMOVE_CONFIRMATION"])}).then(function(a){a&&d.record.remove(e.id,{wallet:t}).then(function(){t.data.pages&&t.data.pages.count&&t.data.pages.count--,r.nextViewOptions({historyRoot:!0}),t.isDefault()?n.go("app.wallet_pages",{refresh:!0}):n.go("app.wallet_pages_by_id",{refresh:!0,id:t.id}),p.toast.show(i["REGISTRY.INFO.RECORD_REMOVED"])}).catch(p.onError("REGISTRY.ERROR.REMOVE_RECORD_FAILED"))})}},e.showActionsPopover=function(t){p.popover.show(t,{templateUrl:"plugins/es/templates/registry/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(i){e.hideActionsPopover();var a=e.formData.title,o=(c.shareBaseUrl||t.rootPath)+n.href("app.view_page",{title:a,id:e.id});p.screen.isSmall()&&(i=angular.element(document.querySelector("#registry-share-anchor-"+e.id))||i),p.popover.share(i,{bindings:{url:o,titleKey:"REGISTRY.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},time:e.formData.time,postMessage:a}})}}function ESRegistryRecordEditController(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";angular.extend(this,s("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.id=null,e.avatar=null,e.pictures=[],e.setForm=function(t){e.form=t};var E;e.$on("$ionicView.enter",function(t,n){if(e.loading)return E=n.stateParams&&n.stateParams.wallet&&"default"!=n.stateParams.wallet?d.children.get(n.stateParams.wallet):d,E?E.login({minData:!0}).then(function(t){e.walletData=t,n.stateParams&&n.stateParams.id?e.load(n.stateParams.id):n.stateParams&&n.stateParams.type&&e.updateView({record:{type:n.stateParams.type}}),o("registry-record-title")}):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())}),e.$on("$stateChangeStart",function(t,i,o,r){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then(function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then(function(t){return t&&(e.dirty=!1),t})):(e.dirty=!1,!0)}).then(function(e){e&&(a.nextViewOptions({historyRoot:!0}),n.go(i.name,o))}).catch(function(e){})}),e.load=function(t){e.loading=!0,m.record.load(t,{raw:!0}).then(function(t){t&&t.record?e.updateView(t):e.updateView({record:{}})}).catch(function(t){c.loading.hide(10),e.loading=!1,c.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(t)})},e.updateView=function(n){e.formData=n.record||{},e.id=n.id,e.avatar=e.formData.avatar,e.avatar?(e.avatarStyle=e.avatar&&{"background-image":'url("'+e.avatar.src+'")'},e.avatarClass={}):(e.avatarStyle=void 0,e.avatarClass={},e.avatarClass["cion-page-"+e.formData.type]=!e.avatar),e.pictures=n.record&&n.record.pictures||[],delete n.record.pictures,e.motion.show({selector:".animate-ripple .item, .card-gallery",startVelocity:3e3}),c.loading.hide(),t(function(){e.loading=!1},1e3)},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.needCategory=function(){return e.formData.type&&("company"==e.formData.type||"shop"==e.formData.type)},e.save=function(o,s){if(e.form.$submitted=!0,e.saving||!e.form.$valid||("shop"===e.formData.type||"company"===e.formData.type)&&(!e.formData.category||!e.formData.category.id))return i.reject();if(!s)return console.debug("[ES] [page] Waiting debounce end, before saving..."),t(function(){return e.save(o,!0)},650);e.saving=!0,console.debug("[ES] [page] Saving record...");var l=function(){if(!o)return c.loading.hide(),r("REGISTRY.INFO.RECORD_SAVED").then(function(e){c.toast.show(e)})},u=i.when();return o||(u=c.loading.show()),u.then(function(){var t=e.formData;return e.needCategory()||delete t.category,t.time=moment().utc().unix(),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,function(e){return e.url})),t.picturesCount=e.pictures.length,t.picturesCount>0?t.pictures=e.pictures.reduce(function(e,t){return e.concat({file:p.image.toAttachment(t)})},[]):t.pictures=[],e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then(function(e){return t.avatar=p.image.toAttachment({src:e}),t}):(t.avatar={_content:"",_content_type:""},t)}).then(function(t){return e.id?m.record.update(t,{id:e.id,wallet:E}):m.record.add(t,{wallet:E})}).then(function(t){return console.info("[ES] [page] Record successfully saved."),!e.id&&E.data.pages&&E.data.pages.count&&d.data.pages.count++,e.id=e.id||t,e.saving=!1,e.dirty=!1,l(),a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),n.go("app.view_page",{id:e.id,refresh:!0})}).catch(function(t){e.saving=!1,c.onError("REGISTRY.ERROR.SAVE_RECORD_FAILED")(t)})},e.openPicturePopup=function(){l.camera.getPicture().then(function(t){t&&e.pictures.push({src:"data:image/png;base64,"+t})}).catch(c.onError("ERROR.TAKE_PICTURE_FAILED"))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then(function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1}).catch(function(t){console.error(t),e.rotating=!1})},e.fileChanged=function(t){return c.loading.show(),i(function(n,i){var a=t.target.files[0];c.image.resizeFile(a).then(function(t){e.pictures.push({src:t}),c.loading.hide(),n()})})},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){a.goBack()},e.showAvatarModal=function(){return l.camera.enable?l.camera.getPicture().then(function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})}).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):u.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then(function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})})},e.showRecordTypeModal=function(){u.show("plugins/es/templates/registry/modal_record_type.html").then(function(t){t&&(e.formData.type=t,e.avatar||(e.avatarClass["cion-page-"+t]=!0),e.doSearch(),e.updateLocationHref())})},e.showCategoryModal=function(t){m.category.all().then(function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})}).then(function(t){t&&t.parent&&(e.formData.category=t,e.doSearch(),e.updateLocationHref())})}}function ESViewEditProfileController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){"ngInject";angular.extend(this,r("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.avatar=null,e.existing=!1,e.socialData={url:null},e.socialReorder=!0;var b;e.enter=function(t,n){return(b=n.stateParams&&n.stateParams.id?u.children.get(n.stateParams.id):u)?(e.walletId=b.id,b.auth({minData:!0}).then(e.load).catch(function(t){if("CANCELLED"==t)return c.loading.hide(10),void e.cancel();c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)})):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.$on("$ionicView.enter",e.enter),e.$on("$stateChangeStart",function(t,n,a,o){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then(function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then(function(t){return t&&(e.dirty=!1),t})):(e.dirty=!1,!0)}).then(function(e){e&&(s.nextViewOptions({historyRoot:!0}),i.go(n.name,a))}).catch(function(e){})}),e.load=function(t){return e.loading=!0,p.get(t.pubkey,{raw:!0}).then(function(i){return i?(e.avatar=d.image.fromAttachment(i.source.avatar),e.existing=!0,e.updateView(t,i.source)):(e.avatar=void 0,e.existing=!1,e.updateView(t,{})),c.loading.hide(),n(function(){e.loading=!1},1e3)}).then(function(){a("profile-name")}).catch(c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED"))},e.setForm=function(t){e.form=t},e.updateView=function(t,n){e.walletData=t,e.formData=n,n.avatar&&(e.avatarStyle={"background-image":'url("'+e.avatar.src+'")'}),e.motion.show()},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.save=function(i,a){if(e.form.$invalid||!e.walletData||e.saving&&!a)return t.reject();if(!a)return e.saving=!0,n(function(){return e.save(i,!0)},650);console.debug("[ES] [profile] Saving user profile..."),i||c.loading.show();var r=function(t){return function(n){e.saving=!1,c.onError(t)(n)}},s=function(t){t&&(e.walletData.name=t.title,e.avatar?e.walletData.avatar=e.avatar:delete e.walletData.avatar,e.walletData.profile=angular.copy(t),e.walletData.profile.description=d.util.parseAsHtml(t.description))},l=function(){if(!i)return c.loading.hide(),o("PROFILE.INFO.PROFILE_SAVED").then(function(e){c.toast.show(e)})},u=function(t){return t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,function(e){return e.url})),t.position&&(t.position=null),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,e.existing?p.update(t,{id:e.walletData.pubkey,wallet:b}).then(function(){return console.info("[ES] Profile successfully updated."),e.saving=!1,e.dirty=!1,s(t),l(),!0}).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED")):p.add(t,{wallet:b}).then(function(){return console.info("[ES] [profile] Successfully created."),e.existing=!0,e.saving=!1,e.dirty=!1,s(t),l(),!0}).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED"))};return e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then(function(t){return e.formData.avatar=d.image.toAttachment({src:t}),u(e.formData)}):(delete e.formData.avatar,u(e.formData))},e.saveAndClose=function(){return e.save().then(function(t){t&&e.close()})},e.submitAndSaveAndClose=function(){e.form.$submitted=!0,e.saveAndClose()},e.cancel=function(){return e.dirty=!1,b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet")):i.go("app.view_wallet_by_id",{id:b.id})},e.close=function(){return b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet",{refresh:!0})):i.go("app.view_wallet_by_id",{refresh:!0,id:b.id})},e.showAvatarModal=function(){return E.camera.enable?E.camera.getPicture().then(function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)}).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):m.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then(function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)})},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then(function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1}).catch(function(t){console.error(t),e.rotating=!1})},e.removeProfile=function(){return e.hideActionsPopover(),e.existing&&b.auth({minData:!0}).then(function(t){c.loading.hide(),c.alert.confirm("PROFILE.CONFIRM.DELETE",void 0,{okText:"COMMON.BTN_DELETE"}).then(function(i){if(i)return console.debug("[ES] [profile] Deleting user profile..."),c.loading.show(),p.remove(t.pubkey,{wallet:b}).then(function(){return b.isDefault()&&(t.name=null),t.profile=null,t.avatar=null,console.debug("[ES] [profile] Successfully deleted"),e.dirty=!1,e.close()}).then(function(){return n(function(){c.toast.show("PROFILE.INFO.PROFILE_REMOVED")},750)}).catch(c.onError("PROFILE.ERROR.REMOVE_PROFILE_FAILED"))})})},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/user/edit_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function ESMessageAbstractListController(e,t,n,i,a,o,r,s,l,c){"ngInject";var u,d=!1;e.search={loading:!0,results:[],hasMore:!1,loadingMore:!1,limit:40,type:"last",text:null,options:{}},e.fabButtonNewMessageId=void 0,e.enter=function(t,n){if(e.search.loading){if(!(u=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return l.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id,u.auth({minData:!0}).then(function(){e.entered||(e.entered=!0,e.type=e.type||n.stateParams&&n.stateParams.type||"inbox",e.load()),e.fabButtonNewMessageId&&e.showFab(e.fabButtonNewMessageId)}).catch(function(t){"CANCELLED"===t&&(i.nextViewOptions({historyRoot:!0}),e.showHome())})}else e.updateView()},e.$on("$ionicView.enter",e.enter),e.load=function(t,n,i){var a=angular.copy(e.search.options);return a.from=a.from||t||0,a.size=a.size||n||40,a.type=e.type,a.summary=!1,a.filter="text"==e.search.type&&e.search.text&&e.search.text.trim().length>0?e.search.text:void 0,a.wallet=u,e.search.loading=!i,c.load(a).then(function(t){a.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],l.loading.hide(),e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()}).catch(function(t){e.search.loading=!1,a.from||(e.search.results=[]),e.search.hasMore=!1,l.onError("MESSAGE.ERROR.LOAD_MESSAGES_FAILED")(t)})},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-messages .list .item"}),e.$broadcast("$$rebind::rebind")},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit,!0).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.markAllAsRead=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.MARK_ALL_AS_READ").then(function(t){t&&c.markAllAsRead().then(function(){_.forEach(e.search.results,function(e){e.read=!0})}).catch(l.onError("MESSAGE.ERROR.MARK_ALL_AS_READ_FAILED"))})},e.delete=function(t){var n=e.search.results[t];n&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE").then(function(i){i&&c.remove(n.id,e.type,{walletId:e.walletId}).then(function(){e.search.results.splice(t,1),e.updateView(),l.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")}).catch(l.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))})},e.deleteAll=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE_ALL").then(function(t){t&&c.removeAll(e.type,{walletId:e.walletId}).then(function(){e.search.results.splice(0,e.search.results.length),e.updateView(),l.toast.show("MESSAGE.INFO.All_MESSAGE_REMOVED")}).catch(l.onError("MESSAGE.ERROR.REMOVE_All_MESSAGES_FAILED"))})},e.doSearchLast=function(){return e.search.type="last",e.search.loadingMore=!1,e.search.limit=40,e.load()},e.doSearch=function(){if(e.search.text&&!(e.search.text.length<3))return e.search.type="text",e.search.loadingMore=!1,e.search.results=[],e.search.limit=40,console.debug("[message] [{0}] Searching for: {1}".format(e.type,e.search.text)),e.load()},e.refresh=function(t){return d=!0,e.load(void 0,void 0,t).then(function(){d=!1}).catch(function(){d=!1})},e.select=function(n,i){if(!(i.isDefaultPrevented()||e.search.loading||d))return o(function(){if(!d&&!i.isDefaultPrevented())return i.preventDefault(),"default"===e.walletId?t.go("app.user_view_message",{type:e.type,messageId:n.id}):t.go("app.user_view_message_by_id",{type:e.type,messageId:n.id,id:e.walletId})},200)},e.showNewMessageModal=function(t){return u.login({minData:!0}).then(function(){return l.loading.hide(),t=t||{},t.wallet=e.walletId,s.showMessageCompose(t).then(function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")})})},e.showReplyModal=function(t){var i=e.search.results[t];i&&n("MESSAGE.REPLY_TITLE_PREFIX").then(function(t){var n=i.content?i.content.replace(/^/g," > "):null;return n=n?n.replace(/\n/g,"\n > "):null,n=n?n+"\n":null,s.showMessageCompose({destPub:i.issuer,destUid:i.name||i.uid,title:t+i.title,content:n,isReply:!0,wallet:e.walletId})}).then(function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")})},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/es/templates/message/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onMessageDelete=function(t){var n=_.findIndex(e.search.results,function(e){return e.id==t});n&&e.search.results.splice(n,1),e.updateView()},c.api.data.on.delete(e,e.onMessageDelete),e.onNewOutboxMessage=function(t){if("outbox"===e.type)return e.search.loading=!0,o(function(){return c.get(t,e.type,{summary:!0,wallet:u})},500).then(function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()}).catch(function(){e.loading=!1})},c.api.data.on.sent(e,e.onNewOutboxMessage),e.onNewInboxMessage=function(t){if("inbox"===e.type&&e.entered&&u.isUserPubkey(t.issuer))return e.search.loading=!0,c.get(t.id,e.type,{summary:!0,wallet:u}).then(function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()}).catch(function(){e.search.loading=!1})},c.api.data.on.new(e,e.onNewInboxMessage),e.onUnauth=function(){e.search.results=void 0,e.search.loading=!1,e.entered=!1},r.api.data.on.unauth(e,e.onUnauth)}function ESMessageInboxListController(e,t){"ngInject";angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="inbox",e.fabButtonNewMessageId="fab-add-message-record-inbox"}function ESMessageOutboxListController(e,t){"ngInject";angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="outbox",e.fabButtonNewMessageId="fab-add-message-record-outbox"}function ESMessageComposeController(e,t){"ngInject";angular.extend(this,t("ESMessageComposeModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,n){return n&&n.stateParams&&e.setParameters(n.stateParams),e.load().then(UIUtils.loading.hide)},e.$on("$ionicView.enter",e.enter),e.cancel=function(){e.sending=!1,e.showHome()},e.setForm=function(t){e.form=t},e.closeModal=function(){e.sending=!1,e.showHome()}}function ESMessageComposeModalController(e,t,n,i,a,o,r){"ngInject";var s;e.formData={title:null,content:null,destPub:null,walletId:null},e.destUid=null,e.destPub=null,e.isReply=!1,e.enableSelectWallet=!0,e.sending=!1,e.setParameters=function(t){t&&((t.pubkey||t.destPub)&&(e.formData.destPub=t.pubkey||t.destPub,t.uid||t.destUid?(e.destUid=t.uid||t.destUid,e.destPub=""):(e.destUid="",e.destPub=e.formData.destPub)),t.title&&(e.formData.title=t.title),t.content&&(e.formData.content=t.content),e.isReply=t.isReply||!1,t.wallet&&(e.formData.walletId=t.wallet))},e.setParameters(r),e.load=function(){return e.enableSelectWallet=i.children.count()>0,s=e.enableSelectWallet&&(e.formData.walletId?i.children.get(e.formData.walletId):i)||i,s.isDefault()?console.debug("[message] Using default wallet"):console.debug("[message] Using {"+s.id+"} wallet"),s.login({minData:!0,silent:!0}).then(function(t){e.walletData=t}).catch(function(t){"CANCELLED"===t&&e.cancel()})},e.$on("modal.shown",e.load),e.doSend=function(t){if(e.form.$submitted=!0,e.form.$valid){if(!(t||e.formData.content&&e.formData.content.trim().length))return n.alert.confirm("MESSAGE.COMPOSE.CONTENT_CONFIRMATION").then(function(t){t&&e.doSend(!0)});e.sending=!0,n.loading.show();var i={issuer:s.data.pubkey,recipient:e.formData.destPub,title:e.formData.title,content:e.formData.content,time:moment().utc().unix()};o.send(i,{wallet:s}).then(function(t){e.id=t,n.loading.hide(),e.closeModal(t)}).catch(function(t){if(e.sending=!1,"CANCELLED"===t)return void n.loading.hide();n.onError("MESSAGE.ERROR.SEND_MSG_FAILED")(t)})}},e.cancel=function(){e.closeModal()},e.showWotLookupModal=function(){t.showWotLookup().then(function(t){t&&(t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),e.destName=t.name||t.uid,e.formData.destPub=t.pubkey)})},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return t.showSelectWallet({showDefault:!0,showBalance:!1}).then(function(t){!t||s&&s.id===t.id||(s=t,e.walletData=s.data,console.debug("[message] Using {"+s.id+"} wallet"))})}}function ESMessageViewController(e,t,n,i,a,o,r,s,l,c){"ngInject";e.formData={},e.id=null,e.loading=!0;var u;e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack}),e.enter=function(t,i){if(e.loading){if(!(u=i.stateParams&&i.stateParams.id?c.children.get(i.stateParams.id):c))return r.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id;var a=i.stateParams&&i.stateParams.messageId;if(e.type=i.stateParams.type||"inbox",angular.isUndefined(a))return void e.goBack();u.auth({minData:!0}).then(function(){return e.load(a,e.type)}).then(function(t){r.loading.hide(),t&&(e.updateView(t),e.showFab("fab-view-message-reply"),t.read||n(function(){e.id===t.id&&l.markAsRead(t,{type:e.type,wallet:u}).then(function(){console.debug("[message] marked as read")}).catch(r.onError("MESSAGE.ERROR.MARK_AS_READ_FAILED"))},2e3))})}},e.$on("$ionicView.enter",e.enter),e.load=function(t,n){return n=n||"inbox",l.get(t,n,{wallet:u}).catch(r.onError("MESSAGE.ERROR.LOAD_MESSAGE_FAILED")).then(function(t){return t.valid?t:r.alert.error(e.isUserPubkey(t.recipient)?"MESSAGE.ERROR.NOT_AUTHENTICATED_MESSAGE":"MESSAGE.ERROR.USER_NOT_RECIPIENT","MESSAGE.ERROR.MESSAGE_NOT_READABLE").then(function(){e.goBack(!0)})})},e.updateView=function(t){e.loading=!1,e.id=t.id,e.formData=t,e.canDelete=!0,e.motion.show({selector:".view-message .list .item"})},e.delete=function(){e.actionsPopover&&e.actionsPopover.hide(),r.alert.confirm("MESSAGE.CONFIRM.REMOVE").then(function(t){if(t)return l.remove(e.id,e.type,{wallet:u}).then(function(){e.goBack(!0),r.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")}).catch(r.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))})},e.goBack=function(n){n&&a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),e.isDefaultWallet?e.type&&t.go("app.user_message.tab_"+e.type,{type:e.type}):e.type&&t.go("app.user_messages_by_id.tab_"+e.type,{type:e.type,id:e.walletId})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/message/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showReplyModal=function(){var t="inbox"===e.type?"issuer":"recipient";i("MESSAGE.REPLY_TITLE_PREFIX").then(function(n){var i=e.formData.content?e.formData.content.replace(/^/g," > "):null;return i=i?i.replace(/\n/g,"\n > "):null,i=i?i+"\n":null,s.showMessageCompose({destPub:e.formData[t],destUid:e.formData.name||e.formData.uid,title:n+e.formData.title,content:i,isReply:!0,walletId:u.id})}).then(function(e){e&&r.toast.show("MESSAGE.INFO.MESSAGE_SENT").then(function(){a.goBack()})})}}function PopoverMessageController(e,t,n,i,a,o,r,s){"ngInject";var l;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40},e.$on("popover.shown",function(){e.search.loading&&(l=e.walletId&&i.children.get(e.walletId)||i,l.isDefault()&&(l.api.data.on.logout(e,e.resetData),
-o.api.data.on.new(e,e.onNewMessageNotification)),e.load())}),e.load=function(n,i){var a={};return a.from=n||0,a.size=i||40,o.notifications.load(a).then(function(t){e.search.results=n?e.search.results.concat(t):t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()}).catch(function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("MESSAGE.ERROR.LOAD_NOTIFICATIONS_FAILED")(i)})},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".popover-notification .item"})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit=2*e.search.limit,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.onNewMessageNotification=function(t){e.search.loading||e.search.loadingMore||l.isUserPubkey(t.issuer)&&(e.search.results.splice(0,0,t),e.updateView())},e.select=function(t){t.read||(t.read=!0),"default"===e.walletId?n.go("app.user_view_message",{messageId:t.id}):n.go("app.user_view_message_by_id",{messageId:t.id,id:e.walletId}),e.closePopover(t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [messages] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showNewMessageModal=function(n){e.closePopover(),s(function(){n=n||{},n.walletId=l.id,r.showMessageCompose(n).then(function(e){e&&t.toast.show("MESSAGE.INFO.MESSAGE_SENT")})},500)},a.api.node.on.stop(e,e.resetData),a.api.node.on.start(e,e.load)}function NotificationsController(e,t,n,i,a,o,r,s){"ngInject";e.preventSelect=!1,e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40,options:{codes:{excludes:s.constants.EXCLUDED_CODES}}},e.listeners=[];var l;e.setWallet=function(e){l=e},e.$on("$ionicView.enter",function(t,n){if(e.search.loading){if(!(l=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return a.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.login({minData:!0}).then(function(){return e.load(),a.loading.hide(),e.addListeners(),i(function(){e.resetUnreadCount()},1e3)})}}),e.refresh=function(t){return e.load(void 0,void 0,t)},e.load=function(t,n,i){if(l=l||r,!l.data.pubkey)return void(e.search.loading=!0);e.search.preventSelect=!0;var o=angular.copy(e.search.options);return o.from=o.from||t||0,o.size=o.size||n||40,o.pubkey=l.data.pubkey,e.search.loading=!i,s.load(o).then(function(t){o.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.preventSelect=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()}).catch(function(t){e.search.loading=!1,o.from||(e.search.results=[]),e.search.preventSelect=!1,e.search.hasMore=!1,a.onError("COMMON.NOTIFICATIONS.LOAD_NOTIFICATIONS_FAILED")(t)})},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-notification .item"})},e.markAllAsRead=function(){if(e.hideActionsPopover(),!l.isAuth())return l.auth().then(function(){return a.loading.hide(),e.markAllAsRead()});e.search.results.length&&a.loading.show().then(function(){l.data.notifications.unreadCount=0;var t=e.search.results[0];return l.data.notifications.time=t?t.time:0,_.forEach(e.search.results,function(e){e.markAsRead&&"function"==typeof e.markAsRead&&e.markAsRead()}),a.loading.hide()})},e.resetUnreadCount=function(){if(e.search.loading||!l.data.notifications)return i(e.resetUnreadCount,2e3);if(l.data.notifications.unreadCount&&e.search.results&&e.search.results.length){l.data.notifications.unreadCount=0;var t=e.search.results[0],n=t.time?t.time:0;!n||l.data.notifications.time&&l.data.notifications.time==n||(l.data.notifications.time=n,l.storeData())}},e.select=function(t,a){e.search.loading||t.preventDefault()||e.search.preventSelect||(a.markAsRead&&"function"==typeof a.markAsRead&&i(a.markAsRead),a.state&&n.go(a.state,a.stateParams))},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.onNewNotification=function(t){if(!e.search.loading&&!e.search.loadingMore){var n=_.findIndex(e.search.results,function(e){return t.time>e.time});n<0&&(n=0),e.search.results.splice(n,0,t),e.updateView()}},e.resetData=function(){e.search.loading||(console.debug("[ES] [notifications] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!l)throw"Controller wallet not set !";e.listeners=[o.api.node.on.stop(e,e.resetData),o.api.node.on.start(e,e.load),l.api.data.on.logout(e,e.resetData)],l.isDefault()&&e.listeners.push(s.api.data.on.new(e,e.onNewNotification))},e.removeListeners=function(){_.forEach(e.listeners,function(e){e()}),e.listeners=[]}}function PopoverNotificationsController(e,t,n,i,a,o){"ngInject";angular.extend(this,n("NotificationsCtrl",{$scope:e})),e.motion=null,e.setWallet(o),e.$on("popover.shown",function(){e.search.loading&&(e.addListeners(),e.load())}),e.updateView=function(){e.search.results.length&&t(function(){a.ink({selector:".popover-notification .item.ink"})},100)},e.$on("popover.hidden",e.resetUnreadCount),e.select=function(t,n){!t.preventDefault()&&n&&(n.markAsRead&&"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&i.go(n.state,n.stateParams),e.closePopover(n))}}function ESBlockLookupController(e,t,n,i,a,o){"ngInject";angular.extend(this,t("BlockLookupCtrl",{$scope:e})),e.search.text=null,e.search.type="last",e.search.sort=void 0,e.search.asc=!0,e.searchTextId="blockchainSearchText",e.compactMode=!0,e.enableFilter=!0,e.doSearchText=function(){if(!(e.search.text&&e.search.text.trim().length||e.search.filters&&e.search.filters.length))return e.doSearchLast();e.search.type="text",e.doSearch(),i.search({q:e.search.query}).replace()},e.doSearchLast=function(){e.hideActionsPopover(),e.search.type="last",e.search.sort=void 0,e.doSearch(),i.search({q:void 0}).replace()},e.doSearch=function(t){if(!e.search.error){t=angular.isDefined(t)?t:0;var n,i={};if(e.search.loading=0===t,i.size=e.defaultSizeLimit,"last"==e.search.type)i.from=0===t?0:t+1,e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={number:"desc"},i.excludeCurrent=0===t,n=o.block.search(e.currency,i);else if("text"==e.search.type){var r=o.block.parseSearchText(e.search.text,e.search.filters);e.search.filters=r.filters;var s=e.search.filters.reduce(function(e,t){return e+" AND "+t.text},"");r.text.length&&(s+=" AND "+r.text),e.search.query=s.substr(5),e.search.text=r.text,i.from=t,e.search.sort?i.sort=e.search.sort+":"+(e.search.asc?"asc":"desc"):i.sort="number:desc",i.excludeCurrent=!0,n=o.block.searchText(e.currency,e.search.query,i)}var l=Date.now();return n.then(function(t){return e.doPrepareResult(t.hits).then(function(){return t})}).then(function(n){e.showPubkey="issuer"==e.search.sort,e.search.took=0===t?Date.now()-l:e.search.took;var i=0===t?n.total:e.search.total;e.doDisplayResult(n.hits,t,i),e.search.loading=!1}).catch(function(t){e.search.error=!0,e.search.loading=!1,a.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t).then(function(){e.search.error=!1})})}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/blockchain/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.itemRemove=function(t){e.search.filters.splice(t,1),e.doSearchText()},e.toggleShowQuery=function(){e.showQuery=!e.showQuery}}function ESGroupListController(e,t,n,i,a,o){"ngInject";e.search={loading:!0,results:null,type:"last",hasMore:!1,loadingMore:!1,limit:40},e.enableFilter=!t.screen.isSmall(),e.ionItemClass="item-border-large",e.$on("$ionicView.enter",function(){e.search.loading&&e.doSearch()}),e.doSearchText=function(){var t=e.search.text&&e.search.text.trim();return t&&t.length?(e.search.type="text",e.doSearch()):e.doSearchLast()},e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(n,i){var o={};return o.from=n||0,o.size=i||40,o.text="text"==e.search.type&&e.search.text&&e.search.text.trim(),e.search.loading=!0,a.record.search(o).then(function(t){n?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()}).catch(function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("GROUP.ERROR.SEARCH_GROUPS_FAILED")(i)})},e.updateView=function(){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".list.{0} .item".format(e.motion.ionListClass)})},e.select=function(e){e&&e.id&&n.go("app.view_group",{id:e.id})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.resetData=function(){e.search.loading||(console.debug("[ES] [group] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},i.api.data.on.logout(e,e.resetData),e.showNewRecordModal=function(){e.loadWallet({minData:!0}).then(function(i){t.loading.hide(),e.walletData=i,o.show("plugins/es/templates/group/modal_record_type.html").then(function(e){e&&n.go("app.add_group",{type:e})})})}}function ESGroupViewController(e,t,n,i,a,o,r,s,l){"ngInject";e.formData={},e.id=null,e.pictures=[],e.canEdit=!1,e.loading=!0,e.motion=o.motion.fadeSlideIn,e.$on("$ionicView.enter",function(n,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),o.loading.hide(),e.$broadcast("$recordView.enter",i)):t.go("app.groups")}),e.load=function(t){s.record.load(t,{fetchPictures:!0}).then(function(n){e.id=n.id,e.formData=n.record,e.issuer=n.issuer,e.canEdit=l.isUserPubkey(e.formData.issuer)||l.children.hasPubkey(e.formData.issuer),e.pictures=n.record.pictures||[],delete n.record.pictures,e.$broadcast("$recordView.load",t,s.record.comment),e.loading=!1,o.loading.hide(),e.updateView()}).catch(o.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show()},e.edit=function(){o.loading.show(),t.go("app.edit_group",{id:e.id})},e.delete=function(){e.hideActionsPopover();var n;a(["GROUP.VIEW.REMOVE_CONFIRMATION","GROUP.INFO.RECORD_REMOVED"]).then(function(e){return n=e,o.alert.confirm(e["GROUP.VIEW.REMOVE_CONFIRMATION"])}).then(function(a){a&&s.record.remove(e.id).then(function(){i.nextViewOptions({historyRoot:!0}),t.go("app.groups"),o.toast.show(n["GROUP.INFO.RECORD_REMOVED"])}).catch(o.onError("GROUP.ERROR.REMOVE_RECORD_FAILED"))})},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/group/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.title,a=(r.shareBaseUrl||$rootScope.rootPath)+t.href("app.view_group",{id:e.id});o.screen.isSmall()&&(n=angular.element(document.querySelector("#group-share-anchor-"+e.id))||n),o.popover.share(n,{bindings:{url:a,titleKey:"GROUP.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},time:e.formData.time,postMessage:i}})}}function ESGroupEditController(e,t,n,i,a,o,r,s,l,c){"ngInject";e.walletData={},e.formData={},e.id=null,e.pictures=[],e.loading=!0,e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",function(t,i){e.loadWallet({minData:!0}).then(function(t){e.walletData=t,i.stateParams&&i.stateParams.id?e.load(i.stateParams.id):(i.stateParams&&i.stateParams.type&&(e.formData.type=i.stateParams.type),e.loading=!1,n.loading.hide(),e.updateView()),l("group-record-title")})}),e.load=function(i){t.record.load(i,{fetchPictures:!0,html:!1}).then(function(t){e.formData=t.record,e.issuer=t.issuer,e.id=t.id,e.pictures=t.record.pictures||[],delete t.record.pictures,e.loading=!1,n.loading.hide(),e.updateView()}).catch(n.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show({selector:".list.{0} .item, .card-gallery".format(e.motion.ionListClass)})},e.save=function(){if(e.form.$submitted=!0,!e.saving&&e.form.$valid&&("managed"===e.formData.type||"open"===e.formData.type))return e.saving=!0,n.loading.show().then(function(){var t=e.formData;return t.time=moment().utc().unix(),t.picturesCount=e.pictures.length,t.picturesCount>0?(t.pictures=e.pictures.reduce(function(e,t){return e.concat({file:c.image.toAttachment(t)})},[]),n.image.resizeSrc(e.pictures[0].src,!0).then(function(e){return t.avatar=c.image.toAttachment({src:e}),t})):(t.avatar&&(t.avatar={_content:"",_content_type:""}),t.pictures=[],t)}).then(function(n){return e.id?t.record.update(n,{id:e.id}):(n.creationTime=moment().utc().unix(),t.record.add(n))}).then(function(t){return e.id=e.id||t,e.saving=!1,r.clearCache(r.currentView().stateId),r.nextViewOptions({historyRoot:!0}),i.go("app.view_group",{id:e.id,refresh:!0})}).catch(function(t){e.saving=!1,n.onError("GROUP.ERROR.SAVE_RECORD_FAILED")(t)})},e.openPicturePopup=function(){o.camera.getPicture().then(function(t){e.pictures.push({src:"data:image/png;base64,"+t})}).catch(n.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(t){return n.loading.show(),a(function(i,a){var o=t.target.files[0];n.image.resizeFile(o).then(function(t){e.pictures.push({src:t}),n.loading.hide(),i()})})},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){r.goBack()},e.showRecordTypeModal=function(){s.show("plugins/es/templates/group/modal_record_type.html").then(function(t){t&&(e.formData.type=t)})}}function InvitationsController(e,t,n,i,a,o,r,s,l,c,u){"ngInject";var d=u.constants.DEFAULT_LOAD_SIZE;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:d,options:{codes:{includes:c.constants.INVITATION_CODES}}};var p;e.setWallet=function(e){p=e},e.$on("$ionicView.enter",function(t,n){if(e.search.loading){if(!(p=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.loadWallet({wallet:p,minData:!0}).then(function(){e.addListeners(),s.isAlive()&&(e.load(),e.resetUnreadCount(),e.showFab("fab-new-invitation"))})}}),e.load=function(t,n){var i=angular.copy(e.search.options);return i.from=i.from||t||0,i.size=i.size||n||d,p=p||r,u.load(i,p.data.keypair).then(function(t){e.search.results=t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView(),o.loading.hide()}).catch(function(n){if("CANCELLED"==n)return e.cancel();e.search.loading=!1,t||(e.search.results=[]),e.search.hasMore=!1,o.onError("INVITATION.ERROR.LOAD_INVITATIONS_FAILED")(n)})},e.cancel=function(){},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".view-invitation .item"})},e.$watchCollection("search.results",e.updateView),e.showMore=function(){e.search.limit=e.search.limit||d,e.search.limit=2*e.search.limit,e.search.limit<d&&(e.search.limit=d),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then(function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})},e.onNewInvitation=function(t){e.search.loading||e.search.loadingMore||e.search.results[0]&&e.search.results[0]===t||e.search.results.splice(0,0,t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [invitation] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.resetUnreadCount=function(){if(e.search.loading||!p.data.invitations)return a(e.resetUnreadCount,2e3);if(p.data.invitations.unreadCount&&(console.debug("[ES] [invitation] Resetting unread count"),p.data.invitations.unreadCount=0,e.search.results&&e.search.results.length)){var t=e.search.results[0],n=t.time?t.time:0;!n||p.data.invitations.readTime&&p.data.invitations.readTime==n||(p.data.invitations.readTime=n,p.storeData())}},e.deleteAll=function(n){if(e.hideActionsPopover(),e.search.results.length)return n?t.all([o.loading.show(),u.deleteAll(p.data.pubkey)]).then(function(){return e.search.results.splice(0,e.search.results.length),o.loading.hide()}).catch(o.onError("INVITATION.ERROR.REMOVE_ALL_INVITATIONS_FAILED")):o.alert.confirm("INVITATION.CONFIRM.DELETE_ALL_CONFIRMATION").then(function(t){if(t)return e.deleteAll(t)})},e.delete=function(t){var n=e.search.results[t];if(n)return u.delete(n).then(function(){e.search.results[t]&&e.search.results[t]===n&&e.search.results.splice(t,1)}).catch(o.onError("INVITATION.ERROR.REMOVE_INVITATION_FAILED"))},e.accept=function(t){e.hideActionsPopover(),t.state&&i.go(t.state,t.stateParams||{})},e.showNewInvitationModal=function(){return e.hideActionsPopover(),l.showNewInvitation({})},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!p)throw"Controller wallet not set !";e.listeners=[s.api.node.on.stop(e,e.resetData),s.api.node.on.start(e,e.load),p.api.data.on.logout(e,e.resetData)],p.isDefault()&&e.listeners.push(u.api.data.on.new(e,e.onNewInvitation))}}function PopoverInvitationController(e,t,n){"ngInject";angular.extend(this,t("InvitationsCtrl",{$scope:e})),e.motion=null,e.setWallet(n),e.$on("popover.shown",function(){e.search.loading&&(e.addListeners(),e.load())}),e.updateView=function(){},e.$on("popover.hidden",e.resetUnreadCount),e.hideActionsPopover=function(){e.closePopover()},e.cancel=function(){e.closePopover()}}function NewInvitationModalController(e,t,n,i,a,o,r,s,l){"ngInject";var c;e.recipients=[],e.suggestions=[],e.formData={useComment:!1,walletId:null},e.enableSelectWallet=!0,e.setParameters=function(t){t&&(t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=a.id)},e.setParameters(l),e.load=function(){return e.enableSelectWallet=a.children.count()>0,c=e.enableSelectWallet&&(e.formData.walletId?a.children.get(e.formData.walletId):a)||a,e.formData.walletId=c.id,c.isDefault()||console.debug("[transfer] Using {"+c.id+"} wallet"),c.login({sources:!0,silent:!0}).then(function(t){if(e.walletData=t,i.ink({selector:".modal-invitation .ink"}),e.destPub&&!e.destUid)return csWot.extend({pubkey:e.destPub}).then(function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1});e.loading=!1}).catch(function(t){if("CANCELLED"==t)return e.cancel();i.onError("ERROR.LOGIN_FAILED")(t)})},e.$on("modal.shown",e.load),e.onUseCommentChanged=function(){e.formData.useComment||(e.formData.comment=null)},e.$watch("formData.useComment",e.onUseCommentChanged,!0),e.removeRecipient=function(t,n){e.recipients.splice(t,1),n.preventDefault()},e.removeSuggestion=function(t,n){e.suggestions.splice(t,1),n.preventDefault()},e.cancel=function(){e.closeModal()},e.doSend=function(){if(e.form.$submitted=!0,e.form.$valid&&e.recipients.length&&e.suggestions.length)return c.isLogin()?c.auth({silent:!0}).then(function(){return t.all([r.box.getKeypair(c.data.keypair),i.alert.confirm("INVITATION.CONFIRM.SEND_INVITATIONS_TO_CERTIFY",void 0,{okText:"COMMON.BTN_SEND"})])}).then(function(n){var a=n&&n[0],o=n&&n[1];if(a&&o){i.loading.show();var r=moment().utc().unix(),l=e.formData.useComment&&e.formData.comment&&e.formData.comment.trim();return t.all(e.recipients.reduce(function(t,n){return t.concat(e.suggestions.reduce(function(e,t){if(!t.uid||!t.pubkey)return console.error("Unable to send suggestion for this identity (no uid or pubkey)",t),e;var i={issuer:c.data.pubkey,recipient:n.pubkey,time:r,content:[t.uid,t.pubkey].join("-"),comment:l};return e.concat(s.send(i,{wallet:c,type:"certification"}))},[]))},[])).then(function(){return e.closeModal(),i.loading.hide()}).then(function(){i.toast.show("INVITATION.INFO.INVITATION_SENT")}).catch(i.onError("INVITATION.ERROR.SUGGEST_CERTIFICATIONS_FAILED"))}}):e.closeModal()},e.showSelectRecipientModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.RECIPIENTS_MODAL_TITLE",help:"INVITATION.NEW.RECIPIENTS_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.recipients)}).then(function(t){t&&(e.recipients=t)})},e.showSelectSuggestionModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_TITLE",help:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.suggestions)}).then(function(t){t&&(e.suggestions=t)})},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return n.showSelectWallet().then(function(t){t&&e.formData.walletId!==t.id&&(console.debug("[transfer] Using {"+t.id+"} wallet"),e.wallet=t,e.walletData=t.data,e.formData.walletId=t.id,e.onAmountChanged())})}}function ViewSubscriptionsController(e,t,n,i,a,o,r,s){"ngInject";e.loading=!0,e.popupData={},e.search={results:[],loading:!0},e.emailFrequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}];var l;e.enter=function(t,i){if(e.loading){if(!(l=i.stateParams&&i.stateParams.id?a.children.get(i.stateParams.id):a))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.auth({minData:!0}).then(function(){return o.loading.hide(),e.load()}).then(function(){e.showFab("fab-add-subscription-record")}).catch(function(t){if("CANCELLED"===t)return o.loading.hide(10),e.loading=!0,void n.goBack();o.onError("SUBSCRIPTION.ERROR.LOAD_SUBSCRIPTIONS_FAILED")(t)})}},e.$on("$ionicView.enter",e.enter),e.load=function(){return e.loading=!0,s.record.load(l.data.pubkey,l.data.keypair).then(function(e){var t=_.groupBy(e||[],function(e){return[e.type,e.recipient].join("|")});return _.keys(t).reduce(function(e,n){var i=n.split("|");return e.concat({type:i[0],recipient:i[1],items:t[n]})},[])}).then(function(e){return i.extendAll(e,"recipient")}).then(e.updateView).catch(function(t){o.loading.hide(10),t&&404==t.ucode?(e.updateView([]),e.existing=!1):o.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)})},e.updateView=function(t){t&&(e.search.results=t),e.search.results&&e.search.results.length&&e.motion.show(),e.search.loading=!1},e.addSubscription=function(){var t;e.showCategoryModal().then(function(n){if(n){if("email"===(t=n.id))return e.showEmailModal();o.alert.notImplemented()}}).then(function(t){t&&(o.loading.show(),s.record.add(t,{wallet:l}).then(e.addToUI).then(function(){l.data.subscriptions=l.data.subscriptions||{count:0},l.data.subscriptions.count++,o.loading.hide(),e.updateView()}).catch(o.onError("SUBSCRIPTION.ERROR.ADD_SUBSCRIPTION_FAILED")))})},e.editSubscription=function(t){var n,i=angular.copy(t);if("email"===t.type&&(n=e.showEmailModal(t)),n)return n.then(function(n){if(n)return o.loading.show(),t.id=i.id,s.record.update(t,l).then(function(){if(i.type!==t.type||i.recipient!==t.recipient)return e.removeFromUI(i),e.addToUI(t)}).then(function(){o.loading.hide(),e.updateView()}).catch(o.onError("SUBSCRIPTION.ERROR.UPDATE_SUBSCRIPTION_FAILED"))})},e.deleteSubscription=function(t,n){if(t&&t.id){if(!n)return o.alert.confirm("SUBSCRIPTION.CONFIRM.DELETE_SUBSCRIPTION").then(function(n){if(n)return e.deleteSubscription(t,n)});o.loading.show(),s.record.remove(t.id,{wallet:l}).then(function(){l.data.subscriptions=l.data.subscriptions||{count:1},l.data.subscriptions.count--,e.removeFromUI(t),o.loading.hide()}).catch(o.onError("SUBSCRIPTION.ERROR.DELETE_SUBSCRIPTION_FAILED"))}},e.removeFromUI=function(t){var n=_.findWhere(e.search.results,{type:t.type,recipient:t.recipient}),i=_.findIndex(n.items,t);i>=0&&n.items.splice(i,1),n.items.length||(i=_.findIndex(e.search.results,n),e.search.results.splice(i,1))},e.addToUI=function(n){e.search.results=e.search.results||[];var a=_.findWhere(e.search.results,{type:n.type,recipient:n.recipient});return a?(a.items.push(n),t.when(n)):(a={type:n.type,recipient:n.recipient,items:[]},i.extendAll([a],"recipient").then(function(){return a.items.push(n),e.search.results.push(a),n}))},e.showCategoryModal=function(){return s.category.all().then(function(e){return r.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})}).then(function(e){if(e&&e.parent)return e})},e.showEmailModal=function(e){return r.show("plugins/es/templates/subscription/modal_email.html","ModalEmailSubscriptionsCtrl",e,{focusFirstInput:!0})}}function ModalEmailSubscriptionsController(e,t,n,i,a,o){"ngInject";e.frequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.formData=o||{},e.formData.content=e.formData.content||{},e.formData.content.frequency=e.formData.content.frequency||e.frequencies[0].id,e.recipient={},e.$on("modal.shown",function(){if(e.formData.recipient)return e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])}),e.doSubmit=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.content.email&&e.formData.content.frequency){var t={type:"email",recipient:e.formData.recipient,content:{email:e.formData.content.email,locale:n.data.locale.id,frequency:e.formData.content.frequency}};e.closeModal(t)}},e.cancel=function(){e.closeModal()},e.subscriptionForm&&e.subscriptionForm.$setPristine(),e.showNetworkLookup=function(){return t.showNetworkLookup({enableFilter:!0,endpoint:i.constants.ES_USER_API_ENDPOINT,bma:!1}).then(function(t){t&&(e.recipient=t,e.formData.recipient=t.pubkey)})}}function ESDocumentLookupController(e,t,n,i,a,o,r,s,l){"ngInject";e.search={loading:!0,hasMore:!0,text:void 0,index:"invitation",type:"certification",results:void 0,sort:"time",asc:!1},e.entered=!1,e.searchTextId="documentSearchText",e.ionItemClass="item-border-large",e.defaultSizeLimit=r.screen.isSmall()?50:100,e.helptipPrefix="helptip-document",e.$on("$ionicView.enter",function(t,n){e.entered||(e.entered=!0,e.search.index=n.stateParams&&n.stateParams.index||e.search.index,e.search.type=n.stateParams&&n.stateParams.type||e.search.type,e.search.text=n.stateParams&&n.stateParams.q||e.search.text,e.search.last=!e.search.text,e.load()),e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!r.screen.isSmall()&&a.data.expertMode}),e.load=function(t,n){if(!e.search.error){var i={index:e.search.index,type:e.search.type,from:n||0,size:t||e.defaultSizeLimit};e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={time:"desc"},e.search.loading=!0;return(e.search.last?l.search(i):l.searchText(e.search.text||"",i)).then(function(t){e.search.results=t.hits,e.search.total=t.total,e.search.took=t.took,r.loading.hide(),e.search.loading=!1,t.hits&&t.hits.length>0?(e.motion.show({selector:".list .item.item-document"}),e.search.hasMore=t.total>e.search.results.length):e.search.hasMore=!1,e.$broadcast("$$rebind::rebind")}).catch(function(t){e.search.results=[],e.search.loading=!1,e.search.error=!0,r.onError("DOCUMENT.ERROR.LOAD_DOCUMENTS_FAILED")(t).then(function(){e.search.error=!1})})}},e.doSearchText=function(){return e.search.last=!e.search.text,e.load().then(function(){n.search({q:e.search.text}).replace()})},e.doSearchLast=function(){return e.search.last=!0,e.search.text=void 0,e.load()},e.removeAll=function(){if(e.hideActionsPopover(),e.search.results&&e.search.results.length)return r.alert.confirm("DOCUMENT.CONFIRM.REMOVE_ALL").then(function(t){if(t)return r.loading.show(),l.removeAll(e.search.results).then(function(){return e.search.loading=!1,i(function(){return r.toast.show("DOCUMENT.INFO.REMOVED"),e.load()},1e3)}).catch(r.onError("DOCUMENT.ERROR.REMOVE_ALL_FAILED"))})},e.remove=function(t,n){var i=e.search.results[t];i&&r.alert.confirm("DOCUMENT.CONFIRM.REMOVE").then(function(n){if(n)return l.remove(i).then(function(){e.search.results.splice(t,1),e.$broadcast("$$rebind::rebind"),r.toast.show("DOCUMENT.INFO.REMOVED")}).catch(r.onError("MESSAGE.ERROR.REMOVE_FAILED"))})},e.selectDocument=function(t,n){console.debug("Selected document: ",n,s);var i=s.getUrl("/{0}/{1}/_search?pretty&q=_id:{2}".format(n.index,n.type,n.id));return e.openLink(t,i)},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.load()},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/document/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onUnauth=function(){e.search.results=void 0,e.search.loading=!1,e.entered=!1},o.api.data.on.unauth(e,e.onUnauth)}function GpCurrencyAbstractController(e,t,n,i,a,o,r,s,l){"ngInject";function c(t){return moment.unix(t).utc().startOf(e.formData.rangeDuration).unix()}e.loading=!0,e.formData=e.formData||{useRelative:o.data.useRelative,timePct:100,rangeDuration:"day",firstBlockTime:0,scale:"linear",hide:[],beginAtZero:!0},e.formData.useRelative=!1,e.scale="linear",e.height=void 0,e.width=void 0,e.maintainAspectRatio=!0,e.times=[],e.enter=function(t,n){if(e.loading){if(n&&n.stateParams&&(e.stateName=n&&n.stateName,e.stateParams=angular.copy(n&&n.stateParams||{}),!e.formData.currency&&n&&n.stateParams&&n.stateParams.currency&&(e.formData.currency=n.stateParams.currency),n.stateParams.t?e.formData.timePct=n.stateParams.t:n.stateParams.timePct&&(e.formData.timePct=n.stateParams.timePct),n.stateParams.stepUnit&&(e.formData.rangeDuration=n.stateParams.stepUnit),n.stateParams.scale&&(e.formData.scale=n.stateParams.scale),n.stateParams.hide&&(e.formData.hide=n.stateParams.hide.split(",").reduce(function(e,t){return e.concat(parseInt(t))},[]))),e.init(t,n),!e.formData.currency)return r.get().then(function(i){return e.formData.currency=i?i.name:null,e.formData.firstBlockTime=i?c(i.firstBlockTime):0,e.formData.firstBlockTime||console.warn("[graph] currency.firstBlockTime not loaded ! Should have been loaded by currrency service!"),e.formData.currencyAge=c(moment().utc().unix())-e.formData.firstBlockTime,e.enter(t,n)});e.load().then(function(){e.setScale(e.formData.scale),e.updateHiddenDataset(),e.loading=!1})}},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.updateLocation=function(){e.stateName&&(i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),e.stateParams=e.stateParams||{},e.stateParams.t=e.formData.timePct>=0&&e.formData.timePct<100?e.formData.timePct:void 0,e.stateParams.stepUnit="day"!=e.formData.rangeDuration?e.formData.rangeDuration:void 0,e.stateParams.hide=e.formData.hide&&e.formData.hide.length?e.formData.hide.join(","):void 0,
-e.stateParams.scale="linear"!=e.formData.scale?e.formData.scale:void 0,a.go(e.stateName,e.stateParams,{reload:!1,inherit:!0,notify:!1}))},e.setSize=function(t,n,i){e.height=t,e.width=n,e.maintainAspectRatio=angular.isDefined(i)?i:e.maintainAspectRatio},e.$on("csView.action.refresh",function(t,n){if(!n||"currency"==n)return e.load()}),e.init=function(e,t){},e.load=function(){},e.toggleScale=function(){e.setScale("linear"===e.formData.scale?"logarithmic":"linear"),e.updateLocation()},e.setScale=function(n){if(e.hideActionsPopover(),e.formData.scale=n,e.options&&e.options.scales&&e.options.scales.yAxes){var i=t("formatInteger");_.forEach(e.options.scales.yAxes,function(t,a){t.type=n,t.ticks=t.ticks||{},"linear"==n?(t.ticks.beginAtZero=!angular.isDefined(e.formData.beginAtZero)||e.formData.beginAtZero,delete t.ticks.min,t.ticks.callback=function(e){return i(e)}):(delete t.ticks.beginAtZero,delete t.ticks.callback,t.ticks.callback=function(e,t){if(e)return Math.log10(e)%1==0||Math.log10(e/3)%1==0?i(e):""})})}},e.setRangeDuration=function(t){e.hideActionsPopover(),e.formData&&t==e.formData.rangeDuration||(e.formData.rangeDuration=t,delete e.formData.startTime,delete e.formData.endTime,delete e.formData.rangeDurationSec,e.load(),e.updateLocation())},e.updateHiddenDataset=function(t){t=t||e.datasetOverride||{},_.forEach(e.formData.hide||[],function(n){if(t[n]){t[n].hidden=!0;var i=t[n].yAxisID,a=i&&e.options&&e.options.scales&&_.findWhere(e.options.scales.yAxes||[],{id:i});if(i&&a){1==_.filter(t,function(e){return e.yAxisID===i}).length&&(a.display=!1)}}})},e.onLegendClick=function(t,n){var i=n.datasetIndex,a=this.chart,o=a.getDatasetMeta(i);if(o.hidden=null===o.hidden?!a.data.datasets[i].hidden:null,a.config&&a.config.data&&a.config.data.datasets){1===_.filter(a.config.data.datasets,function(e){return e.yAxisID&&e.yAxisID===o.yAxisID}).length&&(a.scales[o.yAxisID].options.display=!(!0===o.hidden))}a.update(),e.formData.hide=e.formData.hide||[],e.formData.hide=o.hidden?_.union(e.formData.hide,[i]):_.difference(e.formData.hide,[i]),e.updateLocation()},e.goPreviousRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime-=e.times.length*e.formData.rangeDurationSec,e.formData.startTime<e.formData.firstBlockTime&&(e.formData.startTime=e.formData.firstBlockTime),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then(function(){e.updateLocation(),e.loadingRange=!1}))},e.goNextRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime+=e.times.length*e.formData.rangeDurationSec,e.formData.startTime>e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow&&(e.formData.startTime=e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then(function(){e.updateLocation(),e.loadingRange=!1}))},e.onRangeChanged=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime=e.formData.firstBlockTime+parseFloat(e.formData.timePct)/100*(e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then(function(){e.updateLocation(),e.loadingRange=!1}))},e.updateRange=function(t,n,i){i=!angular.isDefined(i)||i,e.formData.startTime=t,e.formData.endTime=n,e.formData.timeWindow=e.formData.timeWindow||e.formData.endTime-e.formData.startTime,e.formData.rangeDurationSec=e.formData.rangeDurationSec||e.formData.timeWindow/(e.times.length-1),i&&(e.formData.timePct=Math.ceil(100*(e.formData.startTime-e.formData.firstBlockTime)/(e.formData.currencyAge-e.formData.timeWindow)))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/graph/templates/common/popover_range_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function GpBlockchainTxCountController(e,t,n,i,a,o,r,s){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.displayRightAxis=!0,e.init=function(t,n){n&&n.stateParams&&!e.formData.issuer&&n&&n.stateParams&&n.stateParams.pubkey&&(e.formData.issuer=n.stateParams.pubkey)},e.load=function(t){var i=e.formData;return n.all([o(e.formData.issuer?"GRAPH.BLOCKCHAIN.TX_AMOUNT_PUBKEY_TITLE":"GRAPH.BLOCKCHAIN.TX_AMOUNT_TITLE",i),o(["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL","GRAPH.BLOCKCHAIN.TX_COUNT_LABEL","GRAPH.BLOCKCHAIN.TX_AVG_BY_BLOCK","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.blockchain.txCount(e.formData.currency,i)]).then(function(n){var i=n[0],o=n[1],r={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[2])&&n.times){e.times=n.times;var l=(a("formatInteger"),a("formatDecimal"));e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.formData.rangeDuration,e.data=[n.amount,n.count];var c=r[e.formData.rangeDuration];e.labels=n.times.reduce(function(e,t){return e.concat(moment.unix(t).local().format(c))},[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-amount",position:"left"},{id:"y-axis-count",display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},legend:{display:e.displayRightAxis,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return 0===t.datasetIndex?n.datasets[t.datasetIndex].label+": "+l(t.yLabel)+" "+e.currencySymbol:n.datasets[t.datasetIndex].label+": "+t.yLabel}}}},e.datasetOverride=[{yAxisID:"y-axis-amount",type:"bar",label:o["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL"],hoverBackgroundColor:s.rgba.calm(.6)},{yAxisID:"y-axis-count",type:"line",label:o["GRAPH.BLOCKCHAIN.TX_COUNT_LABEL"],fill:!1,borderColor:s.rgba.gray(.5),borderWidth:2,backgroundColor:s.rgba.gray(.5),pointBackgroundColor:s.rgba.gray(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.gray(1),pointHoverBorderColor:s.rgba.translucent(),pointRadius:3}]}})},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.issuer&&(s+=" AND issuer:"+e.formData.issuer),i.go("app.blockchain_search",{q:s})}}}function GpBlockchainIssuersController(e,t,n,i,a,o,r){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(){return n.all([a(["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE","GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_LABEL"]),r.blockchain.countByIssuer(e.formData.currency)]).then(function(t){var n=t[0];(t=t[1])&&t.data&&(e.data=t.data,e.labels=t.labels,e.blockCount=t.blockCount,e.issuers=t.issuers,e.barOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE"]},scales:{yAxes:[{type:"linear",ticks:{beginAtZero:!0}}]}},e.colors=o.scale.custom(t.data.length))})},e.onChartClick=function(t,n,a){if(a){var o=e.issuers[a._index];i.go("app.wot_identity",o)}}}function GpNetworkViewExtendController(e,t,n){"ngInject";e.extensionPoint=t.extensions.points.current.get(),e.enable=n.isEnable(),n.api.state.on.changed(e,function(t){e.enable=t})}function GpPeerViewExtendController(e,t,n,i,a,o){"ngInject";e.extensionPoint=n.extensions.points.current.get(),e.enable=i.isEnable(),e.loading=!0,e.node=e.node||{},i.api.state.on.changed(e,function(t){e.enable=t}),e.enter=function(n,i){return!e.node.currency&&i&&i.stateParams&&i.stateParams.currency&&(e.node.currency=i.stateParams.currency),e.node.currency?e.node.pubkey?e.load():t(function(){return e.enter(n,i)},500):a.get().then(function(t){return e.node.currency=t?t.name:null,e.enter(n,i)})},e.$on("$csExtension.enter",e.enter),e.load=function(){if(e.node.currency||e.node.pubkey)return console.info("[Graph] [peer] Loading blocks count for [{0}]".format(e.node.pubkey.substr(0,8))),o.node.blockCount(e.node.currency,e.node.pubkey).then(function(t){e.blockCount=t,e.loading=!1})}}function GpCurrencyViewExtendController(e,t,n,i){"ngInject";e.extensionPoint=t.extensions.points.current.get(),e.enable=i.isEnable(),e.smallscreen=n.screen.isSmall(),i.api.state.on.changed(e,function(t){e.enable=t})}function GpCurrencyMonetaryMassController(e,t,n,i,a,o,r,s,l,c){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.useRelative=angular.isDefined(e.formData.useRelative)?e.formData.useRelative:c.data.useRelative,e.displayShareAxis=!0,e.hiddenDatasets=[],e.init=function(e,t){},e.onUseRelativeChanged=function(){e.loading||e.load()},e.$watch("formData.useRelative",e.onUseRelativeChanged);var u=function(e){return Math.trunc(100*e)/100};e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MONETARY_MASS_TITLE","GRAPH.CURRENCY.MONETARY_MASS_LABEL","GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"]),s.blockchain.withDividend(e.formData.currency,{from:t,size:i})]).then(function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.times.length-1]-t.times[0];i=l(a<31557600?"medianDateShort":"formatDateMonth");var o=l("formatDecimal");e.currencySymbol=l("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative);var s=[];e.formData.useRelative?(s.push(t.blocks.reduce(function(e,t){return e.concat(u(t.monetaryMass/t.dividend/t.membersCount))},[])),s.push(t.blocks.reduce(function(e,t){return e.concat(u(t.monetaryMass/t.dividend))},[]))):(s.push(t.blocks.reduce(function(e,t){return e.concat(u(t.monetaryMass/t.membersCount/100))},[])),s.push(t.blocks.reduce(function(e,t){return e.concat(t.monetaryMass/100)},[]))),e.data=s,e.labels=t.times.reduce(function(e,t){return e.concat(i(t))},[]),e.colors=r.scale.fix(t.times.length),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MONETARY_MASS_TITLE"]},legend:{display:e.displayShareAxis,onClick:e.onLegendClick},scales:{yAxes:[{id:"y-axis-mn"},{id:"y-axis-mass",display:e.displayShareAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+o(t.yLabel)+" "+e.currencySymbol}}}},e.datasetOverride=[{yAxisID:"y-axis-mn",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3},{yAxisID:"y-axis-mass",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_LABEL"],fill:!1,showLine:!0,borderColor:r.rgba.energized(),borderWidth:1,backgroundColor:r.rgba.energized(),pointBackgroundColor:r.rgba.energized(),pointBorderColor:r.rgba.energized(),pointHoverBackgroundColor:r.rgba.energized(),pointHoverBorderColor:r.rgba.energized(),pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.setScale(e.scale),e.blocks=t.blocks.reduce(function(e,t){return e.concat(t.number)},[])}})},e.onChartClick=function(t,n,a){if(a){var o=e.blocks[a._index];i.go("app.view_block",{number:o})}},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function GpCurrencyDUController(e,t,n,i,a,o,r,s){"ngInject";e.formData={scale:"linear",beginAtZero:!1},angular.extend(this,n("GpCurrencyMonetaryMassCtrl",{$scope:e})),e.load=function(n,s){return n=n||0,s=s||1e4,t.all([i(["GRAPH.CURRENCY.UD_TITLE","COMMON.UNIVERSAL_DIVIDEND"]),o.blockchain.withDividend(e.formData.currency,{from:n,size:s})]).then(function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,o=t.times[t.times.length-1]-t.times[0];i=r(o<31557600?"medianDateShort":"formatDateMonth");var s=r("formatDecimal");e.currencySymbol=r("currencySymbolNoHtml")(e.formData.currency,!1),e.data=[t.blocks.reduce(function(e,t){return e.concat(t.dividend/100)},[])],e.labels=t.times.reduce(function(e,t){return e.concat(i(t))},[]),e.colors=t.blocks.reduce(function(e){return e.concat(a.rgba.calm(.5))},[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.UD_TITLE"]},scales:{yAxes:[{id:"y-axis-ud",ticks:{beginAtZero:e.formData.beginAtZero}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+s(t.yLabel)+" "+e.currencySymbol}}}},e.setScale(e.scale),e.datasetOverride=[{yAxisID:"y-axis-ud",type:"line",label:n["COMMON.UNIVERSAL_DIVIDEND"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.blocks=t.blocks.reduce(function(e,t){return e.concat(t.number)},[])}})},e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function GpCurrencyMembersCountController(e,t,n,i,a,o,r,s){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE","GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"]),r.blockchain.withDividend(e.formData.currency,{from:t,size:i,withCurrent:!0})]).then(function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.blocks.length-1]-t.times[0];i=s(a<31557600?"medianDateShort":"formatDateMonth"),e.labels=t.times.reduce(function(e,t){return e.concat(i(t))},[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE"]},scales:{xAxes:[{position:"bottom"}],yAxes:[{id:"y-axis-1",ticks:{beginAtZero:!1}}]}},e.datasetOverride=[{yAxisID:"y-axis-1",type:"line",label:n["GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.data=[t.blocks.reduce(function(e,t){return e.concat(t.membersCount)},[])],e.colors=o.scale.fix(t.blocks.length)}})},e.onChartClick=function(t,n,a){if(a){if(!a._index)return void i.go("app.view_block",{number:0});var o=e.times[a._index-1],r=moment.unix(o).utc().add(1,"day").unix();i.go("app.blockchain_search",{q:"(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded) AND medianTime:>{0} AND medianTime:<={1}".format(o,r)})}}}function GpExtendController(e,t,n,i,a){"ngInject";e.extensionPoint=t.extensions.points.current.get(),e.enable=n.isEnable(),n.api.state.on.changed(e,function(t){e.enable=t}),e.showIdentityStats=function(){e.formData&&e.formData.pubkey&&i.go("app.wot_identity_stats",{pubkey:e.formData.pubkey})},e.showWalletStats=function(){a.isLogin()&&i.go("app.wot_identity_stats",{pubkey:a.data.pubkey})}}function GpAccountBalanceController(e,t,n,i,a,o,r,s,l,c){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:c.isLogin()&&(e.formData.pubkey=c.data.pubkey)};var u=e.setScale;e.setScale=function(t){e.data[e.data.length-2]="linear"===t?_.map(e.data[e.data.length-2],function(e){return-1*Math.abs(e)}):_.map(e.data[e.data.length-2],function(e){return Math.abs(e)}),u(t)},e.load=function(t){t=!angular.isDefined(t)||t;var i=!0;return r.load(e.formData.pubkey,null,{cache:!0}).then(function(t){return e.identity=t,i=e.identity.isMember||e.identity.wasMember,n.all([o("GRAPH.ACCOUNT.BALANCE_TITLE",e.formData),o(["GRAPH.ACCOUNT.UD_LABEL","GRAPH.ACCOUNT.TX_RECEIVED_LABEL","GRAPH.ACCOUNT.TX_SENT_LABEL","GRAPH.ACCOUNT.UD_ACCUMULATION_LABEL","GRAPH.ACCOUNT.TX_ACCUMULATION_LABEL","GRAPH.ACCOUNT.BALANCE_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),s.blockchain.movement(e.formData.currency,angular.copy(e.formData,{withUD:i}))])}).then(function(n){var o=n[0],r=n[1];if((n=n[2])&&n.times){e.times=n.times;var s=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.data=[n.ud,n.received,n.sent,n.balance];var c={hour:r["COMMON.DATE_PATTERN"],day:r["COMMON.DATE_SHORT_PATTERN"],month:r["COMMON.DATE_MONTH_YEAR_PATTERN"]},u=c[e.formData.rangeDuration];e.labels=n.times.reduce(function(e,t){return e.concat(moment.unix(t).local().format(u))},[]),e.colors=l.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:o},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis-left",type:"linear",position:"left",stacked:!0}]},legend:{display:!0,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+(t.yLabel?s(t.yLabel)+" "+e.currencySymbol:"0")}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.UD_LABEL"],backgroundColor:l.rgba.energized(.3),hoverBackgroundColor:l.rgba.energized(.5),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_RECEIVED_LABEL"],backgroundColor:l.rgba.positive(.4),hoverBackgroundColor:l.rgba.positive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_SENT_LABEL"],backgroundColor:l.rgba.assertive(.4),hoverBackgroundColor:l.rgba.assertive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"line",label:r["GRAPH.ACCOUNT.BALANCE_LABEL"],fill:"origin",borderColor:l.rgba.calm(.5),borderWidth:2,pointBackgroundColor:l.rgba.calm(.5),pointBorderColor:l.rgba.white(),pointHoverBackgroundColor:l.rgba.calm(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}],i||(e.data.splice(0,1),e.datasetOverride.splice(0,1))}})},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function GpAccountSumTxController(e,t,n,i,a,o){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){e.pubkey=n&&n.stateParams&&n.stateParams.pubkey},e.load=function(t,n){if(e.pubkey)return a.load(e.pubkey,-1).then(function(t){t&&t.tx&&t.tx.history&&(e.inputChart=e.computeChartData(_.filter(t.tx.history,function(e){return e.amount>0})),e.outputChart=e.computeChartData(_.filter(t.tx.history,function(e){return e.amount<0})))})},e.computeChartData=function(e){var t=n("formatPubkey"),i={};_.forEach(e,function(e){i[e.pubkey]=i[e.pubkey]||{label:e.name||e.uid||t(e.pubkey),pubkey:e.pubkey,sum:0},i[e.pubkey].sum+=Math.abs(e.amount)});var a=_.sortBy(_.values(i),"sum").reverse();return _.each(a,function(e){e.sum=e.sum/100}),{data:_.pluck(a,"sum"),labels:_.pluck(a,"label"),pubkeys:_.pluck(a,"pubkey"),colors:o.scale.custom(Math.max(10,a.length))}},e.onInputChartClick=function(t,n,a){if(a){var o=e.inputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}},e.onOutputChartClick=function(t,n,a){if(a){var o=e.outputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}}}function GpAccountCertificationController(e,t,n,i,a,o,r,s,l){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:l.isLogin()&&(e.formData.pubkey=l.data.pubkey)},e.load=function(t){var i=e.formData;return n.all([o("GRAPH.ACCOUNT.CERTIFICATION_TITLE",i),o(["GRAPH.ACCOUNT.GIVEN_CERT_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_LABEL","GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.wot.certifications(i)]).then(function(n){var i=n[0],o=n[1];if((n=n[2])&&n.times){e.times=n.times;var r=a("formatInteger");e.data=[n.deltaReceived,n.received,n.deltaGiven,n.given],e.labels=n.labels;var l={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]},c=l[e.formData.rangeDuration];e.labels=n.times.reduce(function(e,t){return e.concat(moment.unix(t).local().format(c))},[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-left",type:"linear",position:"left"},{id:"y-axis-hide",type:"linear",display:!1,position:"right"}]},legend:{display:!0},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){var n=(0===e.datasetIndex||2===e.datasetIndex)&&e.yLabel>0;return t.datasets[e.datasetIndex].label+": "+(n?"+":"")+!e.yLabel?"0":r(e.yLabel)}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL"],borderColor:s.rgba.positive(.6),borderWidth:1,backgroundColor:s.rgba.positive(.4),hoverBackgroundColor:s.rgba.positive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_LABEL"],fill:!1,borderColor:s.rgba.positive(.5),borderWidth:2,backgroundColor:s.rgba.positive(1),pointBackgroundColor:s.rgba.positive(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.positive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3},{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL"],borderColor:s.rgba.assertive(.6),borderWidth:1,backgroundColor:s.rgba.assertive(.4),hoverBackgroundColor:s.rgba.assertive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.GIVEN_CERT_LABEL"],fill:!1,borderColor:s.rgba.assertive(.4),borderWidth:2,backgroundColor:s.rgba.assertive(1),pointBackgroundColor:s.rgba.assertive(.4),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.assertive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}]}})},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function GpDocStatsController(e,t,n,i,a,o,r,s){"ngInject";function l(e){if(e){var t;return _.map(e,function(e){var n=void 0!==e&&e-(t||e)||void 0;return t=e,n})}}angular.extend(this,n("GpCurrencyAbstractCtrl",{$scope:e})),e.displayRightAxis=!0,e.hiddenDatasets=[],e.chartIdPrefix="docstats-chart-",e.charts=[{id:"user",title:"GRAPH.DOC_STATS.USER.TITLE",series:[{key:"user_profile",label:"GRAPH.DOC_STATS.USER.USER_PROFILE",color:o.rgba.royal(.7),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"user",type:"profile"}}},{key:"user_settings",label:"GRAPH.DOC_STATS.USER.USER_SETTINGS",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"user",type:"settings"}}}]},{id:"user_delta",title:"GRAPH.DOC_STATS.USER_DELTA.TITLE",series:[{key:"user_profile_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_PROFILE",type:"line",yAxisID:"y-axis-delta",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal()},{key:"user_settings_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_SETTINGS",type:"line",yAxisID:"y-axis-delta",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray()}]},{id:"message",title:"GRAPH.DOC_STATS.MESSAGE.TITLE",series:[{key:"message_inbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_INBOX",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"message",type:"inbox"}}},{key:"message_outbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_OUTBOX",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"message",type:"outbox"}}},{key:"invitation_certification",label:"GRAPH.DOC_STATS.MESSAGE.INVITATION_CERTIFICATION",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"invitation",type:"certification"}}}]},{id:"social",title:"GRAPH.DOC_STATS.SOCIAL.TITLE",series:[{key:"page_record",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_RECORD",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"page",type:"record"}}},{key:"group_record",label:"GRAPH.DOC_STATS.SOCIAL.GROUP_RECORD",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"group",type:"record"}}},{key:"page_comment",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_COMMENT",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"page",type:"comment"}}}]},{id:"other",title:"GRAPH.DOC_STATS.OTHER.TITLE",series:[{key:"history_delete",label:"GRAPH.DOC_STATS.OTHER.HISTORY_DELETE",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"history",type:"delete"}}}]}];var c=s("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis",stacked:!0},{id:"y-axis-delta",stacked:!1},{id:"y-axis-delta-right",stacked:!1,display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+c(e.yLabel)}}}},e.init=function(e,t){t&&t.stateParams},e.load=function(t){return i.all([a(e.charts.reduce(function(e,t){return e.concat(t.series.reduce(function(e,t){return e.concat(t.label)},[t.title]))},["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),r.docstat.get(e.formData)]).then(function(n){var i=n[0],a={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=a[e.formData.rangeDuration];e.labels=_.map(n.times,function(e){return moment.unix(e).local().format(r)}),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,function(t){var a={};t.data=_.map(t.series,function(e){if(a[e.yAxisID||"y-axis"]=!0,e.key.endsWith("_delta")){var t=e.key.substring(0,e.key.length-"_delta".length);return l(n[t])||[]}return n[e.key]||[]}),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.options.scales.yAxes=t.options.scales.yAxes.reduce(function(e,t){return a[t.id]?e.concat(t):e},[]),t.datasetOverride=_.map(t.series,function(e){return{yAxisID:e.yAxisID||"y-axis",type:e.type||"line",label:i[e.label],fill:"line"!==e.type,borderWidth:2,pointRadius:"line"!==e.type?0:2,pointHitRadius:4,pointHoverRadius:3,borderColor:e.color,backgroundColor:e.color,pointBackgroundColor:e.color,pointBorderColor:e.color,pointHoverBackgroundColor:e.pointHoverBackgroundColor||e.color,pointHoverBorderColor:e.pointHoverBorderColor||o.rgba.white()}})})}})},e.onChartClick=function(n,i,a){if(a){var o=_.find(e.charts,function(t){return e.chartIdPrefix+t.id==a._chart.canvas.id}),r=o.series[a._datasetIndex];if(r&&r.clickState&&r.clickState.name){var s=r.clickState.params?angular.copy(r.clickState.params):{},l=e.times[a._index],c=moment.unix(l).utc().add(1,e.formData.rangeDuration).unix();return s.q="time:>={0} AND time:<{1}".format(l,c),t.go(r.clickState.name,s)}console.debug("Click on item index={0} on range [{1},{2}]".format(a._index,l,c))}}}function GpSynchroController(e,t,n,i,a,o,r){"ngInject";angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.hiddenDatasets=[],e.charts=[{id:"count",title:"GRAPH.SYNCHRO.COUNT.TITLE",series:[{key:"inserts",type:"bar",label:"GRAPH.SYNCHRO.COUNT.INSERTS",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"updates",type:"bar",label:"GRAPH.SYNCHRO.COUNT.UPDATES",color:a.rgba.calm(),pointHoverBackgroundColor:a.rgba.calm()},{key:"deletes",type:"bar",label:"GRAPH.SYNCHRO.COUNT.DELETES",color:a.rgba.assertive(.5),pointHoverBackgroundColor:a.rgba.assertive()}]},{id:"peer",title:"GRAPH.SYNCHRO.PEER.TITLE",series:[{key:"ES_USER_API",label:"GRAPH.SYNCHRO.PEER.ES_USER_API",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"ES_SUBSCRIPTION_API",label:"GRAPH.SYNCHRO.PEER.ES_SUBSCRIPTION_API",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]},{id:"performance",title:"GRAPH.SYNCHRO.PERFORMANCE.TITLE",series:[{key:"duration",type:"bar",label:"GRAPH.SYNCHRO.PERFORMANCE.DURATION",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]}];var s=r("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{stacked:!0,id:"y-axis"}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+s(e.yLabel)}}}},e.init=function(e,t){t&&t.stateParams},e.load=function(t){return n.all([i(e.charts.reduce(function(e,t){return e.concat(t.series.reduce(function(e,t){return e.concat(t.label)},[t.title]))},["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),o.synchro.execution.get(e.formData)]).then(function(n){var i=n[0],o={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=o[e.formData.rangeDuration];e.labels=n.times.reduce(function(e,t){return e.concat(moment.unix(t).local().format(r))},[]),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,function(t){t.data=[],_.forEach(t.series,function(e){t.data.push(n[e.key]||[])}),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.datasetOverride=t.series.reduce(function(e,t){return e.concat({yAxisID:"y-axis",type:t.type||"line",label:i[t.label],fill:!0,borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3,borderColor:t.color,backgroundColor:t.color,pointBackgroundColor:t.color,pointBorderColor:t.color,pointHoverBackgroundColor:t.pointHoverBackgroundColor||t.color,pointHoverBorderColor:t.pointHoverBorderColor||a.rgba.white()})},[])})}})}}function MapWotViewController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){"ngInject";angular.extend(this,l("WotIdentityAbstractCtrl",{$scope:e})),angular.extend(this,l("ESWotIdentityViewCtrl",{$scope:e}));var g,f={member:{type:"awesomeMarker",icon:"person",markerColor:"blue"},pending:{type:"awesomeMarker",icon:"clock",markerColor:"lightgreen",iconColor:"gray"},wallet:{type:"awesomeMarker",icon:"key",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-wot-"+e.$id,e.map=E.map({cache:"map-wot",layers:{overlays:{member:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.MEMBER",visible:!0},pending:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.PENDING",visible:!0},wallet:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.WALLET",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.showDescription=!1,c().then(function(){e.enableDescription=!d.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)}),e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!d.screen.isSmall()||t.enableBack}),e.enter=function(t,n){if(e.loading){if(d.loading.show({noBackdrop:!0}),n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",function(){if(!e.loading)return a(function(){e.updateLocationHref()},300)},!0);var o=Date.now();e.loadMap().then(e.load).then(function(){
-console.debug("[map] [wot] Loaded in "+(Date.now()-o)+"ms"),e.showHelpTip()})}else e.updateLocationHref(),e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),u.getMap(e.mapId)]).then(function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;d.screen.isSmall()||(L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"show-help-tour",onClick:e.startHelpTour,title:o["COMMON.BTN_HELP_TOUR_SCREEN"],icon:"icon ion-easel"}]}).addTo(r),L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r)),L.Control.loading({position:"topright",separate:!0}).addTo(r),E.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),g=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/wot/item_search_tooltip.html"));E.control.search({layer:g,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a(function(){var e=i&&_.find(n._layers,function(e){return e.options&&e.options.id===i});e&&e.openPopup()},400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:E.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.member?"blue":t.pending?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer(function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))}),c.addTo(r),e.map.loading=!1,r})},e.load=function(i){if(!i)return u.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var o={fields:{description:e.enableDescription}};return e.map.bounds,b.load(o).then(function(o){var r={};if(g.clearLayers(),o&&o.length){var s=t("formatPubkey"),l=n.get("plugins/map/templates/wot/popup_marker.html");_.forEach(o,function(t){var n=t.pending?"pending":t.uid?"member":"wallet",i=s(t.pubkey),a=t.index+"_"+(t.id||(t.uid?t.uid+":"+t.pubkey:t.pubkey)).replace(/-/g,"_"),o={layer:n,icon:f[n],opacity:t.uid?1:.7,title:t.name+" | "+i,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync(function(){n.formData={pubkey:t.pubkey,uid:t.uid,name:t.name,profile:t},n.loadingMarker=!1}),n},focus:!1,message:l,id:a};r[a]=o;var c=t.name+(t.uid&&t.uid!=t.name?" | "+t.uid:"")+" | "+i,u=angular.merge({type:n,opacity:0,icon:L.divIcon({className:n+" ng-hide",iconSize:L.point(0,0)})},{title:c,pubkey:t.pubkey,uid:t.uid,name:t.name,pending:t.pending,popupMarkerId:a});g.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},u))})}return e.map.markers=r,a(function(){e.loading=!1,i.fire("dataload"),d.loading.hide()})}).catch(function(t){e.map.markers={},e.loading=!1,d.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)})},e.updateLocationHref=function(t){(o.search()||{}).c&&E.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((n||m.isLogin())&&(t=angular.isDefined(t)?t:angular.isNumber(p.data.helptip.mapwot)?p.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2))){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then(function(e){i.$destroy(),p.data.helptip.mapwot=angular.isNumber(p.data.helptip.mapwot)?Math.max(e,p.data.helptip.mapwot):e,p.store()})}}}function MapRegistryViewController(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){"ngInject";var b,g={shop:{type:"awesomeMarker",icon:"page-shop",markerColor:"blue"},company:{type:"awesomeMarker",icon:"page-company",markerColor:"blue"},association:{type:"awesomeMarker",icon:"page-association",markerColor:"lightgreen",iconColor:"gray"},institution:{type:"awesomeMarker",icon:"page-institution",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-registry-"+e.$id,e.map=m.map({cache:"map-registry",layers:{overlays:{shop:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.SHOP",visible:!0},company:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.COMPANY",visible:!0},association:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.ASSOCIATION",visible:!0},institution:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.INSTITUTION",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.formData={},e.showDescription=!1,l().then(function(){e.enableDescription=!u.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)}),e.$on("$ionicView.beforeEnter",function(e,t){t.enableBack=!!u.screen.isSmall()||t.enableBack}),e.enter=function(t,n){if(e.loading){if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",function(){if(!e.loading)return a(function(){e.updateLocationHref()},300)},!0),e.loadMap().then(function(){return p.isLogin()&&e.showHelpTip(),e.load()})}else e.updateLocationHref(),p.isLogin()&&e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),c.getMap(e.mapId)]).then(function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;u.screen.isSmall()||L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r),L.Control.loading({position:"topright",separate:!0}).addTo(r),m.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),b=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/registry/item_search_tooltip.html"));m.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a(function(){var e=i&&_.find(n._layers,function(e){return e.options&&e.options.id===i});e&&e.openPopup()},400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:m.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.shop||t.company?"blue":t.association?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer(function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))}),c.addTo(r),e.map.loading=!1,r})},e.load=function(i){if(!i)return c.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var a={fields:{description:e.enableDescription}};return E.load(a).then(function(a){var o={};if(b.clearLayers(),a&&a.length){var r=t("formatPubkey"),s=n.get("plugins/map/templates/registry/popup_marker.html");_.forEach(a,function(t){var n=r(t.pubkey),i=t.index+"_"+t.id.replace(/-/g,"_"),a={layer:t.type,icon:g[t.type],opacity:1,title:t.name+" | "+n,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync(function(){angular.extend(n.formData,t),n.loadingMarker=!1}),n},focus:!1,message:s,id:i};o[i]=a;var l=t.name+" | "+n,c=angular.merge({type:t.type,opacity:0,icon:L.divIcon({className:t.type+" ng-hide",iconSize:L.point(0,0)})},{title:l,pubkey:t.pubkey,name:t.name,popupMarkerId:i});b.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},c))})}e.map.markers=o,e.loading=!1,i.fire("dataload")}).catch(function(t){e.map.markers={},e.loading=!1,u.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)})},e.updateLocationHref=function(t){(o.search()||{}).c&&m.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.$on("centerUrlHash",function(t,n){if(!e.loading)return a(function(){e.updateLocationHref(n)},300)}),e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:angular.isNumber(d.data.helptip.mapwot)?d.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2)){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then(function(e){i.$destroy(),d.data.helptip.mapwot=angular.isNumber(d.data.helptip.mapwot)?Math.max(e,d.data.helptip.mapwot):e,d.store()})}}}function MapHelpTipController(e,t){angular.extend(this,t("HelpTipCtrl",{$scope:e})),e.mapId=void 0,e.startMapWotTour=function(t,n){var i=[function(){return e.showHelpTip("helptip-map-wot",{bindings:{content:"MAP.HELP.TIP.WOT",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-search".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_SEARCH",icon:{position:"center"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-layers".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_LAYERS",icon:{position:"right"},hasNext:n}})}];return e.executeStep("mapwot",i,t)}}angular.module("cesium.settings.services",["ngApi","cesium.config"]).factory("csSettings",["$rootScope","$q","Api","localStorage","$translate","csConfig",function(e,t,n,i,a,o){"ngInject";function r(e){if(!e)return u;if(_.findWhere(c,{id:e}))return e;var t=e.split("-");if(t.length>1)return r(t[0]);var n=_.find(c,function(t){return String.prototype.startsWith.call(t.id,e)});return n?n.id:u}var s,l,c=[{id:"en",label:"English",country:"us"},{id:"en-GB",label:"English (UK)",country:"gb"},{id:"eo-EO",label:"Esperanto"},{id:"fr-FR",label:"Français",country:"fr"},{id:"nl-NL",label:"Nederlands",country:"nl"},{id:"es-ES",label:"Spanish",country:"es"},{id:"it-IT",label:"Italiano",country:"it"}],u=o.fallbackLanguage?r(o.fallbackLanguage):"en",d={STORAGE_KEY:"settings",KEEP_AUTH_IDLE_SESSION:9999},p={timeout:4e3,cacheTimeMs:6e4,timeWarningExpireMembership:5184e3,timeWarningExpire:7776e3,minVersion:"1.1.0",newIssueUrl:"https://git.duniter.org/clients/cesium-grp/cesium/issues/new",userForumUrl:"https://forum.monnaie-libre.fr",latestReleaseUrl:"https://api.github.com/repos/duniter/cesium/releases/latest",duniterLatestReleaseUrl:"https://api.github.com/repos/duniter/duniter/releases/latest",httpsMode:!1},m=angular.merge({useRelative:!1,useLocalStorage:!0,useLocalStorageEncryption:!1,walletHistoryTimeSecond:2592e3,walletHistorySliceSecond:432e3,walletHistoryAutoRefresh:!0,rememberMe:!0,keepAuthIdle:600,showUDHistory:!0,expertMode:!1,decimalCount:4,uiEffects:!0,blockValidityWindow:6,helptip:{enable:!0,installDocUrl:"https://duniter.org/en/wiki/duniter/install/",currency:0,network:0,wotLookup:0,wot:0,wotCerts:0,wallet:0,walletCerts:0,header:0,settings:0},currency:{allRules:!1,allWotRules:!1},wallet:{showPubkey:!0,alertIfUnusedWallet:!0},locale:{id:function(e){var t=r(e);return e!=t&&console.debug("[settings] Fix locale [{0}] -> [{1}]".format(e,t)),t}(o.defaultLanguage||a.use())},license:{en:"license/license_g1-en","fr-FR":"license/license_g1-fr-FR","es-ES":"license/license_g1-es-ES"}},p,o),E={},b=!1,g=new n(this,"csSettings");m.walletHistoryAutoRefresh=!1;var f=function(){return _.keys(E).forEach(function(e){delete E[e]}),v(m),g.data.raisePromise.reset(E).then(I)},T=function(e,t){var n=E;return _.each(e.split("."),function(e){if(n=n[e],angular.isUndefined(n))return void(n=t)}),n},h=function(){if(angular.isUndefined(s)||!angular.equals(s,E))return s=angular.copy(E),g.data.raise.changed(E)},I=function(){if(!b)return console.debug("[setting] Waiting start finished..."),(l||S()).then(I);var e;return e=E.useLocalStorage?!0===E.node.temporary?i.getObject(d.STORAGE_KEY).then(function(e){var t=angular.copy(E);return t.node=e&&e.node||{},delete t.temporary,i.setObject(d.STORAGE_KEY,t)}):i.setObject(d.STORAGE_KEY,E):i.setObject(d.STORAGE_KEY,null),e.then(function(){return E.useLocalStorage&&console.debug("[setting] Saved locally"),g.data.raisePromise.store(E)}).then(h)},v=function(e){if(e){var t=!1;if(e.locale&&e.locale.id){var n=r(e.locale.id);e.locale=_.findWhere(c,{id:n}),t=!E.locale||e.locale.id!==E.locale.id||e.locale.id!==a.use()}_.keys(p).forEach(function(t){e[t]=m[t]}),angular.merge(E,e),(e&&e.node&&!e.node.temporary||!E.node.temporary)&&delete E.node.temporary,t&&a.use(E.locale.id)}},N=function(){var e=Date.now();return i.getObject(d.STORAGE_KEY).then(function(t){if(!t)return console.debug("[settings] No settings in local storage. Using defaults."),v(m),void h();v(t),console.debug("[settings] Loaded from local storage in "+(Date.now()-e)+"ms"),h()})},O=function(){var e=E.locale&&E.locale.id||o.defaultLanguage||"en";return o.license?o.license[e]?o.license[e]:m.license[o.defaultLanguage||"en"]||o.license:void 0},R=function(){var e=a.use();console.debug("[settings] Locale ["+e+"]");try{moment.locale(e.toLowerCase())}catch(t){try{moment.locale(e.substr(0,2))}catch(e){moment.locale("en-gb"),console.warn("[settings] Unknown local for moment lib. Using default [en]")}}try{numeral.language(e.toLowerCase())}catch(t){try{numeral.language(e.substring(0,2))}catch(e){numeral.language("en-gb"),console.warn("[settings] Unknown local for numeral lib. Using default [en]")}}g.locale.raise.changed(e)},A=function(){return b?t.when():l||S()},S=function(){return console.debug("[settings] Starting..."),l=i.ready().then(N).then(function(){console.debug("[settings] Started"),b=!0,l=null,g.data.raise.ready(E)})};return e.$on("$translateChangeSuccess",R),g.registerEvent("data","reset"),g.registerEvent("data","changed"),g.registerEvent("data","store"),g.registerEvent("data","ready"),g.registerEvent("locale","changed"),v(m),{ready:A,start:S,data:E,apply:v,getByPath:T,reset:f,store:I,restore:N,getLicenseUrl:O,defaultSettings:m,api:g,locales:c,constants:d}}]),angular.module("cesium.network.services",["ngApi","cesium.currency.services","cesium.http.services"]).factory("csNetwork",["$rootScope","$q","$interval","$timeout","$window","csConfig","BMA","csHttp","csCurrency","Api",function(e,t,n,i,a,o,r,s,l,c){"ngInject";function u(e){var s,u={UNKNOWN_BUID:-1,MAX_BLOCK_OFFSET:1e3},d="https:"===a.location.protocol,p=new c(this,"csNetwork-"+e),m={bma:null,listeners:[],loading:!0,peers:[],filter:{member:!0,mirror:!0,endpoint:null,online:!1,bma:!1,ssl:void 0,tor:void 0},sort:{type:null,asc:!0,compact:!0},groupBy:"pubkey",expertMode:!1,knownBlocks:[],mainBlock:null,minOnlineBlockNumber:0,uidsByPubkeys:null,searchingPeersOnNetwork:!1,difficulties:null,ws2pHeads:null,timeout:o.timeout},E=function(e){return e&&[e.number,e.hash].join("-")},b=function(){m.bma=null,m.listeners=[],m.peers.splice(0),m.filter={member:!0,mirror:!0,endpoint:null,online:!0,bma:!1,ssl:void 0,tor:void 0},m.sort={type:null,asc:!0},m.groupBy="pubkey",m.expertMode=!1,m.memberPeersCount=0,m.knownBlocks=[],m.mainBlock=null,m.minOnlineBlockNumber=0,m.uidsByPubkeys={},m.loading=!0,m.searchingPeersOnNetwork=!1,m.difficulties=null,m.ws2pHeads=null,m.timeout=o.timeout},g=function(){return m.peers&&m.peers.length>0},f=function(){return m.peers},T=function(){return m.loading},h=function(){return m.knownBlocks},I=function(){return m.bma.network.ws2p.heads().then(function(e){m.ws2pHeads=e.heads?e.heads.reduce(function(e,t){if(t.message&&t.sig)try{var n=new Ws2pMessage(t.message);e[[n.pubkey,n.ws2pid].join("-")]=n}catch(e){console.error("[network] Ignoring WS2P head.",e&&e.message||e)}return e},{}):{}}).catch(function(e){if(e&&e.ucode==r.errorCodes.HTTP_LIMITATION)return i(function(){return I()},3e3);console.error(e),m.ws2pHeads={}})},v=function(){return m.bma.blockchain.stats.difficulties().then(function(e){m.difficulties=e.levels?e.levels.reduce(function(e,t){return t.uid&&t.level&&(e[t.uid]=t.level),e},{}):{}}).catch(function(e){if(e&&e.ucode==r.errorCodes.HTTP_LIMITATION)return i(function(){return v()},3e3);console.error(e),m.difficulties={}})},N=function(){m.peers=[],m.searchingPeersOnNetwork=!0,m.loading=!0,m.bma=m.bma||r;var e=[];s&&n.cancel(s),s=n(function(){e.length?C(e):m.loading&&!m.searchingPeersOnNetwork&&(m.loading=!1,n.cancel(s),D(!0),console.debug("[network] Finish: {0} peers found.".format(m.peers.length)))},1e3);var i=[m.bma.wot.member.uids().then(function(e){m.uidsByPubkeys=e}).catch(function(e){console.error(e),m.uidsByPubkeys={}}),I()];return m.expertMode&&i.push(v()),t.all(i).then(function(){return m.bma.network.peers()}).then(function(n){if(n&&n.peers&&n.peers.length){if(!m.filter.online)return t.all(_(n&&n.peers||[]).reduce(function(t,n){return t.concat(R(n,e))},[]));var i=[];_.forEach(n.peers,function(t){if("UP"===t.status){if(t.blockNumber=t.block&&parseInt(t.block.split("-")[0]),t.blockNumber&&t.blockNumber<m.minOnlineBlockNumber)return void console.debug("[network] Exclude a too old peer document, on pubkey {0}".format(t.pubkey.substring(0,6)));i.push(R(t,e)),_.forEach(t.endpoints||[],function(e){if(e.startsWith("WS2P")){var n=t.pubkey+"-"+e.split(" ")[1];m.ws2pHeads[n]&&(m.ws2pHeads[n].hasEndpoint=!0)}})}});var a=_.values(m.ws2pHeads);if(a&&a.length){var o=0;_.forEach(a,function(t){if(!t.hasEndPoint){var n=t.buid&&parseInt(t.buid.split("-")[0]);if(n&&n<m.minOnlineBlockNumber)return void console.debug("[network] Exclude a too old WS2P message, on pubkey {0}".format(t.pubkey.substring(0,6)));var i=new Peer({buid:t.buid,currentNumber:n,pubkey:t.pubkey,version:t.version,powPrefix:t.powPrefix,online:!0,uid:m.uidsByPubkeys[t.pubkey],bma:{useWs2p:!0,private:!0,ws2pid:t.ws2pid},endpoints:["WS2P "+t.ws2pid]});i.id=i.keyID(),i.uid&&m.expertMode&&m.difficulties&&(i.difficulty=m.difficulties[i.uid]),O(i)&&(e.push(i),o++)}}),o&&console.debug("[http] Found {0} WS2P endpoints without endpoint (private ?)".format(o))}return i.length?t.all(i):void 0}}).then(function(){m.searchingPeersOnNetwork=!1}).catch(function(e){console.error(e),m.searchingPeersOnNetwork=!1})},O=function(e){return!m.filter||!(m.filter.member&&!m.filter.mirror&&!e.uid||m.filter.mirror&&!m.filter.member&&e.uid)&&(!(m.filter.endpoint&&!e.hasEndpoint(m.filter.endpoint))&&(!(m.filter.online&&"UP"!==e.status&&e.oldBlock||!m.filter.online&&"UP"===e.status&&!e.oldBlock)&&((!angular.isDefined(m.filter.bma)||e.isBma()==m.filter.bma)&&((!angular.isDefined(m.filter.ws2p)||e.isWs2p()==m.filter.ws2p)&&((!angular.isDefined(m.filter.ssl)||e.isSsl()==m.filter.ssl)&&(!angular.isDefined(m.filter.tor)||e.isTor()==m.filter.tor))))))},R=function(e,n){n=n||m.newPeers,e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.oldBlock="UP"===e.status&&e.blockNumber&&e.blockNumber<m.minOnlineBlockNumber;var i=A(e),a=!1,o=i.reduce(function(e,t){var i=_.findWhere(m.peers,{id:t.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(S(t).then(function(e){i?!e||e.online!==m.filter.online&&"all"!==m.filter.online?(console.debug("[network] Peer [{0}] removed (cause: {1})".format(t.server,e?e.online?"UP":"DOWN":"filtered")),m.peers.splice(m.peers.indexOf(i),1),a=!0):e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)):!e||e.online!==m.filter.online&&"all"!==m.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),n.push(e),a=!0)}))},[]);return(1===o.length?o[0]:t.all(o)).then(function(){return a})},A=function(e,t){if(!e)return[];var n=new Peer(e);if(!t){var i=n.getEndpoints();if(!i)return[];var a=i.reduce(function(e,t){var n=r.node.parseEndPoint(t);return n?e.concat(n):e},[]);if(a.length>1)return a.reduce(function(t,n){return t.concat(A(e,n))},[]);t=a[0]}return n.bma=t,n.server=n.getServer(),n.dns=n.getDns(),n.buid=n.buid||n.block,n.blockNumber=n.buid&&parseInt(n.buid.split("-")[0]),n.uid=n.pubkey&&m.uidsByPubkeys[n.pubkey],n.id=n.keyID(),[n]},S=function(e){if(!O(e))return t.when();if(!m.filter.online||!m.filter.online&&"DOWN"===e.status||!e.getHost())return e.online=!1,t.when(e);if(e.bma.useWs2p&&m.ws2pHeads){var n=[e.pubkey,e.bma.ws2pid].join("-"),i=m.ws2pHeads[n];return delete m.ws2pHeads[n],i&&(e.buid=i.buid,e.currentNumber=i.buid&&parseInt(i.buid.split("-")[0]),e.version=i.version,e.powPrefix=i.powPrefix),e.online=!!e.buid,e.uid&&m.expertMode&&m.difficulties&&(e.difficulty=m.difficulties[e.uid]),t.when(e)}return e.bma.useWs2p||!d||e.bma.useSsl?e.bma.useTor||e.bma.useWs2p?(e.online="UP"===e.status,e.buid=u.UNKNOWN_BUID,delete e.version,e.uid&&m.expertMode&&m.difficulties&&(e.difficulty=m.difficulties[e.uid]),t.when(e)):(e.api=e.api||r.lightInstance(e.getHost(),e.getPort(),e.isSsl(),m.timeout),e.api.blockchain.current().then(function(t){return e.currentNumber=t.number,e.online=!0,e.buid=E(t),e.medianTime=t.medianTime,-1===m.knownBlocks.indexOf(e.buid)&&m.knownBlocks.push(e.buid),e}).catch(function(t){if(t&&t.ucode==r.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=E({number:0,hash:r.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.bma||e.getBMA();if(n.dns&&-1===e.server.indexOf(n.dns))return e.secondTry=!0,e.api=r.lightInstance(n.dns,n.port,n.useSsl),S(e)}return e.buid=null,e.blockNumber=null,e.currentNumber=null,e.online=!1,e.uid=m.uidsByPubkeys[e.pubkey],e}).then(function(e){if(!(m.filter.online&&e&&e.online&&m.expertMode))return e;var n=[];return e.uid&&n.push(e.api.blockchain.stats.hardship({pubkey:e.pubkey}).then(function(t){e.difficulty=t?t.level:null}).catch(function(){e.difficulty=null})),n.push(e.api.node.summary().then(function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"}).catch(function(){e.software=void 0,e.version="?"})),t.all(n).then(function(){return e})})):(e.online="UP"===e.status,e.buid=u.UNKNOWN_BUID,delete e.version,e.uid&&m.expertMode&&m.difficulties&&(e.difficulty=m.difficulties[e.uid]),t.when(e))},C=function(e,t){if(e=e||m.newPeers,e.length){var n=_.map(m.peers,function(e){return e.id}),i=!1,a=0;_.forEach(e.splice(0),function(e){n[e.id]||(m.peers.push(e),n[e.id]=e,i=!0,a++)}),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),D(t))}},L=function(e,t,n){if(!e)return 0;var i=0;e=e.toLowerCase(),t>e.length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},D=function(e){var t={};m.memberPeersCount=0,_.forEach(m.peers,function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,medianTime:e.medianTime,count:0},t[e.buid]=n),n.buid!==u.UNKNOWN_BUID&&n.count++}m.memberPeersCount+=e.uid?1:0});var n=m.mainBlock;if(m.filter.online&&(_.forEach(_.values(t),function(e){e.pct=100*e.count/m.peers.length}),n=_.max(t,function(e){return e.count}),_.forEach(m.peers,function(e){e.hasMainConsensusBlock=e.buid===n.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-n.medianTime)})),m.peers=_.uniq(m.peers,!1,function(e){return e.id}),m.peers=_.sortBy(m.peers,function(e){var n=0;return m.sort.type&&(n+="uid"===m.sort.type?L(e.uid||e.pubkey,3,m.sort.asc):0,n+="api"===m.sort.type&&(e.isWs2p()&&(m.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(m.sort.asc?.01:-.01)||0)+(e.isSsl()&&(m.sort.asc?.75:-.75)||0)||0,n+="difficulty"===m.sort.type&&e.difficulty?m.sort.asc?1e4-e.difficulty:e.difficulty:0,n+="current_block"===m.sort.type&&e.currentNumber?m.sort.asc?1e9-e.currentNumber:e.currentNumber:0),n*=1e10,n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),m.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?L(e.uid,2,!0):0)):(n+=100*(e.uid?L(e.uid,2,!0):0),n+=1*(e.uid?0:L(e.pubkey,2,!0))),-(n+=e.isBma()?e.isSsl()?.01:.001:0)}),m.groupBy){var i;m.peers.forEach(function(e){e.compacted=i&&e[m.groupBy]&&e[m.groupBy]===i[m.groupBy],i=e})}!e||!n.buid||m.mainBlock&&m.mainBlock.buid===n.buid||(m.mainBlock=n,p.data.raise.mainBlockChanged(n)),p.data.raise.changed(m)},y=function(){_.forEach(m.listeners,function(e){e()}),m.listeners=[]},P=function(){m.listeners=[m.bma.websocket.block().onListener(function(e){if(e&&!m.loading){var t=[e.number,e.hash].join("-");if(-1===m.knownBlocks.indexOf(t)){console.debug("[network] Receiving block: "+t.substring(0,20)),m.knownBlocks.push(t);1===m.knownBlocks.length||(m.loading=!0,i(function(){console.debug("[network] new block received by WS: will refresh peers"),N()},2e3,!1))}}}),m.bma.websocket.peer().onListener(function(e){if(e&&!m.loading){var t=[];R(e,t).then(function(e){e&&(t.length>0?C(t,!0):(console.debug("[network] [ws] Peers updated received"),D(!0)))})}})]},k=function(e){e=e||{},m.filter=e.filter?angular.merge(m.filter,e.filter):m.filter,m.sort=e.sort?angular.merge(m.sort,e.sort):m.sort,D(!1)},M=function(e,t){return t=t||{},r.ready().then(function(){if(w(),m.bma=e||r,m.filter=t.filter?angular.merge(m.filter,t.filter):m.filter,m.sort=t.sort?angular.merge(m.sort,t.sort):m.sort,m.expertMode=angular.isDefined(t.expertMode)?t.expertMode:m.expertMode,m.timeout=angular.isDefined(t.timeout)?t.timeout:o.timeout,m.minOnlineBlockNumber=m.mainBlock&&m.mainBlock.buid&&parseInt(m.mainBlock.buid.split("-")[0])-u.MAX_BLOCK_OFFSET||void 0,void 0===m.minOnlineBlockNumber)return l.blockchain.current(!0).then(function(e){m.minOnlineBlockNumber=e.number-u.MAX_BLOCK_OFFSET})}).then(function(){console.info("[network] Starting network from [{0}]".format(e.server));var t=Date.now();return P(),N().then(function(e){return console.debug("[network] Started in "+(Date.now()-t)+"ms"),e})})},w=function(){m.bma&&(console.info("[network-service] Stopping..."),y(),b())},U=function(){return!m.bma},B=function(e){return U()?t(e):M().then(function(){return t(e)})},x=function(){return B(function(e,t){e(m.mainBuid)})},F=function(){return B(function(e,t){e(m.peers.reduce(function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e},[]))})};return p.registerEvent("data","changed"),p.registerEvent("data","mainBlockChanged"),p.registerEvent("data","rollback"),{id:e,data:m,start:M,close:w,hasPeers:g,getPeers:f,sort:k,getTrustedPeers:F,getKnownBlocks:h,getMainBlockUid:x,loadPeers:N,isBusy:T,api:p}}var d=new u("default");return d.instance=function(e){return new u(e)},d}]),angular.module("cesium.crypto.services",["cesium.utils.services"]).factory("CryptoUtils",["$q","$timeout","ionicReady",function(e,t,n){"ngInject";function i(){this.loaded=!1;var e=this;this.copy=function(t){_.forEach(_.keys(t),function(n){e[n]=t[n]})},this.isLoaded=function(){return this.loaded},this.util=this.util||{},this.util.array_to_string=function(e,t){var n=new Blob([new Uint8Array(e)]),i=new FileReader;i.onload=function(e){t(e.target.result)},i.readAsText(n)}}function a(){function t(e){var t=r("crypto_box_keypair_from_sign_sk","sk",e,p.nacl.nacl_raw._crypto_sign_secretkeybytes()),n=new d(p.nacl.nacl_raw._crypto_box_secretkeybytes());return o("_crypto_sign_ed25519_sk_to_curve25519",p.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(n.address,t)),c(t),p.nacl.crypto_box_keypair_from_raw_sk(n.extractBytes())}function n(e){var t=r("crypto_box_pk_from_sign_pk","pk",e,p.nacl.nacl_raw._crypto_sign_publickeybytes()),n=new d(p.nacl.nacl_raw._crypto_box_publickeybytes());return o("_crypto_sign_ed25519_pk_to_curve25519",p.nacl.nacl_raw._crypto_sign_ed25519_pk_to_curve25519(n.address,t)),c(t),n.extractBytes()}function i(e){var t=r("crypto_box_sk_from_sign_sk","sk",e,p.nacl.nacl_raw._crypto_sign_secretkeybytes()),n=new d(p.nacl.nacl_raw._crypto_box_secretkeybytes());return o("_crypto_sign_ed25519_sk_to_curve25519",p.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(n.address,t)),c(t),n.extractBytes()}function a(e,t,n,i){if(n.length!==i)throw{message:"nacl."+e+" expected "+i+"-byte "+t+" but got length "+n.length}}function o(e,t){if(0!==t)throw{message:"nacl_raw."+e+" signalled an error"}}function r(e,t,n,i,o){return a(e,t,n,i),s(n,o)}function s(e,t){var n=t||0,i=l(e.length+n);p.nacl.nacl_raw.HEAPU8.set(e,i+n);for(var a=i;a<i+n;a++)p.nacl.nacl_raw.HEAPU8[a]=0;return i}function l(e){var t=p.nacl.nacl_raw._malloc(e);if(0===t)throw{message:"malloc() failed",nbytes:e};return t}function c(e){p.nacl.nacl_raw._free(e)}function u(e,t){var n=new Uint8Array(t);return n.set(p.nacl.nacl_raw.HEAPU8.subarray(e,e+t)),n}function d(e){this.length=e,this.address=l(e)}this.id="FullJS",this.scrypt=null,this.nacl=null,this.base58=null,this.base64=null;var p=this;this.util=this.util||{},this.util.decode_utf8=function(e){var t,n=unescape(encodeURIComponent(e)),i=new Uint8Array(n.length);for(t=0;t<n.length;t++)i[t]=n.charCodeAt(t);return i},this.util.encode_utf8=function(e){return p.nacl.encode_utf8(e)},this.util.encode_base58=function(e){return p.base58.encode(e)},this.util.decode_base58=function(e){var t,n=p.base58.decode(e),i=new Uint8Array(n.length);for(t=0;t<n.length;t++)i[t]=n[t];return i},this.util.decode_base64=function(e){return p.base64.decode(e)},this.util.encode_base64=function(e){return p.base64.encode(e)},this.util.hash_sha256=function(t){return e(function(e){var n=p.util.decode_utf8(t);e(p.nacl.to_hex(p.nacl.crypto_hash_sha256(n)).toUpperCase())})},this.util.random_nonce=function(){if(p.crypto&&p.crypto.getRandomValues){var t=new Uint8Array(p.constants.crypto_secretbox_NONCEBYTES);return p.crypto.getRandomValues(t),e.when(t)}return e.when(p.nacl.crypto_box_random_nonce())},this.util.crypto_hash_sha256=function(e){return p.nacl.crypto_hash_sha256(e)},this.util.crypto_scrypt=function(t,n,i,a,o,r){return e(function(e,s){try{e(p.scrypt.crypto_scrypt(t,n,i,a,o,r))}catch(e){s(e)}})},this.box_keypair_from_sign=function(n){return n.boxSk&&n.boxPk?e.when(n):e(function(e,n){try{e(t(signPk))}catch(e){n(e)}})},this.box_pk_from_sign=function(t){return e(function(e,i){try{e(n(t))}catch(e){i(e)}})},this.box_sk_from_sign=function(t){return e(function(e,n){try{e(i(t))}catch(e){n(e)}})},this.box=function(t,n,i,a){return e(function(e,o){if(!t)return void e(t);var r=p.nacl.encode_utf8(t);"string"==typeof i&&(i=p.util.decode_base58(i));try{var s=p.nacl.crypto_box(r,n,i,a);e(p.util.encode_base64(s))}catch(e){o(e)}})},this.box_open=function(t,n,i,a){return e(function(e,o){if(!t)return void e(t);var r=p.util.decode_base64(t);"string"==typeof i&&(i=p.util.decode_base58(i));try{var s=p.nacl.crypto_box_open(r,n,i,a);e(p.nacl.decode_utf8(s))}catch(e){o(e)}})},this.scryptKeypair=function(e,t,n){return p.util.crypto_scrypt(p.util.encode_utf8(t),p.util.encode_utf8(e),n&&n.N||p.constants.SCRYPT_PARAMS.DEFAULT.N,n&&n.r||p.constants.SCRYPT_PARAMS.DEFAULT.r,n&&n.p||p.constants.SCRYPT_PARAMS.DEFAULT.p,p.constants.SEED_LENGTH).then(function(e){var t=p.nacl.crypto_sign_seed_keypair(e),n=p.nacl.crypto_box_seed_keypair(e);return{signPk:t.signPk,signSk:t.signSk,boxPk:n.boxPk,boxSk:n.boxSk}})},this.seedKeypair=function(t){return e(function(e,n){
-var i=p.nacl.crypto_sign_seed_keypair(t),a=p.nacl.crypto_box_seed_keypair(t);e({signPk:i.signPk,signSk:i.signSk,boxPk:a.boxPk,boxSk:a.boxSk})})},this.scryptSignPk=function(t,n,i){return e(function(e,a){try{var o=p.scrypt.crypto_scrypt(p.util.encode_utf8(n),p.util.encode_utf8(t),i&&i.N||p.constants.SCRYPT_PARAMS.DEFAULT.N,i&&i.r||p.constants.SCRYPT_PARAMS.DEFAULT.r,i&&i.p||p.constants.SCRYPT_PARAMS.DEFAULT.p,p.constants.SEED_LENGTH);e(p.nacl.crypto_sign_seed_keypair(o).signPk)}catch(e){a(e)}})},this.verify=function(t,n,i){return e(function(e,a){var o,r=p.util.decode_utf8(t),s=p.util.decode_base64(n),l=p.util.decode_base58(i),c=new Uint8Array(p.constants.crypto_sign_BYTES+r.length);for(o=0;o<p.constants.crypto_sign_BYTES;o++)c[o]=s[o];for(o=0;o<r.length;o++)c[o+p.constants.crypto_sign_BYTES]=r[o];e(null!==p.nacl.crypto_sign_open(c,l))})},this.sign=function(t,n){return e(function(e,i){for(var a=p.util.decode_utf8(t),o=n.signSk,r=p.nacl.crypto_sign(a,o),s=new Uint8Array(p.constants.crypto_sign_BYTES),l=0;l<s.length;l++)s[l]=r[l];e(p.base64.encode(s))})},this.load=function(){var t=e.defer(),n={},i={};"a"!=ionic.Platform.grade.toLowerCase()&&(console.info("Reduce NaCl memory to 16mb,  because plateform grade is not [a] but [{0}]".format(ionic.Platform.grade)),n.requested_total_memory=16777216);var a=0,o=function(){4===++a&&(p.loaded=!0,t.resolve())};return this.async_load_nacl_js(function(e){p.nacl=e,o()},n),this.async_load_scrypt(function(e){p.scrypt=e,p.scrypt.requested_total_memory=i.requested_total_memory,o()},i),this.async_load_base58(function(e){p.base58=e,o()}),p.async_load_base64(function(e){p.base64=e,o()}),t.promise},this.util.hash=p.util.hash_sha256,this.box={keypair:{fromSignKeypair:p.box_keypair_from_sign,skFromSignSk:p.box_sk_from_sign,pkFromSignPk:p.box_pk_from_sign},pack:p.box,open:p.box_open},d.prototype.extractBytes=function(e){var t=u(this.address+(e||0),this.length-(e||0));return c(this.address),this.address=null,t}}function o(){this.id="MiniSodium",this.nacl=null,this.base58=null,this.sha256=null;var t=this;this.util=this.util||{},this.util.decode_utf8=function(e){return t.nacl.to_string(e)},this.util.encode_utf8=function(e){return t.nacl.from_string(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.nacl.from_base64(e)},this.util.encode_base64=function(e){return t.nacl.to_base64(e)},this.util.hash_sha256=function(n){return e.when(t.sha256(n).toUpperCase())},this.util.random_nonce=function(){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)},this.util.crypto_hash_sha256=function(e){return t.nacl.from_hex(t.sha256(e))},this.util.crypto_scrypt=function(n,i,a,o,r,s){var l=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(n,i,a,o,r,s,function(e,t){if(e)return void l.reject(e);l.resolve(t)}),l.promise},this.scryptKeypair=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,function(e,n){if(e)return void o.reject(e);t.nacl.crypto_sign_seed_keypair(n,function(e,n){if(e)return void o.reject(e);var i={signPk:n.pk,signSk:n.sk};t.box_keypair_from_sign(i).then(function(e){i.boxPk=e.pk,i.boxSk=e.sk,o.resolve(i)}).catch(function(e){o.reject(e)})})}),o.promise},this.seedKeypair=function(n){var i=e.defer();return t.nacl.crypto_sign_seed_keypair(n,function(e,t){if(e)return void i.reject(e);i.resolve({signPk:t.pk,signSk:t.sk})}),i.promise},this.scryptSignPk=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,function(e,n){if(e)return void o.reject(e);t.nacl.crypto_sign_seed_keypair(n,function(e,t){if(e)return void o.reject(e);o.resolve(t.pk)})}),o.promise},this.verify=function(n,i,a){var o=e.defer();return t.nacl.crypto_sign_verify_detached(t.nacl.from_base64(i),t.nacl.from_string(n),t.nacl.from_base64(a),function(e,t){if(e)return void o.reject(e);o.resolve(t)}),o.promise},this.sign=function(n,i){var a=e.defer();return t.nacl.crypto_sign(t.nacl.from_string(n),i.signSk,function(e,n){if(e)return void a.reject(e);var i;if(n.length>t.constants.crypto_sign_BYTES){i=new Uint8Array(t.constants.crypto_sign_BYTES);for(var o=0;o<i.length;o++)i[o]=n[o]}else i=n;var r=t.nacl.to_base64(i);a.resolve(r)}),a.promise},this.box_keypair_from_sign=function(n){if(n.boxSk&&n.boxPk)return e.when(n);var i=e.defer(),a={};return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n.signPk,function(e,t){if(e)return void i.reject(e);a.boxPk=t,a.boxSk&&i.resolve(a)}),t.nacl.crypto_sign_ed25519_sk_to_curve25519(n.signSk,function(e,t){if(e)return void i.reject(e);a.boxSk=t,a.boxPk&&i.resolve(a)}),i.promise},this.box_pk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n,function(e,t){if(e)return void i.reject(e);i.resolve(t)}),i.promise},this.box_sk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_sk_to_curve25519(n,function(e,t){if(e)return void i.reject(e);i.resolve(t)}),i.promise},this.box=function(n,i,a,o){if(!n)return e.reject("No message");var r=e.defer(),s=t.nacl.from_string(n);return"string"==typeof a&&(a=t.util.decode_base58(a)),t.nacl.crypto_box_easy(s,i,a,o,function(e,n){if(e)return void r.reject(e);var i=t.util.encode_base64(n);r.resolve(i)}),r.promise},this.box_open=function(n,i,a,o){if(!n)return e.reject("No cypherText");var r=e.defer(),s=t.nacl.from_base64(n);return"string"==typeof a&&(a=t.util.decode_base58(a)),s.length<t.constants.crypto_box_MACBYTES?void r.reject("Invalid cypher content length"):(t.nacl.crypto_box_open_easy(s,i,a,o,function(e,n){if(e)return void r.reject(e);t.util.array_to_string(n,function(e){r.resolve(e)})}),r.promise)},this.load=function(){var n=e.defer();if(window.plugins&&window.plugins.MiniSodium){t.nacl=window.plugins.MiniSodium;var i=0,a=function(){2==++i&&(t.loaded=!0,n.resolve())};t.async_load_base58(function(e){t.base58=e,a()}),t.async_load_sha256(function(e){t.sha256=e,a()})}else n.reject("Cordova plugin 'MiniSodium' not found. Please load Full JS implementation instead.");return n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open}}i.prototype.constants={crypto_sign_BYTES:64,crypto_secretbox_NONCEBYTES:24,crypto_box_MACBYTES:16,SEED_LENGTH:32,SCRYPT_PARAMS:{SIMPLE:{N:2048,r:8,p:1,memory:-1},DEFAULT:{N:4096,r:16,p:1,memory:-1},SECURE:{N:16384,r:32,p:2,memory:33554432},HARDEST:{N:65536,r:32,p:4,memory:134217728},EXTREME:{N:262144,r:64,p:8,memory:536870912}}},i.prototype.async_load_base58=function(e){var n=this;if(null!==Base58)return e(Base58);t(function(){n.async_load_base58(e)},100)},i.prototype.async_load_scrypt=function(e,n){var i=this;null!==scrypt_module_factory?scrypt_module_factory(e,n):t(function(){i.async_load_scrypt(e,n)},100)},i.prototype.async_load_nacl_js=function(e,n){var i=this;null!==nacl_factory?nacl_factory.instantiate(e,n):t(function(){i.async_load_nacl_js(e,n)},100)},i.prototype.async_load_base64=function(e){var t=this;null!==Base64?e(Base64):$timetout(function(){t.async_load_base64(e)},100)},i.prototype.async_load_sha256=function(e){var n=this;if(null!==sha256)return e(sha256);t(function(){n.async_load_sha256(e)},100)},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t};var r=window.crypto||window.msCrypto||window.Crypto;r&&r.getRandomValues&&(i.prototype.crypto=r,i.prototype.util={},i.prototype.util.random_nonce=function(){var t=new Uint8Array(crypto_secretbox_NONCEBYTES);return this.crypto.getRandomValues(t),e.when(t)}),a.prototype=new i,o.prototype=new i;var s=new i;return n().then(function(){console.debug("[crypto] Starting...");var e,t=Date.now();window.plugins&&window.plugins.MiniSodium&&r&&r.getRandomValues?(console.debug("[crypto] Loading 'MiniSodium' implementation..."),e=new o):(console.debug("[crypto] Loading 'FullJS' implementation..."),e=new a),e.load().catch(function(e){throw console.error(e),e}).then(function(){s.copy(e),console.debug("[crypto] Loaded '{0}' implementation in {1}ms".format(s.id,Date.now()-t))})}),s}]).factory("csCrypto",["$q","$rootScope","$timeout","CryptoUtils","UIUtils","Modals",function(e,t,n,i,a,o){"ngInject";function r(e){return new RegExp(e)}function s(e,t){for(var n=Math.max(e.length,t.length),i=new Uint8Array(n),a=0;a<n;++a)i[a]=e[a]^t[a];return i}function l(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n}function c(t,n){return t&&t.content?u(t.content,n):e(function(e,i){if(!t)return i("Argument [file] is missing");var a=new FileReader;a.onload=function(t){u(t.target.result,n).then(e).catch(i)},a.readAsText(t,"utf8")})}function u(t,n){if(!t)return e.reject("Argument [content] is missing");n=n||{},n.withSecret=!!angular.isDefined(n.withSecret)&&n.withSecret,n.defaultType=n.defaultType||"PubSec";var a,o=O.FILE.TYPE_LINE.exec(t),r=o&&o[1];if(!r&&n.defaultType)return u("Type: {0}\n{1}".format(n.defaultType,t),n);if("PubSec"==r){if(!(a=O.FILE.PUB.exec(t)))return e.reject("Missing [pub] field in file, or invalid public key value");var s={signPk:i.base58.decode(a[1])};return n.withSecret?(a=O.FILE.SEC.exec(t))?(s.signSk=i.base58.decode(a[1]),e.resolve(s)):e.reject("Missing [sec] field in file, or invalid secret key value"):e.resolve(s)}return"WIF"==r||"EWIF"==r?(a=O.FILE.DATA.exec(t),a?d(a[1],{type:r,password:n.password}).then(function(e){return e&&!n.withSecret?{signPk:e.signPk}:e}):e.reject("Missing [Data] field in file. This is required for WIF or EWIF format")):n.defaultType?e.reject("Bad file format: missing Type field"):e.reject("Bad file format, unknown type ["+r+"]")}function d(t,n){n=n||{};var a=t&&i.base58.decode(t);return!a||a.length!=N.EWIF.DATA_LENGTH&&a.length!=N.WIF.DATA_LENGTH?e.reject("Invalid WIF or EWIF format (invalid bytes count)."):(n.type=n.type||1==a[0]&&"WIF"||2==a[0]&&"EWIF","WIF"==n.type?p(t):"EWIF"==n.type?"function"!=typeof n.password||(n.password=n.password(),n.password)?"object"==typeof n.password&&n.password.then?n.password.then(function(e){if(!e)throw"CANCELLED";return m(t,e)}):"string"==typeof n.password?m(t,n.password):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):e.reject({message:"Invalid WIF or EWIF format: unknown first byte identifier."}))}function p(t){var n=i.util.decode_base58(t);if(1!=n[0])return e.reject({message:"Invalid WIF v1 format: expected [0x01] as first byte"});if(n.length!=N.WIF.DATA_LENGTH)return e.reject({message:"Invalid WIF v1 format: Data must be a "+N.WIF.DATA_LENGTH+" bytes array, encoded in base 58."});var a=n.slice(0,-2),o=n.slice(1,-2),r=n.slice(-2),s=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(a)).slice(0,2);return i.util.encode_base58(r)!=i.util.encode_base58(s)&&e.reject({message:"Invalid WIF format: bad checksum"}),i.seedKeypair(o)}function m(t,n){var a=i.util.decode_base58(t);if(2!=a[0])return e.reject({message:"Invalid EWIF v1 format: Expected [0x02] as first byte"});if(a.length!=N.EWIF.DATA_LENGTH)return e.reject({message:"Invalid EWIF v1 format: Expected {0} bytes, encoded in base 58.".format(N.EWIF.DATA_LENGTH)});var o=a.slice(0,-2),r=a.slice(-2),c=a.slice(1,5),u=a.slice(5,21),d=a.slice(21,37);return i.util.crypto_scrypt(i.util.encode_utf8(n),c,N.EWIF.SCRYPT_PARAMS.N,N.EWIF.SCRYPT_PARAMS.r,N.EWIF.SCRYPT_PARAMS.p,64).then(function(e){var t=e.slice(0,32),n=e.slice(32,64),i=new aesjs.ModeOfOperation.ecb(n),a=i.decrypt(u),o=i.decrypt(d);return a=new Uint8Array(a),o=new Uint8Array(o),l(s(a,t.slice(0,16)),s(o,t.slice(16,32)))}).then(i.seedKeypair).then(function(e){var t=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(e.signPk)).slice(0,4);if(i.util.encode_base58(c)!==i.util.encode_base58(t))throw{ucode:R.BAD_PASSWORD,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"};var n=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2);if(i.util.encode_base58(r)!=i.util.encode_base58(n))throw{ucode:R.BAD_CHECKSUM,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_CHECKSUM"};return e})}function E(t){var n=i.seed_from_signSk(t.signSk);if(!n||n.byteLength!==i.constants.SEED_LENGTH)throw"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH);var a=new Uint8Array(1);a[0]=1;var o=l(a,n),r=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2),s=l(o,r);return e.when(i.util.encode_base58(s))}function b(t,n){var a=i.seed_from_signSk(t.signSk);if(!a||a.byteLength!==i.constants.SEED_LENGTH)return e.reject({message:"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH)});var o=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t.signPk)).slice(0,4);return i.util.crypto_scrypt(i.util.encode_utf8(n),o,N.EWIF.SCRYPT_PARAMS.N,N.EWIF.SCRYPT_PARAMS.r,N.EWIF.SCRYPT_PARAMS.p,64).then(function(e){var t=e.slice(0,32),n=e.slice(32,64),r=s(a.slice(0,16),t.slice(0,16)),c=s(a.slice(16,32),t.slice(16,32)),u=new aesjs.ModeOfOperation.ecb(n),d=u.encrypt(r),p=u.encrypt(c);d=new Uint8Array(d),p=new Uint8Array(p);var m=new Uint8Array(1);return m[0]=2,m=l(m,o),m=l(m,d),m=l(m,p),m=l(m,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(m)).slice(0,2)),i.util.encode_base58(m)})}function g(t,n){switch(n=n||{},n.type=n.type||"PubSec",n.type){case"PubSec":return e.resolve("Type: PubSec\nVersion: 1\npub: "+i.base58.encode(t.signPk)+"\nsec: "+i.base58.encode(t.signSk)+"\n");case"WIF":return E(t).then(function(e){return"Type: WIF\nVersion: 1\nData: "+e+"\n"});case"EWIF":return n.password?n.password&&"function"==typeof n.password&&(console.debug("[crypto] [EWIF] Executing 'options.password()' to resolve the password..."),n.password=n.password(),!n.password)?e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):n.password&&"object"==typeof n.password&&n.password.then?n.password.then(function(e){if(!e)throw"CANCELLED";return g(t,angular.merge({},n,{password:e}))}):n.password&&"string"==typeof n.password?b(t,n.password).then(function(e){return"Type: EWIF\nVersion: 1\nData: "+e+"\n"}):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Missing EWIF options.password."});default:return e.reject({message:"Unknown keyfile format: "+n.type})}}function f(e){var t=i.util.decode_base58(e);return i.util.encode_base58(i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t))).substring(0,3)}function T(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([i.box.keypair.skFromSignSk(t.signSk),i.box.keypair.pkFromSignPk(t.signPk)]).then(function(e){return{boxSk:e[0],boxPk:e[1]}})}function h(t,n,a,o,r){if(a=a||"recipient",!t[a])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});o=o||"content","string"==typeof o&&(o=[o]),t=angular.copy(t);var s=i.util.decode_base58(t[a]);return e.all([T(n),i.box.keypair.pkFromSignPk(s),r?e.when(r):i.util.random_nonce()]).then(function(n){var a=n[0],r=a.boxSk,s=n[1],l=n[2];return e.all(o.reduce(function(e,n){return t[n]?e.concat(i.box.pack(t[n],l,s,r)):e},[])).then(function(e){var n=0;return _.forEach(o,function(i){t[i]?t[i]=e[n++]:t[i]=null}),t.nonce=i.util.encode_base58(l),t})})}function I(t,n,a,o){a=a||"issuer","string"==typeof(o=o||"content")&&(o=[o]);var r=Date.now(),s={},l=[T(n)];return e.all(t.reduce(function(e,t){var n=t[a];if(!n)throw"Record has no "+a;return s[n]?res:e.concat(i.box.keypair.pkFromSignPk(i.util.decode_base58(n)).then(function(e){s[n]=e}))},l)).then(function(n){var r=n[0];return e.all(t.reduce(function(e,t){var n=s[t[a]],l=i.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.reduce(function(e,a){return t[a]?e.concat(i.box.open(t[a],l,n,r.boxSk).then(function(e){t[a]=e}).catch(function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+a),t.valid=!1})):e},[]))},[]))}).then(function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-r)+"ms"),t})}function v(e,t){return t=t||{},t.withSecret=!angular.isDefined(t.withSecret)||t.withSecret,t.silent=!!angular.isDefined(t.withSecret)&&t.silent,t.password=function(){return a.loading.hide(100).then(function(){return o.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:t.error,scope:t.scope})}).then(function(e){return n(function(){return e&&a.loading.show(),e},150)})},t.silent||a.loading.show(),d(e,t).then(function(e){return e}).catch(function(n){if(!n||"CANCELLED"!==n){if(n&&n.ucode==R.BAD_PASSWORD)return v(e,{withSecret:t.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw console.error("[crypto] Unable to parse as WIF or EWIF format: "+(n&&n.message||n)),n}})}var N={WIF:{DATA_LENGTH:35},EWIF:{SALT_LENGTH:4,DERIVED_HALF_LENGTH:16,DATA_LENGTH:39,SCRYPT_PARAMS:{N:16384,r:8,p:8}},REGEXP:{PUBKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",SECKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88}",FILE:{TYPE_LINE:"^Type: ([a-zA-Z0-9]+)\n",VERSION:"Version: ([0-9]+)\n",PUB:"[Pp]ub: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\n",SEC:"[Ss]ec: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88})(\n|$)",DATA:"[Dd]ata: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)(\n|$)"}}},O={FILE:{TYPE_LINE:r(N.REGEXP.FILE.TYPE_LINE),VERSION:r(N.REGEXP.FILE.VERSION),PUB:r(N.REGEXP.FILE.PUB),SEC:r(N.REGEXP.FILE.SEC),DATA:r(N.REGEXP.FILE.DATA)}},R={BAD_PASSWORD:3001,BAD_CHECKSUM:3002};return{errorCodes:R,constants:N,util:angular.extend({pkChecksum:f},i.util),keyfile:{read:c,parseData:v,generateContent:g},box:{getKeypair:T,pack:h,open:I}}}]),angular.module("cesium.utils.services",[]).factory("ionicReady",["$ionicPlatform",function(e){"ngInject";var t;return function(){return t||(t=e.ready()),t}}]).factory("UIUtils",["$ionicLoading","$ionicPopup","$ionicConfig","$ionicHistory","$translate","$q","ionicMaterialInk","ionicMaterialMotion","$window","$timeout","Fullscreen","$cordovaToast","$ionicPopover","$state","$rootScope","screenmatch",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){"ngInject";function g(e,n){return e?o(function(i){a([e,n,"ERROR.POPUP_TITLE","ERROR.UNKNOWN_ERROR","COMMON.BTN_OK"]).then(function(a){var o=e.message||a[e];return t.show({template:"<p>"+(o||a["ERROR.UNKNOWN_ERROR"])+"</p>",title:a["ERROR.POPUP_TITLE"],subTitle:a[n],buttons:[{text:"<b>"+a["COMMON.BTN_OK"]+"</b>",type:"button-assertive",onTap:function(e){i(e)}}]})})}):o.when()}function f(e,n){return o(function(i){a([e,n,"INFO.POPUP_TITLE","COMMON.BTN_OK"]).then(function(a){t.show({template:"<p>"+a[e]+"</p>",title:a["INFO.POPUP_TITLE"],subTitle:a[n],buttons:[{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(e){i(e)}}]})})})}function T(){return f("INFO.FEATURES_NOT_IMPLEMENTED")}function h(e,n,i){return n=n||"CONFIRM.POPUP_TITLE",i=i||{},i.cssClass=i.cssClass||"confirm",i.okText=i.okText||"COMMON.BTN_OK",i.cancelText=i.cancelText||"COMMON.BTN_CANCEL",a([e,n,i.cancelText,i.okText]).then(function(a){return t.confirm({template:a[e],cssClass:i.cssClass,title:a[n],cancelText:a[i.cancelText],cancelType:i.cancelType,okText:a[i.okText],okType:i.okType})})}function I(t){return t?c(function(){return e.hide()},t):e.hide()}function v(t){return j?(t=t||{},t.template=t.template||j,e.show(t)):a("COMMON.LOADING").then(function(e){return j=e,v(t)})}function N(t){return e._getLoader().then(function(e){if(e&&e.isShown)return t&&t.template?a(t&&t.template).then(function(n){return t.template=n,e}):void 0}).then(function(e){if(e&&e.isShown)return v(t)})}function O(e,t,n){return t=t||"short",n=n||"bottom",a([e]).then(function(i){if(window.cordova)return void d.show(i[e],t,n)})}function R(e,t){return function(n){var i,a=e;if(n&&n.message?(a=n.message,i=e):e||(a=n),!t)return"CANCELLED"==a?I(10):(I(10),g(a,i));t(a)}}function A(){return z.smallscreen.active}function S(e){if(e.value||"text"==e.type||"textarea"==e.type)l.getSelection&&!l.getSelection().toString()&&e.setSelectionRange(0,e.value.length);else if(e.childNodes&&e.childNodes.length>0)S(e.childNodes[0]);else{var t=l.document.createRange();t.selectNodeContents(e);var n=l.getSelection();n.removeAllRanges(),n.addRange(t)}}function C(){var e="";return window.getSelection&&(e=l.getSelection().toString()),e}function L(e,t,n){return function(t){var i,a=t.target.width,o=t.target.height,r=n?K.THUMB_MAX_WIDTH:K.MAX_WIDTH,s=n?K.THUMB_MAX_HEIGHT:K.MAX_HEIGHT,l=document.createElement("canvas");if(n){a>o?(a*=s/o,o=s):(o*=r/a,a=r),l.width=r,l.height=s,i=l.getContext("2d");var c=Math.trunc((r-a)/2+.5),u=Math.trunc((s-o)/2+.5);i.drawImage(t.target,c,u,r+-2*c,s+-2*u)}else a>o?a>r&&(o*=r/a,a=r):o>s&&(a*=s/o,o=s),l.width=a,l.height=o,i=l.getContext("2d"),i.drawImage(t.target,0,0,l.width,l.height);var d=l.toDataURL();l.remove(),e(d)}}function D(e,t){var n=document.createElement("img");return o(function(i,a){if(e){var o=new FileReader;o.onload=function(e){n.onload=L(i,a,t),n.src=e.target.result},o.readAsDataURL(e)}else a("no file to resize")}).then(function(e){return n.remove(),e})}function y(e,t){var n=document.createElement("img");return o(function(i,a){n.onload=L(i,a,t),n.src=e}).then(function(e){return n.remove(),e})}function P(e,t){var n=Math.PI/180,i=90*n;return function(t){var n=t.target.width,a=t.target.height,o=K.MAX_WIDTH,r=K.MAX_HEIGHT;n>a?n>o&&(a*=o/n,n=o):a>r&&(n*=r/a,a=r);var s=document.createElement("canvas");s.width=a,s.height=n;var l=s.getContext("2d");l.rotate(i),l.drawImage(t.target,0,-1*s.width);var c=s.toDataURL();s.remove(),e(c)}}function k(e,t){var n=document.createElement("img");return o(function(i,a){n.onload=P(i,a,t),n.src=e}).then(function(e){return n.remove(),e})}function M(e,t){var n=o.defer();t=t||{},t.templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_copy.html",t.scope=t.scope||E,t.scope.popovers=t.scope.popovers||{},t.autoselect=t.autoselect||!1,t.autoremove=!angular.isDefined(t.autoremove)||t.autoremove,t.backdropClickToClose=!angular.isDefined(t.backdropClickToClose)||t.backdropClickToClose,t.focusFirstInput=!!angular.isDefined(t.focusFirstInput)&&t.focusFirstInput;var i=function(i){i=i||t.scope.popovers[t.templateUrl],i.isResolved=!1,i.deferred=n,i.options=t,t.bindings&&angular.merge(i.scope,t.bindings),c(function(){i.show(e).then(function(){var e;t.autoselect?(e=document.querySelectorAll(t.autoselect)[0])&&(l.getSelection&&!l.getSelection().toString()?(e.setSelectionRange(0,e.value.length),e.focus()):e.focus()):t.autofocus&&(e=document.querySelectorAll(t.autofocus)[0])&&e.focus(),i.scope.$parent.$emit("popover.shown"),t.afterShow&&t.afterShow(i)})})},a=function(e){(e=e||t.scope.popovers[t.templateUrl])&&(delete t.scope.popovers[t.templateUrl],e.remove().then(function(){angular.element(l.document.querySelectorAll("body")[0]).removeClass("popover-open")}))},r=t.scope.popovers[t.templateUrl];return r?i(r):p.fromTemplateUrl(t.templateUrl,{scope:t.scope,backdropClickToClose:t.backdropClickToClose}).then(function(e){e.isResolved=!1,e.scope.closePopover=function(t){var n=e.options&&e.options.autoremove;e.options&&delete e.options.autoremove,e.hide().then(function(){if(n)return a(e)}).then(function(){e.deferred&&e.deferred.resolve(t),delete e.deferred,delete e.options})},e.scope.$on("popover.hidden",function(){e.options&&e.options.afterHidden&&e.options.afterHidden(),e.options&&e.options.autoremove&&a(e)}),t.scope.$on("$remove",function(){e.deferred&&e.deferred.resolve(),a()}),t.scope.popovers[t.templateUrl]=e,i(e)}),n.promise}function w(e,t){var n=t&&t.indexOf("\n")>=0?t.split("\n").length:1;return M(e,{templateUrl:"templates/common/popover_copy.html",bindings:{value:t,rows:n},autoselect:".popover-copy "+(n<=1?"input":"textarea")})}function U(e,t){return t=t||{},t.templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_share.html",t.autoselect=t.autoselect||".popover-share input",t.bindings=t.bindings||{},t.bindings.value=t.bindings.value||t.bindings.url||m.href(m.current,m.params,{absolute:!0}),t.bindings.postUrl=t.bindings.postUrl||t.bindings.value,t.bindings.postMessage=t.bindings.postMessage||"",t.bindings.titleKey=t.bindings.titleKey||"COMMON.POPOVER_SHARE.TITLE",M(e,t)}function B(e,t){var n="string"==typeof e&&e?l.document.getElementById(e):e;e||n||!t.selector||(n=l.document.querySelector(t.selector)),t=t||{};var i=t.deferred||o.defer();if(n&&!t.timeout)t.preAction&&n[t.preAction](),t.templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_helptip.html",t.autofocus=t.autofocus||"#helptip-btn-ok",t.bindings=t.bindings||{},t.bindings.icon=t.bindings.icon||{},t.bindings.icon.position=t.bindings.icon.position||!1,t.bindings.icon.glyph=t.bindings.icon.glyph||(t.bindings.icon.position&&t.bindings.icon.position.startsWith("bottom-")?"ion-arrow-down-c":"ion-arrow-up-c"),t.bindings.icon.class=t.bindings.icon.class||"calm icon "+t.bindings.icon.glyph,t.bindings.tour=!!angular.isDefined(t.bindings.tour)&&t.bindings.tour,M(n,t).then(function(e){t.postAction&&n[t.postAction](),i.resolve(e)}).catch(function(e){t.postAction&&n[t.postAction](),i.reject(e)});else if(t.timeout){var a=t.timeout;t.retryTimeout=t.retryTimeout||a,delete t.timeout,t.deferred=i,c(function(){B(e,t)},a)}else angular.isDefined(t.retry)&&!t.retry?c("continue"===t.onError?function(){i.resolve(!0)}:function(){i.reject("[helptip] element now found: "+e)}):(t.retry=angular.isUndefined(t.retry)?2:t.retry-1,t.deferred=i,c(function(){B(e,t)},t.timeout||t.retryTimeout||100));return i.promise}function x(e,t){t||(t=900),c(function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,function(t){t.id==e&&t.classList.toggle("on",!0)})},t)}function F(e,t){t||(t=10),c(function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,function(t){t.id==e&&t.classList.toggle("on",!1)})},t)}function H(e,t){var n=A()?100:10,i=".list.{0} .item, .list .{0} .item".format(t,t);return{ionListClass:t,show:function(t){return t=t||{},t.selector=t.selector||i,t.ink=!angular.isDefined(t.ink)||t.ink,t.startVelocity=t.startVelocity||(A()?1100:3e3),c(function(){t.ink&&Y.ink(),e(t)},t.timeout||n)}}}function W(e){if(Y.motion.enable!==e){if(console.debug("[UI] [effects] "+(e?"Enable":"Disable")),Y.motion.enable=e,e)n.views.transition("platform"),angular.merge(Y.motion,$.motion);else{n.views.transition("none");var t={class:void 0,show:function(){}};angular.merge(Y.motion,{enable:!1,default:t,fadeSlideIn:t,fadeSlideInRight:t,panInLeft:t,pushDown:t,ripple:t,slideUp:t,fadeIn:t,toggleOn:V,toggleOff:G}),E.motion=t}i.clearCache()}}function V(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOn selector"),!1;c(function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,function(e){e.classList.toggle("on",!0)})},t||100)}function G(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOff selector"),!1;c(function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,function(e){e.classList.toggle("on",!1)})},t||900)}var Y,j=null,K={MAX_HEIGHT:480,MAX_WIDTH:640,THUMB_MAX_HEIGHT:200,THUMB_MAX_WIDTH:200},z={smallscreen:b.bind("xs, sm",E)},$={};return $.motion={enable:!0,default:H(s.ripple,"animate-ripple"),blinds:H(s.blinds,"animate-blinds"),fadeSlideIn:H(s.fadeSlideIn,"animate-fade-slide-in"),fadeSlideInRight:H(s.fadeSlideInRight,"animate-fade-slide-in-right"),panInLeft:H(s.panInLeft,"animate-pan-in-left"),pushDown:H(s.pushDown,"push-down"),ripple:H(s.ripple,"animate-ripple"),slideUp:H(s.slideUp,"slide-up"),fadeIn:H(function(e){V(e)},"fade-in"),toggleOn:V,toggleOff:G},Y={alert:{error:g,info:f,confirm:h,notImplemented:T},loading:{show:v,hide:I,update:N},toast:{show:O},onError:R,screen:{isSmall:A,fullscreen:u},ink:r.displayEffect,motion:$.motion,setEffects:W,fab:{show:x,hide:F},popover:{show:M,copy:w,share:U,helptip:B},selection:{select:S,get:C},image:{resizeFile:D,resizeSrc:y,rotateSrc:k},raw:$}}]).factory("$focus",["$timeout","$window",function(e,t){"ngInject";return function(n){e(function(){var e=t.document.getElementById(n);e&&e.focus()})}}]),angular.module("cesium.cache.services",["angular-cache"]).factory("csCache",["$http","$window","csSettings","CacheFactory",function(e,t,n,i){"ngInject";function a(e,a,o){e=e||"csCache-",a=a||s.SHORT;var r=e+a,c=n.data.useLocalStorage&&t.localStorage?"localStorage":"memory";if(o){for(var u=1;i.get(r+u);)u++;return r+=u,l[r]||(l[r]=!0),console.debug("[cache] Creating cache {0} with 'onExpire' option...".format(r)),i.createCache(r,{maxAge:a,deleteOnExpire:"aggressive",recycleFreq:a,onExpire:o,storageMode:c})}return l[r]||(l[r]=!0,console.debug("[cache] Creating cache {0}...".format(r))),i.get(r)||i.createCache(r,{maxAge:a,deleteOnExpire:"passive",recycleFreq:Math.max(a-1e3,3e5),storageMode:c})}function o(){console.debug("[cache] cleaning all caches"),_.forEach(_.keys(l),function(e){var t=i.get(e);t&&t.removeAll()})}function r(e){_.forEach(_.keys(l),function(t){if(t.startsWith(e)){var n=i.get(t);n&&n.removeAll()}})}var s={VERY_LONG:54e6,LONG:36e5,MEDIUM:3e5,SHORT:n.defaultSettings.cacheTimeMs},l=[];return{get:a,clear:r,clearAll:o,constants:s}}]),angular.module("cesium.modal.services",["cesium.utils.services"]).controller("EmptyModalCtrl",function(){"ngInject"}).controller("AboutModalCtrl",["$scope","UIUtils","csHttp",function(e,t,n){"ngInject";e.openLink=function(e,i,a){return a=a||{},a.onError=function(){return t.popover.copy(e,i)},n.uri.open(i,a)}}]).factory("ModalUtils",["$ionicModal","$rootScope","$q","$injector","$controller","$timeout","Device",function(e,t,n,i,a,o,r){"ngInject";function s(e){var t={isControllerAs:!1,controllerName:"",propName:""},n=(e||"").trim().split(/\s+/);return t.isControllerAs=3===n.length&&"as"===(n[1]||"").toLowerCase(),t.isControllerAs?(t.controllerName=n[0],t.propName=n[2]):t.controllerName=e,t}function l(e,t,i){e.deferred=t||n.defer(),e.resolved=!1,e.openModal=function(){return e.modal.show()},e.hideModal=function(){return e.modal.hide()},e.closeModal=function(t){return e.resolved=!0,r.enable&&r.keyboard.close(),e.modal.remove().then(function(){return document.body.classList.remove("modal-open"),e.deferred.resolve(t),t})},e.setForm=function(t,n){n?e[n]=t:e.form=t},e.getParameters=function(){return i},e.$on("modal.hidden",function(){e.resolved||(e.resolved=!0,o(function(){return e.deferred.resolve(),e.modal.remove().then(function(){document.body.classList.remove("modal-open")})},(e.modal.hideDelay||320)+20))})}function c(i,o,r,c){var u=n.defer();c=c||{},c.animation=c.animation||"slide-in-up";if(c.focusFirstInput=!1,o){c.scope=c.scope?c.scope.$new():t.$new(),l.call({},c.scope,u,r);var d={$scope:c.scope,parameters:r},p=s(o),m=a(o,d);p.isControllerAs&&(m.openModal=c.scope.openModal,m.closeModal=c.scope.closeModal)}return e.fromTemplateUrl(i,c).then(function(e){if(o)e.scope.$parent.modal=e;else{var t=e.scope;l.call({},t,u,r),t.modal=e}return e.show()},function(e){u.reject(e)}),u.promise}return{show:c}
-}]).factory("Modals",["$rootScope","$translate","$ionicPopup","$timeout","ModalUtils","UIUtils",function(e,t,n,i,a,o){"ngInject";function r(e){var t=o.screen.isSmall();return a.show("templates/wallet/modal_transfer.html","TransferModalCtrl",e,{focusFirstInput:!t})}function s(e){return a.show("templates/login/modal_login.html","LoginModalCtrl",e,{focusFirstInput:!0,backdropClickToClose:!1})}function l(e){return a.show("templates/wot/modal_lookup.html","WotLookupModalCtrl",e||{},{focusFirstInput:!0})}function c(e){return a.show("templates/network/modal_network.html","NetworkLookupModalCtrl",e,{focusFirstInput:!0})}function u(e){return a.show("templates/modal_about.html","AboutModalCtrl",e)}function d(e){return a.show("templates/wallet/modal_security.html","WalletSecurityModalCtrl",e)}function p(e){return a.show("templates/join/modal_choose_account_type.html","JoinChooseAccountTypeModalCtrl",e).then(function(e){if(e)return"member"==e.accountType?m(e):E(e)})}function m(e){return a.show("templates/join/modal_join_member.html","JoinModalCtrl",e)}function E(e){return a.show("templates/join/modal_join_wallet.html","JoinModalCtrl",e)}function b(e){return a.show("templates/help/modal_help.html","HelpModalCtrl",e)}function g(e){return a.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl",e)}function _(e){return a.show("templates/wot/modal_select_pubkey_identity.html","WotSelectPubkeyIdentityModalCtrl",e)}function f(e){return a.show("templates/wallet/list/modal_wallets.html","WalletSelectModalCtrl",e)}function T(i){i=i||{},i.title=i.title||"COMMON.SET_PASSWORD_TITLE",i.subTitle=i.subTitle||"COMMON.SET_PASSWORD_SUBTITLE";var a=i.scope?i.scope.$new():e.$new();return a.formData={password:void 0},a.setForm=function(e){a.form=e},a.submit=function(e){a.form.$submitted=!0,e&&e.preventDefault&&e.preventDefault(),a.form.$valid&&a.formData.password&&i.popup.close(a.formData.password)},a.error=i.error||void 0,t([i.title,i.subTitle,"COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then(function(e){return i.popup=n.show({templateUrl:"templates/common/popup_password.html",title:e[i.title],subTitle:e[i.subTitle],scope:a,buttons:[{text:e["COMMON.BTN_CANCEL"]},{text:e["COMMON.BTN_OK"],type:"button-positive",onTap:a.submit}]}),i.popup})}return{showTransfer:r,showLogin:s,showWotLookup:l,showNetworkLookup:c,showAbout:u,showJoin:p,showJoinMember:m,showJoinWallet:E,showHelp:b,showAccountSecurity:d,showLicense:g,showSelectPubkeyIdentity:_,showSelectWallet:f,showPassword:T}}]).factory("csPopovers",["$rootScope","$translate","$ionicPopup","$timeout","UIUtils","$controller",function(e,t,n,i,a,o){"ngInject";function r(t,n){n=n||{};var i=n.parameters||{};delete n.parameters;var r=n.scope&&n.scope.$new()||e.$new(!0);n.scope=r,n.templateUrl="templates/wallet/list/popover_wallets.html",n.autoremove=!0,angular.extend(this,o("WalletSelectPopoverCtrl",{$scope:n.scope,parameters:i}));var s=n.afterShow;return n.afterShow=function(e){r.closePopover=function(t){e.scope.closePopover(t)},s&&s(e)},a.popover.show(t,n).then(function(e){return r.$destroy(),e})}return{showSelectWallet:r}}]),angular.module("cesium.http.services",["cesium.cache.services"]).factory("csHttp",["$http","$q","$timeout","$window","csSettings","csCache","Device",function(e,t,n,i,a,o,r){"ngInject";function s(e,t){return e?e+(t&&80!=t&&443!=t?":"+t:""):null}function l(e,t,n,i){return(443==t||i?"https":"http")+"://"+s(e,t)+(n||"")}function c(e,t,n,i){return(443==t||i?"wss":"ws")+"://"+s(e,t)+(n||"")}function u(e,t,n,i){e(t&&t.message?t:404==i?{ucode:404,message:"Resource not found"+(n?" ("+n+")":"")}:n?"Error while requesting ["+n+"]":"Unknown error from node")}function d(e,t,n,i){var a=[],o={},r=e;return"object"==typeof t&&(a=_.keys(t)),_.forEach(a,function(e){var n=r;r=r.replace(":"+e,t[e]),n===r&&(o[e]=t[e])}),n.params=o,i(r,n)}function p(n,i,a,o,r){if(!n)return t.reject("[http] invalid URL from host: "+n);var s=l(n,i,a,o);return function(n){return t(function(t,i){d(s,n,{timeout:r||O,responseType:"json"},function(n,a){e.get(n,a).success(function(e,n,i,a){t(e)}).error(function(e,t,a,o){u(i,e,n,t)})})})}}function m(n,i,a,r,s,c,p,m){var E=l(n,i,a,r);return s=s||o.constants.LONG,function(n){return t(function(t,i){var a={timeout:p||O,responseType:"json"};a.cache=c?o.get(m,s,function(t,n,i){console.debug("[http] Refreshing cache for ["+t+"] "),e.get(t,a).success(function(e){a.cache.put(t,e),i&&i(t,e)})}):o.get(m,s),d(E,n,a,function(n,a){e.get(n,a).success(function(e){t(e)}).error(function(e,t){u(i,e,n,t)})})})}}function E(n,i,a,o,r){var s=l(n,i,a,o);return function(n,i){return t(function(t,a){d(s,i,{timeout:r||O,headers:{"Content-Type":"application/json;charset=UTF-8"}},function(i,o){e.post(i,n,o).success(function(e){t(e)}).error(function(e,t){u(a,e,i,t)})})})}}function b(e,i,o,r,s){function l(e){if(!e.delegate)throw new Error("Websocket not opened");return 1==e.delegate.readyState?t.when(e.delegate):3==e.delegate.readyState?t.reject("Unable to connect to websocket ["+e.delegate.url+"]"):(e.waitDuration>=s?(e.waitRetryDelay=e.waitRetryDelay&&Math.min(e.waitRetryDelay+2e3,3e4)||2e3,console.debug("[http] Will retry websocket [{0}] in {1}s...".format(e.path,Math.round(e.waitRetryDelay/1e3)))):Math.round(e.waitDuration/1e3)%10==0&&console.debug("[http] Waiting websocket ["+e.path+"]..."),n(function(){return e.waitDuration+=e.waitRetryDelay,l(e)},e.waitRetryDelay))}function u(e,t,n){return e.delegate||(e.path=o,e.callbacks=[],e.waitDuration=0,e.waitRetryDelay=200,d(E,n,{},function(t){e.delegate=new WebSocket(t),e.delegate.onerror=function(t){e.delegate.readyState=3},e.delegate.onmessage=function(t){var n=JSON.parse(t.data);_.forEach(e.callbacks,function(e){e(n)})},e.delegate.onopen=function(t){console.debug("[http] Listening on websocket ["+e.path+"]..."),R.push(e),e.delegate.openTime=Date.now()},e.delegate.onclose=function(t){var i=_.findIndex(R,function(t){return t.path===e.path});i>=0&&R.splice(i,1),e.delegate.closing?e.delegate=null:e.delegate.openTime?(console.debug("[http] Unexpected close of websocket [{0}] (open {1} ms ago): re-opening...",o,Date.now()-e.delegate.openTime),e.delegate=null,u(e,null,n)):t&&(console.debug("[http] TODO -- Unexpected close of websocket [{0}]: error code: ".format(o),t),e.delegate=null,u(e,null,n))}})),t&&e.callbacks.push(t),l(e)}function p(e){e.delegate&&(e.delegate.closing=!0,console.debug("[http] Closing websocket ["+e.path+"]..."),e.delegate.close(),e.callbacks=[],e.onclose&&e.onclose())}function m(e,t){e.callbacks=_.reject(e.callbacks,function(e){return e===t}),e.callbacks.length||p(e)}if(!o)throw console.error("calling csHttp.ws without path argument"),"calling csHttp.ws without path argument";var E=c(e,i,o,r);return s=s||a.data.timeout,{open:function(e){return u(this,null,e)},on:function(e,t){return u(this,e,t)},onListener:function(e,t){var n=this;return u(n,e,t),function(){m(n,e)}},send:function(e){var t=this;return l(t).then(function(){t.delegate&&t.delegate.send(e)})},close:function(){p(this)},isClosed:function(){var e=this;return!e.delegate||e.delegate.closing}}}function g(){R.length>0&&(console.debug("[http] Closing all websocket..."),_.forEach(R,function(e){e.close()}),R=[])}function f(e){var t;e.startsWith("duniter://")&&(t="duniter",e=e.replace("duniter://","http://"));var n=document.createElement("a");n.href=e;var i=n.pathname;i&&i.startsWith("/")&&(i=i.substring(1));var a={protocol:t||n.protocol,hostname:n.hostname,host:n.host,port:n.port,username:n.username,password:n.password,pathname:i,search:n.search,hash:n.hash};return n.remove(),a}function T(e,t){if(t=t||{},!e.startsWith("http://")&&!e.startsWith("https://")){var n=f(e);if(!n.protocol&&t.type&&(n.protocol="email"==t.type?"mailto:":"phone"==t.type?"tel:":"",e=n.protocol+e),"mailto:"==n.protocol&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open 'mailto:' URI into external tool.")}if(!(("mailto:"==n.protocol||"tel:"==n.protocol)&&r.enable))return void(t.onError&&"function"==typeof t.onError&&t.onError(e))}var a=t.target||(r.enable?"_system":"_blank");if("_blank"===a||"_system"===a&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open URI into external browser.")}var o;if("_blank"===a&&r.isDesktop()){if(nw&&nw.Shell)return nw.Shell.openExternal(e),!1;o="location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1",i.screen&&i.screen.width&&i.screen.height&&(o+=",width={0},height={1}".format(Math.trunc(i.screen.width/2),Math.trunc(i.screen.height/2)))}var s=i.open(e,a,o);o&&i.screen&&i.screen.width&&i.screen.height&&(s.moveTo(i.screen.width/2/2,i.screen.height/2/2),s.focus())}function h(){return moment().utc().unix()}function I(e){return/^\d+$/.test(e)}function v(e,t){function n(e){for(var t=0;t<e.length;++t)if(!I(e[t]))return!1;return!0}var i=e.split("."),a=t.split(".");if(!n(i)||!n(a))return NaN;for(var o=0;o<i.length;++o){if(a.length===o)return 1;if(i[o]!==a[o])return i[o]>a[o]?1:-1}return i.length!=a.length?-1:0}function N(e,t){return console.debug("[http] Checking actual version [{0}] is compatible with min expected version [{1}]".format(t,e)),v(e,t)<=0}var O=a.data.timeout,R=[];O||(O=4e3);var A=angular.copy(o.constants);return A.clear=function(){console.debug("[http] Cleaning cache..."),o.clear("csHttp-")},{get:p,getWithCache:m,post:E,ws:b,closeAllWs:g,getUrl:l,getServer:s,uri:{parse:f,open:T},date:{now:h},version:{compare:v,isCompatible:N},cache:A}}]),angular.module("cesium.storage.services",["cesium.config"]).factory("sessionStorage",["$window","$q",function(e,t){"ngInject";var n={storage:e.sessionStorage||{}};return n.put=function(e,i){return n.storage[e]=i,t.when()},n.get=function(e,i){return t.when(n.storage[e]||i)},n.setObject=function(e,i){return n.storage[e]=JSON.stringify(i),t.when()},n.getObject=function(e){return t.when(JSON.parse(n.storage[e]||"null"))},n}]).factory("localStorage",["$window","$q","$log","sessionStorage",function(e,t,n,i){"ngInject";function a(){return e.localStorage?(console.debug("[storage] Starting {local} storage..."),d.standard.storage=e.localStorage,_.forEach(_.keys(d.standard),function(e){d[e]=d.standard[e]})):(console.debug("[storage] Starting {session} storage..."),_.forEach(_.keys(i),function(e){d[e]=i[e]})),t.when()}function o(){console.debug("[storage] Starting {secure} storage..."),_.forEach(_.keys(d.secure),function(e){d[e]=d.secure[e]});var e=t.defer();return cordova.plugins&&cordova.plugins.SecureStorage?d.secure.storage=new cordova.plugins.SecureStorage(function(){e.resolve()},function(t){console.error("[storage] Could not use secure storage. Will use standard.",t),a(),e.resolve()},l):(a(),e.resolve()),e.promise}function r(){if(s)return s;var e=Date.now();return s=u?o():a(),s.then(function(){console.debug("[storage] Started in "+(Date.now()-e)+"ms"),c=!0,s=null})}var s,l="Cesium",c=!1,u=!0,d={standard:{storage:null},secure:{storage:null}};return d.standard.put=function(e,n){return angular.isDefined(n)&&null!=n?d.standard.storage[e]=n:d.standard.storage.removeItem(e),t.when()},d.standard.remove=function(e,n){return d.standard.storage.removeItem(e),t.when()},d.standard.get=function(e,n){return t.when(d.standard.storage[e]||n)},d.standard.setObject=function(e,n){return d.standard.storage[e]=JSON.stringify(n),t.when()},d.standard.getObject=function(e){return t.when(JSON.parse(d.standard.storage[e]||"null"))},d.secure.put=function(e,i){return t(function(t,a){void 0!==i&&null!==i?d.secure.storage.set(function(e){t()},function(e){n.error(e),a(e)},e,i):d.secure.storage.remove(function(){t()},function(e){n.error(e),t()},e)})},d.secure.get=function(e,i){return t(function(t,a){d.secure.storage.get(function(e){t(!e&&i?i:e)},function(e){n.error(e),t()},e)})},d.secure.setObject=function(e,i){return n.debug("[storage] Setting object into secure storage, using key="+e),t(function(t,n){d.secure.storage.set(t,n,e,i?JSON.stringify(i):void 0)})},d.secure.getObject=function(e){return n.debug("[storage] Getting object from secure storage, using key="+e),t(function(t,i){d.secure.storage.get(function(e){t(JSON.parse(e||"null"))},function(e){n.error(e),t()},e)})},d.isStarted=function(){return c},d.ready=function(){return c?t.when():s||r()},r(),d}]);var App;if(angular.module("cesium.device.services",["cesium.utils.services","cesium.settings.services"]).factory("Device",["$rootScope","$translate","$ionicPopup","$q","$cordovaClipboard","$cordovaBarcodeScanner","$cordovaCamera","ionicReady",function(e,t,n,i,a,o,r,s){"ngInject";function l(e){return m.camera.enable?(e&&"string"==typeof e&&(e={sourceType:e}),e=e||{},angular.isUndefined(e.sourceType)?t(["SYSTEM.PICTURE_CHOOSE_TYPE","SYSTEM.BTN_PICTURE_GALLERY","SYSTEM.BTN_PICTURE_CAMERA"]).then(function(t){return n.show({title:t["SYSTEM.PICTURE_CHOOSE_TYPE"],buttons:[{text:t["SYSTEM.BTN_PICTURE_GALLERY"],type:"button",onTap:function(e){return navigator.camera.PictureSourceType.PHOTOLIBRARY}},{text:t["SYSTEM.BTN_PICTURE_CAMERA"],type:"button button-positive",onTap:function(e){return navigator.camera.PictureSourceType.CAMERA}}]}).then(function(t){return console.info("[camera] User select sourceType:"+t),e.sourceType=t,m.camera.getPicture(e)})}):(e.quality=e.quality||50,e.destinationType=e.destinationType||navigator.camera.DestinationType.DATA_URL,e.encodingType=e.encodingType||navigator.camera.EncodingType.PNG,e.targetWidth=e.targetWidth||p.MAX_WIDTH,e.targetHeight=e.targetHeight||p.MAX_HEIGHT,r.getPicture(e))):i.reject("Camera not enable. Please call 'ionicReady()' once before use (e.g in app.js).")}function c(e){if(!m.enable)return i.reject("Barcode scanner not enable. Please call 'ionicReady()' once before use (e.g in app.js).");var t=i.defer();return cordova.plugins.barcodeScanner.scan(function(e){e.cancelled?(console.debug("[device] barcode scanner scan: CANCELLED"),t.resolve()):(console.debug("[device] barcode scanner scan: "+e.text),t.resolve(e.text))},function(e){console.error("[device] Error while using barcode scanner: "+e),t.reject(e)},e),t.promise}function u(e,t){if(!m.enable)return i.reject("Device disabled");var n=i.defer();return a.copy(e).then(function(){t&&t(),n.resolve()},function(){n.reject({message:"ERROR.COPY_CLIPBOARD"})}),n.promise}var d,p={MAX_HEIGHT:400,MAX_WIDTH:400},m={enable:!0},E={},b=!1;return m.clipboard={copy:u},m.camera={getPicture:l,scan:function(e){return console.warn("Deprecated use of Device.camera.scan(). Use Device.barcode.scan() instead"),c(e)}},m.barcode={enable:!1,scan:c},m.keyboard={enable:!1,close:function(){m.keyboard.enable&&cordova.plugins.Keyboard.close()}},m.keyboard.digit={settings:{bindModel:function(t,n,i){i=i||{},t=t||e;var a=function(){return(n||"").split(".").reduce(function(e,t){return e?e[t]:void 0},t)},o=function(e){var i=(n||"").split("."),a=i.length&&i[i.length-1];i.reduce(function(t,n){return n==a?void(t[a]=e):t[n]},t)};return i.animation=i.animation||"pop",i.action=i.action||function(e){o((a()||"")+e)},i.decimal&&(i.decimalSeparator=i.decimalSeparator||".",i.leftButton={html:"<span>.</span>",action:function(){var e=a()||"";e.indexOf(i.decimalSeparator)>=0||(e.trim().length||(e="0"),o(e+i.decimalSeparator))}}),i.rightButton=i.rightButton||{html:'<i class="icon ion-backspace-outline"></i>',action:function(){var e=a();e&&e.length&&(e=e.slice(0,-1),o(e))}},i}}},m.isIOS=function(){return!!navigator.userAgent.match(/iPhone | iPad | iPod/i)||ionic.Platform.isIOS()},m.isOSX=function(){return!!navigator.userAgent.match(/Macintosh/i)||ionic.Platform.is("osx")},m.isDesktop=function(){if(!angular.isDefined(E.isDesktop))try{E.isDesktop=!(m.enable||!process||!nw||!nw.App)}catch(e){E.isDesktop=!1}return E.isDesktop},m.isWeb=function(){return!m.enable&&!m.isDesktop()},m.ready=function(){return b?i.when():d||m.start()},m.start=function(){return d=s().then(function(){m.enable=window.cordova&&cordova&&cordova.plugins,m.enable?(m.camera.enable=!!navigator.camera,m.keyboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.Keyboard,m.barcode.enable=cordova&&cordova.plugins&&!!cordova.plugins.barcodeScanner&&!m.isOSX(),m.clipboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.clipboard,m.keyboard.enable&&angular.extend(m.keyboard,cordova.plugins.Keyboard),console.debug("[device] Ionic platform ready, with [camera: {0}] [barcode scanner: {1}] [keyboard: {2}] [clipboard: {3}]".format(m.camera.enable,m.barcode.enable,m.keyboard.enable,m.clipboard.enable)),cordova.InAppBrowser&&console.debug("[device] Enabling InAppBrowser")):console.debug("[device] Ionic platform ready - no device detected."),b=!0,d=null})},m}]),angular.module("cesium.currency.services",["ngApi","cesium.bma.services"]).factory("csCurrency",["$rootScope","$q","$timeout","BMA","Api","csSettings",function(e,t,n,i,a,o){"ngInject";function r(i,r){function l(e,t){return t<=0?e:e*Math.pow(10,t)}function c(){y.name=null,y.parameters=null,y.firstBlockTime=null,y.membersCount=null,y.cache={},y.node=r,y.currentUD=null,y.medianTimeOffset=0,P=!1,C=void 0,k.data.raise.reset(y)}function u(){return t.all([d().then(function(e){return p(e.currency)}),m(),k.data.raisePromise.load(y)]).catch(function(e){throw c(),e})}function d(){return r.blockchain.parameters().then(function(e){return y.name=e.currency,y.parameters=e,y.medianTimeOffset=e.avgGenTime*e.medianTimeBlocks/2,e})}function p(e){return D.WELL_KNOWN_CURRENCIES[e]?(angular.merge(y,D.WELL_KNOWN_CURRENCIES[e]),t.when()):r.blockchain.block({block:0}).then(function(e){y.firstBlockTime=e.medianTime}).catch(function(e){if(e&&e.ucode===r.errorCodes.BLOCK_NOT_FOUND)return y.firstBlockTime=0,y.initPhase=!0,void console.warn("[currency] Blockchain not launched: Enable init phase mode");throw e})}function m(){return r.blockchain.stats.ud().then(function(e){return e.result.blocks.length?E(e,e.result.blocks.length-1):(y.currentUD=y.parameters?y.parameters.ud0:-1,y.currentUD)}).catch(function(e){throw y.currentUD=null,e})}function E(e,t){if(!e.result.blocks.length||t<0)return y.currentUD=y.parameters?y.parameters.ud0:-1,y.currentUD;var n=e.result.blocks[t];return r.blockchain.block({block:n}).then(function(e){return y.currentUD=l(e.dividend,e.unitbase),y.currentUD}).catch(function(i){if(console.error("[currency] Unable to load last block with UD, with number {0}".format(n)),t>0)return console.error("[currency] Retrying to load UD from a previous block..."),E(e,t-1);throw y.currentUD=null,i})}function b(){return P?t.when(y):C||O()}function g(e){return function(){return P?t.when(y[e]):C||O().then(function(){return y[e]})}}function f(e){var t=new Block(e);t.cleanData(),console.debug("[currency] Received new block {"+t.number+"-"+t.hash+"}"),y.currentBlock=t,y.currentBlock.receivedAt=moment().utc().unix(),y.medianTime=t.medianTime,y.membersCount=t.membersCount,t.dividend&&(y.currentUD=t.dividend),k.data.raise.newBlock(t)}function T(){L=[r.api.node.on.restart(e,N,this),r.websocket.block().onListener(f)]}function h(){_.forEach(L,function(e){e()}),L=[]}function I(){return P?t.when(y):C||O()}function v(){console.debug("[currency] Stopping..."),h(),c()}function N(){return v(),n(O,200)}function O(){console.debug("[currency] Starting...");var e=Date.now();return C=r.ready().then(u).then(function(){T(),console.debug("[currency] Started in "+(Date.now()-e)+"ms"),P=!0,C=null,k.data.raise.ready(y)}).then(function(){return y})}function R(e){return M().then(function(t){var n=moment().utc().unix();if(e){if(t&&n-t.receivedAt<60)return t;t||console.warn("[currency] No current block in cache: get it from network. Websocket [/ws/block] may not be started ?")}return r.blockchain.current().catch(function(e){if(e&&e.ucode==r.errorCodes.NO_CURRENT_BLOCK)return{number:0,hash:r.constants.ROOT_BLOCK_HASH,medianTime:moment().utc().unix()};throw e}).then(function(e){return y.currentBlock=e,y.currentBlock.receivedAt=n,e})})}function A(){return o.data.blockValidityWindow<=0?R(!0):R(!0).then(function(e){var t=e.number-o.data.blockValidityWindow;return t>0?r.blockchain.block({block:t}):e})}function S(){return moment().utc().unix()-(y.medianTimeOffset||D.WELL_KNOWN_CURRENCIES.g1.medianTimeOffset)}r=r||s;var C,L,D={WELL_KNOWN_CURRENCIES:{g1:{firstBlockTime:1488987127,medianTimeOffset:3600}}},y={},P=!1,k=new a(this,"csCurrency-"+i),M=g("currentBlock");return k.registerEvent("data","ready"),k.registerEvent("data","load"),k.registerEvent("data","reset"),k.registerEvent("data","newBlock"),c(),{ready:I,start:O,stop:v,data:y,get:b,name:g("name"),parameters:g("parameters"),currentUD:g("currentUD"),medianTimeOffset:g("medianTimeOffset"),blockchain:{current:R,lastValid:A},date:{now:S},api:k,default:function(){return console.warn("[currency] 'csCurrency.default()' has been DEPRECATED - Please use 'csCurrency.get()' instead."),b()}}}var s=i,l=new r("default");return l.instance=function(e,t){return new r(e,t)},l}]),angular.module("cesium.bma.services",["ngApi","cesium.http.services","cesium.settings.services"]).factory("BMA",["$q","$window","$rootScope","$timeout","csCrypto","Api","Device","UIUtils","csConfig","csSettings","csHttp",function(e,t,n,i,a,o,r,s,l,c,u){"ngInject";function d(r,d,p,m){function E(e,t,n,i){k.started&&k.stop(),k.alive=!1,k.cache=f(),c.data&&c.data.node&&(e=e||c.data.node.host,t=t||c.data.node.port,n=angular.isDefined(n)?n:443==t||c.data.node.useSsl||k.forceUseSsl,i=!angular.isDefined(i)||i),e&&(k.host=e,k.port=t||80,k.useSsl=angular.isDefined(n)?n:443==k.port||k.forceUseSsl,k.useCache=!!angular.isDefined(i)&&i,k.server=u.getServer(e,t),k.url=u.getUrl(e,t,"",n))}function b(e){return new RegExp("^"+e+"$")}function g(e){return new RegExp(e)}function f(){return{getByPath:{},postByPath:{},wsByPath:{}}}function T(){k.cache&&(console.warn("[BMA] Closing all websockets..."),_.keys(k.cache.wsByPath||{}).forEach(function(e){k.cache.wsByPath[e].close()}),k.cache.wsByPath={})}function h(){_.forEach(N,function(e){e()}),N=[]}function I(){N=[c.api.data.on.changed(n,v,this)]}function v(e){u.getUrl(e.node.host,e.node.port,"",e.node.useSsl)!=k.url&&(E(e.node.host,e.node.port,e.node.useSsl,k.useCache),k.restart())}var N,O="[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",R="SIG\\(([0-9a-zA-Z]{43,44})\\)",A=R+"|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)",S="OBJ\\(([0-9]+)\\)",C="( ([a-z_][a-z0-9-_.ÄŸÄž]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?",L={BMA:"BASIC_MERKLED_API",BMAS:"BMAS",WS2P:"WS2P",BMATOR:"BMATOR",WS2PTOR:"WS2PTOR"},D={USER_ID:"[0-9a-zA-Z-_]+",CURRENCY:"[0-9a-zA-Z-_]+",PUBKEY:O,PUBKEY_WITH_CHECKSUM:"("+O+"):([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{3})",COMMENT:"[ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",INVALID_COMMENT_CHARS:"[^ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",URI_WITH_AT:"duniter://(?:([A-Za-z0-9_-]+):)?("+O+"@([a-zA-Z0-9-.]+.[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)",URI_WITH_PATH:"duniter://([a-zA-Z0-9-.]+.[a-zA-Z0-9-_:.]+)/("+O+")(?:/([A-Za-z0-9_-]+))?",BMA_ENDPOINT:L.BMA+C,BMAS_ENDPOINT:L.BMAS+C,WS2P_ENDPOINT:L.WS2P+" ([a-f0-9]{8})"+C,BMATOR_ENDPOINT:L.BMATOR+" ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?",WS2PTOR_ENDPOINT:L.WS2PTOR+" ([a-f0-9]{8}) ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?(?: (.+))?"},y={REVOCATION_ALREADY_REGISTERED:1002,HTTP_LIMITATION:1006,IDENTITY_SANDBOX_FULL:1007,NO_MATCHING_IDENTITY:2001,UID_ALREADY_USED:2003,NO_MATCHING_MEMBER:2004,NO_IDTY_MATCHING_PUB_OR_UID:2021,WRONG_SIGNATURE_MEMBERSHIP:2006,MEMBERSHIP_ALREADY_SEND:2007,NO_CURRENT_BLOCK:2010,BLOCK_NOT_FOUND:2011,SOURCE_ALREADY_CONSUMED:2015,TX_INPUTS_OUTPUTS_NOT_EQUAL:2024,TX_OUTPUT_SUM_NOT_EQUALS_PREV_DELTAS:2025,TX_ALREADY_PROCESSED:2030},P={PROTOCOL_VERSION:10,ROOT_BLOCK_HASH:"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",LIMIT_REQUEST_COUNT:5,LIMIT_REQUEST_DELAY:1e3,regexp:D,api:L},k=this;k.api=new o(this,"BMA-"+k.server),k.started=!1,k.init=E,k.forceUseSsl=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol),k.forceUseSsl&&console.debug("[BMA] Enable SSL (forced by config or detected in URL)"),r&&E(r,d,p,m),k.useCache=m,k.cleanCache=function(){console.debug("[BMA] Cleaning requests cache..."),T(),k.cache=f()},get=function(e,t){t=k.useCache&&t;var n=e+(t?"#"+t:""),a=function(o){if(!k.started)return k._startPromise||console.warn("[BMA] Trying to get [{0}] before start(). Waiting...".format(e)),k.ready().then(function(){return a(o)});var r=k.cache.getByPath[n];r||(r=t?u.getWithCache(k.host,k.port,e,k.useSsl,t):u.get(k.host,k.port,e,k.useSsl),k.cache.getByPath[n]=r);var l=1;return r(o).catch(function(e){if(e&&e.ucode==M.errorCodes.HTTP_LIMITATION&&l<=M.constants.LIMIT_REQUEST_COUNT)return 1===l&&(console.warn("[BMA] Too many HTTP requests: Will wait then retry..."),s.loading.update({template:"COMMON.LOADING_WAIT"})),i(function(){return l++,r(o)},M.constants.LIMIT_REQUEST_DELAY);throw e})};return a},post=function(e){var t=function(n,i){if(!k.started)return k._startPromise||console.error("[BMA] Trying to post [{0}] before start()...".format(e)),k.ready().then(function(){return t(n,i)});var a=k.cache.postByPath[e];return a||(a=u.post(k.host,k.port,e,k.useSsl),k.cache.postByPath[e]=a),a(n,i)};return t},ws=function(e){return function(){var t=k.cache.wsByPath[e];return t&&!t.isClosed()||(t=u.ws(k.host,k.port,e,k.useSsl),t.onclose=function(){delete k.cache.wsByPath[e]},k.cache.wsByPath[e]=t),t}},k.isAlive=function(){return u.get(k.host,k.port,"/node/summary",k.useSsl)().then(function(e){var t=e&&e.duniter&&e.duniter.software,n=!0;return"duniter"===t&&e.duniter.version?n=u.version.isCompatible(c.data.minVersion,e.duniter.version):console.debug("[BMA] Unknown node software [{0} v{1}]: could not check compatibility.".format(t||"?",e.duniter.version||"?")),n||console.error("[BMA] Incompatible node [{0} v{1}]: expected at least v{2}".format(t,e.duniter.version,c.data.minVersion)),n}).catch(function(){return!1})},k.isStarted=function(){return k.started},k.ready=function(){return k.started?e.when(!0):k._startPromise||k.start()},k.start=function(){if(k._startPromise)return k._startPromise;if(k.started)return e.when(k.alive);if(!k.host)return c.ready().then(function(){return k.init(),k.useCache=!0,k.start()});k.useSsl?console.debug("[BMA] Starting [{0}] (SSL on)...".format(k.server)):console.debug("[BMA] Starting [{0}]...".format(k.server));var t=Date.now();return k._startPromise=e.all([c.ready,k.isAlive()]).then(function(e){return k.alive=e[1],k.alive?(N&&0!==N.length||I(),console.debug("[BMA] Started in "+(Date.now()-t)+"ms"),k.api.node.raise.start(),k.started=!0,delete k._startPromise,!0):(console.error("[BMA] Could not start [{0}]: node unreachable".format(k.server)),k.started=!0,delete k._startPromise,!1)}),k._startPromise},k.stop=function(){console.debug("[BMA] Stopping..."),h(),u.cache.clear(),k.cleanCache(),k.alive=!1,k.started=!1,delete k._startPromise,k.api.node.raise.stop()},k.restart=function(){return k.stop(),i(k.start,200).then(function(e){return e&&k.api.node.raise.restart(),e})},k.api.registerEvent("node","start"),k.api.registerEvent("node","stop"),k.api.registerEvent("node","restart");var M={errorCodes:y,constants:P,regexp:{USER_ID:b(D.USER_ID),COMMENT:b(D.COMMENT),PUBKEY:b(D.PUBKEY),PUBKEY_WITH_CHECKSUM:b(D.PUBKEY_WITH_CHECKSUM),CURRENCY:b(D.CURRENCY),URI:b(D.URI),BMA_ENDPOINT:b(D.BMA_ENDPOINT),BMAS_ENDPOINT:b(D.BMAS_ENDPOINT),WS2P_ENDPOINT:b(D.WS2P_ENDPOINT),BMATOR_ENDPOINT:b(D.BMATOR_ENDPOINT),WS2PTOR_ENDPOINT:b(D.WS2PTOR_ENDPOINT),TX_OUTPUT_SIG:b(R),TX_OUTPUT_FUNCTION:g(A),TX_OUTPUT_OBJ_OPERATOR_AND:g(S+"([ ]*&&[ ]*("+S+"))+"),TX_OUTPUT_OBJ_OPERATOR_OR:g(S+"([ ]*\\|\\|[ ]*("+S+"))+"),TX_OUTPUT_OBJ:g(S),TX_OUTPUT_OBJ_OPERATOR:g("OBJ\\(([0-9]+)\\)[ ]*(&&)|(\\|\\|)[ ]*OBJ\\(([0-9]+)\\)"),TX_OUTPUT_OBJ_PARENTHESIS:g("\\(("+S+")\\)"),TX_OUTPUT_FUNCTIONS:g("SIG\\(([0-9a-zA-Z]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)([ ]*(&&)|(\\|\\|)[ ]*SIG\\(([0-9a-zA-Z]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\))*")},node:{summary:get("/node/summary",u.cache.LONG),same:function(e,t){return e===k.host&&(!k.port&&!t||k.port==t||80)&&k.useSsl==(t&&443===t)},forceUseSsl:k.forceUseSsl},network:{peering:{self:get("/network/peering"),peers:get("/network/peering/peers")},peers:get("/network/peers"),ws2p:{info:get("/network/ws2p/info"),heads:get("/network/ws2p/heads")}},wot:{lookup:get("/wot/lookup/:search",u.cache.MEDIUM),certifiedBy:get("/wot/certified-by/:pubkey"),certifiersOf:get("/wot/certifiers-of/:pubkey"),member:{all:get("/wot/members",u.cache.LONG),pending:get("/wot/pending",u.cache.SHORT)},requirements:function(e,t){return!0!==t?M.raw.requirementsNoCache(e):M.raw.requirementsWithCache(e)},add:post("/wot/add"),certify:post("/wot/certify"),revoke:post("/wot/revoke")},blockchain:{parameters:get("/blockchain/parameters",u.cache.VERY_LONG),block:get("/blockchain/block/:block",u.cache.SHORT),blocksSlice:get("/blockchain/blocks/:count/:from"),current:get("/blockchain/current",u.cache.SHORT),membership:post("/blockchain/membership"),stats:{ud:get("/blockchain/with/ud",u.cache.MEDIUM),tx:get("/blockchain/with/tx"),newcomers:get("/blockchain/with/newcomers",u.cache.MEDIUM),hardship:get("/blockchain/hardship/:pubkey"),difficulties:get("/blockchain/difficulties")}},tx:{sources:get("/tx/sources/:pubkey",u.cache.SHORT),process:post("/tx/process"),history:{all:get("/tx/history/:pubkey"),times:get("/tx/history/:pubkey/times/:from/:to",u.cache.LONG),timesNoCache:get("/tx/history/:pubkey/times/:from/:to"),blocks:get("/tx/history/:pubkey/blocks/:from/:to",u.cache.LONG),pending:get("/tx/history/:pubkey/pending")}},ud:{history:get("/ud/history/:pubkey")},uri:{},version:{},raw:{requirementsWithCache:get("/wot/requirements/:pubkey",u.cache.LONG),requirementsNoCache:get("/wot/requirements/:pubkey")}};M.regex=M.regexp,M.tx.parseUnlockCondition=function(e){for(var t,n,i,a,o=e,r=[],s={},l=M.regexp.TX_OUTPUT_FUNCTION.exec(o);l;)t={},n="OBJ("+r.length+")",t.type=o.substr(l.index,l[0].indexOf("(")),t.value=l[1]||l[2]||l[3]||l[4],r.push(t),s[t.type]=s[t.type]++||1,o=o.replace(l[0],n),l=M.regexp.TX_OUTPUT_FUNCTION.exec(o);for(var c=!0;c;){for(l=M.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o),c=!!l;l;){for(t={},n="OBJ("+r.length+")",t.type="AND",t.children=[],r.push(t),i=l[0],a=M.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=M.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=M.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(i)}for(l=M.regexp.TX_OUTPUT_OBJ_OPERATOR_OR.exec(o),c=c||!!l;l;){for(t={},n="OBJ("+r.length+")",t.type="OR",t.children=[],r.push(t),i=l[0],a=M.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=M.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=M.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o)}for(l=M.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o),c=c||!!l;l;)o=o.replace(l[0],l[1]),l=M.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o)}return s=_.keys(s),0===s.length?void console.error("[BMA] Unparseable unlock condition: ",output):(console.debug("[BMA] Unlock conditions successfully parsed:",t),{unlockFunctions:s,unlockTree:t})},M.node.parseEndPoint=function(e,t){var n=M.regexp.BMA_ENDPOINT.exec(e);return n?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!0}:(n=M.regexp.BMAS_ENDPOINT.exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:!0,path:n[10],useBma:!0}:(n=M.regexp.BMATOR_ENDPOINT.exec(e))?{dns:n[1]||"",port:n[2]||80,useSsl:!1,useTor:!0,useBma:!0}:(n=M.regexp.WS2P_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[3]||"",ipv4:n[5]||"",ipv6:n[7]||"",port:n[9]||80,useSsl:n[9]&&443==n[9],path:n[11]||"",useWs2p:!0}:(n=M.regexp.WS2PTOR_ENDPOINT.exec(e),n?{ws2pid:n[1]||"",dns:n[2]||"",port:n[3]||80,path:n[4]||"",useSsl:!1,useTor:!0,useWs2p:!0}:t&&(n=b(t+C).exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!1}:void 0)},M.copy=function(t){var n=k.started
-;if(u.getUrl(t.host,t.port,"",t.useSsl)!==k.url)return k.init(t.host,t.port,t.useSsl,k.useCache),n?k.restart():e.when()},M.wot.member.uids=function(){return M.wot.member.all().then(function(e){return e.results.reduce(function(e,t){return e[t.pubkey]=t.uid,e},{})})},M.wot.member.get=function(e){return M.wot.member.uids().then(function(t){var n=t[e];return{pubkey:e,uid:n||null}})},M.wot.member.getByUid=function(e){return M.wot.member.all().then(function(t){return _.findWhere(t.results,{uid:e})})},M.blockchain.blocks=function(e){return M.raw.getHttpRecursive(M.blockchain.block,"block",e)},M.network.peering.peersByLeaves=function(e){return M.raw.getHttpRecursive(M.network.peering.peers,"leaf",e,0,10)},M.raw.getHttpRecursive=function(t,n,a,o,r){return o=angular.isDefined(o)?o:0,r=r||M.constants.LIMIT_REQUEST_COUNT,e(function(s,l){var c=[],u=[];_.each(a.slice(o,o+r),function(e){var i={};i[n]=e,u.push(t(i).then(function(e){e&&c.push(e)}))}),e.all(u).then(function(){o<a.length-1?i(function(){M.raw.getHttpRecursive(t,n,a,o+r,r).then(function(e){if(!e||!e.length)return void s(c);s(c.concat(e))}).catch(function(e){l(e)})},M.constants.LIMIT_REQUEST_DELAY):s(c)}).catch(function(e){e&&e.ucode===M.errorCodes.HTTP_LIMITATION?s(c):l(e)})})},M.raw.getHttpWithRetryIfLimitation=function(e){return e().catch(function(t){if(t&&t.ucode==M.errorCodes.HTTP_LIMITATION)return i(function(){return M.raw.getHttpWithRetryIfLimitation(e)},M.constants.LIMIT_REQUEST_DELAY)})},M.blockchain.lastUd=function(){return M.blockchain.stats.ud().then(function(e){if(!e.result.blocks||!e.result.blocks.length)return null;var t=e.result.blocks[e.result.blocks.length-1];return M.blockchain.block({block:t}).then(function(e){return e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend})})},M.uri.parse=function(t){return e(function(e,n){var i;if(b(D.PUBKEY).test(t))e({pubkey:t});else if(b(D.PUBKEY_WITH_CHECKSUM).test(t)){console.debug("[BMA.parse] Detecting a pubkey with checksum: "+t);var o=M.regexp.PUBKEY_WITH_CHECKSUM.exec(t);i=o[1];var r=o[2];console.debug("[BMA.parse] Detecting a pubkey {"+i+"} with checksum {"+r+"}");var s=a.util.pkChecksum(i);console.debug("[BMA.parse] Expecting checksum for pubkey is {"+s+"}"),r!=s?n({message:"ERROR.PUBKEY_INVALID_CHECKSUM"}):e({pubkey:i})}else if(t.startsWith("duniter://")){var l,c=u.uri.parse(t),d=-1===c.host.indexOf(".")?c.host:null,p=-1!==c.host.indexOf(".")?c.host:null;if(c.username&&(c.password?(l=c.username,i=c.password):i=c.username),c.pathname){var m=c.pathname.split("/"),E=m?m.length:0,g=0;if(!d&&E>g&&(d=m[g++]),!i&&E>g&&(i=m[g++]),!l&&E>g&&(l=m[g++]),E>g)return void n({message:"Bad Duniter URI format. Invalid path (incomplete or redundant): "+c.pathname})}if(d)return p||e({uid:l,pubkey:i,currency:d}),u.get(p+"/blockchain/parameters")().then(function(t){if(t.currency!==d)return void n({message:"Node's currency ["+t.currency+"] does not matched URI's currency ["+d+"]."});e({uid:l,pubkey:i,host:p,currency:d})}).catch(function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})});if(!p)return void n({message:"Bad Duniter URI format. Missing currency name (or node address)."});u.get(p+"/blockchain/parameters")().then(function(t){e({uid:l,pubkey:i,host:p,currency:t.currency})}).catch(function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})})}else console.debug("[BMA.parse] Could not parse URI: "+t),n({message:"ERROR.UNKNOWN_URI_FORMAT"})}).then(function(e){if(e){if(e.pubkey&&!b(D.PUBKEY).test(e.pubkey))throw{message:"Invalid pubkey format ["+e.pubkey+"]"};if(e.uid&&!b(D.USER_ID).test(e.uid))throw{message:"Invalid uid format ["+e.uid+"]"};if(e.currency&&!b(D.CURRENCY).test(e.currency))throw{message:"Invalid currency format ["+e.currency+"]"};return e}})};var w=c.data.duniterLatestReleaseUrl&&u.uri.parse(c.data.duniterLatestReleaseUrl);M.raw.getLatestRelease=w?u.getWithCache(w.host,w.port,"/"+w.pathname,443==w.port||"https:"==w.protocol||k.forceUseSsl,u.cache.LONG):function(){return e.when()},M.version.latest=function(){return M.raw.getLatestRelease().then(function(e){if(e)return e.name&&e.html_url?{version:e.name,url:e.html_url}:e.tag_name&&e.html_url?{version:e.tag_name.substring(1),url:e.html_url}:void 0}).catch(function(e){console.error("[BMA] Failed to get Duniter latest version",e)})},M.websocket={block:ws("/ws/block"),peer:ws("/ws/peer"),close:T},angular.merge(k,M)}var p=new d(void 0,void 0,void 0,!0);return p.instance=function(e,t,n,i){return new d(e,t,n,i)},p.lightInstance=function(e,t,n,i){return t=t||80,n=angular.isDefined(n)?n:443==t,{host:e,port:t,useSsl:n,url:u.getUrl(e,t,"",n),node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current",n,i),stats:{hardship:u.get(e,t,"/blockchain/hardship/:pubkey",n,i)}}}},p}]),angular.module("cesium.wot.services",["ngApi","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWot",["$rootScope","$q","$timeout","BMA","Api","CacheFactory","csConfig","csCurrency","csSettings","csCache",function(e,t,n,i,a,o,r,s,l,c){"ngInject";function u(o){var r=new a(this,"csWot-"+o),u=c.get("csWot-idty-",c.constants.MEDIUM),d=c.get("csWot-requirements-",c.constants.MEDIUM),p=function(e){var t={};return e.reduce(function(e,n){return n.id=n.id||n.uid+"-"+n.pubkey,t[n.id]?e:(t[n.id]=!0,e.concat(n))},[])},m=function(e,t,n){return t=t||0,e=p(e),e=_.sortBy(e,function(e){var t=1;return t+=1e6*e.block,-(t+=10*(900-e.uid.toLowerCase().charCodeAt(0)))}),angular.isDefined(n)&&e.length>n&&(e=e.slice(t,t+n)),e},E=function(e){return e=_.sortBy(e,function(e){var t=1;return t+=1e12*(e.expiresIn?e.expiresIn:0),t+=1e7*(e.isMember?1:0),-(t+=10*(e.block?e.block:0))})},b=function(e){e.requirements={loaded:!1,meta:{},hasSelf:!1,needSelf:!0,needMembership:!0,canMembershipOut:!1,needRenew:!1,pendingMembership:!1,isMember:!1,wasMember:!1,certificationCount:0,needCertifications:!1,needCertificationCount:0,willNeedCertificationCount:0,alternatives:void 0},e.blockUid=null,e.isMember=!1,e.sigDate=null,e.hasSelf=!1},g=function(e,t){if(e.hasSelf=!!e.meta.timestamp,e.needSelf=!e.hasSelf||e.meta.invalid,e.wasMember=!!angular.isDefined(e.wasMember)&&e.wasMember,e.needMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn<=0&&!e.wasMember,e.needRenew=!e.needMembership&&!e.revoked&&e.membershipExpiresIn<=l.data.timeWarningExpireMembership&&e.membershipPendingExpiresIn<=0||e.wasMember&&!e.revoked&&0===e.membershipExpiresIn&&0===e.membershipPendingExpiresIn,e.canMembershipOut=!e.revoked&&e.membershipExpiresIn>0,e.pendingMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn>0,e.isMember=!e.revoked&&e.membershipExpiresIn>0,e.blockUid=e.meta.timestamp,e.certificationCount=(e.isMember||e.wasMember&&!e.expired)&&e.certifications?e.certifications.length:0,e.willExpireCertificationCount=e.certifications?e.certifications.reduce(function(e,t){return e+(t.expiresIn<=l.data.timeWarningExpire?1:0)},0):0,e.willExpire=e.willExpireCertificationCount>0,e.pendingRevocation=!e.revoked&&!!e.revocation_sig,e.isMember||e.wasMember)e.pendingCertificationCount=angular.isDefined(e.pendingCerts)?e.pendingCerts.length:0;else{var n=_.union(_.pluck(e.pendingCerts||[],"from"),_.pluck(e.certifications||[],"from"));e.pendingCertificationCount=_.size(n)}return e.needCertificationCount=!e.needSelf&&e.certificationCount<t.sigQty?t.sigQty-e.certificationCount:0,e.willNeedCertificationCount=!e.needMembership&&!e.needCertificationCount&&e.certificationCount-e.willExpireCertificationCount<t.sigQty?t.sigQty-e.certificationCount+e.willExpireCertificationCount:0,e.loaded=!0,e},f=function(e){if(!e)return t.when(e);var n=[];return _.forEach(e,function(e){var t=e.meta.timestamp.split("-",2);e.meta.number=parseInt(t[0]),e.meta.hash=t[1],e.meta.sig=e.meta.sig||e.sig,delete e.sig,n.push(e.meta.number)}),i.blockchain.blocks(_.uniq(n)).then(function(t){return _.forEach(e,function(e){var n=_.findWhere(t,{number:e.meta.number});e.meta.time=n&&n.medianTime,n&&0!==e.meta.number&&e.meta.hash!==n.hash&&(e.meta.invalid=!0)}),e}).catch(function(t){if(t&&t.ucode==i.errorCodes.BLOCK_NOT_FOUND)return _.forEach(e,function(e){0===e.number&&(e.meta.time=moment().utc().unix())}),e;throw t})},T=function(e,n){if(!e||!e.pubkey&&!e.uid)return t.when(e);var a=e.pubkey||e.uid,o=!1!==n?d.get(a):null;if(o)return console.debug("[wot] Requirements "+a+" found in cache"),angular.merge(e,o),t.when(o);o={pubkey:e.pubkey,uid:e.uid};var r=Date.now();return t.all([s.get(),i.wot.requirements({pubkey:o.pubkey||o.uid},!1).then(function(e){return f(e&&e.identities)})]).then(function(t){var n=t[0],i=t[1];if(i&&i.length)return i.length>1&&(i=_.sortBy(i,function(e){var t=0;t+=1e12*(o.uid&&e.uid===o.uid?1:0),t+=1e11*(e.meta.invalid?0:1),t+=1e10*(o.blockUid&&e.meta.timestamp&&e.meta.timestamp===o.blockUid?1:0),t+=1e9*(e.membershipExpiresIn>0?1:0),t+=1e8*(e.membershipPendingExpiresIn>0?1:0),t+=1e7*(e.expired?0:1),t+=1e6*(e.outdistanced?0:1),t+=1e5*(e.wasMember?1:0);var n=!e.expired&&e.certifications?e.certifications.length:0;return t+=1*(n||0),-(t+=1*(!n&&e.membershipPendingExpiresIn>0?e.membershipPendingExpiresIn/1e3:0))}),console.debug("[wot] Found {0} identities (in requirements). Will selected the best one".format(i.length))),o.requirements=g(i[0],n.parameters),o.pubkey=o.requirements.pubkey,o.uid=o.requirements.uid,o.isMember=o.requirements.isMember,o.blockUid=o.requirements.meta&&o.requirements.meta.timestamp,o.hasSelf=o.requirements.hasSelf,o.sigDate=o.requirements.meta&&o.requirements.meta.time,!o.requirements.isMember&&!o.requirements.wasMember&&i.length>1&&(o.requirements.alternatives=i.splice(1),_.forEach(o.requirements.alternatives,function(e){g(e,n.parameters)})),d.put(a,o),angular.merge(e,o),console.debug("[wot] Requirements for '{0}' loaded in {1}ms".format(o.pubkey&&o.pubkey.substring(0,8)||o.uid,Date.now()-r)),e}).catch(function(t){if(b(e),t&&(t.ucode==i.errorCodes.NO_MATCHING_MEMBER||t.ucode==i.errorCodes.NO_IDTY_MATCHING_PUB_OR_UID))return e.requirements.loaded=!0,e;throw t})},h=function(e,t){var n={pubkey:e,uid:t,hasSelf:!1};return i.wot.lookup({search:e||t}).then(function(e){var t=e.results.reduce(function(e,t){return e.concat(t.uids.reduce(function(e,n){var i=n.meta.timestamp.split("-",2),a=parseInt(i[0]);return e.concat({uid:n.uid,pubkey:t.pubkey,meta:{timestamp:n.meta.timestamp,number:a,hash:i[1],sig:n.self},revoked:n.revoked,revoked_on:n.revoked_on})},[]))},[]);return f(t).then(function(t){return{identities:t,results:e.results}})}).then(function(e){var t=e.identities;t.length>1&&(e.identities=_.sortBy(t,function(e){var t=0;return t+=1e11*(n.uid&&e.uid===n.uid?1:0),t+=1e10*(e.meta.invalid?0:1),t+=1e9*(n.blockUid&&e.meta.timestamp&&e.meta.timestamp===n.blockUid?1:0),t+=1e8*(e.revoked?0:1),-(t+=1*(e.meta.number?e.meta.number:0)/1e3)}),console.debug("[wot] Found {0} identities (in lookup). Will selected the best one".format(t.length))),_.forEach(t,function(e){e.hasSelf=!!(e.uid&&e.meta.timestamp&&e.meta.sig)}),n.requirements=t[0],n.pubkey=n.requirements.pubkey,n.uid=n.requirements.uid,n.blockUid=n.requirements.meta&&n.requirements.meta.timestamp,n.hasSelf=n.requirements.hasSelf,n.sigDate=n.requirements.meta&&n.requirements.meta.time,t.length>1&&(n.requirements.alternatives=t.splice(1)),n.lookup={};var i={};return n.lookup.certifications=(e.results||[]).reduce(function(e,t){return t.uids.reduce(function(e,t){var n=t.uid+"-"+(t.meta?t.meta.timestamp:"");return e[n]=(t.others||[]).reduce(function(e,t){var a=n+"-"+t.pubkey,o={pubkey:t.pubkey,uid:t.uids[0],cert_time:{block:t.meta&&t.meta.block_number?t.meta.block_number:0,block_hash:t.meta&&t.meta.block_hash?t.meta.block_hash:null},isMember:t.isMember,wasMember:t.wasMember};return i[a]?o.cert_time.block>i[a].cert_time.block?(i[a]=o,e.splice(_.findIndex(e,{pubkey:t.pubkey}),1,o),e):e:(i[a]=o,e.concat(o))},[]),e},e)},{}),i={},n.lookup.givenCertifications=(e.results||[]).reduce(function(e,t){return(t.signed||[]).reduce(function(e,t){var n={pubkey:t.pubkey,uid:t.uid,cert_time:{block:t.cert_time&&t.cert_time.block?t.cert_time.block:0,block_hash:t.cert_time&&t.cert_time.block_hash?t.cert_time.block_hash:null},sigDate:t.meta?t.meta.timestamp:null,isMember:t.isMember,wasMember:t.wasMember};if(i[t.pubkey]){if(!(n.block>i[t.pubkey].block))return e;i[t.pubkey]=n}else i[t.pubkey]=n;return e.concat(n)},e)},[]),n}).catch(function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return b(n),n;throw e})},I=function(e,t,n,a,o,r){function c(e,t){return e+"-"+t}var u=!0,d=n?n.reduce(function(e,t){var n=c(t.pubkey,t.cert_time?t.cert_time.block:t.sigDate);return t.cert_time||(u=!1),e[n]=t,e},{}):{},p=!0;return e({pubkey:t}).then(function(e){return(e&&e.certifications||[]).reduce(function(e,t){var n=!t.written,i=t.cert_time?t.cert_time.medianTime:null,r=i?n?i+a.sigWindow-o:i+a.sigValidity-o:0;r=r<0?0:r;var s=c(t.pubkey,u&&t.cert_time?t.cert_time.block:t.sigDate);return delete d[s],e.concat({pubkey:t.pubkey,uid:t.uid,time:i,isMember:t.isMember,wasMember:t.wasMember,expiresIn:r,willExpire:r&&r<=l.data.timeWarningExpire,pending:n,block:null!==t.written?t.written.number:t.cert_time?t.cert_time.block:null,valid:r>0})},[])}).catch(function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_MEMBER)return p=!1,[];if(e&&1002==e.ucode)return console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),p=!1,[];throw e}).then(function(e){var t=_.values(d);if(!t.length)return e;if(s.data.initPhase)return t.reduce(function(e,t){return e.concat({pubkey:t.pubkey,uid:t.uid,isMember:t.isMember,wasMember:t.wasMember,time:null,expiresIn:a.sigWindow,willExpire:!1,pending:!0,block:0,valid:!0})},e);var n=t.reduce(function(e,t){var n=u&&t.cert_time?t.cert_time.block:t.sigDate?t.sigDate.split("-")[0]:null;return angular.isDefined(n)&&(e[n]?e[n].push(t):e[n]=[t]),e},{});return i.blockchain.blocks(_.keys(n)).then(function(t){return e=t.reduce(function(e,t){return e.concat(n[t.number].reduce(function(e,n){var i=t.medianTime,s=Math.max(0,i+a.sigWindow-o),c=!n.cert_time||!n.cert_time.block_hash||n.cert_time.block_hash==t.hash;c||console.debug("[wot] Invalid cert {0}: block hash changed".format(n.pubkey.substring(0,8)));var d=s>0&&(!r||n.isMember)&&c;return e.concat({pubkey:n.pubkey,uid:n.uid,isMember:n.isMember,wasMember:n.wasMember,time:i,expiresIn:s,willExpire:s&&s<=l.data.timeWarningExpire,pending:!0,block:u&&n.cert_time?n.cert_time.block:n.sigDate?n.sigDate.split("-")[0]:null,valid:d})},[]))},e)})}).then(function(e){var t=e.reduce(function(e,t){return!t.pending&&t.valid&&t.expiresIn>=a.sigWindow&&(e[t.pubkey]=!0),e},{});e=E(e);var n=[],i=[];return{valid:e.reduce(function(e,a){return a.pending?(a.valid&&!t[a.pubkey]?n.push(a):a.valid||t[a.pubkey]||i.push(a),e):e.concat(a)},[]),pending:n,error:i}})},v=function(e){e.requirements.revoked?(delete e.requirements.meta.invalid,e.requirements.revoked_on?(P(e,{type:"error",message:"ERROR.IDENTITY_REVOKED_WITH_TIME",messageParams:{revocationTime:e.requirements.revoked_on}}),console.debug("[wot] Identity [{0}] has been revoked on {1}".format(e.uid,e.requirements.revoked_on))):(P(e,{type:"error",message:"ERROR.IDENTITY_REVOKED"}),console.debug("[wot] Identity [{0}] has been revoked".format(e.uid)))):e.requirements.pendingRevocation?(delete e.requirements.meta.invalid,P(e,{type:"error",message:"ERROR.IDENTITY_PENDING_REVOCATION"}),console.debug("[wot] Identity [{0}] has pending revocation".format(e.uid))):e.requirements.meta&&e.requirements.meta.invalid?e.isMember||(P(e,{type:"error",message:"ERROR.IDENTITY_INVALID_BLOCK_HASH"}),console.debug("[wot] Invalid membership for uid {0}: block hash changed".format(e.uid))):e.requirements.expired?(P(e,{type:"error",message:"ERROR.IDENTITY_EXPIRED"}),console.debug("[wot] Identity {0} expired (in sandbox)".format(e.uid))):e.requirements.willNeedCertificationCount>0?(P(e,{type:"error",message:"INFO.IDENTITY_WILL_MISSING_CERTIFICATIONS",messageParams:e.requirements}),console.debug("[wot] Identity {0} will need {1} certification(s)".format(e.uid,e.requirements.willNeedCertificationCount))):!e.requirements.needSelf&&e.requirements.needMembership&&(P(e,{type:"error",message:"INFO.IDENTITY_NEED_MEMBERSHIP"}),console.debug("[wot] Identity {0} has a self but no membership".format(e.uid))),!e.isMember&&e.requirements.alternatives&&P(e,{type:"info",message:"INFO.HAS_ALTERNATIVE_IDENTITIES"})},N=function(e,n,a){a=a||{};var o;if(!e&&n&&!a.force)return i.wot.member.getByUid(n).then(function(t){if(t)return N(t.pubkey,t.uid,i);var i=angular.copy(i||{});return i.force=!0,N(e,n,i)});if(e){if((o=!1!==a.cache?u.get(e):null)&&(!n||o.uid===n)&&(!a.blockUid||o.blockUid===a.blockUid))return console.debug("[wot] Identity "+e.substring(0,8)+" found in cache"),t.when(o);console.debug("[wot] Loading identity "+e.substring(0,8)+"..."),o={pubkey:e,uid:n}}else console.debug("[wot] Loading identity from uid "+n),o={uid:n};a.blockUid&&(o.blockUid=a.blockUid);var l,c,d=Date.now();return t.all([s.parameters().then(function(e){l=e}),s.blockchain.current().then(function(e){c=e.medianTime}).catch(function(e){if(!e||e.ucode!=i.errorCodes.NO_CURRENT_BLOCK)throw e;c=moment.utc().unix()}),T(o,!1!==a.cache),h(e,n)]).then(function(e){var n=e[3];if(!o.requirements.uid)return console.debug("[wot] No requirements found: using data from lookup"),angular.merge(o,n),void delete o.lookup;var a=o.requirements.uid+"-"+o.requirements.meta.timestamp;return t.all([I(i.wot.certifiersOf,o.pubkey,n.lookup?n.lookup.certifications[a]:null,l,c,!0).then(function(e){o.received_cert=e.valid,o.received_cert_pending=e.pending,o.received_cert_error=e.error}),I(i.wot.certifiedBy,o.pubkey,n.lookup?n.lookup.givenCertifications:null,l,c,!1).then(function(e){o.given_cert=e.valid,o.given_cert_pending=e.pending,o.given_cert_error=e.error})])}).then(function(){return o.requirements.pendingCertificationCount=o.received_cert_pending?o.received_cert_pending.length:o.requirements.pendingCertificationCount,o.requirements.revoked=angular.isDefined(o.requirements.revoked)?o.requirements.revoked:o.revoked,v(o),r.data.raisePromise.load(o).catch(function(e){console.debug("Error while loading identity data, on extension point."),console.error(e)})}).then(function(){if(o.pubkey)return u.put(o.pubkey,o),console.debug("[wot] Identity "+o.pubkey.substring(0,8)+" loaded in "+(Date.now()-d)+"ms"),o})},O=function(e,n){if(!e||e.trim()!==e)return t.when(void 0);var a=e.replace(/(^|\s)#\w+/g,"");a=a.replace(/[^a-zA-Z0-9_-\s]+/g,""),a=a.replace(/\s+/g," ").trim(),n=n||{},n.addUniqueId=!angular.isDefined(n.addUniqueId)||n.addUniqueId,n.allowExtension=!angular.isDefined(n.allowExtension)||n.allowExtension,n.excludeRevoked=!!angular.isDefined(n.excludeRevoked)&&n.excludeRevoked;var o;return o=a?t.all(a.split(" ").reduce(function(e,t){return console.debug("[wot] Will search on: '"+t+"'"),e.concat(i.wot.lookup({search:t}))},[])).then(function(e){return e.reduce(function(e,t){return e.concat(t.results.reduce(function(e,t){return e.concat(t.uids.reduce(function(e,i){var a=i.meta.timestamp.split("-",2),o=!i.revoked&&i.revocation_sig;return n.excludeRevoked&&o?e:e.concat({uid:i.uid,pubkey:t.pubkey,number:a[0],hash:a[1],revoked:o})},[]))},[]))},[])}).catch(function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return[];throw e}):t.when([]),o.then(function(t){if(!n.allowExtension)return n.addUniqueId?p(t):t;var a=t.length;return r.data.raisePromise.search(e,t,"pubkey").then(function(){if(t.length>a){if(_.filter(t,function(e){return!e.uid&&e.pubkey}).length)return i.wot.member.uids().then(function(e){_.forEach(t,function(t){!t.uid&&t.pubkey&&(t.uid=e[t.pubkey])})})}}).then(function(){return n.addUniqueId?p(t):t})})},R=function(e,n){e=e||0,n=n||20;var a;return t.all([s.blockchain.current(!0).then(function(e){a=e.membersCount||0}),i.blockchain.stats.newcomers()]).then(function(t){if(!((t=t[1])&&t.result&&t.result.blocks&&t.result.blocks.length))return null;var i=_.sortBy(t.result.blocks,function(e){return-e});return A(i,0,5,e+n)}).then(function(t){return t&&t.length?(t=m(t,e,n),y(t,"pubkey",!0)):null}).then(function(e){return{hits:e,total:a}})},A=function(e,a,o,r){return t(function(s,l){var c=[],u=[];_.each(e.slice(a,a+o),function(e){u.push(i.blockchain.block({block:e}).then(function(e){e&&e.joiners&&_.each(e.joiners,function(t){var n=t.split(":"),i=n[n.length-1]+"-"+n[0];c.push({id:i,uid:n[n.length-1],pubkey:n[0],memberDate:e.medianTime,block:e.number})})}))}),t.all(u).then(function(){c.length<r&&a<e.length-1?n(function(){A(e,a+o,o,r-c.length).then(function(e){s(c.concat(e))}).catch(function(e){l(e)})},1e3):s(c)}).catch(function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?s(c):l(e)})})},S=function(e,n){e=e||0,n=n||20;var a=Date.now();return t.all([i.wot.member.uids(),i.wot.member.pending().then(function(e){return e.memberships&&e.memberships.length?e.memberships:void 0})]).then(function(o){var r=o[0],s=o[1];if(s){var l={},c={};_.forEach(s,function(e){if("IN"==e.membership&&!r[e.pubkey]){var t={uid:e.uid,pubkey:e.pubkey,block:e.blockNumber,blockHash:e.blockHash},n=c[e.pubkey];if(n&&t.block>n.block)return;c[t.pubkey]=t,l[t.block]?l[t.block].push(t):l[t.block]=[t],n&&(l[n.block]=l[n.block].reduce(function(e,t){return t.pubkey==n.pubkey?e:(e||[]).concat(t)},null),null===l[n.block]&&delete l[n.block])}});var u=_.values(c),d=u.length;u=m(u,e,n);var p=u.reduce(function(e,t){return e.concat(t.block)},[]);return t.all([i.blockchain.blocks(_.uniq(p)).then(function(e){_.forEach(e,function(e){_.forEach(l[e.number],function(t){t.sigDate=e.medianTime,0!==e.number&&t.blockHash!==e.hash&&(P(t,{type:"error",message:"ERROR.WOT_PENDING_INVALID_BLOCK_HASH"}),console.debug("Invalid membership for uid={0}: block hash changed".format(t.uid)))})})}),y(u,"pubkey",!0)]).then(function(){return console.debug("[ES] [wot] Loaded {0}/{1} pending identities in {2} ms".format(u&&u.length||0,d,Date.now()-a)),{hits:u,total:d}})}})},C=function(){return L(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","u","v","w","x","y","z"],0,i.constants.LIMIT_REQUEST_COUNT).then(function(e){return y(e,"pubkey",!0)}).then(p).then(function(){return{hits:idties,total:idties.length}})},L=function(e,a,o){return t(function(r,s){var l=[],c={},u=[];_.each(e.slice(a,a+o),function(e){u.push(O(e,{addUniqueId:!1,allowExtension:!1}).then(function(e){e&&e.length&&(l=e.reduce(function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))},l))}))}),t.all(u).then(function(){a<e.length-1?n(function(){L(e,a+o,o).then(function(e){if(!e||!e.length)return void r(l);r(e.reduce(function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))},l))}).catch(function(e){s(e)})},i.constants.LIMIT_REQUEST_DELAY):r(l)}).catch(function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?r(l):s(e)})})},D=function(e,t,n){return y([e],t,n).then(function(e){return e[0]})},y=function(e,n,a){n=n||"pubkey";var o=[];return a||o.push(i.wot.member.uids()),o.push(r.data.raisePromise.search(null,e,n).catch(function(e){console.debug("Error while search identities, on extension point."),console.error(e)})),t.all(o).then(function(t){if(!a){var i=t[0];_.forEach(e,function(e){!e.uid&&e[n]&&(e.uid=i[e[n]],e.uid&&e.uid==e.name&&delete e.name)})}return e})},P=function(e,t){t=t||{},t.type=t.type||"info",t.message=t.message||"",t.messageParams=t.messageParams||{},e.events=e.events||[],e.events.push(t)},k=function(){console.debug("[wot] Cleaning cache..."),c.clear("csWot-")};return r.registerEvent("data","load"),r.registerEvent("data","search"),i.api.node.on.stop(e,k,this),{id:o,load:N,loadRequirements:T,search:O,newcomers:R,pending:S,all:C,extend:D,extendAll:y,api:r}}var d=u("default");return d.instance=u,d}]),angular.module("cesium.tx.services",["ngApi","cesium.bma.services","cesium.settings.services","cesium.wot.services"]).factory("csTx",["$q","$timeout","$filter","$translate","FileSaver","UIUtils","BMA","Api","csConfig","csSettings","csWot","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d){"ngInject";function p(t,r){r=r||m;var l=new s(this,"csTx-"+t),p=function(e,t,n,i,a){t&&t.length&&_.forEach(t,function(t){if(t.block_number||a){var o=!1,s=t.issuers.reduce(function(t,n){return o=o||n===e,t+(n!==e?", "+n:"")},"");s.length>0&&(s=s.substring(2));var l,c,u,d=[],p=t.outputs.reduce(function(n,i,a){var p="string"==typeof i?i.split(":",3):[i.amount,i.base,i.conditions];c=parseInt(p[1]);var m=b(parseInt(p[0]),c),E=p[2],g=r.regexp.TX_OUTPUT_SIG.exec(E);if(g){var _=g[1];if(_==e){if(!o)return n+m;null===t.block_number&&d.push({amount:parseInt(p[0]),base:c,type:"T",identifier:t.hash,noffset:a,consumed:!1})}else if(""!==_&&_!=s&&(l=_),o)return n-m}else if(-1!=E.indexOf("SIG("+e+")")){var f=r.tx.parseUnlockCondition(E);if(f)return f.amount=m,u=u||[],u.push(f),console.debug("[tx] has locked output:",f),n+m}return n},0),m=p>0?s:l,E=t.time||t.blockstampTime,g=p+":"+t.hash+":"+E;if(!i[g]&&0!==p){i[g]=!0;var _={time:E,amount:p,pubkey:m,comment:t.comment,isUD:!1,hash:t.hash,locktime:t.locktime,block_number:t.block_number};o&&null===t.block_number&&(_.inputs=t.inputs,_.sources=d),u&&(_.lockedOutputs=u),n.push(_)}}})},E=function(t,n){return e(function(i,a){var o=moment().utc().unix();n=n||o-c.data.walletHistoryTimeSecond;var s={pendings:[],validating:[],history:[],errors:[]},u={},m=function(e){p(t,e.history.sent,s.history,u),p(t,e.history.received,s.history,u),p(t,e.history.sending,s.pendings,u,!0),p(t,e.history.pending,s.pendings,u,!0)},E=[d.blockchain.current(!0),r.tx.history.pending({pubkey:t}).then(m)];if("pending"!==n){if(n>0){var b=c.data.walletHistorySliceSecond;n-=n%b;for(var g=n;g-b<o;g+=b)E.push(r.tx.history.times({pubkey:t,from:g,to:g+b-1}).then(m));E.push(r.tx.history.timesNoCache({pubkey:t,from:o-o%b,to:o+999999999}).then(m))}else E.push(r.tx.history.all({pubkey:t}).then(m));c.data.showUDHistory&&n>0&&E.push(l.data.raisePromise.loadUDs({pubkey:t,fromTime:n}).then(function(e){e&&e.length&&_.forEach(e,function(e){s.history.push(e)})}).catch(function(e){console.debug("Error while loading UDs history, on extension point."),console.error(e)}))}e.all(E).then(function(e){var t=e[0];s.history.sort(function(e,t){return t.time-e.time}),s.validating=s.history.filter(function(e){return e.block_number>t.number-c.data.blockValidityWindow}),s.validating.length&&s.history.splice(0,s.validating.length),s.fromTime="pending"!==n&&n||void 0,s.toTime=s.history.length?s.history[0].time:s.fromTime,i(s)}).catch(a)})},b=function(e,t){return t<=0?e:e*Math.pow(10,t)},g=function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(t.push(e),n[i]=t.length-1)},f=function(e,t){_(t).forEach(function(t){g(t,e.sources,e.sourcesIndexByKey)})},T=function(e){return r.tx.sources({pubkey:e}).then(function(e){var t={sources:[],sourcesIndexByKey:[],balance:0};return e.sources&&e.sources.length&&(_.forEach(e.sources,function(e){e.consumed=!1,t.balance+=b(e.amount,e.base)}),f(t,e.sources)),t}).catch(function(e){throw console.warn("[tx] Error while getting sources...",e),e})},h=function(t,n){var i=Date.now();return e.all([T(t),E(t,n)]).then(function(e){function t(e){var t=[],i=!0;e.amount>0?i=!1:(_.forEach(e.inputs,function(e){var a=e.split(":").slice(2).join(":"),o=n.sourcesIndexByKey[a];if(!angular.isDefined(o))return i=!1,!1;t.push(n.sources[o])}),e.sources&&f(n,e.sources),delete e.sources,delete e.inputs),i?(s+=e.amount,a.push(e),_.forEach(t,function(e){e.consumed=!0})):o.push(e)}var n=e[0];n.tx=e[1];for(var a=[],o=[],r=n.balance,s=n.balance,l=n.tx.pendings,c=!0;l&&l.length;)_.forEach(l,t),o.length>0&&a.length>0&&c?(l=o,o=[],c=!1):l=null;n.tx=n.tx||{},n.tx.pendings=a.sort(function(e,t){return t.time-e.time}),n.tx.errors=o.sort(function(e,t){return t.time-e.time}),n.balance=s<0?r:s;var d=(n.tx.history||[]).concat(n.tx.validating||[],n.tx.pendings||[],n.tx.errors||[]);return u.extendAll(d,"pubkey").then(function(){return console.debug("[tx] TX and sources loaded in "+(Date.now()-i)+"ms"),n})})},I=function(e){return console.debug("[tx] Loading sources for "+e.substring(0,8)),h(e,"pending")};return downloadHistoryFile=function(t,r){return r=r||{},r.fromTime=r.fromTime||-1,console.debug("[tx] Exporting TX history for pubkey [{0}]".format(t.substr(0,8))),e.all([i(["ACCOUNT.HEADERS.TIME","COMMON.UID","COMMON.PUBKEY","COMMON.UNIVERSAL_DIVIDEND","ACCOUNT.HEADERS.AMOUNT","ACCOUNT.HEADERS.COMMENT"]),d.blockchain.current(!0),h(t,r.fromTime)]).then(function(e){var r=e[0],s=e[1],l=s&&s.medianTime||moment().utc().unix(),c=s&&s.currency,u=e[2];return u&&u.tx&&u.tx.history?i("ACCOUNT.FILE_NAME",{currency:c,pubkey:t,currentTime:l}).then(function(e){var t=n("formatDecimal"),i=n("medianDate"),o=n("currencySymbolNoHtml"),s=[r["ACCOUNT.HEADERS.TIME"],r["COMMON.UID"],r["COMMON.PUBKEY"],r["ACCOUNT.HEADERS.AMOUNT"]+" ("+o(c)+")",r["ACCOUNT.HEADERS.COMMENT"]],l=u.tx.history.concat(u.tx.validating).reduce(function(e,n){return e.concat([i(n.time),n.uid,n.pubkey,t(n.amount/100),'"'+(n.isUD?r["COMMON.UNIVERSAL_DIVIDEND"]:n.comment)+'"'].join(";")+"\n")},[s.join(";")+"\n"]),d=new Blob(l,{type:"text/plain; charset=utf-8"});a.saveAs(d,e)}):o.toast.show("INFO.EMPTY_TX_HISTORY")})},l.registerEvent("data","loadUDs"),{id:t,load:h,loadSources:I,downloadHistoryFile:downloadHistoryFile,api:l}}var m=r,E=new p("default");return E.instance=function(e,t){return new p(e,t)},E}]),angular.module("cesium.wallet.services",["ngApi","ngFileSaver","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWallet",["$q","$rootScope","$timeout","$translate","$filter","$ionicHistory","UIUtils","Api","Idle","localStorage","sessionStorage","Modals","CryptoUtils","csCrypto","BMA","csConfig","csSettings","FileSaver","Blob","csWot","csTx","csCurrency",function(e,t,n,a,o,r,s,l,c,u,d,p,m,E,b,g,f,T,h,I,v,N){"ngInject";function O(b,O){function S(e){return{useLocalStorage:e.useLocalStorage,useLocalStorageEncryption:e.useLocalStorageEncryption,rememberMe:e.rememberMe,keepAuthIdle:e.keepAuthIdle}}function C(e){var t=S(e);if(!angular.equals(B,t)){var n=!angular.equals(B.useLocalStorageEncryption,t.useLocalStorageEncryption),i=!angular.equals(B.useLocalStorage,t.useLocalStorage)||n,a=!angular.equals(B.keepAuthIdle,t.keepAuthIdle);if(B=t,a&&mt(),i){if(B.useLocalStorage)return me().then(function(){if(G.childrenCount>0&&n&&B.useLocalStorageEncryption)return ae({minData:!0,silent:!0}).catch(function(e){if("CANCELLED"===e)return f.apply({useLocalStorageEncryption:!1}),f.store();throw e})}).then(be);Ee(G.pubkey)}}}function L(){x=[f.api.data.on.changed(t,C,this),O.api.node.on.restart(t,M,this)],t.$on("IdleStart",oe)}function D(e){x=x||[],x.push(e)}function y(){_.forEach(x,function(e){e()}),x=[]}function P(){return F?e.when():H||w()}function k(){console.debug("[wallet] Stopping..."),y(),K()}function M(){return k(),n(w,200)}function w(t){t=t||{},t.restore=angular.isDefined(t.restore)?t.restore:"default"===b,console.debug("[wallet] Starting...");var n=Date.now();return H=e.all([f.ready().then(function(){B=S(f.data)}),N.ready(),O.ready()]),t.restore&&(H=H.then(ge)),H.then(function(){L(),console.debug("[wallet] Started in "+(Date.now()-n)+"ms"),F=!0,H=null}).then(function(){return G}),H}O=O||A;var U,B,x,F,H,W,V={STORAGE_PUBKEY:"pubkey",STORAGE_UID:"uid",STORAGE_DATA_PREFIX:"data-",STORAGE_SECKEY:"seckey",TX_VERSION:O.constants.PROTOCOL_VERSION,IDTY_VERSION:O.constants.PROTOCOL_VERSION,MS_VERSION:O.constants.PROTOCOL_VERSION,CERT_VERSION:O.constants.PROTOCOL_VERSION,REVOKE_VERSION:O.constants.PROTOCOL_VERSION,TX_MAX_INPUTS_COUNT:40},G={},Y=!1,j=new l(this,"csWallet-"+b),K=function(e){G.loaded=!1,G.pubkey=null,G.uid=null,G.localName=null,G.isNew=null,G.sourcesIndexByKey=null,G.medianTime=null,G.requirements={},G.blockUid=null,G.sigDate=null,G.sigStock=null,G.isMember=!1,G.events=[],G.children=[],G.encryptedData=null,z(),X(),F=!1,H=void 0,
-e?j.data.raise.init(G):(Q()&&B&&!B.useLocalStorage&&f.reset(),j.data.raise.reset(G))},z=function(){G.keypair={signSk:null,signPk:null}},$=function(){G.sources=void 0,G.sourcesIndexByKey=void 0,G.balance=0},q=function(){G.tx=G.tx||{},G.tx.history=[],G.tx.pendings=[],G.tx.validating=[],G.tx.errors=[],delete G.tx.fromTime,delete G.tx.toTime},X=function(){$(),q()},Q=function(){return"default"===b},J=function(){return G.encryptedData&&G.encryptedData.nonce&&G.encryptedData.content},Z=function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(t.push(e),n[i]=t.length-1)},ee=function(e){G.sources=G.sources||[],G.sourcesIndexByKey=G.sourcesIndexByKey||{},_(e).forEach(function(e){Z(e,G.sources,G.sourcesIndexByKey)})},te=function(t){if(!F)return(H||w()).then(function(){return te(t)});var i=!ie(),a=t&&(t.auth&&!re()||t.forceAuth);if(!i&&!a)return ce(t)?e.when(G):Re(t);var o,r=f.data.keepAuthIdle>0;return(t&&t.authData&&e.when(t.authData)||p.showLogin(t)).then(function(e){if(!e||!e.pubkey||!i&&e.pubkey!==G.pubkey||a&&(!e.keypair||!e.keypair.signPk||!e.keypair.signSk))throw"CANCELLED";if(o=e,G.pubkey=o.pubkey,G.uid=o.uid||G.uid,G.isNew=t&&angular.isDefined(t.isNew)?t.isNew:G.isNew,r&&(G.keypair=o.keypair||{signSk:null,signPk:null}),i)return j.data.raisePromise.loginCheck(G).catch(function(e){throw K(),e}).then(function(){if(i)return j.data.raisePromise.login(G).catch(function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)})})}).then(function(){return i?_e():a?pt():void 0}).then(function(){if(i&&me(),a||re())return mt(!0),j.data.raisePromise.auth(r?G:o)}).then(function(){var e=!i&&t&&t.minData?{minData:!0}:void 0;if(!ce(e))return Re(e)}).then(function(){return t&&t.silent&&s.loading.hide(),r?G:angular.merge({},G,o)}).catch(function(e){if(!("RETRY"!=e||t&&t.authData))return n(function(){return te(t)},300);throw e})},ne=function(){var t=re();return e(function(e,n){var i=G.pubkey;K(),Ee(i),j.data.raise.logout(),t&&j.data.raise.unauth(),mt(!1),r.clearCache(),e()})},ie=function(){return!!G.pubkey},ae=function(t){return F?!re()||t&&t.forceAuth?(t=t||{},t.expectedPubkey=ie()&&G.pubkey,t.auth=!0,te(t)):e.when(G):(H||w()).then(function(){return ae(t)})},oe=function(){return e(function(e,t){z(),me(),j.data.raise.unauth(),mt(!1),r.clearCache(),e()})},re=function(){return G.pubkey&&G.keypair&&G.keypair.signSk&&!0},se=function(t){return F?re()?e.when(G.keypair):(t=t||{},t.silent=!angular.isDefined(t.silent)||t.silent,ae(t).then(function(){return G.keypair})):(H||w()).then(function(){return se(t)})},le=function(){return!!G.pubkey&&!G.requirements.needSelf},ce=function(e){if(e){if(e.minData&&!e.sources)return G.loaded&&!0;if(e.requirements&&!G.requirements.loaded)return!1;if(e.tx&&e.tx.enable&&(!G.tx.fromTime||"pending"==G.tx.fromTime))return!1;if(e.sigStock&&!G.sigStock)return!1}return G.loaded&&G.sources&&!0},ue=function(){if(G.loaded)return!G.pubkey||!(G.isMember||G.requirements.pendingMembership||G.requirements.revoked||!G.requirements.needSelf||G.requirements.wasMember||G.tx.history.length||G.tx.pendings.length||G.localName||G.name||G.avatar)},de=function(){return!!G.isNew},pe=function(e){return ie()&&G.pubkey===e},me=function(t){if(t=t&&"string"==typeof t?t:G.pubkey,B.useLocalStorage){if(ie()&&B.rememberMe){var n=Date.now();console.debug("[wallet] Storing...");var i=[];return B.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION&&re()?i.push(d.put(V.STORAGE_SECKEY,m.util.encode_base58(G.keypair.signSk))):i.push(d.put(V.STORAGE_SECKEY,null)),i.push(u.put(V.STORAGE_PUBKEY,G.pubkey)),G.uid?i.push(u.put(V.STORAGE_UID,G.uid)):i.push(u.put(V.STORAGE_UID,null)),e.all(i).then(function(){console.debug("[wallet] Stored in "+(Date.now()-n)+"ms")})}return e.all([d.put(V.STORAGE_SECKEY,null),u.put(V.STORAGE_PUBKEY,null),u.put(V.STORAGE_UID,null),t?d.put(V.STORAGE_DATA_PREFIX+t,null):e.when()])}return e.all([d.put(V.STORAGE_SECKEY,null),u.put(V.STORAGE_PUBKEY,null),u.put(V.STORAGE_UID,null),t?d.put(V.STORAGE_DATA_PREFIX+t,null):e.when(),t?u.put(V.STORAGE_DATA_PREFIX+t,null):e.when()])},Ee=function(t){return console.debug("[wallet] Resetting stored pubkey (and uid) in local storage..."),d.put(V.STORAGE_SECKEY,null),u.put(V.STORAGE_PUBKEY,null),u.put(V.STORAGE_UID,null),B.useLocalStorage?t?d.put(V.STORAGE_DATA_PREFIX+t,null):e.when():(console.debug("[wallet] Resetting stored data in local storage..."),e.all([t?d.put(V.STORAGE_DATA_PREFIX+t,null):e.when(),t?u.put(V.STORAGE_DATA_PREFIX+t,null):e.when()]))},be=function(){if(!ie())throw{message:"ERROR.NEED_LOGIN_FIRST"};var t,n,i=B.useLocalStorageEncryption,a=V.STORAGE_DATA_PREFIX+G.pubkey;G.notifications&&G.notifications.time&&(t=t||{},t.notifications={time:G.notifications.time}),G.invitations&&G.invitations.time&&(t=t||{},t.invitations={time:G.invitations.time}),G.children&&G.children.length&&(t=t||{},t.childrenCount=G.children.length,n=n||{},n.children=_.map(G.children,function(e){return{pubkey:e.data.pubkey,uid:e.data.uid,localName:e.data.localName}}));var o=(t||n)&&JSON.stringify(angular.merge({},t||{},n||{}));return i&&n?re()?e.all([m.util.random_nonce(),m.box.keypair.fromSignKeypair(G.keypair),d.put(a,o||null)]).then(function(e){var i=e[0],o=e[1];return m.box.pack(JSON.stringify(n),i,o.boxPk,o.boxSk).then(function(e){return t=angular.merge(t||{},{encryptedData:{nonce:m.util.encode_base58(i),content:e}}),u.put(a,JSON.stringify(t))})}):d.put(a,o||null):e.all([d.put(a,null),u.put(a,o||null)])},ge=function(){return e.all([d.get(V.STORAGE_SECKEY),u.get(V.STORAGE_PUBKEY),u.get(V.STORAGE_UID)]).then(function(e){var t=e[0],n=e[1],i=e[2];if(n&&"null"!=n){console.debug("[wallet] Restore {"+n.substring(0,8)+"} from local storage");var a;if(t&&t.length&&"null"!=t)try{a={signPk:m.util.decode_base58(n),signSk:m.util.decode_base58(t)}}catch(e){console.warn("[wallet] Secret key restoration failed: ",e),a=void 0}return G.pubkey=n,G.uid=i&&"null"!=i?i:void 0,G.keypair=a||{signPk:void 0,signSk:void 0},_e()}}).then(function(){return re()?e.all([j.data.raisePromise.login(G),mt(!0),j.data.raisePromise.auth(G)]).catch(function(e){console.warn("Error during extension call [wallet.api.data.on.auth]",e)}):ie()?j.data.raisePromise.login(G).catch(function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)}):void 0}).then(function(){return G})},_e=function(){if(!ie())throw{message:"ERROR.NEED_LOGIN_FIRST"};return de()?e.when(G):e.all([d.getObject(V.STORAGE_DATA_PREFIX+G.pubkey),u.getObject(V.STORAGE_DATA_PREFIX+G.pubkey)]).then(function(e){var t=e[0],n=e[1];return t&&t.children&&t.children.length===n.childrenCount?fe(t).catch(function(e){return console.error("[wallet] Failed to restore from the session storage ! Retrying from the local storage...",e),fe(n)}):fe(n)})},fe=function(t){if(!t)return e.when();if(t.children){var n=G.childrenCount,i=it({stop:!1,store:!1});try{var a={};_.forEach(t.children,function(e){if(!a[e.pubkey]){a[e.pubkey]=!0;var t=ct();t.data.pubkey=e.pubkey,t.data.localName=e.localName,t.data.uid=e.uid,nt(t,{store:!1})}}),delete t.children,delete G.childrenCount}catch(t){return console.error("[wallet] Failed to restore children wallet.",t),G.childrenCount=n,G.children=i,e.reject({message:"ERROR.RESTORE_WALLET_LIST_FAILED"})}_.forEach(i||[],function(e){e.stop()})}return delete t.pubkey,delete t.uid,angular.merge(G,t),J()&&re()?pt({store:!1}).then(function(){return G}):e.when(G)},Te=function(){return G},he=function(e){return Ze("requirements"),I.loadRequirements(G,e)},Ie=function(e){return v.load(G.pubkey,e).then(function(e){X(),angular.merge(G,e)}).catch(function(e){throw X(),e})},ve=function(){return v.loadSources(G.pubkey).then(function(e){$(),angular.merge(G,e)}).catch(function(e){throw $(),e})},Ne=function(){G.requirements.revoked?(delete G.requirements.meta.invalid,Ve({type:"info",message:"ERROR.WALLET_REVOKED",context:"requirements"})):G.requirements.pendingRevocation?(delete G.requirements.meta.invalid,Ve({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"})):(!G.isMember&&G.requirements.meta&&G.requirements.meta.invalid?(Ve({type:"error",message:"ERROR.WALLET_INVALID_BLOCK_HASH",context:"requirements"}),console.debug("Invalid membership for uid={0}: block hash changed".format(G.uid))):!G.isMember&&G.requirements.expired?(Ve({type:"error",message:"ERROR.WALLET_IDENTITY_EXPIRED",context:"requirements"}),console.debug("Identity expired for uid={0}.".format(G.uid))):G.requirements.pendingMembership?(Ve({type:"pending",message:"ACCOUNT.WAITING_MEMBERSHIP",context:"requirements"}),!G.requirements.needCertificationCount&&G.requirements.outdistanced&&Ve({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})):!G.requirements.needSelf&&G.requirements.needMembership&&Ve({type:"warn",message:"ACCOUNT.NO_WAITING_MEMBERSHIP",context:"requirements"}),G.requirements.needRenew?Ve(G.isMember&&G.requirements.membershipExpiresIn>0?{type:"warn",message:"ACCOUNT.WILL_NEED_RENEW_MEMBERSHIP",messageParams:G.requirements,context:"requirements"}:!G.isMember&&G.requirements.membershipExpiresIn>0&&G.requirements.needCertificationCount>0?{type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED",messageParams:G.requirements,context:"requirements"}:{type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:G.requirements,context:"requirements"}):(G.requirements.needCertificationCount>0&&(Ve({type:"info",message:"ACCOUNT.WAITING_CERTIFICATIONS",messageParams:G.requirements,context:"requirements"}),G.requirements.wasMember||Ve({type:"help",message:"ACCOUNT.WAITING_CERTIFICATIONS_HELP",messageParams:G.requirements,context:"requirements"})),G.requirements.willNeedCertificationCount>0&&Ve({type:"warn",message:"ACCOUNT.WILL_MISSING_CERTIFICATIONS",messageParams:G.requirements,context:"requirements"}),G.requirements.wasMember&&G.requirements.needMembership&&Ve({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:G.requirements,context:"requirements"}),G.requirements.needCertificationCount||G.requirements.willNeedCertificationCount||!G.requirements.outdistanced||Ve({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})))},Oe=function(){return O.wot.certifiedBy({pubkey:G.pubkey}).then(function(e){G.sigStock=e.certifications?e.certifications.reduce(function(e,t){return null===t.written?e:e+1},0):0}).catch(function(e){if(e&&e.ucode==O.errorCodes.NO_MATCHING_MEMBER)G.sigStock=0;else{if(!e||1002!=e.ucode)throw e;console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),G.sigStock=0}})},Re=function(e){var t=!N.data.initPhase&&(!f.data.wallet||f.data.wallet.alertIfUnusedWallet)&&!G.loaded&&(!e||!e.minData||!e.silent);return W?W.then(function(){return ce(e)?G:Ce(e)}):(W=e&&e.minData?Se(e):e||G.loaded?Ce(e):Ae(),W.then(function(){var e=ue();return!(t&&!de()&&angular.isDefined(e)&&e)||s.loading.hide().then(function(){return s.alert.confirm("CONFIRM.LOGIN_UNUSED_WALLET","CONFIRM.LOGIN_UNUSED_WALLET_TITLE",{cancelText:"COMMON.BTN_CONTINUE",okText:"COMMON.BTN_RETRY"})}).then(function(e){return e?ne().then(function(){throw"RETRY"}):(f.data.wallet.alertIfUnusedWallet&&(f.data.wallet.alertIfUnusedWallet=!1,f.store()),!0)})}).then(function(e){if(W=null,e)return G;throw"CANCELLED"}))},Ae=function(){return G.loaded=!1,e.all([he(!0).then(function(e){if(e.requirements&&(e.requirements.isMember||e.requirements.wasMember))return Oe();e.sigStock=0}),Ie()]).then(function(){return Ne(),j.data.raisePromise.load(G).catch(function(e){console.error("[wallet] Error during load API extension point. Try to continue",e)})}).then(function(){return G.loaded=!0,G}).catch(function(e){throw G.loaded=!1,e})},Se=function(t){return t=t||{},t.requirements=angular.isDefined(t.requirements)?t.requirements:!G.requirements.loaded||angular.isUndefined(G.requirements.needSelf),t.requirements?Ce(t).then(function(e){return e.loaded=!0,e}):e.when(G)},Ce=function(t){t=t||{requirements:!0,sources:!0,tx:{enable:!0,fromTime:G.tx?G.tx.fromTime:void 0},sigStock:!0,api:!0},t.requirements=angular.isDefined(t.requirements)?t.requirements:!G.requirements.loaded,angular.isUndefined(t.sources)&&t.tx&&t.tx.enable&&(t.sources=!0);var n=[];return t.requirements&&(Ze("requirements"),n.push(he(!0).then(Ne))),!t.sources||t.tx&&!t.tx.enable?t.sources&&t.tx&&!t.tx.enable&&n.push(ve()):n.push(Ie(t.tx?t.tx.fromTime:void 0)),t.sigStock&&n.push(Oe()),(n.length?e.all(n):e.when()).then(function(){return angular.isDefined(t.api)&&!t.api?G:j.data.raisePromise.load(G).then(function(){return G.loaded||(G.loaded=G.requirements.loaded&&G.sources),G})})},Le=function(t,n){return G.uid!=t||n&&G.blockUid!=n?G.loaded?(G.uid=t,G.blockUid=n,Ce({requirements:!0,sigStock:!0}).then(function(){return me({skipData:!0})})):W?W.then(function(){return Le(t,n)}):e.when():e.when()},De=function(e,t){if(!t)return!0;if(e<Math.pow(10,t))return!1;var n="00000000"+e;return 0===parseInt(n.substring(n.length-t))},ye=function(e,t){var n=Math.pow(10,t);return e<n?0:Math.trunc(e/n)*n},Pe=function(e,t){var n=Math.pow(10,t);return e<n?n:Math.trunc(e/n)*n},ke=function(e,t){return t<=0?e:e*Math.pow(10,t)},Me=function(e,t,n){angular.isUndefined(n)&&(n=t);var i=0,a=[],o=n,r=n;if(_.find(G.sources||[],function(t){return!t.consumed&&t.base===n&&O.regexp.TX_OUTPUT_SIG.exec(t.conditions)&&(i+=ke(t.amount,t.base),a.push(t)),i>=e}),i<e&&n>0){n-=1;var s=e-i,l=Me(s,t,n);l.amount>0&&(o=l.minBase,i+=l.amount,[].push.apply(a,l.sources))}return{minBase:o,maxBase:r,amount:i,sources:a}},we=function(t,i,r,l,c,u){return e.all([se(),N.get(),u&&e.when(u)||N.blockchain.current()]).then(function(e){var d=e[0],p=e[1];if(u=e[2],!O.regexp.PUBKEY.test(t))throw{message:"ERROR.INVALID_PUBKEY"};if(!O.regexp.COMMENT.test(r))throw{message:"ERROR.INVALID_COMMENT"};if(!ie())throw{message:"ERROR.NEED_LOGIN_FIRST"};if(t===G.pubkey)throw{message:"ERROR.SAME_TX_RECIPIENT"};if(!i)throw{message:"ERROR.AMOUNT_REQUIRED"};if(i<=0)throw{message:"ERROR.AMOUNT_NEGATIVE"};i=Math.floor(i);var m={amount:0,minBase:u.unitbase,maxBase:u.unitbase+1,sources:[]},E=[];E.push("[wallet] amount="+i);for(var b=0;m.amount<i&&b<=u.unitbase;)m=Me(i,u.unitbase),m.amount<i&&++b<=u.unitbase&&(i=ye(i,b),E.push("[wallet] inputs not found. Retrying with amount ="+i+" be compatible with amountBase="+b));if(m.amount<i){if(G.balance<i)throw{message:"ERROR.NOT_ENOUGH_CREDIT"};if(0===m.amount)throw{message:"ERROR.ALL_SOURCES_USED"};return a("COMMON.UD").then(function(e){var t;return t=l?{amount:o("formatDecimal")(m.amount/p.currentUD),unit:e,subUnit:o("abbreviate")(p.name)}:{amount:o("formatDecimal")(m.amount/100),unit:o("abbreviate")(p.name),subUnit:""},a("ERROR.NOT_ENOUGH_SOURCES",t).then(function(e){throw{message:e}})})}return b<m.minBase&&!De(i,m.minBase)?(i=Pe(i,m.minBase),console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Amount has been truncate to "+i)):b>0&&(console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Will use amount truncated to "+i+" (amountBase="+b+")")),Be(p,u,d,t,i,m,r,c||G.pubkey,E).then(function(e){G.balance-=e.amount,G.balance<0&&(G.balance=0),_.forEach(m.sources,function(e){e.consumed=!0}),e&&e.sources.length&&(console.debug("[wallet-service] New sources to be add after the TX: ",e.sources),ee(e.sources));var n={time:N.date.now(),amount:-i,pubkey:t,comment:r,isUD:!1,hash:e.hash,locktime:0,block_number:null};return I.extendAll([n],"pubkey").then(function(){return G.tx.pendings.unshift(n),j.data.raise.balanceChanged(G),j.data.raise.newTx(G),{hash:e.hash}})}).catch(function(e){if(e&&e.ucode===O.errorCodes.SOURCE_ALREADY_CONSUMED)return console.debug("[wallet] TX rejected by node with error [{0}]. Reloading sources then retry...".format(e.message||"Source already consumed")),n(Ie,500).then(function(){return we(t,i,r,l,c,u)});if(e&&e.ucode===O.errorCodes.TX_INPUTS_OUTPUTS_NOT_EQUAL){if(f.data.plugins&&f.data.plugins.es&&f.data.plugins.es.enable)return s.loading.hide(),s.alert.confirm("CONFIRM.ISSUE_524_SEND_LOG","ERROR.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_OK",cancelText:"COMMON.BTN_NO"}).then(function(e){if(e)return j.error.raise.send({title:"Issue #524 logs",content:"App version: "+g.version+"\nApp build: "+g.build+"\nLogs:\n\n"+E.join("\n")}),n(function(){throw{message:"ERROR.ISSUE_524_TX_FAILED"}},1500);throw{message:"ERROR.SEND_TX_FAILED"}})}throw e})})},Ue=function(t,n,i,a,o){return ie()?o&&t!=o?N.blockchain.lastValid().then(function(e){return console.debug("[wallet] Using last valid block as TX reference (to avoid network fork): ",e),we(t,n,i,a,o,e).then(function(){if(G.balance>0&&o)return console.debug("[wallet] Wallet has some more money: transfering fund to [{0}]".format(o.substring(0,8))),we(o,G.balance,void 0,!1,o,e)})}):e.reject({message:"Could not have same pubkey for 'destPub' and 'restPub'"}):e.reject({message:"ERROR.NEED_LOGIN_FIRST"})},Be=function(e,t,n,a,o,r,s,l,c){if(r.sources.length>V.TX_MAX_INPUTS_COUNT){console.debug("[Wallet] TX has to many sources. Will chain TX...");var u={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(0,V.TX_MAX_INPUTS_COUNT)};return _.forEach(u.sources,function(e){e.base<u.minBase&&(u.minBase=e.base),e.base>u.maxBase&&(u.maxBase=e.base),u.amount+=ke(e.amount,e.base)}),Be(e,t,n,G.pubkey,u.amount,u,void 0,G.pubkey,c).then(function(i){_.forEach(u.sources,function(e){e.consumed=!0}),ee(i.sources);var d={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(V.TX_MAX_INPUTS_COUNT).concat(i.sources)};return _.forEach(d.sources,function(e){e.base<d.minBase&&(d.minBase=e.base),e.base>d.maxBase&&(d.maxBase=e.base),d.amount+=ke(e.amount,e.base)}),Be(e,t,n,a,o,d,s,l,c)})}var d="Version: "+V.TX_VERSION+"\nType: Transaction\nCurrency: "+e.name+"\nBlockstamp: "+t.number+"-"+t.hash+"\nLocktime: 0\nIssuers:\n"+G.pubkey+"\nInputs:\n";for(_.forEach(r.sources,function(e){d+=[e.amount,e.base,e.type,e.identifier,e.noffset].join(":")+"\n"}),d+="Unlocks:\n",i=0;i<r.sources.length;i++)d+=i+":SIG(0)\n";d+="Outputs:\n";var p,E=o,b=r.maxBase,g=0,f=[];if(a!==G.pubkey){for(;E>0;)p=ye(E,b),E-=p,p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+a+")\n",g++),b--;E=r.amount-o,b=r.maxBase}for(;E>0;)p=ye(E,b),E-=p,p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+l+")\n",G.pubkey===l&&f.push({type:"T",noffset:g,amount:p,base:b}),g++),b--;return d+="Comment: "+(s||"")+"\n",c&&(a==G.pubkey?c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase):c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase+"\n - sources (=TX inputs):"),_.forEach(r.sources,function(e){c.push([e.amount,e.base,e.type,e.identifier,e.noffset].join(":"))}),c.push("\n[wallet] generated TX document (without signature) :\n------ START ------\n"+d+"------ END ------\n")),m.sign(d,n).then(function(e){var t=d+e+"\n";return O.tx.process({transaction:t}).catch(function(e){if(!e||e.ucode!==O.errorCodes.TX_ALREADY_PROCESSED)throw e}).then(function(){return m.util.hash(t)}).then(function(e){return _.forEach(f,function(t){t.identifier=e,t.consumed=!1,t.pending=!0}),{amount:G.pubkey===a?0:G.pubkey===l?o:r.amount,tx:t,hash:e,sources:f}})})},xe=function(e,t,n,i){if(n=n||G.uid,i=i||G.blockUid,!n||!i)throw{message:"ERROR.WALLET_HAS_NO_SELF"};if(G.requirements.expired)throw{message:"ERROR.WALLET_IDENTITY_EXPIRED"};var a="Version: "+V.IDTY_VERSION+"\nType: Identity\nCurrency: "+e.name+"\nIssuer: "+G.pubkey+"\nUniqueID: "+n+"\nTimestamp: "+i+"\n";return m.sign(a,t).then(function(e){return a+=e+"\n",console.debug("Has generate an identity document:\n----\n"+a+"----"),a})},Fe=function(t,n){if(!O.regexp.USER_ID.test(t))return e.reject({message:"ERROR.INVALID_USER_ID"});var i;return e.all([se(),N.get(),N.blockchain.lastValid()]).then(function(e){var n=e[0],a=e[1];return i=e[2],xe(a,n,t,i.number+"-"+i.hash)}).then(function(e){return O.wot.add({identity:e})}).then(function(){if(n)return he(!1).then(Ne);G.uid=t,G.blockUid=i.number+"-"+i.hash}).catch(function(e){if(e&&e.ucode===O.errorCodes.IDENTITY_SANDBOX_FULL)throw{ucode:O.errorCodes.IDENTITY_SANDBOX_FULL,message:"ERROR.IDENTITY_SANDBOX_FULL"};throw e})},He=function(t){return function(){var i;return e.all([se(),N.blockchain.lastValid()]).then(function(e){var n=e[0],a=e[1];return i="Version: "+V.MS_VERSION+"\nType: Membership\nCurrency: "+a.currency+"\nIssuer: "+G.pubkey+"\nBlock: "+a.number+"-"+a.hash+"\nMembership: "+(t?"IN":"OUT")+"\nUserID: "+G.uid+"\nCertTS: "+G.blockUid+"\n",m.sign(i,n)}).then(function(e){var t=i+e+"\n";return O.blockchain.membership({membership:t})}).then(function(){return n(function(){return he(!1)},1e3)}).then(Ne)}},We=function(t,n,i,a,o,r){return e.all([se(),N.get(),N.blockchain.current()]).then(function(e){var s=e[0],l=e[1],c=e[2],u="Version: "+V.CERT_VERSION+"\nType: Certification\nCurrency: "+l.name+"\nIssuer: "+G.pubkey+"\nIdtyIssuer: "+n+"\nIdtyUniqueID: "+t+"\nIdtyTimestamp: "+i+"\nIdtySignature: "+a+"\nCertTimestamp: "+c.number+"-"+c.hash+"\n";return m.sign(u,s).then(function(e){var t=u+e+"\n";return O.wot.certify({cert:t})}).then(function(){var e={pubkey:n,uid:t,time:c.medianTime,isMember:o,wasMember:r,expiresIn:l.parameters.sigWindow,pending:!0,block:c.number,valid:!0};return j.action.raise.certify(e),e})})},Ve=function(e,t){e=e||{},e.type=e.type||"info",e.message=e.message||"",e.messageParams=e.messageParams||{},e.context=e.context||"undefined",e.message.trim().length?t?G.events.splice(0,0,e):G.events.push(e):console.debug("Event without message. Skipping this event")},Ge=function(e){var t=Math.round(e.answer.length/2),n=e.answer.substr(0,t),i=e.answer.substr(t);return m.scryptKeypair(n,i).then(function(t){return e.pubkey=m.util.encode_base58(t.signPk),e.keypair=t,e})},Ye=function(t){return Ge(t).then(m.util.random_nonce).then(function(n){return t.nonce=m.util.encode_base58(n),e.all([m.box.pack(t.salt,n,t.keypair.boxPk,t.keypair.boxSk),m.box.pack(t.pwd,n,t.keypair.boxPk,t.keypair.boxSk)])}).then(function(e){return t.salt=e[0],t.pwd=e[1],t})},je=function(e){var t=m.util.decode_base58(e.cypherNonce);return Ge(e).then(function(e){return m.box.open(e.cypherSalt,t,e.keypair.boxPk,e.keypair.boxSk)}).then(function(n){return e.salt=n,m.box.open(e.cypherPwd,t,e.keypair.boxPk,e.keypair.boxSk)}).then(function(t){return e.pwd=t,e}).catch(function(e){console.warn("Incorrect answers - Unable to recover passwords")})},Ke=function(e){var t="Version: 10 \nType: SaveID\nQuestions: \n"+e.questions+"Issuer: "+G.pubkey+"\nCrypted-Nonce: "+e.nonce+"\nCrypted-Pubkey: "+e.pubkey+"\nCrypted-Salt: "+e.salt+"\nCrypted-Pwd: "+e.pwd+"\n";return m.sign(t,G.keypair).then(function(e){return t+=e+"\n",console.debug("Has generate an SaveID document:\n----\n"+t+"----"),t})},ze=function(e){return Ke(e).then(function(e){var t=new h([e],{type:"text/plain; charset=utf-8"});T.saveAs(t,"{0}-recover_ID.txt".format(G.pubkey.substring(0,8)))})},$e=function(t){return re()?e.all([N.get(),E.keyfile.generateContent(G.keypair,{type:t,password:function(){return s.loading.hide(),p.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP"}).then(function(e){return s.loading.show(10).then(function(){return e})})}})]).then(function(e){var n=e[0],i=e[1];return a("ACCOUNT.SECURITY.KEYFILE_FILENAME",{currency:n.name,pubkey:G.pubkey,format:t}).then(function(e){var t=new h([i],{type:"text/plain; charset=utf-8"});T.saveAs(t,e)})}):e.reject("user not authenticated")},qe=function(){return e.all([se(),N.get()]).then(function(e){var t=e[0],n=e[1];return xe(n,t).then(function(e){var i=e.trim().split("\n"),a=i[i.length-1],o="Version: "+V.REVOKE_VERSION+"\nType: Revocation\nCurrency: "+n.name+"\nIssuer: "+G.pubkey+"\nIdtyUniqueID: "+G.uid+"\nIdtyTimestamp: "+G.blockUid+"\nIdtySignature: "+a+"\n";return m.sign(o,t).then(function(e){return o+=e+"\n",console.debug("Has generate an revocation document:\n----\n"+o+"----"),o})})})},Xe=function(){return Ze("revocation"),qe().then(function(e){return O.wot.revoke({revocation:e})}).then(function(){return n(function(){return he(!1)},1e3)}).then(Ne).catch(function(e){if(!e||e.ucode!=O.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Ve({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)})},Qe=function(t){return e.all([O.wot.revoke({revocation:t})]).then(function(e){if(ie())return n(function(){return he(!1)},1e3).then(Ne).catch(function(e){if(!e||e.ucode!=O.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Ve({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)});Ve({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)})},Je=function(){return e.all([N.get(),qe()]).then(function(e){var t=e[0],n=e[1],i=new h([n],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.SECURITY.REVOCATION_FILENAME",{uid:G.uid,currency:t.name,pubkey:G.pubkey}).then(function(e){T.saveAs(i,e)})})},Ze=function(e){G.events=G.events.reduce(function(t,n){return n.context&&n.context==e?t:t.concat(n)},[])},et=function(n){x=x||[];var i;_.forEach(["load","reset"],function(a){i=j.data.on[a](t,function(t,i){return i=i||e.defer(),n.api.data.raisePromise[a](t).then(i.resolve).catch(i.reject),i.promise},this),x.push(i)}),i=n.api.data.on.unauth(t,function(){re()&&oe()},this),x.push(i)},tt=function(e){var t=lt()+1,n=R.instance(t);return nt(n,e),n},nt=function(t,n){return t.children.setParent(U),G.children=G.children||[],G.children.push(t),!n||angular.isUndefined(n.store)||n.store?be():e.when()},it=function(e){e&&!e.stop||_.forEach(G.children||[],function(e){e.stop()});var t=G.children.splice(0,G.children.length);return!e||angular.isUndefined(e.store)||e.store?be():t},at=function(e,t){G.children=G.children||[];var n=_.findIndex(G.children,function(t){return t.id==e});return-1===n?void console.warn("[wallet] Unable to remove child wallet {"+e+"} (not found)"):(G.children.splice(n,1)[0].stop(),!t||angular.isUndefined(t.store)||t.store?be():void 0)},ot=function(e){return"default"!==e&&_.find(G.children||[],function(t){return t.id==e})||void 0},rt=function(e){return _.find(G.children||[],function(t){return t.isUserPubkey(e)})},st=function(e){return!!rt(e)},lt=function(){return angular.isDefined(G.childrenCount)?G.childrenCount:G.children&&G.children.length||0},ct=function(){var e=(G.children&&G.children.reduce(function(e,t){return Math.max(e,t.id)},0)||G.childrenCount||0)+1;return R.instance(e,O)},ut=function(){return pt().then(function(){return G.children})},dt=function(){return e.all([ut(),N.get()]).then(function(e){var t=e[0],n=e[1],i=(t||[]).reduce(function(e,t){return e+[t.data.pubkey,t.data.uid,t.data.localName||t.data.name].join("\t")+"\n"},""),o=new h([i],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.WALLET_LIST.EXPORT_FILENAME",{pubkey:G.pubkey,currency:n.name}).then(function(e){T.saveAs(o,e)})})},pt=function(t){return J()?re()?m.box.keypair.fromSignKeypair(G.keypair).then(function(e){var t=m.util.decode_base58(G.encryptedData.nonce);return m.box.open(G.encryptedData.content,t,e.boxPk,e.boxSk)}).then(function(e){G.encryptedData=null;var n=fe(JSON.parse(e));return(!t||angular.isUndefined(t.store)||t.store)&&n.then(function(){return be()}),n}):ae().then(pt):e.when()},mt=function(e){e=angular.isDefined(e)?e:re();var t=e&&B.keepAuthIdle>0&&B.keepAuthIdle!=f.constants.KEEP_AUTH_IDLE_SESSION,n=Y!=t;n?(t?(console.debug("[wallet] Start idle (delay: {0}s)".format(B.keepAuthIdle)),c.setIdle(B.keepAuthIdle),c.watch()):Y&&(console.debug("[wallet] Stop idle"),c.unwatch()),Y=t):t&&c.getIdle()!==B.keepAuthIdle&&(console.debug("[idle] Updating auth idle (delay: {0}s)".format(B.keepAuthIdle)),c.setIdle(B.keepAuthIdle)),e&&B.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION&&!0?d.put(V.STORAGE_SECKEY,m.util.encode_base58(G.keypair.signSk)):n&&d.put(V.STORAGE_SECKEY,null)};return j.registerEvent("data","init"),j.registerEvent("data","loginCheck"),j.registerEvent("data","login"),j.registerEvent("data","auth"),j.registerEvent("data","unauth"),j.registerEvent("data","load"),j.registerEvent("data","logout"),j.registerEvent("data","reset"),j.registerEvent("data","store"),j.registerEvent("error","send"),j.registerEvent("data","balanceChanged"),j.registerEvent("data","newTx"),j.registerEvent("action","certify"),K(!0),"default"!==b&&(me=e.when,ge=e.when,_e=e.when),U={id:b,data:G,ready:P,start:w,stop:k,login:te,logout:ne,auth:ae,unauth:oe,isLogin:ie,isAuth:re,getKeypair:se,hasSelf:le,setSelf:Le,isMember:function(){return G.isMember},isDataLoaded:ce,isDefault:Q,isNeverUsed:ue,isNew:de,isUserPubkey:pe,getData:Te,loadData:Re,refreshData:Ce,internal:{addListener:D,removeListeners:y},store:me,storeData:be,transfer:we,transferAll:Ue,self:Fe,revoke:Xe,revokeWithFile:Qe,certify:We,downloadSaveId:ze,getCryptedId:Ye,recoverId:je,downloadRevocation:Je,downloadKeyFile:$e,membership:{inside:He(!0),out:He(!1)},events:{add:Ve,cleanByContext:Ze},children:{create:tt,add:nt,remove:at,get:ot,getByPubkey:rt,all:ut,setParent:et,count:lt,hasPubkey:st,instance:ct,downloadFile:dt},api:j}}var R,A=b;return R=O("default",b),R.instance=O,R}]),angular.module("cesium.help.services",[]).constant("csHelpConstants",{wallet:{stepCount:4}}).factory("csHelp",["$rootScope","csSettings","UIUtils","csHelpConstants","$controller",function(e,t,n,i,a){"ngInject";function o(i,o){if(i||!e.tour&&t.data.helptip.enable&&!n.screen.isSmall()){var r=e.$new();return a(o||"HelpTipCtrl",{$scope:r}),r}}function r(e,n){if(e=angular.isDefined(e)?e:t.data.helptip.wallet,n=!!angular.isDefined(n)&&n,!(e<0||e>=i.wallet.stepCount)){var a=o(n);if(a)return a.tour=n,a.startWalletTour(e,!1).then(function(e){a.$destroy(),n||(t.data.helptip.wallet=e,t.store())})}}return{wallet:{tour:function(){return r(0,!0)},helptip:r}}}]),angular.module("cesium.plugin.services",[]).provider("PluginService",function(){"ngInject";var e=[],t={};this.registerEagerLoadingService=function(t){return e.push(t),this},this.extendState=function(e,n){return angular.isDefined(e)&&angular.isDefined(n)&&(t[e]||(t[e]=[]),t[e].push(n)),this},this.extendStates=function(e,t){var n=this;return e.forEach(function(e){n.extendState(e,t)}),this},this.$get=["$injector","$state",function(n,i){function a(){e.length>0&&_.forEach(e,function(e){n.get(e)})}function o(e){return _.keys(t).reduce(function(e,n){return i.includes(n)?e.concat(t[n]):e},[]).reduce(function(t,n){return n.points&&n.points[e]?t.concat(n.points[e]):t},[])}function r(e){l=e}function s(){return l}var l;return{start:a,extensions:{points:{getActivesByName:o,current:{get:s,set:r}}}}}]}),angular.module("cesium.services",["cesium.settings.services","cesium.http.services","cesium.network.services","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.modal.services","cesium.storage.services","cesium.device.services","cesium.currency.services","cesium.wot.services","cesium.tx.services","cesium.wallet.services","cesium.help.services","cesium.plugin.services"]),Peer.prototype.regexp={BMA:/^BASIC_MERKLED_API[ ]?/,BMAS:/^BMAS[ ]?/,WS2P:/^WS2P[ ]?/,BMA_REGEXP:/^BASIC_MERKLED_API([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,BMAS_REGEXP:/^BMAS([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,WS2P_REGEXP:/^WS2P[ ]+([a-z0-9]+)([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))([ ]+([a-z0-9\/.&#!]+))?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},Peer.prototype.regex=Peer.prototype.regexp,Peer.prototype.keyID=function(){var e=this.bma||this.getBMA();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},Peer.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach(function(n){e[n]=t[n]})},Peer.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach(function(n){
-t[n]=e[n]})},Peer.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach(function(n){t[n]=e[n]}),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},Peer.prototype.getBMA=function(){if(this.bma)return this.bma;var e=null,t=this.regexp.BMA_REGEXP,n=this.regexp.BMAS_REGEXP;return this.endpoints.forEach(function(i){var a=!e&&t.exec(i);a&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:443==a[8],useBma:!0}),(a=!e&&n.exec(i))&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:!0,useBma:!0})}),e||{}},Peer.prototype.getEndpoints=function(e){return e?this.endpoints.reduce(function(t,n){return n.match(e)?t.concat(n):t},[]):this.endpoints},Peer.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e);return!!this.getEndpoints(t).length},Peer.prototype.getDns=function(){var e=this.bma||this.getBMA();return e.dns?e.dns:null},Peer.prototype.getIPv4=function(){var e=this.bma||this.getBMA();return e.ipv4?e.ipv4:null},Peer.prototype.getIPv6=function(){var e=this.bma||this.getBMA();return e.ipv6?e.ipv6:null},Peer.prototype.getPort=function(){var e=this.bma||this.getBMA();return e.port?e.port:null},Peer.prototype.getHost=function(e){return bma=e||this.bma||this.getBMA(),(443==bma.port||bma.useSsl)&&bma.dns?bma.dns:this.hasValid4(bma)?bma.ipv4:bma.dns?bma.dns:bma.ipv6?"["+bma.ipv6+"]":""},Peer.prototype.getURL=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},Peer.prototype.getServer=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return t+(t&&e.port?":"+e.port:"")},Peer.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},Peer.prototype.isReachable=function(){return!!this.getServer()},Peer.prototype.isSsl=function(){return(this.bma||this.getBMA()).useSsl},Peer.prototype.isTor=function(){return(this.bma||this.getBMA()).useTor},Peer.prototype.isWs2p=function(){return(this.bma||this.getBMA()).useWs2p},Peer.prototype.isBma=function(){var e=this.bma||this.getBMA();return!e.useWs2p&&!e.useTor},Peer.prototype.hasBma=function(){return this.hasEndpoint("(BASIC_MERKLE_API|BMAS|BMATOR)")},Block.prototype.isEmpty=function(){"use strict";return!(this.transactionsCount||this.certificationsCount||this.joinersCount||this.dividend||this.activesCount||this.identitiesCount||this.leaversCount||this.excludedCount||this.revokedCount)},Block.prototype.parseData=function(){this.identities=this.parseArrayValues(this.identities,["pubkey","signature","buid","uid"]),this.joiners=this.parseArrayValues(this.joiners,["pubkey","signature","mBuid","iBuid","uid"]),this.actives=this.parseArrayValues(this.actives,["pubkey","signature","mBuid","iBuid","uid"]),this.leavers=this.parseArrayValues(this.leavers,["pubkey","signature","mBuid","iBuid","uid"]),this.revoked=this.parseArrayValues(this.revoked,["pubkey","signature"]),this.excluded=this.parseArrayValues(this.excluded,["pubkey"]),this.certifications=this.parseArrayValues(this.certifications,["from","to","block","signature"]),this.transactions=this.parseTransactions(this.transactions),delete this.raw},Block.prototype.cleanData=function(){delete this.identities,delete this.joiners,delete this.actives,delete this.leavers,delete this.revoked,delete this.excluded,delete this.certifications,delete this.transactions,delete this.raw},Block.prototype.parseArrayValues=function(e,t){return e&&e.length?e.reduce(function(e,n){var i=n.split(":");if(i.length!=t.length)return console.debug("[block] Bad format for '{0}': [{1}]. Expected {1} parts. Skipping".format(arrayProperty,n,t.length)),e;for(var a={},o=0;o<t.length;o++)a[t[o]]=i[o];return e.concat(a)},[]):[]},Block.prototype.regexp={TX_OUTPUT_SIG:exact("SIG\\(([0-9a-zA-Z]{43,44})\\)")},Block.prototype.parseTransactions=function(e){return e&&e.length?e.reduce(function(e,t){var n={issuers:t.issuers,time:t.time};return n.outputs=t.outputs.reduce(function(e,n){var i=n.split(":");if(3!=i.length)return console.debug("[block] Bad format a 'transactions': [{0}]. Expected 3 parts. Skipping".format(n)),e;var a=i[0],o=i[1],r=i[2],s=Block.prototype.regexp.TX_OUTPUT_SIG.exec(i[2]);if(s){var l=s[1];return t.issuers&&-1==t.issuers.indexOf(l)?e.concat({amount:o<=0?a:a*Math.pow(10,o),unitbase:o,pubkey:l}):e}return e.concat({amount:o<=0?a:a*Math.pow(10,o),unitbase:o,unlockCondition:r})},[]),n.error||n.outputs.length||(n.toHimself=!0),e.concat(n)},[]):[]},Ws2pMessage.prototype.regexp={WS2P_PREFIX:/^WS2P(?:O([CT][SAM]))?(?:I([CT]))?$/},AppController.$inject=["$scope","$rootScope","$state","$ionicSideMenuDelegate","$q","$timeout","$ionicHistory","$controller","$window","csPlatform","CryptoUtils","csCrypto","UIUtils","BMA","csWallet","Device","Modals","csConfig","csHttp"],HomeController.$inject=["$scope","$state","$timeout","$ionicHistory","$translate","UIUtils","csPlatform","csCurrency","csSettings"],PluginExtensionPointController.$inject=["$scope","PluginService"],angular.module("cesium.app.controllers",["cesium.platform","cesium.services"]).config(["$stateProvider","$urlRouterProvider",function(e,t){"ngInject";e.state("app",{url:"/app",abstract:!0,templateUrl:"templates/menu.html",controller:"AppCtrl",data:{large:!1}}).state("app.home",{url:"/home?error",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HomeCtrl"}}}).state("app.lock",{cache:!1,url:"/lock",views:{menuContent:{templateUrl:"templates/common/view_passcode.html",controller:"PassCodeCtrl"}}}),t.otherwise("/app/home")}]).controller("AppCtrl",AppController).controller("HomeCtrl",HomeController).controller("PluginExtensionPointCtrl",PluginExtensionPointController),JoinController.$inject=["$scope","$timeout","$controller","Modals","csWallet"],JoinChooseAccountTypeModalController.$inject=["$scope","$state","Modals","UIUtils","csCurrency"],JoinModalController.$inject=["$scope","$state","$interval","$q","$timeout","Device","UIUtils","CryptoUtils","csSettings","Modals","csWallet","BMA","parameters"],angular.module("cesium.join.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.join",{url:"/join",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"JoinCtrl"}}})}]).controller("JoinCtrl",JoinController).controller("JoinChooseAccountTypeModalCtrl",JoinChooseAccountTypeModalController).controller("JoinModalCtrl",JoinModalController),LoginController.$inject=["$scope","$timeout","$controller","csWallet"],LoginModalController.$inject=["$scope","$timeout","$q","$ionicPopover","CryptoUtils","csCrypto","ionicReady","UIUtils","BMA","Modals","csSettings","Device","parameters"],AuthController.$inject=["$scope","$controller"],angular.module("cesium.login.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.login",{url:"/login",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"LoginCtrl"}}})}]).controller("LoginCtrl",LoginController).controller("LoginModalCtrl",LoginModalController).controller("AuthCtrl",AuthController),HelpController.$inject=["$scope","$state","$timeout","$anchorScroll","csSettings"],HelpModalController.$inject=["$scope","$timeout","$anchorScroll","csSettings","parameters"],HelpTipController.$inject=["$scope","$state","$window","$ionicSideMenuDelegate","$timeout","$q","$anchorScroll","UIUtils","csConfig","csSettings","csCurrency","csHelpConstants","Device","csWallet"],HelpTourController.$inject=["$scope"],angular.module("cesium.help.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.help_tour",{url:"/tour",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HelpTourCtrl"}}}).state("app.help",{url:"/help?anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}}).state("app.help_anchor",{url:"/help/:anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}})}]).controller("HelpCtrl",HelpController).controller("HelpModalCtrl",HelpModalController).controller("HelpTipCtrl",HelpTipController).controller("HelpTourCtrl",HelpTourController),WalletController.$inject=["$scope","$rootScope","$q","$ionicPopup","$timeout","$state","$translate","$ionicPopover","$location","UIUtils","ModalUtils","Modals","csPopovers","BMA","csConfig","csSettings","csWallet","csHelp"],WalletTxController.$inject=["$scope","$ionicPopover","$state","$timeout","$location","UIUtils","Modals","csPopovers","BMA","csHttp","csSettings","csCurrency","csWallet","csTx"],WalletTxErrorController.$inject=["$scope","UIUtils","csSettings","csWallet"],WalletSecurityModalController.$inject=["$scope","UIUtils","csWallet","$translate","parameters"],angular.module("cesium.wallet.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){"ngInject";e.state("app.view_wallet",{url:"/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx",{url:"/history/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors",{url:"/history/account/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletCtrl",WalletController).controller("WalletTxCtrl",WalletTxController).controller("WalletTxErrorCtrl",WalletTxErrorController).controller("WalletSecurityModalCtrl",WalletSecurityModalController),WalletListAbstractController.$inject=["$scope","$q","$timeout","UIUtils","filterTranslations","csSettings","csCurrency","csWallet"],WalletListViewController.$inject=["$scope","$controller","$state","$timeout","$q","$translate","$ionicPopover","$ionicPopup","ModalUtils","UIUtils","Modals","csCurrency","csSettings","csWallet"],WalletSelectModalController.$inject=["$scope","$controller","parameters"],WalletListImportModalController.$inject=["$scope","$timeout","BMA","csWallet"],WalletSelectPopoverController.$inject=["$scope","$controller","UIUtils","parameters"],angular.module("cesium.wallets.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){"ngInject";e.state("app.view_wallets",{url:"/wallets",views:{menuContent:{templateUrl:"templates/wallet/list/view_wallets.html",controller:"WalletListViewCtrl"}},data:{login:!0}}).state("app.view_wallet_by_id",{url:"/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_by_id",{url:"/history/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors_by_id",{url:"/history/wallets/:id/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletListAbstractCtrl",WalletListAbstractController).controller("WalletListViewCtrl",WalletListViewController).controller("WalletSelectModalCtrl",WalletSelectModalController).controller("WalletListImportModalCtrl",WalletListImportModalController).controller("WalletSelectPopoverCtrl",WalletSelectPopoverController),WotLookupController.$inject=["$scope","$state","$q","$timeout","$focus","$location","$ionicPopover","$ionicHistory","UIUtils","csConfig","csCurrency","csSettings","Device","BMA","csWallet","csWot"],WotLookupModalController.$inject=["$scope","$controller","$focus","csWallet","parameters"],WotIdentityAbstractController.$inject=["$scope","$rootScope","$state","$translate","$ionicHistory","$q","UIUtils","Modals","csConfig","csSettings","csCurrency","csWot","csWallet"],WotIdentityViewController.$inject=["$scope","$rootScope","$controller","$timeout","$state","UIUtils","Modals","csWallet"],WotIdentityTxViewController.$inject=["$scope","$timeout","$q","BMA","csSettings","csWot","csTx","UIUtils"],WotCertificationsViewController.$inject=["$scope","$rootScope","$controller","csSettings","csWallet","UIUtils"],WotSelectPubkeyIdentityModalController.$inject=["$scope","$q","csWot","parameters"],angular.module("cesium.wot.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.wot_lookup",{url:"/wot",abstract:!0,enableBack:!1,views:{menuContent:{templateUrl:"templates/wot/lookup.html"}}}).state("app.wot_lookup.tab_search",{url:"/search?q&type&hash",views:{tab:{templateUrl:"templates/wot/tabs/tab_lookup.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0,large:"app.wot_lookup_lg"}}).state("app.wot_lookup_lg",{url:"/wot/lg?q&type&hash",views:{menuContent:{templateUrl:"templates/wot/lookup_lg.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wot_identity",{url:"/wot/:pubkey/:uid?action&block",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_uid",{url:"/lookup/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_tx_uid",{url:"/wot/tx/:pubkey/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity_tx.html",controller:"WotIdentityTxViewCtrl"}}}).state("app.wot_cert",{url:"/wot/:pubkey/:uid/:type?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wot_cert_lg"}}).state("app.wot_cert_lg",{url:"/wot/cert/lg/:pubkey/:uid?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert",{url:"/account/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg"}}).state("app.wallet_cert_lg",{url:"/account/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert_by_id",{url:"/wallets/:id/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg_by_id"}}).state("app.wallet_cert_lg_by_id",{url:"/wallets/:id/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}})}]).controller("WotLookupCtrl",WotLookupController).controller("WotLookupModalCtrl",WotLookupModalController).controller("WotIdentityAbstractCtrl",WotIdentityAbstractController).controller("WotIdentityViewCtrl",WotIdentityViewController).controller("WotIdentityTxViewCtrl",WotIdentityTxViewController).controller("WotCertificationsViewCtrl",WotCertificationsViewController).controller("WotSelectPubkeyIdentityModalCtrl",WotSelectPubkeyIdentityModalController),NetworkLookupController.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","BMA","UIUtils","csConfig","csSettings","csCurrency","csNetwork","csWot"],PeerViewController.$inject=["$scope","$q","$window","$state","UIUtils","csWot","BMA"],NetworkLookupModalController.$inject=["$scope","$controller","parameters"],NetworkLookupPopoverController.$inject=["$scope","$controller"],PeerInfoPopoverController.$inject=["$scope","$q","csSettings","csCurrency","csHttp","BMA"],angular.module("cesium.network.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.network",{url:"/network?type&expert",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_network.html",controller:"NetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_peer",{url:"/network/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_peer.html",controller:"PeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("NetworkLookupCtrl",NetworkLookupController).controller("PeerViewCtrl",PeerViewController).controller("NetworkLookupModalCtrl",NetworkLookupModalController).controller("NetworkLookupPopoverCtrl",NetworkLookupPopoverController).controller("PeerInfoPopoverCtrl",PeerInfoPopoverController),CurrencyViewController.$inject=["$scope","$q","$timeout","$ionicPopover","Modals","BMA","UIUtils","csSettings","csCurrency","csNetwork","ModalUtils"],CurrencyLicenseModalController.$inject=["$scope","$http","UIUtils","csSettings","FileSaver"],angular.module("cesium.currency.controllers",["ngFileSaver","cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.currency",{url:"/currency",views:{menuContent:{templateUrl:"templates/currency/view_currency.html",controller:"CurrencyViewCtrl"}},data:{large:"app.currency_lg"}}).state("app.currency.tab_parameters",{url:"/parameters",views:{"tab-parameters":{templateUrl:"templates/currency/tabs/tab_parameters.html"}}}).state("app.currency.tab_wot",{url:"/community",views:{"tab-wot":{templateUrl:"templates/currency/tabs/tab_wot.html"}}}).state("app.currency.tab_network",{url:"/network",views:{"tab-network":{templateUrl:"templates/currency/tabs/tab_network.html",controller:"NetworkLookupCtrl"}}}).state("app.currency.tab_blocks",{url:"/blocks",views:{"tab-blocks":{templateUrl:"templates/currency/tabs/tab_blocks.html",controller:"BlockLookupCtrl"}}}).state("app.currency_lg",{url:"/currency/lg",cache:!1,views:{menuContent:{templateUrl:"templates/currency/view_currency_lg.html",controller:"CurrencyViewCtrl"}}})}]).controller("CurrencyViewCtrl",CurrencyViewController).controller("CurrencyLicenseModalCtrl",CurrencyLicenseModalController),TransferController.$inject=["$scope","$controller","UIUtils"],TransferModalController.$inject=["$scope","$q","$translate","$timeout","$filter","$focus","Device","BMA","UIUtils","Modals","csWallet","csWot","csCurrency","csSettings","parameters"],angular.module("cesium.transfer.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){"ngInject";e.state("app.new_transfer",{cache:!1,url:"/transfer?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey_uid",{cache:!1,url:"/transfer/:pubkey/:uid?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey",{cache:!1,url:"/transfer/:pubkey?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}})}]).controller("TransferCtrl",TransferController).controller("TransferModalCtrl",TransferModalController),SettingsController.$inject=["$scope","$q","$window","$ionicHistory","$ionicPopup","$timeout","$translate","$ionicPopover","UIUtils","Modals","BMA","csHttp","csConfig","csCurrency","csSettings","csPlatform"],angular.module("cesium.settings.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){"ngInject";e.state("app.settings",{url:"/settings",views:{menuContent:{templateUrl:"templates/settings/settings.html",controller:"SettingsCtrl"}}})}]).controller("SettingsCtrl",SettingsController),BlockLookupController.$inject=["$scope","$timeout","$focus","$filter","$state","$anchorScroll","UIUtils","BMA","csCurrency","csWot","csSettings"],BlockViewController.$inject=["$scope","$ionicPopover","$state","UIUtils","BMA","csCurrency","csWot"],angular.module("cesium.blockchain.controllers",["cesium.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.blockchain",{url:"/blockchain",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.blockchain_lg"}}).state("app.blockchain_lg",{url:"/blockchain/lg",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.server_blockchain",{url:"/network/peer/:server/blockchain?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.server_blockchain_lg"}}).state("app.server_blockchain_lg",{url:"/network/peer/:server/blockchain/lg?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.view_block",{url:"/block/:number",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_block_hash",{url:"/block/:number/:hash",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_server_block_hash",{url:"/network/peer/:server/block/:number/:hash?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}})}]).controller("BlockLookupCtrl",BlockLookupController).controller("BlockViewCtrl",BlockViewController),angular.module("cesium.controllers",["cesium.app.controllers","cesium.join.controllers","cesium.login.controllers","cesium.help.controllers","cesium.wallet.controllers","cesium.wallets.controllers","cesium.currency.controllers","cesium.wot.controllers","cesium.transfer.controllers","cesium.settings.controllers","cesium.network.controllers","cesium.blockchain.controllers"]),angular.module("cesium.templates",[]).run(["$templateCache",function(e){e.put("templates/menu.html",'<ion-side-menus enable-menu-with-back-views="true" bind-notifier="{locale:$root.settings.locale.id}"><ion-side-menu-content><ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"><button class="button button-icon button-clear icon ion-navicon visible-nomenu" menu-toggle="left"></button></ion-nav-buttons><ion-nav-buttons side="right"><cs-extension-point name="nav-buttons-right"></cs-extension-point></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view></ion-side-menu-content><ion-side-menu id="menu" side="left" expose-aside-when="large" enable-menu-with-back-views="false" width="225"><ion-header-bar class="bar-title"><div class="visible-sm visible-xs hero"><div class="content"><i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{\'royal-bg\': login, \'stable-bg\': !login}" ng-click="!login ? showHome() : loginAndGo()" menu-close=""></i> <a class="avatar hero-icon" ng-if="walletData.avatar" style="background-image: url(\'{{walletData.avatar.src}}\')" ui-sref="app.view_wallet" menu-close=""></a><h4 ng-if="login"><a class="light" ui-sref="app.view_wallet" menu-close="">{{walletData.name||walletData.uid}} <span ng-if="!walletData.name && !walletData.uid"><i class="icon ion-key"></i>&nbsp;{{walletData.pubkey|formatPubkey}}</span></a></h4><h4 ng-if="!login"><a class="light" ui-sref="app.login" menu-close="">{{\'COMMON.BTN_LOGIN\'|translate}} <i class="ion-arrow-right-b"></i></a></h4><cs-extension-point name="menu-profile-user"></cs-extension-point></div><a ng-if="login" class="button-icon" ng-click="logout({askConfirm: true})" style="position: absolute; top: 5px; left: 5px; z-index: 999"><i class="icon light ion-android-exit"></i></a></div></ion-header-bar><ion-content scroll="false" class="scroll-content ionic-scroll" ng-class="{\'overflow-scroll\': smallscreen, \'scroll-content-false\': !smallscreen}"><ion-list class="list" ng-class="{\'scroll\': smallscreen}"><ion-item menu-close="" class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><ion-item menu-close="" ng-if="!login" class="item-icon-left visible-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/account" ui-sref="app.view_wallet" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-person"></i> {{:locale:\'MENU.ACCOUNT\'|translate}} </a><a id="helptip-menu-btn-account"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/history" ui-sref="app.view_wallet_tx" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card"></i> {{:locale:\'MENU.TRANSACTIONS\'|translate}} </a><a id="helptip-menu-btn-tx"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wallets" ui-sref="app.view_wallets" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card" style="top: -5px; left: 22px; font-size: 18px"></i> <i class="icon-secondary ion-card" style="top: 22px; left: 19px; font-size: 20px; background-color: white; width:17px; height: 14px"></i> {{:locale:\'MENU.WALLETS\'|translate}}</a><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wot" ui-sref="app.wot_lookup.tab_search"><i class="icon ion-person-stalker"></i> {{:locale:\'MENU.WOT\'|translate}} </a><a id="helptip-menu-btn-wot"></a><cs-extension-point name="menu-main"></cs-extension-point><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/currency" ui-sref="app.currency"><i class="icon ion-ios-world-outline"></i> {{:locale:\'MENU.CURRENCY\'|translate}} </a><a id="helptip-menu-btn-currency"></a> <a id="helptip-menu-btn-network"></a><cs-extension-point name="menu-discover"></cs-extension-point><div class="item item-divider visible-xs visible-sm"></div><cs-extension-point name="menu-user"></cs-extension-point><a menu-close="" class="item item-icon-left visible-xs visible-sm" active-link="active" active-link-path-prefix="#/app/settings" ui-sref="app.settings"><i class="icon ion-android-settings"></i> {{:locale:\'MENU.SETTINGS\'|translate}} </a><a id="helptip-menu-btn-settings"></a><div class="item item-divider" ng-if="login"></div><ion-item menu-close="" class="item item-button-right" ng-if="login" ng-class="::{\'item-button-left\': $root.device.barcode.enable}"><button class="button button-positive ink-dark" ng-click="showTransferModal()"><i class="icon ion-paper-airplane"></i></button> <button class="button button-stable ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCodeAndGo()"><i class="icon ion-qr-scanner"></i></button></ion-item><cs-extension-point name="menu-actions"></cs-extension-point></ion-list></ion-content></ion-side-menu></ion-side-menus>'),e.put("templates/modal_about.html",'<ion-modal-view class="about"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>ABOUT.TITLE</h1></ion-header-bar><ion-content class="text-center" scroll="true"><div class="list item-wrap-text"><ion-item class="item-icon-left item-text-wrap"><span>{{\'COMMON.APP_NAME\'|translate}}&nbsp;<b>{{\'COMMON.APP_VERSION\'|translate:$root.config}}</b> - <a ng-click="openLink($event, \'http://cesium.app\')">www.cesium.app</a></span> <i ng-if="$root.newRelease" class="assertive ion-alert-circled"></i><h3 ng-if="$root.config.build" class="gray">{{\'COMMON.APP_BUILD\'|translate:$root.config}}</h3><span translate>ABOUT.LICENSE</span></ion-item><ion-item class="item-icon-left" ng-if="$root.newRelease"><i class="item-image icon ion-alert-circled assertive"></i> <span ng-if="!$root.device.isWeb()" ng-bind-html="\'ABOUT.PLEASE_UPDATE\' | translate:$root.newRelease "></span> <span ng-if="$root.device.isWeb()" ng-bind-html="\'ABOUT.LATEST_RELEASE\' | translate:$root.newRelease "></span><h3 ng-if="!$root.device.enable"><a ng-click="openLink($event, $root.newRelease.url)" translate>{{::$root.newRelease.url}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-android-laptop"></i> <span translate>ABOUT.OFFICIAL_WEB_SITE</span><h3><a ng-click="openLink($event, \'https://www.cesium.app\')">https://www.cesium.app</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-chatbubbles"></i> {{\'ABOUT.FORUM\' | translate}}<h3><a ng-click="openLink($event, $root.settings.userForumUrl)">{{::$root.settings.userForumUrl}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-bug"></i> <span translate>ABOUT.PLEASE_REPORT_ISSUE</span><h3><a ng-click="openLink($event, $root.settings.newIssueUrl)" translate>ABOUT.REPORT_ISSUE</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-network"></i> {{\'ABOUT.CODE\' | translate}}<h3><a ng-click="openLink($event, \'https://git.duniter.org/clients/cesium-grp/cesium\')">https://git.duniter.org/clients/cesium-grp/cesium</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-person-stalker"></i> {{\'ABOUT.DEVELOPERS\' | translate}}<h3><a href="https://github.com/blavenie" target="_system">Benoit Lavenier</a>, <a href="https://github.com/bpresles" target="_system">bpresles</a>, <a href="https://github.com/c-geek" target="_system">cgeek</a>, <a href="https://github.com/devingfx" target="_system">DiG</a>, <a href="https://git.duniter.org/ji_emme" target="_system">Ji_emme</a></h3></ion-item><div class="padding hidden-xs text-center"><button class="button button-stable icon-left ink" type="submit" ng-click="closeModal()" ui-sref="app.help"><i class="icon ion-ios-help-outline"></i> {{\'HOME.BTN_HELP\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></div></ion-content></ion-modal-view>'),
-e.put("templates/api/doc.html",'<h2 class="padding" translate="">API.DOC.TRANSFER.TITLE</h2><div class="list padding no-padding-xs no-padding-top"><div class="item item-divider no-border"><p translate="">API.DOC.DESCRIPTION_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.DESCRIPTION</p></div><div class="item item-divider no-border"><p translate="">API.DOC.URL_DIVIDER</p></div><div class="item item-text-wrap"><p class="gray text-right">{{$root.rootPath}}#/v1/payment/:pubkey?amount=<span class="text-italic" translate="">API.DOC.TRANSFER.PARAM_AMOUNT</span></p></div><div class="item item-divider no-border"><p translate="">API.DOC.PARAMETERS_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.AVAILABLE_PARAMETERS</p><div class="row"><div class="col col-20 text-italic">pubkey</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PUBKEY_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">amount</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_AMOUNT_HELP</div></div><div class="row"><div class="col col-20 text-italic">comment</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_COMMENT_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">name</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_NAME_HELP</div></div><div class="row"><div class="col col-20 text-italic">preferred_node</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">redirect_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_REDIRECT_URL_HELP</div></div><div class="row"><div class="col col-20 text-italic">cancel_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_CANCEL_URL_HELP</div></div></div><div class="item item-divider no-border"><p translate="">API.DOC.DEMO_DIVIDER</p></div><div class="item item-button-right item-text-wrap padding-bottom"><p class="item-icon-right-padding" translate="">API.DOC.DEMO_HELP</p><span class="badge" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></span><a ng-if="!loading" href="{{transferDemoUrl}}" class="button button-raised button-positive icon ion-play"></a></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && !result.cancelled"><h2 class="text-right balanced" translate="">API.DOC.DEMO_SUCCEED</h2><h4 class="gray" translate="">API.DOC.DEMO_RESULT</h4><p class="balanced-100-bg padding dark text-keep-lines">{{result.content}}</p><h4 class="gray"><span translate="">API.DOC.DEMO_RESULT_PEER</span> <b>{{result.node}}</b></h4></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && result.cancelled"><h2 class="text-right assertive" translate="">API.DOC.DEMO_CANCELLED</h2></div><div class="item item-divider no-border"><p translate="">API.DOC.INTEGRATE_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.EXAMPLES_HELP</p><div class="row responsive-sm"><div class="col col-20 text-italic"><span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON</span></div><div class="col gray no-border"><p><i class="icon ion-code"></i> <span translate="">API.DOC.INTEGRATE_CODE</span></p><div class="item item-input"><textarea class="gray" select-on-click="" rows="5" ng-model="transferButton.html" ng-model-options="{ debounce: 650 }"></textarea></div><p class="padding-top"><i class="icon ion-eye"></i> <span translate="">API.DOC.INTEGRATE_RESULT</span></p><div class="padding-left" bind-notifier="{ notifierKey:watchedExpression }"><ng-bind-html ng-bind-html="transferButton.html|trustAsHtml"></ng-bind-html></div></div></div><div class="row responsive-sm"><div class="col gray no-border"><p class="padding-top"><a class="positive" ng-click="transferButton.showParameters=!transferButton.showParameters"><i class="icon ion-wrench"></i> <span translate="">API.DOC.INTEGRATE_PARAMETERS</span> <i class="icon" ng-class="{\'ion-arrow-down-b\': !transferButton.showParameters, \'ion-arrow-up-b\': transferButton.showParameters}"></i></a></p><div ng-if="transferButton.showParameters" class="padding-left"><form id="transferForm" class="stable-bg padding"><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PUBKEY\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.pubkey" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PUBKEY_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-pricetag"></i> {{\'API.DOC.TRANSFER.PARAM_AMOUNT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.amount" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_AMOUNT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-flag"></i> {{\'API.DOC.TRANSFER.PARAM_COMMENT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.comment" placeholder="{{\'API.DOC.TRANSFER.PARAM_COMMENT\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-world-outline"></i> {{\'API.DOC.TRANSFER.PARAM_NAME\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.name" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_NAME\'|translate}}"></label><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.preferred_node" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-arrow-return-left"></i> {{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.redirect_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\'|translate}}"></label><p class="padding-top"><i class="icon ion-backspace"></i> {{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.cancel_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\'|translate}}"></label><p class="padding-top"><a class="positive" ng-click="transferButton.style.enable=!transferButton.style.enable"><i class="icon" ng-class="{\'ion-android-checkbox-outline\': transferButton.style.enable, \'ion-android-checkbox-outline-blank\': !transferButton.style.enable}"></i> <span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON_DEFAULT_STYLE</span></a></p><div ng-if="transferButton.style.enable"><p class="padding-top"><i class="icon ion-image"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_ICON\' | translate}} :</p><label class="item item-input item-select"><select class="stable-bg dark" ng-model="transferButton.style.icon" style="width: 100%; max-width: 100%" ng-options="l as (l.label | translate) for l in transferButton.icons track by l.filename"></select></label><p class="padding-top"><i class="icon ion-quote"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.text" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbucket"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.bgColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbrush"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.fontColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-crop-strong"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.width" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH_HELP\'|translate}}"></label></div></form></div></div></div></div></div>'),e.put("templates/api/home.html",'<ion-view class="circle-bg-dark"><ion-nav-title><span class="title visible-xs visible-sm" translate="">API.HOME.TITLE</span></ion-nav-title><ion-nav-buttons side="right"></ion-nav-buttons><ion-content class="has-header no-padding-xs no-padding-sm positive-900-bg"><br class="hidden-xs"><div class="light text-center"><h4 class="hidden-xs" translate="">API.HOME.MESSAGE</h4><h4 class="visible-xs padding" translate="">API.HOME.MESSAGE_SHORT</h4></div><br class="hidden-xs"><div class="row no-padding-xs"><div class="col"><div class="light-bg no-padding"><ng-include src="\'templates/api/doc.html\'"></ng-include></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} API - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/api/locales_popover.html",'<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="border-radius: 0; background-image: url(https://www.countryflags.io/{{l.country}}/shiny/64.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/api/menu.html",'<ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"></ion-nav-buttons><ion-nav-buttons side="right"></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view>'),e.put("templates/api/transfer.html",'<ion-view class="circle-bg-dark"><ion-nav-buttons side="left"><button class="button button-clear visible-xs" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button></ion-nav-buttons><ion-nav-title><span class="title visible-xs" translate="">API.TRANSFER.TITLE_SHORT</span></ion-nav-title><ion-nav-buttons side="right"><button class="button button-positive button-icon button-clear icon ion-android-send visible-xs" ng-click="doLogin()"></button></ion-nav-buttons><ion-content class="has-header no-padding-xs positive-900-bg"><br class="hidden-xs"><div class="row no-padding-xs"><div class="col no-padding-xs"><div class="light-bg"><h2 class="padding-top text-center hidden-xs" translate="">API.TRANSFER.TITLE</h2><div class="no-padding energized-100-bg" ng-if="demo"><div class="item item-icon-left item-text-wrap no-border"><i class="icon ion-information-circled positive"></i><p translate="">API.TRANSFER.DEMO.HELP</p></div></div><ng-include src="\'templates/login/form_login.html\'"></ng-include></div><br class="hidden-xs"><br class="hidden-xs"><div class="list padding no-padding-xs light-bg"><div class="item"><p translate="">API.TRANSFER.SUMMARY</p></div><div class="item item-icon-left-padding item-tx no-border" ng-if="!transferData.amounts" style="min-height: 56px"><h2 translate="">API.TRANSFER.AMOUNT</h2><ion-spinner class="badge item-note" icon="android" ng-show="loading"></ion-spinner><div class="badge badge-calm ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: false, currency: currency.name}"></div><div class="badge badge-secondary ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></div></div><label ng-if="transferData.amounts" style="min-height: 58px" class="item item-icon-left-padding item-input item-select item-tx no-border" ng-class="{ \'item-input-error\': form.$submitted && !transferData.amount}"><div class="input-label"><span translate="">API.TRANSFER.AMOUNT</span></div><select ng-model="transferData.amount" required="true" ng-options="(amount |formatAmount:{useRelative: false, currency: currency.name}) for amount in transferData.amounts"></select><span class="badge badge-secondary ng-hide" ng-show="transferData.amount" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span></label><div class="form-errors" ng-if="form.$submitted && !transferData.amount"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.NAME</h2><div class="badge item-note">{{transferData.name}}</div></div><div class="item item-icon-left-padding item-text-wrap"><h2 translate="">API.TRANSFER.PUBKEY</h2><div class="badge"><span class="hidden-xs"><br class="visible-sm visible-md"><i class="icon ion-key"></i>{{transferData.pubkey}}</span> <span class="visible-xs" copy-on-click="{{transferData.pubkey}}"><br class="visible-xs"><i class="icon ion-key"></i> {{transferData.pubkey|formatPubkey}}</span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.COMMENT</h2><div class="badge item-note"><span class="hidden-xs"><br class="visible-sm visible-md">{{::transferData.comment}}</span> <span class="visible-xs" copy-on-click="{{transferData.comment}}"><br>{{::transferData.comment}}</span></div></div><div class="item item-icon-left-padding" ng-hide="error"><h2 translate="">API.TRANSFER.NODE</h2><div class="badge item-note" ng-if="!loading"><br class="visible-sm visible-md"><i class="icon ion-locked" ng-if="node.useSsl"></i>&nbsp;{{node.server}}</div></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><i class="icon ion-android-alert assertive"></i> <span class="dark" trust-as-html="\'API.COMMON.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="start()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="padding-bottom visible-xs">&nbsp;</div></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/blockchain/item_block.html",'<a name="block-{{:rebind:block.number}}"></a><ion-item id="block-{{:rebind:block.number}}" class="item item-icon-left item-block {{::ionItemClass}}" ng-class="{\'ink\': !block.empty||!block.compacted, \'item-block-empty\': block.empty, \'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:(!block.empty && !block.avatar)"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col" style="min-width: 110px; max-width: 130px"><h4 ng-class="{\'gray\': block.compacted, \'dark\': !block.compacted}"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h4><h4 ng-if="!block.empty"><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="dark ion-person"></i> <span class="dark" ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span class="dark" ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span></ng-if><span class="dark" ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> {{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.activesCount" class="gray"><i class="gray ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.dividend" class="gray"><i class="gray ion-arrow-up-c"></i> {{\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i></span></h4></div><div class="col positive hidden-md"><h4><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</h4></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index , \'badge-calm\': $index && !block.compacted && !block.empty}">{{:rebind:block.number|formatInteger}}</span></div></div></ion-item>'),e.put("templates/blockchain/item_block_empty_lg.html",'<a name="block-{{::block.number}}"></a><div id="block-{{::block.number}}" class="item item-block item-icon-left item-block-empty" ng-class="{\'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col"><h3 class="gray"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\'}">{{block.number|formatInteger}}</span></div></div></div>'),e.put("templates/blockchain/item_block_lg.html",'<ion-item id="block-{{::block.number}}" class="item item-block item-icon-left ink {{::ionItemClass}}" ng-class="{{::ionItemClass}}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:!block.avatar"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3><h4 class="gray">{{:rebind:\'BLOCKCHAIN.HASH\'|translate}} {{:rebind:block.hash|formatHash}}</h4></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"><small><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="ion-person"></i> <span ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span> &nbsp;&nbsp;</ng-if><span ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> -{{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.activesCount"><i class="ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.dividend"><i class="gray ion-arrow-up-c"></i> {{:rebind:\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i>&nbsp;&nbsp;</span></small></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\', \'badge-calm\': ($index  || search.type!=\'last\')&& !block.compacted && !block.empty}">{{:rebind:block.number}}</span></div></div></ion-item>'),e.put("templates/blockchain/items_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="animate-ripple padding padding-xs"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" icon="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/link_identity.html",'<a ui-sref="app.wot_identity({pubkey: identity.pubkey, uid: identity.uid})"><span class="positive" ng-if="identity.uid"><i class="icon ion-person"></i> {{::identity.uid}}&nbsp;</span> <span class="gray" ng-class="{\'hidden-xs hidden-sm\': identity.uid}"><i class="icon ion-key"></i>&nbsp;{{::identity.pubkey|formatPubkey}}</span></a>'),e.put("templates/blockchain/list_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/list_blocks_lg.html",'<div class="padding padding-xs" style="display: block; height: 100px"><h4 translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><div class="pull-right"><a class="button button-text button-small ink" ng-class="{\'button-text-positive\': compactMode, \'button-text-stable\': !compactMode}" ng-click="toggleCompactMode()"><i class="icon ion-navicon"></i> <b class="ion-arrow-down-b" style="position: absolute; top: -2px; left: 4px; font-size: 8px"></b> <b class="ion-arrow-up-b" style="position: absolute; top: 10px; left: 4px; font-size: 8px"></b> <span>{{\'BLOCKCHAIN.LOOKUP.BTN_COMPACT\'|translate}}</span></a></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in search.results" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs" scroll="true"><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/lookup_lg.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'templates/blockchain/list_blocks_lg.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/unlock_condition_popover.html",'<ion-popover-view class="fit"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.VIEW.TX_OUTPUT_UNLOCK_CONDITIONS</h1></ion-header-bar><ion-content scroll="true"><div class="row" ng-repeat="condition in popoverData.unlockConditions track by $index" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></ion-content></ion-popover-view>'),
-e.put("templates/blockchain/view_block.html",'<ion-view><ion-nav-title><span class="title visible-xs visible-sm" ng-if="number==\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE_CURRENT\'|translate}}</span> <span class="title visible-xs visible-sm" ng-if="number!=\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE\'|translate:formData}}</span></ion-nav-title><ion-content class="no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list item-text-wrap no-padding-xs" ng-if="!loading"><div class="item item-text-wrap"><h3><span class="dark"><i class="icon ion-clock"></i> {{formData.medianTime | medianFromNowAndDate}}</span></h3><h3><span class="dark"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.COMPUTED_BY\'|translate}} </span><a class="positive" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.uid})"><i class="icon ion-person positive"></i> {{issuer.name||issuer.uid}} <span class="gray" ng-if="issuer.name">({{issuer.uid}})</span></a></h3><h3><a ng-click="openRawBlock($event)"><i class="icon ion-share"></i> {{\'BLOCKCHAIN.VIEW.SHOW_RAW\'|translate}}</a></h3></div><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.TECHNICAL_DIVIDER\' | translate}}</span><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode"><i class="icon ion-gear-b"></i> {{\'BLOCKCHAIN.VIEW.VERSION\'|translate}} <span class="badge badge-stable">{{::formData.version}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode" copy-on-click="{{::formData.powMin}}"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.POW_MIN\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.POW_MIN_HELP\'|translate}}</h4><span class="badge badge-stable">{{::formData.powMin}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" copy-on-click="{{::formData.hash}}"><i class="icon ion-pound"></i> {{\'BLOCKCHAIN.VIEW.HASH\'|translate}}<h5 class="visible-xs visible-sm dark">{{::formData.hash}}</h5></ion-item><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.DATA_DIVIDER\' | translate}}</span><ion-item ng-if="compactMode && formData.empty" class="item-icon-left item-text-wrap">{{\'BLOCKCHAIN.VIEW.EMPTY\'|translate}}</ion-item><ion-item ng-if="!compactMode || formData.dividend" class="item-icon-left item-text-wrap" copy-on-click="{{::formData.dividend/100}}"><i class="icon ion-arrow-up-c"></i><div class="col col-60">{{\'COMMON.UNIVERSAL_DIVIDEND\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.UNIVERSAL_DIVIDEND_HELP\'|translate: {membersCount: formData.membersCount} }}</h4></div><span class="badge badge-balanced" ng-if="formData.dividend">+1 <span ng-bind-html="formData.currency|currencySymbol: {useRelative: true} "></span> / {{\'COMMON.MEMBER\'|translate|lowercase}} </span><span class="badge badge-stable" ng-if="!formData.dividend">0</span> <span class="badge badge-secondary" ng-if="formData.dividend">+ {{formData.dividend| formatAmount: {currency: formData.currency, useRelative: false} }} / {{\'COMMON.MEMBER\'|translate|lowercase}}</span></ion-item><ng-if ng-if="!compactMode || formData.identitiesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-clock" style="position: absolute; top: 16px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.IDENTITIES_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.identitiesCount">+{{::formData.identitiesCount}}</span> <span class="badge badge-stable" ng-if="!formData.identitiesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.identitiesCount"><ion-item ng-repeat="identity in ::formData.identities" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.joinersCount"><ion-item class="item-icon-left"><i class="icon ion-person-add"></i> {{\'BLOCKCHAIN.VIEW.JOINERS_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.joinersCount">+{{::formData.joinersCount}}</span> <span class="badge badge-stable" ng-if="!formData.joinersCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.joinersCount"><ion-item ng-repeat="identity in ::formData.joiners" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.activesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-refresh" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.activesCount">{{::formData.activesCount}}</span> <span class="badge badge-stable" ng-if="!formData.activesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.activesCount"><ion-item ng-repeat="identity in ::formData.actives" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || (formData.excludedCount-formData.revokedCount)"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-close dark" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.excludedCount-formData.revokedCount">-{{::formData.excludedCount-formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!(formData.excludedCount-formData.revokedCount)">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.excludedCount"><ion-item ng-repeat="identity in ::formData.excluded" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.leaversCount"><ion-item class="item-icon-left" ng-if="!compactMode || formData.leaversCount"><i class="icon ion-person"></i> <b class="ion-minus" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.leaversCount">-{{::formData.leaversCount}}</span> <span class="badge badge-stable" ng-if="!formData.leaversCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.leaversCount"><ion-item ng-repeat="identity in ::formData.leavers" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.revokedCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-minus-circled assertive" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.REVOKED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.REVOKED_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.revokedCount">-{{::formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!formData.revokedCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.revokedCount"><ion-item ng-repeat="identity in ::formData.revoked" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.certificationsCount"><ion-item class="item-icon-left"><i class="icon ion-ribbon-a"></i> {{\'BLOCKCHAIN.VIEW.CERT_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.certificationsCount}">{{::formData.certificationsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.certificationsCount"><div ng-repeat="(key, certs) in formData.certifications" class="item item-border-large item-small-height"><div class="row no-padding"><div class="col col-center no-padding"><ng-repeat ng-repeat="cert in certs"><ng-include src="\'templates/blockchain/link_identity.html\'" onload="identity=cert.from"></ng-include><br></ng-repeat></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col col-40 col-center no-padding" ng-include="\'templates/blockchain/link_identity.html\'" onload="identity=certs[0].to"></div></div></div></div></ng-if><ng-if ng-if="!compactMode || formData.transactionsCount"><ion-item class="item-icon-left"><i class="icon ion-card"></i> {{\'BLOCKCHAIN.VIEW.TX_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.transactionsCount}">{{::formData.transactionsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.transactionsCount"><div ng-repeat="tx in ::formData.transactions" class="item item-small-height item-border-large"><div class="row no-padding" style="padding-top: 3px"><div class="col col-40 col-center no-padding list no-margin"><div ng-repeat="identity in ::tx.issuers" class="item no-padding item-small-height"><ng-include src="\'templates/blockchain/link_identity.html\'"></ng-include></div></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col no-padding padding-right no-padding-xs col-text-wrap list no-margin"><span class="gray" ng-if="tx.toHimself" translate="">BLOCKCHAIN.VIEW.TX_TO_HIMSELF</span><div ng-repeat="output in ::tx.outputs" class="item no-padding item-small-height"><ng-include ng-if="::output.pubkey" src="\'templates/blockchain/link_identity.html\'" onload="identity=output"></ng-include><span ng-if="::!output.pubkey && output.unlockFunctions"><i class="icon ion-locked"></i> (<a ng-click="showUnlockConditionPopover(output, $event)"> <i ng-repeat="unlockFunction in ::output.unlockFunctions" ng-class="::{\'ion-key\': (unlockFunction==\'SIG\'), \'ion-clock\': (unlockFunction==\'CSV\' || unlockFunction==\'CLTV\'), \'ion-lock-combination\': (unlockFunction==\'XHX\') }" class="icon"></i> </a>) </span><span class="badge badge-balanced" ng-bind-html="::output.amount | formatAmount:{currency: formData.currency, useRelative: false} "></span></div></div></div></div></div></ng-if></div></div></div></ion-content></ion-view>'),e.put("templates/common/badge_certification_count.html",'<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n               \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'),e.put("templates/common/badge_given_certification_count.html",'<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'),e.put("templates/common/form_error_messages.html",'<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'),e.put("templates/common/popover_copy.html",'<ion-popover-view class="popover-copy" style="height: {{(!rows || rows &lt;= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" ng-if="!rows || rows &lt;= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n      </textarea></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popover_helptip.html",'<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span>&nbsp;</span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'),e.put("templates/common/popover_profile.html",""),e.put("templates/common/popover_share.html",'<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&amp;title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&amp;text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&amp;url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popup_password.html",'<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'),e.put("templates/common/view_passcode.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'),e.put("templates/currency/items_network.html",'<ion-item id="helptip-network-blockchain" class="item-icon-left item-text-wrap"><i class="icon ion-clock"></i> <span class="col col-60" translate="">CURRENCY.VIEW.MEDIAN_TIME</span> <span class="badge badge-stable">{{formData.medianTime | medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-lock-combination"></i> <span class="col col-75" translate="">CURRENCY.VIEW.POW_MIN</span> <span class="badge badge-stable">{{formData.difficulty | formatInteger}}</span></ion-item><cs-extension-point name="network-actual"></cs-extension-point><div class="item item-divider"><span translate="">CURRENCY.VIEW.NETWORK_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px; margin-top: 11px"></i> <b class="icon-secondary ion-lock-combination" style="left: 14px; margin-top: -4px"></b> <b class="icon-secondary ion-arrow-right-c" style="font-size: 12px; left: 28px; margin-top: -4px"></b> <b class="icon-secondary ion-lock-combination" style="left: 38px; margin-top: -4px"></b> <span class="col col-75" translate="">CURRENCY.VIEW.AVG_GEN_TIME</span> <span class="badge badge-stable">{{formData.avgGenTime | formatDuration}}</span></ion-item><div id="helptip-network-peers" class="item item-divider"><div class="pull-left"><span ng-if="search.type==\'member\'" translate="">PEER.MEMBERS</span> <span ng-if="search.type==\'mirror\'" translate="">PEER.MIRRORS</span> <span ng-if="search.type==\'offline\'" translate="">PEER.OFFLINE</span> <span ng-if="!search.type" translate="">PEER.PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></div><div class="buttons pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include>'),e.put("templates/currency/items_parameters.html",'<div bind-notifier="{ rebind:formData.useRelative }"><ion-item class="item-icon-left item-text-wrap visible-xs visible-sm"><i class="icon ion-android-bookmark"></i> <span translate>CURRENCY.VIEW.CURRENCY_NAME</span><div class="item-note dark" ng-if="!loading">{{formData.currency}} (<span ng-bind-html=":rebind:formData.currency | currencySymbol:formData.useRelative"></span>)</div></ion-item><ion-item id="helptip-currency-mass-member" class="item-icon-left item-text-wrap"><i class="icon ion-pie-graph"></i><div class="col col-60"><span translate>CURRENCY.VIEW.SHARE</span> <span class="gray">(M<sub>t</sub>/N<sub>t</sub>)</span></div><span id="helptip-currency-mass-member-unit" ng-if="!loading" class="badge badge-calm" ng-bind-html=":rebind:formData.MoverN | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-record"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MASS</span> <span class="gray">(M<sub>t</sub>)</span></div><span class="badge badge-energized" ng-if="!loading" ng-bind-html=":rebind:formData.M | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><cs-extension-point name="parameters-actual"></cs-extension-point><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_ACTUAL</span> <span class="gray">(c<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-stable">{{formData.cactual | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-load-c"></i><div class="col col-60"><span translate>CURRENCY.VIEW.UD</span> <span class="gray">({{\'COMMON.UD\'|translate}}<sub>t</sub>)</span></div><div class="badge badge-royal" ng-if="!loading"><span ng-if="formData.useRelative">1<ng-bind-html ng-bind-html=":rebind:formData.currency| currencySymbol:true"></ng-bind-html></span><span ng-if="!formData.useRelative" ng-bind-html=":rebind:formData.currentUD | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span> &nbsp;/&nbsp;{{formData.dt | formatPeriod}}</div></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>COMMON.BTN_RELATIVE_UNIT</div><label class="toggle toggle-royal" id="helptip-currency-change-unit"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><a name="helptip-currency-rules-anchor"></a><div class="item item-divider" id="helptip-currency-rules"><span translate>CURRENCY.VIEW.MONEY_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_RULE</span> <span class="gray">(c)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span><span class="badge badge-stable" ng-if="!loading && formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dtReeval | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.DT_REEVAL</span> <span class="gray">(dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading" translate="CURRENCY.VIEW.DT_REEVAL_VALUE" translate-values="formData"></span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_REEVAL_TIME0</span> <span class="gray">(t0<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading">{{formData.udReevalTime0|medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calculator icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_RULE</span> <span class="gray" ng-if="formData.udReevalTime0">- {{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>t-1</sub> + c<sup>2</sup> * M<sub>t-1</sub>/N<sub>t-1</sub></span><span class="item-note dark" ng-if="!loading && formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)+ c<sup>2</sup> * (M/N)(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>) / dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub></span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/items_wot.html",'<div bind-notifier="{ rebind:formData.useRelative }"><a name="helptip-currency-newcomers-anchor"></a><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person-stalker"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MEMBERS</span> <span class="gray">(N<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-calm" ng-if="!loading">{{formData.N | formatInteger}}</span></ion-item><ion-item id="helptip-currency-newcomers" class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-75"><span translate="CURRENCY.VIEW.MEMBERS_VARIATION" translate-values="{duration: formData.durationFromLastUD}"></span> <span class="gray">(&#916;N)</span></div><div class="badge" ng-if="!loading" ng-class="{\'badge-balanced\': (formData.N>formData.Nprev), \'badge-stable\': (formData.N==formData.Nprev) ,\'badge-assertive\': (formData.Nprev>formData.N)}">{{formData.N > formData.Nprev ? \'+\' : \'\'}}{{formData.N - formData.Nprev}}</div></ion-item><cs-extension-point name="wot-actual"></cs-extension-point><div class="item item-divider"><span translate>CURRENCY.VIEW.WOT_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-ribbon-b"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_QTY_RULE</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigQty}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_WINDOW</span> <span class="badge badge-assertive" ng-if="!loading">{{formData.msWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.msValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_WINDOW</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-a"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_STOCK</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigStock}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px"></i> <b class="ion-ribbon-a icon-secondary" style="left: 16px; top: -15px"></b> <b class="ion-arrow-right-c icon-secondary" style="left: 28px; top: -15px"></b> <b class="ion-ribbon-a icon-secondary" style="left: 40px; top: -15px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SIG_PERIOD</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigPeriod | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-steam"></i> <b class="ion-person icon-secondary" style="left: 38px; top: -17px"></b><div class="col col-75"><span ng-bind-html="\'CURRENCY.VIEW.STEP_MAX\'|translate"></span> <span class="gray">(stepMax)</span></div><span class="badge badge-assertive" ng-if="!loading">{{formData.stepMax}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sentries}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES_FORMULA</span> <span class="item-note dark" ng-if="!loading">{{\'CURRENCY.VIEW.MATH_CEILING\'| translate}}( N<sub>t</sub><sup>^ (1 / stepMax)</sup>)</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-pull-request"></i> <span class="col col-75" translate>CURRENCY.VIEW.XPERCENT</span> <span class="badge badge-stable" ng-if="!loading">{{formData.xpercent*100| formatNumeral: \'0,0\'}} %</span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allWotRules"><div class="track"><div class="handle"></div></div></label></div></div>'),
-e.put("templates/currency/lookup.html",'<ion-view view-title="{{\'CURRENCY.SELECT.TITLE\' | translate}}"><ion-content class="padding no-padding-xs no-padding-sm"><h4 class="content double-padding-x" translate>CURRENCY.SELECT.CURRENCIES</h4><ng-include src="\'templates/currency/lookup_form.html\'"></ion-content></ion-view>'),e.put("templates/currency/lookup_form.html",'<ion-list><div class="item center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-repeat="currency in search.results" ng-class="{ selected: selectedCurrency == currency }"><a class="item card card-item stable-bg padding ink" ng-click="selectCurrency(currency)" ng-class="{ selected: selectedCurrency && selectedCurrency.name == currency.name }"><h2>{{currency.name}}</h2><h4 class="gray">{{currency.peer.server}}</h4><span class="badge badge-royal">{{\'CURRENCY.SELECT.MEMBERS_COUNT\'|translate:currency}}</span></a></div></ion-list>'),e.put("templates/currency/modal_license.html",'<ion-modal-view class="modal-full-height modal-license"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>CURRENCY.LICENSE.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content scroll="false" style="bottom: 0px"><p ng-if="!licenseUrl && !loading">translate>CURRENCY.LICENSE.NO_LICENSE_FILE</p><iframe ng-if="licenseUrl && !loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseUrlHtml||licenseUrl}}"></iframe><div class="padding hidden-xs text-center"><button class="button button-stable ink" ng-click="downloadFile()">{{\'CURRENCY.LICENSE.BTN_DOWNLOAD\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/currency/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"></div></ion-content></ion-popover-view>'),e.put("templates/currency/view_currency.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'CURRENCY.VIEW.TAB_CURRENCY\'|translate}}" icon="ion-stats-bars" ui-sref="app.currency.tab_parameters"><ion-nav-view name="tab-parameters"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_WOT\'|translate}}" icon="ion-person-stalker" ui-sref="app.currency.tab_wot"><ion-nav-view name="tab-wot"></ion-nav-view></ion-tab><ion-tab id="helptip-currency-tab-peers" title="{{\'CURRENCY.VIEW.TAB_NETWORK\'|translate}}" icon="ion-cloud" ui-sref="app.currency.tab_network"><ion-nav-view name="tab-network"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_BLOCKS\'|translate}}" icon="ion-lock-combination" ui-sref="app.currency.tab_blocks"><ion-nav-view name="tab-blocks"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("templates/currency/view_currency_lg.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-nav-title bind-notifier="{ rebind:formData.useRelative }"><span ng-if="!loading">{{\'CURRENCY.VIEW.TITLE\' | translate}} {{formData.currency|abbreviate}}</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refreshPeers()"></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-text-wrap no-border no-padding pull-left"><div class="item-icon-left card padding stable-900-bg"><ion-spinner class="icon" icon="android" ng-if="loading"></ion-spinner><i class="icon ion-help-circled calm" ng-if="!loading"></i><div class="item-icon-left-padding" style="min-height: 26px"><span ng-if="!loading" trust-as-html="\'CURRENCY.VIEW.CURRENCY_SHORT_DESCRIPTION\'|translate:formData"></span></div></div></div><div class="row responsive-sm"><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.MONEY_DIVIDER</span></div><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.WOT_DIVIDER</span></div><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/help/help.html",'<a name="join"></a><h2 translate>HELP.JOIN.SECTION</h2><a name="join-salt"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-salt\']"><div class="col col-20" translate>LOGIN.SALT</div><div class="col" translate>HELP.JOIN.SALT</div></div><a name="join-password"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-password\']"><div class="col col-20" translate>LOGIN.PASSWORD</div><div class="col" translate>HELP.JOIN.PASSWORD</div></div><a name="join-pseudo"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-pseudo\']"><div class="col col-20" translate>ACCOUNT.NEW.PSEUDO</div><div class="col" translate>HELP.JOIN.PSEUDO</div></div><a name="login"></a><h2 translate>HELP.LOGIN.SECTION</h2><a name="login-pubkey"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-pubkey\']"><div class="col col-20" translate>HELP.LOGIN.PUBKEY</div><div class="col" translate>HELP.LOGIN.PUBKEY_DEF</div></div><a name="login-method"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-method\']"><div class="col col-20" translate>HELP.LOGIN.METHOD</div><div class="col" translate>HELP.LOGIN.METHOD_DEF</div></div><a name="glossary"></a><h2 translate>HELP.GLOSSARY.SECTION</h2><a name="pubkey"></a><div class="row responsive-sm" ng-class="itemsClass.pubkey"><div class="col col-20" translate>COMMON.PUBKEY</div><div class="col" translate>HELP.GLOSSARY.PUBKEY_DEF</div></div><a name="blockchain"></a><div class="row responsive-sm" ng-class="itemsClass.blockchain"><div class="col col-20" translate>HELP.GLOSSARY.BLOCKCHAIN</div><div class="col" translate>HELP.GLOSSARY.BLOCKCHAIN_DEF</div></div><a name="universal_dividend"></a> <a name="ud"></a><div class="row responsive-sm" ng-class="itemsClass.ud"><div class="col col-20" translate>COMMON.UNIVERSAL_DIVIDEND</div><div class="col" translate>HELP.GLOSSARY.UNIVERSAL_DIVIDEND_DEF</div></div><a name="member"></a><div class="row responsive-sm" ng-class="itemsClass.member"><div class="col col-20" translate>HELP.GLOSSARY.MEMBER</div><div class="col" translate>HELP.GLOSSARY.MEMBER_DEF</div></div><a name="wot"></a><div class="row responsive-sm" ng-class="itemsClass.wot"><div class="col col-20" translate>HELP.GLOSSARY.WOT</div><div class="col" translate>HELP.GLOSSARY.WOT_DEF</div></div><a name="currency_rules"></a><div class="row responsive-sm" ng-class="itemsClass.currency_rules"><div class="col col-20" translate>HELP.GLOSSARY.CURRENCY_RULES</div><div class="col" translate>HELP.GLOSSARY.CURRENCY_RULES_DEF</div></div><a name="distance_rule"></a><div class="row responsive-sm" ng-class="itemsClass.distance_rule"><div class="col col-20" translate>HELP.GLOSSARY.DISTANCE_RULE</div><div class="col" translate>HELP.GLOSSARY.DISTANCE_RULE_DEF</div></div>'),e.put("templates/help/modal_help.html",'<ion-modal-view class="modal-full-height modal-help"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>HELP.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding no-padding-xs"><div ng-class="listClass"><ng-include src="\'templates/help/help.html\'"></ng-include></div><div class="padding hidden-xs text-center"><button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/help/view_help.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate="">HELP.TITLE</span></ion-nav-title><ion-content scroll="true" class="padding"><ng-include src="\'templates/help/help.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/home/home.html",'<ion-view id="home" class=""><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="has-header text-center no-padding-xs positive-900-bg circle-bg-dark"><div id="helptip-home-logo" class="logo"></div><h4><span class="hidden-xs" translate="">HOME.WELCOME</span> <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate="">HOME.MESSAGE</b></h4><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><span class="dark" trust-as-html="\'HOME.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="reload()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="center animate-fade-in animate-show-hide ng-hide" ng-show="!loading && !error"><button type="button" class="button button-block button-stable button-raised icon-left icon ion-easel ink-dark hidden-xs" ng-show="login" ng-click="startHelpTour()">{{\'COMMON.BTN_HELP_TOUR\'|translate}}</button> <button type="button" class="button button-block button-positive button-raised ink-dark" ng-click="showJoinModal()" ng-if="!login" translate="">LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark" ui-sref="app.view_wallet" ng-show="login" translate="">MENU.ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs" ui-sref="app.view_wallet_tx" ng-if="login" translate="">MENU.TRANSACTIONS</button><br class="visible-xs visible-sm"><div class="text-center no-padding" ng-show="!login"><br class="visible-xs visible-sm">{{\'LOGIN.HAVE_ACCOUNT_QUESTION\'|translate}} <b></b></div><div class="text-center no-padding" ng-show="login"><br class="visible-xs visible-sm"><span ng-bind-html="\'HOME.NOT_YOUR_ACCOUNT_QUESTION\'|translate:{pubkey: walletData.pubkey}"></span><br><b></b></div><button type="button" class="button button-block button-stable button-raised ink visible-xs visible-sm" ui-sref="app.view_wallet" ng-if="!login" translate="">COMMON.BTN_LOGIN</button> <button type="button" class="button button-block button-assertive button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm" ng-click="logout()" ng-if="login" translate="">COMMON.BTN_LOGOUT</button><div class="text-center no-padding visible-xs stable"><br>{{\'COMMON.APP_VERSION\'|translate:{version: config.version} }} | <a href="#" ng-click="showAboutModal()" translate="">HOME.BTN_ABOUT</a></div></div></ion-content></ion-view>'),e.put("templates/join/modal_choose_account_type.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title" translate="">ACCOUNT.NEW.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slides.slider.activeIndex === 0" ng-click="slideNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div ng-if="!loading"><p ng-bind-html="\'ACCOUNT.NEW.INTRO_WARNING_TIME\'|translate:currency"></p><div class="row responsive-sm"><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-android-warning assertive"></i><p class="item-content item-icon-left-padding"><span class="dark" translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY</span><br><small translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY_HELP</small></p></div></div><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-information-circled positive"></i><p class="item-content item-icon-left-padding"><span class="dark" trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE\'|translate:currency.node"></span><br><small trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE_HELP\'|translate:currency.node"></small></p></div></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive icon-right ion-chevron-right ink" ng-click="slideNext()" ng-disabled="loading" type="button" translate="">COMMON.BTN_START</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header padding"><p translate="">ACCOUNT.NEW.SELECT_ACCOUNT_TYPE</p><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'member\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-person"></i><h2 translate="">ACCOUNT.NEW.MEMBER_ACCOUNT</h2><h4 class="gray" ng-bind-html="\'ACCOUNT.NEW.MEMBER_ACCOUNT_HELP\'|translate:currency"></h4><i class="icon dark ion-ios-arrow-right"></i></div></div><cs-extension-point name="select-account-type"></cs-extension-point><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'wallet\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-card"></i><h2 translate="">ACCOUNT.NEW.WALLET_ACCOUNT</h2><h4 class="gray" translate="">ACCOUNT.NEW.WALLET_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_member.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="doPrev()" ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.MEMBER_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-class="{\'button-text-stable\': !isLicenseRead}" ng-if="slideBehavior.hasAcceptButton" ng-click="isLicenseRead ? doNext() : undefined"><span translate>ACCOUNT.NEW.BTN_ACCEPT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page ng-if="licenseFileUrl"><ion-content class="has-header" scroll="false"><div class="padding" translate>ACCOUNT.NEW.INFO_LICENSE</div><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><iframe ng-if="!loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseFileUrl}}"></iframe><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext(\'licenceForm\')" ng-disabled="!isLicenseRead" type="button" translate>ACCOUNT.NEW.BTN_ACCEPT_LICENSE</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><form name="pseudoForm" novalidate="" ng-submit="doNext(\'pseudoForm\')"><div class="item item-text-wrap text-center padding"><a class="pull-right icon-help hidden-xs" ng-click="showHelpModal(\'join-pseudo\')"></a> <span translate>ACCOUNT.NEW.PSEUDO_WARNING</span></div><div class="list" ng-init="setForm(pseudoForm, \'pseudoForm\')"><div class="item item-input" ng-class="{\'item-input-error\': (pseudoForm.$submitted && pseudoForm.pseudo.$invalid) || (uiAlreadyUsed && formData.pseudo)}"><span class="input-label" translate>ACCOUNT.NEW.PSEUDO</span> <input id="pseudo" name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.pseudo" autocomplete="off" ng-minlength="3" ng-maxlength="100" ng-pattern="userIdPattern" ng-model-options="{ debounce: 250 }" required></div><div class="form-errors" ng-show="pseudoForm.$submitted && pseudoForm.pseudo.$error" ng-messages="pseudoForm.pseudo.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 3}"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 100}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.INVALID_USER_ID"></span></div></div><div class="text-right" style="min-height: 18px"><div class="form-error gray" ng-if="formData.computing && formData.pseudo"><ion-spinner class="icon ion-spinner-small" icon="android" ng-if="formData.computing && formData.pseudo"></ion-spinner><span translate>ACCOUNT.NEW.CHECKING_PSEUDO</span></div><ng-if ng-if="!formData.computing && formData.pseudo"><div class="form-error balanced" ng-if="!uiAlreadyUsed "><i class="icon ion-checkmark balanced"></i> <span translate>ACCOUNT.NEW.PSEUDO_AVAILABLE</span></div><div class="form-error" ng-if="uiAlreadyUsed"><i class="icon ion-close-circled assertive"></i> <span translate>ACCOUNT.NEW.PSEUDO_NOT_AVAILABLE</span></div></ng-if></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-disabled="uiAlreadyUsed" translate>COMMON.BTN_NEXT</button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_PSEUDO"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_SALT"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-click="getRevocationDocument()" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><div class="center padding" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!formData.computing"><div class="animate-fade-in animate-show-hide ng-hide" ng-show="accountAvailable"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item text-center item-text-wrap"><h3 class="gray" translate>LOGIN.ASSOCIATED_PUBKEY</h3><h3 class="dark bold">{{formData.pubkey}}</h3></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_SEND <i class="icon ion-android-send"></i></button></div></div><div class="animate-fade-in animate-show-hide ng-hide" ng-show="!accountAvailable"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-minus-circled assertive"></i> <span id="modal-license" trust-as-html="\'ERROR.EXISTING_ACCOUNT\'|translate"></span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="padding text-center"><span class="gray text-no-wrap">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ng-if></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),
-e.put("templates/join/modal_join_wallet.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.WALLET_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header" scroll="false"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><div class="padding center" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><div ng-if="accountAvailable && !formData.computing"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="input-label" translate>COMMON.PUBKEY</span> <span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY </span><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_CREATE</button></div></div><div ng-if="!accountAvailable && !formData.computing"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-android-close active"></i> <span id="modal-license" translate>ERROR.EXISTING_ACCOUNT</span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY</span><div class="padding text-center"><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/login/form_file_import.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.FILE_FORM_HELP</p></div><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i> <span class="positive" translate>LOGIN.FILE.HELP</span></div><div dropzone="onKeyFileDrop(file)"><div ng-if="!formData.file" onclick="angular.element(document.querySelector(\'#loginImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="loginImportFile" accept=".dunikey,.yml" style="visibility:hidden; position:absolute" onchange="angular.element(this).scope().fileChanged(event)"></div><div class="item item-icon-left item-icon-right stable-bg" ng-if="formData.file"><i class="icon ion-document-text dark"></i><div class="item-content row"><div class="col"><h2>{{formData.file.name}}</h2><h4 class="dark" ng-if="formData.file.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{formData.file.lastModified/1000|formatDate}}</h4><h5 class="dark"><span class="gray" translate>COMMON.FILE.SIZE</span> {{formData.file.size|formatInteger}} Ko</h5></div><div class="col"><h3><span class="gray" translate>COMMON.PUBKEY</span></h3><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="formData.file.pubkey">{{formData.file.pubkey}}</span> <span class="assertive animate-show-hide ng-hide" ng-show="!formData.file.valid"><br><i class="ion-close-circled assertive"></i> {{formData.file.pubkey ? \'ERROR.AUTH_INVALID_PUBKEY\' : \'ERROR.AUTH_INVALID_FILE\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeKeyFile()"></a></div></div><ion-checkbox ng-model="formData.keepAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>LOGIN.MEMORIZE_AUTH_FILE</div></ion-checkbox>'),e.put("templates/login/form_login.html",'<form name="loginForm" novalidate="" ng-submit="doLogin()" autocomplete="off"><div class="list padding no-padding-xs" ng-init="setForm(loginForm)" ng-switch on="formData.method"><div class="item hidden-xs no-padding" ng-if="showMethods"><div class="pull-right"><a class="button button-text button-small-padding icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-wrench"></i> {{\'LOGIN.BTN_METHODS\'| translate}} </a>&nbsp; <a class="button button-icon positive button-small-padding icon ion-ios-help-outline" style="right: 8px" ng-click="showHelpModal(\'login-method\')"></a></div></div><div class="item item-text-wrap" ng-if="::isAuth"><p ng-if="::expectedPubkey" ng-bind-html="::expectedUid ? \'AUTH.EXPECTED_UID_HELP\' : \'AUTH.EXPECTED_PUBKEY_HELP\' |translate: {uid: expectedUid, pubkey: expectedPubkey}"></p><p ng-if="::!expectedPubkey" ng-bind-html="::\'AUTH.GENERAL_HELP\'|translate"></p></div><div ng-switch-when="SCRYPT_DEFAULT"><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div><div ng-switch-when="SCRYPT_ADVANCED"><ng-include src="\'templates/login/form_scrypt_advanced.html\'"></ng-include></div><div ng-switch-when="PUBKEY"><ng-include src="\'templates/login/form_pubkey.html\'"></ng-include></div><div ng-switch-when="FILE"><ng-include src="\'templates/login/form_file_import.html\'"></ng-include></div><div ng-switch-when="SCAN"><ng-include src="\'templates/login/form_scan.html\'"></ng-include></div><div ng-switch-default><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-class="{\'button-assertive\': isAuth, \'button-positive\': !isAuth}" type="submit">{{okText || (isAuth ? \'AUTH.BTN_AUTH\' : \'COMMON.BTN_LOGIN\') | translate}}</button></div><div class="text-center no-padding visible-xs"><button type="button" class="button button-small icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-loop"></i> <span translate>LOGIN.BTN_METHODS_DOTS</span></button><br><br></div><ng-if ng-if="!isAuth && showNewAccountLink"><div class="text-center no-padding">{{\'LOGIN.NO_ACCOUNT_QUESTION\'|translate}}<br class="visible-xs"><a ng-click="showJoinModal()" translate>LOGIN.CREATE_ACCOUNT</a></div><br class="visible-xs"><div class="text-center no-padding"><a ng-click="showAccountSecurityModal()" translate>LOGIN.FORGOTTEN_ID</a></div></ng-if></form>'),e.put("templates/login/form_pubkey.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.PUBKEY_FORM_HELP</p></div><div class="item item-input item-button-right" ng-class="{ \'item-input-error\': form.$submitted && form.pubkey.$invalid}"><span class="input-label hidden-xs" translate>COMMON.PUBKEY</span> <input name="pubkey" type="text" placeholder="{{\'LOGIN.PUBKEY_HELP\' | translate}}" autocomplete="off" ng-model="formData.pubkey" ng-model-options="{ debounce: 650 }" required> <a class="button button-stable icon ion-android-search ink" ng-click="showWotLookupModal(form.pubkey.$viewValue)"></a></div><div class="form-errors" ng-show="form.$submitted && form.pubkey.$error" ng-messages="form.pubkey.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="checksum"><span translate="ERROR.INVALID_PUBKEY_CHECKSUM"></span></div></div>'),e.put("templates/login/form_scan.html",'<div class="item"><p class="item-text-wrap" ng-bind-html="::isAuth ? \'AUTH.SCAN_FORM_HELP\' : \'LOGIN.SCAN_FORM_HELP\' |translate"></p></div><div class="item item-icon-right item-text-wrap item-input" ng-class="{ \'item-input-error\': pubkeyError}"><span class="input-label" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><span class="gray animate-show-hide" ng-show="!computing && formData.pubkey">{{formData.pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner><input type="hidden" ng-model="formData.pubkey" required></div><a class="button button-icon positive button-small-padding icon ion-qr-scanner animate-show-hide" ng-show="!computing && (!expectedPubkey || pubkeyError)" ng-click="doScan()"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="!computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt.html",'<div class="item item-text-wrap" ng-if="!isAuth"><p ng-bind-html="\'LOGIN.SCRYPT_FORM_HELP\'|translate"></p></div><input type="password" name="fake-password" autocomplete="off" style="visibility:hidden; position:absolute"><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.username.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.SALT</span> <input name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" autocomplete="off" ng-model="formData.username" ng-model-options="{ debounce: 650 }" class="highlight-light" required></label><div class="form-errors" ng-show="form.$submitted && form.username.$error" ng-messages="form.username.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.password.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.PASSWORD</span> <input name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" autocomplete="off" ng-model="formData.password" ng-model-options="{ debounce: 650 }" select-on-click required></label><div class="form-errors" ng-show="form.$submitted && form.password.$error" ng-messages="form.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-right item-text-wrap" ng-class="{ \'item-input-error\': pubkeyError, \'item-input\': showPubkey}"><span class="input-label hidden-xs animate-show-hide ng-hide" ng-show="showPubkey" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><a class="positive ink animate-show-hide ng-hide" ng-show="showComputePubkeyButton && !pubkey" ng-click="computePubkey()"><i class="ion-eye"></i> {{\'COMMON.BTN_SHOW_PUBKEY\' | translate}} </a><span class="gray animate-show-hide" ng-show="!computing && pubkey">{{pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner></div><a class="button button-icon positive button-small-padding icon ion-ios-help-outline animate-show-hide" ng-click="showHelpModal(\'login-pubkey\')" ng-if="!expectedPubkey" ng-show="showPubkey"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="showPubkey && !showComputePubkeyButton && !computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt_advanced.html",'<div class="row responsive-md responsive-sm padding-left"><div class="col col-33 no-padding"><label class="item item-input item-select"><select ng-model="formData.scrypt" style="max-width: 100%" ng-change="changeScrypt(formData.scrypt)" ng-options="l as (l.label | translate) for l in scryptParamsValues track by l.id"></select></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.N</span> <input class="no-padding-right" type="number" placeholder="N" autocomplete="off" ng-model="formData.scrypt.params.N" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.r</span> <input class="no-padding-right" type="number" placeholder="r" ng-model="formData.scrypt.params.r" autocomplete="off" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.p</span> <input class="no-padding-right" type="number" placeholder="p" autocomplete="off" ng-model="formData.scrypt.params.p" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div></div><p class="energized-100-bg padding dark"><i class="icon ion-android-warning"></i> <span translate>INFO.FEATURES_NOT_IMPLEMENTED</span></p><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include>'),e.put("templates/login/item_remember_me.html",'<ion-checkbox ng-model="formData.rememberMe" ng-if="!isAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>SETTINGS.REMEMBER_ME</div></ion-checkbox>'),e.put("templates/login/modal_login.html",'<ion-modal-view class="modal-full-height modal-login"><ion-header-bar class="" ng-class="{\'bar-positive\': !isAuth, \'bar-assertive\': isAuth}"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-bind-html="title | translate"></h1><div class="buttons buttons-right"><div class="secondary-buttons"><button class="button button-icon button-clear icon ion-android-done visible-xs" ng-class="{\'button-positive\': !isAuth}" style="color: #fff" ng-click="doLogin()"></button></div></div></ion-header-bar><ion-content scroll="true"><ng-include src="\'templates/login/form_login.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/login/popover_methods.html",'<ion-popover-view class="fit has-header popover-login-methods" ng-class="{\'auth\': isAuth}"><ion-header-bar><h1 class="title" translate="">LOGIN.METHOD_POPOVER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_DEFAULT\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> {{\'LOGIN.METHOD.SCRYPT_DEFAULT\' | translate}} </a><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_ADVANCED\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> <i class="icon-secondary ion-plus" style="font-size: 13px; left: 40px; margin-top: -4px"></i> {{\'LOGIN.METHOD.SCRYPT_ADVANCED\' | translate}} </a><a class="item item-icon-left ink hidden-xs" ng-click="changeMethod(\'FILE\')"><i class="icon ion-document-text"></i> {{\'LOGIN.METHOD.FILE\' | translate}} </a><a class="item item-icon-left ink" ng-if="$root.device.barcode.enable" ng-click="changeMethod(\'SCAN\')"><i class="icon ion-qr-scanner"></i> {{\'LOGIN.METHOD.SCAN\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isAuth" ng-click="changeMethod(\'PUBKEY\')"><i class="icon ion-key"></i> {{\'LOGIN.METHOD.PUBKEY\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark" ng-if=":rebind:!peer.bma.private">{{:rebind:peer.dns || peer.server}}</h3><h4 class="gray" ng-if=":rebind:peer.bma.private"><i class="ion-flash"></i> {{\'NETWORK.VIEW.PRIVATE_ACCESS\'|translate}}</h4><h4><span class="gray" ng-if=":rebind:!peer.uid"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.uid"><i class="ion-person"></i> {{:rebind:peer.name || peer.uid}} </span><span class="gray" ng-if=":rebind:!compactMode">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.bma.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center"><span id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}" class="badge" ng-class=":rebind:{\'badge-balanced\': peer.hasMainConsensusBlock, \'badge-energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber && !peer.blockNumber }">{{::!expertMode ? (\'COMMON.BLOCK\'|translate) : \'\' }} {{:rebind:(peer.currentNumber || peer.blockNumber) | formatInteger}}</span> <span class="badge badge-secondary" ng-if=":rebind:peer.consensusBlockDelta && expertMode"><i class="ion-clock"></i>&nbsp; {{:rebind:peer.consensusBlockDelta|formatDurationTime}}</span></div></div>'),e.put("templates/network/items_peers.html",'<div class="no-padding {{::motion.ionListClass}}"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-class=":rebind:{\'compacted\': peer.compacted && compactMode}" id="{{::helptipPrefix}}-peer-{{::$index}}" ng-click="selectPeer(peer)" ng-include="::\'templates/network/item_content_peer.html\'"></div></div>'),e.put("templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;<div class="pull-right">&nbsp;</div></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/network/popover_network.html",""),e.put("templates/network/popover_peer_info.html",""),e.put("templates/network/view_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="enableFilter && search.type==\'offline\'" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter">&nbsp;<cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-blockchain" style="display: block"></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="BlockLookupCtrl"><div class="padding padding-xs" style="display: block; height: 100px"><h4 translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4></div><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></div></div></ion-content></ion-view>'),
-e.put("templates/network/view_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span></ion-nav-title><ion-content class="has-header" scroll="true"><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.bma.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i> </span><span class="assertive" ng-if="!loading && !node.uid">({{\'PEER.MIRROR\'|translate}})</span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.uid" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.uid})"><i class="ion-person"></i> {{node.name || node.uid}} <span class="gray" ng-if="node.name">({{node.uid}}) </span></a><span ng-if="!loading && !node.uid"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}} <span class="gray" ng-if="node.name">({{node.name}})</span></a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.view_server_block_hash({server: node.server, ssl: node.useSsl, tor: node.useTor, number: current.number, hash: current.hash})"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.server_blockchain({server: node.server, ssl: node.useSsl, tor: node.useTor})"><i class="icon ion-cube" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">PEER.VIEW.LAST_BLOCKS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-click="selectPeer(peer)" ng-include="\'templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("templates/settings/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="reset()"><i class="icon ion-refresh"></i> {{\'SETTINGS.BTN_RESET\' | translate}} </a><a class="item item-icon-left ink" ng-click="startSettingsTour()"><i class="icon ion-easel"></i> {{\'COMMON.BTN_HELP_TOUR_SCREEN\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/settings/popup_node.html",'<form name="popupForm" ng-submit=""><div class="list no-padding" ng-init="setPopupForm(popupForm)"><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': popupForm.$submitted && popupForm.newNode.$invalid}"><span class="input-label" ng-bind-html="\'SETTINGS.POPUP_PEER.HOST\'|translate"></span> <input name="newNode" type="text" placeholder="{{\'SETTINGS.POPUP_PEER.HOST_HELP\' | translate}}" ng-model="popupData.newNode" ng-minlength="3" required></div><div class="form-errors" ng-if="popupForm.$submitted && popupForm.newNode.$error" ng-messages="popupForm.newNode.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-toggle"><span class="input-label">{{\'SETTINGS.POPUP_PEER.USE_SSL\' | translate}}</span><h4><small class="gray" ng-bind-html="\'SETTINGS.POPUP_PEER.USE_SSL_HELP\' | translate"></small></h4><label class="toggle toggle-royal no-padding-right"><input type="checkbox" ng-model="popupData.useSsl"><div class="track"><div class="handle"></div></div></label></div><a class="button button-positive button-clear positive button-outline button-full button-small-padding icon-left ink no-padding" ng-click="showNodeList()"><i class="icon ion-search"></i> {{\'SETTINGS.POPUP_PEER.BTN_SHOW_LIST\' | translate}}</a></div><button type="submit" class="hide"></button></form>'),e.put("templates/settings/settings.html",'<ion-view left-buttons="leftButtons" cache-view="false" class="settings"><ion-nav-title translate="">SETTINGS.TITLE</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><div class="row no-padding responsive-sm responsive-md responsive-lg"><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm" style="margin-bottom: 2px"><span class="item item-divider" translate="">SETTINGS.DISPLAY_DIVIDER</span><label class="item item-input item-select"><div class="input-label" translate="">COMMON.LANGUAGE</div><select ng-model="formData.locale" ng-change="changeLanguage(formData.locale.id)" ng-options="l as l.label for l in locales track by l.id"></select></label><div class="item item-toggle dark"><div class="input-label">{{\'COMMON.BTN_RELATIVE_UNIT\' | translate}}</div><label class="toggle toggle-royal" id="helptip-settings-btn-unit-relative"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><div class="item item-toggle dark item-text-wrap"><div class="input-label" ng-bind-html="\'SETTINGS.ENABLE_HELPTIP\' | translate"></div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.helptip.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-text-wrap item-toggle dark"><div class="input-label">{{\'SETTINGS.USE_LOCAL_STORAGE\' | translate}}</div><h4 class="gray" ng-bind-html="\'SETTINGS.USE_LOCAL_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="common"></cs-extension-point><span class="item item-divider">{{\'SETTINGS.AUTHENTICATION_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap"><div class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}">{{\'SETTINGS.REMEMBER_ME\' | translate}}</div><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.REMEMBER_ME_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.rememberMe" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span class="hidden-xs" translate="">SETTINGS.KEEP_AUTH</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.KEEP_AUTH_HELP\' | translate"></h4></div><span class="visible-xs" translate="">SETTINGS.KEEP_AUTH_SHORT</span><select ng-model="formData.keepAuthIdle" ng-options="i as (keepAuthIdleLabels[i].labelKey | translate:keepAuthIdleLabels[i].labelParams ) for i in keepAuthIdles track by i"></select></label></div><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm no-margin-xs no-margin-sm"><span class="item item-divider">{{\'SETTINGS.WALLETS_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap dark"><span class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}" translate="">SETTINGS.USE_WALLETS_ENCRYPTION</span><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.USE_WALLETS_ENCRYPTION_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorageEncryption" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.HISTORY_SETTINGS</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" translate="">SETTINGS.DISPLAY_UD_HISTORY</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.showUDHistory"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="history"></cs-extension-point><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right visible-xs visible-sm" ng-click="changeNode()"><div class="input-label hidden-xs" translate="">SETTINGS.PEER</div><div class="input-label visible-xs" translate="">SETTINGS.PEER_SHORT</div><ng-if ng-if="formData.node.temporary"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{bma.server}}</div></ng-if><div class="badge badge-balanced" ng-if="!formData.node.temporary">{{bma.server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span translate="">SETTINGS.BLOCK_VALIDITY_WINDOW</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.BLOCK_VALIDITY_WINDOW_HELP\' | translate"></h4></div><div class="input-label visible-xs" translate="">SETTINGS.BLOCK_VALIDITY_WINDOW_SHORT</div><select ng-model="formData.blockValidityWindow" ng-options="i as (blockValidityWindowLabels[i].labelKey | translate:blockValidityWindowLabels[i].labelParams ) for i in blockValidityWindows track by i"></select></label><cs-extension-point name="network"></cs-extension-point><span class="item item-divider" ng-if="$root.config.plugins" translate="">SETTINGS.PLUGINS_SETTINGS</span><cs-extension-point name="plugins"></cs-extension-point></div></div></ion-content></ion-view>'),e.put("templates/wallet/item_tx.html",'<i class="icon item-image" ng-if="::!tx.avatar" ng-class="::{\'ion-person dark\': tx.uid, \'ion-card dark\': !tx.uid}"></i> <i class="avatar" ng-if="::tx.avatar" style="background-image: url({{::tx.avatar.src}})"></i><div class="row no-padding"><div class="col no-padding"><a class="" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::tx.uid">{{::tx.name||tx.uid}} </a><a class="gray" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::!tx.uid && tx.pubkey"><i class="ion-key gray"></i> {{::tx.pubkey | formatPubkey}} <span ng-if="::tx.name">- {{::tx.name | truncText:40}}</span></a><p class="dark visible-xs width-cup text-italic" data-toggle="tooltip" ng-if="::tx.comment" title="{{::tx.comment}}"><i class="ion-ios-chatbubble-outline"></i> {{::tx.comment}}<br></p><h4><a ng-if="::!pending" class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate: false}} </a><span ng-if="::pending" class="gray">{{::tx.time | medianFromNowAndDate: false}}</span></h4></div><div class="col col-50 no-padding" ng-if="::tx.comment"><p class="vertical-center gray text-italic hidden-xs" data-toggle="tooltip" title="{{::tx.comment}}">{{::tx.comment}}</p></div><div class="col col-10 no-padding"><span ng-if="::!tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0, \'badge-white\': tx.amount <= 0}"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span> </span><a ng-if=":rebind:tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0}" ng-click="showLockedOutputsPopover(tx, $event)"><b class="ion-locked"></b> <span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></a><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/item_ud.html",'<i class="icon item-image ion-arrow-up-c energized"></i><div class="row no-padding"><div class="col no-padding"><span class="energized" translate>COMMON.UNIVERSAL_DIVIDEND</span><h4><a class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate}}</a></h4></div><div class="col col-10 no-padding"><span class="badge item-note badge-energized"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></span><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/modal_security.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title hidden-xs" translate="">ACCOUNT.SECURITY.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="!isLastSlide && slides.slider.activeIndex > 0" ng-click="doNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-positive button-icon button-clear icon ion-android-done visible-xs" ng-click="doNext()" ng-if="isLastSlide && option === \'saveID\'"></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'recoverID\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-undo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.RECOVER_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.RECOVER_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'revocation\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-close icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE_DESCRIPTION</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'saveID\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 40px; font-size: 8px"></b><h2 translate="">ACCOUNT.SECURITY.SAVE_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.SAVE_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'generateKeyfile\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-key icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="self()" ng-if="needSelf"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-flag icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.SEND_IDENTITY</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.SEND_IDENTITY_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="membershipIn()" ng-if="needMembership"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-plus icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.MEMBERSHIP_IN</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.MEMBERSHIP_IN_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="revokeWalletIdentity()" ng-if="canRevoke"><div class="item-content item-text-wrap"><i class="item-image icon ion-person assertive-900"></i> <b class="ion-close icon-secondary assertive-900" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WALLET</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WALLET_HELP</h4></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page><ion-slide-page ng-if="option == \'revocation\'"><ng-include src="\'templates/wallet/slides/slides_revocation_file.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_3.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'generateKeyfile\'"><ng-include src="\'templates/wallet/slides/slides_generate_keyfile.html\'"></ng-include></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/wallet/modal_transfer.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>TRANSFER.MODAL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-modal-view>'),e.put("templates/wallet/new_transfer.html",'<ion-view left-buttons="leftButtons" id="transfer"><ion-nav-title><span class="visible-xs visible-sm" translate="">TRANSFER.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding-xs"><div class="col no-padding-xs"><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></div></div></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-view>'),e.put("templates/wallet/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left ink" ng-if="walletData.requirements.alternatives" ng-click="showSelectIdentitiesModal()"><i class="icon ion-person"></i> <b class="icon-secondary ion-loop" style="margin-top: 4px; left: 15px"></b> {{\'ACCOUNT.BTN_SELECT_ALTERNATIVES_IDENTITIES\' | translate}} </a><a class="item item-icon-left ink visible-xs visible-sm" ng-if="!walletData.requirements.needSelf && walletData.requirements.needRenew" ng-click="renewMembership()"><i class="icon ion-loop"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_RENEW_DOTS\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="walletData.requirements.canMembershipOut" ng-click="membershipOut()"><i class="icon ion-log-out"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_OUT_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-click="showSecurityModal()"><i class="icon ion-locked"></i> <span ng-bind-html="\'ACCOUNT.BTN_SECURITY_DOTS\' | translate"></span></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popover_unit.html",'<ion-popover-view class="popover-unit"><ion-content scroll="false"><div class="list"><a class="item item-icon-left" ng-class="{ \'selected\': !formData.useRelative}" ng-click="closePopover(false)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': !formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:false"></i> </a><a class="item item-icon-left" ng-class="{ \'selected\': formData.useRelative}" ng-click="closePopover(true)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:true"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popup_register.html",'<form name="registerForm" ng-submit=""><div class="list" ng-init="setRegisterForm(registerForm)"><label class="item item-input" ng-class="{\'item-input-error\': registerForm.$submitted && registerForm.pseudo.$invalid}"><input name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.newUid" ng-minlength="3" required></label><div class="form-errors" ng-if="registerForm.$submitted && registerForm.pseudo.$error" ng-messages="registerForm.pseudo.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/transfer_form.html",'<form name="transferForm" novalidate="" ng-submit="doTransfer()"><div class="list no-padding-xs" ng-init="setForm(transferForm)"><ion-item class="item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" tabindex="1" ng-click="showWotLookupModal()"><span class="gray" translate="">TRANSFER.TO</span> <span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="destUid"><i class="ion-person"></i> {{destUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!destUid && formData.destPub"><i class="ion-key"></i> {{formData.destPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></ion-item><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" tabindex="2" ng-click="showSelectWalletModal()"><span class="gray" translate="">TRANSFER.FROM</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-show="!loading" ng-class="{\'badge-assertive\': (convertedBalance <= 0 || form.amount.$error.max), \'badge-balanced\': (convertedBalance > 0 && (!form.amount.$error.max)) }"><ion-spinner icon="android" ng-show="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}}&nbsp;&nbsp; </span><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency:currency}"></span> </span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.amount.$invalid}"><div class="input-label"><span translate="">TRANSFER.AMOUNT</span> (<span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span>)</div><input type="text" tabindex="-1" autocomplete="off" class="visible-xs visible-sm" name="amount" placeholder="{{::\'TRANSFER.AMOUNT_HELP\' | translate}}" ng-model="formData.amount" required number-float=""><div class="block visible-xs visible-sm" style="position:absolute; opacity:0; z-index:100; top: 0; left: 0; height: 100%; width: 100%" tabindex="4" ng-click="showDigitKeyboard()"></div><a class="button button-clear button-stable dark ink" tabindex="-1" style="z-index:110; padding: 0px 16px" ng-click="showUnitPopover($event)"><span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span> &nbsp;<b class="ion-arrow-down-b" style="font-size: 12pt"></b></a></ion-item><div class="form-errors" ng-show="form.$submitted && form.amount.$error" ng-messages="form.amount.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="numberFloat"><span translate="ERROR.FIELD_NOT_NUMBER"></span></div><div class="form-error" ng-message="numberInt"><span translate="ERROR.FIELD_NOT_INT"></span></div><div class="form-error" ng-message="min"><span translate="ERROR.FIELD_MIN" translate-values="{min: minAmount}"></span></div><div class="form-error" ng-message="max"><span translate="ERROR.NOT_ENOUGH_CREDIT"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal(\'restPub\')" tabindex="5" ng-if="formData.all && formData.restAmount"><span class="gray"><i translate="">TRANSFER.REST</i><ng-if ng-if="formData.restAmount">(<i ng-bind-html="formData.restAmount|formatAmount:{useRelative: formData.useRelative, currency:currency}"></i>)</ng-if><i translate="">TRANSFER.REST_TO</i> </span><span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="restUid"><i class="ion-person"></i> {{restUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!restUid && formData.restPub"><i class="ion-key"></i> {{formData.restPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && formData.all && !formData.restPub && formData.restAmount &gt; 0"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="pull-right visible-xs visible-sm" ng-if="!formData.useComment"><a class="button button-text button-small ink" tabindex="-1" ng-click="addComment()"><i class="icon ion-plus"></i> <span translate="">TRANSFER.BTN_ADD_COMMENT</span></a></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span> <input type="text" placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" id="{{commentInputId}}" tabindex="7" name="comment" autocomplete="off" ng-model="formData.comment" ng-model-options="{ debounce: 650 }" ng-maxlength="255" ng-pattern="commentPattern" ng-focus="hideDigitKeyboard()"></label><div class="form-errors" ng-show="form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div><div class="item item-icon-left item-text-wrap item-no-border visible-xs visible-sm" ng-if="formData.useComment"><i class="icon ion-android-alert positive"></i><h4 class="positive" translate="">TRANSFER.WARN_COMMENT_IS_PUBLIC</h4></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button ink" tabindex="8" ng-class="{\'button-assertive\': formData.all, \'button-positive\': !formData.all}" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'),
-e.put("templates/wallet/tx_locked_outputs_popover.html",'<ion-popover-view class="fit popover-locked-outputs"><ion-header-bar><h1 class="title" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.TITLE</h1></ion-header-bar><ion-content scroll="true"><div ng-if="popoverData.lockedOuputs.length == 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION</h4></div><div ng-if="popoverData.lockedOuputs.length > 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION_MANY</h4></div><div ng-repeat="output in popoverData.lockedOuputs track by $index" class="item"><h2 class="gray" ng-if="popoverData.lockedOuputs.length > 1" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.LOCKED_AMOUNT</h2><div ng-if="popoverData.lockedOuputs.length > 1" class="badge item-note" ng-class="{\'badge-balanced\': output.amount > 0}"><i class="icon ion-locked"></i> <span ng-bind-html="::output.amount| formatAmount"></span> <span ng-bind-html="::unit"></span></div><div ng-repeat="condition in output.unlockConditions track by $index" class="row" ng-class="::{\'padding-top\': !$index && popoverData.lockedOuputs.length > 1}" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/wallet/view_wallet.html",'<ion-view left-buttons="leftButtons" class="view-wallet" id="wallet"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" id="helptip-wallet-options-xs" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:$root.settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero" style="max-width: 100%; display: block" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading" style="max-width: 100%"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class=":rebind:{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{:rebind:formData.avatar.src}})"></i><h3 class="light" ng-if=":rebind:!enableSelectWallet"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></h3><h3 class="light" ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></h3><h4 class="assertive"><span ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember" translate="">WOT.NOT_MEMBER_PARENTHESIS</span></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><a ng-attr-id="{{ qrcodeId }}" class="qrcode spin pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></a><a id="wallet-share-anchor"></a><div class="visible-xs visible-sm padding text-center" ng-if="!loading"><button class="button button-assertive button-small-padding ink" ng-if="isDefaultWallet" ng-click="logout({askConfirm: true})"><i class="icon ion-log-out"></i> {{\'COMMON.BTN_LOGOUT\' | translate}}</button><div ng-if="formData.requirements.needRenew"><br><button class="button button-raised icon-left button-stable button-small-padding ink" ng-click="renewMembership()"><i class="icon ion-loop assertive"></i> <span class="assertive">{{:locale:\'ACCOUNT.BTN_MEMBERSHIP_RENEW\' | translate}}</span></button></div></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}" ng-hide="loading"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><div id="helptip-wallet-pubkey" class="item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate"><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate | medianDate}}</h5><span class="badge badge-stable">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wallet-certifications" class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="formData.isMember||formData.requirements.pendingMembership||!formData.requirements.needSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> {{:locale:\'ACCOUNT.CERTIFICATION_COUNT\'|translate}}<cs-badge-certification requirements="formData.requirements" parameters="::currency.parameters"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a id="helptip-wallet-given-certifications" class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if="formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="showTxHistory()"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i> </a><span class="item item-divider" ng-if="formData.events.length">{{:locale:\'ACCOUNT.EVENTS\' | translate}}</span><div class="item item-text-wrap item-icon-left item-wallet-event" ng-repeat="event in formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled assertive\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></div></ion-content></ion-view>'),e.put("templates/wallet/view_wallet_tx.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx"><ion-nav-title><span class="visible-xs visible-sm" translate="">MENU.TRANSACTIONS</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><h1 class="light"><span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{currency: $root.currency.name}"></span></h1><h4><ng-if ng-if="!loading && $root.settings.expertMode" style="font-style: italic">(<span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{useRelative:!$root.settings.useRelative, currency: $root.currency.name}"></span>)</ng-if><ng-if ng-if=":rebind:!enableSelectWallet" style="color: lightgray"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></ng-if><ng-if ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></ng-if></h4><div class="helptip-anchor-center"><a id="helptip-wallet-balance">&nbsp;</a></div></div><h2 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h2></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}"><a class="item item-icon-left item-icon-right ink" ng-if="formData.tx.errors && formData.tx.errors.length" ng-click="showTxErrors()"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div><i class="gray icon ion-ios-arrow-right"></i></a><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider"><b class="icon ion-checkmark" style="font-size: 12px"></b> <b class="icon-secondary ion-help" style="font-size: 12px; top: 2px; left: 11px"></b> {{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading"><b class="icon ion-checkmark"></b> {{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a> </span><span class="item padding" ng-if="!loading && !formData.tx.history.length"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content><button id="fab-transfer" ng-show="!loading" class="button button-fab button-fab-bottom-right button-energized-900 hidden-md hidden-lg drop ng-hide" ng-click="showTransferModal()"><i class="icon ion-android-send"></i></button></ion-view>'),e.put("templates/wallet/view_wallet_tx_error.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx-error"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="row no-padding"><div class="col list {{::motion.ionListClass}}"><div class="item item-divider"><span><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX_RECEIVED\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasReceivedTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterReceivedTx" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div><div class="item item-divider"><span><b class="ion-close-circled"></b> {{:locale:\'ACCOUNT.ERROR_TX_SENT\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasSentTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterSentTx" ng-init="error=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></div></div></ion-content></ion-view>'),e.put("templates/wot/item_certification.html",'<i class="item-image" ng-if="!cert.avatar" ng-class="{\'ion-card\': !cert.isMember, \'ion-person\': cert.isMember}"></i> <i class="item-image avatar" ng-if="cert.avatar" style="background-image: url({{::cert.avatar.src}})"></i> <span ng-if="cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span class="positive">{{::cert.name||cert.uid}}</span></h3><h4 class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} <span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><span ng-if="!cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span ng-if="cert.uid" class="dark">{{::cert.name||cert.uid}} </span><span ng-if="!cert.uid" class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}}</span></h3><h5 class="assertive">{{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}</h5><h4 class="gray"><span ng-if="cert.uid"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} </span><span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><div class="badge badge-stable" ng-class="{\'badge-energized\': cert.willExpire}" ng-if="cert.expiresIn">{{::cert.expiresIn | formatDurationTo}}</div><div class="badge badge-assertive" ng-if="!cert.expiresIn">{{::\'WOT.EXPIRED\' | translate}}</div>'),e.put("templates/wot/item_content_identity.html",'<i ng-if="::!item.avatar" class="item-image icon ion-person"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2><ng-if ng-if="::item.name||item.uid" ng-bind-html="::item.name||item.uid"></ng-if><ng-if ng-if="::!item.name && !item.uid">{{::item.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="::item.sigDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.REGISTERED\' | translate:item }}</h4><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="item.memberDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.MEMBER_FROM\' | translate:item}}</h4><h4 class="gray"><span class="positive" ng-if="::item.name && item.uid"><i class="ion-person"></i> {{::item.uid}}&nbsp; </span><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::(!item.uid && !item.revoked)" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked" class="assertive" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span></h4><h4 ng-if="::item.events||item.tags"><span ng-repeat="event in ::item.events" class="assertive"><i class="ion-alert-circled" ng-if="::!item.valid"></i> <span ng-bind-html="::event.message|translate:event.messageParams"></span> </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("templates/wot/items_given_certifications.html",'<div class="list given-certifications" ng-class="::motions.givenCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.GIVEN_CERTIFICATIONS.SUMMARY</span></span><div id="helptip-certs-stock" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-a"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.given_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.given_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.given_cert_pending.length"><span translate>WOT.GIVEN_CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.GIVEN_CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.given_cert.length" translate>WOT.NO_GIVEN_CERTIFICATION </span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/items_received_certifications.html",'<div class="list certifications" ng-class="::motions.receivedCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.CERTIFICATIONS.SUMMARY</span></span><div id="helptip-received-certs" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate>WOT.CERTIFICATIONS.RECEIVED</span><h4 class="gray" ng-if="formData.requirements.isSentry" translate>WOT.CERTIFICATIONS.SENTRY_MEMBER</h4><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="$root.currency.parameters"></cs-badge-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.received_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.received_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.received_cert_pending.length"><span translate>WOT.CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.received_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.received_cert.length" translate>WOT.NO_CERTIFICATION</span> <a class="item item-avatar ink" ng-repeat="cert in formData.received_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/lookup.html",'<ion-view left-buttons="leftButtons"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'WOT.LOOKUP.TITLE\'|translate}}" icon="ion-person-stalker" ui-sref="app.wot_lookup.tab_search"><ion-nav-view name="tab"></ion-nav-view></ion-tab><cs-extension-point name="tabs"></cs-extension-point></ion-tabs></ion-view>'),e.put("templates/wot/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="double-padding-x padding-top-xs item-text-wrap" ng-if="::allowMultiple" style="height: 36px"><div class="gray padding-top" ng-if="!selection.length && parameters.help">{{::parameters.help|translate}}</div><div ng-repeat="identity in selection track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><span ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></span> <i class="icon ion-close" ng-click="removeSelection(identity, $event)">&nbsp;&nbsp;</i></div></div><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'WOT.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-wot-search-text"></a></div></div></div><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px" ng-class="::{\'hidden-xs hidden-sm\': !showResultLabel}"><div class="pull-left" ng-if="!search.loading && showResultLabel"><ng-if ng-if="search.type==\'newcomers\'"><h4 translate="">WOT.LOOKUP.NEWCOMERS</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.NEWCOMERS_COUNT\'|translate:{count: search.total} }}</small></ng-if><ng-if ng-if="search.type==\'pending\'"><h4 translate="">WOT.LOOKUP.PENDING</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.PENDING_COUNT\'|translate:{count: search.total} }}</small></ng-if><h4 ng-if="search.type==\'text\'"><span translate="">COMMON.RESULTS_LIST</span> <small class="gray" ng-if="search.total">({{search.total}})</small></h4></div></div><div class="text-center padding-top" ng-if="search.loading"><p class="gray" ng-if="::$root.currency.initPhase" translate="">WOT.SEARCH_INIT_PHASE_WARNING</p><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!search.loading"><div class="assertive padding" ng-if="!search.results.length"><span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span> <span ng-if="search.type==\'pending\'" translate="">WOT.LOOKUP.NO_PENDING</span> <span ng-if="search.type==\'newcomers\'" translate="">WOT.LOOKUP.NO_NEWCOMERS</span></div><ion-list ng-if="::!allowMultiple && $root.device.enable" class="{{::motion.ionListClass}}" can-swipe="true"><ng-repeat ng-repeat="item in search.results track by item.id"><div ng-if="::item.divider" class="item item-divider" id="helptip-wot-search-result-{{$index}}">{{::(\'WOT.SEARCH.DIVIDER_\' + item.index)|upper|translate}}</div><ion-item ng-if="::!item.divider" id="helptip-wot-search-result-{{$index}}" class="item item-border-large item-avatar item-icon-right ink" ng-click="::select(item)"><ng-include src="item.templateUrl || \'templates/wot/item_content_identity.html\'"></ng-include><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-positive" ng-click="showTransferModal({pubkey: item.pubkey, uid: item.name ||item.uid})" translate="">COMMON.BTN_SEND_MONEY_SHORT</ion-option-button></ion-item></ng-repeat></ion-list><div ng-if="::allowMultiple" class="list {{::motion.ionListClass}}"><ion-checkbox ng-repeat="item in search.results track by item.id" ng-model="item.checked" class="item item-border-large item-avatar ink" ng-click="toggleCheck($index, $event)"><ng-include src="\'templates/wot/item_content_identity.html\'"></ng-include></ion-checkbox></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="20%"></ion-infinite-scroll></ng-if></div>'),e.put("templates/wot/lookup_lg.html",'<ion-view><ion-nav-title>{{\'MENU.WOT\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-qr-scanner hidden-no-device" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"></button> <button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content class="padding no-padding-x no-padding-sm" scroll="true"><cs-extension-point name="top"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/lookup_popover_actions.html",'<ion-popover-view class="fit has-header visible-sm visible-xs"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="doGetNewcomers()"><i class="icon ion-person"></i> {{\'WOT.LOOKUP.BTN_NEWCOMERS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetPending()"><i class="icon ion-clock"></i> {{\'WOT.LOOKUP.BTN_PENDING\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/wot/modal_lookup.html",'<ion-modal-view id="wotLookup" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title hidden-xs">{{::parameters.title?parameters.title:\'WOT.MODAL.TITLE\'|translate}}</h1><button class="button button-clear icon-right visible-xs ink" ng-if="allowMultiple && selection.length" ng-click="closeModal(selection)">{{::parameters.okText||\'COMMON.BTN_NEXT\' | translate}} <i ng-if="::!parameters.okText||parameters.okIcon" class="icon {{::parameters.okIcon||\'ion-ios-arrow-right\'}}"></i></button></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="visible-xs visible-sm text-right stable-bg stable"><button class="button button-icon button-small-padding dark hidden-no-device ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"><i class="icon ion-qr-scanner"></i></button> <button class="button button-icon button-small-padding dark ink" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></div><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/wot/modal_select_pubkey_identity.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_IDENTITY_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="padding"><p trust-as-html="\'ACCOUNT.SELECT_IDENTITY_MODAL.HELP\'|translate:{pubkey: pubkey}"></p></div><ion-list><ion-item class="item-avatar item-icon-right" ng-repeat="item in identities" ng-click="closeModal(item)"><i class="item-image icon ion-person"></i><h2>{{item.uid}}</h2><h4 class="gray"><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::!item.revoked && !item.pendingRevocation && !item.isMember" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked || item.pendingRevocation" class="assertive bold" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span> <span ng-if="::item.meta.invalid" class="assertive" translate>ERROR.WOT_PENDING_INVALID_BLOCK_HASH</span></h4><h4 class="dark" ng-if="::item.meta.time"><i class="ion-calendar"></i> <span translate>WOT.REGISTERED_SINCE</span> {{::item.meta.time|medianDate}}</h4><ng-if ng-if="::!item.revoked && !item.pendingRevocation && (item.certificationCount || item.pendingCertificationCount)"><cs-badge-certification requirements="item" parameters="$root.currency.parameters"></cs-badge-certification><div class="gray badge badge-secondary hidden-xs"><span translate>ACCOUNT.CERTIFICATION_COUNT</span></div></ng-if><i class="icon ion-ios-arrow-right"></i></ion-item></ion-list></ion-content></ion-modal-view>'),e.put("templates/wot/view_certifications.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm">{{::formData.name||formData.uid}}</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content class="certifications certifications-lg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="row responsive-sm responsive-md responsive-lg"><div class="col no-padding" ng-if="motions.receivedCertifications.enable"><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></div><div class="col no-padding" ng-if="motions.givenCertifications.enable"><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></div></div></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canCertify && !alreadyCertified" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button> <button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),
-e.put("templates/wot/view_identity.html",'<ion-view left-buttons="leftButtons" class="view-identity"><ion-nav-title></ion-nav-title><ion-content scroll="true" class="refresher-light" ng-class="{\'member refresher-positive-900-bg\': !loading && formData.isMember, \'refresher-dark-100-bg\': loading || !formData.isMember}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="hero" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class="{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{::formData.avatar.src}})"></i><ng-if ng-if=":rebind:formData.name"><h3 class="light">{{::formData.name}}</h3></ng-if><ng-if ng-if=":rebind:!formData.name"><h3 class="light" ng-if=":rebind:formData.uid">{{:rebind:formData.uid}}</h3><h3 class="light" ng-if=":rebind:!formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</h3></ng-if><h4 class="assertive"><ng-if ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember && revoked" translate="">WOT.IDENTITY_REVOKED_PARENTHESIS</ng-if><ng-if ng-if=":rebind:(formData.name || formData.uid) && formData.isMember && revoked" translate="">WOT.MEMBER_PENDING_REVOCATION_PARENTHESIS</ng-if></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div ng-attr-id="{{ qrcodeId }}" class="qrcode spin" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></div><a id="wot-share-anchor-{{::formData.pubkey}}"></a><div class="visible-xs visible-sm"><button id="fab-certify-{{:rebind:formData.uid}}" class="button button-fab button-fab-top-left button-fab-hero button-calm spin" ng-if=":rebind:(canCertify && !alreadyCertified)" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button><cs-extension-point name="buttons-top-fab"></cs-extension-point></div><div class="row no-padding"><div class="col list {{::motion.ionListClass}}" bind-notifier="{ rebind:loading}"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 id="pubkey" class="dark text-left">{{:rebind:formData.pubkey}}</h4></ion-item><div class="item item-icon-left item-text-wrap" ng-if=":rebind:!formData.hasSelf"><i class="icon ion-ios-help-outline positive"></i> <span translate="">WOT.NOT_MEMBER_ACCOUNT</span><h4 class="gray" translate="">WOT.NOT_MEMBER_ACCOUNT_HELP</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate "><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate|medianDate}}</h5><span class="badge badge-energized">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wot-view-certifications" class="item item-icon-left item-text-wrap item-icon-right ink" ng-if=":rebind:formData.hasSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if=":rebind:formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate="">ACCOUNT.CERTIFICATION_COUNT</span><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="{sigQty: formData.sigQty}"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if=":rebind:formData.hasSelf && formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-if="!loading" ui-sref="app.wot_identity_tx_uid({uid:formData.uid,pubkey:formData.pubkey})"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-text-wrap item-icon-left item-wallet-event" ng-class="{\'assertive\': event.type==\'error\'}" ng-repeat="event in :rebind:formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></ion-content><div class="visible-xs visible-sm" ng-hide="loading"><button id="fab-transfer" class="button button-fab button-fab-bottom-right button-assertive drop" ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.uid})"><i class="icon ion-android-send"></i></button></div></ion-view>'),e.put("templates/wot/view_identity_tx.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" ng-if="!loading"><span ng-if="formData.name || formData.uid">{{formData.name || formData.uid}} </span><span ng-if="!formData.name && !formData.uid"><i class="ion-key"></i> {{formData.pubkey|formatPubkey}}</span></span></ion-nav-title><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list {{motion.ionListClass}}" ng-if="!loading"><div class="row"><div class="col"><div class="item item-tx item-divider">{{:locale:\'ACCOUNT.BALANCE_ACCOUNT\'|translate}}<div class="badge item-note" ng-class=":balance:{\'badge-assertive\': formData.balance <= 0, \'badge-balanced\': formData.balance > 0 }" ng-bind-html=":balance:formData.balance|formatAmount:{currency: $root.currency.name}"></div><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":balance:formData.balance| formatAmount: {useRelative: !$root.settings.useRelative, currency: $root.currency.name} "></span>)</div></div><div class="item item-icon-left" ng-if="formData.tx.errors.length"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div></div><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><i class="ion-clock"></i> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider">{{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading">{{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_blocks.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-divider"><span translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</span></div><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_network.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear" ng-click="showExtendActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refreshPeers()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_network.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_parameters.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_wot.html",'<ion-view><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/wallet/list/item_wallet.html",'<div class="item item-avatar item-icon-right item-border-large item-wallet ink" id="wallet-{{::wallet.id}}" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if=":rebind:!walletData.avatar" class="item-image icon" ng-class=":rebind:{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if=":rebind:walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide=":rebind:wallet.isAuth()"></div><h2><span class="text-editable" ng-click="editWallet($event, wallet)" title="{{\'ACCOUNT.WALLET_LIST.BTN_RENAME\'|translate}}"><ng-if ng-if=":rebind:walletData.localName||walletData.name||walletData.uid" ng-bind-html="::walletData.localName||walletData.name||walletData.uid"></ng-if><ng-if ng-if=":rebind:!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></span></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><cs-extension-point name="item-wallet"></cs-extension-point><span class="badge" ng-if=":rebind:formData.showBalance && walletData.sources" ng-class=":rebind:{\'badge-calm\': (walletData.balance > 0) }"><ion-spinner class="ion-spinner-small" ng-if="formData.updatingWalletId==wallet.id" icon="android"></ion-spinner><span ng-bind-html=":rebind:walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span> </span><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/item_wallet_light.html",'<div class="item item-avatar item-icon-right item-border item-wallet" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if="::!walletData.avatar" class="item-image icon" ng-class="::{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if="::walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide="::wallet.isAuth()"></div><h2><ng-if ng-if="::walletData.localName||walletData.name||walletData.uid">{{::walletData.localName||walletData.name||walletData.uid}}</ng-if><ng-if ng-if="::!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><div class="badge" ng-if="formData.showBalance" ng-class="{\'badge-calm\': (walletData.balance > 0) }"><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span></div><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/modal_import_file.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding"><p translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.HELP</p><div dropzone="importFromFile(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#walletsImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="walletsImportFile" accept=".csv,.txt" style="visibility:hidden; position:absolute" on-read-file="importFromFile(file)"></div><div ng-if="hasContent" class="item item-icon-left item-icon-right stable-bg"><i class="icon ion-document-text gray"></i><div class="item-content row"><div class="col"><h2>{{fileData.name}}</h2><h4 ng-if="fileData.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{fileData.lastModified/1000|formatDate}}</h4><h5><span class="gray" translate>COMMON.FILE.SIZE</span> {{fileData.size|formatInteger}} Ko</h5></div><div class="col padding-left"><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="isValidFile && content.length" ng-bind-html="\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.WALLET_COUNT\'|translate:{count: content.length}"></span> <span class="assertive animate-show-hide ng-hide" ng-show="isValidFile && !content.length"><br><i class="ion-close-circled assertive"></i> {{\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.NO_NEW_WALLET\' |translate}} </span><span class="assertive animate-show-hide ng-hide" ng-show="!isValidFile"><br><i class="ion-close-circled assertive"></i> {{\'ERROR.INVALID_FILE_FORMAT\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeFile()"></a></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-disabled="loading || !content.length" ng-click="closeModal(content)" translate>COMMON.BTN_IMPORT</button></div></ion-content></ion-modal-view>'),e.put("templates/wallet/list/modal_wallets.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading" class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-repeat ng-repeat="wallet in wallets track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content></ion-modal-view>'),e.put("templates/wallet/list/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><button class="item item-icon-left ink" ng-class="{\'gray\': loading || !wallets.length, \'assertive\': !loading && wallets.length}" ng-disabled="loading || !wallets.length" ng-click="selectAndRemoveWallet()"><i class="icon ion-trash-a"></i> {{\'ACCOUNT.WALLET_LIST.BTN_DELETE\' | translate}}</button></div></ion-content></ion-popover-view>'),e.put("templates/wallet/list/popover_wallets.html",'<ion-popover-view class="fit popover-wallets popover-light"><ion-header-bar class="stable-bg block"><div class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</div><div class="pull-right"><a class="positive" ng-click="showNewWalletModal()" translate>ACCOUNT.WALLET_LIST.BTN_NEW</a></div></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet_light.html\'"></ng-include><ng-repeat ng-repeat="wallet in :rebind:wallets | filter:filterFn(formData) track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content><ion-footer-bar class="stable-bg block"><div class="pull-right"><a class="positive" ui-sref="app.view_wallets" ng-click="closePopover()" translate>COMMON.NOTIFICATIONS.SHOW_ALL</a></div></ion-footer-bar></ion-popover-view>'),e.put("templates/wallet/list/popup_edit_name.html",'<form name="editForm" ng-submit=""><div class="list" ng-init="setEditForm(editForm)"><label class="item item-input" ng-class="{\'item-input-error\': editForm.$submitted && editForm.name.$invalid}"><input name="name" type="text" placeholder="{{\'ACCOUNT.WALLET_LIST.EDIT_POPOVER.NAME_HELP\' | translate}}" ng-model="formData.name" ng-minlength="3" required></label><div class="form-errors" ng-if="editForm.$submitted && editForm.name.$error" ng-messages="editForm.name.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/list/view_wallets.html",'<ion-view left-buttons="leftButtons" class="view-wallet-list"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="padding no-padding-xs no-padding-sm" bind-notifier="{ rebind:formData.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true, $event)"></ion-refresher><div class="center padding gray" ng-if="!loading && wallets && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-include ng-repeat="wallet in wallets track by wallet.id" src="\'templates/wallet/list/item_wallet.html\'"></ng-include></ion-list><div class="center padding visible-xs visible-sm" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div></ion-content><button id="fab-add-wallet" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg drop ng-hide" ng-show="!loading" ng-click="showNewWalletModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("templates/wallet/slides/slides_generate_keyfile.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.GENERATE_KEYFILE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'PubSec\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'WIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'EWIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 43px; font-size: 8px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#saveIdFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="saveIdFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><form name="recoverForm" novalidate ng-submit="recoverId()"><div class="list" ng-init="setForm(recoverForm, \'recoverForm\')"><ng-repeat ng-repeat="question in recover.questions "><label class="item item-input {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="{{smallscreen ? \'white-space: normal\' : \'\'}}">{{question.value }}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value }}" ng-model="question.answer" required></label><div class="form-errors" ng-show="recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$error" ng-messages="recoverForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_3.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div class="item item-input"><span class="input-label">{{\'LOGIN.SALT\' | translate}} :</span> <span>{{recover.salt}}</span></div><div class="item item-input"><span class="input-label">{{\'LOGIN.PASSWORD\' | translate}} :</span> <span>{{recover.pwd}}</span></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CLOSE</button></div></ion-content>'),e.put("templates/wallet/slides/slides_revocation_file.html",'<ion-content class="has-header padding"><p translate>ACCOUNT.SECURITY.REVOCATION_WITH_FILE_HELP</p><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#revocationFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="revocationFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="revokeWithFile()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_saveID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><label class="item item-input item-select"><div class="input-label" translate>ACCOUNT.SECURITY.LEVEL</div><select ng-model="formData.level"><option value="2" ng-bind-html="\'ACCOUNT.SECURITY.LOW_LEVEL\' | translate"></option><option value="4" translate>ACCOUNT.SECURITY.MEDIUM_LEVEL</option><option value="6" translate>ACCOUNT.SECURITY.STRONG_LEVEL</option></select></label><div class="padding-top" translate="ACCOUNT.SECURITY.HELP_LEVEL" translate-values="{nb: {{formData.level}}}"></div><form name="questionsForm" novalidate ng-submit="doNext(\'questionsForm\')"><div class="list" ng-init="setForm(questionsForm, \'questionsForm\')"><ion-checkbox ng-repeat="question in formData.questions" ng-model="question.checked" ng-required="isRequired()"><span style="white-space: normal">{{question.value | translate}}</span></ion-checkbox><div class="item item-icon-right no-padding-top"><a class="dark"><i class="icon ion-android-add" ng-click="addQuestion()"></i></a><div class="list list-inset"><label class="item item-input"><input type="text" placeholder="{{\'ACCOUNT.SECURITY.ADD_QUESTION\' | translate}}" ng-model="formData.addQuestion"></label></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_RESET</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-disabled="questionsForm.$invalid" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></form></ion-content>'),e.put("templates/wallet/slides/slides_saveID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><form name="answersForm" novalidate ng-submit="doNext(\'answersForm\')"><div class="list" ng-init="setForm(answersForm, \'answersForm\')"><ng-repeat ng-repeat="question in formData.questions |filter:true:checked"><label class="item item-input item-text-wrap {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': answersForm.$submitted && answersForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="width: 100%; max-width: inherit">{{question.value | translate}}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value | translate}}" ng-model="question.answer" required></label><div class="form-errors" ng-show="answersForm.$submitted && answersForm[\'question{{$index}}\'].$error" ng-messages="answersForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-positive ink" type="submit" translate>COMMON.BTN_CONTINUE <i class="icon ion-android-archive"></i></button></div></div></form></ion-content>'),e.put("templates/wot/tabs/tab_given_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.receivedCertifications=false; motions.avatar=false"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify || $root.tour" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),
-e.put("templates/wot/tabs/tab_lookup.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/tabs/tab_received_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.givenCertifications=false; motions.avatar=false;" class="has-header"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-click="certify()" ng-if="(formData.hasSelf && canCertify && !alreadyCertified) || $root.tour"><i class="icon ion-ribbon-b"></i></button></div></ion-view>')}]),angular.module("cesium.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been cancelled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",
-COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Äž1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Äž1 logo (outline)"}}}}),e.translations("en",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"MM/DD/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"MM/DD/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",
-REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been canceled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",
-EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("eo-EO",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Publika ŝlosilo",MEMBER:"Membro",BLOCK:"Bloko",BTN_OK:"OK",BTN_YES:"Jes",BTN_NO:"Ne",BTN_SEND:"Sendi",BTN_SEND_MONEY:"Fari elspezon",BTN_SEND_MONEY_SHORT:"Elspezo",BTN_SAVE:"Konservi",BTN_YES_SAVE:"Jes, Konservi",BTN_YES_CONTINUE:"Jes, Daŭrigi",BTN_SHOW:"Vidi",BTN_SHOW_PUBKEY:"Afiŝi la publikan ŝlosilon",BTN_RELATIVE_UNIT:"Afiŝi la sumojn en UD?",BTN_BACK:"Reiro",BTN_NEXT:"Sekva",BTN_IMPORT:"Enporti",BTN_CANCEL:"Nuligi",BTN_CLOSE:"Fermi",BTN_LATER:"Poste",BTN_LOGIN:"Konektiĝi",BTN_LOGOUT:"Malkonektiĝo",BTN_ADD_ACCOUNT:"Nova konto",BTN_SHARE:"Diskonigi",BTN_EDIT:"Modifi",BTN_DELETE:"Forigi",BTN_ADD:"Aldoni",BTN_SEARCH:"Serĉi",BTN_REFRESH:"Aktualigi",BTN_RETRY:"Rekomenci",BTN_START:"Komenci",BTN_CONTINUE:"Daŭrigi",BTN_CREATE:"Krei",BTN_UNDERSTOOD:"Mi komprenis",BTN_OPTIONS:"Kromeblecoj",BTN_HELP_TOUR:"Gvidata vizito",BTN_HELP_TOUR_SCREEN:"Malkovri tiun ĉi paĝon",BTN_DOWNLOAD:"Elŝuti",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Elŝuti la konto-tabelon",BTN_MODIFY:"Modifi",CHOOSE_FILE:"Almetu vian dosieron <br/>aŭ klaku por elekti ĝin",DAYS:"tagoj",NO_ACCOUNT_QUESTION:"Ankoraŭ sen konto? Kreu ĝin senpage!",SEARCH_NO_RESULT:"Neniu rezulto trovita",LOADING:"Bonvolu pacienci...",LOADING_WAIT:"Bonvolu pacienci...<br/><small>(Atendado pri disponebleco de la nodo)</small>",SEARCHING:"Serĉanta...",FROM:"De",TO:"Al",COPY:"Kopii",LANGUAGE:"Lingvo",UNIVERSAL_DIVIDEND:"Universala dividendo",UD:"UD",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(malplena)",UID:"Pseŭdonimo",ENABLE:"Aktiva",DISABLE:"Malaktiva",RESULTS_LIST:"Rezultoj",RESULTS_COUNT:"{{count}} rezultoj",EXECUTION_TIME:"Plenumita en {{duration|formatDurationMs}}",SHOW_VALUES:"Afiŝi la signojn klare?",POPOVER_ACTIONS_TITLE:"Kromeblecoj",POPOVER_FILTER_TITLE:"Filtriloj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",POPOVER_SHARE:{TITLE:"Diskonigi",SHARE_ON_TWITTER:"Diskonigi ĉe Twitter",SHARE_ON_FACEBOOK:"Diskonigi ĉe Facebook",SHARE_ON_DIASPORA:"Diskonigi ĉe Diaspora*",SHARE_ON_GOOGLEPLUS:"Diskonigi ĉe Google+"},FILE:{DATE:"Dato:",TYPE:"Tipo:",SIZE:"Pezo:",VALIDATING:"Validiĝanta..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elekti la fonton:",BTN_PICTURE_GALLERY:"Bildaro",BTN_PICTURE_CAMERA:"<b>Kamerao</b>"},MENU:{HOME:"Hejmpaĝo",WOT:"Kontaro",CURRENCY:"Mono",ACCOUNT:"Mia konto",WALLETS:"Miaj monujoj",TRANSFER:"Elspezo",SCAN:"Skani",SETTINGS:"Parametroj",NETWORK:"Reto",TRANSACTIONS:"Miaj spezoj"},ABOUT:{TITLE:"Prie",LICENSE:"Programo <b>libera</b> (Licenco GNU AGPLv3).",LATEST_RELEASE:"Ekzistas <b>pli freŝdata versio</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Bonvolu ĝisdatigi {{'COMMON.APP_NAME'|translate}} (lasta versio: <b>v{{version}}</b>)",CODE:"Fonto-kodo:",OFFICIAL_WEB_SITE:"Oficiala retejo:",DEVELOPERS:"Programita de:",FORUM:"Forumo:",PLEASE_REPORT_ISSUE:"Ne hezitu sciigi al ni la renkontitajn fuŝaĵojn",REPORT_ISSUE:"Sciigi problemon",BTN_OPEN_DEV_WINDOW:"Malfermi la fenestron pri malfuŝigado"},HOME:{TITLE:"Cesium",WELCOME:"Bonvenon ĉe la programo Cesium!",MESSAGE:"Ricevu kaj sendu liberan monon {{currency|abbreviate}}",BTN_CURRENCY:"Esploru la monon {{name|abbreviate}}",BTN_ABOUT:"prie",BTN_HELP:"Reta helpo",REPORT_ISSUE:"fuŝaĵo",NOT_YOUR_ACCOUNT_QUESTION:'Vi ne posedas la konton <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Malkonektu tiun ĉi konton",CONNECTION_ERROR:'Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aŭ elektu alian nodon <a class="positive" ng-click="doQuickFix(\'settings\')">ĉe la parametroj</a>.'},SETTINGS:{TITLE:"Parametroj",DISPLAY_DIVIDER:"Afiŝado",STORAGE_DIVIDER:"Stokado",NETWORK_SETTINGS:"Reto",PEER:"Adreso de la nodo Duniter",PEER_SHORT:"Adreso de la nodo",PEER_CHANGED_TEMPORARY:"Adreso provizore uzata",USE_LOCAL_STORAGE:"Aktivigi lokan stokadon",USE_LOCAL_STORAGE_HELP:"Ebligas konservi viajn parametrojn",WALLETS_SETTINGS:"Miaj monujoj",USE_WALLETS_ENCRYPTION:"Sekurigi la liston?",USE_WALLETS_ENCRYPTION_HELP:"Ebligas sekurigi la liston de viaj monujoj (per ĉifrado), postulante aŭtentigado por aliri ilin.",ENABLE_HELPTIP:"Aktivigi la rilatigajn help-vezikojn",ENABLE_UI_EFFECTS:"Aktivigi la vid-efikojn",HISTORY_SETTINGS:"Miaj spezoj",DISPLAY_UD_HISTORY:"Afiŝi la produktitajn dividendojn?",TX_HISTORY_AUTO_REFRESH:"Aktualigi aŭtomate",TX_HISTORY_AUTO_REFRESH_HELP:"Aktualigas la saldon kaj la spezojn aŭtomate, por ĉiu nova bloko de la reto.",AUTHENTICATION_SETTINGS:"Aŭtentigado",KEEP_AUTH:"Aŭtomata malaŭtentigado",KEEP_AUTH_SHORT:"Malaŭtentigado",KEEP_AUTH_HELP:"Difinas la momenton, kiam la aŭtentigado estas forviŝita de la memoro.",KEEP_AUTH_OPTION:{NEVER:"Post ĉiu ago",SECONDS:"Post {{value}}s de neatktiveco",MINUTE:"Post {{value}}min de neatktiveco",MINUTES:"Post {{value}}min de neatktiveco",HOUR:"Post {{value}}h de neatktiveco",ALWAYS:"Fine de la sesio"},KEYRING_FILE:"Dosiero pri ŝlosilaro",KEYRING_FILE_HELP:'Ebligas <b>konektiĝi</b> aŭtomate por ĉiu ekuzo<br/>kaj eĉ <b>aŭtentiĝi</b> (nur se "Finiĝo de la aŭtentiĝo" estas agordita kiel "fine de la sesio").',REMEMBER_ME:"Memori min?",REMEMBER_ME_HELP:"Ebligas resti identigita de sesio al alia, loke konservante la publikan ŝlosilon.",PLUGINS_SETTINGS:"Krom-programoj",BTN_RESET:"Restarigi la originajn valorojn",EXPERT_MODE:"Aktivigi la spertan moduson",EXPERT_MODE_HELP:"Ebligas pli detalan afiŝadon.",BLOCK_VALIDITY_WINDOW:"Limtempo pri necerteco de la blokoj",BLOCK_VALIDITY_WINDOW_SHORT:"Limtempo pri necerteco",BLOCK_VALIDITY_WINDOW_HELP:"Limtempo antaŭ ol taksi, ke iu informo estas validigita",BLOCK_VALIDITY_OPTION:{NONE:"Neniu limtempo",N:"{{time | formatDuration}} ({{count}} blokoj)"},POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Adreso",HOST_HELP:"Adreso: servilo: konektujo",USE_SSL:"Sekurigita?",USE_SSL_HELP:"(SSL-ĉifrado)",BTN_SHOW_LIST:"Listo de la nodoj"}},BLOCKCHAIN:{HASH:"Haketo: {{hash}}",VIEW:{HEADER_TITLE:"Bloko #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Nuna bloko",TITLE:"Bloko #{{number|formatInteger}}",COMPUTED_BY:"Kalkulita de la nodo de",SHOW_RAW:"Vidi la kompletan dosieron",TECHNICAL_DIVIDER:"Teknikaj informoj",VERSION:"Versio de la daten-strukturo",HASH:"Kalkulita haketo",UNIVERSAL_DIVIDEND_HELP:"Mono kunproduktita de ĉiu el la {{membersCount}} membroj",EMPTY:"Neniu dateno en tiu ĉi bloko",POW_MIN:"Minimuma malfacileco",POW_MIN_HELP:"Malfacileco trudita por la haket-kalkulo",DATA_DIVIDER:"Datenoj",IDENTITIES_COUNT:"Novaj identecoj",JOINERS_COUNT:"Novaj membroj",ACTIVES_COUNT:"Revalidigoj",ACTIVES_COUNT_HELP:"Membroj revalidigintaj sian membrecon",LEAVERS_COUNT:"Membroj elirintaj",LEAVERS_COUNT_HELP:"Membroj ne plu dezirantaj atestaĵon",EXCLUDED_COUNT:"Membroj eksigitaj",EXCLUDED_COUNT_HELP:"Malnovaj membroj eksigitaj pro nerevalidiĝo aŭ manko de atestaĵoj",REVOKED_COUNT:"Nuligitaj identecoj",REVOKED_COUNT_HELP:"Tiuj kontoj ne plu povos esti membroj",TX_COUNT:"Spezoj",CERT_COUNT:"Atestaĵoj",TX_TO_HIMSELF:"Operacio pri monŝanĝo",TX_OUTPUT_UNLOCK_CONDITIONS:"Kondiĉoj por malblokado",TX_OUTPUT_OPERATOR:{AND:"kaj",OR:"aŭ"},TX_OUTPUT_FUNCTION:{SIG:"<b>Subskribo</b> de ",XHX:"<b>Pasvorto</b>, el kiu SHA256 =",CSV:"Blokita dum",CLTV:"Blokita ĝis"}},LOOKUP:{TITLE:"Blokoj",NO_BLOCK:"Neniu bloko",LAST_BLOCKS:"Lastaj blokoj:",BTN_COMPACT:"Densigi"}},CURRENCY:{VIEW:{TITLE:"Mono",TAB_CURRENCY:"Mono",TAB_WOT:"Reto de fido",TAB_NETWORK:"Reto",TAB_BLOCKS:"Blokoj",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} estas <b>libera mono</b>, kiu ekis {{firstBlockTime|formatFromNow}}. Ĝi nombras nun <b>{{N}} membrojn</b>, kiuj produktas kaj ricevas <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a> (UD), ĉiun {{dt|formatPeriod}}n.",NETWORK_RULES_DIVIDER:"Reguloj de la reto",CURRENCY_NAME:"Nomo de la mono",MEMBERS:"Nombro de membroj",MEMBERS_VARIATION:"Variado depost la lasta UD",MONEY_DIVIDER:"Mono",MASS:"Mona maso",SHARE:"Maso por membro",UD:"Universala Dividendo",C_ACTUAL:"Nuna kreskado",MEDIAN_TIME:"Horo de la blokĉeno",POW_MIN:"Minimuma nivelo pri malfacileco de kalkulo",MONEY_RULES_DIVIDER:"Reguloj de la mono",C_RULE:"Teoria kreskado celata",UD_RULE:"Kalkulo de la universala dividendo",DT_REEVAL:"Periodo de revalorigo de la UD",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Ĉiuj <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Dato de la unua revalorigo",SIG_QTY_RULE:"Nombro de necesaj atestaĵoj por fariĝi membro",SIG_STOCK:"Maksimuma nombro da senditaj atestaĵoj por membro",SIG_PERIOD:"Minimuma daŭro de atendado inter 2 sinsekvaj atestaĵoj senditaj de sama persono",SIG_WINDOW:"Limdaŭro por akcepti atestaĵon",SIG_VALIDITY:"Vivdaŭro de atestaĵo, kiu estis akceptita",MS_WINDOW:"Limdaŭro por akcepti aliĝ-peton kiel membron",MS_VALIDITY:"Vivdaŭro de aliĝo, kiu estis akceptita",STEP_MAX:"Maksimuma distanco, per la atestaĵoj, inter nova eniranto kaj la referencaj membroj",WOT_RULES_DIVIDER:"Reguloj de la reto de fido",SENTRIES:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro",SENTRIES_FORMULA:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro (formulo)",XPERCENT:"Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco",AVG_GEN_TIME:"Meza daŭro inter du blokoj",CURRENT:"nuna",MATH_CEILING:"PLAFONO",DISPLAY_ALL_RULES:"Afiŝi ĉiujn regulojn?",BTN_SHOW_LICENSE:"Vidi la licencon",WOT_DIVIDER:"Reto de fido"},LICENSE:{TITLE:"Licenco de la mono",BTN_DOWNLOAD:"Elŝuti la dosieron",NO_LICENSE_FILE:"Dosiero pri licenco ne trovita."}},NETWORK:{VIEW:{MEDIAN_TIME:"Horo de la blokĉeno",LOADING_PEERS:"Nodoj ŝarĝiĝantaj...",NODE_ADDRESS:"Adreso:",SOFTWARE:"Programo",WARN_PRE_RELEASE:"Antaŭ-versio (lasta stabila versio: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versio <b>{{version}}</b> disponebla",WS2PID:"Identigilo:",PRIVATE_ACCESS:"Privata aliro",POW_PREFIX:"Prefikso pri labor-pruvo:",ENDPOINTS:{BMAS:"Sekurigita interfaco (SSL)",BMATOR:"Reta interfaco TOR",WS2P:"Interfaco WS2P",ES_USER_API:"Nodo de datenoj Cesium+"}},INFO:{ONLY_SSL_PEERS:"La nodoj ne-SSL estas mis-afiŝitaj, ĉar Cesium funkcias laŭ moduso HTTPS."}},PEER:{PEERS:"Nodoj",SIGNED_ON_BLOCK:"Skribita en la bloko",MIRROR:"spegulo",MIRRORS:"Speguloj",MIRROR_PEERS:"Spegul-nodoj",PEER_LIST:"Listo de la nodoj",MEMBERS:"Membroj",MEMBER_PEERS:"Membro-nodoj",ALL_PEERS:"Ĉiuj nodoj",DIFFICULTY:"Malfacileco",API:"API",CURRENT_BLOCK:"Bloko #",POPOVER_FILTER_TITLE:"Filtrilo",OFFLINE:"Nekonektita",OFFLINE_PEERS:"Nekonektitaj nodoj",BTN_SHOW_PEER:"Vidi la nodon",VIEW:{TITLE:"Nodo",OWNER:"Apartenas al",SHOW_RAW_PEERING:"Vidi la samrangan dokumenton",SHOW_RAW_CURRENT_BLOCK:"Vidi la lastan blokon (kompleta strukturo)",LAST_BLOCKS:"Lastaj blokoj konataj",KNOWN_PEERS:"Konataj nodoj:",GENERAL_DIVIDER:"Ĝeneralaj informoj",ERROR:{LOADING_TOR_NODE_ERROR:"Neeblas ricevi la informojn de la nodo. La limdaŭro de atendado estas transpasita.",LOADING_NODE_ERROR:"Neeblas ricevi la informojn de la nodo"}}},WOT:{SEARCH_HELP:"Traserĉado (pseŭdo aŭ publika ŝlosilo)",SEARCH_INIT_PHASE_WARNING:"Dum la periodo de antaŭ-aliĝo, la traserĉado de la atendantaj aliĝoj <b>povas esti longa</b>. Bonvolu pacienci...",REGISTERED_SINCE:"Enskribita la",REGISTERED_SINCE_BLOCK:"Enskribita en la bloko #",NO_CERTIFICATION:"Neniu atestaĵo validigita",NO_GIVEN_CERTIFICATION:"Neniu atestaĵo sendita",NOT_MEMBER_PARENTHESIS:"(ne membro)",
-IDENTITY_REVOKED_PARENTHESIS:"(identeco nuligita)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(nuliĝanta)",EXPIRE_IN:"Finiĝo",NOT_WRITTEN_EXPIRE_IN:"Limdato<br/>de traktado",EXPIRED:"Finiĝinta",PSEUDO:"Pseŭdonimo",SIGNED_ON_BLOCK:"Sendita en la bloko #{{block}}",WRITTEN_ON_BLOCK:"Enskribita en la bloko #{{block}}",GENERAL_DIVIDER:"Ĝeneralaj informoj",NOT_MEMBER_ACCOUNT:"Simpla konto (ne membro)",NOT_MEMBER_ACCOUNT_HELP:"Temas pri simpla monujo, sen aliĝ-peto atendanta.",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_CERTIFY:"Atesti",BTN_YES_CERTIFY:"Jes, atesti",BTN_SELECT_AND_CERTIFY:"Nova atestaĵo",ACCOUNT_OPERATIONS:"Spezoj en la konto",VIEW:{POPOVER_SHARE_TITLE:"Identeco {{title}}"},LOOKUP:{TITLE:"Reto de fido",NEWCOMERS:"Novaj membroj",NEWCOMERS_COUNT:"{{count}} membroj",PENDING:"Atendantaj enskribiĝoj",PENDING_COUNT:"{{count}} atendantaj enskribiĝoj",REGISTERED:"Enskribita {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro depost {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Novaj membroj",BTN_PENDING:"Atendantaj enskribiĝoj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",NO_PENDING:"Neniu enskribiĝo atendanta.",NO_NEWCOMERS:"Neniu membro."},CONTACTS:{TITLE:"Kontaktoj"},MODAL:{TITLE:"Traserĉado"},CERTIFICATIONS:{TITLE:"{{uid}} - Atestaĵoj",SUMMARY:"Ricevitaj atestaĵoj",LIST:"Detalo pri la ricevitaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",RECEIVED:"Ricevitaj atestaĵoj",RECEIVED_BY:"Atestaĵoj ricevitaj de {{uid}}",ERROR:"Atestaĵoj erare ricevitaj",SENTRY_MEMBER:"Referenca membro"},OPERATIONS:{TITLE:"{{uid}} - Spezoj"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Senditaj atestaĵoj",SUMMARY:"Senditaj atestaĵoj",LIST:"Detalo pri la senditaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",SENT:"Senditaj atestaĵoj",SENT_BY:"Atestaĵoj senditaj de {{uid}}",ERROR:"Atestaĵoj erare senditaj"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Konektiĝo',SCRYPT_FORM_HELP:"Bonvolu tajpi viajn identigilojn.<br>Pensu kontroli, ke la publika ŝlosilo estas tiu de via konto.",PUBKEY_FORM_HELP:"Bonvolu tajpi publikan ŝlosilon de konto:",FILE_FORM_HELP:"Elektu la ŝlosilaro-dosieron uzotan:",SCAN_FORM_HELP:"Skani la QR-kodon de monujo.",SALT:"Sekreta identigilo",SALT_HELP:"Sekreta identigilo",SHOW_SALT:"Afiŝi la sekretan identigilon?",PASSWORD:"Pasvorto",PASSWORD_HELP:"Pasvorto",PUBKEY_HELP:"Publika ŝlosilo aŭ pseŭdonimo",NO_ACCOUNT_QUESTION:"Vi ankoraŭ ne havas konton?",HAVE_ACCOUNT_QUESTION:"Vi jam havas konton?",CREATE_ACCOUNT:"Krei konton...",CREATE_FREE_ACCOUNT:"Krei konton senpage",FORGOTTEN_ID:"Pasvorto forgesita?",ASSOCIATED_PUBKEY:"Publika ŝlosilo de la ŝlosilaro:",BTN_METHODS:"Aliaj metodoj",BTN_METHODS_DOTS:"Ŝanĝi metodon...",METHOD_POPOVER_TITLE:"Metodoj",MEMORIZE_AUTH_FILE:"Memorigi tiun ŝlosilaron por la daŭro de la sesio de retumado",SCRYPT_PARAMETERS:"Parametroj (Skripto):",AUTO_LOGOUT:{TITLE:"Informo",MESSAGE:'<i class="ion-android-time"></i> Vi estis <b>malkonektita</b> aŭtomate, pro tro longa senaktiveco.',BTN_RELOGIN:"Rekonektiĝi",IDLE_WARNING:"Vi estos malkonektita... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Sekreta identigilo kaj pasvorto",SCRYPT_ADVANCED:"Sperta salumado",FILE:"Dosiero pri ŝlosilaro",PUBKEY:"Publika ŝlosilo aŭ pseŭdonimo",SCAN:"Skani QR-kodon"},SCRYPT:{SIMPLE:"Malpeza salumado",DEFAULT:"Kutima salumado",SECURE:"Sekura salumado",HARDEST:"Plej sekura salumado",EXTREME:"Ekstrema salumado",USER:"Personigita salumado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Atendita strukturo de dosiero: <b>.yml</b> aŭ <b>.dunikey</b> (tipo PubSec, WIF aŭ EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Aŭtentigado',BTN_AUTH:"Aŭtentiĝi",GENERAL_HELP:"Bonvolu aŭtentiĝi:",EXPECTED_UID_HELP:'Bonvolu aŭtentiĝi ĉe la konto <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Bonvolu aŭtentiĝi ĉe la monujo <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Skani la QR-kodon de la <b>privata ŝlosilo</b> de la monujo."},ACCOUNT:{TITLE:"Mia konto",BALANCE:"Saldo",LAST_TX:"Lastaj spezoj validigitaj",BALANCE_ACCOUNT:"Konto-saldo",NO_TX:"Neniu spezo",SHOW_MORE_TX:"Afiŝi pli",SHOW_ALL_TX:"Afiŝi ĉion",TX_FROM_DATE:"(nuna limo je {{fromTime|medianFromNowShort}})",PENDING_TX:"Spezoj atendantaj traktadon",VALIDATING_TX:"Spezoj traktitaj, ne validigitaj",ERROR_TX:"Spezoj ne realigitaj",ERROR_TX_SENT:"Spezoj malsukcesintaj",PENDING_TX_RECEIVED:"Spezoj atendantaj ricevon",EVENTS:"Okazaĵoj",OUT_DISTANCED:"Viaj nunaj atestaĵoj venas de tro izolita grupo de la <a ng-click=\"showHelpModal('wot')\">Reto de Fido</a> (RdF): al la <a ng-click=\"showHelpModal('distance_rule')\">regulo de maksimuma distanco</a> vi ne konformiĝas.<br/>Vi devas akiri atestaĵojn venantajn de aliaj lokoj de la RdF, aŭ atendi ke tiu ĉi densiĝos.",WAITING_MEMBERSHIP:"Aliĝo-peto sendita. Atendanta akcepton.",WAITING_CERTIFICATIONS:"Vi devas <b>akiri {{needCertificationCount}} atestaĵo(j)n</b> por fariĝi membro kaj produkti la <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a>. Via konto tamen estas jam funkcianta, por ricevi kaj efektivigi pagojn.",WAITING_CERTIFICATIONS_HELP:'Por akiri viajn atestaĵojn, petu nur membrojn <b>kiuj sufiĉe konas vin</b>, kiel postulas <a ng-click="showLicenseModal()">la licenco de la mono</a>, kiun vi akceptis.<br/>Se vi ne konas sufiĉe da membroj, sciigu tion ĉe <a ng-click="openLink($event, $root.settings.userForumUrl)">la forumo por uzantoj</a>.',WILL_MISSING_CERTIFICATIONS:"Baldaŭ <b>mankos al vi atestaĵoj</b> (almenaŭ {{willNeedCertificationCount}} estas necesaj)",WILL_NEED_RENEW_MEMBERSHIP:"Via aliĝo kiel membro <b>estas finiĝonta {{membershipExpiresIn|formatDurationTo}}</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a> ĝis tiam.",NEED_RENEW_MEMBERSHIP:"Vi ne plu estas membro de la mono, ĉar <b>via aliĝo finiĝis</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vi ne plu estas membro de la mono, <b>pro manko da atestaĵoj</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NO_WAITING_MEMBERSHIP:"Neniu aliĝo-peto atendanta. Se vi deziras <b>fariĝi membro</b>, pensu <a ng-click=\"doQuickFix('membership')\">sendi la aliĝo-peton</a>.",CERTIFICATION_COUNT:"Ricevitaj atestaĵoj",CERTIFICATION_COUNT_SHORT:"Atestaĵoj",SIG_STOCK:"Senditaj atestaĵoj",BTN_RECEIVE_MONEY:"Enkasigi",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Aliri alian identecon...",BTN_FIX_MEMBERSHIP:"Resendi la aliĝo-peton...",BTN_MEMBERSHIP_RENEW:"Revalidigi la aliĝon",BTN_MEMBERSHIP_RENEW_DOTS:"Revalidigi la aliĝon...",BTN_MEMBERSHIP_OUT_DOTS:"Ĉesigi la aliĝon...",BTN_SECURITY_DOTS:"Konto kaj sekureco...",BTN_SHOW_DETAILS:"Afiŝi la teknikajn informojn",LOCKED_OUTPUTS_POPOVER:{TITLE:"Sumo blokita",DESCRIPTION:"Jen la kondiĉoj de malblokado de tiu sumo:",DESCRIPTION_MANY:"Tiu spezo entenas plurajn partojn, pri kiuj la kondiĉoj de malblokado estas:",LOCKED_AMOUNT:"Kondiĉoj por la sumo:"},NEW:{TITLE:"Kreado de konto",INTRO_WARNING_TIME:"La kreado de konto ĉe {{name|capitalize}} estas tre simpla. Bonvolu tamen dediĉi sufiĉe da tempo por ĝuste efektivigi tiun proceduron (por ne forgesi la identigilojn, pasvortojn, ktp.).",INTRO_WARNING_SECURITY:"Kontrolu ke la aparatoj, kiujn vi nun uzas (komputilo, tabuleto, telefono), <b>estas sekurigitaj kaj fidindaj</b>.",INTRO_WARNING_SECURITY_HELP:"Senvirusigilo ĝisdata, fajroŝirmilo aktivigita, sesio protektita per pasvorto aŭ PIN-kodo, ktp.",INTRO_HELP:"Alklaku <b>{{'COMMON.BTN_START'|translate}}</b> por ekigi la kreadon de konto. Vi estos gvidata paŝon post paŝo.",REGISTRATION_NODE:"Via aliĝo estos registrita tra la nodo Duniter <b>{{server}}</b>, kiu dissendos ĝin poste al la cetero de la mon-reto.",REGISTRATION_NODE_HELP:"Se vi ne fidas tiun nodon, bonvolu ŝanĝi ĝin <a ng-click=\"doQuickFix('settings')\">en la parametroj</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elektu la tipon de konto kreota:",MEMBER_ACCOUNT:"Membro-konto",MEMBER_ACCOUNT_TITLE:"Kreado de membro-konto",MEMBER_ACCOUNT_HELP:"Se vi ankoraŭ ne enskribiĝis kiel individuo (nur unu konto eblas por unu individuo). Tia konto ebligas kunprodukti la monon, ricevante <b> universalan dividendon</b> ĉiun {{parameters.dt|formatPeriod}}n.",WALLET_ACCOUNT:"Simpla monujo",WALLET_ACCOUNT_TITLE:"Kreado de monujo",WALLET_ACCOUNT_HELP:"Por ĉiuj aliaj kazoj, ekzemple se vi bezonas plian konton.<br/>Neniu universala dividendo estos kreita per tia konto.",SALT_WARNING:"Elektu vian sekretan identigilon.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu ĝin</b>: kaze de perdo, neniu alia povos aliri vian konton!",PASSWORD_WARNING:"Elektu pasvorton.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu tiun pasvorton</b: kaze de perdo, neniu alia povos aliri vian konton!",PSEUDO_WARNING:"Elektu pseŭdonimon.<br/>Ĝi utilas al la aliaj membroj, por identigi vin pli facile.<div class='hidden-xs'><br/>Ĝi <b>ne povos esti modifita</b>, sen rekrei konton.</div><br/><br/>Ĝi entenu <b>nek spacon, nek diakritan literon (kun supersigno, ktp.)</b>.<div class='hidden-xs'><br/>Ekzemple: <span class='gray'>NataljaBelulino, JohanoStelaro, ktp.</span>",PSEUDO:"Pseŭdonimo",PSEUDO_HELP:"Pseŭdonimo",SALT_CONFIRM:"Konfirmo",SALT_CONFIRM_HELP:"Konfirmo de la sekreta identigilo",PASSWORD_CONFIRM:"Konfirmo",PASSWORD_CONFIRM_HELP:"Konfirmo de la pasvorto",SLIDE_6_TITLE:"Konfirmo:",COMPUTING_PUBKEY:"Kalkulanta...",LAST_SLIDE_CONGRATULATION:"Vi tajpis ĉiujn necesajn informojn: Gratulon!<br/>Vi nun povas <b>sendi la peton por kreado</b> de la konto.</b><br/><br/>Por informo, la publika ŝlosilo ĉi-sube identigos vian estontan konton.<br/>Ĝi povos estis sciigita al aliuloj por ricevi iliajn pagojn.<br/><b>Ne estas devige</b> noti ĝin nun, vi ankaŭ povos fari tion poste.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo, la pasvorto kaj la pseŭdonimo ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras sendi tiun ĉi aliĝo-peton?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo kaj la pasvorto ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras daŭrigi per tiuj ĉi identigiloj?',CHECKING_PSEUDO:"Kontrolo...",PSEUDO_AVAILABLE:"Pseŭdonimo disponebla",PSEUDO_NOT_AVAILABLE:"Pseŭdonimo ne disponebla",INFO_LICENSE:"Antaŭ ol krei membro-konton, <b>bonvolu legi kaj akcepti la licencon</b> pri uzado de la mono:",BTN_ACCEPT:"Mi akceptas",BTN_ACCEPT_LICENSE:"Mi akceptas la licencon"},POPUP_REGISTER:{TITLE:"Elektu pseŭdonimon",HELP:"Pseŭdonimo estas deviga por fariĝi membro."},SELECT_IDENTITY_MODAL:{TITLE:"Elekto de la identeco",HELP:'Pluraj <b>malsamaj identecoj</b> estis senditaj, por la publika ŝlosilo <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Bonvolu elekti la dosierujon uzotan:'},SELECT_WALLET_MODAL:{TITLE:"Elekto de la monujo"},WALLET_LIST:{TITLE:"Miaj monujoj",BTN_NEW:"Aldoni monujon",BTN_DOWNLOAD:"Elŝuti la liston",BTN_IMPORT_FILE_DOTS:"Enporti el dosiero...",NO_WALLET:"Neniu kroma monujo",BTN_DELETE:"Forigi kroman monujon...",BTN_RENAME:"Renomi la monujon",EXPORT_FILENAME:"miaj_monujoj-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Sumo: ",EDIT_POPOVER:{TITLE:"Renomi la monujon",HELP:"Sciigu la novan nomon",NAME_HELP:"Nomo de la monujo"},IMPORT_MODAL:{TITLE:"Enporti monujojn",HELP:"Por <b>enporti monujojn</b>, bonvolu glitigi en la ĉi-suban zonon la dosieron pri la listo de monujoj, aŭ alklaki la zonon por serĉadi dosieron.",WALLET_COUNT:"<b>{{count}}</b> nova{{count > 1 ? 'j' : ''}} monujo{{count > 1 ? 'j' : ''}}",NO_NEW_WALLET:"Neniu nova monujo"}},SECURITY:{ADD_QUESTION:"Aldoni personigitan demandon",BTN_CLEAN:"Malplenigi",BTN_RESET:"Restartigi",DOWNLOAD_REVOKE:"Konservi mian dosieron pri nuligo",DOWNLOAD_REVOKE_HELP:"Disponi dosieron pri nuligo estas grave, ekzemple kaze de perdo de viaj identigiloj. Ĝi ebligas al vi <b>elirigi tiun konton el la reto de fido</b>, tiel ke ĝi refariĝu simpla monujo.",GENERATE_KEYFILE:"Krei mian dosieron pri ŝlosilaro...",GENERATE_KEYFILE_HELP:"Kreas dosieron, kiu ebligas al vi aŭtentiĝi sen tajpi viajn identigilojn.<br/><b>Atenton:</b> tiu dosiero entenos vian konto-ŝlosilaron (publikan kaj sekretan ŝlosilojn); do tre gravas meti ĝin en sekuran lokon!",KEYFILE_FILENAME:"ŝlosilaro-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformi en membro-konton...",MEMBERSHIP_IN_HELP:"Ebligas <b>transformi</b> simplan monujo-konton <b>en membro-konton</b>, sendante aliĝo-peton. Utilas nur se vi ne havas jam alian membro-konton.",SEND_IDENTITY:"Publikigi sian identecon...",SEND_IDENTITY_HELP:"Ebligas kunligi pseŭdonimon kun tiu ĉi konto, sed <b>sen fari aliĝo-peton</b> por iĝi membro. Tiu kunligo kutime ne utilas, ĉar la valideco de tiu kunligo de pseŭdonimo estas limigita en la tempo.",HELP_LEVEL:"Por krei konserv-dosieron pri viaj identigiloj, elektu <strong> almenaŭ {{nb}} demandojn:</strong>",LEVEL:"Nivelo de sekureco",LOW_LEVEL:'Malforta <span class="hidden-xs">(2 demandoj minimume)</span>',MEDIUM_LEVEL:'Meza <span class="hidden-xs">(4 demandoj minimume)</span>',QUESTION_1:"Kiel nomiĝis via plej bona amik.in.o, kiam vi estis adoleskant.in.o?",QUESTION_2:"Kiel nomiĝis via unua hejm-besto?",QUESTION_3:"Kiun pladon vi unue lernis kuiradi?",QUESTION_4:"Kiun filmon vi unue spektis en kinejo?",QUESTION_5:"Kien vi iris la unuan fojon, kiam vi vojaĝis per aviadilo?",QUESTION_6:"Kiel nomiĝis via preferata instruist.i.no en bazlernejo?",QUESTION_7:"Kio estus laŭ vi la ideala profesio?",QUESTION_8:"Kiun libron por infanoj vi preferas?",QUESTION_9:"Kio estis la marko de via unua veturilo?",QUESTION_10:"Kio estis via kromnomo, kiam vi estis infano?",QUESTION_11:"Kiun rolant.in.on aŭ aktor.in.on vi preferis en kino, kiam vi estis student.in.o?",QUESTION_12:"Kiun kanzonist.ino.n aŭ muzikgrupon vi preferis, kiam vi estis student.in.o?",QUESTION_13:"En kiu urbo renkontiĝis viaj gepatroj?",QUESTION_14:"Kiel nomiĝis via unua ĉefo?",QUESTION_15:"Kiel nomiĝas la strato, kie vi kreskis?",QUESTION_16:"Kiel nomiĝas la marbordo, kie vi unuafoje baniĝis?",QUESTION_17:"Kiun muzik-albumon vi unuafoje aĉetis?",QUESTION_18:"Kiel nomiĝas via preferata sporto-teamo?",QUESTION_19:"Kio estis la profesio de via avo?",RECOVER_ID:"Retrovi mian pasvorton...",RECOVER_ID_HELP:"Se vi disponas <b>konserv-dosieron pri viaj identigiloj</b>, vi povas retrovi ilin respondante ĝuste viajn personajn demandojn.",REVOCATION_WITH_FILE:"Nuligi mian membro-konton...",REVOCATION_WITH_FILE_DESCRIPTION:"Se vi <b>definitive perdis viajn identigilojn</b> pri via membro-konto (aŭ ke la sekureco de la konto estas endanĝerigita), vi povas uzi <b>la dosieron pri nuligo</b> de la konto por <b>trudi ties definitivan eliradon el la reto de fido</b>.",REVOCATION_WITH_FILE_HELP:"Por <b>definitive nuligi</b> membro-konton, bonvolu glitigi en la ĉi-suban zonon vian dosieron pri nuligo, aŭ alklaki la zonon por serĉadi dosieron.",REVOCATION_WALLET:"Nuligi tiun ĉi konton tuj",REVOCATION_WALLET_HELP:"Peti la nuligon de via identeco estigas la <b>eliradon el la reto de fido</b> (definitivan por la pseŭdonimo kaj la publika ŝlosilo kunligitaj). La konto ne plu povos produkti Universalan Dividendon.<br/>Vi tamen daŭre povos konektiĝi al ĝi, kiel al simpla monujo.",REVOCATION_FILENAME:"nuligo-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Konservi miajn identigilojn...",SAVE_ID_HELP:"Kreado de konserv-dosiero, por <b>retrovi vian pasvorton</b> (kaj la sekretan identigilon) <b>kaze de forgeso</b>. La dosiero estas <b>sekurigita</b> (ĉifrita) dank'al personaj demandoj.",STRONG_LEVEL:'Forta <span class="hidden-xs ">(6 demandoj minimume)</span>',TITLE:"Konto kaj sekureco",KEYFILE:{PUBSEC_FORMAT:"Strukturo PubSec.",PUBSEC_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron laŭ tre simpla maniero. Ĝi kongruas aparte kun Cesium, ğannonce kaj Duniter.<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",WIF_FORMAT:"Strukturo WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron inkluzivante en ĝin kontrol-sumon por kontroli la sendifektecon de la dosiero. Ĝi kongruas aparte kun la paper-monujoj (Duniter paper wallet).<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",EWIF_FORMAT:"Strukturo EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron <b>laŭ ĉifrita maniero</b> dank'al sekreta frazo elektita de vi. Ĝi ankaŭ inkluzivas kontrol-sumon por kontroli la sendifektecon de la dosiero.<br/><b>Atenton:</b> Zorgu, ke vi ĉiam rememoru vian sekretan frazon!",PASSWORD_POPUP:{TITLE:"Ĉifrita dosiero pri ŝlosilaro",HELP:"Bonvolu indiki la la sekretan frazon:",PASSWORD_HELP:"Sekreta frazo"},ERROR:{BAD_PASSWORD:"Sekreta frazo malĝusta",BAD_CHECKSUM:"Kontrol-sumo malĝusta"}}},FILE_NAME:"{{currency}} - Konto-tabelo {{pubkey|formatPubkey}} je {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Dato",AMOUNT:"Sumo",COMMENT:"Komento"}},TRANSFER:{TITLE:"Elspezo",SUB_TITLE:"Fari elspezon",SUB_TITLE_ALL:"Malplenigi la konton",FROM:"De",TO:"Al",AMOUNT:"Sumo",AMOUNT_HELP:"Sumo",COMMENT:"Komento",COMMENT_HELP:"Komento",BTN_SEND:"Sendi",BTN_ADD_COMMENT:"Aldoni komenton",REST:"Resto de la konto",REST_TO:"al",WARN_COMMENT_IS_PUBLIC:"Bonvolu noti, ke <b>la komentoj estas publikaj</b> (ne ĉifritaj).",MODAL:{TITLE:"Elspezo"}},ERROR:{UNKNOWN_URI_FORMAT:"URI-strukturo nekonata",PUBKEY_INVALID_CHECKSUM:"Publika ŝlosilo nevalida (bad checksum).",POPUP_TITLE:"Eraro",UNKNOWN_ERROR:"Eraro nekonata",CRYPTO_UNKNOWN_ERROR:"Via retumilo ŝajnas ne kongrua kun la kriptografiaj funkcioj.",DOWNLOAD_KEYFILE_FAILED:"Malsukceso por la kreado de la dosiero pri ŝlosilaro.",EQUALS_TO_PSEUDO:"Devas esti malsama ol la pseŭdonimo",EQUALS_TO_SALT:"Devas esti malsama ol la sekreta identigilo",FIELD_REQUIRED:"Deviga kampo",FIELD_TOO_SHORT:"Signaro tro mallonga",FIELD_TOO_SHORT_WITH_LENGTH:"Signaro tro mallonga ({{minLength}} signoj minimume)",FIELD_TOO_LONG:"Signaro tro longa",FIELD_TOO_LONG_WITH_LENGTH:"Signaro tro longa ({{maxLength}} signoj maksimume)",FIELD_MIN:"Minimuma longeco: {{min}}",FIELD_MAX:"Maksimuma longeco: {{max}}",FIELD_ACCENT:"Diakritaj literoj kaj komoj ne permesataj",FIELD_NOT_NUMBER:"Nombra valoro atendata",FIELD_NOT_INT:"Entjera nombro atendata",FIELD_NOT_EMAIL:"Retadreso nevalida",PASSWORD_NOT_CONFIRMED:"Ne kongruas kun la pasvorto",SALT_NOT_CONFIRMED:"Ne kongruas kun la sekreta identigilo",SEND_IDENTITY_FAILED:"Aliĝo malsukcesa",SEND_CERTIFICATION_FAILED:"Atestado malsukcesa",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vi ne povas efektivigi atestadon, ĉar via konto <b>ne estas membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vi ne povas efektivigi atestadon, ĉar via konto ankoraŭ ne estas membro.<br/><br/>Ankoraŭ mankas al vi atestaĵoj, aŭ tiuj ĉi ankoraŭ ne estis validigitaj.",NOT_MEMBER_FOR_CERTIFICATION:"Via konto ankoraŭ ne estas membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Konto ne atestebla. Neniu aliĝo-peto estis farita, aŭ la aliĝo ne estis revalidigita.",LOGIN_FAILED:"Eraro dum konektiĝo.",LOAD_IDENTITY_FAILED:"Eraro por ŝarĝi la identecon.",LOAD_REQUIREMENTS_FAILED:"Eraro por ŝarĝi la antaŭ-necesaĵoj de la identeco.",SEND_MEMBERSHIP_IN_FAILED:"Malsukceso pri la provado eniri la komunumon.",SEND_MEMBERSHIP_OUT_FAILED:"Malsukceso pri la ĉesigo de la aliĝo.",REFRESH_WALLET_DATA:"Malsukceso pri la ĝisdatigo de la monujo.",GET_CURRENCY_PARAMETER:"Malsukceso por ricevi la regulojn de la mono.",GET_CURRENCY_FAILED:"Ne eblis ŝarĝi la monon. Bonvolu reprovi pli poste.",SEND_TX_FAILED:"Elspezado malsukcesa.",ALL_SOURCES_USED:"Bonvolu atendi la kalkulon de la venonta bloko (ĉiuj viaj monfontoj estis uzitaj).",NOT_ENOUGH_SOURCES:"Ne sufiĉe da mono por sendi tiun ĉi sumon per ununura spezo.<br/>Maksimuma sumo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Malsukceso por krei la membro-konton.",RESTORE_WALLET_DATA_ERROR:"Malsukceso por reŝarĝi la parametrojn de la loka stokaĵo",LOAD_WALLET_DATA_ERROR:"Malsukceso por ŝarĝi la datenojn de la monujo.",COPY_CLIPBOARD_FAILED:"Ne eblis kopii la valoron.",TAKE_PICTURE_FAILED:"Malsukceso por ricevi la foton.",SCAN_FAILED:"Malsukceso por skani la QR-kodon.",SCAN_UNKNOWN_FORMAT:"Kodo nerekonata.",WOT_LOOKUP_FAILED:"Serĉado malsukcesa.",LOAD_PEER_DATA_FAILED:"Ne eblis legi la nodon Duniter. Bonvolu reprovi poste.",NEED_LOGIN_FIRST:"Bonvolu unue konektiĝi.",AMOUNT_REQUIRED:"La monsumo estas deviga.",AMOUNT_NEGATIVE:"Negativa sumo nepermesata.",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa.",INVALID_NODE_SUMMARY:"Nodo neatingebla aŭ adreso nevalida.",INVALID_USER_ID:"La pseŭdonimo devas enteni nek spacon nek signon specialan aŭ kun supersigno.",INVALID_COMMENT:"La kampo 'referenco' ne devas enteni literojn kun supersigno.",INVALID_PUBKEY:"La publika ŝlosilo ne havas la atenditan strukturon.",INVALID_PUBKEY_CHECKSUM:"Kontrol-sumo nevalida.",IDENTITY_REVOKED:"Tiu ĉi identeco <b>estis nuligita</b>. Ĝi ne plu povas fariĝi membro.",IDENTITY_REVOKED_WITH_TIME:"Tiu ĉi identeco <b>estis nuligita {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Ĝi ne plu povas fariĝi membro.",IDENTITY_PENDING_REVOCATION:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon. La atestado estas do malaktivigita.",IDENTITY_INVALID_BLOCK_HASH:"Tiu ĉi aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto): tiu persono devas refari sian aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_EXPIRED:"La publikigo de tiu ĉi identeco finiĝis: tiu persono devas fari novan aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_SANDBOX_FULL:"La nodo Duniter uzata de Cesium ne plu povas ricevi novajn identecojn, ĉar ĝia atendo-vico estas plena.<br/><br/>Bonvolu reprovi poste aŭ ŝanĝi la nodon (per la menuo <b>Parametroj</b>).",IDENTITY_NOT_FOUND:"Identeco ne trovita.",IDENTITY_TX_FAILED:"Malsukceso por ŝarĝi la spezojn.",WOT_PENDING_INVALID_BLOCK_HASH:"Aliĝo ne valida.",WALLET_INVALID_BLOCK_HASH:"Via aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto).<br/>Vi devas <a ng-click=\"doQuickFix('fixMembership')\">sendi novan peton</a> por solvi tiun ĉi problemon.",WALLET_IDENTITY_EXPIRED:"La publikigo de <b>via identeco finiĝis</b>.<br/>Vi devas <a ng-click=\"doQuickFix('fixIdentity')\">publikigi denove vian identecon</a> por solvi tiun ĉi problemon.",WALLET_REVOKED:"Via identeco estis <b>nuligita</b>: nek via pseŭdonimo nek via publika ŝlosilo povos esti uzata en la estonteco por membro-konto.",WALLET_HAS_NO_SELF:"Via identeco devas unue esti publikigita, kaj ne esti finiĝinta.",AUTH_REQUIRED:"Aŭtentigado necesa.",AUTH_INVALID_PUBKEY:'La atendata ŝlosilo estas <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identigilo aŭ pasvorto nevalida.",AUTH_INVALID_FILE:"Dosiero pri ŝlosilaro nevalida.",AUTH_FILE_ERROR:"Malsukceso por malfermi la dosieron pri ŝlosilaro.",IDENTITY_ALREADY_CERTIFY:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado daŭre validas (finiĝo {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado atendas traktadon (limdato de traktado {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Atestado neebla",LOAD_NEWCOMERS_FAILED:"Malsukceso por ŝarĝi la novajn membrojn.",LOAD_PENDING_FAILED:"Malsukceso por ŝarĝi la atendantajn aliĝojn.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro</b> por rajti efektivigi tiun ĉi agon.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro (aŭ eksa membro)</b> por rajti efektivigi tiun ĉi agon.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Via identeco devas <b>jam esti publikigita</b>, por ke vi rajtu efektivigi tiun ĉi agon.",GET_BLOCK_FAILED:"Malsukceso por ricevi la blokon.",INVALID_BLOCK_HASH:"Bloko ne trovita (haketo malsama)",DOWNLOAD_REVOCATION_FAILED:"Malsukceso por elŝuti la dosieron pri nuligo.",REVOCATION_FAILED:"Malsukceso pri nuligo.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Sekreta identigilo aŭ pasvorto malĝusta.",RECOVER_ID_FAILED:"Malsukceso por ricevi la identigilojn",LOAD_FILE_FAILED:"Malsukceso por ŝarĝi la dosieron",NOT_VALID_REVOCATION_FILE:"Dosiero pri nuligo ne valida (malĝusta strukturo de dosiero)",NOT_VALID_SAVE_ID_FILE:"Dosiero pri konservado ne valida (malĝusta strukturo de dosiero)",NOT_VALID_KEY_FILE:"Dosiero pri ŝlosilaro ne valida (strukturo ne rekonata)",EXISTING_ACCOUNT:"Viaj identigiloj rilatas al jam ekzistanta konto, kies <a ng-click=\"showHelpModal('pubkey')\">publika ŝlosilo</a> estas:",EXISTING_ACCOUNT_REQUEST:"Bonvolu modifi viajn identigilojn, por ke ili rilatu al ne uzata konto.",GET_LICENSE_FILE_FAILED:"La ricevo de la dosiero pri licenco ne eblis.",CHECK_NETWORK_CONNECTION:"Neniu nodo ŝajnas atingebla.<br/><br/>Bonvolu <b>kontroli vian retkonekton</b>.",ISSUE_524_TX_FAILED:"Malsukcesa elspezo.<br/><br/>Mesaĝo estis sendita al la programistoj por faciligi la solvadon de la problemo. <b>Dankon pro via helpo</b>.",ADD_SECONDARY_WALLET_FAILED:"Malsukceso por aldoni kroman monujon.",UPDATE_WALLET_LIST_FAILED:"Malsukceso por ĝisdatigi la kromajn monujojn.",LOAD_WALLET_LIST_FAILED:"Malsukceso por ŝarĝi la kromajn monujojn.",SAVE_WALLET_LIST_FAILED:"Malsukceso por konservi la kromajn monujojn.",COULD_NOT_ADD_MAIN_WALLET:"Tiu ĉi monujo <b>rilatas al la ĉefa konto</b>, kun kiu vi estas konektita.<br/>Ne eblas aldoni ĝin kiel kroman monujon.",COULD_NOT_ADD_EXISTING_WALLET:"Monujo jam ekzistanta en la listo.",UNKNOWN_WALLET_ID:"Kroma monujo nekonata.",RESTORE_WALLET_LIST_FAILED:"Malsukceso por restarigi la kromajn monujojn.",INVALID_FILE_FORMAT:"Strukturo de dosiero nevalida."},INFO:{POPUP_TITLE:"Informo",CERTIFICATION_DONE:"Atestaĵo sendita",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa",TRANSFER_SENT:"Elspezo sendita",COPY_TO_CLIPBOARD_DONE:"Kopiita en la memoreto",MEMBERSHIP_OUT_SENT:"Eksiĝo sendita",NOT_NEED_MEMBERSHIP:"Vi jam estas membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Al tiu ĉi identeco baldaŭ mankos atestaĵoj (almenaŭ {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Tiu ĉi identeco ne sendis aliĝo-peton. Tion ĝi devos fari, se ĝi deziras fariĝi membro.",HAS_ALTERNATIVE_IDENTITIES:"Ekzistas <b>pluraj identecoj</b> ligitaj kun tiu ĉi publika ŝlosilo. <b>Antaŭ ĉia atestado</b>, pensu <a ng-click=\"doQuickFix('showSelectIdentities')\">trarigardi la aliajn identecojn</a> por elekti la ĝustan, aŭ kontaktu la posedanton de la konto.",REVOCATION_SENT:"Nuligo sendita",REVOCATION_SENT_WAITING_PROCESS:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon.",FEATURES_NOT_IMPLEMENTED:"Tiu ĉi funkciaro ankoraŭ estas programiĝanta.<br/>Kial ne <b>kontribui al Cesium</b>, por ekhavi ĝin pli rapide? ;)",EMPTY_TX_HISTORY:"Neniu spezo elportota"},CONFIRM:{POPUP_TITLE:"<b>Konfirmo</b>",POPUP_WARNING_TITLE:"<b>Averto</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Averto pri sekureco</b>',CERTIFY_RULES_TITLE_UID:"Atesti {{uid}}",CERTIFY_RULES:'<b class="assertive">NE atestu</b> konton, se vi pensas ke:<br/><br/><ul><li>1.) ĝi ne rilatas al persono <b>fizika kaj vivanta</b>.<li>2.) ĝia posedanto <b>havas alian konton</b> jam atestitan.<li>3.) ĝia posedanto malobservas (vole aŭ ne) la regulon 1 aŭ 2 (ekzemple atestante falsajn kontojn aŭ duoblajn).</ul><br/><b>Ĉu vi certas,</b> ke vi tamen volas atesti tiun ĉi identecon?',FULLSCREEN:"Afiŝi la programon plen-ekrane?",EXIT_APP:"Fermi la programon?",TRANSFER:"<b>Resumo de la elspezo</b> :<br/><br/><ul><li> - De: {{from}}</li><li> - Al: <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",TRANSFER_ALL:"<b>Resumo de la elspezo</b>:<br/><br/><ul><li> - De : {{from}}</li><li> - Al : <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> al <b>{{restTo}}</b></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",MEMBERSHIP_OUT:"Tiu ĉi ago estas <b>neinversigebla</b>.<br/></br/>Ĉu vi certas, ke vi volas <b>nuligi vian membro-konton</b>?",MEMBERSHIP_OUT_2:"Tiu ĉi ago estas <b>neinversigebla</b> !<br/><br/>Ĉu vi vere certas, ke vi volas <b>nuligi vian aliĝon</b> kiel membron?",LOGIN_UNUSED_WALLET_TITLE:"Tajperaro?",LOGIN_UNUSED_WALLET:"La konektita konto ŝajnas <b>neaktiva</b>.<br/><br/>Temas probable pri <b>tajperaro</b> en viaj konekto-identigiloj. Bonvolu rekomenci, kontrolante ke <b>la publika ŝlosilo estas tiu de via konto</b>.",FIX_IDENTITY:"La pseŭdonimo <b>{{uid}}</b> estos denove publikigita, anstataŭigante la malnovan publikigon, kiu finiĝis.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",FIX_MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos resendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos sendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",RENEW_MEMBERSHIP:"Via aliĝo kiel membro tuj estos revalidigita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",REVOKE_IDENTITY:"Vi estas <b>nuligonta definitive tiun ĉi identecon</b>.<br/><br/>La publika ŝlosilo kaj la ligita pseŭdonimo <b>neniam plu povos esti uzataj</b> (por membro-konto). <br/></br/><b>Ĉu vi certas</b>, ke vi volas definitive nuligi tiun ĉi konton?",REVOKE_IDENTITY_2:"Tiu ĉi ago estas <b>neinversigebla</b>!<br/><br/>Ĉu vi vere certas, ke vi volas <b>definitive nuligi</b> tiun ĉi konton?",NOT_NEED_RENEW_MEMBERSHIP:"Via aliĝo ne bezonas esti revalidigita (ĝi finiĝos nur post {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Ĉu vi certas</b>, ke vi volas revalidigi vian aliĝon?",SAVE_BEFORE_LEAVE:"Ĉu vi volas <b>konservi viajn modifojn</b> antaŭ ol eliri el la paĝo?",SAVE_BEFORE_LEAVE_TITLE:"Modifoj ne registritaj",LOGOUT:"Ĉu vi certas, ke vi volas malkonektiĝi?",USE_FALLBACK_NODE:"Nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la nodon <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La spezo estis forĵetita, pro konata anomalio (petslipo #524) sed <b>ne ripetita</b>.<br/><br/>Por helpi la programistojn korekti tiun eraron, <b>ĉu vi akceptas la sendadon de viaj protokolaj dosieroj</b> per mesaĝo?<br/><small>(neniu konfidenca dateno estas sendita)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Dosiero pri nuligo</b>",POPUP_REVOKE_MESSAGE:"Por sekurigi vian konton, bonvolu elŝuti la <b>dokumenton pri konto-nuligo</b>. Ĝi ebligos al vi eventuale nuligi vian konton (kaze de konto-ŝtelo, ŝanĝo de identigilo, konto erare kreita, ktp.).<br/><br/><b>Bonvolu stoki ĝin en sekura loko.</b>"},HELP:{TITLE:"Ret-helpo",JOIN:{SECTION:"Enskribiĝo",SALT:'La sekreta identigilo estas tre grava. Ĝi utilas por miksi la pasvorton, antaŭ ol ĝi servos por kalkuli la <span class="text-italic">publikan ŝlosilon</span> de via konto (ties numeron) kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas nuntempe planita por retrovi ĝin kaze de perdo.<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona sekreta identigilo devas esti sufiĉe longa (kun almenaŭ 8 signoj) kaj kiel eble plej originala.',
-PASSWORD:"La pasvorto estas tre grava. Kun la sekreta identigilo, ĝi servas por kalkuli la numeron (la publikan ŝlosilon) de via konto, kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas planita por retrovi ĝin kaze de perdo (krom se oni generas konserv-dosieron).<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona pasvorto entenas (ideale) almenaŭ 8 signojn, inter kiuj estas almenaŭ unu majusklo kaj unu cifero.",PSEUDO:'La pseŭdonimo estas utila nur kaze de enskribiĝo kiel <span class="text-italic">membro</span>. Ĝi ĉiam estas ligita kun monujo (tra ĝia <span class="text-italic">publika ŝlosilo</span>).<br/>Ĝi estas publikigita en la reto, tiel ke la aliaj uzantoj povu identigi ĝin, atesti ĝin aŭ sendi monon al ĝia konto.<br/>Pseŭdonimo devas esti unika ene de la membroj (<u>nunaj</u> kaj eksaj).'},LOGIN:{SECTION:"Konekto",PUBKEY:"Publika ŝlosilo de la ŝlosilaro",PUBKEY_DEF:'La publika ŝlosilo de la ŝlosilaro estas kreita per la tajpitaj identigiloj (iuj ajn), sen ke ili necese rilatu al konto jam uzata.<br/><b>Atente kontrolu, ke la publika ŝlosilo estas tiu de via konto</b>. Alikaze, vi estos konektita al konto probable neniam uzita, la risko de kolizio kun ekzistanta konto estante tre eta.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',METHOD:"Konekto-metodoj",METHOD_DEF:'Pluraj eblecoj disponeblas por konekti vin al monujo:<br/> - La konekto <b>per salumado (simpla aŭ sperta)</b> miksas vian pasvorton dank\'al la sekreta identigilo, por limigi la provojn de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">kodrompado per kruda forto</a> (ekzemple per konataj vortoj.<br/> - La konekto <b>per publika ŝlosilo</b> evitigas tajpi viajn identigilojn, kiuj estos petataj de vi, nur kiam venos la momento dum operacio ĉe la konto.<br/> - La konekto <b>per dosiero pri ŝlosilaro</b> legas la ŝlosilojn (publikan kaj privatan) de la konto, per dosiero, sen la bezono tajpi identigilojn. Pluraj strukturoj de dosiero eblas.'},GLOSSARY:{SECTION:"Glosaro",PUBKEY_DEF:'Publika ŝlosilo identigas monujon, kiu povas identigi membron aŭ rilati al anonima monujo. Ĉe Cesium la publika ŝlosilo estas kalkulita (implicite) dank\'al la sekreta identigilo kaj la pasvorto.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',MEMBER:"Membro",MEMBER_DEF:'Membro estas homa persono fizika kaj vivanta, kiu deziras libere partopreni en la mona komunumo. Li/ŝi kunproduktas universalan dividendon, laŭ periodo kaj sumo tiel difinitaj kiel en la <span class="text-italic">reguloj de la mono</span>',CURRENCY_RULES:"Reguloj de la mono",CURRENCY_RULES_DEF:'La reguloj de la mono estas difinitaj definitive. Ili fiksas la funkciadon de la mono: la kalkulon de la universala dividendo, la nombron de necesaj atestaĵoj por esti membro, la maksimuman nombron da atestaĵoj, kiujn povas doni unu membro, ktp. <a href="#/app/currency">Vidi la nuntempajn regulojn</a>.<br/>La nemodifo de la reguloj tra la tempo eblas per uzado de <span class="text-italic">Blokĉeno</span>, kiu entenas kaj plenumas tiujn regulojn, kaj konstante kontrolas ties ĝustan aplikadon.',BLOCKCHAIN:'Ĉeno de blokoj (<span class="text-italic">Blokchain/Blokĉeno</span>)',BLOCKCHAIN_DEF:'La Blokĉeno estas malcentrigita sistemo, kiu, kaze de Duniter, servas por enteni kaj plenumi la <span class="text-italic">regulojn de la mono</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">Scii pli pri Duniter</a> kaj la funkciado de ties blokĉeno.',UNIVERSAL_DIVIDEND_DEF:'La Universala Dividendo (UD) estas la kvanto de mono kunkreita de ĉiu membro, laŭ la periodo kaj kalkulo difinitaj en la <span class="text-italic">reguloj de la mono</span>.<br/>Por ĉiu perioda dato, la membroj ricevas en sian konton la saman kvanton da nova mono.<br/><br/>La UD spertas regulan kreskon, por resti justa inter la membroj (nunaj kaj venontaj), kalkulitan depende de la meza vivespero, kiel estas demonstrite en la Teorio Relativa pri la Mono (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Scii pli pri la TRM</a> kaj la liberaj monoj.',WOT:"Reto de Fido (RdF)",WOT_DEF:"La Reto de Fido konsistas el la tuto de la membroj de la mono, kaj el la atesto-ligoj, kiuj kunligas ilin.",DISTANCE_RULE:"Regulo pri distanco",DISTANCE_RULE_DEF:"La regulo pri distanco de la Reto de Fido difinas <b>maksimuman distancon nepran</b> inter petanto kaj minimuma nombro da referencaj membroj (aŭ centraj membroj). Tiu distanco estas kalkulita uzante la ligojn inter atestaĵoj."},TIP:{MENU_BTN_CURRENCY:"La menuo <b>{{'MENU.CURRENCY'|translate}}</b> ebligas konsulti la <b>regulojn de la mono</b> kaj ties staton.",CURRENCY_WOT:"La <b>nombro de membroj</b> montras la gravecon de la komunumo kaj ebligas <b>sekvi ties evoluon</b>.",CURRENCY_MASS:"Sekvu ĉi tie la <b>ĉioman kvanton da mono</b> ekzistanta kaj ties <b>mezan distribuon</b> por membro.<br/><br/>Tio ĉi ebligas taksi la <b>gravecon de iu sumo</b>, kompare kun tio, kion <b>posedas la aliuloj</b> en sia konto (mezume).",CURRENCY_UNIT_RELATIVE:"La unuo uzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumoj en {{currency|capitalize}} estis dividitaj per la <b> Universala Dividendo</b> (UD).<br/><br/><small>Tiu relativa unuo estas <b>trafa</b>, ĉar stabila malgraŭ la kvanto de mono, kiu kreskas seninterrompe.</small>",CURRENCY_CHANGE_UNIT:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b> (prefere ol en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, tio estas rilate al la Universala Dividendo (la sumo kunproduktita de ĉiu membro).",CURRENCY_RULES:"La <b>reguloj</b> de la mono fiksas ties funkciadon <b>ĝustan kaj antaŭvideblan</b>.<br/><br/>Vera DNA de la mono, ili igas sian monan kodon <b>legebla kaj travidebla</b>.",MENU_BTN_NETWORK:"La menuo <b>{{'MENU.NETWORK'|translate}}</b> ebligas konsulti la staton de la reto.",NETWORK_BLOCKCHAIN:"Ĉiuj operacioj pri la mono estas registritaj en granda konto-libro <b>publika kaj nefalsigebla</b>, ankaŭ nomata <b>blokĉeno</b> (<em>BlockChain</em> en la angla).",NETWORK_PEERS:"La <b>nodoj</b> videblaj ĉi tie rilatas al la <b>komputiloj, kiuj ĝisdatigas kaj kontrolas</b> la blokĉenon.<br/><br/>Ju pli estas nodoj, des pli la mono havas administradon <b>malcentrigitan</b> kaj fidindan.",NETWORK_PEERS_BLOCK_NUMBER:"Tiu ĉi <b>numero</b> (verda) indikas la <b>lastan blokon validigitan</b> por tiu ĉi nodo (lasta paĝo skribita en la granda konto-libro).<br/><br/>La verda koloro indikas, ke tiu ĉi bloko estas validigita ankaŭ de <b>la plej multaj el la aliaj nodoj</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ĉiu membro</b>, ekipita per komputilo kun interreto, <b>povas partopreni aldonante nodon</b>. Sufiĉas <b>instali la programon Duniter</b> (libera kaj senpaga). <a href="{{installDocUrl}}" target="_system">Vidi la gvidilon pri instalado &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"La menuo <b>{{'ACCOUNT.TITLE'|translate}}</b> ebligas aliri la administradon de via konto.",MENU_BTN_ACCOUNT_MEMBER:"Konsultu ĉi tie la staton de via konto kaj la informojn pri viaj atestaĵoj.",WALLET_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj atestaĵoj (ricevitaj kaj senditaj).",WALLET_RECEIVED_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>ricevitaj atestaĵoj</b>.",WALLET_GIVEN_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>senditaj atestaĵoj</b>.",WALLET_BALANCE:"La <b>saldo</b> de via konto afiŝiĝas tie ĉi.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La uzata unuo (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumo en {{currency|capitalize}} estis dividita per la <b>Universala Dividendo</b> (UD) kunkreita de ĉiu membro.<br/><br/>Nuntempe 1 UD valoras {{currentUD|formatInteger}} {{currency|capitalize}}j.",WALLET_BALANCE_CHANGE_UNIT:"Vi povos <b>ŝanĝi la unuon</b> afiŝitan por la sumoj en la <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Ekzemple por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b>, prefere ol en relativa unuo.",WALLET_PUBKEY:"Jen la publika ŝlosilo de via konto. Vi povas sciigi ĝin al aliulo, por ke li identigu pli simple vian konton.",WALLET_SEND:"Efektivigi pagon per kelkaj klakoj.",WALLET_SEND_NO_MONEY:"Efektivigi pagon per kelkaj klakoj.<br/>(Via saldo ankoraŭ ne permesas tion)",WALLET_OPTIONS:"Tiu ĉi butono ebligas aliri la <b>agojn pri aliĝo</b> kaj sekureco.<br/><br/>Ne forgesu okulumi al ĝi!",WALLET_RECEIVED_CERTS:"Afiŝiĝos ĉi tie la listo de la personoj, kiuj atestis vin.",WALLET_CERTIFY:"La butono <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> ebligas elekti identecon kaj atesti ĝin.<br/><br/>Nur uzantoj <b>jam membroj</b> povas atesti aliajn.",WALLET_CERT_STOCK:"Via stoko da atestaĵoj (senditaj) estas limigita je <b>{{sigStock}} atestaĵoj</b>.<br/><br/>Tiu stoko plu evoluas laŭ la tempo, samtempe kiam la atestaĵoj malvalidiĝas.",MENU_BTN_TX_MEMBER:"La menuo <b>{{'MENU.TRANSACTIONS'|translate}}</b> ebligas konsulti vian konton, la liston de viaj spezoj, kaj sendi pagon.",MENU_BTN_TX:"Konsultu ĉi tie <b>la liston de viaj spezoj</b> kaj efektivigu novajn operaciojn.",MENU_BTN_WOT:"La menuo <b>{{'MENU.WOT'|translate}}</b> ebligas traserĉi inter la <b>uzantoj</b> de la mono (membroj aŭ ne).",WOT_SEARCH_TEXT_XS:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de pseŭdonimo</b> (aŭ de publika ŝlosilo).<br/><br/>La serĉado ekos aŭtomate.",WOT_SEARCH_TEXT:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de de pseŭdonimo</b> (aŭ de publika ŝlosilo). <br/><br/>Premu poste sur la klavon <b>Enigi</b> por ekigi la serĉadon.",WOT_SEARCH_RESULT:"Vidigu la detalan slipon simple <b>alklakante</b> linion.",WOT_VIEW_CERTIFICATIONS:"La linio <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montras kiom da membroj validigis tiun ĉi identecon.<br/><br/>Tiuj atestaĵoj pruvas, ke la konto apartenas al <b>persono homa kaj vivanta</b>, havanta <b>neniun alian membro-konton</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesas almenaŭ <b>{{sigQty}} atestaĵoj</b> por fariĝi membro kaj ricevi la <b>Universalan Dividendon</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Alklaki ĉi tien ebligas malfermi <b>la liston de ĉiuj atestaĵoj</b> de la identeco (ricevitaj kaj senditaj).",WOT_VIEW_CERTIFY:"La butono <b>{{'WOT.BTN_CERTIFY'|translate}}</b> ebligas aldoni vian atestaĵon al tiu identeco.",CERTIFY_RULES:"<b>Atenton:</b> Atestu nur <b>personojn fizikajn vivantajn</b>, posedantajn neniun alian membro-konton.<br/><br/>La sekureco de la mono dependas de ĉies atentego!",MENU_BTN_SETTINGS:"La <b>{{'MENU.SETTINGS'|translate}}</b> ebligos al vi agordi la programon.",HEADER_BAR_BTN_PROFILE:"Alklaku ĉi tien por aliri vian <b>uzanto-profilon.</b>",SETTINGS_CHANGE_UNIT:"Vi povos <b>ŝanĝi la afiŝ-unuon</b> de la sumoj alklakante ĉi-supren.<br/><br/>- Malaktivigu la kromaĵon por afiŝi sumojn en {{currency|capitalize}}.<br/>- Aktivigu la kromaĵon por relativa afiŝado en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (ĉiuj sumoj estos <b>dividitaj</b> per la Universala Dividendo aktuala).",END_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Bonan daŭrigon al vi, en la nova mondo de la<b>libera ekonomio</b>!",END_NOT_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Se vi deziras partopreni en la mono {{currency|capitalize}}, sufiĉos al vi alklaki <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ĉi-sube."}},API:{COMMON:{LINK_DOC:"Dokumentaro API",LINK_DOC_HELP:"Dokumentaro por la programistoj",LINK_STANDARD_APP:"Klasika versio",LINK_STANDARD_APP_HELP:"Malfermi la klasikan version de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian interretan konekton, aŭ kontaktu la administranton de la retejo</a>."},HOME:{TITLE:"Dokumentaro API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bonvenon en la <b>dokumentaro de la API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',MESSAGE_SHORT:'Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',DOC_HEADER:"Servoj disponeblaj:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Reta pago",TITLE_SHORT:"Reta pago",SUMMARY:"Resumo de la pago:",AMOUNT:"Sumo:",AMOUNTS_HELP:"Bonvolu elekti la sumon:",NAME:"Nomo:",PUBKEY:"Publika ŝlosilo de la ricevonto:",COMMENT:"Referenco de la spezo:",NODE:"Adreso de la nodo:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstra moduso</b>: Neniu pago reale estos sendita dum tiu simulado.<br/>Bonvolu uzi la identigilojn: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Kontrolu vian tajpaĵon.<br/>En demonstra moduso, la identigiloj estas: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Pago sendita.<br/>Redirektiĝo al <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Pago sendita.<br/>Redirektiĝo al la retejo de la vendanto...",CANCEL_REDIRECTING_WITH_NAME:"Pago nuligita.<br/>Redirektiĝo al <b>{{name}}</b>...",CANCEL_REDIRECTING:"Pago nuligita.<br/>Redirektiĝo al la retejo de la vendanto..."},ERROR:{TRANSFER_FAILED:"Pago malsukcesa"}},DOC:{DESCRIPTION_DIVIDER:"Priskribo",URL_DIVIDER:"Adreso alvokita",PARAMETERS_DIVIDER:"Parametroj",AVAILABLE_PARAMETERS:"Jen la listo de la eblaj parametroj:",DEMO_DIVIDER:"Testi",DEMO_HELP:"Por testi tiun servon, alklaku la butonon ĉi-apude. La rezulto afiŝiĝos sube.",DEMO_RESULT:"Rezulto sendita de la alvoko:",DEMO_RESULT_PEER:"Adreso de la uzata nodo:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Sukceso!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Nuligita de la uzanto',INTEGRATE_DIVIDER:"Integri",INTEGRATE_CODE:"Kodo:",INTEGRATE_RESULT:"Antaŭvidigo de la rezulto:",INTEGRATE_PARAMETERS:"Parametroj",TRANSFER:{TITLE:"Pagoj",DESCRIPTION:"De retejo (ekz.: ret-vendado) vi povas komisii la pagon en libera mono al Cesium API. Por tio, sufiĉas al vi ekigi la malfermon de paĝo ĉe la sekvanta adreso:",PARAM_PUBKEY:"Publika ŝlosilo de la ricevonto",PARAM_PUBKEY_HELP:"Publika ŝlosilo de la ricevonto (devige)",PARAM_AMOUNT:"Sumo",PARAM_AMOUNT_HELP:"Sumo de la spezo (devige). Pluraj valoroj permesataj, uzante apartigilon (punkto-komo, vertikala streko aŭ spaco).",PARAM_COMMENT:"Referenco (aŭ komento)",PARAM_COMMENT_HELP:"Referenco aŭ komento. Tio ekzemple ebligos al vi identigi la pagon en la blokĉeno.",PARAM_NAME:"Nomo (de la ricevonto aŭ de la retejo)",PARAM_NAME_HELP:'La nomo de la ricevonto, aŭ de la retejo alvokanta. Tio povas estis legebla nomo ("Mia retejo"), aŭ alie pseŭdo-retadreso ("MiaRetejo.com").',PARAM_REDIRECT_URL:"Retadreso por redirektiĝo",PARAM_REDIRECT_URL_HELP:'Retadreso (URL) por redirektiĝo, alvokita kiam la pago estis sendita. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj per la valoroj de la spezo: "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" kaj "{node}".',PARAM_CANCEL_URL:"Retadreso por nuligo",PARAM_CANCEL_URL_HELP:'Retadreso (URL) kaze de nuligo de la pago, fare de la uzanto. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj lastmomente: "{comment}", "{amount}" kaj {pubkey}.',PARAM_PREFERRED_NODE:"Adreso de la preferata nodo",PARAM_PREFERRED_NODE_HELP:'Adreso (URL) de la nodo Duniter preferinde uzota ("g1.domaine.com:443" aŭ "https://g1.domaine.com").',EXAMPLES_HELP:"Jen ekzemploj pri integrado:",EXAMPLE_BUTTON:"Butono HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagi en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Personigita stilo",EXAMPLE_BUTTON_TEXT_HELP:"Buton-teksto",EXAMPLE_BUTTON_BG_COLOR:"Fon-koloro",EXAMPLE_BUTTON_BG_COLOR_HELP:"Ekzemplo: #fbc14c, nigra, helgriza, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Teksto-koloro",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Ekzemplo: nigra, oranĝa, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Ikono",EXAMPLE_BUTTON_TEXT_WIDTH:"Larĝeco",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Ekzemplo: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Neniu",EXAMPLE_BUTTON_ICON_DUNITER:"Insigno Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Insigno Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Insigno Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Insigno Ğ1 (nigra)"}}}}),e.translations("es-ES",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"fecha: {{build}}",PUBKEY:"Llave pública",MEMBER:"Miembro",BLOCK:"Bloque",BTN_OK:"OK",BTN_YES:"Sí",BTN_NO:"No",BTN_SEND:"Enviar",BTN_SEND_MONEY:"Hacer una transferencia",BTN_SEND_MONEY_SHORT:"Transferencia",BTN_SAVE:"Guardar",BTN_YES_SAVE:"Sí, guardar",BTN_YES_CONTINUE:"Sí, continuar",BTN_SHOW:"Ver",BTN_SHOW_PUBKEY:"Ver la llave",BTN_RELATIVE_UNIT:"¿Mostrar las importes en DU?",BTN_BACK:"Anterior",BTN_NEXT:"Siguiente",BTN_IMPORT:"Importar",BTN_CANCEL:"Cancelar",BTN_CLOSE:"Cerrar",BTN_LATER:"Más tarde",BTN_LOGIN:"Connectarse",BTN_LOGOUT:"Desconexión",BTN_ADD_ACCOUNT:"Nueva cuenta",BTN_SHARE:"Compartir",BTN_EDIT:"Modificar",BTN_DELETE:"Suprimir",BTN_ADD:"Añadir",BTN_SEARCH:"Buscar",BTN_REFRESH:"Actualizar",BTN_RETRY:"Empezar de nuevo",BTN_START:"Empezar",BTN_CONTINUE:"Continuar",BTN_CREATE:"Crear",BTN_UNDERSTOOD:"Entendido",BTN_OPTIONS:"Opciones",BTN_HELP_TOUR:"Visita guiada",BTN_HELP_TOUR_SCREEN:"Descubrir esta pantalla",BTN_DOWNLOAD:"Descargar",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Descargar el estado de cuenta",BTN_MODIFY:"Modificar",CHOOSE_FILE:"Deposite archivo<br/>o clique para seleccionarlo",DAYS:"Días",NO_ACCOUNT_QUESTION:"¿Todavía no es miembro? ¡Crear una cuenta!",SEARCH_NO_RESULT:"Ningún resultado encontrado",LOADING:"Espere por favor...",LOADING_WAIT:"Espere por favor...<br/><small>(Esperando disponibilidad de nodo)</small>",SEARCHING:"Búsqueda en proceso...",FROM:"De",TO:"A",COPY:"Copiar",LANGUAGE:"Idioma",UNIVERSAL_DIVIDEND:"Dividendo universal",UD:"DU",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vacío)",UID:"Seudónimo",ENABLE:"Activado",DISABLE:"Desactivado",RESULTS_LIST:"Resultados:",RESULTS_COUNT:"{{count}} resultados",EXECUTION_TIME:"ejecutado en {{duration|formatDurationMs}}",SHOW_VALUES:"¿Publicar los valores no codificados?",POPOVER_ACTIONS_TITLE:"Opciones",POPOVER_FILTER_TITLE:"Filtros",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual {{limit}})",POPOVER_SHARE:{TITLE:"Compartir",SHARE_ON_TWITTER:"Compartir en Twitter",SHARE_ON_FACEBOOK:"Compartir en Facebook",SHARE_ON_DIASPORA:"Compartir en Diaspora*",SHARE_ON_GOOGLEPLUS:"Compartir en Google+"},FILE:{DATE:"Fecha:",TYPE:"Tipo:",SIZE:"Tamaño:",VALIDATING:"Validación en progreso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elegir la fuente:",BTN_PICTURE_GALLERY:"Galería",BTN_PICTURE_CAMERA:"<b>Cámara</b>"},MENU:{HOME:"Recepción",WOT:"Directorio",CURRENCY:"Moneda",ACCOUNT:"Mi cuenta",WALLETS:"Mis monederos",TRANSFER:"Transferencia",SCAN:"Escáner",SETTINGS:"Configuraciones",NETWORK:"Red",TRANSACTIONS:"Mis operaciones"},ABOUT:{TITLE:"A propósito ",LICENSE:"Aplicación <b>libre</b> (licencia GNU AGPLv3).",LATEST_RELEASE:"Hay una <b>versión más nueva</b> de {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Por favor actualice {{'COMMON.APP_NAME' | translate}} (última versión: <b>v{{version}}</b>)",CODE:"Código fuente:",DEVELOPERS:"Desarrollado por:",FORUM:"Foro:",PLEASE_REPORT_ISSUE:"No dude en informarnos de las anomalías encontradas",REPORT_ISSUE:"Reportar un problema"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenido(a) a la aplicación Cesium !",MESSAGE:"Seguir las cuentas de {{currency|abbreviate}} fácilmente",BTN_CURRENCY:"Explorar la moneda",BTN_ABOUT:"Acerca de:",BTN_HELP:"Ayuda en línea",REPORT_ISSUE:"anomalía",NOT_YOUR_ACCOUNT_QUESTION:'¿Usted no es dueño de la cuenta <<b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Desconectar esta cuenta",CONNECTION_ERROR:'Nodo <b>{{servidor}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo de conmutación <a class="positive" ng-click="doQuickFix(\'settings\')">en la configuración</a>.'},SETTINGS:{TITLE:"Configuración",DISPLAY_DIVIDER:"Visualización",STORAGE_DIVIDER:"Almacenamiento",NETWORK_SETTINGS:"Red",PEER:"Dirección del nodo Duniter",PEER_CHANGED_TEMPORARY:"Dirección utilizada temporalmente",USE_LOCAL_STORAGE:"Activar el almacenamiento local",USE_LOCAL_STORAGE_HELP:"Permitir el ahorro de almacenamiento local",WALLETS_SETTINGS:"Mis monederos",USE_WALLETS_ENCRYPTION:"¿Asegurar la lista?",ENABLE_HELPTIP:"Activar las ayudas contextuales",ENABLE_UI_EFFECTS:"Activar los efectos visuales",HISTORY_SETTINGS:"Operaciones de cuentas",DISPLAY_UD_HISTORY:"¿Publicar los dividendos producidos?",TX_HISTORY_AUTO_REFRESH:"Activar actualización automática?",TX_HISTORY_AUTO_REFRESH_HELP:"Actualice el saldo y las operaciones automáticamente, en cada nuevo bloque.",AUTHENTICATION_SETTINGS:"Autenticación",KEEP_AUTH:"Caducidad de la autenticación",KEEP_AUTH_SHORT:"Caducidad",KEEP_AUTH_HELP:"Definir cuándo limpiar la memoria de autenticación.",KEEP_AUTH_OPTION:{NEVER:"Después de cada operación",SECONDS:"Después de {{value}} segundos de inactividad",MINUTE:"Después de {{value}}min de inactividad",MINUTES:"Después de {{value}}mins de inactividad",HOUR:"Después de {{value}}h de inactividad",ALWAYS:"Al finalizar la sesión"},KEYRING_FILE:"Archivo de llavero",REMEMBER_ME:"Recordarme",REMEMBER_ME_HELP:"Permite mantenerse siempre conectado (no recomendado), conservando localmente la llave pública.",PLUGINS_SETTINGS:"Extensiones",BTN_RESET:"Restaurar los valores por defecto",EXPERT_MODE:"Activar el modo experto",EXPERT_MODE_HELP:"Permite una visualización más detallada",POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Dirección",HOST_HELP:"Dirección: servidor:puerto",USE_SSL:"¿Segura?",USE_SSL_HELP:"(Cifrado SSL)",BTN_SHOW_LIST:"Lista de nodos"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Bloque #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloque corriente",TITLE:"Bloque #{{number|formatInteger}}",COMPUTED_BY:"Calculado por el nodo de",SHOW_RAW:"Ver el fichero en bruto",TECHNICAL_DIVIDER:"Informaciones técnicas",VERSION:"Versión del formato",HASH:"Hash calculado",UNIVERSAL_DIVIDEND_HELP:"Moneda co-producida por cada uno de los {{membersCount}} miembros",EMPTY:"Ningún dato en este bloque",POW_MIN:"Dificultad mínima",POW_MIN_HELP:"Dificultad impuesta por el cálculo del hash",DATA_DIVIDER:"Datos",IDENTITIES_COUNT:"Nuevas identidades",JOINERS_COUNT:"Nuevos miembros",ACTIVES_COUNT:"Renovaciones",ACTIVES_COUNT_HELP:"Miembros que han renovado sus adhesiones",LEAVERS_COUNT:"Miembros salientes",LEAVERS_COUNT_HELP:"Miembros salientes que ya no quieren estar certificados",EXCLUDED_COUNT:"Miembros excluidos",EXCLUDED_COUNT_HELP:"Antiguos miembros excluidos por no renovación o falta de certificaciones",REVOKED_COUNT:"Identidades revocadas",REVOKED_COUNT_HELP:"Estas cuentas no podrán ser miembros",TX_COUNT:"Transacciones",CERT_COUNT:"Certificaciones",TX_TO_HIMSELF:"Operación de cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Condiciones de desbloqueo",TX_OUTPUT_OPERATOR:{AND:"y",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> de ",XHX:"<b>Contraseña</b>, cuyo SHA256 =",CSV:"Bloqueado durante",CLTV:"Bloqueado hasta"}},LOOKUP:{TITLE:"Bloques",NO_BLOCK:"Ningún bloque",LAST_BLOCKS:"últimos bloques:",BTN_COMPACT:"Compactar"}},CURRENCY:{VIEW:{TITLE:"Moneda",TAB_CURRENCY:"Moneda",TAB_WOT:"Red de confianza",TAB_NETWORK:"Red",TAB_BLOCKS:"Bloques",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} es una <b>moneda libre</b>, originada el {{firstBlockTime|formatFromNow}}. Ella cuenta actualmente <b>{{N}} miembros</b>, que producen y recibir un <a ng-click=\"showHelpModal('ud')\">Dividendo universal</a> (DU), cada {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Reglas de la red",CURRENCY_NAME:"Nombre de la moneda",MEMBERS:"Cantidad de miembros",MEMBERS_VARIATION:"variaciones del último DU",MONEY_DIVIDER:"Moneda",MASS:"Masa monetaria",SHARE:"Masa por miembro",UD:"Dividendo universal",C_ACTUAL:"Crecimiento actual",MEDIAN_TIME:"Hora de la blockchain",POW_MIN:"Nivel mínimo de dificultad de cálculo",MONEY_RULES_DIVIDER:"Reglas de la moneda",C_RULE:"Crecimiento teórico objetivo",UD_RULE:"Cálculo del dividendo universal",DT_REEVAL:"Periodo de revalorización del DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Todos los <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Fecha de la primera revalorización",SIG_QTY_RULE:"Número de certificaciones requeridas para ser miembro",SIG_STOCK:"Número máximo de certificaciones emitidas por miembros",SIG_PERIOD:"Plazo mínimo de espera entre 2 certificaciones sucesivas emitidas por la misma persona",SIG_WINDOW:"Plazo límite para tomar en cuenta una certificación",SIG_VALIDITY:"Duración de una certificación que se ha tenido en cuenta.",MS_WINDOW:"Duración límite para toma en cuenta de una adhesión",MS_VALIDITY:"Duración de una certificación",STEP_MAX:"Distancia máxima entre un nuevo entrante y los miembros referentes",WOT_RULES_DIVIDER:"Reglas de la red de confianza",SENTRIES:"Cantidad de certificaciones necesarias para ser miembro referente",SENTRIES_FORMULA:"Cantidad de certificaciones necesarias para ser miembro referente (fórmula)",XPERCENT:"Porcentaje mínimo de miembros referentes necesario para respetar la regla de distancia",AVG_GEN_TIME:"Tiempo medio entre dos bloques",CURRENT:"actual",MATH_CEILING:"TECHO",DISPLAY_ALL_RULES:"¿Ver todas las reglas?",BTN_SHOW_LICENSE:"Ver la licencia",WOT_DIVIDER:"Red de confianza"},LICENSE:{TITLE:"Licencia de la moneda",BTN_DOWNLOAD:"Descagar el fichero",NO_LICENSE_FILE:"Fichero de licencia no encontrado."}},NETWORK:{VIEW:{MEDIAN_TIME:"Hora de la blockchain",LOADING_PEERS:"Cargando los nodos...",NODE_ADDRESS:"Dirección:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"prelanzamiento (última versión estable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versión <b>{{version}}</b> disponible",WS2PID:"ID:",PRIVATE_ACCESS:"Acceso privado",POW_PREFIX:"Prefijo de la prueba de trabajo:",ENDPOINTS:{BMAS:"Interfaz segura (SSL)",BMATOR:"Interfaz red TOR",WS2P:"Interfaz WS2P",ES_USER_API:"Nodo de datos Cesium+"}},INFO:{ONLY_SSL_PEERS:"La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS."}},PEER:{PEERS:"Nodos",SIGNED_ON_BLOCK:"Firmado sobre el bloque",MIRROR:"espejo",MIRRORS:"Espejo",MIRROR_PEERS:"Nodos espejo",PEER_LIST:"Lista de nodos",MEMBERS:"Miembro",MEMBER_PEERS:"Nodos miembro",ALL_PEERS:"Todos los nodos",DIFFICULTY:"Dificultad",API:"API",CURRENT_BLOCK:"Bloque #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Fuera de línea",OFFLINE_PEERS:"Nodos fuera de línea",BTN_SHOW_PEER:"Ver nodo",VIEW:{TITLE:"Nodo",OWNER:"Propiedad de",SHOW_RAW_PEERING:"Ver la mapa de red",SHOW_RAW_CURRENT_BLOCK:"Ver el último bloque (formato bruto)",LAST_BLOCKS:"Bloques recientes",KNOWN_PEERS:"Nodos conocidos:",GENERAL_DIVIDER:"Información general",ERROR:{LOADING_TOR_NODE_ERROR:"No se pudo obtener la información del nodo usando la red TOR.",LOADING_NODE_ERROR:"No se pudo obtener la información del nodo"}}},WOT:{SEARCH_HELP:"Buscar (seudónimo o llave pública)",SEARCH_INIT_PHASE_WARNING:"Durante la etapa de preinscripción, el tiempo de búsqueda de las inscripciones en espera <b>puede ser largo</b>. Gracias por su paciencia...",REGISTERED_SINCE:"Registrado en",REGISTERED_SINCE_BLOCK:"Registrado en el bloque #",NO_CERTIFICATION:"Ninguna certificación validada",NO_GIVEN_CERTIFICATION:"Ninguna certificación emitida",NOT_MEMBER_PARENTHESIS:"(no miembro)",IDENTITY_REVOKED_PARENTHESIS:"(identidad revocada)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(revocación en proceso)",EXPIRE_IN:"Expira el",NOT_WRITTEN_EXPIRE_IN:"Fecha límite<br/>de procesamiento",EXPIRED:"Expirado",PSEUDO:"Seudónimo",SIGNED_ON_BLOCK:"Emitida en el bloque #{{block}}",WRITTEN_ON_BLOCK:"Escrita en el bloque #{{block}}",GENERAL_DIVIDER:"Informaciones generales",NOT_MEMBER_ACCOUNT:"Cuenta no miembro",NOT_MEMBER_ACCOUNT_HELP:"Se trata de un simple monedero, sin solicitud de adhesión en espera.",TECHNICAL_DIVIDER:"Informaciones técnicas",BTN_CERTIFY:"Certificar",BTN_YES_CERTIFY:"Sí, certificar",BTN_SELECT_AND_CERTIFY:"Nueva certificación",ACCOUNT_OPERATIONS:"Operaciones de cuenta",VIEW:{POPOVER_SHARE_TITLE:"Identidad {{title}}"},LOOKUP:{TITLE:"Directorio",NEWCOMERS:"Nuevos miembros:",NEWCOMERS_COUNT:"{{count}} miembros",PENDING:"Inscripciones en espera:",PENDING_COUNT:"{{count}} inscripciones en espera",REGISTERED:"Inscrito {{sigDate | formatFromNow}}",MEMBER_FROM:"Miembro desde {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nuevos miembros",BTN_PENDING:"Inscripciones en espera",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual a {{limit}})",NO_PENDING:"Ninguna inscripción en espera.",NO_NEWCOMERS:"Ningun miembro."},CONTACTS:{TITLE:"Contactos"},MODAL:{TITLE:"Buscar"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones",SUMMARY:"Certificaciones recibidas",LIST:"Detalle de las certificaciones recibidas",PENDING_LIST:"Certificaciones en espera de tratamiento",RECEIVED:"Certificaciones recibidas",RECEIVED_BY:"Certificaciones recibidas por {{uid}}",ERROR:"Certificaciones recibidas por error",SENTRY_MEMBER:"Miembro referente"},OPERATIONS:{TITLE:"{{uid}} - Operaciones"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones emitidas",SUMMARY:"Certificaciones emitidas",LIST:"Detalle de las certificaciones emitidas",PENDING_LIST:"Certificaciones en espera a ser procesadas",SENT:"Certificaciones emitidas",SENT_BY:"Certificaciones emitidas por {{uid}}",ERROR:"Certificaciones emitidas por error"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Conexión',SCRYPT_FORM_HELP:"Ingrese sus credenciales.<br>Recuerde verificar que la clave pública es su cuenta.",PUBKEY_FORM_HELP:"Por favor ingrese una clave de cuenta pública:",FILE_FORM_HELP:"Elija el archivo de llavero para usar:",SCAN_FORM_HELP:"Escanee el código QR de la monedero.",SALT:"Identificador secreto",SALT_HELP:"Identificador secreto",SHOW_SALT:"¿Visualizar el identificador secreto?",PASSWORD:"Frase secreta",PASSWORD_HELP:"Frase secreta",PUBKEY_HELP:"llave pública",NO_ACCOUNT_QUESTION:"¿Aún no tiene cuenta?",HAVE_ACCOUNT_QUESTION:"¿Ya tienes una cuenta?",CREATE_ACCOUNT:"Crear una cuenta",CREATE_FREE_ACCOUNT:"Crear una cuenta gratis",FORGOTTEN_ID:"¿Olvidó su frase secreta?",ASSOCIATED_PUBKEY:"Clave pública del llavero:",BTN_METHODS:"Otros métodos",BTN_METHODS_DOTS:"Método de cambio...",METHOD_POPOVER_TITLE:"Métodos",MEMORIZE_AUTH_FILE:"Recuerda este llavero al momento de la sesión de navegación",SCRYPT_PARAMETERS:"Configuraciones (Scrypt) :",AUTO_LOGOUT:{TITLE:"Información",MESSAGE:'<i class="ion-android-time"></i> Se ha <b>desconectado</b> de forma automática, después de un periodo de inactividad prolongada.',BTN_RELOGIN:"Volver a conectarme",IDLE_WARNING:"Se desconectará en... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identificación predeterminada",SCRYPT_ADVANCED:"Sallaje avanzado",FILE:"Archivo llavero",PUBKEY:"Solo clave pública",SCAN:"Escanear un código QR"},SCRYPT:{SIMPLE:"Ligero",DEFAULT:"Predeterminado",SECURE:"Seguro",HARDEST:"El más seguro",EXTREME:"Extremo",USER:"Personalizado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Formato de archivo esperado: <b>.yml</b> o <b>.dunikey</b> (tipo PubSec, WIF o EWIF)."}},AUTH:{
-TITLE:'<i class="icon ion-locked"></i> AAutenticación',BTN_AUTH:"Autenticar",GENERAL_HELP:"Por favor, autentíquese:",EXPECTED_UID_HELP:'Por favor inicie sesión en la cuenta de <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Por favor, autentifíquese en la monedero <i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Escanee el código QR de la <b>clave privada</b> de la monedero."},ACCOUNT:{TITLE:"Mi cuenta",BALANCE:"Saldo",LAST_TX:"última validadas transacción",BALANCE_ACCOUNT:"Saldo de la cuenta",NO_TX:"Ninguna transacción",SHOW_MORE_TX:"Mostrar más",SHOW_ALL_TX:"Mostrar todo",TX_FROM_DATE:"(límite actual a {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacciones en proceso de se procesadas",VALIDATING_TX:"Transacciones validadas",ERROR_TX:"Transacciones no ejecutadas",ERROR_TX_SENT:"Transacciones ejecutadas fallidas",PENDING_TX_RECEIVED:"Tansacciones en espera de recepción",EVENTS:"Eventos",WAITING_MEMBERSHIP:"Solicitud de adhesión emitida. En espera de aceptación.",WAITING_CERTIFICATIONS:"Debe obtener {{needCertificationCount}} certificación(es) para ser miembro.",WILL_MISSING_CERTIFICATIONS:"Pronto le van a <b>faltar certificaciones</b> (al menos {{willNeedCertificationCount}} son necesarias)",WILL_NEED_RENEW_MEMBERSHIP:"Su adhesión como miembro <b>va a expirar {{membershipExpiresIn|formatDurationTo}}</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a> mientras tanto.",NEED_RENEW_MEMBERSHIP:"No es miembro porque su adhesión <b>ha expirado</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a>.",NO_WAITING_MEMBERSHIP:"No hay adhesión miembro en espera. Si desea <b>convertirse en miembro</b>, por favor <a ng-click=\"doQuickFix('membership')\">envíe su adhesión como miembro</a>.",CERTIFICATION_COUNT:"Certificaciones recibidas",CERTIFICATION_COUNT_SHORT:"Certificaciones",SIG_STOCK:"Certificaciones emitidas",BTN_RECEIVE_MONEY:"Recibir",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Cambiar a otra identidad...",BTN_FIX_MEMBERSHIP:"Volver a enviar la adhesión...",BTN_MEMBERSHIP_RENEW:"Renovar la adhesión",BTN_MEMBERSHIP_RENEW_DOTS:"Renovar la adhesión...",BTN_MEMBERSHIP_OUT_DOTS:"Cancelar la adhesión...",BTN_SECURITY_DOTS:"Cuenta y securidad...",BTN_SHOW_DETAILS:"Publicar la información técnica",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importe bloqueado",DESCRIPTION:"Aquí están las condiciones para desbloquear este importe:",DESCRIPTION_MANY:"Esta transacción esta compuesta de varias partes, cuyas condiciones de desbloqueo son:",LOCKED_AMOUNT:"Condiciones del importe:"},NEW:{TITLE:"Inscripción",INTRO_WARNING_TIME:"Crear una cuenta en {{name|capitalize}} es muy simple. Sin embargo, por favor tome el tiempo suficiente para dar correctamente este paso (no olvidar los identificadores, frase secreta, etc.).",INTRO_WARNING_SECURITY:"Asegúrece de que el equipo que utiliza actualmente (ordenador, tableta, teléfono) <b>es seguro y digno de confianza</b>.",INTRO_WARNING_SECURITY_HELP:"Actualizaciones de antivirus, firewall activado, sesión protegidos por contraseña o código PIN, etc.",INTRO_HELP:"Haga clic en <b>{{'COMMON.BTN_START'|translate}}</b> para iniciar la creación de la cuenta. Se le guiará paso a paso.",REGISTRATION_NODE:"Su registro será grabado a través del nodo Duniter <b>{{server}}</b>, que luego se transmitirá al resto del sistema de la moneda.",REGISTRATION_NODE_HELP:"Si usted no confía en este nodo, <a ng-click=\"doQuickFix('settings')\">cambie la configuración</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elegir el tipo de cuenta a crear:",MEMBER_ACCOUNT:"Cuenta miembro",MEMBER_ACCOUNT_TITLE:"Crear una cuenta miembro",MEMBER_ACCOUNT_HELP:"Si aún no está inscrito como un individuo (Solamente una cuenta posible por individuo).",WALLET_ACCOUNT:"Simple monedero",WALLET_ACCOUNT_TITLE:"Crear una cuenta simple",WALLET_ACCOUNT_HELP:"Monedero simple para todos los otros casos, por ejemplo si necesita una cuenta suplementaria.<br/>El Dividendo Universal no será producido para esta cuenta.",SALT_WARNING:"Elija su identificador secreto.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien este identificador secreto</b>.<br/>¡En caso de pérdida, nadie podrá acceder a su cuenta!",PASSWORD_WARNING:"Elija su frase secreta.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien esta frase secreta</b>.<br/>¡En caso de pérdida, nadie podrá acceder su cuenta!",PSEUDO_WARNING:"Elija un seudónimo.<br/>Sirve para que los otros miembros puedan encontrarlo más fácilmente.<br/><br/>No debe contener <b>ni espacios ni caracteres acentuados</b>.<div class='hidden-xs'><br/>Ejemplo: <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Seudónimo",PSEUDO_HELP:"Seudónimo",SALT_CONFIRM:"Confirmación",SALT_CONFIRM_HELP:"Confirmación del identificador secreto",PASSWORD_CONFIRM:"Confirmación",PASSWORD_CONFIRM_HELP:"Confirmación de la frase secreta",SLIDE_6_TITLE:"Confirmación:",COMPUTING_PUBKEY:"Cálculo en proceso...",LAST_SLIDE_CONGRATULATION:"<b>¡Bien!</b> Ha introducido todas los datos necesarias.<br/><b>Puede solicitar</b> la creación de su cuenta.</b><br/><br/>Para su información, la llave pública que se muestra más abajo identificará su futura cuenta.<br/>Esta podrá ser comunicada a terceros para recibir sus pagos.<br/>Sin embargo, <b>no es útil</b> anotarla aquí.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto, la frase secreta y el seudónimo no podrán estar modificados.<br/><b>¡Asegúrese siempre de recordarlos!</b><br/><br/><b>¿Está usted seguro</b> de querer solicitar la inscripción?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto y la frase secreta no podrán estar modificados.<br/><b>¡Asegúrese de recordarlos siempre!</b><br/><br/><b>¿Está usted seguro</b> de querer continuar con estos identificadores?',CHECKING_PSEUDO:"Comprobar de disponibilidad...",PSEUDO_AVAILABLE:"Este nombre está disponible",PSEUDO_NOT_AVAILABLE:"Este nombre de usuario no está disponible",INFO_LICENSE:"Para unirse a la moneda, le pedimos leer y aceptar esta licencia.",BTN_ACCEPT:"Acepto",BTN_ACCEPT_LICENSE:"Acepto la licencia"},POPUP_REGISTER:{TITLE:"Elija un seudónimo",HELP:"Un seudónimo es obligatorio para ser miembro."},SELECT_IDENTITY_MODAL:{TITLE:"Selección de identidad",HELP:'Se han enviado varias <b>identidades diferentes</b> para la clave pública <span class="gray"><i class="ion-key"></i>{{pubkey | formatPubkey}}</span>.<br/>Por favor, selecciona la carpeta para usar:'},SELECT_WALLET_MODAL:{TITLE:"Selección de monedero"},WALLET_LIST:{TITLE:"Mis monederos",BTN_NEW:"Añadir un monedero",BTN_DOWNLOAD:"Descargue la lista",BTN_IMPORT_FILE_DOTS:"Importar desde un archivo...",NO_WALLET:"Sin monedero secundaria",BTN_DELETE:"Eliminar una monedero secundaria...",BTN_RENAME:"Renombrar el monedero",EXPORT_FILENAME:"monederos-{{pubkey|formatPubkey}}-{{currency}}.csv",EDIT_POPOVER:{TITLE:"Renombrar el monedero",HELP:"Completa el nuevo nombre",NAME_HELP:"Nombre de la monedero"}},SECURITY:{ADD_QUESTION:"Añadir una pregunta personalizada",BTN_CLEAN:"Limpiar",BTN_RESET:"Reinicializar",DOWNLOAD_REVOKE:"Grabar un fichero de revocación",HELP_LEVEL:"Para generar un fichero de respaldo de sus identificadores, elija <strong> al menos {{nb}} preguntas:</strong>",LEVEL:"Nivel de seguridad",LOW_LEVEL:'Bajo <span class="hidden-xs">(mínimo dos preguntas)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(mínimo cuatro preguntas)</span>',QUESTION_1:"¿Cómo se llamaba su mejor amigo de la adolescencia?",QUESTION_2:"¿Cómo se llamaba su primer animal de compañía?",QUESTION_3:"¿Cuál es el primer plato que aprendió a cocinar?",QUESTION_4:"¿Cuál es la primera película que vió en un cine?",QUESTION_5:"¿Cuál era el destino del primer avión que cogió?",QUESTION_6:"¿Cómo se llamaba su maestro favorito en la escuela primaria?",QUESTION_7:"¿Cuál sería para usted el mejor oficio?",QUESTION_8:"¿Cuál es su libro para niños preferido?",QUESTION_9:"¿Cuál fue el modelo de su primer vehículo?",QUESTION_10:"¿Cuál fue su sobrenombre cuando era niña(o)?",QUESTION_11:"¿Cuál fue su personaje o actor/actriz preferido/a cuando era estudiante?",QUESTION_12:"¿Cuál fue su cantante o grupo preferido/a cuando era estudiante?",QUESTION_13:"¿En qué ciudad sus padres se encontraron?",QUESTION_14:"¿Cómo se llamaba su primer jefe?",QUESTION_15:"¿Cómo se llama la calle donde creció?",QUESTION_16:"¿Cómo se llama la primera playa donde se bañó?",QUESTION_17:"¿Cuál es el primer álbum que compró?",QUESTION_18:"¿Cuál es el nombre de su equipo deportivo preferido?",QUESTION_19:"¿Cuál fue el oficio de su abuelo?",RECOVER_ID:"Recuperar sus identificadores",REVOCATION_WITH_FILE:"Revocar una identidad a partir de un fichero",REVOCATION_WITH_FILE_DESCRIPTION:"Si ha perdido las credenciales de su cuenta de miembro de forma permanente (o la seguridad de la cuenta se ve comprometida), puede usar <b>el archivo de revocación de la cuenta</b> para forzar publicación final de la web de confianza.",REVOCATION_WITH_FILE_HELP:"Para <b>revocar permanentemente</b> una cuenta de miembro, arrastre el archivo de revocación en el cuadro siguiente o haga clic en el cuadro para buscar un archivo.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",REVOCATION_WALLET:"Revocar esta identidad",SAVE_ID:"Grabar sus identificadores",STRONG_LEVEL:'Alto <span class="hidden-xs ">(6 preguntas mínimo)</span>',TITLE:"Cuenta y seguridad"},FILE_NAME:"{{currency}} - Estado de cuenta {{pubkey|formatPubkey}} a {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Fecha",AMOUNT:"Cantidad",COMMENT:"Comentario"}},TRANSFER:{TITLE:"Transferencia",SUB_TITLE:"Hacer una transferencia",FROM:"De",TO:"A",AMOUNT:"Importe",AMOUNT_HELP:"Importe",COMMENT:"Comentario",COMMENT_HELP:"Comentario",BTN_SEND:"Enviar",BTN_ADD_COMMENT:"Añadir un comentario",REST:"Resto de cuenta",REST_TO:"a",WARN_COMMENT_IS_PUBLIC:"Tenga en cuenta que los <b>comentarios son públicos</b> (sin encriptar).",MODAL:{TITLE:"Transferencia"}},ERROR:{UNKNOWN_URI_FORMAT:"Formato URI desconocido",PUBKEY_INVALID_CHECKSUM:"Clave pública no válida (suma de comprobación incorrecta).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Error desconocido",CRYPTO_UNKNOWN_ERROR:"Su navegador parece incompatible con las funcionalidades de cryptografía.",DOWNLOAD_KEYFILE_FAILED:"Error al generar el archivo de llavero.",EQUALS_TO_PSEUDO:"Debe ser diferente del seudónimo.",EQUALS_TO_SALT:"Debe ser diferente del identificador secreto.",FIELD_REQUIRED:"Campo obligatorio.",FIELD_TOO_SHORT:"Valor demasiado corta.",FIELD_TOO_SHORT_WITH_LENGTH:"Valor demasiado corta ({{minLength}} carácteres mín)",FIELD_TOO_LONG:"Valor demasiado largo",FIELD_TOO_LONG_WITH_LENGTH:"Valor demasiado largo, ({{maxLength}} carácteres máx)",FIELD_MIN:"Valor mínimo: {{min}}",FIELD_MAX:"Valor máximo: {{max}}",FIELD_ACCENT:"Caracteres acentuados y comas no autorizados",FIELD_NOT_NUMBER:"Valor numérico esperado",FIELD_NOT_INT:"Valor entero esperado",FIELD_NOT_EMAIL:"Email no válido",PASSWORD_NOT_CONFIRMED:"No corresponde a la frase secreta.",SALT_NOT_CONFIRMED:"No corresponde al identificador secreto.",SEND_IDENTITY_FAILED:"Error de la inscripción.",SEND_CERTIFICATION_FAILED:"Error de la certificación.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"No se puede certificar, porque su cuenta no <b>es miembro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"No se puede certificar, porque su cuenta ya no es miembro.<br/><br/>Todavía faltan certificaciones, o ahora no son validas.",NOT_MEMBER_FOR_CERTIFICATION:"Su cuenta todavía no es miembro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Cuenta no certificable. No se ha solicitado la adhesión, o no fue renovada.",LOGIN_FAILED:"Error durante la autentificación.",LOAD_IDENTITY_FAILED:"Error de carga de la identidad.",LOAD_REQUIREMENTS_FAILED:"Error de carga de las condiciones de la identidad.",SEND_MEMBERSHIP_IN_FAILED:"Error en el intento de entrada en la comunidad.",SEND_MEMBERSHIP_OUT_FAILED:"Error en la interrupción de adhesión.",REFRESH_WALLET_DATA:"Error en la actualización del monedero.",GET_CURRENCY_PARAMETER:"Error en la recuperación de las reglas de moneda.",GET_CURRENCY_FAILED:"Carga de la moneda imposible. Por favor, intente más tarde.",SEND_TX_FAILED:"Error en la transferencia.",ALL_SOURCES_USED:"Por favor, espera el cálculo del bloque siguiente (Todas sus fuentes de moneda fueron utilizada).",NOT_ENOUGH_SOURCES:"No lo bastante cambio para mandar este importe en una sola transacción.<br/>Importe máximo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error en la creación de la cuenta miembro.",RESTORE_WALLET_DATA_ERROR:"Error en la recarga de las configuración desde el almacenamiento local",LOAD_WALLET_DATA_ERROR:"Error en la carga de los datos del monedero.",COPY_CLIPBOARD_FAILED:"Copia de la valor imposible.",TAKE_PICTURE_FAILED:"Error en la recuperación de la foto.",SCAN_FAILED:"Error en el escán del Codigo QR",SCAN_UNKNOWN_FORMAT:"Codigo no reconocido.",WOT_LOOKUP_FAILED:"Error en la búsqueda",LOAD_PEER_DATA_FAILED:"Lectura del nodo Duniter imposible. Por favor, intente más tarde.",NEED_LOGIN_FIRST:"Por favor, conéctese en primer lugar.",AMOUNT_REQUIRED:"El importe es obligatorio.",AMOUNT_NEGATIVE:"Importe negativo no autorizado.",NOT_ENOUGH_CREDIT:"Crédito insuficiente.",INVALID_NODE_SUMMARY:"Nodo ilocalizable o dirección inválida.",INVALID_USER_ID:"El seudónimo no debe contener ni espacios ni caracteres especiales o acentuado.",INVALID_COMMENT:"El campo 'referencia’ no debe contener carácteres acentuados.",INVALID_PUBKEY:"La clave pública no tiene el formato esperado.",INVALID_PUBKEY_CHECKSUM:"Suma de comprobación inválida.",IDENTITY_REVOKED:"Esta identidad <b>fue revocada</b>. No puede estar miembro.",IDENTITY_REVOKED_WITH_TIME:"Esta identidad <b>fue revocada {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). No puede estar miembro.",IDENTITY_PENDING_REVOCATION:"La <b>revocación de esta identidad</b> fue solicitado y esta en espera de tratamiento. Por lo que, la certificación es desactivada.",IDENTITY_INVALID_BLOCK_HASH:"Esta solicitud de adhesión no es valida (porque denomina un bloque los nodos de la red han anulado): esta persona debe renovelar su solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_EXPIRED:"La publicación de esta identidad ha caducada: esta persona debe realizar una nueva solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_SANDBOX_FULL:"EL nodo Duniter utilizado por Cesium ya no puede recibir más nuevas identidades, porque la fila de espera es llena.<br/><br/>Por favor, intenta ulteriormente o cambia de nodo (vía el menú <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identidad no encontrada",IDENTITY_TX_FAILED:"Las operaciones de carga fallidos",WOT_PENDING_INVALID_BLOCK_HASH:"Adhesión no validada.",WALLET_INVALID_BLOCK_HASH:"Su solicitud de adhesión ya no está validada (porque denomina un bloque los nodos de la red han anulado).<br/>Debe <a ng-click=\"doQuickFix('fixMembership')\">mandar una nueva solicitud</a> para resolver este problema.",WALLET_IDENTITY_EXPIRED:"La publicación de <b>su identidad ha caducada</b>.<br/>Debe <a ng-click=\"doQuickFix('fixIdentity')\">publicar une outra vez su identidad</a> para resolver este problema.",WALLET_REVOKED:"Su identidad fue <b>revocada</b>: ni su seudónimo ni su llave pública podrán estar utilizados en el futuro por una cuenta miembro.",WALLET_HAS_NO_SELF:"Su identidad debe en primer lugar haber estado publicado, y no estar caducada.",AUTH_REQUIRED:"Autenticación requerida.",AUTH_INVALID_PUBKEY:"La llave pública no se corresponde con la cuenta conectada",AUTH_INVALID_SCRYPT:"De usuario o contraseña no válidos.",AUTH_INVALID_FILE:"archivo de llave no válido.",AUTH_FILE_ERROR:"No se pudo abrir el archivo de llave",IDENTITY_ALREADY_CERTIFY:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación todavía es valida (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación está en espera de tratamiento (fecha límite de tratamiento {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certificación imposible",LOAD_NEWCOMERS_FAILED:"Error el la carga de los miembros nuevos.",LOAD_PENDING_FAILED:"Error el la carga de las inscripciones en espera.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Debe <b>estar miembro</b> para poder realizar esta acción.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Debe haber <b>publicado su identidad</b> para poder realizar esta acción.",GET_BLOCK_FAILED:"Error en la recuperación del bloque",INVALID_BLOCK_HASH:"Bloque no encontrado (hash diferente)",DOWNLOAD_REVOCATION_FAILED:"Debe seleccionar un fichero de texto",REVOCATION_FAILED:"Error en la revocación.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identificador secreto o contraseña incorrectos",RECOVER_ID_FAILED:"Error en la recuperación de los identificadores",LOAD_FILE_FAILED:"Error en la carga del fichero",NOT_VALID_REVOCATION_FILE:"Archivo de revocación no válido (formato de archivo erróneo)",NOT_VALID_SAVE_ID_FILE:"Archivo no válido (formato de archivo erróneo)",NOT_VALID_KEY_FILE:"Archivo no válido (formato de archivo erróneo)",EXISTING_ACCOUNT:"Su frase secreta corresponde a una cuenta existente, la <a ng-click=\"showHelpModal('pubkey')\">clave pública</a> es:",EXISTING_ACCOUNT_REQUEST:"Por favor, cambie su frase secreta para que coincida con una cuenta sin usar.",GET_LICENSE_FILE_FAILED:"Error al obtener el archivo de licencia",CHECK_NETWORK_CONNECTION:"Ningún nodo parece alcanzable.<br/><br/><b>Compruebe la conexión a Internet</b>.",INVALID_FILE_FORMAT:"Formato de archivo inválido.",SAME_TX_RECIPIENT:"El destinatario debe ser diferente del emisor."},INFO:{POPUP_TITLE:"Información",CERTIFICATION_DONE:"Certificación enviada",NOT_ENOUGH_CREDIT:"Crédito insuficiente",TRANSFER_SENT:"Transferencia enviada",COPY_TO_CLIPBOARD_DONE:"Copia realizada",MEMBERSHIP_OUT_SENT:"Anulación enviada",NOT_NEED_MEMBERSHIP:"Ya es miembro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Esta identidad pronto va a necesitar certificaciones (al menos {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Esta identidad no envió una solicitud de membresía. Ella tendrá que hacerlo si desea hacerse miembro.",HAS_ALTERNATIVE_IDENTITIES:"Hay <b>identidades múltiples</b> adjuntas a esta clave pública. <b>Antes de cualquier certificación</b>, <a ng-click=\"doQuickFix('showSelectIdentities')\">verifique otras identidades</a> para elegir la correcta o comuníquese con el propietario de la cuenta.",REVOCATION_SENT:"Revocación enviada",REVOCATION_SENT_WAITING_PROCESS:"La <b>revocación de esta identidad</b> fue solicitada y está en espera de ser procesada.",FEATURES_NOT_IMPLEMENTED:"Esta funcionalidad todavía está en proceso de desarrollo.<br/><br/>¿Por qué no <b>contribuir a Cesium</b>, para obtenerla más rápido? ;)",EMPTY_TX_HISTORY:"Ninguna operación a exportar"},CONFIRM:{POPUP_TITLE:"<b>Confirmación</b>",POPUP_WARNING_TITLE:"<b>Advertencia</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Advertencia de seguridad</b>',CERTIFY_RULES_TITLE_UID:"Certificar {{uid}}",CERTIFY_RULES:'<b class="assertive">NO CERTIFICAR</b> una cuenta si piense que :<br/><br/><ul><li>1.) no corresponde a una persona <b>física y viviente</b>.<li>2.) su propietario <b>posee una otra cuenta</b> ya certificada.<li>3.) su propietario viola (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas falsas o duplicadas).</ul><br/><b>¿Está usted seguro</b> sin embargo querer certificar esta identidad?',TRANSFER:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",TRANSFER_ALL:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",MEMBERSHIP_OUT:"Esta operación es <b>irreversible</b>.<br/></br/>¿Está usted seguro querer <b>anular su cuenta miembro</b>?",MEMBERSHIP_OUT_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro querer <b>anular su adhesión</b> como miembro?",LOGIN_UNUSED_WALLET_TITLE:"¿Error de introducción de datos?",LOGIN_UNUSED_WALLET:"Está usted conectado a une cuenta que parece <b>inactiva</b>.<br/><br/>Si esta cuenta no corresponde a la suya, se trata probablemente de un <b>error al introducir los datos</b> de sus identificadores de conexión.<br/></br/><b>¿Quiere usted sin embargo continuar con esta cuenta?</b>",FIX_IDENTITY:"El seudónimo <b>{{uid}}</b> va a ser publicado de nuevo, en reemplazo del antiguo que caducó.<br/></br/><b>¿Está usted seguro</b> de querer continuar?",FIX_MEMBERSHIP:"Su solicitud de adhesión como miembro va a ser enviada de nuevo.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",MEMBERSHIP:"Se enviará su solicitud de membresía como miembro.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",RENEW_MEMBERSHIP:"Su adhesión como miembro va a estar renovada.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",REVOKE_IDENTITY:"Va a <b>revocar definitivamente esta identidad</b>.<br/><br/>La llave pública y el seudónimo asociados <b>jamás podrán ser utilizados</b> (para una cuenta miembro). <br/></br/><b>¿Está usted seguro</b> de querer revocar definitivamente esta cuenta?",REVOKE_IDENTITY_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro de querer <b>revocar definitivamente</b> esta cuenta?",NOT_NEED_RENEW_MEMBERSHIP:"Su adhesión no necesita ser renovada (solo va a caducar en {{membershipExpiresIn|formatDuration}}).<br/></br/><b>¿Está usted segura(o)</b> de querer renovar su adhesión?",SAVE_BEFORE_LEAVE:"¿Quiere usted <b>guardar sus cambios</b> antes dejar la página?",SAVE_BEFORE_LEAVE_TITLE:"Cambios no registrados",LOGOUT:"¿Está usted segura(o) de querer desconectarse?",USE_FALLBACK_NODE:"Nodo <b>{{edad}}</ b> inalcanzable o no válido.<br/><br/>¿Desea utilizar temporalmente el nodo <b>{{nuevo}}</b>?"},DOWNLOAD:{POPUP_TITLE:"<b>Revocación del archivo</b>",POPUP_REVOKE_MESSAGE:"Para proteger su cuenta, descargar el <b>documento de revocación de cuenta</b>. Si se necesita cancelar su cuenta (en caso de robo, cambio de identificador, una cuenta falsa creada, etc.).<br/><br/><b>Por favor, almacénelo en un lugar seguro.</b>"},HELP:{TITLE:"Ayuda en línea",JOIN:{SECTION:"Inscripción",SALT:'El identificador secreto es muy importante. Sirve para mezclar la frase secreta, antes de calcular la <span class="text-italic">llave pública</span> de su cuenta (su número) y la llave secreta para acceder a esta.<br/><b>Por favor, memorícelo muy bien</b> porque actualmente no existe ninguna manera para encontrarlo en caso de pérdida.<br/>Por otra parte, no puede ser modificado sin tener que crear una nueva cuenta.<br/><br/>Un buen identificador secreto debe ser suficientemente largo (al menos 8 carácteres) y lo más original posible.',PASSWORD:"La frase secreta es muy importante. Junto al identificador secreto, sirve a calcular el número (la llave pública) de su cuenta, y la llave secreta para acceder a ella.<br/><b>Por favor, memorícela muy bien</b> porque actualmente no existe ninguna manera para encontrarla en caso de pérdida (excepto el generar un fichero de respaldo).<br/>Por otra parte, no puede ser modificado sin deber creer una nueva cuenta.<br/><br/>Una buena frase secreta contiene (idealmente) al menos 8 carácteres, del que al menos una mayúscula y un número.",PSEUDO:'El seudónimo es solamente utilizado en caso de inscripción como <span class="text-italic">miembro</span>. Siempre es asociado a un monedero (vía su <span class="text-italic">llave pública</span>).<br/>El seudónimo se publica en la red para que los otros usuarios puedan identificarlo, certificarlo o enviar dinero a la cuenta.<br/>Un seudónimo debe ser único dentro de los miembros (<u>actuales</u> y antiguos).'},GLOSSARY:{SECTION:"Glosario",PUBKEY_DEF:"Una llave pública identifica un monedero. Puede identificar un miembro. En Cesium se calcula con el identificador y la frase secreta.",MEMBER:"Miembro",MEMBER_DEF:'Un miembro es una persona humana física y viviente, deseosa de participar libremente a la comunidad monetaria. Percibe un dividendo universal, dependiendo de un período y un importe definido en las <span class="text-italic">reglas de la moneda</span>',CURRENCY_RULES:"Reglas de la moneda",CURRENCY_RULES_DEF:'Las reglas de la moneda son definidas una sola vez por todas. Establecen el funcionamiento de la moneda: el cálculo del dividendo universal, la cantidad de certificaciones necesarias para ser miembro, la cantidad máxima de certificaciones que un miembro puede emitir, etc. <a href="#/app/currency">Ver las reglas actuales</a>.<br/> Una <span class="text-italic">BlockChain</span> que soporta y ejecuta estas reglas, y verifica continuamente su buena aplicación, hace posible que ellas no se modifiquen en el tiempo.',BLOCKCHAIN:'Cadena de bloques (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain es un sistema descentralizado, que, para el caso de Duniter, sirve a mantener y ejecutar las <span class="text-italic">reglas de la moneda</span>.<br/><a href="http://duniter.org" target="_system">Saber más a proposito de Duniter</a> y el funcionamiento de su blockchain.',UNIVERSAL_DIVIDEND_DEF:'El Dividendo Universal (DU) es la cantidad de moneda co-creada por cada miembro, dependiendo del periodo y del cálculo definidos en las <span class="text-italic">reglas de la moneda</span>.<br/>En cada periodo, los miembros reciben en sus cuentas la misma cantidad de dinero.<br/><br/>El DU crece regularmente, para ser justo entre los miembros (actuales y futuros), calculado en función de la esperanza de vida media, como demostrado en la Théorie Relative de la Monnaie (TRM) = Teoría Relativa de la Moneda, aún no está traducida en español, contáctenos para contribuir a su traducción.<br/><a href="http://trm.creationmonetaire.info">Saber más a propósito de la TRM</a> y las monedas libres.'},TIP:{MENU_BTN_CURRENCY:"El menú <b>{{'MENU.CURRENCY'|translate}}</b> permite consultar las <b>reglas de la moneda</b> y su estado.",CURRENCY_WOT:"El <b>número de miembros</b> demuestra la importancia de la comunidad y permite <b>seguir su evolución</b>.",CURRENCY_MASS:"Siga aquí la <b>cantidad total de moneda</b> existente y su <b>distribución media</b> por miembro.<br/><br/>Esto permite juzgar la <b>importancia de un importe</b>, en relación con lo que <b>poseen los otros</b> en sus cuentas (como media).",CURRENCY_UNIT_RELATIVE:"La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que los importes en {{currency|capitalize}} han sido divididos entre el valor del <b>Dividendo Universal</b> (DU).<br/><br/><small> Esta unidad relativa es <b>pertinente</b>, porque permanece estable, independiente de la cantidad de moneda que aumenta constantemente.</small>",CURRENCY_CHANGE_UNIT:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes <b>directamente en {{currency|capitalize}}</b> (en lugar de &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, es decir, relativo al Dividendo Universal (el monto co-producido por cada miembro).",CURRENCY_RULES:"Las <b>reglas</b> de la moneda fijan su funcionamiento <b>exacto y previsible</b>.<br/><br/>Es el propio ADN de la moneda, que hace que su código monetario sea <b>legible y transparente</b>.",MENU_BTN_NETWORK:"El menú <b>{{'MENU.NETWORK'|translate}}</b> permite consultar el estado de la red.",NETWORK_BLOCKCHAIN:"Todas las operaciones de la moneda están registradas dentro de un grand libro de cuenta <b>público e infalsificable</b>, también llamado <b>cadena de bloques</b> (<em>BlockChain</em> en inglés).",NETWORK_PEERS:"Los <b>nodos</b> visibles aquí corresponden a los <b>ordenadores que actualizan y controlan</b> la cadena de bloques.<br/><br/>Entre más nodos estén conectados, la moneda tendrá una gestión más <b>descentralizada</b> y digna de confianza.",NETWORK_PEERS_BLOCK_NUMBER:"Este <b>número</b> (en verde) indica el <b>último bloque validado</b> por este nodo (última pagina escrita dentro del grand libro de cuentas).<br/><br/>El color verde indica que este bloque ha sido también validado por <b>la mayoría de los otros nodos</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Cada miembro</b>, equipado de un ordenador conectador a Internet, <b>puede participar añadiendo un nodo</b>.  Necesita <b>instalar el programa Duniter</b> (libre y gratis). <a href="{{installDocUrl}}" target="_system">Ver el manual de uso &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"El menú <b>{{'ACCOUNT.TITLE'|translate}}</b> permite acceder a la gestión de su cuenta.",MENU_BTN_ACCOUNT_MEMBER:"Consulte aquí el estado de su cuenta y la información sobre sus certificaciones.",WALLET_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus certificaciones (recibidas y emitidas).",WALLET_RECEIVED_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.",WALLET_GIVEN_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.",WALLET_BALANCE:"El <b>saldo</b> de su cuenta se visualiza aquí.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.",WALLET_PUBKEY:"Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.",WALLET_SEND:"Realizar un pago en algunos clics",WALLET_SEND_NO_MONEY:"Realizar un pago en algunos clics.<br/>(Su saldo ya no lo permite)",WALLET_OPTIONS:"Este botón permite acceder a las <b>acciones de adhesión</b> y de seguridad.<br/><br/>¡No olvide echar un vistazo!",WALLET_RECEIVED_CERTS:"Se exhibirá aquí la lista de las personas que le han certificado.",WALLET_CERTIFY:"El botón <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permite seleccionar una identidad y certificarla.<br/><br/>Sólo usuarios <b>miembros</b> pueden certificar a otros.",WALLET_CERT_STOCK:"Su stock de certificaciones (emitidas) es limitado a <b>{{sigStock}} certificaciones</b>.<br/><br/>Este stock se renueva con el tiempo, a medida que las certificaciones caducan.",MENU_BTN_TX_MEMBER:"El menú <b>{{'MENU.TRANSACTIONS'|translate}}</b> permite consultar su saldo, el historial de sus transacciones y mandar un pago.",MENU_BTN_TX:"Consulte aquí <b>el historial de sus transacciones</b> y efectúe nuevas operaciones.",MENU_BTN_WOT:"El menú <b>{{'MENU.WOT'|translate}}</b> permite buscar <b>usuarios</b> de la moneda (miembro o no).",WOT_SEARCH_TEXT_XS:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública).<br/><br/>La búsqueda se iniciará automáticamente.",
-WOT_SEARCH_TEXT:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública). <br/><br/>Luego, pulsa en la tecla <b>Entrada</b> para iniciar la búsqueda.",WOT_SEARCH_RESULT:"Visualiza la ficha detallada simplemente <b>haciendo un clic</b> sobre una línea.",WOT_VIEW_CERTIFICATIONS:"La línea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> muestra cuántos miembros han validado esta identidad.<br/><br/>Estas certificaciones atestiguan que la cuenta pertenece a <b>una persona humana viviente</b> y que no tenga <b>ninguna otra cuenta miembro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesita al menos <b>{{sigQty}} certificaciones</b> para ser miembro y recibir el <b>Dividendo Universal</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic aquí permite abrir <b>la lista de todas las certificaciones</b> de la identidad (recibidas y emitidas).",WOT_VIEW_CERTIFY:"El botón <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permite añadir su certificación a esta identidad.",CERTIFY_RULES:"<b>Atención:</b> Certificar solamente <b>personas físicas vivas</b>, que no posean ninguna otra cuenta miembro.<br/><br/>¡La seguridad de la moneda depende de la vigilancia de cada uno!",MENU_BTN_SETTINGS:"Los <b>{{'MENU.SETTINGS'|translate}}</b> le permitirán configurar la aplicación.",HEADER_BAR_BTN_PROFILE:"Haga un clic aquí para acceder a su <b>perfil de usuario</b>",SETTINGS_CHANGE_UNIT:"Podrá <b>cambiar la unidad de visualización</b> de los importes haciendo un clic más arriba.<br/><br/>- Desactive la opción para visualizar los importes en {{currency|capitalize}}.<br/>- Active la opción para visualizar los importes relativos al {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (todos los importes serán <b>dividido</b> entre el Dividendo Universal actual).",END_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>¡Buena suerte en este nuevo mundo de la <b>economía libre</b> !",END_NOT_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>Si quiere utilizar la moneda {{currency|capitalize}}, tiene que hacer un clic en <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> más abajo."}}}),e.translations("fr-FR",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Clé publique",MEMBER:"Membre",BLOCK:"Bloc",BTN_OK:"OK",BTN_YES:"Oui",BTN_NO:"Non",BTN_SEND:"Envoyer",BTN_SEND_MONEY:"Faire un virement",BTN_SEND_MONEY_SHORT:"Virement",BTN_SAVE:"Enregistrer",BTN_YES_SAVE:"Oui, Enregistrer",BTN_YES_CONTINUE:"Oui, Continuer",BTN_SHOW:"Voir",BTN_SHOW_PUBKEY:"Afficher la clé publique",BTN_RELATIVE_UNIT:"Afficher les montants en DU ?",BTN_BACK:"Retour",BTN_NEXT:"Suivant",BTN_IMPORT:"Importer",BTN_CANCEL:"Annuler",BTN_CLOSE:"Fermer",BTN_LATER:"Plus tard",BTN_LOGIN:"Se connecter",BTN_LOGOUT:"Déconnexion",BTN_ADD_ACCOUNT:"Nouveau compte",BTN_SHARE:"Partager",BTN_EDIT:"Modifier",BTN_DELETE:"Supprimer",BTN_ADD:"Ajouter",BTN_SEARCH:"Rechercher",BTN_REFRESH:"Actualiser",BTN_RETRY:"Recommencer",BTN_START:"Commencer",BTN_CONTINUE:"Continuer",BTN_CREATE:"Créer",BTN_UNDERSTOOD:"J'ai compris",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Visite guidée",BTN_HELP_TOUR_SCREEN:"Découvrir cet écran",BTN_DOWNLOAD:"Télécharger",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Télécharger le relevé du compte",BTN_MODIFY:"Modifier",CHOOSE_FILE:"Déposez votre fichier <br/>ou cliquez pour le sélectionner",DAYS:"jours",NO_ACCOUNT_QUESTION:"Pas encore de compte ? Créez-en un gratuitement !",SEARCH_NO_RESULT:"Aucun résultat trouvé",LOADING:"Veuillez patienter...",LOADING_WAIT:"Veuillez patienter...<br/><small>(Attente de disponibilité du noeud)</small>",SEARCHING:"Recherche en cours...",FROM:"De",TO:"À",COPY:"Copier",LANGUAGE:"Langue",UNIVERSAL_DIVIDEND:"Dividende universel",UD:"DU",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vide)",UID:"Pseudonyme",ENABLE:"Activé",DISABLE:"Désactivé",RESULTS_LIST:"Résultats",RESULTS_COUNT:"{{count}} résultats",EXECUTION_TIME:"exécuté en {{duration|formatDurationMs}}",SHOW_VALUES:"Afficher les valeurs en clair ?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filtres",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",POPOVER_SHARE:{TITLE:"Partager",SHARE_ON_TWITTER:"Partager sur Twitter",SHARE_ON_FACEBOOK:"Partager sur Facebook",SHARE_ON_DIASPORA:"Partager sur Diaspora*",SHARE_ON_GOOGLEPLUS:"Partager sur Google+"},FILE:{DATE:"Date :",TYPE:"Type :",SIZE:"Taille :",VALIDATING:"Validation en cours..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choisir la source :",BTN_PICTURE_GALLERY:"Galerie",BTN_PICTURE_CAMERA:"<b>Caméra</b>"},MENU:{HOME:"Accueil",WOT:"Annuaire",CURRENCY:"Monnaie",ACCOUNT:"Mon compte",WALLETS:"Mes portefeuilles",TRANSFER:"Virement",SCAN:"Scanner",SETTINGS:"Paramètres",NETWORK:"Réseau",TRANSACTIONS:"Mes opérations"},ABOUT:{TITLE:"À propos",LICENSE:"Application <b>libre</b> (Licence GNU AGPLv3).",LATEST_RELEASE:"Il existe une <b>version plus récente</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Veuillez mettre à jour {{'COMMON.APP_NAME'|translate}} (dernière version : <b>v{{version}}</b>)",CODE:"Code source :",OFFICIAL_WEB_SITE:"Site web officiel :",DEVELOPERS:"Développé par :",FORUM:"Forum :",PLEASE_REPORT_ISSUE:"N'hésitez pas à nous remonter les anomalies rencontrées",REPORT_ISSUE:"Remonter un problème",BTN_OPEN_DEV_WINDOW:"Ouvrir la fenêtre de debuggage"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenue dans l'application Cesium !",MESSAGE:"Recevez et envoyez de la monnaie libre {{currency|abbreviate}}",BTN_CURRENCY:"Explorer la monnaie {{name|abbreviate}}",BTN_ABOUT:"à propos",BTN_HELP:"Aide en ligne",REPORT_ISSUE:"anomalie",NOT_YOUR_ACCOUNT_QUESTION:'Vous n\'êtes pas propriétaire du compte <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Déconnecter ce compte",CONNECTION_ERROR:'Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nœud <a class="positive" ng-click="doQuickFix(\'settings\')">dans les paramètres</a>.'},SETTINGS:{TITLE:"Paramètres",DISPLAY_DIVIDER:"Affichage",STORAGE_DIVIDER:"Stockage",NETWORK_SETTINGS:"Réseau",PEER:"Adresse du nœud Duniter",PEER_SHORT:"Adresse du nœud",PEER_CHANGED_TEMPORARY:"Adresse utilisée temporairement",USE_LOCAL_STORAGE:"Activer le stockage local",USE_LOCAL_STORAGE_HELP:"Permet de sauvegarder vos paramètres",WALLETS_SETTINGS:"Mes portefeuilles",USE_WALLETS_ENCRYPTION:"Sécuriser la liste ?",USE_WALLETS_ENCRYPTION_HELP:"Permet de sécuriser la liste de vos portefeuilles (par chiffrement), en exigeant une authentification pour y accéder.",ENABLE_HELPTIP:"Activer les bulles d'aide contextuelles",ENABLE_UI_EFFECTS:"Activer les effets visuels",HISTORY_SETTINGS:"Mes opérations",DISPLAY_UD_HISTORY:"Afficher les dividendes produits ?",TX_HISTORY_AUTO_REFRESH:"Rafraîchir automatiquement",TX_HISTORY_AUTO_REFRESH_HELP:"Rafraîchit le solde et les opérations automatiquement, à chaque nouveau bloc du réseau.",AUTHENTICATION_SETTINGS:"Authentification",KEEP_AUTH:"Désauthentification automatique",KEEP_AUTH_SHORT:"Désauthentification",KEEP_AUTH_HELP:"Définit le moment où l'authentification est nettoyée de la mémoire.",KEEP_AUTH_OPTION:{NEVER:"Après chaque opération",SECONDS:"Après {{value}}s d'inactivité",MINUTE:"Après {{value}}min d'inactivité",MINUTES:"Après {{value}}min d'inactivité",HOUR:"Après {{value}}h d'inactivité",ALWAYS:"A la fin de la session"},KEYRING_FILE:"Fichier de trousseau",KEYRING_FILE_HELP:'Permet de vous <b>connecter</b> automatiquement à chaque lancement<br/>et même de vous <b>authentifier</b> (seulement si "Expiration de l\'authentification" est configurée "à la fin de la session").',REMEMBER_ME:"Se souvenir de moi ?",REMEMBER_ME_HELP:"Permet de rester identifié d'une session à l'autre, en conservant localement la clé publique.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restaurer les valeurs par défaut",EXPERT_MODE:"Activer le mode expert",EXPERT_MODE_HELP:"Permet un affichage plus détaillé.",BLOCK_VALIDITY_WINDOW:"Délai d'incertitude des blocs",BLOCK_VALIDITY_WINDOW_SHORT:"Délai d'incertitude",BLOCK_VALIDITY_WINDOW_HELP:"Délai avant de considérer qu'une information est validée",BLOCK_VALIDITY_OPTION:{NONE:"Aucun délai",N:"{{time | formatDuration}} ({{count}} blocs)"},POPUP_PEER:{TITLE:"Nœud Duniter",HOST:"Adresse",HOST_HELP:"Adresse : serveur:port",USE_SSL:"Sécurisé ?",USE_SSL_HELP:"(Chiffrement SSL)",BTN_SHOW_LIST:"Liste des noeuds"}},BLOCKCHAIN:{HASH:"Hash : {{hash}}",VIEW:{HEADER_TITLE:"Bloc #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloc courant",TITLE:"Bloc #{{number|formatInteger}}",COMPUTED_BY:"Calculé par le noeud de",SHOW_RAW:"Voir le fichier brut",TECHNICAL_DIVIDER:"Informations techniques",VERSION:"Version du format",HASH:"Hash calculé",UNIVERSAL_DIVIDEND_HELP:"Monnaie co-produite par chacun des {{membersCount}} membres",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Difficulté minimale",POW_MIN_HELP:"Difficulté imposée pour le calcul du hash",DATA_DIVIDER:"Données",IDENTITIES_COUNT:"Nouvelles identités",JOINERS_COUNT:"Nouveaux membres",ACTIVES_COUNT:"Renouvellements",ACTIVES_COUNT_HELP:"Membres ayant renouvelé leur adhésion",LEAVERS_COUNT:"Membres sortants",LEAVERS_COUNT_HELP:"Membres ne souhaitant plus de certification",EXCLUDED_COUNT:"Membres exclus",EXCLUDED_COUNT_HELP:"Anciens membres exclus par non renouvellement ou manque de certifications",REVOKED_COUNT:"Identités révoquées",REVOKED_COUNT_HELP:"Ces comptes ne pourront plus être membres",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Opération de change",TX_OUTPUT_UNLOCK_CONDITIONS:"Conditions de déblocage",TX_OUTPUT_OPERATOR:{AND:"et",OR:"ou"},TX_OUTPUT_FUNCTION:{SIG:"<b>Signature</b> de ",XHX:"<b>Mot de passe</b>, dont SHA256 =",CSV:"Bloqué pendant",CLTV:"Bloqué jusqu'à"}},LOOKUP:{TITLE:"Blocs",NO_BLOCK:"Aucun bloc",LAST_BLOCKS:"Derniers blocs :",BTN_COMPACT:"Compacter"}},CURRENCY:{VIEW:{TITLE:"Monnaie",TAB_CURRENCY:"Monnaie",TAB_WOT:"Toile de confiance",TAB_NETWORK:"Réseau",TAB_BLOCKS:"Blocs",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} est une <b>monnaie libre</b>, démarrée {{firstBlockTime|formatFromNow}}. Elle compte actuellement <b>{{N}} membres</b>, qui produisent et perçoivent un <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a> (DU), chaque {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Règles du réseau",CURRENCY_NAME:"Nom de la monnaie",MEMBERS:"Nombre de membres",MEMBERS_VARIATION:"Variation depuis le dernier DU",MONEY_DIVIDER:"Monnaie",MASS:"Masse monétaire",SHARE:"Masse par membre",UD:"Dividende universel",C_ACTUAL:"Croissance actuelle",MEDIAN_TIME:"Heure de la blockchain",POW_MIN:"Niveau minimal de difficulté de calcul",MONEY_RULES_DIVIDER:"Règles de la monnaie",C_RULE:"Croissance théorique cible",UD_RULE:"Calcul du dividende universel",DT_REEVAL:"Période de revalorisation du DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Tous les <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date de la 1ère revalorisation",SIG_QTY_RULE:"Nombre de certifications requises pour devenir membre",SIG_STOCK:"Nombre maximal de certifications émises par membre",SIG_PERIOD:"Délai minimal d'attente entre 2 certifications successives émises par une même personne",SIG_WINDOW:"Délai limite de prise en compte d'une certification",SIG_VALIDITY:"Durée de vie d'une certification qui a été prise en compte",MS_WINDOW:"Délai limite de prise en compte d'une demande d'adhésion comme membre",MS_VALIDITY:"Durée de vie d'une adhésion qui a été prise en compte",STEP_MAX:"Distance maximale, par les certifications, entre un nouvel entrant et les membres référents",WOT_RULES_DIVIDER:"Règles de la toile de confiance",SENTRIES:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent",SENTRIES_FORMULA:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent (formule)",XPERCENT:"Pourcentage minimum de membres référents à atteindre pour respecter la règle de distance",AVG_GEN_TIME:"Temps moyen entre deux blocs",CURRENT:"actuel",MATH_CEILING:"PLAFOND",DISPLAY_ALL_RULES:"Afficher toutes les règles ?",BTN_SHOW_LICENSE:"Voir la licence",WOT_DIVIDER:"Toile de confiance"},LICENSE:{TITLE:"Licence de la monnaie",BTN_DOWNLOAD:"Télécharger le fichier",NO_LICENSE_FILE:"Fichier de licence non trouvé."}},NETWORK:{VIEW:{MEDIAN_TIME:"Heure de la blockchain",LOADING_PEERS:"Chargement des noeuds...",NODE_ADDRESS:"Adresse :",SOFTWARE:"Logiciel",WARN_PRE_RELEASE:"Pré-version (dernière version stable : <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> disponible",WS2PID:"Identifiant :",PRIVATE_ACCESS:"Accès privé",POW_PREFIX:"Préfixe de preuve de travail :",ENDPOINTS:{BMAS:"Interface sécurisée (SSL)",BMATOR:"Interface réseau TOR",WS2P:"Interface WS2P",ES_USER_API:"Noeud de données Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Nœuds",SIGNED_ON_BLOCK:"Signé sur le bloc",MIRROR:"miroir",MIRRORS:"Miroirs",MIRROR_PEERS:"Nœuds miroirs",PEER_LIST:"Liste des nœuds",MEMBERS:"Membres",MEMBER_PEERS:"Nœuds membres",ALL_PEERS:"Tous les nœuds",DIFFICULTY:"Difficulté",API:"API",CURRENT_BLOCK:"Bloc #",POPOVER_FILTER_TITLE:"Filtre",OFFLINE:"Hors ligne",OFFLINE_PEERS:"Nœuds hors ligne",BTN_SHOW_PEER:"Voir le nœud",VIEW:{TITLE:"Nœud",OWNER:"Appartient à",SHOW_RAW_PEERING:"Voir la fiche de pair",SHOW_RAW_CURRENT_BLOCK:"Voir le dernier bloc (format brut)",LAST_BLOCKS:"Derniers blocs connus",KNOWN_PEERS:"Nœuds connus :",GENERAL_DIVIDER:"Informations générales",ERROR:{LOADING_TOR_NODE_ERROR:"Récupération des informations du noeud impossible. Le délai d'attente est dépassé.",LOADING_NODE_ERROR:"Récupération des informations du noeud impossible"}}},WOT:{SEARCH_HELP:"Recherche (pseudo ou clé publique)",SEARCH_INIT_PHASE_WARNING:"Durant la phase de pré-inscription, la recherche des inscriptions en attente <b>peut être longue</b>. Merci de patienter...",REGISTERED_SINCE:"Inscrit le",REGISTERED_SINCE_BLOCK:"Inscrit au bloc #",NO_CERTIFICATION:"Aucune certification validée",NO_GIVEN_CERTIFICATION:"Aucune certification émise",NOT_MEMBER_PARENTHESIS:"(non membre)",IDENTITY_REVOKED_PARENTHESIS:"(identité révoquée)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(en cours de révocation)",EXPIRE_IN:"Expiration",NOT_WRITTEN_EXPIRE_IN:"Date limite<br/>de traitement",EXPIRED:"Expiré",PSEUDO:"Pseudonyme",SIGNED_ON_BLOCK:"Emise au bloc #{{block}}",WRITTEN_ON_BLOCK:"Ecrite au bloc #{{block}}",GENERAL_DIVIDER:"Informations générales",NOT_MEMBER_ACCOUNT:"Compte simple (non membre)",NOT_MEMBER_ACCOUNT_HELP:"Il s'agit d'un simple portefeuille, sans demande d'adhésion en attente.",TECHNICAL_DIVIDER:"Informations techniques",BTN_CERTIFY:"Certifier",BTN_YES_CERTIFY:"Oui, certifier",BTN_SELECT_AND_CERTIFY:"Nouvelle certification",ACCOUNT_OPERATIONS:"Opérations sur le compte",VIEW:{POPOVER_SHARE_TITLE:"Identité {{title}}"},LOOKUP:{TITLE:"Toile de confiance",NEWCOMERS:"Nouveaux membres",NEWCOMERS_COUNT:"{{count}} membres",PENDING:"Inscriptions en attente",PENDING_COUNT:"{{count}} inscriptions en attente",REGISTERED:"Inscrit {{sigDate | formatFromNow}}",MEMBER_FROM:"Membre depuis {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nouveaux membres",BTN_PENDING:"Inscriptions en attente",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",NO_PENDING:"Aucune inscription en attente.",NO_NEWCOMERS:"Aucun membre."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Recherche"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Certifications reçues",LIST:"Détail des certifications reçues",PENDING_LIST:"Certifications en attente de traitement",RECEIVED:"Certifications reçues",RECEIVED_BY:"Certifications reçues par {{uid}}",ERROR:"Certifications reçues en erreur",SENTRY_MEMBER:"Membre référent"},OPERATIONS:{TITLE:"{{uid}} - Opérations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications émises",SUMMARY:"Certifications émises",LIST:"Détail des certifications émises",PENDING_LIST:"Certifications en attente de traitement",SENT:"Certifications émises",SENT_BY:"Certifications émises par {{uid}}",ERROR:"Certifications émises en erreur"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Connexion',SCRYPT_FORM_HELP:"Veuillez saisir vos identifiants.<br>Pensez à vérifier que la clé publique est celle de votre compte.",PUBKEY_FORM_HELP:"Veuillez saisir une clé publique de compte :",FILE_FORM_HELP:"Choisissez le fichier de trousseau à utiliser :",SCAN_FORM_HELP:"Scanner le QR code d'un portefeuille.",SALT:"Identifiant secret",SALT_HELP:"Identifiant secret",SHOW_SALT:"Afficher l'identifiant secret ?",PASSWORD:"Mot de passe",PASSWORD_HELP:"Mot de passe",PUBKEY_HELP:"Clé publique ou pseudonyme",NO_ACCOUNT_QUESTION:"Vous n'avez pas encore de compte ?",HAVE_ACCOUNT_QUESTION:"Vous avez déjà un compte ?",CREATE_ACCOUNT:"Créer un compte...",CREATE_FREE_ACCOUNT:"Créer un compte gratuitement",FORGOTTEN_ID:"Mot de passe oublié ?",ASSOCIATED_PUBKEY:"Clé publique du trousseau :",BTN_METHODS:"Autres méthodes",BTN_METHODS_DOTS:"Changer de méthode...",METHOD_POPOVER_TITLE:"Méthodes",MEMORIZE_AUTH_FILE:"Mémoriser ce trousseau le temps de la session de navigation",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> Vous avez été <b>déconnecté</b> automatiquement, suite à une inactivité prolongée.',BTN_RELOGIN:"Me reconnecter",IDLE_WARNING:"Vous allez être déconnecté... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identifiant secret et mot de passe",SCRYPT_ADVANCED:"Salage avancé",FILE:"Fichier de trousseau",PUBKEY:"Clé publique ou pseudonyme",SCAN:"Scanner un QR code"},SCRYPT:{SIMPLE:"Salage léger",DEFAULT:"Salage standard",SECURE:"Salage sûr",HARDEST:"Salage le plus sûr",EXTREME:"Salage extrême",USER:"Salage personnalisé",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format de fichier attendu : <b>.yml</b> ou <b>.dunikey</b> (type PubSec, WIF ou EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentification',BTN_AUTH:"S'authentifier",GENERAL_HELP:"Veuillez vous authentifier :",EXPECTED_UID_HELP:'Veuillez vous authentifier sur le compte <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Veuillez vous authentifier sur le portefeuille <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Scanner le QR code de la <b>clef privée</b> du portefeuille."},ACCOUNT:{TITLE:"Mon compte",BALANCE:"Solde",LAST_TX:"Dernières transactions validées",BALANCE_ACCOUNT:"Solde du compte",NO_TX:"Aucune transaction",SHOW_MORE_TX:"Afficher plus",SHOW_ALL_TX:"Afficher tout",TX_FROM_DATE:"(limite actuelle à {{fromTime|medianFromNowShort}})",PENDING_TX:"Transactions en attente de traitement",VALIDATING_TX:"Transactions traitées, non validées",ERROR_TX:"Transactions non executées",ERROR_TX_SENT:"Transactions envoyées en échec",PENDING_TX_RECEIVED:"Transactions en attente de réception",EVENTS:"Evénements",OUT_DISTANCED:"Vos certifications actuelles proviennent d'un groupe trop isolé de la <a ng-click=\"showHelpModal('wot')\">Toile de Confiance</a> (TdC) : la <a ng-click=\"showHelpModal('distance_rule')\">règle de distance maximale</a> n'est pas respectée.<br/>Vous devez obtenir des certifications provenant d'autres secteurs de la TdC, ou bien attendre que celle-ci se resserre.",WAITING_MEMBERSHIP:"Demande d'adhésion envoyée. En attente d'acceptation.",WAITING_CERTIFICATIONS:"Vous devez <b>obtenir {{needCertificationCount}} certification(s)</b> pour devenir membre et produire le <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a>. Votre compte est cependant déjà opérationnel, pour recevoir et effectuer des paiements.",WAITING_CERTIFICATIONS_HELP:'Pour obtenir vos certifications, sollicitez uniquement des membres <b>qui vous connaissent suffisamment</b>, comme l\'exige <a ng-click="showLicenseModal()">la licence de la monnaie</a> que vous avez acceptée.<br/>Si vous ne connaissez pas suffisamment de membres, faites-le savoir sur <a ng-click="openLink($event, $root.settings.userForumUrl)">le forum utilisateur</a>.',WILL_MISSING_CERTIFICATIONS:"Vous allez bientôt <b>manquer de certifications</b> (au moins {{willNeedCertificationCount}} sont requises)",WILL_NEED_RENEW_MEMBERSHIP:"Votre adhésion comme membre <b>va expirer {{membershipExpiresIn|formatDurationTo}}</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a> d'ici là.",NEED_RENEW_MEMBERSHIP:"Vous n'êtes plus membre de la monnaie, car <b>votre adhésion a expiré</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vous n'êtes plus membre de la monnaie, <b>pour manque de certifications</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NO_WAITING_MEMBERSHIP:"Aucune demande d'adhésion en attente. Si vous souhaitez <b>devenir membre</b>, pensez à <a ng-click=\"doQuickFix('membership')\">envoyer la demande d'adhésion</a>.",CERTIFICATION_COUNT:"Certifications reçues",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Certifications envoyées",BTN_RECEIVE_MONEY:"Encaisser",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Basculer vers une autre identité...",BTN_FIX_MEMBERSHIP:"Renvoyer la demande d'adhésion...",BTN_MEMBERSHIP_RENEW:"Renouveler l'adhésion",BTN_MEMBERSHIP_RENEW_DOTS:"Renouveler l'adhésion...",BTN_MEMBERSHIP_OUT_DOTS:"Arrêter l'adhésion...",BTN_SECURITY_DOTS:"Compte et sécurité...",BTN_SHOW_DETAILS:"Afficher les infos techniques",LOCKED_OUTPUTS_POPOVER:{TITLE:"Montant verrouillé",DESCRIPTION:"Voici les conditions de déverrouillage de ce montant :",DESCRIPTION_MANY:"Cette transaction est composé de plusieurs parties, dont voici les conditions de déverrouillage :",LOCKED_AMOUNT:"Conditions pour le montant :"},NEW:{TITLE:"Création de compte",INTRO_WARNING_TIME:"La création d'un compte sur {{name|capitalize}} est très simple. Veuillez néanmoins prendre suffisament de temps pour faire correctement cette formalité (pour ne pas oublier les identifiants, mots de passe, etc.).",INTRO_WARNING_SECURITY:"Vérifiez que le matériel que vous utilisez actuellement (ordinateur, tablette, téléphone) <b>est sécurisé et digne de confiance</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus à jour, pare-feu activé, session protégée par mot de passe ou code pin, etc.",INTRO_HELP:"Cliquez sur <b>{{'COMMON.BTN_START'|translate}}</b> pour débuter la création de compte. Vous serez guidé étape par étape.",REGISTRATION_NODE:"Votre inscription sera enregistrée via le noeud Duniter <b>{{server}}</b>, qui le diffusera ensuite au reste du réseau de la monnaie.",REGISTRATION_NODE_HELP:"Si vous ne faites pas confiance en ce noeud, veuillez en changer <a ng-click=\"doQuickFix('settings')\">dans les paramètres</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Choisissez le type de compte à créer :",MEMBER_ACCOUNT:"Compte membre",MEMBER_ACCOUNT_TITLE:"Création d'un compte membre",MEMBER_ACCOUNT_HELP:"Si vous n'êtes pas encore inscrit en tant qu'individu (un seul compte possible par individu). Ce compte permet de co-produire la monnaie, en recevant un <b>dividende universel</b> chaque {{parameters.dt|formatPeriod}}.",WALLET_ACCOUNT:"Simple portefeuille",WALLET_ACCOUNT_TITLE:"Création d'un portefeuille",WALLET_ACCOUNT_HELP:"Pour tous les autres cas, par exemple si vous avez besoin d'un compte supplémentaire.<br/>Aucun dividende universel ne sera créé par ce compte.",SALT_WARNING:"Choisissez votre identifiant secret.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez le bien</b> : en cas de perte, plus personne ne pourra accéder à votre compte !",PASSWORD_WARNING:"Choisissez un mot de passe.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez bien ce mot de passe</b : en cas de perte, plus personne ne pourra accéder à votre compte !",PSEUDO_WARNING:"Choisissez un pseudonyme.<br/>Il sert aux autres membres, pour vous identifier plus facilement.<div class='hidden-xs'><br/>Il <b>ne pourra pas être modifié</b>, sans refaire un compte.</div><br/><br/>Il ne doit contenir <b>ni espace, ni de caractère accentué</b>.<div class='hidden-xs'><br/>Exemple : <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Pseudonyme",PSEUDO_HELP:"Pseudonyme",SALT_CONFIRM:"Confirmation",SALT_CONFIRM_HELP:"Confirmation de l'identifiant secret",PASSWORD_CONFIRM:"Confirmation",PASSWORD_CONFIRM_HELP:"Confirmation du mot de passe",SLIDE_6_TITLE:"Confirmation :",COMPUTING_PUBKEY:"Calcul en cours...",LAST_SLIDE_CONGRATULATION:"Vous avez saisi toutes les informations nécessaires : Bravo !<br/>Vous pouvez maintenant <b>envoyer la demande de création</b> de compte.</b><br/><br/>Pour information, la clé publique ci-dessous identifiera votre futur compte.<br/>Elle pourra être communiquée à des tiers pour recevoir leurs paiements.<br/><b>Il n'est pas obligatoire</b> de la noter ici, vous pourrez également le faire plus tard.",CONFIRMATION_MEMBER_ACCOUNT:"<b class=\"assertive\">Avertissement :</b> l'identifiant secret, le mot de passe et le pseudonyme ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir envoyer cette demande d'inscription ?",CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Avertissement :</b> l\'identifiant secret et le mot de passe ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir continuer avec ces identifiants ?',CHECKING_PSEUDO:"Vérification...",PSEUDO_AVAILABLE:"Pseudonyme disponible",PSEUDO_NOT_AVAILABLE:"Pseudonyme non disponible",INFO_LICENSE:"Avant de créer un compte membre, <b>veuillez lire et accepter la licence</b> d'usage de la monnaie :",BTN_ACCEPT:"J'accepte",BTN_ACCEPT_LICENSE:"J'accepte la licence"},POPUP_REGISTER:{TITLE:"Choisissez un pseudonyme",HELP:"Un pseudonyme est obligatoire pour devenir membre."},SELECT_IDENTITY_MODAL:{TITLE:"Sélection de l'identité",HELP:'Plusieurs <b>identités différentes</b> ont été envoyées, pour la clé publique <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Veuillez sélectionner le dossier à utiliser :'},SELECT_WALLET_MODAL:{TITLE:"Sélection du portefeuille"},WALLET_LIST:{TITLE:"Mes portefeuilles",BTN_NEW:"Ajouter un portefeuille",BTN_DOWNLOAD:"Télécharger la liste",BTN_IMPORT_FILE_DOTS:"Importer depuis un fichier...",NO_WALLET:"Aucun portefeuille secondaire",BTN_DELETE:"Retirer un portefeuille secondaire...",BTN_RENAME:"Renommer le portefeuille",EXPORT_FILENAME:"mes_portefeuilles-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total : ",EDIT_POPOVER:{TITLE:"Renommer le portefeuille",HELP:"Renseignez le nouveau nom",NAME_HELP:"Nom du portefeuille"},IMPORT_MODAL:{TITLE:"Importer des portefeuilles",HELP:"Pour <b>importer des porftefeuilles</b>, veuillez glisser dans la zone ci-dessous le fichier de la liste des portefeuilles, ou bien cliquer dans la zone pour rechercher un fichier.",WALLET_COUNT:"<b>{{count}}</b> nouveau{{count > 1 ? 'x' : ''}} portefeuille{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"Aucun nouveau portefeuille"}},SECURITY:{ADD_QUESTION:"Ajouter une question personnalisée",BTN_CLEAN:"Vider",BTN_RESET:"Réinitialiser",DOWNLOAD_REVOKE:"Sauvegarder mon fichier de révocation",DOWNLOAD_REVOKE_HELP:"Disposer d'un fichier de révocation est important, par exemple en cas de perte de vos identifiants. Il vous permet de <b>sortir ce compte de la toile de confiance</b>, en redevenant ainsi un simple portefeuille.",GENERATE_KEYFILE:"Générer mon fichier de trousseau...",GENERATE_KEYFILE_HELP:"Génère un fichier permettant de vous authentifier sans saisir vos identifiants.<br/><b>Attention :</b> ce fichier contiendra votre trousseau de compte (clefs publique et secrète) ; il est donc très important de le mettre en lieu sûr !",KEYFILE_FILENAME:"trousseau-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformer en compte membre...",MEMBERSHIP_IN_HELP:"Permet de <b>transformer</b> un compte simple portefeuille <b>en compte membre</b>, en envoyant une demande d'adhésion. Utile uniquement si vous n'avez pas déjà un autre compte membre.",SEND_IDENTITY:"Publier son identité...",SEND_IDENTITY_HELP:"Permet d'associer un pseudonyme à ce compte, mais <b>sans faire de demande d'adhésion</b> pour devenir membre. Cette association n'est généralement pas utile, car la validité de cette association de pseudonyme est limitée dans le temps.",HELP_LEVEL:"Pour générer un fichier de sauvegarde de vos identifiants, choisissez <strong> au moins {{nb}} questions :</strong>",LEVEL:"Niveau de sécurité",LOW_LEVEL:'Faible <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Moyen <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"Comment s'appelait votre meilleur ami lorsque vous étiez adolescent ?",QUESTION_2:"Comment s'appelait votre premier animal de compagnie ?",QUESTION_3:"Quel est le premier plat que vous avez appris à cuisiner ?",QUESTION_4:"Quel est le premier film que vous avez vu au cinéma ?",QUESTION_5:"Où êtes-vous allé la première fois que vous avez pris l'avion ?",QUESTION_6:"Comment s'appelait votre instituteur préféré à l'école primaire ?",QUESTION_7:"Quel serait selon vous le métier idéal ?",QUESTION_8:"Quel est le livre pour enfants que vous préférez ?",QUESTION_9:"Quel était le modèle de votre premier véhicule ?",QUESTION_10:"Quel était votre surnom lorsque vous étiez enfant ?",QUESTION_11:"Quel était votre personnage ou acteur de cinéma préféré lorsque vous étiez étudiant ?",QUESTION_12:"Quel était votre chanteur ou groupe préféré lorsque vous étiez étudiant ?",QUESTION_13:"Dans quelle ville vos parents se sont-ils rencontrés ?",QUESTION_14:"Comment s'appelait votre premier patron ?",QUESTION_15:"Quel est le nom de la rue où vous avez grandi ?",QUESTION_16:"Quel est le nom de la première plage où vous vous êtes baigné ?",QUESTION_17:"Quel est le premier album que vous avez acheté ?",QUESTION_18:"Quel est le nom de votre équipe de sport préférée ?",QUESTION_19:"Quel était le métier de votre grand-père ?",RECOVER_ID:"Retrouver mon mot de passe...",RECOVER_ID_HELP:"Si vous disposez d'un <b>fichier de sauvegarde de vos identifiants</b>, vous pouvez les retrouver en répondant correctement à vos questions personnelles.",REVOCATION_WITH_FILE:"Révoquer mon compte membre...",REVOCATION_WITH_FILE_DESCRIPTION:"Si vous avez <b>définitivement perdus vos identifiants</b> de compte membre (ou que la sécurité du compte est compromise), vous pouvez utiliser <b>le fichier de révocation</b> du compte pour <b>forcer sa sortie définitive de la toile de confiance</b>.",REVOCATION_WITH_FILE_HELP:"Pour <b>révoquer définitivement</b> un compte membre, veuillez glisser dans la zone ci-dessous votre fichier de révocation, ou bien cliquer dans la zone pour rechercher un fichier.",REVOCATION_WALLET:"Révoquer immédiatement ce compte",REVOCATION_WALLET_HELP:"Demander la révocation de votre identité entraîne la <b>sortie de la toile de confiance</b> (définitive pour le pseudonyme et la clé publique associés). Le compte ne pourra plus produire de Dividende Universel.<br/>Vous pourrez toutefois encore vous y connecter, comme à un simple portefeuille.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Sauvegarder mes identifiants...",SAVE_ID_HELP:"Création d'un fichier de sauvegarde, pour <b>retrouver votre mot de passe</b> (et l'identifiant secret) <b>en cas de d'oubli</b>. Le fichier est <b>sécurisé</b> (chiffré) à l'aide de questions personnelles.",STRONG_LEVEL:'Fort <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Compte et sécurité",KEYFILE:{PUBSEC_FORMAT:"Format PubSec.",
-PUBSEC_FORMAT_HELP:"Ce format stocke votre trousseau de manière très simple. Il est compatible notamment avec Cesium, ğannonce et Duniter.<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",WIF_FORMAT:"Format WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Ce format stocke votre trousseau en y intégrant une somme de contrôle pour vérifier l'intégrité du fichier. Il est compatible notamment avec les portefeuilles papier (Duniter paper wallet).<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",EWIF_FORMAT:"Format EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Ce format stocke votre trousseau <b>de manière chiffrée</b> à partir d'une phrase secrète de votre choix. Il intègre aussi une somme de contrôle pour vérifier l'intégrité du fichier.<br/><b>Attention :</b> Veillez à toujours vous souvenir de votre phrase secrète !",PASSWORD_POPUP:{TITLE:"Fichier de trousseau chiffré",HELP:"Veuillez indiquer la phrase secrète :",PASSWORD_HELP:"Phrase secrète"},ERROR:{BAD_PASSWORD:"Phrase secrète incorrecte",BAD_CHECKSUM:"Somme de contrôle incorrecte"}}},FILE_NAME:"{{currency}} - Relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"}},TRANSFER:{TITLE:"Virement",SUB_TITLE:"Faire un virement",SUB_TITLE_ALL:"Vider le compte",FROM:"De",TO:"À",AMOUNT:"Montant",AMOUNT_HELP:"Montant",COMMENT:"Commentaire",COMMENT_HELP:"Commentaire",BTN_SEND:"Envoyer",BTN_ADD_COMMENT:"Ajouter un commentaire",REST:"Reste du compte",REST_TO:"à",WARN_COMMENT_IS_PUBLIC:"Veuillez noter que <b>les commentaires sont publics</b> (non chiffrés).",MODAL:{TITLE:"Virement"}},ERROR:{UNKNOWN_URI_FORMAT:"Format d'URI inconnu",PUBKEY_INVALID_CHECKSUM:"Clé publique invalide (bad checksum).",POPUP_TITLE:"Erreur",UNKNOWN_ERROR:"Erreur inconnue",CRYPTO_UNKNOWN_ERROR:"Votre navigateur ne semble pas compatible avec les fonctionnalités de cryptographie.",DOWNLOAD_KEYFILE_FAILED:"Échec de la génération du fichier de trousseau.",EQUALS_TO_PSEUDO:"Doit être différent du pseudonyme",EQUALS_TO_SALT:"Doit être différent de l'identifiant secret",FIELD_REQUIRED:"Champ obligatoire",FIELD_TOO_SHORT:"Valeur trop courte",FIELD_TOO_SHORT_WITH_LENGTH:"Valeur trop courte ({{minLength}} caractères min)",FIELD_TOO_LONG:"Valeur trop longue",FIELD_TOO_LONG_WITH_LENGTH:"Valeur trop longue ({{maxLength}} caractères max)",FIELD_MIN:"Valeur minimale : {{min}}",FIELD_MAX:"Valeur maximale : {{max}}",FIELD_ACCENT:"Caractères accentués et virgules non autorisés",FIELD_NOT_NUMBER:"Valeur numérique attendue",FIELD_NOT_INT:"Valeur entière attendue",FIELD_NOT_EMAIL:"Adresse email non valide",PASSWORD_NOT_CONFIRMED:"Ne correspond pas au mot de passe",SALT_NOT_CONFIRMED:"Ne correspond pas à l'identifiant secret",SEND_IDENTITY_FAILED:"Échec de l'inscription",SEND_CERTIFICATION_FAILED:"Échec de la certification",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vous ne pouvez pas effectuer de certification, car votre compte n'est <b>pas membre</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vous ne pouvez pas effectuer de certification, car votre compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.",NOT_MEMBER_FOR_CERTIFICATION:"Votre compte n'est pas encore membre.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.",LOGIN_FAILED:"Erreur lors de la connexion.",LOAD_IDENTITY_FAILED:"Erreur de chargement de l'identité.",LOAD_REQUIREMENTS_FAILED:"Erreur de chargement des prérequis de l'identité.",SEND_MEMBERSHIP_IN_FAILED:"Échec de la tentative d'entrée dans la communauté.",SEND_MEMBERSHIP_OUT_FAILED:"Échec de l'arrêt de l'adhésion.",REFRESH_WALLET_DATA:"Échec du rafraîchissement du portefeuille.",GET_CURRENCY_PARAMETER:"Échec de la récupération des règles de la monnaie.",GET_CURRENCY_FAILED:"Chargement de la monnaie impossible. Veuillez réessayer plus tard.",SEND_TX_FAILED:"Échec du virement.",ALL_SOURCES_USED:"Veuillez attendre le calcul du prochain bloc (toutes vos sources de monnaie ont été utilisées).",NOT_ENOUGH_SOURCES:"Pas assez de change pour envoyer ce montant en une seule transaction.<br/>Montant maximum : {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Échec de la création du compte membre.",RESTORE_WALLET_DATA_ERROR:"Échec du rechargement des paramètres depuis le stockage local",LOAD_WALLET_DATA_ERROR:"Échec du chargement des données du portefeuille.",COPY_CLIPBOARD_FAILED:"Copie de la valeur impossible.",TAKE_PICTURE_FAILED:"Échec de la récupération de la photo.",SCAN_FAILED:"Échec du scan de QR-code.",SCAN_UNKNOWN_FORMAT:"Code non reconnu.",WOT_LOOKUP_FAILED:"Échec de la recherche.",LOAD_PEER_DATA_FAILED:"Lecture du nœud Duniter impossible. Veuillez réessayer ultérieurement.",NEED_LOGIN_FIRST:"Veuillez d'abord vous connecter.",AMOUNT_REQUIRED:"Le montant est obligatoire.",AMOUNT_NEGATIVE:"Montant négatif non autorisé.",NOT_ENOUGH_CREDIT:"Crédit insuffisant.",INVALID_NODE_SUMMARY:"Nœud injoignable ou adresse invalide.",INVALID_USER_ID:"Le pseudonyme ne doit contenir ni espace ni caractère spécial ou accentué.",INVALID_COMMENT:"Le champ 'référence' ne doit pas contenir de caractères accentués.",INVALID_PUBKEY:"La clé publique n'a pas le format attendu.",INVALID_PUBKEY_CHECKSUM:"Somme de contrôle invalide.",IDENTITY_REVOKED:"Cette identité <b>a été révoquée</b>. Elle ne peut plus devenir membre.",IDENTITY_REVOKED_WITH_TIME:"Cette identité <b>a été révoquée {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Elle ne peut plus devenir membre.",IDENTITY_PENDING_REVOCATION:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement. La certification est donc désactivée.",IDENTITY_INVALID_BLOCK_HASH:"Cette demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé) : cette personne doit renouveler sa demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_EXPIRED:"La publication de cette identité a expiré : cette personne doit effectuer une nouvelle demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_SANDBOX_FULL:"Le nœud Duniter utilisé par Cesium ne peut plus recevoir de nouvelles identités, car sa file d'attente est pleine.<br/><br/>Veuillez réessayer ultérieurement ou changer de nœud (via le menu <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identité non trouvée.",IDENTITY_TX_FAILED:"Échec du chargement des opérations.",WOT_PENDING_INVALID_BLOCK_HASH:"Adhésion non valide.",WALLET_INVALID_BLOCK_HASH:"Votre demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé).<br/>Vous devez <a ng-click=\"doQuickFix('fixMembership')\">envoyer une nouvelle demande</a> pour résoudre ce problème.",WALLET_IDENTITY_EXPIRED:"La publication de <b>votre identité a expirée</b>.<br/>Vous devez <a ng-click=\"doQuickFix('fixIdentity')\">publier à nouveau votre identité</a> pour résoudre ce problème.",WALLET_REVOKED:"Votre identité a été <b>révoquée</b> : ni votre pseudonyme ni votre clef publique ne pourra être utilisé à l'avenir pour un compte membre.",WALLET_HAS_NO_SELF:"Votre identité doit d'abord avoir été publiée, et ne pas être expirée.",AUTH_REQUIRED:"Authentification requise.",AUTH_INVALID_PUBKEY:'La clef attendue est <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identifiant ou mot de passe invalide.",AUTH_INVALID_FILE:"Fichier de trousseau invalide.",AUTH_FILE_ERROR:"Échec de l'ouverture du fichier de trousseau.",IDENTITY_ALREADY_CERTIFY:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est encore valide (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est en attente de traitement (date limite de traitement {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certification impossible",LOAD_NEWCOMERS_FAILED:"Échec du chargement des nouveaux membres.",LOAD_PENDING_FAILED:"Échec du chargement des inscriptions en attente.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre</b> pour pouvoir effectuer cette action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre (ou ancien membre)</b> pour pouvoir effectuer cette action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Vous devez avoir <b>publié votre identité</b> pour pouvoir effectuer cette action.",GET_BLOCK_FAILED:"Échec de la récupération du bloc.",INVALID_BLOCK_HASH:"Bloc non trouvé (hash différent).",DOWNLOAD_REVOCATION_FAILED:"Échec du téléchargement du fichier de révocation.",REVOCATION_FAILED:"Échec de la révocation.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identifiant secret ou mot de passe incorrect.",RECOVER_ID_FAILED:"Échec de la récupération des identifiants",LOAD_FILE_FAILED:"Échec du chargement du fichier",NOT_VALID_REVOCATION_FILE:"Fichier de révocation non valide (mauvais format de fichier)",NOT_VALID_SAVE_ID_FILE:"Fichier de récupération non valide (mauvais format de fichier)",NOT_VALID_KEY_FILE:"Fichier de trousseau non valide (format non reconnu)",EXISTING_ACCOUNT:"Vos identifiants correspondent à un compte déjà existant, dont la <a ng-click=\"showHelpModal('pubkey')\">clef publique</a> est :",EXISTING_ACCOUNT_REQUEST:"Veuillez modifier vos identifiants afin qu'ils correspondent à un compte non utilisé.",GET_LICENSE_FILE_FAILED:"Récupération du fichier de licence impossible.",CHECK_NETWORK_CONNECTION:"Aucun nœud ne semble accessible.<br/><br/>Veuillez <b>vérifier votre connexion Internet</b>.",ISSUE_524_TX_FAILED:"Échec du virement.<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>.",ADD_SECONDARY_WALLET_FAILED:"Échec de l'ajout du portefeuille secondaire.",UPDATE_WALLET_LIST_FAILED:"Échec du rafraîchissement des portefeuilles secondaires.",LOAD_WALLET_LIST_FAILED:"Échec du chargement des portefeuilles secondaires.",SAVE_WALLET_LIST_FAILED:"Échec de la sauvegarde des portefeuilles secondaires.",COULD_NOT_ADD_MAIN_WALLET:"Ce portefeuille <b>correspond au compte principal</b> avec lequel vous êtes connecté.<br/>Impossible de l'ajouter comme portefeuille secondaire.",COULD_NOT_ADD_EXISTING_WALLET:"Portefeuille déjà existant dans la liste.",UNKNOWN_WALLET_ID:"Portefeuille secondaire inconnu.",RESTORE_WALLET_LIST_FAILED:"Échec de la restauration des portefeuilles secondaires.",INVALID_FILE_FORMAT:"Format de fichier invalide.",SAME_TX_RECIPIENT:"Le destinataire doit être différent de l'émetteur."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Certification envoyée",NOT_ENOUGH_CREDIT:"Crédit insuffisant",TRANSFER_SENT:"Virement envoyé",COPY_TO_CLIPBOARD_DONE:"Copié dans le presse-papier",MEMBERSHIP_OUT_SENT:"Résiliation envoyée",NOT_NEED_MEMBERSHIP:"Vous êtes déjà membre.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Cette identité va bientôt manquer de certifications (au moins {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Cette identité n'a pas envoyée de demande d'adhésion. Elle le devra si elle souhaite devenir membre.",HAS_ALTERNATIVE_IDENTITIES:"Il existe <b>plusieurs identités</b> rattachées à cette clé publique. <b>Avant toute certification</b>, pensez à <a ng-click=\"doQuickFix('showSelectIdentities')\">consulter les autres identités</a> pour choisir la bonne, ou bien contacter le propriétaire du compte.",REVOCATION_SENT:"Révocation envoyée",REVOCATION_SENT_WAITING_PROCESS:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement.",FEATURES_NOT_IMPLEMENTED:"Cette fonctionnalité est encore en cours de développement.<br/>Pourquoi ne pas <b>contribuer à Cesium</b>, pour l'obtenir plus rapidement ? ;)",EMPTY_TX_HISTORY:"Aucune opération à exporter"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Avertissement</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avertissement de sécurité</b>',CERTIFY_RULES_TITLE_UID:"Certifier {{uid}}",CERTIFY_RULES:'<b class="assertive">Ne PAS certifier</b> un compte si vous pensez que :<br/><br/><ul><li>1.) il ne correspond pas à une personne <b>physique et vivante</b>.<li>2.) son propriétaire <b>possède un autre compte</b> déjà certifié.<li>3.) son propriétaire viole (volontairement ou non) la règle 1 ou 2 (par exemple en certifiant des comptes factices ou en double).</ul><br/><b>Êtes-vous sûr</b> de vouloir néanmoins certifier cette identité ?',FULLSCREEN:"Afficher l'application en plein écran ?",EXIT_APP:"Fermer l'application ?",TRANSFER:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",TRANSFER_ALL:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li><br/><li> - Reste : <b>{{restAmount}} {{unit}}</b> à <b>{{restTo}}</b></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",MEMBERSHIP_OUT:"Cette opération est <b>irréversible</b>.<br/></br/>Êtes-vous sûr de vouloir <b>résilier votre compte membre</b> ?",MEMBERSHIP_OUT_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>résilier votre adhésion</b> comme membre ?",LOGIN_UNUSED_WALLET_TITLE:"Erreur de saisie ?",LOGIN_UNUSED_WALLET:"Le compte connecté semble <b>inactif</b>.<br/><br/>Il s'agit probablement d'une <b>erreur de saisie</b> dans vos identifiants de connexion. Veuillez recommencer, en vérifiant que <b>la clé publique est celle de votre compte</b>.",FIX_IDENTITY:"Le pseudonyme <b>{{uid}}</b> va être publiée à nouveau, en remplacement de l'ancienne publication qui a expirée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",FIX_MEMBERSHIP:"Votre demande d'adhésion comme membre va être renvoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",MEMBERSHIP:"Votre demande d'adhésion comme membre va être envoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",RENEW_MEMBERSHIP:"Votre adhésion comme membre va être renouvelée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",REVOKE_IDENTITY:"Vous allez <b>revoquer définitivement cette identité</b>.<br/><br/>La clé publique et le pseudonyme associés <b>ne pourront plus jamais être utilisés</b> (pour un compte membre). <br/></br/><b>Êtes-vous sûr</b> de vouloir révoquer définitivement ce compte ?",REVOKE_IDENTITY_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>révoquer définitivement</b> ce compte ?",NOT_NEED_RENEW_MEMBERSHIP:"Votre adhésion n'a pas besoin d'être renouvelée (elle n'expirera que dans {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Êtes-vous sûr</b> de vouloir renouveler votre adhésion ?",SAVE_BEFORE_LEAVE:"Voulez-vous <b>sauvegarder vos modifications</b> avant de quitter la page ?",SAVE_BEFORE_LEAVE_TITLE:"Modifications non enregistrées",LOGOUT:"Êtes-vous sûr de vouloir vous déconnecter ?",USE_FALLBACK_NODE:"Nœud <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La transaction a été rejetée, à cause d'une anomalie connue (ticket #524) mais <b>non reproduite</b>.<br/><br/>Pour aider les développeurs à corriger cette erreur, <b>acceptez-vous la transmission de vos logs</b> par message ?<br/><small>(aucune donnée confidentielle n'est envoyée)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Fichier de révocation</b>",POPUP_REVOKE_MESSAGE:"Pour sécuriser votre compte, veuillez télécharger le <b>document de révocation de compte</b>. Il vous permettra le cas échéant d'annuler votre compte (en cas d'un vol de compte, d'un changement d'identifiant, d'un compte créé à tort, etc.).<br/><br/><b>Veuillez le stocker en lieu sûr.</b>"},HELP:{TITLE:"Aide en ligne",JOIN:{SECTION:"Inscription",SALT:"L'identifiant secret est très important. Il sert à mélanger le mot de passe, avant qu'il ne serve à calculer la <span class=\"text-italic\">clé publique</span> de votre compte (son numéro) et la clé secrète pour y accéder.<br/><b>Veillez à bien la mémoriser</b>, car aucun moyen n'est actuellement prévu pour la retrouver en cas de perte.<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon identifiant secret doit être suffisamment long (au moins 8 caractères) et le plus original possible.",PASSWORD:"Le mot de passe est très important. Avec l'identifiant secret, il sert à calculer le numéro (la clé publique) de votre compte, et la clé secrète pour y accéder.<br/><b>Veillez à bien le mémoriser</b>, car aucun moyen n'est prévu de le retrouver en cas de perte (sauf à générer un fichier de sauvegarde).<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon mot de passe contient (idéalement) au moins 8 caractères, dont au moins une majuscule et un chiffre.",PSEUDO:'Le pseudonyme est utilisé uniquement dans le cas d\'inscription comme <span class="text-italic">membre</span>. Il est toujours associé à un portefeuille (via sa <span class="text-italic">clé publique</span>).<br/>Il est publié sur le réseau, afin que les autres utilisateurs puisse l\'identifier, le certifier ou envoyer de la monnaie sur le compte.<br/>Un pseudonyme doit être unique au sein des membres (<u>actuels</u> et anciens).'},LOGIN:{SECTION:"Connexion",PUBKEY:"Clé publique du trousseau",PUBKEY_DEF:'La clef publique du trousseau est générée à partir des identifiants saisis (n\'importe lesquels), sans pour autant qu\'ils correspondent à un compte déjà utilisé.<br/><b>Vérifiez attentivement que la clé publique est celle de votre compte</b>. Dans le cas contraire, vous serez connecté à un compte probablement jamais utilisé, le risque de collision avec un compte existant étant infime.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',METHOD:"Méthodes de connexion",METHOD_DEF:'Plusieurs options sont disponibles pour vous connecter à un portefeuille :<br/> - La connexion <b>par salage (simple ou avancé)</b> mélange votre mot de passe grâce à l\'identifiant secret, pour limiter les tentatives de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">piratage par force brute</a> (par exemple à partir de mots connus).<br/> - La connexion <b>par clé publique</b> évite de saisir vos identifiants, qui vous seront demandé seulement le moment venu lors d\'une opération sur le compte.<br/> - La connexion <b>par fichier de trousseau</b> va lire les clés (publique et privée) du compte, depuis un fichier, sans besoin de saisir d\'identifiants. Plusieurs formats de fichier sont possibles.'},GLOSSARY:{SECTION:"Glossaire",PUBKEY_DEF:'Une clé publique identifie un portefeuille de monnaie, qui peut identifier un membre ou correspondre à un portefeuille anonyme. Dans Cesium la clé publique est calculée (par défaut) grâce à l\'identifiant secret et au mot de passe.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',MEMBER:"Membre",MEMBER_DEF:'Un membre est une personne humaine physique et vivante, désireuse de participer librement à la communauté monétaire. Elle co-produit un dividende universel, suivant une période et un montant tels que définis dans les <span class="text-italic">règles de la monnaie</span>',CURRENCY_RULES:"Règles de la monnaie",CURRENCY_RULES_DEF:'Les règles de la monnaie sont définies une fois pour toutes. Elle fixe le fonctionnement de la monnaie : le calcul du dividende universel, le nombre de certifications nécessaire pour être membre, le nombre de certification maximum qu\'un membre peut donner, etc. <a href="#/app/currency">Voir les règles actuelles</a>.<br/>La non modification des règles dans le temps est possible par l\'utilisation d\'une <span class="text-italic">BlockChain</span> qui porte et exécute ces règles, et en vérifie constamment la bonne application.',BLOCKCHAIN:'Chaîne de blocs (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain est un système décentralisé, qui, dans le cas de Duniter, sert à porter et exécuter les <span class="text-italic">règles de la monnaie</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">En savoir plus sur Duniter</a> et le fonctionnement de sa blockchain.',UNIVERSAL_DIVIDEND_DEF:'Le Dividende Universel (DU) est la quantité de monnaie co-créée par chaque membre, suivant la période et le calcul définis dans les <span class="text-italic">règles de la monnaie</span>.<br/>A chaque échéance, les membres recoivent sur leur compte la meme quantité de nouvelle monnaie.<br/><br/>Le DU subit une croissance régulière, pour rester juste entre les membres (actuels et à venir), calculée en fonction de l\'espérance de vie moyenne, telle que démontré dans la Thérorie Relative de la Monnaie (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">En savoir plus sur la TRM</a> et les monnaies libres.',WOT:"Toile de Confiance (TdC)",WOT_DEF:"La Toile de Confiance est constituée de l'ensemble des membres de la monnaie, et des liens de certification qui les relient.",DISTANCE_RULE:"Règle de distance",DISTANCE_RULE_DEF:"La règle de distance de la Toile de Confiance définie <b>une distance maximale à respecter</b> entre un postulant et un nombre minimum de membres référents (ou membres centraux). Cette distance est calculée en utilisant les liens de certification."},TIP:{MENU_BTN_CURRENCY:"Le menu <b>{{'MENU.CURRENCY'|translate}}</b> permet la consultation des <b>règles de la monnaie</b> et de son état.",CURRENCY_WOT:"Le <b>nombre de membres</b> montre l'importance de la communauté et permet de <b>suivre son évolution</b>.",CURRENCY_MASS:"Suivez ici la <b>quantité totale de monnaie</b> existante et sa <b>répartition moyenne</b> par membre.<br/><br/>Ceci permet de juger de l'<b>importance d'un montant</b>, vis à vis de ce que <b>possède les autres</b> sur leur compte (en moyenne).",CURRENCY_UNIT_RELATIVE:"L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que les montants en {{currency|capitalize}} ont été divisés par le <b>Dividende Universel</b> (DU).<br/><br/><small>Cette unité relative est <b>pertinente</b>, car stable malgré la quantitié de monnaie qui augmente en permanence.</small>",CURRENCY_CHANGE_UNIT:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants <b>directement en {{currency|capitalize}}</b> (plutôt qu'en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, c'est-à-dire relativement au Dividende Universel (le montant co-produit par chaque membre).",CURRENCY_RULES:"Les <b>règles</b> de la monnaie fixent son fonctionnement <b>exact et prévisible</b>.<br/><br/>Véritable ADN de la monnaie, elles rendent son code monétaire <b>lisible et transparent</b>.",MENU_BTN_NETWORK:"Le menu <b>{{'MENU.NETWORK'|translate}}</b> permet la consultation de l'état du réseau.",NETWORK_BLOCKCHAIN:"Toutes les opérations de la monnaie sont enregistrées dans un grand livre de compte <b>public et infalsifiable</b>, appelé aussi <b>chaine de blocs</b> (<em>BlockChain</em> en anglais).",NETWORK_PEERS:"Les <b>nœuds</b> visibles ici correspondent aux <b>ordinateurs qui actualisent et contrôlent</b> la chaine de blocs.<br/><br/>Plus il y a de nœuds, plus la monnaie a une gestion <b>décentralisée</b> et digne de confiance.",NETWORK_PEERS_BLOCK_NUMBER:"Ce <b>numéro</b> (en vert) indique le <b>dernier bloc validé</b> pour ce nœud (dernière page écrite dans le grand livre de comptes).<br/><br/>La couleur verte indique que ce bloc est également validé par <b>la plupart des autres nœuds</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Chaque membre</b>, équipé d\'un ordinateur avec Internet, <b>peut participer en ajoutant un nœud</b>. Il suffit d\'<b>installer le logiciel Duniter</b> (libre et gratuit). <a href="{{installDocUrl}}" target="_system">Voir le manuel d\'installation &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"Le menu <b>{{'ACCOUNT.TITLE'|translate}}</b> permet d'accéder à la gestion de votre compte.",MENU_BTN_ACCOUNT_MEMBER:"Consultez ici l'état de votre compte et les informations sur vos certifications.",WALLET_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos certifications (reçues et émises).",WALLET_RECEIVED_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications reçues</b>.",WALLET_GIVEN_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications émises</b>.",WALLET_BALANCE:"Le <b>solde</b> de votre compte s'affiche ici.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que le montant en {{currency|capitalize}} a été divisé par le <b>Dividende Universel</b> (DU) co-créé par chaque membre.<br/><br/>Actuellement 1 DU vaut {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Vous pourrez <b>changer l'unité</b> d'affichage des montants dans les <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Par exemple pour visualiser les montants <b>directement en {{currency|capitalize}}</b>, plutôt qu'en unité relative.",WALLET_PUBKEY:"Voici la clé publique de votre compte. Vous pouvez la communiquer à un tiers afin qu'il identifie plus simplement votre compte.",WALLET_SEND:"Effectuer un paiement en quelques clics.",WALLET_SEND_NO_MONEY:"Effectuer un paiement en quelques clics.<br/>(Votre solde ne le permet pas encore)",WALLET_OPTIONS:"Ce bouton permet l'accès aux <b>actions d'adhésion</b> et de sécurité.<br/><br/>N'oubliez pas d'y jeter un oeil !",WALLET_RECEIVED_CERTS:"S'affichera ici la liste des personnes qui vous ont certifié.",WALLET_CERTIFY:"Le bouton <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permet de sélectionner une identité et de la certifier.<br/><br/>Seuls des utilisateurs <b>déjà membres</b> peuvent en certifier d'autres.",WALLET_CERT_STOCK:"Votre stock de certifications (émises) est limité à <b>{{sigStock}} certifications</b>.<br/><br/>Ce stock se renouvelle avec le temps, au fur et à mesure que les certifications s'invalident.",MENU_BTN_TX_MEMBER:"Le menu <b>{{'MENU.TRANSACTIONS'|translate}}</b> permet de consulter votre solde, l'historique vos transactions et d'envoyer un paiement.",MENU_BTN_TX:"Consultez ici <b>l'historique de vos transactions</b> et effectuez de nouvelles opérations.",MENU_BTN_WOT:"Le menu <b>{{'MENU.WOT'|translate}}</b> permet de rechercher parmi les <b>utilisateurs</b> de la monnaie (membres ou non).",WOT_SEARCH_TEXT_XS:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique).<br/><br/>La recherche se lancera automatiquement.",WOT_SEARCH_TEXT:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique). <br/><br/>Appuyer ensuite sur <b>Entrée</b> pour lancer la recherche.",WOT_SEARCH_RESULT:"Visualisez la fiche détaillée simplement en <b>cliquant</b> sur une ligne.",WOT_VIEW_CERTIFICATIONS:"La ligne <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montre combien de membres ont validé cette identité.<br/><br/>Ces certifications attestent que le compte appartient à <b>une personne humaine vivante</b> n'ayant <b>aucun autre compte membre</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Il faut au moins <b>{{sigQty}} certifications</b> pour devenir membre et recevoir le <b>Dividende Universel</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic ici permet d'ouvrir <b>la liste de toutes les certifications</b> de l'identité (reçues et émises).",WOT_VIEW_CERTIFY:"Le bouton <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permet d'ajouter votre certification à cette identité.",CERTIFY_RULES:"<b>Attention :</b> Ne certifiez que des <b>personnes physiques vivantes</b>, ne possédant aucun autre compte membre.<br/><br/>La sécurité de la monnaie dépend de la vigilance de chacun !",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> vous permettront de configurer l'application.",HEADER_BAR_BTN_PROFILE:"Cliquez ici pour accéder à votre <b>profil utilisateur.</b>",SETTINGS_CHANGE_UNIT:"Vous pourrez <b>changer d'unité d'affichage</b> des montants en cliquant ci-dessus.<br/><br/>- Désactivez l'option pour un affichage des montants en {{currency|capitalize}}.<br/>- Activez l'option pour un affichage relatif en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (tous les montants seront <b>divisés</b> par le Dividende Universel courant).",END_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Bonne continuation à vous, dans le nouveau monde de l'<b>économie libre</b> !",END_NOT_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Si vous souhaitez rejoindre la monnaie {{currency|capitalize}}, il vous suffira de cliquer sur <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ci-dessous."}},API:{COMMON:{LINK_DOC:"Documentation API",LINK_DOC_HELP:"Documentation pour les développeurs",LINK_STANDARD_APP:"Version classique",LINK_STANDARD_APP_HELP:"Ouvrir la version classique de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou contactez l'administrateur du site</a>."},HOME:{TITLE:"Documentation API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connectez vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connectez vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Paiement en ligne",SUMMARY:"Récapitulatif du paiement :",AMOUNT:"Montant :",AMOUNTS_HELP:"Veuillez choisir le montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinataire :",COMMENT:"Référence de l'opération :",NODE:"Adresse du nœud :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Échec du paiement"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Adresse d'appel",PARAMETERS_DIVIDER:"Paramètres",AVAILABLE_PARAMETERS:"Voici la liste des paramètres possibles :",DEMO_DIVIDER:"Tester",
-DEMO_HELP:"Pour tester ce service, cliquez sur le bouton ci-contre. Le résultat s'affichera en dessous.",DEMO_RESULT:"Résultat retourné par l'appel :",DEMO_RESULT_PEER:"Adresse du nœud utilisé :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Succès !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulé par l\'utilisateur',INTEGRATE_DIVIDER:"Intégrer",INTEGRATE_CODE:"Code :",INTEGRATE_RESULT:"Prévisualisation du résultat :",INTEGRATE_PARAMETERS:"Paramètres",TRANSFER:{TITLE:"Paiements",DESCRIPTION:"Depuis un site (ex: vente en ligne) vous pouvez déléguer le paiement en monnaie libre à Cesium API. Pour cela, il vous suffit de déclencher l'ouverture d'une page sur l'adresse suivante :",PARAM_PUBKEY:"Clé publique du destinataire",PARAM_PUBKEY_HELP:"Clé publique du destinataire (obligatoire)",PARAM_AMOUNT:"Montant",PARAM_AMOUNT_HELP:"Montant de la transaction (obligatoire). Valeurs multiples autorisées, en utilisant un séparateur (point-virgule, barre verticale ou espace).",PARAM_COMMENT:"Référence (ou commentaire)",PARAM_COMMENT_HELP:"Référence ou commentaire. Vous permettra par exemple d'identifier le paiement dans la BlockChain.",PARAM_NAME:"Nom (du destinataire ou du site web)",PARAM_NAME_HELP:'Le nom du destinataire, ou du site web appelant. Cela peut être un nom lisible ("Mon site en ligne"), ou encore une pseudo-adresse web ("MonSite.com").',PARAM_REDIRECT_URL:"Adresse web de redirection",PARAM_REDIRECT_URL_HELP:'Adresse web (URL) de redirection, appelé quand le paiement a été envoyé. Peut contenir les chaînes suivantes, qui seront remplacées par les valeurs de la transaction : "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" et "{node}".',PARAM_CANCEL_URL:"Adresse web d'annulation",PARAM_CANCEL_URL_HELP:'Adresse web (URL) en cas d\'annulation du paiement, par l\'utilisateur. Peut contenir les chaînes suivantes, qui seront remplacées dynamiquement : "{comment}", "{amount}" et {pubkey}.',PARAM_PREFERRED_NODE:"Adresse du nœud préféré",PARAM_PREFERRED_NODE_HELP:'Adresse (URL) du nœud Duniter à utiliser de préférence ("g1.domaine.com:443" ou "https://g1.domaine.com").',EXAMPLES_HELP:"Voici des exemples d'intégration :",EXAMPLE_BUTTON:"Bouton HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Payer en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Style personnalisé",EXAMPLE_BUTTON_TEXT_HELP:"Texte du bouton",EXAMPLE_BUTTON_BG_COLOR:"Couleur du fond",EXAMPLE_BUTTON_BG_COLOR_HELP:"Exemple : #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Couleur du texte",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Exemple : black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icône",EXAMPLE_BUTTON_TEXT_WIDTH:"Largeur",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Exemple : 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Aucune",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (noir)"}}}}),e.translations("it-IT",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Chiave privata",MEMBER:"Membro",BLOCK:"Blocco",BTN_OK:"OK",BTN_YES:"Si",BTN_NO:"No",BTN_SEND:"Inviare",BTN_SEND_MONEY:"Trasferire soldi",BTN_SEND_MONEY_SHORT:"Trasferire",BTN_SAVE:"Salvare",BTN_YES_SAVE:"Si, salvare",BTN_YES_CONTINUE:"Si, continuare",BTN_SHOW:"Mostrare",BTN_SHOW_PUBKEY:"Mostrare chiave pubblica",BTN_RELATIVE_UNIT:"Mostra importi in DU?",BTN_BACK:"Indietro",BTN_NEXT:"Avanti",BTN_CANCEL:"Cancellare",BTN_CLOSE:"Chiudere",BTN_LATER:"Più tardi",BTN_LOGIN:"Accedi",BTN_LOGOUT:"Log out",BTN_ADD_ACCOUNT:"Nuovo conto",BTN_SHARE:"Condividere",BTN_EDIT:"Modificare",BTN_DELETE:"Eliminare",BTN_ADD:"Aggiungere",BTN_SEARCH:"Cercare",BTN_REFRESH:"Aggiornare",BTN_RETRY:"Riprovare",BTN_START:"Iniziare",BTN_CONTINUE:"Continuare",BTN_CREATE:"Creare",BTN_UNDERSTOOD:"Ho capito",BTN_OPTIONS:"Opzioni",BTN_HELP_TOUR:"Mostrami le funzionalità",BTN_HELP_TOUR_SCREEN:"Scoprire questo schermo",BTN_DOWNLOAD:"Scaricare",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Scaricare estratto conto",BTN_MODIFY:"Modificare",CHOOSE_FILE:"Trascini un file <br/>o cliccare per selezionare",DAYS:"giorni",NO_ACCOUNT_QUESTION:"Non sei ancora membro? Registrati subito!",SEARCH_NO_RESULT:"Nessun risultato trovato",LOADING:"Caricando...",SEARCHING:"Cercando...",FROM:"Da",TO:"A",COPY:"Copiare",LANGUAGE:"Lingua",UNIVERSAL_DIVIDEND:"Dividendo universale",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonimo",ENABLE:"Attivato",DISABLE:"Disattivato",RESULTS_LIST:"Risultati:",RESULTS_COUNT:"{{count}} risultati",EXECUTION_TIME:"eeseguit in {{duration|formatDurationMs}}",SHOW_VALUES:"Mostrare valori in modo trasparente?",POPOVER_ACTIONS_TITLE:"Opzioni",POPOVER_FILTER_TITLE:"Filtri",SHOW_MORE:"Mostrare di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",POPOVER_SHARE:{TITLE:"Condividere",SHARE_ON_TWITTER:"Condividere su Twitter",SHARE_ON_FACEBOOK:"Condividere su Facebook",SHARE_ON_DIASPORA:"Condividere su Diaspora*",SHARE_ON_GOOGLEPLUS:"Condividere su Google+"},FILE:{DATE:"Data:",TYPE:"Tipo:",SIZE:"Dimensioni del file:",VALIDATING:"Validazione in corso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Scegliere un file:",BTN_PICTURE_GALLERY:"Galleria",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Annuario",CURRENCY:"Moneta",ACCOUNT:"Mio conto",WALLETS:"I miei portafogli",TRANSFER:"Trasferire",SCAN:"Scansionare",SETTINGS:"Impostazioni",NETWORK:"Rete",TRANSACTIONS:"Miei pagamenti"},ABOUT:{TITLE:"A proposito",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",CODE:"Codice sorgente:",DEVELOPERS:"Sviluppatori:",FORUM:"Forum:",DEV_WARNING:"Attenzione!",DEV_WARNING_MESSAGE:"Questa app è ancora in sviluppo attivo.<br/>Facci sapere se trovi dei bugs!",DEV_WARNING_MESSAGE_SHORT:"Questa app è tutt'ora instabile (in sviluppo)",REPORT_ISSUE:"Segnalare un bug"},HOME:{TITLE:"Cesium",WELCOME:"Benvenuti nell'{{'COMMON.APP_NAME'|translate}} App!",MESSAGE:"Scambiate in moneta libera. {{currency|abbreviate}}!",BTN_CURRENCY:"Esplorare la moneta",BTN_ABOUT:"a proposito",BTN_HELP:"Aiuto",REPORT_ISSUE:"Segnalare un bug",NOT_YOUR_ACCOUNT_QUESTION:'Non sei proprietario del conto <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconettere questo conto",CONNECTION_ERROR:'Peer <b>{{server}}</b> irraggiungibile o indirizzo invalido. <br/><br/> Verifica tua connessione or cambia nodo. <a class="positive" ng-click="doQuickFix(\'settings\')">nell impostazioni. </a>.'},SETTINGS:{TITLE:"Impostazioni",NETWORK_SETTINGS:"Rete",PEER:"Indirizzo peer Duniter",PEER_CHANGED_TEMPORARY:"Indirizzo usato per un tempo determinato",USE_LOCAL_STORAGE:"Abilitare local storage",USE_LOCAL_STORAGE_HELP:"Permette di salvare tue impostazioni",ENABLE_HELPTIP:"Abilitare consigli dinamici",ENABLE_UI_EFFECTS:"Abilitare effetti visivi",HISTORY_SETTINGS:"Mio conto",DISPLAY_UD_HISTORY:"Mostrare dividendi prodotti?",AUTHENTICATION_SETTINGS:"Autenticazione",KEEP_AUTH:"Scadenza dell'autenticazione",KEEP_AUTH_SHORT:"Scadenza",KEEP_AUTH_HELP:"Definire quando l'autenticazione verrà eliminata dalla memoria.",KEEP_AUTH_OPTION:{NEVER:"Dopo ogni operazione",SECONDS:"Dopo {{value}}s d'inattività",MINUTE:"Dopo{{value}}min d'inattività",MINUTES:"Dopo {{value}}min d'inattività",HOUR:"Dopo {{value}}h d'inattività",ALWAYS:"Alla fine della sessione"},REMEMBER_ME:"Ricordarsi di me?",REMEMBER_ME_HELP:"Rimanere identificato/a da una sessione all'altra, conservando la chiave localmente.",PLUGINS_SETTINGS:"Estensioni",BTN_RESET:"Ripristini valori predefiniti",EXPERT_MODE:"Abilitare modlità eseperto",EXPERT_MODE_HELP:"Permette di vedere più dettagli",POPUP_PEER:{TITLE:"Peer Duniter",HOST:"Indirizzo",HOST_HELP:"Indirizzo: server:port",USE_SSL:"Securizzato?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Lista dei peers"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Blocco #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Blocco attuale",TITLE:"Blocco #{{number|formatInteger}}",COMPUTED_BY:"Calcolato da",SHOW_RAW:"Mostrare dati grezzi",TECHNICAL_DIVIDER:"Informazioni tecniche",VERSION:"Versione di formatto",HASH:"Hash calcolato",UNIVERSAL_DIVIDEND_HELP:"Moneta co-prodotta da ciasciun dei {{membersCount}} membri",EMPTY:"Nessun dati in questo blocco",POW_MIN:"Difficoltà minimale",POW_MIN_HELP:"Difficoltà imposta nel calcolo del hash",DATA_DIVIDER:"Dati",IDENTITIES_COUNT:"Nuove identità",JOINERS_COUNT:"Nuovi membri",ACTIVES_COUNT:"Rinnovi",ACTIVES_COUNT_HELP:"Membri che hanno rinnovato la loro presenza nella rete",LEAVERS_COUNT:"",LEAVERS_COUNT_HELP:"Membri che si sono fatti escludere dalla rete",EXCLUDED_COUNT:"Membri esclusi",EXCLUDED_COUNT_HELP:"Vecchi membri, esclusi per certificazione non rinnovata o soglia di certificazioni non raggiunta.",REVOKED_COUNT:"Identità revocate",REVOKED_COUNT_HELP:"Può essere che questi conti non siano più attivi",TX_COUNT:"Transazioni",CERT_COUNT:"Certificazioni",TX_TO_HIMSELF:"Cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Sbloccare condizioni",TX_OUTPUT_OPERATOR:{AND:"e",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> della chive pubblica",XHX:"<b>Password</b>, incluso SHA256 =",CSV:"Bloccato per",CLTV:"Bloccato fino a"}},LOOKUP:{TITLE:"Blocchi",NO_BLOCK:"Nessun blocco",LAST_BLOCKS:"Ultimi blocchi:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Moneta",TAB_CURRENCY:"Moneta",TAB_WOT:"Web of trust",TAB_NETWORK:"Rete",TAB_BLOCKS:"Blocchi",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} è <b>una moneta libera</b>, {{firstBlockTime | formatFromNow}}. La rete comprende <b>{{N}} membri </b>, che produccono e ricevono un <a ng-click=\"showHelpModal('ud')\">Dividendo Universale</a> (DU), ogni {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Regole della rete",CURRENCY_NAME:"Nome della moneta",MEMBERS:"Numero di membri",MEMBERS_VARIATION:"Variazione da {{duration|formatDuration}} (dall' ultimo UD)",MONEY_DIVIDER:"Moneta",MASS:"Massa monetaria",SHARE:"Quantità a testa",UD:"Dividendo universale",C_ACTUAL:"Crescita attuale",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Difficoltà commune",MONEY_RULES_DIVIDER:"Regole della moneta",C_RULE:"Obbietivo teorico di crescità",UD_RULE:"Dividendo universale (formula)",DT_REEVAL:"Periodo tra due re-evaluazioni del UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Ogni <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Data della prima re-evaluzione del UD",SIG_QTY_RULE:"Numero di certificazioni requisiti per diventare membro",SIG_STOCK:"Numero massimo di certificazioni inviate da un membro",SIG_PERIOD:"Tempo minimo tra 2 certificazioni inviate da un unico membro.",SIG_WINDOW:"Periodo massimo prima che una certificazione venga studiata",SIG_VALIDITY:"Durata di vita di una certificazione che è state presa in conto",MS_WINDOW:"Periodo massimo prima che una certificazione pendente sia validata",MS_VALIDITY:"Durata di vita di un'adesione che è state presa in conto",STEP_MAX:"Distanza massima tra un nuovo membro e ogni membro referente.",WOT_RULES_DIVIDER:"Regole della Web of Trust",SENTRIES:"Numero di certificazioni (date <b>e</b> ricevute) per diventare membro referente ",SENTRIES_FORMULA:"Numero di certificazioni necessarie per diventare membro (formula)",XPERCENT:"Percentaggio minimino di membri referenti per rispettare la regola di distanza tra i membri",AVG_GEN_TIME:"Tempo medio tra due blocchi",CURRENT:"attuale",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Mostrare tutte le regole?",BTN_SHOW_LICENSE:"Mostrare licenza",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Licensa attuale",BTN_DOWNLOAD:"Scaricare il file",NO_LICENSE_FILE:"File di licenza non trovato ."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Caricando peers...",NODE_ADDRESS:"Indirizzo del peer",SOFTWARE:"Software",WARN_PRE_RELEASE:"Pre-versione (ultima versione stabile: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versione <b>{{version}}</b> disponibile",WS2PID:"Identificativo :",PRIVATE_ACCESS:"Accesso privato",POW_PREFIX:"Prefisso Prova di Lavoro :",ENDPOINTS:{BMAS:"Endpoint sicuro (SSL)",BMATOR:"Interfaccia rete TOR",WS2P:"Interfaccia WS2P",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"I nodi non-SSL hanno un display semplificato perche Cesium funziona in modalità HTTPS."}},PEER:{PEERS:"Peers-Nodi",SIGNED_ON_BLOCK:"Firmato nel blocco",MIRROR:"Specchio",MIRRORS:"Specchio",MIRROR_PEERS:"Peers specchio",PEER_LIST:"Lista dei peers",MEMBERS:"Membri",MEMBER_PEERS:"Peers membri",ALL_PEERS:"Tutti i peers",DIFFICULTY:"Difficoltà",API:"API",CURRENT_BLOCK:"Blocco #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Sconessi",OFFLINE_PEERS:"Peers sconessi",BTN_SHOW_PEER:"Mostrare peer",VIEW:{TITLE:"Peer",OWNER:"Proprietà di ",SHOW_RAW_PEERING:"Vedere il documento di peering",SHOW_RAW_CURRENT_BLOCK:"Vedere l'utimo blocco (formatto grezzo)",LAST_BLOCKS:"Ultimi blocchi",KNOWN_PEERS:"Peers conosciuti :",GENERAL_DIVIDER:"Informazioni generali",ERROR:{LOADING_TOR_NODE_ERROR:"Impossibile ottenere i dati del peer, periodo di attesa scaduto.",LOADING_NODE_ERROR:"Impossibile ottenere i dati del peer"}}},WOT:{SEARCH_HELP:"Cercare (membro o chiave pubblica)",SEARCH_INIT_PHASE_WARNING:"La ricerca per le certificazioni pendenti <b>può essere lunga</b> durante la fase di pre-certificazione. La preghiamo di attendere...",REGISTERED_SINCE:"Certificato/a dal",REGISTERED_SINCE_BLOCK:"Certificato/a dal blocco #",NO_CERTIFICATION:"Nessuna certificazione valida",NO_GIVEN_CERTIFICATION:"Nessuna certificazione data",NOT_MEMBER_PARENTHESIS:"(non-membro)",IDENTITY_REVOKED_PARENTHESIS:"(identità revocata)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(Cancellazione dell'identità pendente)",EXPIRE_IN:"Scade",NOT_WRITTEN_EXPIRE_IN:"Scadenza <br/> ",EXPIRED:"Scaduto",PSEUDO:"Pseudonimo",SIGNED_ON_BLOCK:"Emessa nel blocco #{{block}}",WRITTEN_ON_BLOCK:"Scritta nel blocco #{{block}}",GENERAL_DIVIDER:"Informazioni generali",NOT_MEMBER_ACCOUNT:"Conto non-membro",NOT_MEMBER_ACCOUNT_HELP:"Questo è un semplice portafoglio osservatore, senza richiesta di certificazione emessa.",TECHNICAL_DIVIDER:"Dati tecnici",BTN_CERTIFY:"Certificare",BTN_YES_CERTIFY:"Si, certificare",BTN_SELECT_AND_CERTIFY:"Nuova certificazione",ACCOUNT_OPERATIONS:"Operazioni sul conto",VIEW:{POPOVER_SHARE_TITLE:"Identità {{title}}"},LOOKUP:{TITLE:"Annuario",NEWCOMERS:"Nuovi membri:",NEWCOMERS_COUNT:"{{count}} membri",PENDING:"Registrazioni pendenti",PENDING_COUNT:"{{count}} inscrizioni pendenti",REGISTERED:"Registrato {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro dal {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Ultimi membri",BTN_PENDING:"Registrazioni pendenti",SHOW_MORE:"Vedere di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",NO_PENDING:"Nessuna certificazione pendente.",NO_NEWCOMERS:"Nessun membro."},CONTACTS:{TITLE:"Contatti"},MODAL:{TITLE:"Ricerca"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni",SUMMARY:"Certificazioni ricevute",LIST:"Dettagli delle certificazioni ricevute",PENDING_LIST:"Certificazioni pendenti",RECEIVED:"Certificazioni ricevute",RECEIVED_BY:"Certifications ricevute da {{uid}}",ERROR:"Certificazioni ricevute per errore",SENTRY_MEMBER:"Membro referente"},OPERATIONS:{TITLE:"{{uid}} - Operazioni"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni inviate",SUMMARY:"Certificazioni inviate",LIST:"Dettagli delle certificazioni inviate",PENDING_LIST:"Certificazioni ",SENT:"Certificazioni inviate",SENT_BY:"Certificazioni inviate da {{uid}}",ERROR:"Certificazioni inviate per errore"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Accedi',SCRYPT_FORM_HELP:"Accedi con tuoi dati <br> Ricordati di verificare che stai utilizzando la chiave del tuo conto.",PUBKEY_FORM_HELP:"Scrivi qui la tua chiave privata:",FILE_FORM_HELP:"Scegliere un portachiavi da utilizzare:",SCAN_FORM_HELP:"Scansiona il codice QR di un portafoglio.",SALT:"Identificativo segreto",SALT_HELP:"Identificativo segreto",SHOW_SALT:"Mostrare identificativo segreto?",PASSWORD:"Passsord",PASSWORD_HELP:"Password",PUBKEY_HELP:"Chiave pubblica, pseudonimo",NO_ACCOUNT_QUESTION:"Ancora non hai un conto?",HAVE_ACCOUNT_QUESTION:"Hai già un account?",CREATE_ACCOUNT:"Creare un conto",CREATE_FREE_ACCOUNT:"Crea un conto gratuito",FORGOTTEN_ID:"Non ricordi la password?",ASSOCIATED_PUBKEY:"Chiave pubblica:",BTN_METHODS:"Altri metodi",BTN_METHODS_DOTS:"Cambiare metodo...",METHOD_POPOVER_TITLE:"Metodi",MEMORIZE_AUTH_FILE:"Memorizzare questo portachiavi per la durata di questa sessione",SCRYPT_PARAMETERS:"Parametri (Scrypt) :",AUTO_LOGOUT:{TITLE:"Informazioni",MESSAGE:'<i class="ion-android-time"></i> Sei stato <b>sconesso/ b> automaticamente, per un periodo di inattività prolongata',BTN_RELOGIN:"Accedi",IDLE_WARNING:"Sarai disconesso in... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Salatura standard (imp. predefinita)",SCRYPT_ADVANCED:"Salatura avanzata",FILE:"File del portachiavi",PUBKEY:"Chiave pubblica soltanto",SCAN:"Scansiona un codice QR"},SCRYPT:{SIMPLE:"Salatura leggera",DEFAULT:"Salatura standard",SECURE:"Salatura sicura",HARDEST:"Salatura più sicura",EXTREME:"Salatura estrema",USER:"Salatura personalizzata",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format del file atteso: <b>.dunikey</b> (type PubSec). Altri formati in sviluppo (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Autenticazione',BTN_AUTH:"Autenticarsi",GENERAL_HELP:"Autenticati :",EXPECTED_UID_HELP:'Effettua il login nell\'account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Si prega di autenticarsi sul portafoglio <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scansiona il codice QR della <b>chiave privata</b> del portafoglio."},ACCOUNT:{TITLE:"Mio conto",BALANCE:"Saldo",LAST_TX:"Ultime transazioni",BALANCE_ACCOUNT:"Saldo del conto",NO_TX:"Nessuna transazione",SHOW_MORE_TX:"Mostrare di più",SHOW_ALL_TX:"Mostrare tutte",TX_FROM_DATE:"(limite attuale del {{fromTime|medianFromNowShort}})",PENDING_TX:"Transazioni pendenti",VALIDATING_TX:"Transazioni in corso di convalida",ERROR_TX:"Transaction non eseguite",ERROR_TX_SENT:"Transazioni inviate",PENDING_TX_RECEIVED:"Transazioni in attesa di recezione",EVENTS:"Eventi",WAITING_MEMBERSHIP:"Richiesta di certificazione inviata. In attesa di validazione.",WAITING_CERTIFICATIONS:"Hai bisogno di {{needCertificationCount}} certificazione(i) per diventare membro.",WILL_MISSING_CERTIFICATIONS:"Mancherai a breve <b>di certificazioni</b> (occorrono almeno {{willNeedCertificationCount}} altre certificazioni)",WILL_NEED_RENEW_MEMBERSHIP:"Tua certificazione <b>scaderà{{membershipExpiresIn|formatDurationTo}}</b>. Ricordati di <a ng-click=\"doQuickFix('renew')\">rinnovarla</a> prima.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"Nessuna domanda di adesione pendente. Se desideri <b>diventare membro</b>, ricordati di <a ng-click=\"doQuickFix('membership')\">inviare tua domanda di adesione</a>.",CERTIFICATION_COUNT:"Certificazioni ricevute",CERTIFICATION_COUNT_SHORT:"Certificazioni",SIG_STOCK:"Stock di certificazioni da inviare",BTN_RECEIVE_MONEY:"Ricevere",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Usare un'altra identità..",BTN_FIX_MEMBERSHIP:"Invia nuovamente di adesione...",BTN_MEMBERSHIP_RENEW:"Rinnovare adesione",BTN_MEMBERSHIP_RENEW_DOTS:"Rinnovare adesione ...",BTN_MEMBERSHIP_OUT_DOTS:"Revocare adesione...",BTN_SECURITY_DOTS:"Login e securità...",BTN_SHOW_DETAILS:"Visualizzare dati tecnici",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importo bloccata",DESCRIPTION:"Ecco le condizioni per sbloccare questo importo:",DESCRIPTION_MANY:"Questa transazione è fatta da diverse parti, di cui queste sono le condizioni di sblocco:",LOCKED_AMOUNT:"Condizioni per l'importo:"},NEW:{TITLE:"Registrazione",INTRO_WARNING_TIME:"Crearsi un conto su {{name|capitalize}} è molto semplice. E consigliato prendere il giusto tempo per farlo correttamente (per evitare di dimenticare passwords, pseudonimi etc.).",INTRO_WARNING_SECURITY:"Occorre verificare che il hardware che stai utilizzando (computer, tablet, cellulare) <b>è sicuro e affidabile</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus aggiornato, firewall abilitato, session protteta da un password o codice PIN...",INTRO_HELP:"Cliccare <b> {{'COMMON.BTN_START'|translate}}</b> per avviare la creazione del conto. Ti accompagniamo passo alla volta.",REGISTRATION_NODE:"Tua iscrizione verrà salvata dal nodo peer Duniter <b>{{server}}</b>, è verrà poi condivisa nella rete della moneta.",REGISTRATION_NODE_HELP:"Se non ti fidi di questo peer, per favore cambialo <a ng-click=\"doQuickFix('settings')\">nelle impostazioni/a> di Cesium.",SELECT_ACCOUNT_TYPE:"Scegliere un tipo di conto:",MEMBER_ACCOUNT:"Conto membro",MEMBER_ACCOUNT_TITLE:"Creare un conto membro",MEMBER_ACCOUNT_HELP:"Se non sei ancora registrato come individuo (un conto a persona soltanto).",WALLET_ACCOUNT:"Semplice portafoglio",WALLET_ACCOUNT_TITLE:"Creare un portafoglio",WALLET_ACCOUNT_HELP:"Se rappresenti un'azienda, associazione, altra ente o hai necessita di un altro portafoglio. Nessun Dividendo Universale sarà prodotto da questo conto.",SALT_WARNING:"Scegliere un identificativo segreto.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarlo!</b>.<br/>Se lo dimentichi non ti potrà aiutare nessuno!",PASSWORD_WARNING:"Scegliere una password.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarla!</b>.<br/>Se la dimentichi non ti potrà aiutare nessuno!",PSEUDO_WARNING:"Segliere uno pseudonimo.<br/>Puo essere utile per chi ti cerca nella rete.<br/><br/>.L'utilizzo delle<b>virgole, spazi e accenti</b> è vietato.<br/><div class='hidden-xs'><br/>Esempio: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonimo",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confermare",SALT_CONFIRM_HELP:"Confermare l'identificativo segreto",PASSWORD_CONFIRM:"Confermare",PASSWORD_CONFIRM_HELP:"Confermare la password",SLIDE_6_TITLE:"Conferma:",COMPUTING_PUBKEY:"Calcolando...",LAST_SLIDE_CONGRATULATION:"Hai riempito tutti i campi richiesti.<br/><b>Puoi inviare la richiesta di creazione del conto</b>.<br/><br/>Per tua informazione, la chiave pubblica qui sotto identifica il tuo futuro conto.<br/>Puo essere communicata a chi ti deve pagare per esempio.<br/>Quando tuo conto verrà approvato potrai trovare la chiave qui <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare.<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b>di voler inviare questa richiesta di creazione di conto?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare..<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b> di voler continuare?',CHECKING_PSEUDO:"Verificazione in corso...",PSEUDO_AVAILABLE:"Pseudonimo disponibile",PSEUDO_NOT_AVAILABLE:"Pseudonimo indisponibile",INFO_LICENSE:"TPer aderire alla moneta, ti chiediamo di leggere e accetare le condizioni della licenza.",BTN_ACCEPT:"Accetto",BTN_ACCEPT_LICENSE:"Accetto la licenza"},POPUP_REGISTER:{TITLE:"Pseudonimo",HELP:"Un pseudonimo è necessario per che gli altri ti possino trovare."},SELECT_IDENTITY_MODAL:{TITLE:"Selezionare una identità",HELP:'Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :'},SELECT_WALLET_MODAL:{TITLE:"Selezione del portafoglio"},WALLET_LIST:{TITLE:"Portafoglio secondario",BTN_NEW:"Aggiungi un portfolio",NO_WALLET:"Nessun portafoglio secondario",BTN_DELETE:"Rimuovi un portafoglio secondario ...",BTN_RENAME:"Rinominare il portafoglio",EDIT_POPOVER:{TITLE:"Rinominare il portafoglio",HELP:"Compila il nuovo nome",NAME_HELP:"Nome del portafoglio"}},SECURITY:{ADD_QUESTION:"Aggiungere domanda personalizzata",BTN_CLEAN:"Svuotare",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Salvare un file di revoca",DOWNLOAD_REVOKE_HELP:"Avere une file di revoca è necessario in caso di smarrimento dei tuoi credenziali. Ti permette <b> di rimuovere tuo conto dalla Web Of Trust</b>, per farlo tornare ad essere un semplice portafoglio.",HELP_LEVEL:"Scegliere <strong> almeno{{nb}} domande </strong> :",LEVEL:"Livello di sicurezza",LOW_LEVEL:'Basso <span class="hidden-xs">(minimo di 2 domande)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(minimo di 4 domande)</span>',QUESTION_1:"Qual'era il nome del tuo miglior amico quando eri adolescente ?",QUESTION_2:"Qual'era il nome del tuo primo animale domestico?",QUESTION_3:"Qual'è il primo piatto che imparasti a cucinare?",QUESTION_4:"Qual'è il primo film che hai visto al cinema?",QUESTION_5:"Qual'era la destinazione del tuo primo volo?",QUESTION_6:"Qual'era il nome del tuo professore preferito in scuola ?",QUESTION_7:"Quale sarebbe il tuo lavoro preferito?",QUESTION_8:"Qual'è il tuo libro per bimbi preferito?",QUESTION_9:"Qual'era il marchio della tua prima macchina?",QUESTION_10:"Qual'era il tuo nomignolo da ragazzino/a ?",QUESTION_11:"Qual'era il tuo personaggio di film o attore preferito quand eri studente?",QUESTION_12:"Qual'era il tuo musicista/cantante/grupo preferito quand eri studente ?",QUESTION_13:"In che città si sono conosciuti tuoi genitori ?",QUESTION_14:"Qual'era il nome del tuo primo capo ?",QUESTION_15:"Qual'è il nome della strada dove sei cresciuto/a ?",QUESTION_16:"Qual'è il nome della tua spiaggia preferita ?",QUESTION_17:"Qual'è il primo album che ti sei comprato ?",QUESTION_18:"Qual'è il nome della squadra di sport preferita ?",QUESTION_19:"Cosa faceva tuo nonno ?",RECOVER_ID:"Ricuperare mia password...",RECOVER_ID_HELP:"Se hai un<b<file di backup dei tuoi credenziali</b>, li puoi trovare rispondendo correttamente alle tue domande personalizzate.",REVOCATION_WITH_FILE:"Revocare il mio conto membro...",REVOCATION_WITH_FILE_DESCRIPTION:"Se pensi di aver perso <b>definitivamente tuoi credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Tela di Fiducia</b>.",REVOCATION_WITH_FILE_HELP:"Se hai <b>definitivamente perso tuoi credenziali (o se la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per uscire dalla Web Of Trust</b>.",REVOCATION_WALLET:"Revocare questo conto subito",REVOCATION_WALLET_HELP:"Richiedere la cancellazione dell'identità <b>revocherà la tua adesione alla tua rete</ b> (con certezza per il pseudonimo e la chiave pubblica associata). Il conto non potrà più produrre il Dividendo Universale.<br/>Nonostante ciò, puoi ancora usare il conto come semplice portafoglio.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Salvare miei credenziali...",SAVE_ID_HELP:"Creare un file di backup, per <b>ricuperare vostra password</b> (e l'identificativo segreto) <b> in caso di smarrimento</b>. Il file è <b>sicuro</ b> (cryptato) utilizzando le domande personalizzate.",STRONG_LEVEL:'Alto <span class="hidden-xs ">(minimo di 6 domande)</span>',TITLE:"Conto e sicurezza"},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Bonifico",SUB_TITLE:"Fare un bonifico",FROM:"Da",TO:"A",AMOUNT:"Importo",AMOUNT_HELP:"Importo",COMMENT:"Commenti",COMMENT_HELP:"Commenti",BTN_SEND:"Inviare",BTN_ADD_COMMENT:"Scrivere un comento ?",WARN_COMMENT_IS_PUBLIC:"Ti avvertiamo <b>che i commenti sono pubblici</b> (non cifrati).",MODAL:{TITLE:"Bonifico"}},ERROR:{POPUP_TITLE:"Errore",UNKNOWN_ERROR:"Errore",CRYPTO_UNKNOWN_ERROR:"Suo navigatore non sembra compatibile con le funzionalità di cryptografia.",EQUALS_TO_PSEUDO:"Deve essere diverso dal pseudonimo",EQUALS_TO_SALT:"Deve essere diverso dal identificativo segreto",FIELD_REQUIRED:"Campo obbligatorio.",FIELD_TOO_SHORT:"Valore troppo corto.",FIELD_TOO_SHORT_WITH_LENGTH:"Valore troppo corto ({{minLength}} caratteri min)",FIELD_TOO_LONG:"Valore troppo lungo",FIELD_TOO_LONG_WITH_LENGTH:"Valore troppo lungo ({{maxLength}} caractteri max)",FIELD_MIN:"Valore minimo : {{min}}",FIELD_MAX:"Valore massimo : {{max}}",FIELD_ACCENT:"Virgole e caratteri accentati vietati",FIELD_NOT_NUMBER:"Valore numerico atteso",FIELD_NOT_INT:"Valore intero atteso",FIELD_NOT_EMAIL:"Indirizzo mail non valido",PASSWORD_NOT_CONFIRMED:"Non corrisponde alla password.",SALT_NOT_CONFIRMED:"Non corrisponde al identificativo segreto.",SEND_IDENTITY_FAILED:"Iscrizione fallita.",SEND_CERTIFICATION_FAILED:"Certificazione fallita.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Non puoi inviare certificazioni perche tuo conto <b>non è ancora un conto membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Non puoi inviare certificazioni adesso perche <b>non sei ancora membro</b>.<br/><br/>Devi ancora entrare nella WOT.",NOT_MEMBER_FOR_CERTIFICATION:"Tuo conto non è ancora un conto membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Impossibile certificare questo conto. Nessuna richiesta di certificazione trovata o bisogna rinnovarla.",LOGIN_FAILED:"Errore di login.",LOAD_IDENTITY_FAILED:"Impossibile caricare la tua identità.",LOAD_REQUIREMENTS_FAILED:"Impossibile caricare i prerequisiti dell'identità.",SEND_MEMBERSHIP_IN_FAILED:"Ingresso nella WOT fallito.",SEND_MEMBERSHIP_OUT_FAILED:"Errore nel invio della revocazione.",REFRESH_WALLET_DATA:"Impossibile aggiornare il portafoglio.",GET_CURRENCY_PARAMETER:"Impossibile ricuperare i parametri della moneta.",GET_CURRENCY_FAILED:"Impossibile caricare la moneta. Riprovare più tardi.",SEND_TX_FAILED:"Impossibile eseguire la transazione.",ALL_SOURCES_USED:"Per favore aspetta il calcolo del prossimo blocco (Tutte le tue fonti di moneta sono state utilizzate).",NOT_ENOUGH_SOURCES:"Non hai abbastanza cambio per inviare questo importo in una sola transazione.<br/>Importo massimo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Errore nella creazione del tuo conto membro.",RESTORE_WALLET_DATA_ERROR:"Errore nel aggiornamento delle impostazioni definite in local storage.",LOAD_WALLET_DATA_ERROR:"Errore nel caricamento dei dati del portafoglio.",COPY_CLIPBOARD_FAILED:"Impossibile copiare al clipboard",TAKE_PICTURE_FAILED:"Impossibile ricuperare foto.",SCAN_FAILED:"Impossibile scansionare il codice QR.",SCAN_UNKNOWN_FORMAT:"Codice non riconosciuto.",WOT_LOOKUP_FAILED:"Ricerca fallita.",LOAD_PEER_DATA_FAILED:"Peer Duniter non accessibile. Riprovare più tardi.",NEED_LOGIN_FIRST:"Accedi al tuo conto prima.",AMOUNT_REQUIRED:"Importo necessario.",AMOUNT_NEGATIVE:"Importo negativo non consentito.",NOT_ENOUGH_CREDIT:"Saldo insufficiente",INVALID_NODE_SUMMARY:"Impossibile comunicare col peer o indirizzo non valido",INVALID_USER_ID:"Il campo del 'pseudonimo' non deve avere spazi vuoti o caratteri speciali.",INVALID_COMMENT:"Il formato del campo 'reference' è errato.",INVALID_PUBKEY:"If formato della chiave pubblica è errato.",IDENTITY_REVOKED:"Questa identità <b>è stata revocata</b>. Non puo più diventare membro.",IDENTITY_REVOKED_WITH_TIME:"Questa identità <b>è stata revocata {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Non puo più diventare membro.",IDENTITY_PENDING_REVOCATION:"L'<b>annulamento di questa identità</b> è stata richiesta ed è in corso di evaluazione. Capacità ad inviare certificazioni disabilitata",IDENTITY_INVALID_BLOCK_HASH:"Questa richiesta di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers): la persona deve rinnovare la sua domanda di certificazione <b>prima</b> di essere certificata.",IDENTITY_EXPIRED:"Questa identità è scaduta: la persona deve fare una nuova domanda di certificazione <b>prima di</b> essere certificata.",
-IDENTITY_SANDBOX_FULL:"Il nodo Duniter utilizzato da Cesium non puo ricevere altre domande di certificazione per ora, la lista d'attesa è piena.<br/><br/>Riprova più tardi o scegli un'altro peer Duniter (nelle <b>Impostazioni</b>).",IDENTITY_NOT_FOUND:"Identità non trovata",IDENTITY_TX_FAILED:"Impossibile caricare le operazioni",WOT_PENDING_INVALID_BLOCK_HASH:"Adesione non valida.",WALLET_INVALID_BLOCK_HASH:"Tua domanda di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers).<br/>Devi <a ng-click=\"doQuickFix('renew')\">rinnvoare la tua richiesta di adesione alla WOT</a> per risolvere il problema.",WALLET_IDENTITY_EXPIRED:"La pubblicazione della tua identità <b>è scaduta</b>.<br/>Devi <a ng-click=\"doQuickFix('fixIdentity')\">ripubblicare la tua identità</a> per risolvere il problema.",WALLET_REVOKED:"La tua identità è stata <b>revocata</b>: ne tuo pseudonimo ne tua chiave pubblica sarano utilizzati in futuro.",WALLET_HAS_NO_SELF:"La tua identità deve prima essere stata pubblicata e non essere ancora scaduta.",AUTH_REQUIRED:"Autenticazione necessaria.",AUTH_INVALID_PUBKEY:"La chiave pubblica non corrisponde al conto conesso.",AUTH_INVALID_SCRYPT:"Password o nome di utente non valido.",AUTH_INVALID_FILE:"File di portachiavi non valido.",AUTH_FILE_ERROR:"Impossibile aprire il file di portachiavi",IDENTITY_ALREADY_CERTIFY:"Hai <b>già certificato</b> questa identità.<br/><br/>Tuo certificato è ancora valido (scade {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Hai <b>già certificato</b> questa identità.<br/><br/>Tua certificazione è ancora pendente (Scadenza del periodo di  treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Impossibile certificare",LOAD_NEWCOMERS_FAILED:"Impossibile caricare i nuovi membri.",LOAD_PENDING_FAILED:"Impossibile caricare le certificazioni pendenti.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Devi <b>essere membro</b> per poter fare questo.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Devi aver <b>publiccato tua identità</b> per poter fare questo.",GET_BLOCK_FAILED:"Impossibile caricare il blocco",INVALID_BLOCK_HASH:"Blocco non trovato (hash errato)",DOWNLOAD_REVOCATION_FAILED:"Errore avvenuto nel download del file di cancellazione d'identità.",REVOCATION_FAILED:"Errore avvenuto durante la richiesta di cancellazione dell'identità.",SALT_OR_PASSWORD_NOT_CONFIRMED:"identificativo segreto o password sbagliati",RECOVER_ID_FAILED:"Impossibile ricuperare la password",LOAD_FILE_FAILED:"Impossibile caricare il file",NOT_VALID_REVOCATION_FILE:"File di cancellazione dell'identità errato (formato di file incorreto)",NOT_VALID_SAVE_ID_FILE:"File di backup dei credenziali errato (formato di file incorreto)",NOT_VALID_KEY_FILE:"File di portachiavi non valido (formato non riconosciuto)",EXISTING_ACCOUNT:"Tuoi credenziali corrispondono a quelli di un conto già esistente,di cui <a ng-click=\"showHelpModal('pubkey')\">la chiave pubblica</a> è:",EXISTING_ACCOUNT_REQUEST:"Per favore cambi tuoi credenziali in modo che corrispondino ad un conto non utilizzato.",GET_LICENSE_FILE_FAILED:"Impossibile caricare il file della licenza",CHECK_NETWORK_CONNECTION:"Nessun peer sembra disponibile.<br/><br/>Per favore <b>verifica la tua connessione Internet</b>.",ISSUE_524_TX_FAILED:"Bonifico .<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>."},INFO:{POPUP_TITLE:"Informazioni",CERTIFICATION_DONE:"Identità firmata con successo",NOT_ENOUGH_CREDIT:"Saldo insufficiente",TRANSFER_SENT:"Transazione inviata con successo",COPY_TO_CLIPBOARD_DONE:"Copiato con successo",MEMBERSHIP_OUT_SENT:"Revoca dell'identità inviata",NOT_NEED_MEMBERSHIP:"Già un membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Questa identità mancherà a breve di certificazioni (almeno {{willNeedCertificationCount}}).",REVOCATION_SENT:"Revoca dell'identità inviata",REVOCATION_SENT_WAITING_PROCESS:"Cancellazione dell'identità <b>inviata con successo</b>. In attesa di validazione.",FEATURES_NOT_IMPLEMENTED:"Questa funzionalità non è ancora disponibile.<br/><br/>Vuoi contribuire per velocizzarne la disponibilità? ;)",EMPTY_TX_HISTORY:"Nessuna operazione da esportare"},CONFIRM:{POPUP_TITLE:"<b>Conferma</b>",POPUP_WARNING_TITLE:"<b>Avviso</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avvertimento di sicurezza</b>',CERTIFY_RULES_TITLE_UID:"Certificare {{uid}}",CERTIFY_RULES:'<b class="assertive">Non certificare un conto</b> se credi che: <ul><li>1.) l\'identità della persona potrebbe essere finta.<li>2.) la oersona ha già un conto certicato.<li>3.) la persona trasgredisce la regola 1 o 2 o entrambe. (Certifica conti finti o gemelli).</ul></small><br/>Sei sicuro/a di voler certificare questa identità?',TRANSFER:"<b>Resoconto del bonifico:</b><br/><br/><ul><li> - Inviato da: <b>{{from}}</b></li><li> - A: <b>{{to}}</b></li><li> - Importo: <b>{{amount}} {{unit}}</b></li><li> - Comento: <i>{{comment}}</i></li></ul><br/><b>Sei sicuro di voler procedere con questo bonifico?</b>",MEMBERSHIP_OUT:"Questa operazione è <b>irreversibile</b>.<br/></br/><b>Sei sicuro/a di voler cancellare la tua presenza nella WOT?</b>",MEMBERSHIP_OUT_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a <b>di voler revocare la tua identità</b>?",LOGIN_UNUSED_WALLET_TITLE:"Errore di battitura?",LOGIN_UNUSED_WALLET:"Il conto sembra <b>inattivo</b>.<br/><br/>Probabilmente è un<b>errore di battitura</b> mientre digitavi i tuoi credenziali. Per favore riprova, verificando che la <b>chiave pubblica sia tua<b/>.",FIX_IDENTITY:"Lo pseudonimo <b>{{uid}}</b> verrà pubblicato nuovamente. Si sostituirà alla precedente pubblicazione che è scaduta.<br/></br/><b>Sei sicuro/a</b> di voler procedere?",FIX_MEMBERSHIP:"Tua domanda di certificazione sarà inviata alla rete.<br/></br/><b>Sei sicuro/a?</b>",MEMBERSHIP:"Tua domanda per diventare membro sta per essere inviata alla rete.<br/></br/><b>Sei sicuro/a/b> di voler continuare ?",RENEW_MEMBERSHIP:"Tua adesione verrà rinnovata.<br/></br/><b>Sei sicuro/a?</b>",REVOKE_IDENTITY:"Stai per <b>revocare definitivamente questa identità</b>.<br/><br/>La chiave pubblica e lo pseudonimo associato <b>non saranno mai più utilizzati</b> (per un conto membro).<br/></br/><b>Sei sicuro/a</b> di voler revocare questa identità?",REVOKE_IDENTITY_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a di volern<b>revocare questa identità</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Tua presenza nella rete non deve ancora essere rinnovata (scaderà tra {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Sei sicuro/a</b> di voler rinnovare la tua presenza?",SAVE_BEFORE_LEAVE:"Vuoi <b>salvare tue modifiche</b> prima di uscira dalla pagina?",SAVE_BEFORE_LEAVE_TITLE:"Modifiche non salvate",LOGOUT:"Sei sicuro/a di voler chiudere la sessione?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> indisponibile o indirizzo errato.<br/><br/>Vuoi utilizzare temporanemante il <b>{{new}}</b> nodo?",INVALID_FILE_FORMAT:"Formato file non valido.",SAME_TX_RECIPIENT:"Il destinatario deve essere diverso dall'emittente."},DOWNLOAD:{POPUP_TITLE:"<b>File di cancellazione dell'identità/b>",POPUP_REVOKE_MESSAGE:"Per migliorare la sicurezza del tuo conto, scarica <b>il documento di revoca del conto</b>. Ti consentirà di revocare tuo conto (nel caso di violazione del conto, della tua identità, conto creato con errori, etc.).<br/><br/><b>Tiene questo document al sicuro.</b>"},HELP:{TITLE:"Aiuto online",JOIN:{SECTION:"Entrare nella rete",SALT:"Il tuo identificativo segreto è molto importante. E utilizzato per cryptare tua password che permette poi di calcolare tua <span class=\"text-italic\">chiave pubblica</span> (suo numero) è la chiave privata che ne consenta l'accesso.<br/><b>Ricordati bene di questo identificativo</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiato senza dover creare un conto nuovo.<br/><br/>Raccomandiamo che sia abbastanza lungo (8 caratteri almeno) è il più originale possibile. (buona entropia)",PASSWORD:"La password è molto importante, è utilizzata per calcolare tuo numero di conto (tua chiave pubblica) e la chiave privata che ne consento l'accesso.<br/><b>Ricordatila bene</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiata senza dover creare un conto nuovo.<br/><br/>Una buona password (preferibilmente) è composta da almeno 8 caratteri, con almeno una maiuscola e un numero.",PSEUDO:'Un pseudonimo è utilizzato quando ti iscrivi come <span class="text-italic">membro</span>. E sempre associato ad un portafoglio (con sua <span class="text-italic">chiave pubblica</span>).<br/>E pubblicato sulla rete perche gli altri membri possino identificarla, certificarla o invarle soldi. <br/> Lo pseudonimo deve essere unico nella rete (tra quelli utilizzati adesso e in passato).'},LOGIN:{SECTION:"Accedi",PUBKEY:"Chiave pubblica del conto",PUBKEY_DEF:'La chiave pubblica del portachiavi è generata dai credenziali, ma non corrispode ad un conto già utilizzato.<br/><b>Accertati che tua chiave pubblica corrisponda al tuo conto</b>. Nel caso contrario, sarai conesso/a ad un conto probabilmente mai usato, datto che il rischio di collisione con un conto esistente è molto ridotto.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Saperne di più sulla cryptografia </a> con chiave pubblica.',METHOD:"Metodi di connessione",METHOD_DEF:"Hai diverse opzioni per accedere ad un portafoglio:<br/> - Accedendo con <b>salatura (leggera o sicura)</b> tua password sarà cryptata dal tuo identificativo segreto per scoraggiare tentativi di attachi di 'brute force' (per esempio con passwords conosciute).<br/> - Accedendo con la <b>chiave pubblica</b> ti evita di dover digitare tuoi credenziali che ti saranno chiesti solo quando vorrai fare una operazione col conto.<br/> - Accedendo <b>con un portachiavi</b> che leggerà tue chiave pubbliche e private da un file esterno, senza che tu li debba entrare."},GLOSSARY:{SECTION:"Glossario",PUBKEY_DEF:"Una chiave pubblica permette di identificare un portafoglio. Puo anche identificare un membro. In Cesium  è calcolata con la password e lo pseudonimo.",MEMBER:"Membro",MEMBER_DEF:'Un membro è una persona reale e viva, che desidera participare liberamente alla communità monetaria. Questo membro riceverà un Dividendo Universale, a secondo delle regole definite <span class="text-italic">nei parametri della moneta</span>.',CURRENCY_RULES:"Regole della moneta",CURRENCY_RULES_DEF:'I parametri delle moneta sono state definite per sempre e per tutti. I parametri con i quali la moneta si comporta: il calcolo del Dividendo Universale, il numero di certificazioni necessarie per diventare membro, il numero massimo di certificazioni che un membro puo inviare, etc.<br/><br/>I parametri non possono essere modificati perche c\'è una<span class="text-italic">Blockchain</span> che implementa e esegue queste regole e verifica costantemente la loro applicazione. <a href="#/app/currency">Vedere i parametri </a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'La Blockchain è un sistema decentralizzato che, nel caso di Duniter, permette di rispettare e implementare <span class="text-italic">le regole della moneta</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Saperne di più su Duniter</a> e il funzionamento della blockchain.',UNIVERSAL_DIVIDEND_DEF:'Il Dividendo Universale (UD) è la quantità di moneta co-creata da ogni membro, seguendo le formule mathematiche definite nelle <span class="text-italic">regole della moneta</span>.<br/>Al inizio di ogni periodo, il conto di ogni membro riceve una quantità uguale della nuova moneta creata. <br/><br/>Il DU conosce una crescita costante per rimanere equo nei confronti dei membri (attuali e passati). Viene calcolato tenendo in conto la speranza di vità media, cosi come dimostrato nella Teoria Relativa della Moneta (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Saperne di più sulla TRM</a> e la moneta libera.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> permette la scoperta dei <b>parametri della moneta</b> e la sua condizione presente.",CURRENCY_WOT:"Il <b>numero di membri</b> mostra <b>le dimensioni della WoT e la sua evoluzione </b>.",CURRENCY_MASS:"In evidenza qui è <b>l'importo totale</b> attualmente in circolazione e la sua <b> ripartizione media </b> a testa.<br/><br/>Questa cifra permette di avere un'idea <b>del valore di qualsiasi importo</b>, in base a quello <b>hanno gli altri</b> sul loro conto (in media).",CURRENCY_UNIT_RELATIVE:"L'unità usata qui (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che gli importi in {{currency|capitalize}} sono stati divisi dal <b>Dividendo Universale</b> (DU).<br/><br/><small>Questa unità relativa <b>ha senso</b> perche è stabile in contrasto con la massa monetaria che cresce costantemente.</small>",CURRENCY_CHANGE_UNIT:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette di <b>permutare unità</b> per vedere gli importi in <b>{{currency|capitalize}}</b>, non divisi dal Dividendo Universale (piuttosto che in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette <b>di permutare unità</b> per vedere gli importi in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, che è relativo al Dividendo Universale (l'importo co-prodotto da ogni membro).",CURRENCY_RULES:"Le<b>regole</b> della moneta determinano il suo <b>esatto e previdibile</b> comportamento.<br/><br/> Considerate come il proprio DNA della moneta, queste regole rendono il codice monetario <b>trasparente e comprensibile</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> permette la scopertà dello <b>stato della rete<b>.",NETWORK_BLOCKCHAIN:"Tutte le transazioni monetarie sono registrate in <b>registro sicuro e a prova di manomissione</b>, spesso chiamato <b>blockchain</b>.",NETWORK_PEERS:"I<b>peers</b> mostrati qui corrispondono a <b>dei computers che aggiornano e monitorano</b> la blockchain.<br/><br/>Più peers ci sono, più <b>decentralizzata</b> e più affidabile diventa la moneta.",NETWORK_PEERS_BLOCK_NUMBER:"Questo <b>numero</b> (in verda) indica <b>l'ultimo blocco validato</b> dal peer (ultima pagina scritta nel regitro).<br/><br/>Il verda indica che il blocco è stato validato anche dalla <b>maggioranza degli altri peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ogni membro</b>, che dispone di un computer connesso a Internet <b>puo partecipare, aggiungendosi come peer installando il software Duniter</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Leggi il manuale d\'installazione &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> permette l'accesso al saldo del conto e la cronologia delle transazioni.",MENU_BTN_ACCOUNT_MEMBER:"Qui puoi consultare lo stato del tuo conto, la cronologia delle transazioni e le tue certificazioni.",WALLET_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle tue certificazioni (date o ricevute).",WALLET_RECEIVED_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai ricevuto</b>.",WALLET_GIVEN_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai date</b>.",WALLET_BALANCE:"Il <b>soldo</b> del tuo conto è visibile qui.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unità utilizzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che questo importo in {{currency|capitalize}} è stato diviso dal <b>Dividendo Universale</b> (DU) co-creato da ogni membro.<br/>Ad oggi, 1 DU equivale a {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"Puoi <b>cambiare l'unità</b> in cui sono mostrati gli importi in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Per esempio, per mostrare gli importi <b>direttamente in {{currency|capitalize}}</b> piuttosto che in unità relativa.",WALLET_PUBKEY:"Questa è la chiave pubblica del tuo conto. La puoi dare ad un terzo perche possa identificare tuo conto.",WALLET_SEND:"Paghi in pochi clics.",WALLET_SEND_NO_MONEY:"Paghi in pochi clics.<br/>(Tuo saldo ancora non lo permette)",WALLET_OPTIONS:"Questo bottone permette di fare <b>altre, meno frequenti azioni</b>.<br/><br/> Non dimenticarti di fare il tour guidato di Cesium quando hai un attimo!",WALLET_RECEIVED_CERTS:"Questo mostra l'elenco delle persone che ti hanno fatto entrare nella WoT.",WALLET_CERTIFY:"Questo bottone <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permette di selezionare e certificare una identità.<br/><br/>Solo gli utenti <b>che sono già membri</b> possono certificare gli altri.",WALLET_CERT_STOCK:"Tuo stock di certificazioni da dare è limitato a <b>{{sigStock}} certificazioni</b>.<br/><br/>Questo stock si rifornisce col tempo, man mano che le certificazioni inviate scadono.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> permette l'accesso alla cronologia delle transazioni, e permette di fare nuovi bonifici.",MENU_BTN_TX:"Visualizza la cronologia <b>delle tue transazioni</b> qui e fai nuovi bonifici.",MENU_BTN_WOT:"Il menu<b>{{'MENU.WOT'|translate}}</b> permette di cercare <b>utenti</b> della moneta (membri o non).",WOT_SEARCH_TEXT_XS:"Per fare una ricerca nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>La ricerca inizierà automaticamente.",WOT_SEARCH_TEXT:"Per cercare nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>Dopodichè calca <b>Enter</b> per avviare la ricerca.",WOT_SEARCH_RESULT:"Visualizza la scheda dettagliata di un utente con un semplice click sulla linea.",WOT_VIEW_CERTIFICATIONS:"La linea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> mostra quanti membri hanno certificato questa identità.<br/><br/>Queste certificazioni dimostrano che il conto appartiene ad <b>una persona viva</b> e che questa persona non ha <b>nessun altro conto membro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Ci vogliono almeno <b>{{sigQty}} certificazioni</b> per diventare membro e co-produrre il <b>Dividendo Universale</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Clicca qui per aprire <b>una lista di tutte le certificazioni</b> ricevute e date da questa identità.",WOT_VIEW_CERTIFY:"Il bottone <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permette di aggiungere tua certificazione a questa identità.",CERTIFY_RULES:"<b>Attenzione:</b> Certifichi <b> solo persone reali e vive</b> che non hanno nessun altro conto membro.<br/><br/>L'affidabilità della moneta dipende della vigilanza di ciascuno.",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> ti permettono di configurare Cesium.<br/><br/>Per esempio, puoi <b>cambiare l'unità</b> in cui visualizzi la moneta.",HEADER_BAR_BTN_PROFILE:"Clicca qui per entrare nel <b>tuo profilo utente</b>",SETTINGS_CHANGE_UNIT:"Puoi cambiare <b>l'unità</b> della moneta cliccando qui.<br/><br/>- Disabilita questa opzione per vedere gli importi in {{currency|capitalize}}.<br/>- Abilita l'opzione per importi relativi in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divisi</b> dal attuale Dividendo Universale).",END_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Benvenuto nel <b>economia libera</b>!",END_NOT_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Se desideri entrare nella Web of Trust {{currency|capitalize}}, basta cliccare <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> qui sotto."}},API:{COMMON:{LINK_DOC:"documentazione API",LINK_DOC_HELP:"Documentazione dello sviluppatore",LINK_STANDARD_APP:"versione classica",LINK_STANDARD_APP_HELP:"Apri la versione classica di {{'COMMON.APP_NAME'|translate}}"},HOME:{TITLE:"Documentazione API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connecter vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connecter vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Pagamento online",SUMMARY:"Récapitulatif de la commande :",AMOUNT:"Montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinaire :",COMMENT:"Référence de la commande :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Mancato pagamento"}},DOC:{DESCRIPTION_DIVIDER:"Descrizione",URL_DIVIDER:"Indirizzo chiamata",PARAMETERS_DIVIDER:"Impostazioni",AVAILABLE_PARAMETERS:"Ecco l'elenco dei parametri disponibili :",DEMO_DIVIDER:"Provare",DEMO_HELP:"Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .",DEMO_RESULT:"Risultato della chiamata :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Successo !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulato dal utente',INTEGRATE_DIVIDER:"Integrare",INTEGRATE_CODE:"Codice :",INTEGRATE_RESULT:"Previsualizzare il risultato :",INTEGRATE_PARAMETERS:"Parametri",TRANSFER:{TITLE:"Pagamenti",DESCRIPTION:"Da un sito (per es. : un sito e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:",PARAM_PUBKEY:"Chiave pubblica del destinatario",PARAM_PUBKEY_HELP:"Chiave pubblica del destinatario (obliggatoria)",PARAM_AMOUNT:"Importo",PARAM_AMOUNT_HELP:"Importo della transazione (obligatorio)",PARAM_COMMENT:"Riferimento (o commento)",PARAM_COMMENT_HELP:"Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.",PARAM_NAME:"Nome (de destinatario o del sito web)",PARAM_NAME_HELP:'Nom del sito web o del destinatario chiamando l\'API. Può essere un nome leggibile ("Mio sito"), oppure l\'indirizzo http del sito ("MioSito.com").',PARAM_REDIRECT_URL:"Indirizzo web di redirezione",PARAM_REDIRECT_URL_HELP:'Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : "{tx}", "{hash}", "{comment}", "{amount}" e {pubkey}.',PARAM_CANCEL_URL:"Indirizzo web della cancellazione",PARAM_CANCEL_URL_HELP:'Indirizzo web (URL) in caso dell\'annullamento del pagamento dall\'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : "{comment}", "{amount}" e {pubkey}.',EXAMPLES_HELP:"Ecco esempi di integrazione :",EXAMPLE_BUTTON:"Bottone HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagare in {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Stile personnalizzato",EXAMPLE_BUTTON_TEXT_HELP:"Testo del bottone",EXAMPLE_BUTTON_BG_COLOR:"Colore del fondo",EXAMPLE_BUTTON_BG_COLOR_HELP:"Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Colore del testo",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Esempio: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icona",EXAMPLE_BUTTON_TEXT_WIDTH:"Larghezza",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Esempio: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Nessuna",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (nero)"}}}}),e.translations("nl-NL",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Publieke sleutel",MEMBER:"Lid",BLOCK:"Blok",BTN_OK:"OK",BTN_YES:"Ja",BTN_NO:"Nee",BTN_SEND:"Verzenden",BTN_SEND_MONEY:"Verstuur geld",BTN_SEND_MONEY_SHORT:"Versturen",BTN_SAVE:"Opslaan",BTN_YES_SAVE:"Ja, opslaan",BTN_YES_CONTINUE:"Ja, doorgaan",BTN_SHOW:"Tonen",BTN_SHOW_PUBKEY:"Toon sleutel",BTN_RELATIVE_UNIT:"Gebruik relatieve eenheid",BTN_BACK:"Terug",BTN_NEXT:"Volgende",BTN_CANCEL:"Annuleer",BTN_CLOSE:"Sluit",BTN_LATER:"Later",BTN_LOGIN:"Aanmelden",BTN_LOGOUT:"Uitloggen",BTN_ADD_ACCOUNT:"Nieuwe Rekening",BTN_SHARE:"Delen",BTN_EDIT:"Bewerken",BTN_DELETE:"Wissen",BTN_ADD:"Toevoegen",BTN_SEARCH:"Zoeken",BTN_REFRESH:"Verwezenlijken",BTN_START:"Beginnen",BTN_CONTINUE:"Doorgaan",BTN_UNDERSTOOD:"Ik heb het begrepen",BTN_OPTIONS:"Opties",BTN_HELP_TOUR:"Rondleiding",BTN_HELP_TOUR_SCREEN:"Ontdek dit scherm",BTN_DOWNLOAD:"Downloaden",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Downloaden het rekeningoverzicht",BTN_MODIFY:"Bewerken",DAYS:"dagen",NO_ACCOUNT_QUESTION:"Nog geen lid? Registreer nu!",SEARCH_NO_RESULT:"Geen resultaten",LOADING:"Even geduld...",SEARCHING:"Zoeken...",FROM:"Van",TO:"Aan",COPY:"Kopieren",LANGUAGE:"Taal",UNIVERSAL_DIVIDEND:"Universeel dividend",UD:"UD",DATE_PATTERN:"DD-MM-YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD-MM-YY",DATE_MONTH_YEAR_PATTERN:"MM-YYYY",EMPTY_PARENTHESIS:"(leeg)",UID:"Pseudoniem",ENABLE:"Geactiveerd",DISABLE:"Gedeactiveerd",RESULTS_LIST:"Resultaten:",RESULTS_COUNT:"{{count}} uitslagen",EXECUTION_TIME:"uitgevoerd in {{duration|formatDurationMs}}",SHOW_VALUES:"Toon waarden openlijk?",POPOVER_ACTIONS_TITLE:"Opties",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidig limiet op {{limit}})",POPOVER_SHARE:{TITLE:"Delen",SHARE_ON_TWITTER:"Deel op Twitter",SHARE_ON_FACEBOOK:"Deel op Facebook",SHARE_ON_DIASPORA:"Deel op Diaspora*",SHARE_ON_GOOGLEPLUS:"Deel op Google+"}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Selecteer bron:",BTN_PICTURE_GALLERY:"Gallerij",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Welkom",WOT:"Register",CURRENCY:"Valuta",CURRENCIES:"Valuta's",ACCOUNT:"Mijn rekening",TRANSFER:"Overmaken",SCAN:"Scannen",SETTINGS:"Instellingen",NETWORK:"Netwerk",TRANSACTIONS:"Mijn transacties"},ABOUT:{TITLE:"Over",LICENSE:"<b>Vrije</b> software (GNU AGPLv3 licentie).",CODE:"Broncode:",DEVELOPERS:"Ontwikkelaars:",FORUM:"Forum:",DEV_WARNING:"Waarschuwing",DEV_WARNING_MESSAGE:"Deze applicatie is nog in actieve onwikkeling.<br/>Meld ons elk pobleem!",DEV_WARNING_MESSAGE_SHORT:"Deze App is nog instabiel (in ontwikkeling).",REPORT_ISSUE:"Meld een probleem"},HOME:{TITLE:"Cesium",WELCOME:"Welkom bij de Cesium Applicatie!",MESSAGE:"Bekijk je {{currency|abbreviate}} portefeilles in real time.",BTN_REGISTRY:"Register",BTN_CURRENCY:"Verken valuta",BTN_ABOUT:"over",BTN_HELP:"Help",REPORT_ISSUE:"Meld een probleem",NOT_YOUR_ACCOUNT_QUESTION:'Is rekening <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> niet van jou?',BTN_CHANGE_ACCOUNT:"Dze rekening ontkoppelen",CONNECTION_ERROR:'Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class="positive" ng-click="doQuickFix(\'settings\')">in parameters</a>.'},SETTINGS:{TITLE:"Instellingen",NETWORK_SETTINGS:"Netwerk",PEER:"Duniter knooppunt adres",PEER_CHANGED_TEMPORARY:"Adres tijdelijk worden gebruikt",USE_LOCAL_STORAGE:"Lokale opslag inschakelen",USE_LOCAL_STORAGE_HELP:"Laat je instellingen opslaan",ENABLE_HELPTIP:"Contextgebonden hulp inschakelen",ENABLE_UI_EFFECTS:"Schakel visuele effecten",HISTORY_SETTINGS:"Mijn rekening",DISPLAY_UD_HISTORY:"Toon geproduceerde dividenden?",AUTHENTICATION_SETTINGS:"Authentificatie",REMEMBER_ME:"Onthoud mij",REMEMBER_ME_HELP:"Hiermee kunt u blijven altijd aangesloten (niet aanbevolen).",PLUGINS_SETTINGS:"Uitbreidingen",BTN_RESET:"Herstel standaardinstellingen",EXPERT_MODE:"Geavanceerde modus inschakelen",EXPERT_MODE_HELP:"Toon meer details",POPUP_PEER:{TITLE:"Duniter Knooppunt",HOST:"Adres",HOST_HELP:"Aadres: server:poort",USE_SSL:"Secure?",USE_SSL_HELP:"(SSL-encryptie)",BTN_SHOW_LIST:"Lijst van knooppunten"}},BLOCKCHAIN:{HASH:"Hachee : {{hash}}",VIEW:{HEADER_TITLE:"Blok #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Huidige blok",TITLE:"Blok #{{number|formatInteger}}",COMPUTED_BY:"Berekend door het knooppunt",SHOW_RAW:"Bekijk RAW-bestand",TECHNICAL_DIVIDER:"Technische informatie",VERSION:"Format versie",HASH:"Hash berekend",UNIVERSAL_DIVIDEND_HELP:"Munt gecoproduceerd door elk van de {{membersCount}} ledental",EMPTY:"Er zijn geen gegevens in dit blok",POW_MIN:"Mminimum moeilijkheid",POW_MIN_HELP:"Moeilijkheid opgelegd hash te berekenen",DATA_DIVIDER:"Gegevens",IDENTITIES_COUNT:"Nieuwe identiteiten",JOINERS_COUNT:"Nieuwe leden",ACTIVES_COUNT:"Verlengingen",ACTIVES_COUNT_HELP:"Leden die hun lidmaatschap te vernieuwen",LEAVERS_COUNT:"Verlaters",LEAVERS_COUNT_HELP:"Leden die niet langer wenst certificering",EXCLUDED_COUNT:"Uitgesloten leden",EXCLUDED_COUNT_HELP:"Oud-leden uitgesloten door niet-verlenging of gebrek aan certificeringen",REVOKED_COUNT:"Identiteiten ingetrokken",REVOKED_COUNT_HELP:"Deze rekeningen zullen niet langer leden",TX_COUNT:"Transacties",CERT_COUNT:"Certificeringen",TX_TO_HIMSELF:"Ruil deal",TX_OUTPUT_UNLOCK_CONDITIONS:"Omstandigheden van de introductie",TX_OUTPUT_OPERATOR:{AND:"en",OR:"of"},TX_OUTPUT_FUNCTION:{SIG:"<b>handtekening</b> ",XHX:"<b>Wachtwoord</b>, wiens SHA256 =",CSV:"Geblokkeerd",CLTV:"Opgesloten"}},LOOKUP:{TITLE:"Blokken",NO_BLOCK:"Geen blok",LAST_BLOCKS:"Recente blokken :",BTN_COMPACT:"Compact"}},CURRENCY:{SELECT:{TITLE:"Valuta's",CURRENCIES:"Bekende valuta's",MEMBERS_COUNT:"{{membersCount}} leden"},VIEW:{TITLE:"Valuta",TAB_CURRENCY:"Valuta",TAB_WOT:"Gemeenschap",TAB_NETWORK:"Netwerk",CURRENCY_NAME:"Valuta naam",MEMBERS:"Ledental",MEMBERS_VARIATION:"Variatie since {{duration | formatDuration}}",MONEY_DIVIDER:"Geld",MASS:"Monetaire massa",SHARE:"Aandeel per lid",UD:"Universeel Dividend",C_ACTUAL:"Huidige toename",MEDIAN_TIME:"Blockchain tijd",POW_MIN:"Algemene moeilijkheidsgraad",MONEY_RULES_DIVIDER:"Monetaire regels",C_RULE:"Toename",UD_RULE:"Universeel dividend (formule)",SIG_QTY_RULE:"Benodigd aantal certificaties om lid te worden",SIG_STOCK:"Maximum aantal certificaties te versturen per lid",SIG_PERIOD:"Minimum vertraging tussen 2 certificaties verzonden door één en dezelfde persoon.",SIG_WINDOW:"Maximum vertraging voor een certificatie in behandeling wordt genomen",STEP_MAX:"Maximum afstand tussen elk WoT lid en een nieuw lid.",WOT_RULES_DIVIDER:"Lidmaatschapseisen",XPERCENT:"Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren"}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain tijd",LOADING_PEERS:"Even geduld...",NODE_ADDRESS:"Adres :",ENDPOINTS:{BMAS:"Endpoint (SSL)",BMATOR:"Endpoint TOR",ES_USER_API:"Knoop Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Knopen",SIGNED_ON_BLOCK:"Getekend op blok",MIRROR:"spiegel",CURRENT_BLOCK:"Blok #",VIEW:{TITLE:"Knoop",OWNER:"Maakt deel uit van",SHOW_RAW_PEERING:"Zie netwerkdocument",KNOWN_PEERS:"Bekende knopen :",GENERAL_DIVIDER:"Algemene informatie",ERROR:{LOADING_TOR_NODE_ERROR:"Kan knooppunt niet worden opgehaald. De wachttijd wordt overschreden.",LOADING_NODE_ERROR:"Kan knooppunt niet worden opgehaald"}}},WOT:{SEARCH_HELP:"Zoeken (lid of publieke sleutel)",SEARCH_INIT_PHASE_WARNING:"Tijdens de pre-registratiefase, het zoeken van lopende registraties <b>kan lang</b> zijn. Dank je wel geduld...",
-REGISTERED_SINCE:"Registratie",REGISTERED_SINCE_BLOCK:"Geregistreerd op blok #",NO_CERTIFICATION:"Geen gevalideerde certificaties",NO_GIVEN_CERTIFICATION:"Geen uitgegeven certificaties",NOT_MEMBER_PARENTHESIS:"(niet-lid)",IDENTITY_REVOKED_PARENTHESIS:"(ingetrokken identiteit)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(intrekking in behandeling)",EXPIRE_IN:"Verloopt",NOT_WRITTEN_EXPIRE_IN:"Uiterlijke<br/>behandeling",EXPIRED:"Verlopen",PSEUDO:"Pseudoniem",SIGNED_ON_BLOCK:"Uitgegeven op block #{{block}}",WRITTEN_ON_BLOCK:"Geschreven op block #{{block}}",GENERAL_DIVIDER:"Algemene informatie",NOT_MEMBER_ACCOUNT:"Simpele rekening (geen lid)",NOT_MEMBER_ACCOUNT_HELP:"Dit is een eenvoudige rekening, zonder dat er een aanvraag voor lidmaatschap in de wacht wordt gezet.",TECHNICAL_DIVIDER:"Technische informatie",BTN_CERTIFY:"Certificeren",BTN_YES_CERTIFY:"Ja, Certificeren",BTN_SELECT_AND_CERTIFY:"Nieuwe certificatie",ACCOUNT_OPERATIONS:"Operaties op de rekening",VIEW:{POPOVER_SHARE_TITLE:"Identiteit {{title}}"},LOOKUP:{TITLE:"Register",NEWCOMERS:"Nieuwe leden:",PENDING:"Aspirant leden:",REGISTERED:"Geregistreerd {{sigDate | formatFromNow}}",MEMBER_FROM:"Lid sinds {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nieuwste leden",BTN_PENDING:"Registraties in afwachting",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidige limiet op {{limit}})",NO_PENDING:"Er zijn geen registraties in afwachting gevonden.",NO_NEWCOMERS:"Er zijn geen nieuwe leden gevonden."},MODAL:{TITLE:"Zoeken"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaties",SUMMARY:"Ontvangen certificaties",LIST:"Details van ontvangen certificaties",PENDING_LIST:"Certificaties in afwachting",RECEIVED:"Ontvangen certificaties",RECEIVED_BY:"Certificaties ontvanged door {{uid}}",ERROR:"Ontvangen vertificaties met fout",SENTRY_MEMBER:"Referent lid"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Verzonden certificaties",SUMMARY:"Verzonden certificaties",LIST:"Details van verzonden certificaties",PENDING_LIST:"Certificaties in afwachting",SENT:"Verzonden certificaties",SENT_BY:"Certificaties verzonden door {{uid}}",ERROR:"Verzonden certificaties met fout"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Inloggen',SALT:"Beveiligingszin",SALT_HELP:"Zin ter beveiliging van je rekening",SHOW_SALT:"Toon de beveiligingszin",PASSWORD:"Wachtwoord",PASSWORD_HELP:"Wachtwoord ter beveiliging van je rekening",NO_ACCOUNT_QUESTION:"Nog geen rekening?",CREATE_ACCOUNT:"Open een rekening",FORGOTTEN_ID:"Wachtwoord vergeten?"},ACCOUNT:{TITLE:"Mijn rekening",BALANCE:"Saldo",LAST_TX:"Recente transacties",BALANCE_ACCOUNT:"Rekeningsaldo",NO_TX:"Geen transacties",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(huidige limiet op {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacties in afwachting",ERROR_TX:"Niet uitgevoerde transacties",ERROR_TX_SENT:"Verzonden transacties",ERROR_TX_RECEIVED:"Ontvangen transacties",EVENTS:"Gebeurtenissen",WAITING_MEMBERSHIP:"Lidmaatschapsverzoek verzonden. In afwachting van validatie.",WAITING_CERTIFICATIONS:"Je hebt {{needCertificationCount}} certificatie(s) nodig om lid te worden",WILL_MISSING_CERTIFICATIONS:"Je heeft binnenkort <b>onvoldoende certificaties</b> (ten minste {{willNeedCertificationCount}} benodigd)",WILL_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap <b>gaat verlopen op {{membershipExpiresIn|formatDurationTo}}</b>. Vergeet niet <a ng-click=\"doQuickFix('renew')\">je lidmaatschap te vernieuwen</a> voor die tijd.",CERTIFICATION_COUNT:"Aantal certificaties",CERTIFICATION_COUNT_SHORT:"Certificaties",SIG_STOCK:"Voorraad uit te geven certificaties",BTN_RECEIVE_MONEY:"Ontvangen",BTN_MEMBERSHIP_IN_DOTS:"Lidmaatschap aanvragen...",BTN_MEMBERSHIP_RENEW:"Lidmaatschap verlengen",BTN_MEMBERSHIP_RENEW_DOTS:"Lidmaatschap verlengen...",BTN_MEMBERSHIP_OUT_DOTS:"Lidmaatschap opzeggen...",BTN_SEND_IDENTITY_DOTS:"Identiteit publiceren...",BTN_SECURITY_DOTS:"Rekening en veiligheid...",BTN_SHOW_DETAILS:"Tonen technische informatie",BTN_REVOKE:"Deze identiteit<span class='hidden-xs hidden-sm'> definitief</span> opzeggen...",NEW:{TITLE:"Registratie",SLIDE_1_TITLE:"Selecteer een valuta:",SLIDE_2_TITLE:"Soort rekening:",MEMBER_ACCOUNT:"Persoonlijke rekening (lidmaatschap)",MEMBER_ACCOUNT_HELP:"Als je nog niet als individu geregistreerd bent (één rekening per individu mogelijk).",WALLET_ACCOUNT:"Eenvoudige portefeille",WALLET_ACCOUNT_HELP:"Als je een onderneming, stichting etc. vertegenwoordigd of eenvoudigweg een additionele portefeille nodig hebt. Geen individueel universeel dividend zal door deze rekening gecréeerd worden.",SALT_WARNING:"Kies een beveiligingszin.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je deze zin goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PASSWORD_WARNING:"Kies een wachtwoord.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je dit woord goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PSEUDO_WARNING:"Kies een pseudoniem.<br/>Het dient om makkelijker gevonden te worden door anderen.<br/><br/>.Gebruik van spaties, komma's en accenten is niet toegestaan.<br/><div class='hidden-xs'><br/>Voorbeeld: <span class='gray'>JulesDeelder, JohanVermeer, etc.</span>",PSEUDO:"Pseudoniem",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Bevestig",SALT_CONFIRM_HELP:"Bevestig de beveiligingszin",PASSWORD_CONFIRM:"Bevestig",PASSWORD_CONFIRM_HELP:"Bevestig het wachtwoord",SLIDE_6_TITLE:"Bevestiging:",COMPUTING_PUBKEY:"Berekening...",LAST_SLIDE_CONGRATULATION:"Bravo! Je hebt alle verplichte velden ingevuld.<br/>Je kunt je <b>rekeningaanvraag verzenden</b>.<br/><br/>Ter informatie, de publieke sleutel hieronder identificeert je toekomstige rekening.<br/>Je kunt deze aan derde partijen communiceren om geld te ontvangen. Zodra je rekening geopend is, kun je de sleutel terugvinden onder <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je beveiligingszin, wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je je persoonlijke rekeningaanvraag wil verzenden?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je deze portefeilleaanvraag wil verzenden?',PSEUDO_AVAILABLE:"Deze naam is beschikbaar",PSEUDO_NOT_AVAILABLE:"Deze gebruikersnaam is niet beschikbaar",INFO_LICENSE:"Om de valuta te sluiten, vragen wij u om te lezen en deze licentie te accepteren.",BTN_ACCEPT:"Ik accepteer",BTN_ACCEPT_LICENSE:"Ik ga akkoord met de licentie"},POPUP_REGISTER:{TITLE:"Voer een pseudoniem in",HELP:"Een pseudoniem is nodig voor anderen om je te kunnen vinden."},FILE_NAME:"{{currency}} - Rekeningafschrift {{pubkey|formatPubkey}} {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Datum",AMOUNT:"Bedrag",COMMENT:"Commentaar"}},TRANSFER:{TITLE:"Overboeken",SUB_TITLE:"Geld overboeken",FROM:"Van",TO:"Aan",AMOUNT:"Bedrag",AMOUNT_HELP:"Bedrag",COMMENT:"Opmerking",COMMENT_HELP:"Opmerking (optioneel)",BTN_SEND:"Verzenden",BTN_ADD_COMMENT:"Opmerking toevoegen",WARN_COMMENT_IS_PUBLIC:"Houd er rekening mee dat <b>reacties openbaar zijn </b> (niet-versleuteld).",MODAL:{TITLE:"Overboeking"}},ERROR:{POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"Value is too short (min {{minLength]] characters).",FIELD_TOO_SHORT_WITH_LENGTH:"This field value is too short.",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous phrase.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",EXISTING_ACCOUNT:"Je gegevens komen overeen met een bestaande rekening, met de <a ng-click=\"showHelpModal('pubkey')\">publieke sleutel</a>:",EXISTING_ACCOUNT_REQUEST:"Gelieve je gegevens te wijzigen zodat ze met een niet gebruikte rekening overeenkomen."},INFO:{POPUP_TITLE:"Informatie",CERTIFICATION_DONE:"Identiteit succesvol getekend",NOT_ENOUGH_CREDIT:"Niet genoeg krediet",TRANSFER_SENT:"Verzoek tot overboeken succesvol verzonden",COPY_TO_CLIPBOARD_DONE:"Kopie geslaagd",MEMBERSHIP_OUT_SENT:"Opzegging lidmaatschap succesvol verzonden",NOT_NEED_MEMBERSHIP:"Je bent al lid.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Deze identiteit heeft binnenkort onvoldoende certificaties (ten minste {{willNeedCertificationCount}} nodig)."},CONFIRM:{POPUP_TITLE:"<b>Bevestiging</b>",POPUP_WARNING_TITLE:"<b>Waarschuwing</b>",CERTIFY_RULES_TITLE_UID:"Certificeer {{uid}}",CERTIFY_RULES:'<b>Beveiligingswaarschuwing:</b><br/><br/><b class="assertive">Certificeer een rekening niet</b> als je gelooft dat: <ul><li>1.) de aanvrager niet echt is.<li>2.) de aanvrager al een andere gecertificeerde rekening heeft.<li>3.) de aanvrager opzettelijk of door onzorgvuldigheid regel 1 of 2 overtreedt bij het verzenden van certificaten.</ul></small><br/>Weet je zeker dat je deze identieit wilt certificeren?',TRANSFER:"<b>Samenvatting van de overboeking:</b><br/><br/><ul><li> - Van: <b>{{from}}</b></li><li> - Aan: <b>{{to}}</b></li><li> - Bedrag: <b>{{amount}} {{unit}}</b></li><li> - Opmerking: <i>{{comment}}</i></li></ul><br/><b>Weet je zeker dat je deze overboeking wil doen?</b>",MEMBERSHIP_OUT:"<b>Waarschuwing</b>:<br/>Je staat op het punt je lidmaatschap te beëindigen. Dit kan <b>niet ongedaan</b> worden gemaakt.<br/></br/><b>Weet je zeker dat je door wil gaan?</b>",LOGIN_UNUSED_WALLET_TITLE:"Typefout?",LOGIN_UNUSED_WALLET:"Je bent ingelogged op een rekening die <b>inactief</b> lijkt te zijn.<br/><br/>Als deze rekening niet met de jouwe overeenkomt, komt dat waarschijnlijk door een <b>typefout</b> bij het inloggen.<br/><br/><b>Wilt u toch doorgaan met deze rekening?</b>",FIX_IDENTITY:"De pseudoniem <b>{{uid}}</b> zal opnieuw gepubliceerd worden, waarmee de oude verlopen publicatie wordt vervangen.<br/></br/><bWeet je zeker</b> dat je door wil gaan?",FIX_MEMBERSHIP:"Je verzoek to lidmaatschap zal verstuurd worden.<br/></br/><b>Weet je het zeker?</b>",RENEW_MEMBERSHIP:"Je lidmaatschap zal verlengd worden.<br/></br/><b>Weet je het zeker?</b>",REVOKE_IDENTITY:"<b>Beveiligingswaarschuwing:</b><br/>You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated nickname <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to continue?",REVOKE_IDENTITY_2:"Deze handeling is <b>niet terug te draaien</b>!<br/><br/><b>Weet je zeker</b> dat je door wil gaan?",NOT_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap hoeft niet verlengd te worden (het zal pas verlopen na {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Weet je zeker</b> dat je een verlengingsaanvraag wil versturen?",SAVE_BEFORE_LEAVE:"Wil je <b>je wijzigingen opslaan</b> voor je de pagina verlaat?",SAVE_BEFORE_LEAVE_TITLE:"Wijzigingen niet opgeslagen",LICENCE:"Ik heb gelezen en geaccepteerd de voorwaarden van de vergunning G1"},DOWNLOAD:{POPUP_TITLE:"<b>Intrekkingsdocument</b>",POPUP_REVOKE_MESSAGE:"Om je rekening te beveiligen, download het <b>rekening intrekkingsdocument</b>. Dit heb je nodig om je rekening op te heffen (in het geval van diefstal, een verandering van ID, een ten onrechte gemaakte rekening, etc.).<br/><br/><b>Bewaar deze op een veilige plaats.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it. <b>Please remeber this phrase well</b>, because there is no way to recover it when lost. What\'s more, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the protection phrase, it is use to calculate your account number (public key) and the private key to access it. <b>Please remember it well</b>, because there is no way to recover it when lost. What's more, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>). It is published on the network so that other users may identify it, certify or send money to the account. A pseudonym must be unique among all members (current and past).'},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"Een publieke sleutel identificeert altijd een portemonnee. Het kan een lid identificeren. In Cesium wordt berekend met de geheime ID en wachtwoord.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"This button allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"This button allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre and open source). <a href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}}})}]),angular.module("cesium.plugins",["cesium.plugins.translations","cesium.plugins.templates","cesium.graph.plugin","cesium.es.plugin","cesium.map.plugin"]),angular.module("cesium.plugins.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{
-SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("en",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",
-CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("eo-EO",{COMMON:{CATEGORY:"Kategorio",CATEGORIES:"Kategorioj",CATEGORY_SEARCH_HELP:"Serĉado",LAST_MODIFICATION_DATE:"Ĝisdatigita la",SUBMIT_BY:"Submetita de",BTN_PUBLISH:"Publikigi",BTN_PICTURE_DELETE:"Forigi",BTN_PICTURE_FAVORISE:"Precipa",BTN_PICTURE_ROTATE:"Turni",BTN_ADD_PICTURE:"Aldoni foton",NOTIFICATION:{TITLE:"Nova avizo | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vi havas {{count}} avizo{{count>0?'j':''}}n ne legita{{count>0?'j':''}}n"},NOTIFICATIONS:{TITLE:"Avizoj",MARK_ALL_AS_READ:"Ĉion marki legita",NO_RESULT:"Neniu avizo",SHOW_ALL:"Vidi ĉion",LOAD_NOTIFICATIONS_FAILED:"Malsukceso por ŝarĝi la avizojn"}},MENU:{REGISTRY:"Paĝoj",USER_PROFILE:"Mia profilo",MESSAGES:"Mesaĝoj",NOTIFICATIONS:"Avizoj",INVITATIONS:"Invitoj"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Konto por organizaĵo",ORGANIZATION_ACCOUNT_HELP:"Se vi reprezentas entreprenon, asocion, ktp.<br/>Neniu universala dividendo estos kreita per tiu ĉi konto."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vi povas <a ui-sref="app.edit_profile">tajpi vian profilon Cesium+</a> (kromebleco) por disponi pli bonan videblecon por via konto.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne povas ricevi la avizojn pro teknika eraro (konekto al la daten-nodo Cesium+).<br/><br/>Se la problemo daŭradas, bonvolu <b>elekti alian daten-nodon</b> ĉe la parametroj Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugesti identecojn atestotajn...",BTN_ASK_CERTIFICATIONS_DOTS:"Peti membrojn atesti min...",BTN_ASK_CERTIFICATION:"Peti atestaĵon",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugesti atestadojn",HELP:"Elekti viajn sugestojn"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Peti atestaĵojn",HELP:"Elekti la ricevontojn"},SEARCH:{DIVIDER_PROFILE:"Kontoj",DIVIDER_PAGE:"Paĝoj",DIVIDER_GROUP:"Grupoj"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi tiujn sugestojn por atestado</b>?",ASK_CERTIFICATION:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b>?",ASK_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b> al tiuj personoj?"}},INVITATION:{TITLE:"Invitoj",NO_RESULT:"Neniu invito atendanta",BTN_DELETE_ALL:"Forigi ĉiujn invitojn",BTN_DELETE:"Forigi la inviton",BTN_NEW_INVITATION:"Nova invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> petas vian atestadon',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> estas sugestita al vi por atestado',SUGGESTED_BY:'Sugesto sendita de <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitoj"},LIST:{TITLE:"Invitoj"},NEW:{TITLE:"Nova invito",RECIPIENTS:"Al",RECIPIENTS_HELP:"Ricevontoj de la invito",RECIPIENTS_MODAL_TITLE:"Ricevontoj",RECIPIENTS_MODAL_HELP:"Bonvolu elekti la ricevontojn:",SUGGESTION_IDENTITIES:"Sugestoj por atestado",SUGGESTION_IDENTITIES_HELP:"Atestadoj sugestotaj",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugestoj",SUGGESTION_IDENTITIES_MODAL_HELP:"Bonvolu elekti viajn sugestojn:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La forigo de la invitoj estas <b>neinversigebla ago</b>.<br/><br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",SEND_INVITATIONS_TO_CERTIFY:"Ĉu vi certas, ke vi volas <b>sendi tiun inviton atestotan</b>?"},INFO:{INVITATION_SENT:"Invito sendita"},ERROR:{LOAD_INVITATIONS_FAILED:"Malsukceso por ŝarĝi la invitojn",REMOVE_INVITATION_FAILED:"Eraro dum la forigo de la invito",REMOVE_ALL_INVITATIONS_FAILED:"Eraro dum la forigo de la invitoj",SEND_INVITATION_FAILED:"Eraro dum la sendo de la invito",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito nelegebla (strukturo nekonata)</span> - sendita de <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Komentoj",SHOW_MORE_COMMENTS:"Afiŝi la antaŭajn komentojn",COMMENT_HELP:"Via komento, demando, ktp.",COMMENT_HELP_REPLY_TO:"Via respondo...",BTN_SEND:"Sendi",POPOVER_SHARE_TITLE:"Mesaĝo #{{number}}",REPLY:"Respondi",REPLY_TO:"Respondo al:",REPLY_TO_LINK:"Responde al ",REPLY_TO_DELETED_COMMENT:"Responde al forigita komento",REPLY_COUNT:"{{replyCount}} respondoj",DELETED_COMMENT:"Komento forigita",ERROR:{FAILED_SAVE_COMMENT:"Eraro dum la konservo de la komento",FAILED_REMOVE_COMMENT:"Eraro dum la forigo de la komento"}},MESSAGE:{REPLY_TITLE_PREFIX:"Resp: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Respondi",BTN_COMPOSE:"Nova mesaĝo",BTN_WRITE:"Skribi",NO_MESSAGE_INBOX:"Neniu mesaĝo ricevita",NO_MESSAGE_OUTBOX:"Neniu mesaĝo sendita",NOTIFICATIONS:{TITLE:"Mesaĝoj",MESSAGE_RECEIVED:"Vi <b>ricevis mesaĝon</b><br/>de"},LIST:{INBOX:"Ricevujo",OUTBOX:"Senditaj mesaĝoj",LAST_INBOX:"Novaj mesaĝoj",LAST_OUTBOX:"Senditaj mesaĝoj",BTN_LAST_MESSAGES:"Freŝdataj mesaĝoj",TITLE:"Mesaĝoj",SEARCH_HELP:"Serĉado en la mesaĝoj",POPOVER_ACTIONS:{TITLE:"Kromaĵoj",DELETE_ALL:"Forigi ĉiujn mesaĝojn"}},COMPOSE:{TITLE:"Nova mesaĝo",TITLE_REPLY:"Respondi",SUB_TITLE:"Nova mesaĝo",TO:"Al",OBJECT:"Temo",OBJECT_HELP:"Temo",ENCRYPTED_HELP:"Bonvolu noti, ke tiu ĉi mesaĝo estos ĉifrita antaŭ sendo, tiel ke nur la adresato povos legi ĝin, kaj ke li estos certa, ke vi ja estas ties aŭtoro.",MESSAGE:"Mesaĝo",MESSAGE_HELP:"Enhavo de la mesaĝo",CONTENT_CONFIRMATION:"La enhavo de la mesaĝo estas malplena.<br/><br/>Ĉu vi volas tamen sendi la mesaĝon?"},VIEW:{TITLE:"Mesaĝo",SENDER:"Sendita de",RECIPIENT:"Sendita al",NO_CONTENT:"Mesaĝo malplena",DELETE:"Forigi la mesaĝon"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi mesaĝon</b>?<br/><br/>Tiu ago estas neinversigebla.",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi ĉiujn mesaĝojn</b>?<br/><br/>Tiu ago estas neinversigebla.",MARK_ALL_AS_READ:"Ĉu vi certas, ke vi volas <b>marki ĉiujn mesaĝojn legitaj</b>?",USER_HAS_NO_PROFILE:"Tiu identeco havas neniun profilon Cesium+. Eblas ke ĝi ne uzas la krom-programon Cesium+, kaj <b>do ne legos vian mesaĝon</b>.<br/><br/>Ĉu vi certas, ke vi volas tamen <b>daŭrigi</b>?"},INFO:{MESSAGE_REMOVED:"Mesaĝo forigita",All_MESSAGE_REMOVED:"Ĉiuj mesaĝoj estis forigitaj",MESSAGE_SENT:"Mesaĝo sendita"},ERROR:{SEND_MSG_FAILED:"Eraro dum la sendo de la mesaĝo.",LOAD_MESSAGES_FAILED:"Eraro dum la ricevo de la mesaĝoj.",LOAD_MESSAGE_FAILED:"Eraro dum la ricevo de la mesaĝo.",MESSAGE_NOT_READABLE:"Legado de la mesaĝo neebla.",USER_NOT_RECIPIENT:"Vi ne estas la adresato de tiu ĉi mesaĝo: malĉifrado neebla.",NOT_AUTHENTICATED_MESSAGE:"La aŭtenteco de la mesaĝo estas dubinda aŭ ties enhavo estas difektita.",REMOVE_MESSAGE_FAILED:"Malsukceso por forigi la mesaĝon",MESSAGE_CONTENT_TOO_LONG:"Signaro tro longa ({{maxLength}} signoj maksimume).",MARK_AS_READ_FAILED:"Neeblas marki la mesaĝon 'legita'.",LOAD_NOTIFICATIONS_FAILED:"Eraro dum la ricevo de la mesaĝo-avizoj.",REMOVE_All_MESSAGES_FAILED:"Eraro dum la forigo de ĉiuj mesaĝoj.",MARK_ALL_AS_READ_FAILED:"Eraro por marki la mesaĝojn legitaj.",RECIPIENT_IS_MANDATORY:"La adresato estas deviga."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero de bloko, haketo, publika ŝlosilo, ktp.",POPOVER_FILTER_TITLE:"Filtriloj",HEADER_MEDIAN_TIME:"Dato / Horo",HEADER_BLOCK:"Bloko #",HEADER_ISSUER:"Nodo elsendinta",BTN_LAST:"Lastaj blokoj",DISPLAY_QUERY:"Afiŝi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Eniroj/eliroj de membroj',EXISTING_TRANSACTION:'<b class="ion-card"></b> Kun spezoj',PERIOD:'<b class="ion-clock"></b> Inter <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) kaj <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Kalkulita de <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Spezoj koncernantaj <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Eraro dum la serĉado de la blokoj."}},GROUP:{GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",CREATED_TIME:"Kreita {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitoj"},LOOKUP:{TITLE:"Grupoj",SEARCH_HELP:"Nomo de grupo, vortoj, loko, ktp.",LAST_RESULTS_LIST:"Novaj grupoj:",OPEN_RESULTS_LIST:"Malfermitaj grupoj:",MANAGED_RESULTS_LIST:"Fermitaj grupoj:",BTN_LAST:"Novaj grupoj",BTN_NEW:"Mi aldonas grupon"},TYPE:{TITLE:"Nova grupo",SELECT_TYPE:"Tipo de grupo:",OPEN_GROUP:"Malfermita grupo",OPEN_GROUP_HELP:"Malfermita grupo estas alirebla de iu ajn membro de la mono.",MANAGED_GROUP:"Administrita grupo",MANAGED_GROUP_HELP:"Administrita grupo estas mastrumata de administrantoj kaj moderigantoj, kiuj povas akcepti, rifuzi aŭ eksigi membron.",ENUM:{OPEN:"Malfermita grupo",MANAGED:"Administrita grupo"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Kromaĵoj",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi grupon?<br/><br/>Tiu ago estas neinversigebla."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nova grupo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo"},ERROR:{SEARCH_GROUPS_FAILED:"Malsukceso por traserĉi grupojn",REMOVE_RECORD_FAILED:"Malsukceso por forigi la grupon"},INFO:{RECORD_REMOVED:"Grupo forigita"}},REGISTRY:{CATEGORY:"Ĉefa agado",GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_SHOW_WOT:"Personoj",BTN_SHOW_WOT_HELP:"Traserĉi personojn",BTN_SHOW_PAGES:"Paĝoj",BTN_SHOW_PAGES_HELP:"Traserĉi paĝojn",BTN_NEW:"Krei paĝon",MY_PAGES:"Miaj paĝoj",NO_PAGE:"Neniu paĝo",SEARCH:{TITLE:"Paĝoj",SEARCH_HELP:"Kio, Kiu: restoracio, Ĉe Marcelo, ...",BTN_ADD:"Nova",BTN_LAST_RECORDS:"Freŝdataj paĝoj",BTN_ADVANCED_SEARCH:"Sperta serĉado",BTN_OPTIONS:"Sperta serĉado",TYPE:"Tipo de paĝo",LOCATION_HELP:"Kie: Poŝto-kodo, Urbo",RESULTS:"Rezultoj",RESULT_COUNT_LOCATION:"{{count}} rezulto{{count>0?'j':''}}, proksime de {{location}}",RESULT_COUNT:"{{count}} rezulto{{count>0?'j':''}}",LAST_RECORDS:"Freŝdataj paĝoj",LAST_RECORD_COUNT_LOCATION:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}, proksime de {{location}}",LAST_RECORD_COUNT:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Spertaj kromaĵoj?"}},VIEW:{TITLE:"Adresaro",CATEGORY:"Ĉefa agado:",LOCATION:"Adreso:",MENU_TITLE:"Kromaĵoj",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi paĝon?<br/><br/>Tiu ago estas neinversigebla."},TYPE:{TITLE:"Tipoj",SELECT_TYPE:"Tipo de paĝo:",ENUM:{SHOP:"Loka komerco",COMPANY:"Entrepreno",ASSOCIATION:"Asocio",INSTITUTION:"Institucio"}},EDIT:{TITLE:"Redaktado",TITLE_NEW:"Nova paĝo",RECORD_TYPE:"Tipo de paĝo",RECORD_TITLE:"Nomo",RECORD_TITLE_HELP:"Nomo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo de la agado",RECORD_ADDRESS:"Strato",RECORD_ADDRESS_HELP:"Strato, konstruaĵo...",RECORD_CITY:"Urbo",RECORD_CITY_HELP:"Urbo",RECORD_SOCIAL_NETWORKS:"Sociaj retoj kaj retejo",RECORD_PUBKEY:"Publika ŝlosilo",RECORD_PUBKEY_HELP:"Publika ŝlosilo por ricevi la pagojn"},WALLET:{REGISTRY_DIVIDER:"Paĝoj",REGISTRY_HELP:"La paĝoj listigas agadojn, kiuj akceptas la liberan monon aŭ helpas ĝin: komercoj, entreprenoj, asocioj, institucioj."},ERROR:{LOAD_CATEGORY_FAILED:"Malsukceso por ŝarĝi la liston de la agadoj",LOAD_RECORD_FAILED:"Eraro dum la ŝarĝado de la paĝo",LOOKUP_RECORDS_FAILED:"Eraro dum la serĉado",REMOVE_RECORD_FAILED:"Malsukceso por forigi la paĝon",SAVE_RECORD_FAILED:"Eraro dum la konservado",RECORD_NOT_EXISTS:"Paĝo neekzistanta",GEO_LOCATION_NOT_FOUND:"Urbo aŭ poŝto-kodo ne trovita"},INFO:{RECORD_REMOVED:"Paĝo forigita",RECORD_SAVED:"Paĝo konservita"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Temas pri kromaj datenoj, stokitaj ekster la mon-reto.",NO_PROFILE_DEFINED:"Neniu profilo tajpita",BTN_ADD:"Tajpi mian profilon",BTN_EDIT:"Redakti mian profilon",BTN_DELETE:"Forigi mian profilon",BTN_REORDER:"Reordigi",UID:"Pseŭdonimo",TITLE:"Familia nomo, Persona nomo",TITLE_HELP:"Familia nomo, Persona nomo",DESCRIPTION:"Pri mi",DESCRIPTION_HELP:"Pri mi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Ĝeneralaj informoj",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj, retejoj",TECHNICAL_DIVIDER:"Teknikaj informoj",MODAL_AVATAR:{TITLE:"Profil-foto",SELECT_FILE_HELP:"Bonvolu <b>elekti bildo-dosieron</b>, alklakante la ĉi-suban butonon:",BTN_SELECT_FILE:"Elekti foton",RESIZE_HELP:"<b>Rekadri la bildon</b>, laŭbezone. Pluigi klakon sur la bildo ebligas movi ĝin. Alklaku la zonon malsupre maldekstre por zomi.",RESULT_HELP:"<b>Jen la rezulto</b> tiel videbla ĉe via profilo:"},CONFIRM:{DELETE:"Ĉu vi certas, ke vi volas <b>forigi vian profilon Cesium+ ?</b><br/><br/>Tiu ago estas neinversigebla."},ERROR:{REMOVE_PROFILE_FAILED:"Malsukceso por forigi la profilon",LOAD_PROFILE_FAILED:"Malsukceso por ŝarĝi la profilon de la uzanto.",SAVE_PROFILE_FAILED:"Eraro dum la konservado",INVALID_SOCIAL_NETWORK_FORMAT:"Strukturo ne rekonata: bonvolu tajpi validan adreson.<br/><br/>Ezemploj:<ul><li>- Facebook-paĝo (https://www.facebook.com/uzanto)</li><li>- Retpaĝo (http://www.miaretejo.net)</li><li>- Retadreso (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Eraro dum la reformatigo de la bildo"},INFO:{PROFILE_REMOVED:"Profilo forigita",PROFILE_SAVED:"Profilo konservita"},HELP:{WARNING_PUBLIC_DATA:"La informoj afiŝitaj en via profilo <b>estas publikaj</b>: videblaj inkluzive de la personoj <b>ne konektitaj</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovi mian adreson surmape",USE_GEO_POINT:"Aperi sur la mapoj {{'COMMON.APP_NAME'|translate}}?",LOADING_LOCATION:"Serĉado de la adreso...",LOCATION_DIVIDER:"Adreso",ADDRESS:"Strato",ADDRESS_HELP:"Strato, adres-aldonaĵo...",CITY:"Urbo",CITY_HELP:"Poŝto-kodo, Urbo, Lando",DISTANCE:"Maksimuma distanco ĉirkaŭ la urbo",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Poŝto-kodo, Urbo",PROFILE_POSITION:"Loko de la profilo",MODAL:{TITLE:"Serĉado de la adreso",SEARCH_HELP:"Urbo, Poŝto-kodo, Lando",ALTERNATIVE_RESULT_DIVIDER:"Alternativaj rezultoj por <b>{{address}}</b>:",POSITION:"Lat/Lon: {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Deviga kampo (ĉar strato estas tajpita)",REQUIRED_FOR_LOCATION:"Deviga kampo por aperi sur la mapo",INVALID_FOR_LOCATION:"Adreso nekonata",GEO_LOCATION_FAILED:"Neeblas ricevi vian lokiĝon. Bonvolu uzi la serĉo-butonon.",ADDRESS_LOCATION_FAILED:"Neeblas ricevi la lokon per la adreso"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Retaj servoj",SUBSCRIPTION_DIVIDER_HELP:"La retaj servoj proponas pliajn nedevigajn servojn, delegitajn al aliulo.",BTN_ADD:"Aldoni servon",BTN_EDIT:"Mastrumi miajn servojn",NO_SUBSCRIPTION:"Neniu servo uzata",SUBSCRIPTION_COUNT:"Servoj / Abonoj",EDIT:{TITLE:"Retaj servoj",HELP_TEXT:"Mastrumu ĉi tie viajn abonojn kaj aliajn retajn servojn",PROVIDER:"Provizanto:"},TYPE:{ENUM:{EMAIL:"Ricevi la avizojn per retmesaĝo"}},CONFIRM:{DELETE_SUBSCRIPTION:"Ĉu vi certas, ke vi volas <b>forigi tiun abonon</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Eraro dum la ŝarĝo de la retaj servoj",ADD_SUBSCRIPTION_FAILED:"Malsukceso por sendi la abonon",UPDATE_SUBSCRIPTION_FAILED:"Malsukceso por ĝisdatigi la abonon",DELETE_SUBSCRIPTION_FAILED:"Eraro dum la forigo de la abono"},MODAL_EMAIL:{TITLE:"Avizo per retmesaĝo",HELP:"Plenigu tiun ĉi formularon por <b>esti avizita per retmesaĝo</b> pri la okazaĵoj ĉe via konto.<br/>Via retadreso estos ĉifrita por esti videbla nur de la servo-provizanto.",EMAIL_LABEL:"Via retadreso:",EMAIL_HELP:"johano.stelaro@esperanto.org",FREQUENCY_LABEL:"Periodo de la avizoj:",FREQUENCY_DAILY:"Ĉiutaga",FREQUENCY_WEEKLY:"Ĉiusemajna",PROVIDER:"Servo-provizanto:"}},DOCUMENT:{HASH:"Haketo: ",LOOKUP:{TITLE:"Serĉado de dokumentoj",BTN_ACTIONS:"Agoj",SEARCH_HELP:"Sendanto:AAA*, tempo:1508406169",LAST_DOCUMENTS:"Lastaj dokumentoj",SHOW_QUERY:"Vidi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",HEADER_TIME:"Dato/Horo",HEADER_ISSUER:"Sendanto",HEADER_RECIPIENT:"Ricevonto",READ:"Legita",BTN_REMOVE:"Forigi tiun ĉi dokumenton",POPOVER_ACTIONS:{TITLE:"Agoj",REMOVE_ALL:"Forigi tiujn ĉi dokumentojn..."}},INFO:{REMOVED:"Dokumento forigita"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi dokumenton</b>?",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi tiujn ĉi dokumentojn</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Eraro dum la serĉado de dokumentoj",REMOVE_FAILED:"Eraro dum la forigo de la dokumento",REMOVE_ALL_FAILED:"Eraro dum la forigo de la dokumentoj"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profiloj, avizoj, privataj mesaĝoj",ENABLE_TOGGLE:"Aktivigi la krom-programon?",ENABLE_REMOTE_STORAGE:"Aktivigi la foran stokadon?",ENABLE_REMOTE_STORAGE_HELP:"Ebligas stoki (ĉifrite) viajn parametrojn ĉe la nodoj Cesium+",ENABLE_MESSAGE_TOGGLE:"Aktivigi la privatajn mesaĝojn?",PEER:"Adreso de la daten-nodo",POPUP_PEER:{TITLE:"Daten-nodo",HELP:"Tajpu la adreson de la nodo, kiun vi volas uzi:",PEER_HELP:"servo.domajno.com:port"},NOTIFICATIONS:{DIVIDER:"Avizoj",HELP_TEXT:"Aktivigu la avizo-tipojn, kiujn vi deziras ricevi:",ENABLE_TX_SENT:"Avizi pri la <b>senditaj pagoj</b>?",ENABLE_TX_RECEIVED:"Avizi pri la <b>ricevitaj pagoj</b>?",ENABLE_CERT_SENT:"Avizi pri la <b>senditaj atestaĵoj</b>?",ENABLE_CERT_RECEIVED:"Avizi pri <b>la ricevitaj atestaĵoj</b>?",ENABLE_HTML5_NOTIFICATION:"Anonci ĉiun novan avizon?",ENABLE_HTML5_NOTIFICATION_HELP:"Malfermas fenestreton por ĉiu nova avizo."},CONFIRM:{ASK_ENABLE_TITLE:"Kromaj funkcioj",ASK_ENABLE:'La krom-programo Cesium+ estas <b>malaktivigita</b> ĉe viaj parametroj, kio senaktivigas la funkciojn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profiloj Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Avizoj</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privataj mesaĝoj</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Mapoj, ktp.</b>.</ul><br/><b>Ĉu vi deziras reaktivigi</b> la krom-programon?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Adresito estas deviga por la ĉifrado."}},EVENT:{NODE_STARTED:"Via nodo ES API <b>{{params[0]}}</b> ekis",NODE_BMA_DOWN:"La nodo <b>{{params[0]}}:{{params[1]}}</b> (uzata de via nodo ES API) estas <b>neatingebla</b>.",NODE_BMA_UP:"La nodo <b>{{params[0]}}:{{params[1]}}</b> estas denove alirebla.",MEMBER_JOIN:"Vi estas nun <b>membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>, pro ne revalidiĝo aŭ pro manko da atestaĵoj.",MEMBER_REVOKE:"La nuligo de via konto efektiviĝis. Ĝi ne plu povos esti membro-konto de la mono <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La revalidiĝo de via aliĝo al la mono <b>{{params[0]}}</b> estis <b>ricevita</b>.",TX_SENT:"Via <b>pago</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",TX_SENT_MULTI:"Via <b>pago</b> al <b>{{params[1]}}</b> efektiviĝis.",TX_RECEIVED:"Vi <b>ricevis pagon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vi <b>ricevis pagon</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Via <b>atestado</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",CERT_RECEIVED:"Vi <b>ricevis atestaĵon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> komentis vian anoncon: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian komenton pri via anonco: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> respondis al via komento pri la anonco: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian respondon al via komento pri la anonco: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Daten-nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la daten-nodon <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:'Daten-nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Cesium daŭrigos funkcii, <b>sen la krom-programo Cesium+</b> (uzanto-profiloj, privataj mesaĝoj, mapoj kaj grafikoj)<br/><br/>Kontrolu vian ret-konekton, aŭ ŝanĝu daten-nodon ĉe la <a class="positive" ng-click="doQuickFix(\'settings\')">parametroj de la krom-programo</a>.',ES_MAX_UPLOAD_BODY_SIZE:"La kvanto de datenoj sendotaj superas la limon fiksitan de la servilo.<br/>Bonvolu reprovi post, ekzemple, forigo de fotoj."}}),e.translations("es-ES",{COMMON:{CATEGORY:"Categoría",CATEGORIES:"Categorías",CATEGORY_SEARCH_HELP:"Búsqueda",LAST_MODIFICATION_DATE:"Actualización el",SUBMIT_BY:"Sometido por",BTN_PUBLISH:"Publicar",BTN_PICTURE_DELETE:"Suprimir",BTN_PICTURE_FAVORISE:"Principal",BTN_PICTURE_ROTATE:"Girar",BTN_ADD_PICTURE:"Añadir una foto",NOTIFICATIONS:{TITLE:"Notificaciónes",MARK_ALL_AS_READ:"Marcar todo como leído",NO_RESULT:"Ningúna notificación",SHOW_ALL:"Ver todo",LOAD_NOTIFICATIONS_FAILED:"Fracaso en la carga de las notificaciónes"}},MENU:{REGISTRY:"Profesionales",USER_PROFILE:"Mi perfil",MESSAGES:"Mensajes",NOTIFICATIONS:"Notificaciónes",INVITATIONS:"Invitaciónes"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Cuenta para una organización",ORGANIZATION_ACCOUNT_HELP:"Si representa una empresa, una asociación, etc.<br/>Ningún dividendo universal será creído por esta cuenta."},EVENT:{MEMBER_WITHOUT_PROFILE:'Para obtener sus certificaciónes más rapidamente, completa <a ui-sref="app.edit_profile">su perfil usuario</a>. Los miembros concederán más fácilmente su confianza a una identidad verificable.'},ERROR:{WS_CONNECTION_FAILED:"Cesium no puede recibir las notificaciónes, a causa de un error técnico (conexión al nodo de datos Cesium+).<br/><br/>Si el problema persiste, por favor <b>elige un otro nodo de datos</b> en las configuraciónes Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugerir identidad a certificar...",BTN_ASK_CERTIFICATIONS_DOTS:"Solicitar otros miembros a certificarme…",BTN_ASK_CERTIFICATION:"Solicitar una certificación",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugerir certificaciónes",HELP:"Selectionar sus sugerencias"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Solicitar certificaciónes",HELP:"Selectionar los destinatarios"},SEARCH:{DIVIDER_PROFILE:"Cuentas",DIVIDER_PAGE:"Páginas",DIVIDER_GROUP:"Grupos"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Está usted segura/o querer <b>mandar estas sugerencia de certificatión</b> ?",ASK_CERTIFICATION:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> ?",ASK_CERTIFICATIONS:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> a estas personas ?"}},INVITATION:{TITLE:"Invitaciónes",NO_RESULT:"Ningúna invitación en espera",BTN_DELETE_ALL:"Suprimir todas las invitaciónes",BTN_DELETE:"Suprimir la invitación",BTN_NEW_INVITATION:"Nueva invitación",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> solicita su certificación',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> él es sugerido por certificación',SUGGESTED_BY:'Sugerencia mandada por <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitaciónes"},LIST:{TITLE:"Invitaciónes"},NEW:{TITLE:"Nueva invitación",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinatarios de la invitación",RECIPIENTS_MODAL_TITLE:"Destinatarios",RECIPIENTS_MODAL_HELP:"Por favor, elige los destinatarios :",SUGGESTION_IDENTITIES:"Sugerencia de certificación",SUGGESTION_IDENTITIES_HELP:"Certificaciónes a sugerir",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugerencias",SUGGESTION_IDENTITIES_MODAL_HELP:"Por favor, elige sus sugerencias :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La supresión de las invitaciónes es una <b>operación ireversible</b>.<br/><br/><b>Está usted segura/o </b> querer continuar ?",SEND_INVITATIONS_TO_CERTIFY:"Está usted segura/o querer <b>mandar esta invitación a certificar</b> ?"},INFO:{INVITATION_SENT:"Invitación mandada"},ERROR:{LOAD_INVITATIONS_FAILED:"Fracaso en la carga de las invitaciónes",REMOVE_INVITATION_FAILED:"Fracaso durante la supresión de la invitación",REMOVE_ALL_INVITATIONS_FAILED:"Fracaso durante la supresión de las invitaciónes",SEND_INVITATION_FAILED:"Fracaso durante el envío de la invitación",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitación ilegible (formato desconocido)</span> - mandada por <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comentarios",SHOW_MORE_COMMENTS:"Visualizar los comentarios anteriores",COMMENT_HELP:"Su comentario, preguntas, etc.",COMMENT_HELP_REPLY_TO:"Su repuesta…",BTN_SEND:"Mandar",POPOVER_SHARE_TITLE:"Mensaje #{{number}}",REPLY:"Responder",REPLY_TO:"Repuesta a :",REPLY_TO_LINK:"En repuesta a ",REPLY_TO_DELETED_COMMENT:"En repuesta a un comentario suprimido",REPLY_COUNT:"{{replyCount}} repuestas",DELETED_COMMENT:"Comentario suprimido",ERROR:{FAILED_SAVE_COMMENT:"Fracaso durante el respaldo del comentario",FAILED_REMOVE_COMMENT:"Fracaso durante la supresión del comentario"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Responder",BTN_COMPOSE:"Nuevo mensaje",BTN_WRITE:"Escribir",NO_MESSAGE_INBOX:"Ningun mensaje recibido",NO_MESSAGE_OUTBOX:"Ningun mensaje mandado",NOTIFICATIONS:{TITLE:"Mensajes",MESSAGE_RECEIVED:"Ha <b>recibido un mensaje</b><br/>de"},LIST:{INBOX:"Bandeja de entrada",OUTBOX:"Mensajes mandados",LAST_INBOX:"Nuevos mensajes",LAST_OUTBOX:"Mensajes enviados",BTN_LAST_MESSAGES:"Mensajes recientes",TITLE:"Mensajes",SEARCH_HELP:"Buscar en mensajes",POPOVER_ACTIONS:{TITLE:"Opciónes",DELETE_ALL:"Suprimir todos los mensajes"}},COMPOSE:{TITLE:"Nuevo mensaje",TITLE_REPLY:"Responder",SUB_TITLE:"Nuevo mensaje",TO:"A",OBJECT:"Objeto",OBJECT_HELP:"Objeto",ENCRYPTED_HELP:"Por favor, nota que este mensaje será cifrado antes envío, a fin que solo el destinatario pueda leerlo, y que esté asegurado que usted esté bien su autor.",MESSAGE:"Mensaje",MESSAGE_HELP:"Contenido del mensaje",CONTENT_CONFIRMATION:"El contenido del mensaje es vacío.<br/><br/>Sin embargo, quiere mandar el mensaje ?"},VIEW:{TITLE:"Mensaje",SENDER:"Mandado por",RECIPIENT:"Mandado a",NO_CONTENT:"Mensaje vacío",DELETE:"Eliminar el mensaje"},CONFIRM:{REMOVE:"Está usted segura/o querer <b>suprimir este mensaje</b> ?<br/><br/>Esta operación es ireversible.",REMOVE_ALL:"Está usted segura/o querer <b>suprimir todos los mensajes</b> ?<br/><br/>Esta operación es ireversible.",MARK_ALL_AS_READ:"Está usted segura/o querer <b>marcar todos los mensajes como leído</b> ?",USER_HAS_NO_PROFILE:"Esta identidad no tiene ningún perfil Cesium+. Se puede que no utilice la extensión Cesium+, y <b>así no consultará su mensaje</b>.<br/><br/>Está usted segura/o querer <b>continuar</b> a pesar de todo ?"},INFO:{MESSAGE_REMOVED:"Mensaje suprimido",All_MESSAGE_REMOVED:"Todos los mensajes fueron suprimido",MESSAGE_SENT:"Mensaje mandado"},ERROR:{SEND_MSG_FAILED:"Fracaso durante el envío del mensaje.",LOAD_MESSAGES_FAILED:"Fracaso durante la recuperación de los mensajes.",LOAD_MESSAGE_FAILED:"Fracaso durante la recuperación del mensaje.",MESSAGE_NOT_READABLE:"Lectura del mensaje imposible.",USER_NOT_RECIPIENT:"No esta el destinatario de este mensaje : deciframiento imposible.",NOT_AUTHENTICATED_MESSAGE:"La autenticidad del mensaje es dudosa o su contenido es corrupto.",REMOVE_MESSAGE_FAILED:"Fracaso en la supresión del mensaje",MESSAGE_CONTENT_TOO_LONG:"Valor demasiado largo ({{maxLength}} carácteres max).",MARK_AS_READ_FAILED:"Imposible marcar el mensaje como 'leído'.",LOAD_NOTIFICATIONS_FAILED:"Fracaso durante la recuperación de las notificaciónes de mensajes.",REMOVE_All_MESSAGES_FAILED:"Fracaso durante la supresión de todos los mensajes.",MARK_ALL_AS_READ_FAILED:"Fracaso durante el marcaje de los mensajes como leído.",RECIPIENT_IS_MANDATORY:"El destinatario es obligatorio."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Número de bloque, hash, llave pública, etc.",POPOVER_FILTER_TITLE:"Filtros",HEADER_MEDIAN_TIME:"Fecha / Hora",HEADER_BLOCK:"Bloque #",HEADER_ISSUER:"Nodo emisor",
-BTN_LAST:"últimos bloques",DISPLAY_QUERY:"Mostrar la consulta",HIDE_QUERY:"Ocultar la consulta",TX_SEARCH_FILTER:{MEMBER_FLOWS:"Entradas/salidas de miembros",EXISTING_TRANSACTION:"Con transacciones",PERIOD:'<b class="ion-clock"></b> Entre el <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) y el <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculado por <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transacciones que implican <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Fracaso en la búsqueda de los bloques."}},GROUP:{GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",CREATED_TIME:"Creada {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitaciónes"},LOOKUP:{TITLE:"Grupos",SEARCH_HELP:"Nombre de grupo, palabras , lugar, etc.",LAST_RESULTS_LIST:"Nuevos grupos :",OPEN_RESULTS_LIST:"Grupos abiertos :",MANAGED_RESULTS_LIST:"Grupos cerrados :",BTN_LAST:"Nuevos grupos",BTN_NEW:"Añado un grupo"},TYPE:{TITLE:"Nuevo grupo",SELECT_TYPE:"Tipo de grupo :",OPEN_GROUP:"Grupo abierto",OPEN_GROUP_HELP:"Un grupo abierto es accesible por cualquier miembro de la moneda.",MANAGED_GROUP:"Grupo administrado",MANAGED_GROUP_HELP:"un grupo administrado es gestionado por administradores y moderadores, que pueden aceptar, rechazar o excluir un miembro en su seno.",ENUM:{OPEN:"Grupo abierto",MANAGED:"Grupo administrado"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opciones",REMOVE_CONFIRMATION:"Seguro que quieres eliminar este grupo?<br/><br/>Esta operación es irreversible."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nuevo grupo",RECORD_TITLE:"Título",RECORD_TITLE_HELP:"Título",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción"},ERROR:{SEARCH_GROUPS_FAILED:"Fracaso en la búsqueda de grupos",REMOVE_RECORD_FAILED:"Error al eliminar el grupo"},INFO:{RECORD_REMOVED:"Grupo eliminado"}},REGISTRY:{CATEGORY:"Actividad principal",GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",BTN_SHOW_WOT:"Personas",BTN_SHOW_WOT_HELP:"Buscar personas",BTN_SHOW_PAGES:"Páginas",BTN_SHOW_PAGES_HELP:"Búsqueda de páginas",BTN_NEW:"Creer una página",MY_PAGES:"Mis páginas",NO_PAGE:"Sin página",SEARCH:{TITLE:"Páginas",SEARCH_HELP:"Qué, Quién : restaurante, Con Marcel, ...",BTN_ADD:"Nuevo",BTN_LAST_RECORDS:"Páginas recientes",BTN_ADVANCED_SEARCH:"búsqueda avanzada",BTN_OPTIONS:"Búsqueda avanzada",TYPE:"Tipo de página",LOCATION_HELP:"Ciudad",RESULTS:"Resultados",RESULT_COUNT_LOCATION:"{{count}} Resultado{{count>0?'s':''}}, cerca de {{location}}",RESULT_COUNT:"{{count}} resultado{{count>0?'s':''}}",LAST_RECORDS:"Páginas recientes",LAST_RECORD_COUNT_LOCATION:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}, cerca de {{location}}",LAST_RECORD_COUNT:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opciones avanzadas?"}},VIEW:{TITLE:"Anuario",CATEGORY:"Actividad principal :",LOCATION:"Dirección :",MENU_TITLE:"Opciónes",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Está usted segura/o querer suprimir esta página ?<br/><br/>Esta operación es ireversible."},TYPE:{TITLE:"Nueva página",SELECT_TYPE:"Tipo de página :",ENUM:{SHOP:"Comercio local",COMPANY:"Empresa",ASSOCIATION:"Asociación",INSTITUTION:"Institución"}},EDIT:{TITLE:"Edición",TITLE_NEW:"Nueva página",RECORD_TYPE:"Tipo de página",RECORD_TITLE:"Nombre",RECORD_TITLE_HELP:"Nombre",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción de la actividad",RECORD_ADDRESS:"Calle",RECORD_ADDRESS_HELP:"Calle, edificio...",RECORD_CITY:"Ciudad",RECORD_CITY_HELP:"Ciudad",RECORD_SOCIAL_NETWORKS:"Redes sociales y sitio web",RECORD_PUBKEY:"Llave pública",RECORD_PUBKEY_HELP:"Llave pública de recepción de los pagos"},WALLET:{REGISTRY_DIVIDER:"Páginas",REGISTRY_HELP:"Las páginas se refieren a actividades que aceptan dinero o lo favorecen: empresas, negocios, asociaciones, instituciones."},ERROR:{LOAD_CATEGORY_FAILED:"Fracaso en la carga de la lista de actividades",LOAD_RECORD_FAILED:"Fracaso durante la carga de la página",LOOKUP_RECORDS_FAILED:"Fracaso durante la ejecución de la búsqueda.",REMOVE_RECORD_FAILED:"Fracaso en la supresión de la página",SAVE_RECORD_FAILED:"Fracaso durante el respaldo",RECORD_NOT_EXISTS:"Página inexistente",GEO_LOCATION_NOT_FOUND:"Ciudad o código postal no encontrado"},INFO:{RECORD_REMOVED:"Página suprimida",RECORD_SAVED:"Página guardada"}},PROFILE:{PROFILE_DIVIDER:"Perfil Cesium+",PROFILE_DIVIDER_HELP:"Estos son datos auxiliares, almacenados fuera de la red monetaria.",NO_PROFILE_DEFINED:"Ningún perfil Cesium+",BTN_ADD:"Ingresar mi perfil",BTN_EDIT:"Editar mi perfil",BTN_DELETE:"Eliminar mi perfil",BTN_REORDER:"Reordenar",UID:"Seudónimo",TITLE:"Nombre, Apellido",TITLE_HELP:"Nombre, Apellido",DESCRIPTION:"A propósito de yo",DESCRIPTION_HELP:"A propósito de yo...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informaciónes generales",SOCIAL_NETWORKS_DIVIDER:"Redes sociales, sitios web",TECHNICAL_DIVIDER:"Informaciónes técnicas",MODAL_AVATAR:{TITLE:"Foto de perfil",SELECT_FILE_HELP:"Por favor, <b>elige un fichero imagen</b>, haciendo un clic sobre el botón por debajo :",BTN_SELECT_FILE:"Eligir una foto",RESIZE_HELP:"<b>Encuadra la imagen</b>, si es necesario. Un clic mantenido sobre la imagen permite desplazarla. Hace un clic sobre la zona abajo a la izquierda para hacer zoom.",RESULT_HELP:"<b>Aquí está el resultado</b> tal como está visible sobre su perfil :"},CONFIRM:{DELETE:"¿Estás seguro de que quieres <b>eliminar tu perfil Cesium+?</b><br/><br/>Esta operación es irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Error de eliminación de perfil",LOAD_PROFILE_FAILED:"Fracaso en la carga del perfil usuario.",SAVE_PROFILE_FAILED:"Fracaso durante el respaldo",INVALID_SOCIAL_NETWORK_FORMAT:"Formato no tomado en cuenta : por favor, indica una dirección válida.<br/><br/>Ejemplos :<ul><li>- Una página Facebook (https://www.facebook.com/user)</li><li>- Una página web (http://www.misitio.es)</li><li>- Una dirección email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fracaso durante el redimensionamiento de la imagen"},INFO:{PROFILE_REMOVED:"Perfil eliminado",PROFILE_SAVED:"Perfil respaldado"},HELP:{WARNING_PUBLIC_DATA:"Las informaciónes informadas en su perfil <b>están públicas</b> : visibles también por personas <b>no conectadas</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Actualizar desde la dirección",USE_GEO_POINT:"Aparecer en la tarjeta {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Encontrar la dirección ...",LOCATION_DIVIDER:"Dirección",ADDRESS:"Calle",ADDRESS_HELP:"Calle, complemento de dirección...",CITY:"Ciudad",CITY_HELP:"Ciudad, País",DISTANCE:"Distancia máxima alrededor de la ciudad",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Ciudad, País",PROFILE_POSITION:"Posición del perfil",MODAL:{TITLE:"Búsqueda de dirección",SEARCH_HELP:"Ciudad, País",ALTERNATIVE_RESULT_DIVIDER:"Resultados alternativos para <b>{{address}}</b> :",POSITION:"Latitud/Longitud : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Requerido si una calle ha sido llenada",REQUIRED_FOR_LOCATION:"Campo obligatorio para aparecer en el mapa",INVALID_FOR_LOCATION:"Dirección desconocida",GEO_LOCATION_FAILED:"No se puede recuperar su ubicación Por favor usa el botón de búsqueda.",ADDRESS_LOCATION_FAILED:"No se puede recuperar la posición de la dirección."}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servicios en línea",SUBSCRIPTION_DIVIDER_HELP:"Los servicios en línea ofrecen servicios adicionales opcionales, delegados a un tercero.",BTN_ADD:"Agregar un servicio",BTN_EDIT:"Administrar mis servicios",NO_SUBSCRIPTION:"Ningún servicio definido",SUBSCRIPTION_COUNT:"Servicios / Suscripción",EDIT:{TITLE:"Servicios en línea",HELP_TEXT:"Gestione sus suscripciones y otros servicios en línea aquí",PROVIDER:"Proveedor:"},TYPE:{ENUM:{EMAIL:"Recibir notificaciones por correo electrónico"}},CONFIRM:{DELETE_SUBSCRIPTION:"Deseas <b>eliminar</b> esta suscripción ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error al cargar servicios en línea",ADD_SUBSCRIPTION_FAILED:"Error al agregar suscripción",UPDATE_SUBSCRIPTION_FAILED:"Error durante la actualización de la suscripción",DELETE_SUBSCRIPTION_FAILED:"Error al eliminar la suscripción"},MODAL_EMAIL:{TITLE:"Notificación por correo electrónico",HELP:"Rellene este formulario para <b>ser notificado por correo electrónico</b> de los eventos de su cuenta. <br/> Su dirección de correo electrónico se cifrará únicamente para que sea visible para el proveedor de servicios.",EMAIL_LABEL:"Tu correo electrónico :",EMAIL_HELP:"carlos@dominio.com",FREQUENCY_LABEL:"Frecuencia de las notificaciones :",FREQUENCY_DAILY:"Diariamente",FREQUENCY_WEEKLY:"Semanal",PROVIDER:"Proveedor de servicio :"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Perfiles, notificaciónes, mensajes privados",ENABLE_TOGGLE:"Activar la extensión ?",ENABLE_MESSAGE_TOGGLE:"Activar los mensajes privados ?",ENABLE_SETTINGS_TOGGLE:"Activar el almacenamiento a distancia de las configuraciónes ?",PEER:"Dirección del nodo de datos",POPUP_PEER:{TITLE:"Nodo de datos",HELP:"Ingresa la dirección del nodo que quiere utilizar :",PEER_HELP:"servidor.dominio.com:puerto"},NOTIFICATIONS:{DIVIDER:"Notificaciónes",HELP_TEXT:"Activa los tipos de notificaciónes que usted desea recibir :",ENABLE_TX_SENT:"Notificar la validación de los <b>pagos emitidos</b> ?",ENABLE_TX_RECEIVED:"Notificar la validación de los <b>pagos recibidos</b> ?",ENABLE_CERT_SENT:"Notificar la validación de las <b>certificaciónes emitidas</b> ?",ENABLE_CERT_RECEIVED:"Notificar la validación de las <b>certificaciónes recibidas</b> ?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuevas funcionalidades",ASK_ENABLE:'Nuevas funcionalidades son disponibles : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Perfiles Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notificaciónes</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Mensajes privados</b>.</ul><br/>Fueron <b>desactivadas</b> en sus configuraciones.<br/><br/><b>Quiere usted activarlas</b> ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario es obligatorio para el cifrado."}},EVENT:{NODE_STARTED:"Su nodo ES API <b>{{params[0]}}</b> es comenzado",NODE_BMA_DOWN:"El nodo <b>{{params[0]}}:{{params[1]}}</b> (utilizado por su nodo ES API) <b>no es localizable</b>.",NODE_BMA_UP:"El nodo <b>{{params[0]}}:{{params[1]}}</b> es de nuevo accesible.",MEMBER_JOIN:"Ahora usted está <b>miembro</b> de la moneda <b>{{params[0]}}</b> !",MEMBER_LEAVE:"No está <b>miembro</b> de la moneda <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Usted ya no es un miembro de la moneda <b>{{params[0]}}</b>, la falta de no renovación o la falta de certificaciones.",MEMBER_REVOKE:"La revocación de su cuenta se ha hecho. Puede que no sea un miembro de la cuenta en moneda <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Su renovación de adhesión a la moneda <b>{{params[0]}}</b> fue <b>tomado en cuenta</b>.",TX_SENT:"Su <b>pago</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuado.",TX_SENT_MULTI:"Su <b>pago</b> a <b>{{params[1]}}</b> fue efectuado.",TX_RECEIVED:"Ha <b>recibido un pago</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha <b>recibido un pago</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Su <b>certificación</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuada.",CERT_RECEIVED:"Ha <b>recibido una certificación</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha comentado su referencia : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado su comentario sobre su referencia : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha contestado a su comentario sobre el referencia : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado la repuesta a su comentario sobre el referencia : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo de datos <b> {{old}} </ b> dirección inalcanzable o no válida.<br/><br/>¿Desea utilizar temporalmente el nodo de datos <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Nodo de datos <b>{{server}}</b> dirección inalcanzable o no válida.<br/><br/>Cesium continuará funcionando, <b>sin la extensión Cesium+</b> (perfiles de usuario, mensajes privados), mapas y gráficos).<br/><br/>Verifique su conexión a Internet, o cambie el nodo de datos en <a class="positive" ng-click="doQuickFix(\'settings\')"> configuración de extensión </a>.',ES_MAX_UPLOAD_BODY_SIZE:"El volumen de datos a enviar excede el límite establecido por el servidor.<br/><br/>Por favor, inténtelo de nuevo después, por ejemplo, borrando fotos."}}),e.translations("fr-FR",{COMMON:{CATEGORY:"Catégorie",CATEGORIES:"Catégories",CATEGORY_SEARCH_HELP:"Recherche",LAST_MODIFICATION_DATE:"Mise à jour le",SUBMIT_BY:"Soumis par",BTN_PUBLISH:"Publier",BTN_PICTURE_DELETE:"Supprimer",BTN_PICTURE_FAVORISE:"Principale",BTN_PICTURE_ROTATE:"Tourner",BTN_ADD_PICTURE:"Ajouter une photo",NOTIFICATION:{TITLE:"Nouvelle notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vous avez {{count}} notification{{count>0?'s':''}} non lue{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Tout marquer comme lu",NO_RESULT:"Aucune notification",SHOW_ALL:"Voir tout",LOAD_NOTIFICATIONS_FAILED:"Erreur de chargement des notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"Mon profil",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Compte pour une organisation",ORGANIZATION_ACCOUNT_HELP:"Si vous représentez une entreprise, une association, etc.<br/>Aucun dividende universel ne sera créé par ce compte."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vous pouvez <a ui-sref="app.edit_profile">saisir votre profil Cesium+</a> (optionnel) pour offrir une meilleure visibilité de votre compte. Ce profil sera stocké dans <b>un annuaire indépendant</b> de la monnaie, mais décentralisé.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne peut pas recevoir les notifications, à cause d'une erreur technique (connexion au noeud de données Cesium+).<br/><br/>Si le problème persiste, veuillez <b>choisir un autre noeud de données</b> dans les paramètres Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggérer des identités à certifier...",BTN_ASK_CERTIFICATIONS_DOTS:"Demander à des membres de me certifier...",BTN_ASK_CERTIFICATION:"Demander une certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggérer des certifications",HELP:"Sélectionner vos suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Demander des certifications",HELP:"Sélectionner les destinataires"},SEARCH:{DIVIDER_PROFILE:"Comptes",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groupes"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer ces suggestions de certification</b> ?",ASK_CERTIFICATION:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> ?",ASK_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> à ces personnes ?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"Aucune invitation en attente",BTN_DELETE_ALL:"Supprimer toutes les invitations",BTN_DELETE:"Supprimer l'invitation",BTN_NEW_INVITATION:"Nouvelle invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> demande votre certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> vous est suggéré pour certification',SUGGESTED_BY:'Suggestion envoyée par <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"Nouvelle invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinataires de l'invitation",RECIPIENTS_MODAL_TITLE:"Destinataires",RECIPIENTS_MODAL_HELP:"Veuillez choisir les destinataires :",SUGGESTION_IDENTITIES:"Suggestions de certification",SUGGESTION_IDENTITIES_HELP:"Certifications à suggérer",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Veuillez choisir vos suggestions :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La suppression des invitations est une <b>opération irréversible</b>.<br/><br/><b>Êtes-vous sûr</b> de vouloir continuer ?",SEND_INVITATIONS_TO_CERTIFY:"Êtes-vous sûr de vouloir <b>envoyer cette invitation à certifier</b> ?"},INFO:{INVITATION_SENT:"Invitation envoyée"},ERROR:{LOAD_INVITATIONS_FAILED:"Échec du chargement des invitations",REMOVE_INVITATION_FAILED:"Erreur lors de la suppression de l'invitation",REMOVE_ALL_INVITATIONS_FAILED:"Erreur lors de la suppression des invitations",SEND_INVITATION_FAILED:"Erreur lors de l'envoi de l'invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation illisible (format inconnu)</span> - envoyée par <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commentaires",SHOW_MORE_COMMENTS:"Afficher les commentaires précédents",COMMENT_HELP:"Votre commentaire, question, etc.",COMMENT_HELP_REPLY_TO:"Votre réponse...",BTN_SEND:"Envoyer",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Répondre",REPLY_TO:"Réponse à :",REPLY_TO_LINK:"En réponse à ",REPLY_TO_DELETED_COMMENT:"En réponse à un commentaire supprimé",REPLY_COUNT:"{{replyCount}} réponses",DELETED_COMMENT:"Commentaire supprimé",ERROR:{FAILED_SAVE_COMMENT:"Erreur lors de la sauvegarde du commentaire",FAILED_REMOVE_COMMENT:"Erreur lors de la suppression du commentaire"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Répondre",BTN_COMPOSE:"Nouveau message",BTN_WRITE:"Ecrire",NO_MESSAGE_INBOX:"Aucun message reçu",NO_MESSAGE_OUTBOX:"Aucun message envoyé",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"Vous avez <b>reçu un message</b><br/>de"},LIST:{INBOX:"Boite de réception",OUTBOX:"Messages envoyés",LAST_INBOX:"Nouveaux messages",LAST_OUTBOX:"Messages envoyés",BTN_LAST_MESSAGES:"Messages récents",TITLE:"Messages",SEARCH_HELP:"Recherche dans les messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Supprimer tous les messages"}},COMPOSE:{TITLE:"Nouveau message",TITLE_REPLY:"Répondre",SUB_TITLE:"Nouveau message",TO:"A",OBJECT:"Objet",OBJECT_HELP:"Objet",ENCRYPTED_HELP:"Veuillez noter que ce message sera chiffré avant envoi, afin que seul le destinataire puisse le lire, et qu'il soit assuré que vous soyez bien son auteur.",MESSAGE:"Message",MESSAGE_HELP:"Contenu du message",CONTENT_CONFIRMATION:"Le contenu du message est vide.<br/><br/>Voulez-vous néanmoins envoyer le message ?"},VIEW:{TITLE:"Message",SENDER:"Envoyé par",RECIPIENT:"Envoyé à",NO_CONTENT:"Message vide",DELETE:"Supprimer le message"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce message</b> ?<br/><br/>Cette opération est irréversible.",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer tous les messages</b> ?<br/><br/>Cette opération est irréversible.",MARK_ALL_AS_READ:"Êtes-vous sûr de vouloir <b>marquer tous les messages comme lus</b> ?",USER_HAS_NO_PROFILE:"Cette identité n'a aucun profil Cesium+. Il se peut qu'elle n'utilise pas l'extension Cesium+, et <b>ne consultera donc pas votre message</b>.<br/><br/>Êtes-vous sûr de vouloir <b>continuer</b> malgré tout ?"},INFO:{MESSAGE_REMOVED:"Message supprimé",All_MESSAGE_REMOVED:"Tous les messages ont été supprimés",MESSAGE_SENT:"Message envoyé"},ERROR:{SEND_MSG_FAILED:"Erreur lors de l'envoi du message.",LOAD_MESSAGES_FAILED:"Erreur lors de la récupération des messages.",LOAD_MESSAGE_FAILED:"Erreur lors de la récupération du message.",MESSAGE_NOT_READABLE:"Lecture du message impossible.",USER_NOT_RECIPIENT:"Vous n'êtes pas le destinataire de ce message : déchiffrement impossible.",NOT_AUTHENTICATED_MESSAGE:"L'authenticité du message est douteuse ou son contenu est corrompu.",REMOVE_MESSAGE_FAILED:"Erreur de suppression du message",MESSAGE_CONTENT_TOO_LONG:"Valeur trop longue ({{maxLength}} caractères max).",MARK_AS_READ_FAILED:"Impossible de marquer le message comme 'lu'.",LOAD_NOTIFICATIONS_FAILED:"Erreur lors de la récupération des notifications de messages.",REMOVE_All_MESSAGES_FAILED:"Erreur lors de la suppression de tous les messages.",MARK_ALL_AS_READ_FAILED:"Erreur lors du marquage des messages comme lus.",RECIPIENT_IS_MANDATORY:"Le destinataire est obligatoire."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numéro de bloc, hash, clé publique, etc.",POPOVER_FILTER_TITLE:"Filtres",HEADER_MEDIAN_TIME:"Date / Heure",HEADER_BLOCK:"Bloc #",HEADER_ISSUER:"Noeud émetteur",BTN_LAST:"Derniers blocs",DISPLAY_QUERY:"Afficher la requête",HIDE_QUERY:"Masquer la requête",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Entrées/sorties de membres',EXISTING_TRANSACTION:'<b class="ion-card"></b> Avec transactions',PERIOD:'<b class="ion-clock"></b> Entre <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) et <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculé par <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concernant <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Erreur de la recherche des blocs."}},GROUP:{GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",CREATED_TIME:"Créé {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitations"},LOOKUP:{TITLE:"Groupes",SEARCH_HELP:"Nom de groupe, mots, lieu, etc.",LAST_RESULTS_LIST:"Nouveaux groupes :",OPEN_RESULTS_LIST:"Groupes ouverts :",MANAGED_RESULTS_LIST:"Groupes fermés :",BTN_LAST:"Nouveaux groupes",BTN_NEW:"J'ajoute un groupe"},TYPE:{TITLE:"Nouveau groupe",SELECT_TYPE:"Type de groupe :",OPEN_GROUP:"Groupe ouvert",OPEN_GROUP_HELP:"Un groupe ouvert est accessible par n'importe quel membre de la monnaie.",MANAGED_GROUP:"Groupe administré",MANAGED_GROUP_HELP:"un groupe administré est géré par des administrateurs et des modérateurs, qui peuvent accepter, refuser ou exclure un membre en son sein.",ENUM:{OPEN:"Groupe ouvert",MANAGED:"Groupe administré"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Options",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer ce groupe ?<br/><br/>Cette opération est irréversible."},EDIT:{TITLE:"Groupe",TITLE_NEW:"Nouveau groupe",RECORD_TITLE:"Titre",RECORD_TITLE_HELP:"Titre",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description"},ERROR:{SEARCH_GROUPS_FAILED:"Échec de la recherche de groupes",REMOVE_RECORD_FAILED:"Erreur de la suppression du groupe"},INFO:{RECORD_REMOVED:"Groupe supprimé"}},REGISTRY:{CATEGORY:"Activité principale",GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",BTN_SHOW_WOT:"Personnes",BTN_SHOW_WOT_HELP:"Rechercher des personnes",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Rechercher des pages",BTN_NEW:"Créer une page",MY_PAGES:"Mes pages",NO_PAGE:"Aucune page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"Quoi, Qui : restaurant, Chez Marcel, ...",BTN_ADD:"Nouveau",BTN_LAST_RECORDS:"Pages récentes",BTN_ADVANCED_SEARCH:"Recherche avancée",BTN_OPTIONS:"Recherche avancée",TYPE:"Type de page",LOCATION_HELP:"Où : Code postal, Ville",RESULTS:"Résultats",RESULT_COUNT_LOCATION:"{{count}} résultat{{count>0?'s':''}}, près de {{location}}",RESULT_COUNT:"{{count}} résultat{{count>0?'s':''}}",LAST_RECORDS:"Pages récentes",LAST_RECORD_COUNT_LOCATION:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}, près de {{location}}",LAST_RECORD_COUNT:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Options avancées ?"}},VIEW:{TITLE:"Annuaire",CATEGORY:"Activité principale :",LOCATION:"Adresse :",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer cette page ?<br/><br/>Cette opération est irréversible."},TYPE:{TITLE:"Types",SELECT_TYPE:"Type de page :",ENUM:{SHOP:"Commerce local",COMPANY:"Entreprise",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edition",TITLE_NEW:"Nouvelle page",RECORD_TYPE:"Type de page",RECORD_TITLE:"Nom",RECORD_TITLE_HELP:"Nom",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description de l'activité",RECORD_ADDRESS:"Rue",RECORD_ADDRESS_HELP:"Rue, bâtiment...",RECORD_CITY:"Ville",RECORD_CITY_HELP:"Ville",RECORD_SOCIAL_NETWORKS:"Réseaux sociaux et site web",RECORD_PUBKEY:"Clé publique",RECORD_PUBKEY_HELP:"Clé publique de réception des paiements"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Les pages référencent des activités acceptant la monnaie ou la favorisant : commerces, entreprises, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Erreur de chargement de la liste des activités",LOAD_RECORD_FAILED:"Erreur lors du chargement de la page",LOOKUP_RECORDS_FAILED:"Erreur lors de l'exécution de la recherche",REMOVE_RECORD_FAILED:"Erreur de la suppression de la page",SAVE_RECORD_FAILED:"Erreur lors de la sauvegarde",RECORD_NOT_EXISTS:"Page inexistante",GEO_LOCATION_NOT_FOUND:"Ville ou code postal non trouvé"},INFO:{RECORD_REMOVED:"Page supprimée",RECORD_SAVED:"Page sauvegardée"}},PROFILE:{PROFILE_DIVIDER:"Profil Cesium+",PROFILE_DIVIDER_HELP:"Il s'agit de données annexes, stockées en dehors du réseau de la monnaie.",NO_PROFILE_DEFINED:"Aucun profil saisi",BTN_ADD:"Saisir mon profil",BTN_EDIT:"Editer mon profil",BTN_DELETE:"Supprimer mon profil",BTN_REORDER:"Réordonner",UID:"Pseudonyme",TITLE:"Nom, Prénom",TITLE_HELP:"Nom, Prénom",DESCRIPTION:"A propos de moi",DESCRIPTION_HELP:"A propos de moi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informations générales",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux, sites web",TECHNICAL_DIVIDER:"Informations techniques",MODAL_AVATAR:{TITLE:"Photo de profil",SELECT_FILE_HELP:"Veuillez <b>choisir un fichier image</b>, en cliquant sur le bouton ci-dessous :",BTN_SELECT_FILE:"Choisir une photo",RESIZE_HELP:"<b>Recadrez l'image</b>, si besoin. Un clic maintenu sur l'image permet de la déplacer. Cliquez sur la zone en bas à gauche pour zoomer.",RESULT_HELP:"<b>Voici le résultat</b> tel que visible sur votre profil :"},CONFIRM:{DELETE:"Êtes-vous sûr de vouloir <b>supprimer votre profil Cesium+ ?</b><br/><br/>Cette opération est irréversible."},ERROR:{REMOVE_PROFILE_FAILED:"Erreur de suppression du profil",LOAD_PROFILE_FAILED:"Erreur de chargement du profil utilisateur",SAVE_PROFILE_FAILED:"Erreur lors de la sauvegarde",INVALID_SOCIAL_NETWORK_FORMAT:"Format non pris en compte : veuillez indiquer une adresse valide.<br/><br/>Exemples :<ul><li>- Une page Facebook (https://www.facebook.com/user)</li><li>- Une page web (http://www.monsite.fr)</li><li>- Une adresse email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Erreur lors du redimensionnement de l'image"},INFO:{PROFILE_REMOVED:"Profil supprimé",PROFILE_SAVED:"Profil sauvegardé"},HELP:{WARNING_PUBLIC_DATA:"Les informations renseignées dans votre profil <b>sont publiques</b> : visibles y compris par des personnes <b>non connectées</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trouver mon adresse sur la carte",USE_GEO_POINT:"Apparaître sur les cartes {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Recherche de l'adresse...",LOCATION_DIVIDER:"Adresse",ADDRESS:"Rue",ADDRESS_HELP:"Rue, complément d'adresse...",CITY:"Ville",CITY_HELP:"Code postal, Ville, Pays",DISTANCE:"Distance maximale autour de la ville",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Code postal, Ville",PROFILE_POSITION:"Position du profil",MODAL:{TITLE:"Recherche de l'adresse",SEARCH_HELP:"Ville, Code postal, Pays",ALTERNATIVE_RESULT_DIVIDER:"Résultats alternatifs pour <b>{{address}}</b> :",POSITION:"Lat/Lon : {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Champ obligatoire (car une rue est saisie)",REQUIRED_FOR_LOCATION:"Champ obligatoire pour apparaître sur la carte",INVALID_FOR_LOCATION:"Adresse inconnue",GEO_LOCATION_FAILED:"Impossible de récupérer votre position. Veuillez utiliser le bouton de recherche.",ADDRESS_LOCATION_FAILED:"Impossible de récupérer la position à partir de l'adresse"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Services en ligne",SUBSCRIPTION_DIVIDER_HELP:"Les services en ligne offrent des services supplémentaires optionnels, délégués à un tiers.",BTN_ADD:"Ajouter un service",BTN_EDIT:"Gérer mes services",NO_SUBSCRIPTION:"Aucun service utilisé",SUBSCRIPTION_COUNT:"Services / Abonnements",EDIT:{TITLE:"Services en ligne",HELP_TEXT:"Gérez ici vos abonnements et autres services en ligne",PROVIDER:"Prestataire :"},TYPE:{ENUM:{EMAIL:"Recevoir les notifications par email"}},CONFIRM:{DELETE_SUBSCRIPTION:"Êtes-vous sûr de vouloir <b>supprimer cet abonnement</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Erreur lors du chargement des services en ligne",ADD_SUBSCRIPTION_FAILED:"Erreur de l'envoi de l'abonnement",UPDATE_SUBSCRIPTION_FAILED:"Erreur de la mise à jour de l'abonnement",DELETE_SUBSCRIPTION_FAILED:"Erreur lors de la suppression de l'abonnement"},MODAL_EMAIL:{TITLE:"Notification par email",HELP:"Remplissez ce formulaire pour <b>être notifié par email</b> des événements de votre compte.<br/>Votre adresse email sera chiffrée pour n'être visible que par le prestataire de service.",EMAIL_LABEL:"Votre email :",EMAIL_HELP:"jean.dupond@domaine.com",FREQUENCY_LABEL:"Fréquence des notifications :",FREQUENCY_DAILY:"Journalier",FREQUENCY_WEEKLY:"Hebdomadaire",PROVIDER:"Prestataire du service :"}},DOCUMENT:{HASH:"Hash : ",LOOKUP:{TITLE:"Recherche de documents",BTN_ACTIONS:"Actions",SEARCH_HELP:"Emetteur:AAA*, temps:1508406169",LAST_DOCUMENTS:"Derniers documents",SHOW_QUERY:"Voir la requête",HIDE_QUERY:"Masquer la requête",HEADER_TIME:"Date/Heure",HEADER_ISSUER:"Emetteur",HEADER_RECIPIENT:"Destinataire",READ:"Lu",BTN_REMOVE:"Supprimer ce document",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Supprimer ces documents..."}},INFO:{REMOVED:"Document supprimé"},CONFIRM:{
-REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce document</b> ?",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer ces documents</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Erreur lors de la recherche de documents",REMOVE_FAILED:"Erreur lors de la suppression du document",REMOVE_ALL_FAILED:"Erreur lors de la suppression des documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profils, notifications, messages privés",ENABLE_TOGGLE:"Activer l'extension ?",ENABLE_REMOTE_STORAGE:"Activer le stockage distant ?",ENABLE_REMOTE_STORAGE_HELP:"Permet de stockage (chiffré) de vos paramètres sur les noeuds Cesium+",ENABLE_MESSAGE_TOGGLE:"Activer les messages privés ?",PEER:"Adresse du nœud de données",POPUP_PEER:{TITLE:"Nœud de données",HELP:"Saisissez l'adresse du nœud que vous voulez utiliser :",PEER_HELP:"serveur.domaine.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Activez les types de notifications que vous souhaitez recevoir :",ENABLE_TX_SENT:"Notifier les <b>paiements émis</b> ?",ENABLE_TX_RECEIVED:"Notifier les <b>paiements reçus</b> ?",ENABLE_CERT_SENT:"Notifier les <b>certifications émises</b> ?",ENABLE_CERT_RECEIVED:"Notifier les <b>certifications reçues</b> ?",ENABLE_HTML5_NOTIFICATION:"Avertir à chaque nouvelle notification ?",ENABLE_HTML5_NOTIFICATION_HELP:"Ouvre une petite fenêtre à chaque nouvelle notification."},CONFIRM:{ASK_ENABLE_TITLE:"Fonctionnalités optionnelles",ASK_ENABLE:'L\'extension Cesium+ est <b>désactivée</b> dans vos paramètres, rendant inactives les fonctionnalités : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profils Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messages privés</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Cartes, etc.</b>.</ul><br/><b>Souhaitez-vous ré-activer</b> l\'extension ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinataire est obligatoire pour le chiffrement."}},EVENT:{NODE_STARTED:"Votre noeud ES API <b>{{params[0]}}</b> est démarré",NODE_BMA_DOWN:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> (utilisé par votre noeud ES API) est <b>injoignable</b>.",NODE_BMA_UP:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> est à nouveau accessible.",MEMBER_JOIN:"Vous êtes maintenant <b>membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_LEAVE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_EXCLUDE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b>, faute de non renouvellement ou par manque de certifications.",MEMBER_REVOKE:"La révocation de votre compte a été effectuée. Il ne pourra plus être un compte membre de la monnaie <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Votre renouvellement d'adhésion à la monnaie <b>{{params[0]}}</b> a été <b>pris en compte</b>.",TX_SENT:"Votre <b>paiement</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectué.",TX_SENT_MULTI:"Votre <b>paiement</b> à <b>{{params[1]}}</b> a été effectué.",TX_RECEIVED:"Vous avez <b>reçu un paiement</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vous avez <b>reçu un paiement</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Votre <b>certification</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectuée.",CERT_RECEIVED:"Vous avez <b>reçu une certification</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a commenté votre référencement : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié son commentaire sur votre référencement : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a répondu à votre commentaire sur le référencement : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié sa réponse à votre commentaire sur le référencement : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nœud de données <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud de données <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nœud de données <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Cesium va continuer à fonctionner, <b>sans l'extension Cesium+</b> (profils utilisateur, messages privés, cartes et graphiques)<br/><br/>Vérifiez votre connexion Internet, ou changez de nœud de données dans les <a class=\"positive\" ng-click=\"doQuickFix('settings')\">paramètres de l'extension</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Le volume des données à envoyer dépasse la limite fixée par le serveur.<br/>Veuillez ré-essayer après avoir, par exemple, supprimer des photos."}}),e.translations("it-IT",{COMMON:{CATEGORY:"Categoria",CATEGORIES:"Categorie",CATEGORY_SEARCH_HELP:"Ricerca",LAST_MODIFICATION_DATE:"Aggiornato il ",SUBMIT_BY:"Inviato da",BTN_PUBLISH:"Pubblicare",BTN_PICTURE_DELETE:"Eliminare",BTN_PICTURE_FAVORISE:"Predefinito",BTN_PICTURE_ROTATE:"Girare",BTN_ADD_PICTURE:"Aggiungere foto",NOTIFICATIONS:{TITLE:"Notifiche",MARK_ALL_AS_READ:"Segna tutte come lette",NO_RESULT:"Nessuna notifica",SHOW_ALL:"Mostrare tutte",LOAD_NOTIFICATIONS_FAILED:"Impossibile caricare le notifiche"}},MENU:{REGISTRY:"Pagine",USER_PROFILE:"Mio profilo",MESSAGES:"Messaggi",NOTIFICATIONS:"Notifiche",INVITATIONS:"Inviti"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Conto per enti",ORGANIZATION_ACCOUNT_HELP:"Se rappresenta un'azienda, un'associazione, etc.<br/>Questo conto non potrà creare il Dividendo Universale."},EVENT:{MEMBER_WITHOUT_PROFILE:'Per ottenere sue certificazioni più velocemente, riempire le informazioni<a ui-sref="app.edit_profile">del suo profilo</a>. I membri della rete si fidano più volontieri di profili verificabili.'},ERROR:{WS_CONNECTION_FAILED:"Cesium non può ricevere notifiche a causa di un problema tecnico (di conessione al data node Cesium+).<br/><br/>Se il problema persiste, le chiediamo di <b>scegliere un'altro data node</b> nelle impostazioni di Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggerire delle identità da certificare..",BTN_ASK_CERTIFICATIONS_DOTS:"Chiedere una certificazione ai membri...",BTN_ASK_CERTIFICATION:"Chiedere una certificazione",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggerire delle certificazioni",HELP:"Scegliere i suoi suggerimenti, aiuti"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Chiedere delle certificazioni",HELP:"Selezionare un ricevente"},SEARCH:{DIVIDER_PROFILE:"Conti",DIVIDER_PAGE:"Pagine",DIVIDER_GROUP:"Gruppi"},CONFIRM:{SUGGEST_CERTIFICATIONS:"E’ sicuro(a) di voler <b>suggerire queste certificazioni</b> ?",ASK_CERTIFICATION:" E’ sicuro(a) di voler  <b>chiedere una certificazione</b> ?",ASK_CERTIFICATIONS:" E’ sicuro(a) di voler <b>chiedere una certificazione</b> a questi membri ?"}},INVITATION:{TITLE:"Invitazioni",NO_RESULT:"Nessun invito ricevuto",BTN_DELETE_ALL:"Cancellare tutti gli inviti",BTN_DELETE:"Cancellare l'invito",BTN_NEW_INVITATION:"Nuovo invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> ti ha chiesto una certificazione',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> è proposto per ricevere una certificazione',SUGGESTED_BY:'Suggerimento inviato da by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Inviti"},LIST:{TITLE:"Inviti"},NEW:{TITLE:"Nuovo invito",RECIPIENTS:"A",RECIPIENTS_HELP:"Riceventi dell'invito",RECIPIENTS_MODAL_TITLE:"Riceventi",RECIPIENTS_MODAL_HELP:"Scegliere riceventi:",SUGGESTION_IDENTITIES:"Suggerimenti di identità da certificare",SUGGESTION_IDENTITIES_HELP:"Suggerimenti di certificazioni",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggerimenti",SUGGESTION_IDENTITIES_MODAL_HELP:"Scegli tuoi sugerimenti:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Cancellare degli inviti è <b>una operazione irreversibile</b>.<br/><br/><b>Sei sicuro/a</b> di voler proseguire",SEND_INVITATIONS_TO_CERTIFY:"<b>Sei sicuro/a</b> di voler <b>inviare questo suggerimento di certificazione</b> ?"},INFO:{INVITATION_SENT:"Invito inviato"},ERROR:{LOAD_INVITATIONS_FAILED:"Errore nel caricare gli inviti",REMOVE_INVITATION_FAILED:"Errore nel cancellare gli inviti",REMOVE_ALL_INVITATIONS_FAILED:"Errore nel cancellare inviti",SEND_INVITATION_FAILED:"Errore nel invio degli inviti",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito illegibile (formatto sconosciuto)</span> - inviato da <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commenti",SHOW_MORE_COMMENTS:"Mostrare commenti precedenti",COMMENT_HELP:"Suo commento o domanda...",COMMENT_HELP_REPLY_TO:"Sua risposta...",BTN_SEND:"Inviare",POPOVER_SHARE_TITLE:"Messaggio #{{number}}",REPLY:"Rispondere",REPLY_TO:"Rispondere a:",REPLY_TO_LINK:"In risposta a",REPLY_TO_DELETED_COMMENT:"In risposta ad un commento cancellato",REPLY_COUNT:"{{replyCount}} risposte",DELETED_COMMENT:"Commento cancellato",ERROR:{FAILED_SAVE_COMMENT:"Salvare il commento cancellato",FAILED_REMOVE_COMMENT:"Cancellazione del commento fallita"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Rispondere",BTN_COMPOSE:"Nuovo messaggio",BTN_WRITE:"Scrivere",NO_MESSAGE_INBOX:"Nessun messaggio ricevuto",NO_MESSAGE_OUTBOX:"Nessun messaggio inviato",NOTIFICATIONS:{TITLE:"Messaggi",MESSAGE_RECEIVED:"Hai <b>ricevuto un messaggio/b><br/>da"},LIST:{INBOX:"In entrata",OUTBOX:"In uscita",TITLE:"Messaggi privati",POPOVER_ACTIONS:{TITLE:"Opzioni",DELETE_ALL:"Eliminare tutti i messaggi"}},COMPOSE:{TITLE:"Nuovo messaggio",TITLE_REPLY:"Rispondere",SUB_TITLE:"Nuovo messaggio",TO:"A",OBJECT:"Oggetto",OBJECT_HELP:"Oggetto",ENCRYPTED_HELP:"La informiamo che questo messaggio verrà criptato prima della sua spedizione in modo che solo il destinatario lo possa leggere e essere sicuro che ne sia Lei l'autore.",MESSAGE:"Messaggio",MESSAGE_HELP:"Contenuto del messaggio",CONTENT_CONFIRMATION:"Nessun contenuto. <br/><br/>E’ sicura di voler inviare questo messaggio?"},VIEW:{TITLE:"Messaggio",SENDER:"Inviato da",RECIPIENT:"Inviato a",NO_CONTENT:"Messaggio vuoto",DELETE:"Cancellare il messaggio"},CONFIRM:{REMOVE:"E’ sicuro/a di voler <b>eliminare il messaggio</b>?<br/><br/> Questa operazione è irreversibile.",REMOVE_ALL:"E’ sicuro/a di voler <b>eliminare tutti i messaggi</b>?<br/><br/> Questa operazione è irreversibile.",MARK_ALL_AS_READ:"E’ sicuro/a di voler <b>segnare tutti i messaggi come letti/b>?",USER_HAS_NO_PROFILE:"Questa identità non ha un profilo Cesium+. Pertanto non può <b>leggere il suo messaggio</b>.<br/><br/>E’ sicuro/a di voler <b>continuare</b>?"},INFO:{MESSAGE_REMOVED:"Messaggio eliminato correttamente",All_MESSAGE_REMOVED:"Messaggi eliminati correttamente",MESSAGE_SENT:"Messaggio inviato"},ERROR:{SEND_MSG_FAILED:"Errore nella spedizione del messaggio.",LOAD_MESSAGES_FAILED:"Errore durante il caricamento dei messaggi.",LOAD_MESSAGE_FAILED:"Errore durante il caricamento del messaggio.",MESSAGE_NOT_READABLE:"Impossibile leggere il messaggio.",USER_NOT_RECIPIENT:"Lei non è il destinatario del messaggio: impossibile leggerlo.",NOT_AUTHENTICATED_MESSAGE:"Impossibile verificare l'autenticità del messaggio o contenuto corrotto.",REMOVE_MESSAGE_FAILED:"Errore avvenuto durante l'eliminazione del messaggio",MESSAGE_CONTENT_TOO_LONG:"Il contenuto supera il limite ({{maxLength}} caratteri ammessi).",MARK_AS_READ_FAILED:"Impossibile segnare il messaggio come 'letto'.",LOAD_NOTIFICATIONS_FAILED:"Errore nel caricare le notifiche.",REMOVE_All_MESSAGES_FAILED:"Errore avvenuto durante l'eliminazione dei messaggi.",MARK_ALL_AS_READ_FAILED:"Errore avvenuto nel segnare i messaggi come 'letti",RECIPIENT_IS_MANDATORY:"Destinatario obbligatorio"}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero di blocco, hash...",POPOVER_FILTER_TITLE:"Filtro",HEADER_MEDIAN_TIME:"Data / Ora",HEADER_BLOCK:"Blocco #",HEADER_ISSUER:"Peer proprietario",BTN_LAST:"Ultimi blocchi",DISPLAY_QUERY:"Visualizzare query",HIDE_QUERY:"Nascondere query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Input/output Membri',EXISTING_TRANSACTION:'<b class="ion-card"></b> hanno transazioni',PERIOD:'<b class="ion-clock"></b> Tra <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) e <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calcolato da {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transazioni legate a  <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Errore durante la ricerca dei blocchi."}},GROUP:{GENERAL_DIVIDER:"Informazioni generali",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e/o sito web",TECHNICAL_DIVIDER:"Dati tecnici",CREATED_TIME:"Creato {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Inviti"},LOOKUP:{TITLE:"Gruppi",SEARCH_HELP:"Nome del grupo, parole chiavi, luogo, etc.",LAST_RESULTS_LIST:"Nuovi gruppi :",OPEN_RESULTS_LIST:"Gruppi aperti :",MANAGED_RESULTS_LIST:"Gruppi chiusi :",BTN_LAST:"Nuovi gruppi",BTN_NEW:"Aggiungo un grupo!"},TYPE:{TITLE:"Nuovo gruppo",SELECT_TYPE:"Tipo di gruppo :",OPEN_GROUP:"Gruppo aperto",OPEN_GROUP_HELP:"Un gruppo aperto è accessibile da qualsiasi membro della moneta.",MANAGED_GROUP:"Gruppo amministrato",MANAGED_GROUP_HELP:"un gruppo amministrato è gestito da amministratori e moderatori, che possono accetare, rifiutare o escludere membri del gruppo.",ENUM:{OPEN:"Gruppo aperto",MANAGED:"Gruppo amministrato"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opzioni",REMOVE_CONFIRMATION:"Sei sicuro/a di voler chiudere questo gruppo ?<br/><br/>Questa operazione è irreversibile."},EDIT:{TITLE:"Gruppo",TITLE_NEW:"Nuovo gruppo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrizione"},ERROR:{SEARCH_GROUPS_FAILED:"Errore nella ricerca di gruppi",REMOVE_RECORD_FAILED:"Errore nel chiudere il gruppo"},INFO:{RECORD_REMOVED:"Gruppo eliminato"}},REGISTRY:{CATEGORY:"Attività principale",GENERAL_DIVIDER:"Informazioni di base",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social, sito web",TECHNICAL_DIVIDER:"Dati tecnici",BTN_SHOW_WOT:"Persone",BTN_SHOW_WOT_HELP:"Cercare persone",BTN_SHOW_PAGES:"Pagine",BTN_SHOW_PAGES_HELP:"Cercare pagine",BTN_NEW:"Aggiungere",MY_PAGES:"Mie pagine",NO_PAGE:"Nessuna pagina",SEARCH:{TITLE:"Pagine",SEARCH_HELP:"Che, chi: parrucchiere, Pizza Efisio, ...",BTN_ADD:"Nuovo",BTN_LAST_RECORDS:"Pagine recenti",BTN_ADVANCED_SEARCH:"Ricerca avanzata",BTN_OPTIONS:"Ricerca avanzata",TYPE:"Tipo di ente",LOCATION_HELP:"Città",RESULTS:"Risultati",RESULT_COUNT_LOCATION:"{{count}} risultato{{count>0?'i':''}}, vicino a {{location}}",RESULT_COUNT:"{{count}} risultato{{count>0?'i':''}}",LAST_RECORDS:"Pagine recenti:",LAST_RECORD_COUNT_LOCATION:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}, vicino a{{location}}",LAST_RECORD_COUNT:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opzioni avanzate ?"}},VIEW:{TITLE:"Annuario",CATEGORY:"Attività principale:",LOCATION:"Indirizzo:",MENU_TITLE:"Impostazioni",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"E’ sicuro/a di voler eliminare questo riferimento?<br/><br/>Questa operazione è irreversibile."},TYPE:{TITLE:"Nuovo riferimento",SELECT_TYPE:"Tipo di ente/organismo:",ENUM:{SHOP:"Negozi locali",COMPANY:"Azienda",ASSOCIATION:"Associazione",INSTITUTION:"Istituto"}},EDIT:{TITLE:"Modificare",TITLE_NEW:"Nuovo riferimento",RECORD_TYPE:"Tipo di ente",RECORD_TITLE:"Nome",RECORD_TITLE_HELP:"Nome",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrivere l'attività",RECORD_ADDRESS:"Indirizzo",RECORD_ADDRESS_HELP:"Indirizzo: Strada, numero civico...",RECORD_CITY:"Città",RECORD_CITY_HELP:"Città, Paese",RECORD_SOCIAL_NETWORKS:"Presenza sui social e/o sito web",RECORD_PUBKEY:"Chiave pubblica",RECORD_PUBKEY_HELP:"Chiave pubblica per ricevere pagamenti"},WALLET:{REGISTRY_DIVIDER:"Pagine",REGISTRY_HELP:"Le pagine sono un elenco dei profesionisti che accettano o favoriscono: negozi, aziende, associazioni, istituti..."},ERROR:{LOAD_CATEGORY_FAILED:"Errore nel caricamento delle attività principali",LOAD_RECORD_FAILED:"Caricamento fallito",LOOKUP_RECORDS_FAILED:"Errore nel caricare i dati",REMOVE_RECORD_FAILED:"Errore nella cancellazione",SAVE_RECORD_FAILED:"Impossibile salvare",RECORD_NOT_EXISTS:"Inesistente",GEO_LOCATION_NOT_FOUND:"Città o CAP inesistente"},INFO:{RECORD_REMOVED:"Pagina eliminata con successo.",RECORD_SAVED:"Pagina salvata"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Si tratta qui di data esterni, salvati fuori della rete della moneta.",NO_PROFILE_DEFINED:"Nessun profilo Cesium+",BTN_ADD:"Creare mio profilo",BTN_EDIT:"Modificare mio profilo",UID:"Pseudonimo",TITLE:"Cognome, Nome",TITLE_HELP:"Nome",DESCRIPTION:"A proposito di me",DESCRIPTION_HELP:"A proposito di me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informazioni generali",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e sito/i web",TECHNICAL_DIVIDER:"Dati tecnici",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Scegliere un'immagine</b>, cliccando sul bottone qui sotto:",BTN_SELECT_FILE:"Scegliere un'immagine",RESIZE_HELP:"<b>Ritagliare l'immagine</b> se necessario. Cliccare sull'immagine permette di spostarla. Cliccando nella zona a basso sinistra permette di fare uno zoom-in.",RESULT_HELP:"<b>Questo è il risultato</b> come visibile sul suo profilo:"},ERROR:{LOAD_PROFILE_FAILED:"Impossibile caricare il profilo dell’utente.",SAVE_PROFILE_FAILED:"Impossibile salvare il profilo",INVALID_SOCIAL_NETWORK_FORMAT:"Formatto scorretto: URL sbagliato.<br/><br/>Esempi: :<ul><li>- Una pagina Facebook (https://www.facebook.com/user)</li><li>- Un sito: (http://www.domain.com)</li><li>- Un indirizzo mail: (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Errore nel ritagliare l'immagine"},INFO:{PROFILE_SAVED:"Profilo salvato"},HELP:{WARNING_PUBLIC_DATA:"La informiamo che le informazioni qui pubblicate <b>sono pubbliche</b>: sono anche visibili <b>da gente non registrata/b>."}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovare mio indirizzo sulla mappa",USE_GEO_POINT:"Geo-localizzare (raccomandato)?",LOADING_LOCATION:"Cercando indirizzo...",LOCATION_DIVIDER:"Posizione",ADDRESS:"Indirizzo",ADDRESS_HELP:"Indirizzo (opzionale)",CITY:"Città",CITY_HELP:"Città, Paese",DISTANCE:"Distanza massimale intorno alla città",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Città, CAP",MODAL:{TITLE:"Cercare indirizzo",SEARCH_HELP:"Città, Paese",ALTERNATIVE_RESULT_DIVIDER:"Risultati alternativi <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} {{lon}}"},ERROR:{REQUIRED_FOR_LOCATION:"Campo obbligatorio per apparire sulla mappa",INVALID_FOR_LOCATION:"Indirizzo sconosciuto",GEO_LOCATION_FAILED:"Impossibile trovare sua posizione. Utilizzi il bottone di ricerca.",ADDRESS_LOCATION_FAILED:"Indirizzo non trovato"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servizi online",SUBSCRIPTION_DIVIDER_HELP:"I servizi online offrono servizi addizionali opzionali, delegati ad terzi.",BTN_ADD:"Aggiungere un servizio",BTN_EDIT:"Gestire miei servizi",NO_SUBSCRIPTION:"Nessun servizio utilizzato",SUBSCRIPTION_COUNT:"Servizi/ Abbonamenti",EDIT:{TITLE:"Servizi online",HELP_TEXT:"Qui si possono gestire gli abbonamenti e/o altri servizi online",PROVIDER:"Prestatore :"},TYPE:{ENUM:{EMAIL:"Ricevere notifiche per posta elettronica"}},CONFIRM:{DELETE_SUBSCRIPTION:"Sei sicuro/a di voler <b>cancellare questo abbonamento</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Errore nel caricamento dei servizi online",ADD_SUBSCRIPTION_FAILED:"Errore nel invio dell' abbonamento",UPDATE_SUBSCRIPTION_FAILED:"Errore nel aggiornamento dell' abbonamento",DELETE_SUBSCRIPTION_FAILED:"Errore nella cancellazine dell' abbonamento"},MODAL_EMAIL:{TITLE:"Notifiche per posta elettronica",HELP:"Riempi questo formulario per <b>essere notificato/a per e-mail</b> degli eventi che avvengono sul tuo conto.<br/>Tuo indizzo mail sarà cifrato e solo il prestatore del servizio lo potrà vedere.",EMAIL_LABEL:"Tuo indirizzo mail :",EMAIL_HELP:"cristiana.leonardi@dominio.com",FREQUENCY_LABEL:"Frequenza delle notifiche :",FREQUENCY_DAILY:"Quotidiano",FREQUENCY_WEEKLY:"Settimanale",PROVIDER:"Prestatore del servizio :"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Ricerca di documenti",BTN_ACTIONS:"Azioni",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Ultimi documenti",SHOW_QUERY:"Visualizzare la richiesta",HIDE_QUERY:"Nacondere la richiesta",HEADER_TIME:"Data/Ora",HEADER_ISSUER:"Emittente",HEADER_RECIPIENT:"Destinatario",READ:"Letto",BTN_REMOVE:"Eliminare questo documento",POPOVER_ACTIONS:{TITLE:"Azioni",REMOVE_ALL:"Eliminare questi documenti..."}},INFO:{REMOVED:"Documento eliminato"},CONFIRM:{REMOVE:"Sei sicuro/a di voler <b>eliminare questo documento</b> ?",REMOVE_ALL:"Si sicuro/a di voler <b>eliminare questi documenti</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Errore nella ricerca dei documenti",REMOVE_FAILED:"Errore nell'eliminazione del documento",REMOVE_ALL_FAILED:"Errore nell'eliminazione dei documenti"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profili di utenti, notifiche, messaggi privati",ENABLE_TOGGLE:"Abilitare l'estensione ?",ENABLE_MESSAGE_TOGGLE:"Abilitare i messaggi? privati",ENABLE_SETTINGS_TOGGLE:"Abilitare stoccaggio su dispositivi esterni per le impostazioni?",PEER:"Indirizzo di data peers",POPUP_PEER:{TITLE:"Data peer",HELP:"Definire l'indirizzo da usare per il peer:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifiche",HELP_TEXT:"Scegliere le notifiche che accetta ricevere:",ENABLE_TX_SENT:"Notificarmi di <b>pagamenti inviati</b> con successo?",ENABLE_TX_RECEIVED:"Notificarmi di <b>pagamenti in entrata</b>?",ENABLE_CERT_SENT:"Notificarmi delle <b>certificazioni inviate</b>?",ENABLE_CERT_RECEIVED:"Notificarmi di <b>certificazioni ricevute</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuove funzionalità",ASK_ENABLE:'Sono disponibili nuove funzionalità: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i>Profili di utenti</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messaggi privati/b>.</ul><br/>Sono state <b>disabilitate</b> nelle sue impostazioni.<br/><br/><b>Desidera abilitare</b> queste funzionalità?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario è necessario per il criptaggio."}},EVENT:{NODE_STARTED:"Suo nodo ES API <b>{{params[0]}}</b> è UP",NODE_BMA_DOWN:"Nodo<b>{{params[0]}}:{{params[1]}}</b> (utilizzato dal suo ES API) è <b>indisponibile</b>.",NODE_BMA_UP:"Nodo <b>{{params[0]}}:{{params[1]}}</b> è di nuovo attivo.",MEMBER_JOIN:"E diventato <b>membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Non <b>è più membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Non è <b>più membro/a</b> della WoT della moneta<b>{{params[0]}}</b>, a causa di certificazioni non rinnovate o soglia di certificazioni non raggiunta.",MEMBER_REVOKE:"Il suo conto è stato revocato. Da ora in poi non farà più parte della WoT. <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La sua presenza nella WoT <b>{{params[0]}}</b> è stata <b>rinnovata correttamente</b>.",TX_SENT:"Il suo pagamento <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stato eseguito.",TX_SENT_MULTI:"Il suo pagamento <b>{{params[1]}}</b> è stato eseguito.",TX_RECEIVED:"Ha ricevuto un pagamento da <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha ricevuto un pagamento da <b>{{params[1]}}</b>.",CERT_SENT:"Sua <b>certificazione</b> a favore di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stata eseguita.",CERT_RECEIVED:"Ha ricevuto <b>una certificazione</b> da parte di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha scritto un commento sul suo riferimento: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato il suo commento sul suo riferimento: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha risposto al suo commento sul riferimento: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato sua risposta sul suo commento a proposito del riferimento: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo<b>{{old}}</b> irraggiungibile o indirizzo sbagliato.<br/><br/>Vuoi utilizzare temporaneamente il nodo di dati <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nodo di dati<b>{{server}}</b>  irraggiungibile o indirizzo sbagliato.<br/><br/>Cesium continuerà a funzionare <b>senza l'estensione Cesium+</b> (profili utenti, messaggi privati, mappe e grafici)<br/><br/>Verifica tua connessione o cambia nodo <a class=\"positive\" ng-click=\"doQuickFix('settings')\">impostazioni dell'estensione</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Il volume di data da inviare supera il limite imposto dal server.<br/><br/>Suggeriamo di riprovare dopo aver eliminato delle foto, per esempio."}}),e.translations("nl-NL",{COMMON:{CATEGORY:"Categorie",CATEGORIES:"Categorieën",CATEGORY_SEARCH_HELP:"Zoeken",LAST_MODIFICATION_DATE:"Vernieuwd op ",SUBMIT_BY:"Ingediend door",BTN_PUBLISH:"Publiceren",BTN_PICTURE_DELETE:"Wissen",BTN_PICTURE_FAVORISE:"Default",BTN_ADD_PICTURE:"Afbeelding toevoegen",NOTIFICATIONS:{TITLE:"Notificaties",MARK_ALL_AS_READ:"Markeer alles als gelezen",NO_RESULT:"Geen berichten",SHOW_ALL:"Toon alles",LOAD_NOTIFICATIONS_FAILED:"Kan berichten niet laden"}},MENU:{REGISTRY:"Pagina's",USER_PROFILE:"Mijn profiel",MESSAGES:"Berichten"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Ondernemingsrekening",ORGANIZATION_ACCOUNT_HELP:"Als je een onderneming, vereniging etc. vertegenwoordigt.<br/>Deze rekening zal geen dividend créeren."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vul <a ui-sref="app.edit_profile"je gebruikersprofiel</a> in om sneller een certificering te verkrijgen. Leden zullen een verfifieerbare identiteit eerder vertrouwen.'}},COMMENTS:{DIVIDER:"Commentaren",SHOW_MORE_COMMENTS:"Toon eerdere commentaren",COMMENT_HELP:"Jouw commentaar, vraag...",COMMENT_HELP_REPLY_TO:"Jouw antwoord...",BTN_SEND:"Verzenden",POPOVER_SHARE_TITLE:"Bericht #{{number}}",REPLY:"Antwoord",REPLY_TO:"Antwoorden op:",REPLY_TO_LINK:"In antwoord op ",REPLY_TO_DELETED_COMMENT:"In antwoord op een gewist bericht",REPLY_COUNT:"{{replyCount}} antwoorden",DELETED_COMMENT:"Bericht gewist"},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Antwoord",BTN_COMPOSE:"Nieuw bericht",BTN_WRITE:"Schrijven",NO_MESSAGE_INBOX:"Geen bericht ontvangen",NO_MESSAGE_OUTBOX:"Geen bericht verzonden",NOTIFICATIONS:{TITLE:"Berichten",MESSAGE_RECEIVED:"Je hebt een <b>bericht ontvangen</b><br/>van"},LIST:{INBOX:"Inbox",OUTBOX:"Verzonden",TITLE:"Privé",POPOVER_ACTIONS:{TITLE:"Opties",DELETE_ALL:"Alle berichten wissen"}},COMPOSE:{TITLE:"Nieuw bericht",TITLE_REPLY:"Antwoord",SUB_TITLE:"Nieuw bericht",TO:"Aan",OBJECT:"Onderwerp",OBJECT_HELP:"Onderwerp",ENCRYPTED_HELP:"Please note this message will by encrypt before sending zodat alleen de ontvanger het kan lezen en zeker kan zijn dat jij de auteur bent.",MESSAGE:"Bericht",MESSAGE_HELP:"Berichtinhoud",CONTENT_CONFIRMATION:"Geen berichtinhoud.<br/><br/>Weet je zeker dat je dit bericht wil verzenden?"},VIEW:{TITLE:"Bericht",SENDER:"Verzonden door",RECIPIENT:"Verzonden aan",NO_CONTENT:"Leeg bericht"},CONFIRM:{REMOVE:"Weet je zeker dat je <b>dit bericht wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",REMOVE_ALL:"Weet je zeker dat je <b>alle berichten wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",MARK_ALL_AS_READ:"Weet je zeker dat je <b>alle berichten als gelezen wil markeren</b>?"},INFO:{MESSAGE_REMOVED:"Bericht succesvol gewist",All_MESSAGE_REMOVED:"Berichten succesvol gewist",MESSAGE_SENT:"Bericht verzonden"},ERROR:{SEND_MSG_FAILED:"Fout tijdens verzending.",LOAD_MESSAGES_FAILED:"Kan berichten niet laden.",LOAD_MESSAGE_FAILED:"Kan bericht niet laden.",MESSAGE_NOT_READABLE:"Kan bericht niet lezen.",USER_NOT_RECIPIENT:"Je bent niet de geadresseerde van dit bericht: het kan niet gelezen worden.",NOT_AUTHENTICATED_MESSAGE:"De authenticiteit van het bericht is onduidelijk of de inhoud is gecorrumpeerd.",REMOVE_MESSAGE_FAILED:"Kan bericht niet wissen.",MESSAGE_CONTENT_TOO_LONG:"Waarde te lang (max {{maxLength}} characters).",MARK_AS_READ_FAILED:"Kan bericht niet als gelezen markeren.",LOAD_NOTIFICATIONS_FAILED:"Kan niet alle berichtnotificaties laden.",REMOVE_All_MESSAGES_FAILED:"Kan niet alle berichten wissen.",MARK_ALL_AS_READ_FAILED:"Kan berichten niet als gelezen markeren."}},REGISTRY:{CATEGORY:"Hoofdactiviteit",GENERAL_DIVIDER:"Basisinformatie",LOCATION_DIVIDER:"Adres",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",BTN_NEW:"Toevoegen",SEARCH:{TITLE:"Bedrijfsregister",TITLE_SMALL_DEVICE:"Bedrijfsregister",SEARCH_HELP:"Wie, Wat: kapper, Lili's restaurant, ...",BTN_ADD:"Nieuw",BTN_OPTIONS:"Geavanceerd zoeken",TYPE:"Soort organisatie",LOCATION:"Locatie",LOCATION_HELP:"Plaats",LAST_RECORDS:"Nieuwste referenties:",RESULTS:"Resultaten:"},VIEW:{
-TITLE:"Register",CATEGORY:"Hoofdactiviteit:",LOCATION:"Adres:",MENU_TITLE:"Opties",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Weet je zeker dat je deze referentie wil verwijderen?<br/><br/>Dit kan niet ongedaan worden gemaakt."},TYPE:{TITLE:"Nieuwe referentie",SELECT_TYPE:"Soort organizatie:",ENUM:{SHOP:"Locale winkel",COMPANY:"Onderneming",ASSOCIATION:"Stichting",INSTITUTION:"Instituut"}},EDIT:{TITLE:"Bewerk",TITLE_NEW:"Nieuwe referentie",RECORD_TYPE:"Soort organizatie",RECORD_TITLE:"Naam",RECORD_TITLE_HELP:"Naam",RECORD_DESCRIPTION:"Beschrijving",RECORD_DESCRIPTION_HELP:"Omschrijf activiteit",RECORD_ADDRESS:"Straat",RECORD_ADDRESS_HELP:"Straat, gebouw...",RECORD_CITY:"Plaats",RECORD_CITY_HELP:"Plaats",RECORD_SOCIAL_NETWORKS:"Sociale media en website",RECORD_PUBKEY:"Publieke sleutel",RECORD_PUBKEY_HELP:"Publieke sleutel om betalingen te ontvangen"},ERROR:{LOAD_CATEGORY_FAILED:"Laden hoofdactiveiten mislukt",LOAD_RECORD_FAILED:"Laden datasheet mislukt",LOOKUP_RECORDS_FAILED:"Opzoeken datasheets is mislukt.",REMOVE_RECORD_FAILED:"Verwijderen datasheet mislukt",SAVE_RECORD_FAILED:"Opslaan datasheet mislukt",RECORD_NOT_EXISTS:"Datasheet niet gevonden"},INFO:{RECORD_REMOVED:"Datasheet succesvol verwijderd"}},PROFILE:{UID:"Pseudoniem",TITLE:"Naam",TITLE_HELP:"Naam",DESCRIPTION:"Over mij",DESCRIPTION_HELP:"Over mij...",ADDRESS:"Adres",ADDRESS_HELP:"Adres (optioneel)",CITY:"Plaats",CITY_HELP:"Plaats (optioneel)",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Algemene informatie",LOCATION_DIVIDER:"Localisatie",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",ERROR:{LOAD_PROFILE_FAILED:"Kon gebruikersprofiel niet laden.",SAVE_PROFILE_FAILED:"Opslaan profiel mislukt",INVALID_SOCIAL_NETWORK_FORMAT:"Ongeldig formaat: vul een geldig internetadres in.<br/><br/>Voorbeelden:<ul><li>- Een Facebookpagina (https://www.facebook.com/user)</li><li>- Een webpagina (http://www.domain.com)</li><li>- Een emailadres (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fout tijdens afbeelding schalen"},INFO:{PROFILE_SAVED:"Profiel opgeslagen"},HELP:{WARNING_PUBLIC_DATA:"Let op, de informatie die hier is vastgelegd <b>is publiek</b>: zichtbaar ook voor <b>niet ingelogde gebruikers</b>."}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",ENABLE_TOGGLE:"Uitbreiding inschakelen?",ENABLE_MESSAGE_TOGGLE:"Berichten inschakelen?",ENABLE_SETTINGS_TOGGLE:"Globale opslag voor instellingen inschakelen?",PEER:"Adres dataknooppunt",POPUP_PEER:{TITLE:"Dataknoop",HELP:"Stel het te gebruiken adres in:",PEER_HELP:"server.domein.com:poort"},NOTIFICATIONS:{DIVIDER:"Notificaties",HELP_TEXT:"Schakel het type notificatie dat je wil ontvangen in:",ENABLE_TX_SENT:"Bericht bij validatie van <b>verzonden betalingen</b>?",ENABLE_TX_RECEIVED:"Bericht bij validatie van <b>ontvangen betalingen</b>?",ENABLE_CERT_SENT:"Bericht bij validatie van <b>verzonden certificaties</b>?",ENABLE_CERT_RECEIVED:"Bericht bij validatie van <b>ontvangen certificaties</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Optionele functies",ASK_ENABLE:'Cesium+ is <b>uitgeschakeld</b> waardoor deze functies niet beschikbaar zijn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Gebruikersprofielen</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifcaitions"></i> Notificaties</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privéberichten</b>.</ul><br/><br/>Wil je deze functies <b>inschakelen</b>?'}},EVENT:{NODE_STARTED:"Je knoop ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Knooppunt <b>{{params[0]}}:{{params[1]}}</b> (gebruikt door je ES API) is <b>onbereikbaar</b>.",NODE_BMA_UP:"Knooppunt <b>{{p0}}:{{params[1]}}</b> is weer bereikbaar.",MEMBER_JOIN:"Je bent nu <b>lid</b> van valuta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Je bent <b>geen lid meer</b> van valuta <b>{{params[0]}}</b>!",MEMBER_ACTIVE:"Je lidmaatschap bij <b>{{params[0]}}</b> is met <b>succes verlengd</b>.",TX_SENT:"Je <b>betaling</b> aan <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",TX_SENT_MULTI:"Je <b>betaling</b> aan <b>{{params[1]}}</b> is uitgevoerd.",TX_RECEIVED:"Je hebt een <b>betaling ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Je hebt een <b>betaling ontvangen</b> van <b>{{params[1]}}</b>.",CERT_SENT:"Je <b>certificatie</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",CERT_RECEIVED:"Je hebt een <b>certificatie ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft gereageerd op jouw referentie: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/aar reactie op jouw referentie bewerkt: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> hheeft gereageerd op jouw commentaar op referentie: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/haar reactie op jouw commentaar bewerkt, op referentie: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Knooppunt <b>{{old}}</b> onbereikbaar of ongeldig adres.<br/><br/>Tijdelijk knooppunt <b>{{new}}</b> gebruiken?"},ERROR:{ES_CONNECTION_ERROR:'Knooppunt <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Cesium zal verder weken, <b>zonder de Cesium+ uitbreiding</b> (gebruikersprofielens, privéberichten, kaarten en grafieken).<br/><br/>Controleer je internetverbinding, of verander je knooppunt in <a class="positive" ng-click="doQuickFix(\'settings\')">instellingen</a>.',ES_MAX_UPLOAD_BODY_SIZE:"De hoveelheid te verzenden gegevens is overschrijdt de serverlimiet.<br/><br/>Probeer het nogmaals na, bijvoorbeeld, het wissen foto's."}}),e.translations("en-GB",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("en",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("eo-EO",{NETWORK:{VIEW:{BTN_GRAPH:"Statistikoj"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineara skalo",LOGARITHMIC_SCALE:"Logaritma skalo",BTN_SHOW_STATS:"Vidi la statistikojn",BTN_SHOW_DETAILED_STATS:"Detalaj statistikoj",RANGE_DURATION_DIVIDER:"Tempo-unuo:",RANGE_DURATION:{HOUR:"Horo",DAY:"Tago",MONTH:"Monato"}},ACCOUNT:{TITLE:"Statistikoj",BTN_SHOW_STATS:"Vidi la statistikojn de la konto",BALANCE_DIVIDER:"Stato de la konto",BALANCE_TITLE:"Evoluo de la konto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Enspezoj",TX_SENT_LABEL:"Elspezoj",TX_ACCUMULATION_LABEL:"Bilanco de la spezoj",UD_LABEL:"UD",UD_ACCUMULATION_LABEL:"Bilanco de la UD",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Reto de fido",CERTIFICATION_TITLE:"Nombro de atestaĵoj - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Tuto pri la ricevitaj",RECEIVED_CERT_DELTA_LABEL:"Vario pri la ricevitaj",GIVEN_CERT_LABEL:"Tuto pri la senditaj",GIVEN_CERT_DELTA_LABEL:"Vario pri la senditaj",INPUT_CHART_TITLE:"Sumo de la enirantaj fluoj, por ĉiu sendinto:",OUTPUT_CHART_TITLE:"Sumo de la elirantaj fluoj, por ĉiu ricevinto:"},BLOCKCHAIN:{TITLE:"Statistikoj",BLOCKS_ISSUERS_DIVIDER:"Analizo de la kalkul-distribuo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>",BLOCKS_ISSUERS_TITLE:"Nombro de blokoj kalkulitaj por membro",BLOCKS_ISSUERS_LABEL:"Nombro de blokoj",TX_DIVIDER:"Analizo de la spezoj",TX_AMOUNT_TITLE:"Kvanto de la spezoj",TX_AMOUNT_PUBKEY_TITLE:"Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Kvanto interŝanĝita",TX_COUNT_TITLE:"Nombro de spezoj skribitaj",TX_COUNT_LABEL:"Nombro de spezoj",TX_AVG_BY_BLOCK:"Meza nombro de spezoj / bloko"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluo de la mona maso",MONETARY_MASS_LABEL:"Mona maso",MONETARY_MASS_SHARE_LABEL:"Mezumo por membro",UD_TITLE:"Evoluo de la universala dividendo",MEMBERS_COUNT_TITLE:"Evoluo de la nombro de membroj",MEMBERS_COUNT_LABEL:"Nombro de membroj"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombro de blokoj kalkulitaj",BLOCK_COUNT:"{{count}} blokoj",NO_BLOCK:"Neniu bloko"}},DOC_STATS:{TITLE:"Statistikoj pri stokado",USER:{TITLE:"Nombro de dokumentoj ligitaj al konto",USER_PROFILE:"Uzanto-profiloj",USER_SETTINGS:"Parametroj konservitaj"},MESSAGE:{TITLE:"Nombro de dokumentoj ligitaj al komunikado",MESSAGE_INBOX:"Mesaĝoj en ricevujo",MESSAGE_OUTBOX:"Senditaj mesaĝoj konservitaj",INVITATION_CERTIFICATION:"Invitoj atestotaj"},SOCIAL:{TITLE:"Nombro de paĝoj aŭ grupoj",PAGE_COMMENT:"Komentoj",PAGE_RECORD:"Paĝoj",GROUP_RECORD:"Grupoj"},OTHER:{TITLE:"Aliaj dokumentoj",HISTORY_DELETE:"Forigoj de dokumentoj"}},SYNCHRO:{TITLE:"Statistikoj pri sinkronigoj",COUNT:{TITLE:"Kvanto sinkronigita",INSERTS:"Enmetoj",UPDATES:"Ĝisdatigoj",DELETES:"Forigoj"},PEER:{TITLE:"Nodoj informpetitaj",ES_USER_API:"Nodoj pri datenoj de uzantoj",ES_SUBSCRIPTION_API:"Nodoj pri retaj servoj"},PERFORMANCE:{TITLE:"Efikecoj pri efektiviĝo",DURATION:"Tempo por efektiviĝo (ms)"}}}}),e.translations("es-ES",{NETWORK:{VIEW:{BTN_GRAPH:"Estadística"}},GRAPH:{COMMON:{LINEAR_SCALE:"Escala lineal",LOGARITHMIC_SCALE:"Escala logarítmica",BTN_SHOW_STATS:"Ver estadísticas",BTN_SHOW_DETAILED_STATS:"Estadísticas detalladas",RANGE_DURATION_DIVIDER:"Unidad de paso:",RANGE_DURATION:{HOUR:"Grupo por <b>hora</b>",DAY:"Grupo por <b>día</b>",MONTH:"Grupo por <b>mes</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Suma del flujo entrante, por el transmisor:",OUTPUT_CHART_TITLE:"Suma de las salidas por destino:"},BLOCKCHAIN:{TITLE:"Estadística",BLOCKS_ISSUERS_DIVIDER:"Bloques escritos por los miembros",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Número de bloques miembro calculado",BLOCKS_ISSUERS_LABEL:"Número de bloques",TX_DIVIDER:"Análisis de transacciones",TX_AMOUNT_TITLE:"El volumen de operaciones",TX_AMOUNT_PUBKEY_TITLE:"El volumen de operaciones calculado por {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volumen negociado",TX_COUNT_TITLE:"Número de transacciones escritas",TX_COUNT_LABEL:"Número de transacciones",TX_AVG_BY_BLOCK:"Promedio por bloque"},CURRENCY:{MONETARY_MASS_TITLE:"Evolución de la masa monetaria",MONETARY_MASS_LABEL:"Masa monetaria",MONETARY_MASS_SHARE_LABEL:"Promedio miembro",UD_TITLE:"Evolución del dividendo universales",MEMBERS_COUNT_TITLE:"Evolución del número de miembros",MEMBERS_COUNT_LABEL:"Número de miembros"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Número de bloques calculados",BLOCK_COUNT:"{{count}} bloques",NO_BLOCK:"Ningún bloque"}}}}),e.translations("fr-FR",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiques"}},GRAPH:{COMMON:{LINEAR_SCALE:"Echelle linéaire",LOGARITHMIC_SCALE:"Echelle logarithmique",BTN_SHOW_STATS:"Voir les statistiques",BTN_SHOW_DETAILED_STATS:"Statistiques détaillées",RANGE_DURATION_DIVIDER:"Unité de temps :",RANGE_DURATION:{HOUR:"Heure",DAY:"Jour",MONTH:"Mois"}},ACCOUNT:{TITLE:"Statistiques",BTN_SHOW_STATS:"Voir les statistiques du compte",BALANCE_DIVIDER:"Situation du compte",BALANCE_TITLE:"Evolution du compte {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Recettes",TX_SENT_LABEL:"Dépenses",TX_ACCUMULATION_LABEL:"Bilan des transactions",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilan des DU",BALANCE_LABEL:"Solde",WOT_DIVIDER:"Toile de confiance",CERTIFICATION_TITLE:"Nombre de certifications - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Total reçues",RECEIVED_CERT_DELTA_LABEL:"Variation reçues",GIVEN_CERT_LABEL:"Total envoyées",GIVEN_CERT_DELTA_LABEL:"Variation envoyées",INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},BLOCKCHAIN:{TITLE:"Statistiques",BLOCKS_ISSUERS_DIVIDER:"Analyse de la répartition du calcul",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>",BLOCKS_ISSUERS_TITLE:"Nombre de blocs calculés par membre",BLOCKS_ISSUERS_LABEL:"Nombre de blocs",TX_DIVIDER:"Analyse des transactions",TX_AMOUNT_TITLE:"Volume des transactions",TX_AMOUNT_PUBKEY_TITLE:"Volume des transactions calculées par {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume échangé",TX_COUNT_TITLE:"Nombre de transactions écrites",TX_COUNT_LABEL:"Nombre de transactions",TX_AVG_BY_BLOCK:"Nombre moyen de transactions / bloc"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution de la masse monétaire",MONETARY_MASS_LABEL:"Masse monétaire",MONETARY_MASS_SHARE_LABEL:"Moyenne par membre",UD_TITLE:"Evolution du dividende universel",MEMBERS_COUNT_TITLE:"Evolution du nombre de membres",MEMBERS_COUNT_LABEL:"Nombre de membres"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombre de blocs calculés",BLOCK_COUNT:"{{count}} blocs",NO_BLOCK:"Aucun bloc"}},DOC_STATS:{TITLE:"Statistiques de stockage (Cesium+)",USER:{TITLE:"Nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},USER_DELTA:{TITLE:"Variation du nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},MESSAGE:{TITLE:"Nombre de documents liés à la communication",MESSAGE_INBOX:"Messages en boîte de réception",MESSAGE_OUTBOX:"Messages envoyés sauvegardés",INVITATION_CERTIFICATION:"Invitations à certifier"},SOCIAL:{TITLE:"Nombre de pages ou groupes",PAGE_COMMENT:"Commentaires",PAGE_RECORD:"Pages",GROUP_RECORD:"Groupes"},OTHER:{TITLE:"Autres documents",HISTORY_DELETE:"Suppressions de documents"}},SYNCHRO:{TITLE:"Statistiques de synchronisations",COUNT:{TITLE:"Volume synchronisé",INSERTS:"Insertions",UPDATES:"Mises à jour",DELETES:"Suppressions"},PEER:{TITLE:"Noeuds requêtés",ES_USER_API:"Noeuds données utilisateurs",ES_SUBSCRIPTION_API:"Noeuds services en ligne"},PERFORMANCE:{TITLE:"Performances d'exécution",DURATION:"Temps d'exécution (ms)"}}}}),e.translations("it-IT",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiche"}},GRAPH:{COMMON:{LINEAR_SCALE:"Scala lineare",LOGARITHMIC_SCALE:"Scala logaritmica",BTN_SHOW_STATS:"Vedere le statistiche",BTN_SHOW_DETAILED_STATS:"Statistiche dettagliate",RANGE_DURATION_DIVIDER:"Unità di tempo :",RANGE_DURATION:{HOUR:"Ora",DAY:"Giorno",MONTH:"Mese"}},ACCOUNT:{TITLE:"Statistiche",BTN_SHOW_STATS:"Visualizzare le statistiche del conto",BALANCE_DIVIDER:"Situazione del conto",BALANCE_TITLE:"Evoluzione del conto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Incassi",TX_SENT_LABEL:"Spese",TX_ACCUMULATION_LABEL:"Bilancio delle transazioni",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilancio dei DU",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Tela di fiducia",CERTIFICATION_TITLE:"Numero di certificazioni - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Totale ricevute",RECEIVED_CERT_DELTA_LABEL:"Variazione ricevute",GIVEN_CERT_LABEL:"Totale inviate",GIVEN_CERT_DELTA_LABEL:"Variazione inviate",INPUT_CHART_TITLE:"Somma dei flussi in entrata, par emittente :",OUTPUT_CHART_TITLE:"Somma dei flussi in uscita, per destinatario :"},BLOCKCHAIN:{TITLE:"Statistiche",BLOCKS_ISSUERS_DIVIDER:"Analisi della ripartizione del calcolo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>",BLOCKS_ISSUERS_TITLE:"Numero di blocchi calcolati a membro",BLOCKS_ISSUERS_LABEL:"Numero di blocchi",TX_DIVIDER:"Analisi delle transazioni",TX_AMOUNT_TITLE:"Volume delle transazioni",TX_AMOUNT_PUBKEY_TITLE:"Volume delle transazioni calcolato da {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume scambiato",TX_COUNT_TITLE:"Numero di transazioni scritte",TX_COUNT_LABEL:"Numero di transazioni",TX_AVG_BY_BLOCK:"Numero medio di transazioni / blocco"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluzione della massa monetaria",MONETARY_MASS_LABEL:"Massa monetaria",MONETARY_MASS_SHARE_LABEL:"Media a membro",UD_TITLE:"Evoluzione del Dividendo Universale",MEMBERS_COUNT_TITLE:"Evoluzione del numero di membri",MEMBERS_COUNT_LABEL:"Numero di membri"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Numero di blocchi calcolati",BLOCK_COUNT:"{{count}} blocchi",NO_BLOCK:"Nessun blocco"}},DOC_STATS:{TITLE:"Statistiche di stoccaggio",USER:{TITLE:"Numero di documenti legati ad un conto",USER_PROFILE:"Profili dell'utente",USER_SETTINGS:"Impostazioni salvate"},MESSAGE:{TITLE:"Numero di documenti legati alla conversazione",MESSAGE_INBOX:"Messaggi in arrivo",MESSAGE_OUTBOX:"Messaggi inviati salvati",INVITATION_CERTIFICATION:"Invitazioni da certificare"},SOCIAL:{TITLE:"Numero di pagine o gruppi",PAGE_COMMENT:"Commenti",PAGE_RECORD:"Pagine",GROUP_RECORD:"Gruppi"},OTHER:{TITLE:"Altri documenti",HISTORY_DELETE:"Cronologia eliminazione documenti"}},SYNCHRO:{TITLE:"Statistiche di sincronizzazioni",COUNT:{TITLE:"Volume sincronizzato",INSERTS:"Inserimenti",UPDATES:"Aggiornamenti",DELETES:"Eliminazioni"},PEER:{TITLE:"Nodi interrogati",ES_USER_API:"Nodi dati utenti",ES_SUBSCRIPTION_API:"Noeuds servizi online"},PERFORMANCE:{TITLE:"Prestazioni (performance) di esecuzione",DURATION:"Tempo di esecuzione (ms)"}}}}),e.translations("nl-NL",{NETWORK:{VIEW:{BTN_GRAPH:"Statistieken"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineaire schaal",LOGARITHMIC_SCALE:"Logaritmische schaal",BTN_SHOW_STATS:"Zie statistieken",BTN_SHOW_DETAILED_STATS:"Gedetailleerde statistieken",RANGE_DURATION_DIVIDER:"Stap eenheid:",RANGE_DURATION:{HOUR:"Groep per <b>uur</b>",DAY:"Groep per <b>dag</b>",MONTH:"Groep per <b>maand</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Som van de binnenkomende stroom, door de zender:",OUTPUT_CHART_TITLE:"Som van de uitstroom per bestemming:"},BLOCKCHAIN:{TITLE:"Statistieken",BLOCKS_ISSUERS_DIVIDER:"Schriftelijke blokken door leden",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>",BLOCKS_ISSUERS_TITLE:"Aantal blokken berekend per lid",BLOCKS_ISSUERS_LABEL:"Aantal blokken",TX_DIVIDER:"Analyse van transacties",TX_AMOUNT_TITLE:"Trading volume",TX_AMOUNT_PUBKEY_TITLE:"Trading volume dat wordt berekend door {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Verhandeld volume",TX_COUNT_TITLE:"Aantal schriftelijke transacties",TX_COUNT_LABEL:"Aantal transacties",TX_AVG_BY_BLOCK:"Gemiddeld aantal transacties / blok"},CURRENCY:{MONETARY_MASS_TITLE:"Evolutie van de monetaire massa",MONETARY_MASS_LABEL:"Monetaire massa",MONETARY_MASS_SHARE_LABEL:"Gemiddelde leden",UD_TITLE:"Ontwikkeling van de universele dividend",MEMBERS_COUNT_TITLE:"Evolutie van het aantal leden",MEMBERS_COUNT_LABEL:"Aantal leden"}}}),e.translations("fr-FR",{RML9:{BTN_EXPORT:"Télécharger",BTN_OPEN:"Ouvrir la page RML9",BTN_SWOW_TX:"Voir les transactions",FILE_NAME:"relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"},VIEW:{TITLE:"RML9",DIVIDER:"Dernières transactions :",BALANCE:"Solde du compte"},CHART:{INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},SETTINGS:{ENABLE_TOGGLE:"Activer le plugin RML9 ?"}}}),e.translations("en-GB",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("en",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("eo-EO",{MAP:{COMMON:{SEARCH_DOTS:"Traserĉi...",BTN_LOCALIZE_ME:"Lokalizi min"},NETWORK:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri nodoj"},VIEW:{TITLE:"Mapo pri nodoj",LAYER:{MEMBER:"Membro-nodoj",MIRROR:"Spegul-nodoj",OFFLINE:"Nekonektitaj nodoj"}}},WOT:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri membroj"},VIEW:{TITLE:"Mapo pri membroj",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membroj',PENDING:'<i class="icon ion-clock energized"></i> Aliĝoj atendantaj',WALLET:'<i class="icon ion-card gray"></i> Simplaj monujoj'}},ERROR:{LOAD_POSITION_FAILED:"Neeblas ricevi la lokojn afiŝotajn."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri paĝoj"},VIEW:{TITLE:"Mapo pri paĝoj",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Lokaj komercoj',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprenoj',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Asocioj',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institucioj'}}},PROFILE:{MARKER_HELP:"<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo."},ERROR:{LOCALIZE_ME_FAILED:"Neeblas ricevi vian nunan lokon"},SETTINGS:{MAP_DIVIDER:"Mapoj",ENABLE_GOOGLE_API:"Aktivigi la Google-API-servojn?",ENABLE_GOOGLE_API_HELP:"Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.",GOOGLE_API_KEY:"Google-API-ŝlosilo",BTN_GOOGLE_API:"Ekhavi ŝlosilon",BTN_GOOGLE_API_WARNING:"Necesigas havi Google-konton",GOOGLE_API_KEY_PLACEHOLDER:"Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo &quot;aperi sur la mapo&quot; estis aktivigita.",WOT_BTN_LAYERS:"<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.",WOT_BTN_SEARCH:"Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo."}}}}),e.translations("fr-FR",{MAP:{COMMON:{SEARCH_DOTS:"Rechercher...",BTN_LOCALIZE_ME:"Me localiser"},NETWORK:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des noeuds"},VIEW:{TITLE:"Carte des noeuds",LAYER:{MEMBER:"Nœuds membre",MIRROR:"Nœuds miroir",OFFLINE:"Nœuds hors ligne"}}},WOT:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des membres"},VIEW:{TITLE:"Carte des membres",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membres',PENDING:'<i class="icon ion-clock energized"></i> Inscriptions en attente',WALLET:'<i class="icon ion-card gray"></i> Simples portefeuilles'}},ERROR:{LOAD_POSITION_FAILED:"Impossible de récupérer les positions à afficher."}},REGISTRY:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des pages"},VIEW:{TITLE:"Carte des pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Commerces locaux',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprises',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{
-MARKER_HELP:"<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte."},ERROR:{LOCALIZE_ME_FAILED:"Impossible de récupérer votre position actuelle"},SETTINGS:{MAP_DIVIDER:"Cartes",ENABLE_GOOGLE_API:"Activer les services Google API ?",ENABLE_GOOGLE_API_HELP:"Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.",GOOGLE_API_KEY:"Clé d'API Google",BTN_GOOGLE_API:"Obtenir une clé",BTN_GOOGLE_API_WARNING:"Nécessite d'avoir un compte Google",GOOGLE_API_KEY_PLACEHOLDER:"Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option &quot;apparaître sur la carte&quot; a été activée.",WOT_BTN_LAYERS:"<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.",WOT_BTN_SEARCH:"Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre."}}}}),e.translations("it-IT",{MAP:{COMMON:{SEARCH_DOTS:"Ricerca...",BTN_LOCALIZE_ME:"Trovami"},NETWORK:{LOOKUP:{BTN_MAP:"Mappa dei peers",BTN_MAP_HELP:"Aprire mappa dei peers"},VIEW:{TITLE:"Mappa dei peers",LAYER:{MEMBER:"Peers membri",MIRROR:"Peers specchi",OFFLINE:"Peers offline"}}},WOT:{LOOKUP:{BTN_MAP:"Mappa dei membri",BTN_MAP_HELP:"Aprire mappa dei membri"},VIEW:{TITLE:"Mappa membri",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membri',PENDING:'<i class="icon ion-clock energized"></i> Registrazione pendenti',WALLET:'<i class="icon ion-card gray"></i> Portafogli osservatori'}},ERROR:{LOAD_POSITION_FAILED:"Errore nel caricamento delle posizioni."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mappa",BTN_MAP_HELP:"Aprire la mappa delle pagine pro"},VIEW:{TITLE:"Mappa delle pagine pro",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Negozi locali',COMPANY:'<i class="icon ion-page-company positive"></i> Aziende',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associazioni',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Instituti'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa."},ERROR:{LOCALIZE_ME_FAILED:"Impossible trovare tua posizione attuale"},SETTINGS:{MAP_DIVIDER:"Mappe",ENABLE_GOOGLE_API:"Abilitare i servizi Google API ?",ENABLE_GOOGLE_API_HELP:"Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.",GOOGLE_API_KEY:"Chiave Google API",BTN_GOOGLE_API:"Ottenere una chiave",BTN_GOOGLE_API_WARNING:"necessita un conto Google",GOOGLE_API_KEY_PLACEHOLDER:"per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione &quot;apparire sulla mappa&quot; sono stati attivati.",WOT_BTN_LAYERS:"<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.",WOT_BTN_SEARCH:"Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro."}}}})}]),angular.module("cesium.plugins.templates",[]).run(["$templateCache",function(e){e.put("plugins/es/templates/menu_extend.html",'<div ng-if=":state:enable && extensionPoint === \'menu-user\'" class="visible-xs visible-sm"><a menu-close="" class="item item-icon-left" active-link="active" ng-if="login && walletData.isMember" active-link-path-prefix="#/app/invitations" ui-sref="app.view_invitations"><i class="icon ion-person-stalker"></i> <span translate="">MENU.INVITATIONS</span> <span class="badge badge-positive" ng-if="walletData.invitations.unreadCount">{{walletData.invitations.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/user/message" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.user_message.tab_inbox"><i class="icon ion-email"></i> <span translate="">MENU.MESSAGES</span> <span class="badge badge-positive" ng-if="walletData.messages.unreadCount">{{walletData.messages.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/notifications" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.view_notifications"><i class="icon ion-android-notifications"></i> <span translate="">MENU.NOTIFICATIONS</span> <span class="badge badge-positive" ng-if="walletData.notifications.unreadCount">{{walletData.notifications.unreadCount}}</span></a></div>'),e.put("plugins/rml9/templates/01-button.html",'\x3c!-- Button that call a function of the controller --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ng-click="onButtonClick()"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button>\n\n\x3c!-- Button: Open a view, using `ui-sref` attribute\n<button class="button button-balanced button-small-padding icon ion-plus-circled"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button> --\x3e\n\n'),e.put("plugins/rml9/templates/02-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item" ng-repeat="item in items">\n        <h3>{{item.time|formatDate}}</h3>\n        <h4>{{item.pubkey|formatPubkey}}</h4>\n        <div class="badge">{{item.amount|formatAmount}}</div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/03-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/03-view_with_button.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item item-text-wrap" ng-repeat="item in items">\n\n        <h3>\n          {{item.time|formatDate}}\n          <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n        </h3>\n\n        <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n        <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n        <div class="badge"\n             ng-class="{\'badge-balanced\': item.amount > 0}">\n          {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/04-view_chart.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n\n      <div class="row">\n        <div class="col col-75">\n          \x3c!-- iterate on each TX --\x3e\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels"\n                  chart-colors="inputChart.colors">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels"\n                  chart-colors="outputChart.colors">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/06-button.html",'\x3c!-- [NEW] Display only if plugin is enable --\x3e\n\n  \x3c!-- Button: call a method from the state controller --\x3e\n  <button ng-if="enable" class="button button-balanced button-small-padding icon ion-android-archive"\n          ng-click="onButtonClick()"\n          title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n  </button>\n\n\n'),e.put("plugins/rml9/templates/06-settings_item.html",'\n<div class="item item-toggle dark">\n  <div class="input-label" translate>RML9.SETTINGS.ENABLE_TOGGLE</div>\n  <label class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.plugins.rml9.enable" >\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </label>\n</div>\n'),e.put("plugins/rml9/templates/07-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/07-view.html",'<leaflet id="map-geojson" center="map.center" geojson="map.geojson"></leaflet>\n'),e.put("plugins/rml9/templates/final-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button ng-if class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/final-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="row">\n        <div class="col col-75">\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/blockchain/items_blocks.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-if ng-if=":rebind:!smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ng-if><ng-if ng-if=":rebind:smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ng-if>'),e.put("plugins/es/templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/blockchain/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/blockchain/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="button button-small button-text button-stable button-icon-event padding no-padding-right ink" ng-repeat="filter in search.filters" ng-if="filter"><span ng-bind-html="\'BLOCKCHAIN.LOOKUP.TX_SEARCH_FILTER.\'+filter.type|translate:filter"></span> <i class="icon ion-close" ng-click="itemRemove($index)"></i></div><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'BLOCKCHAIN.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-blockchain-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'last\'" translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery">{{\'DOCUMENT.LOOKUP.SHOW_QUERY\'|translate }} <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery">{{\'DOCUMENT.LOOKUP.HIDE_QUERY\'|translate }} <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list list-blocks" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/blockchain/items_blocks.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/blockchain/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.LOOKUP.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a ng-if="enableFilter" class="item item-icon-left item-icon-right ink" ng-click="doSearchLast()"><i class="icon ion-clock"></i> {{\'BLOCKCHAIN.LOOKUP.BTN_LAST\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'last\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/common/edit_pictures.html",'<div class="gallery" ng-controller="ESPicturesEditCtrl as ctrl"><div ng-repeat="picture in pictures" class="item card card-gallery stable-bg" ng-class="{\'in done\': picture.isnew}"><div><h2 ng-if="picture.title">{{picture.title}}</h2><img ng-src="{{picture.src}}"></div><div class="item done in tabs tabs-secondary tabs-icon-left"><a class="tab-item stable-bg assertive" ng-click="removePicture($index)" title="{{\'COMMON.BTN_PICTURE_DELETE\' | translate}}"><i class="icon ion-trash-a"></i>{{\'COMMON.BTN_PICTURE_DELETE\'|translate}}</a> <a class="tab-item stable-bg dark" ng-click="rotatePicture($index)" title="{{\'COMMON.BTN_PICTURE_ROTATE\' | translate}}"><i class="icon ion-forward"></i>{{\'COMMON.BTN_PICTURE_ROTATE\'|translate}}</a> <a class="tab-item stable-bg" ng-click="favoritePicture($index)" ng-class="{\'gray\': $index !== 0, \'positive\': $index === 0}" title="{{\'COMMON.BTN_PICTURE_FAVORISE\' | translate}}"><i class="icon ion-star"></i>{{\'COMMON.BTN_PICTURE_FAVORISE\'|translate}}</a></div></div><div class="item card card-gallery card-gallery-new text-center padding ink" ng-click="selectNewPicture(\'#pictureFile\')"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="font-size:80px; position:absolute; top:25px; right: 5px"></b><p translate>COMMON.BTN_ADD_PICTURE</p></div><input type="file" id="pictureFile" accept="image/*" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div>'),e.put("plugins/es/templates/common/edit_position.html",'<div class="item item-divider" translate>LOCATION.LOCATION_DIVIDER</div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label">{{\'LOCATION.ADDRESS\' | translate}}</span><textarea placeholder="{{\'LOCATION.ADDRESS_HELP\' | translate}}" ng-model="formData.address" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.geoPoint.$invalid}"><span class="input-label" translate>LOCATION.CITY</span> <input type="text" placeholder="{{\'LOCATION.CITY_HELP\'|translate}}" ng-model="formData.city" ng-model-options="{ updateOn: \'blur\' }" required-if="formData.address" ng-change="onCityChanged()"></div><input type="hidden" name="geoPoint" ng-model="formData.geoPoint" required-if="formPosition.enable" geo-point><div class="form-errors" ng-show="form.$submitted && form.city.$error" ng-messages="form.city.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.CITY_REQUIRED_IF_STREET"></span></div></div><div class="form-errors" ng-show="form.$submitted && form.geoPoint.$error" ng-messages="form.geoPoint.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div><div class="form-error" ng-message="geoPoint"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div></div><div class="item row item-text-wrap no-padding"><div class="col no-padding"><ion-checkbox ng-model="formPosition.enable" ng-change="onUseGeopointChanged()" class="item item-border-large done in"><div class="item-content"><span translate>LOCATION.USE_GEO_POINT</span><h4 class="gray" ng-if="formPosition.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner>{{\'LOCATION.LOADING_LOCATION\'|translate}}</h4></div></ion-checkbox></div><div class="col col-10 no-padding" style="min-width: 60px"><div class="row text-center"><a class="button button-stable button-small-padding" title="{{\'LOCATION.BTN_GEOLOC_ADDRESS\'|translate}}" ng-disabled="!formPosition.enable" ng-click="openSearchLocationModal()"><i class="icon ion-home" style="left: 15px"></i> <b class="icon-secondary ion-search" style="top: -9px; left:32px; font-size: 18px"></b></a></div></div></div><cs-extension-point name="after-position"></cs-extension-point>'),e.put("plugins/es/templates/common/edit_socials.html",'<ion-list class="no-padding"><div class="item item-divider"><span>{{\'PROFILE.SOCIAL_NETWORKS_DIVIDER\' | translate}} </span><a class="badge button button-text button-small button-small-padding" ng-class="{\'button-text-positive\': socialData.reorder}" ng-if="formData.socials && formData.socials.length &gt; 1" ng-click="socialData.reorder=!socialData.reorder"><span translate="">PROFILE.BTN_REORDER</span></a></div></ion-list><ion-list show-reorder="socialData.reorder"><ion-item class="item-remove-animate item-icon-left" type="no-padding item-text-wrap" ng-if="formData.socials && formData.socials.length" ng-repeat="social in formData.socials | filter:filterFn track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h2><a href="{{social.url}}" ng-if="social.type != \'email\' && social.type != \'phone\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a> <a href="tel:{{social.url}}" ng-if="social.type == \'phone\'">{{social.url}}</a></h2><ion-option-button class="button-assertive" ng-if="!social.recipient" ng-click="formData.socials.splice($index, 1); dirty = true;">{{\'COMMON.BTN_DELETE\'|translate}}</ion-option-button><ion-option-button class="button-info" ng-if="!social.recipient" ng-click="editSocialNetwork($index)">{{\'COMMON.BTN_EDIT\'|translate}}</ion-option-button><ion-reorder-button class="ion-drag" on-reorder="reorderSocialNetwork(social, $fromIndex, $toIndex)"></ion-reorder-button></ion-item></ion-list><ion-list class="no-padding"><div class="item item-complex item-input-inset"><label class="item-input-wrapper"><input type="text" style="width:100%" placeholder="{{\'PROFILE.SOCIAL_HELP\'|translate}}" id="socialUrl" on-return="addSocialNetwork($event);" ng-model="socialData.url"></label><button class="button button-small hidden-xs" type="button" ng-click="addSocialNetwork($event)">{{\'COMMON.BTN_ADD\'|translate}}</button> <button class="button button-small button-icon icon ion-android-add visible-xs" type="button" ng-click="addSocialNetwork($event)"></button></div></ion-list>'),e.put("plugins/es/templates/common/item_comment.html",'<ng-init ng-init="level = level + 1"><a name="{{::comment.id|formatHash}}"></a><ion-item id="comment-{{::comment.id|formatHash}}" class="card card-comment card-avatar stable-900-bg item-text-wrap no-padding" ng-class="::{\'in done\': comment.isnew}"><div class="card-header padding-left" ng-if="comment.parent && !hideParent"><h5 class="gray underline"><ng-if ng-if="!comment.parent.issuer">{{\'COMMENTS.REPLY_TO_DELETED_COMMENT\'|translate}}</ng-if><ng-if ng-if="comment.parent.issuer"><a ng-click="toggleExpandedParent(comment, $index)">{{\'COMMENTS.REPLY_TO_LINK\'|translate}}<ng-if ng-if="::comment.parent.uid">{{::comment.parent.name||comment.parent.uid}}</ng-if><ng-if ng-if="::!comment.parent.uid"><i class="ion-key"></i> {{::comment.parent.name|| (comment.parent.issuer|formatPubkey) }}</ng-if></a><i ng-class="{\'ion-arrow-down-b\': !comment.expandedParent[$index], \'ion-arrow-up-b\': comment.expandedParent[$index]}"></i></ng-if></h5><div class="padding-left" ng-if="comment.expandedParent[$index]"><div class="card card-avatar card-avatar-small stable-bg item-text-wrap no-padding in done"><ng-include ng-init="comment = comment.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include></div></div></div><ng-include src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><div class="card-footer gray"><small class="underline"><a ng-click="share($event, comment, $index)">{{comment.creationTime | formatFromNow}}</a><ng-if ng-if="comment.replyCount">| <a class="dark" ng-click="toggleExpandedReplies(comment, $index)">{{\'COMMENTS.REPLY_COUNT\'|translate:comment}}</a> <i ng-class="{\'ion-arrow-down-b\': !comment.showReplies, \'ion-arrow-up-b\': comment.showReplies}"></i></ng-if></small><div class="pull-right"><a class="ion-android-share-alt" ng-click="share($event, comment)"></a> <a class="ion-edit" ng-if="isUserPubkey(comment.issuer)" ng-click="edit(comment)"></a> <a class="ion-trash-a" ng-if="isUserPubkey(comment.issuer)" ng-click="remove(comment, $index)"></a> <a class="ion-reply" ng-click="reply(comment)">{{::\'COMMENTS.REPLY\'|translate}}</a></div></div></ion-item><div ng-if="comment.expandedReplies[$index]" class="padding-left card-avatar-small expanded" ng-init="hideParent=true"><ng-include ng-repeat="comment in comment.replies track by comment.id" src="\'plugins/es/templates/common/item_comment.html\'"></ng-include></div></ng-init>'),e.put("plugins/es/templates/common/item_comment_content.html",'<div class="item item-avatar done in"><span class="avatar" ng-if="::!comment.avatar" ng-class="::{\'avatar-member\': comment.uid, \'avatar-wallet\': !comment.uid}"></span> <span class="avatar" ng-if="::comment.avatar" style="background-image: url({{::comment.avatar.src}})"></span> <a class="pull-left" ui-sref="app.wot_identity({pubkey:comment.issuer, uid: comment.uid})"><span class="positive" ng-if="::comment.uid">{{::comment.name||comment.uid}} </span><span ng-if="::!comment.uid" class="gray"><i class="icon ion-key gray"></i> {{::comment.name || (comment.issuer|formatPubkey)}} </span></a>&nbsp; <span trust-as-html="comment.html"></span></div>'),e.put("plugins/es/templates/common/item_location_search.html",'<div class="item no-padding"><div class="item-input"><i class="icon ion-location placeholder-icon"></i> <input type="text" placeholder="{{(options.location.help||\'LOCATION.SEARCH_HELP\')|translate}}" ng-model-options="{ debounce: 350 }" ng-model="search.location" ng-keydown="onKeydown($event)" ng-change="onLocationChanged()" ng-blur="hideDropdown()"></div></div><ul class="item no-padding list dropdown-list" ng-if="locations" scroll="true"><div ng-if="!locations.length" class="item padding assertive"><span translate>COMMON.SEARCH_NO_RESULT</span></div><a ng-repeat="res in locations" class="item item-border-large item-text-wrap ink done in {{res.selected && \'active\' || \'\'}}" ng-class="::{\'item-divider\': !res.address, \'item-icon-left\': res.address}" ng-click="::res.address ? selectLocation(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h3 ng-if="res.address.road">{{::res.address.road}}</h3><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5></ng-if></a></ul>'),
-e.put("plugins/es/templates/common/modal_category.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title">{{ (ctrl.title || \'COMMON.CATEGORIES\') | translate}}</h1></ion-header-bar><ion-content class="categoryModal"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" placeholder="{{\'COMMON.CATEGORY_SEARCH_HELP\'|translate}}" ng-model="ctrl.searchText" ng-model-options="{ debounce: 350 }" ng-change="ctrl.doSearch()"></label><div ng-repeat="cat in categories" class="item item-category item-text-wrap" ng-class="{\'item-divider\': !cat.parent}" ng-click="cat.parent ? closeModal(cat) : false"><h2 ng-bind-html="cat.name"></h2></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_edit_avatar.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs visible-sm" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PROFILE.MODAL_AVATAR.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-click="doCrop()" ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-click="closeModal(formData.result)" ng-if="formData.imageCropStep == 3"><i class="icon ion-android-done"></i></button></ion-header-bar><ion-content class="modal-avatar padding"><div ng-show="formData.imageCropStep == 1"><p translate>PROFILE.MODAL_AVATAR.SELECT_FILE_HELP</p><div class="item card text-center padding ink" ng-click="openFileSelector()"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="position:relative; font-size:80px; top:-51px; right: 19px"></b><p translate>PROFILE.MODAL_AVATAR.BTN_SELECT_FILE</p></div><input type="file" name="fileInput" accept="image/*" id="fileInput" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div><div ng-show="formData.imageCropStep == 2"><p translate>PROFILE.MODAL_AVATAR.RESIZE_HELP</p><div class="item card text-center padding ink"><image-crop data-height="200" data-width="200" data-shape="circle" data-step="formData.imageCropStep" src="formData.imgSrc" data-result="formData.result" data-result-blob="formData.resultBlob" crop="formData.initCrop" padding="150" max-size="1024"></image-crop></div></div><div ng-show="formData.imageCropStep == 3"><p translate>PROFILE.MODAL_AVATAR.RESULT_HELP</p><div class="item card padding hero" style="height: 110px"><div class="content"><img class="avatar" ng-src="{{formData.result}}" style="height: 88px; width: 88px"></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doCrop()" translate ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2">COMMON.BTN_NEXT</button> <button class="button button-positive ink" ng-click="closeModal(formData.result)" translate ng-if="formData.imageCropStep == 3">COMMON.BTN_CONTINUE</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_location.html",'<ion-modal-view class="modal-full-height modal-search-location"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">LOCATION.MODAL.TITLE</h1></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'LOCATION.MODAL.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()"></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading && search.results"><h4 translate="">COMMON.RESULTS_LIST</h4></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-if="!search.loading && search.results && (!search.results.length || !search.results[0].address)" class="assertive padding"><span translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list ng-if="!search.loading" class="padding-top {{::motion.ionListClass}}"><div ng-repeat="res in search.results" class="item item-border-large item-text-wrap ink" ng-class="::{\'item-divider\': !res.address, \'item-icon-left item-icon-right\': res.address}" ng-click="res.address ? closeModal(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h2 ng-if="res.address.road">{{::res.address.road}}</h2><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5><i class="icon ion-ios-arrow-right"></i></ng-if></div></ion-list></ion-content><ion-footer-bar class="stable-bg padding-left padding-right block" ng-if="license"><div class="pull-right copyright"><span class="dark">© </span><a class="positive" href="{{license.url}}" target="_blank">{{license.name}}</a></div></ion-footer-bar></ion-modal-view>'),e.put("plugins/es/templates/common/popover_profile_extend.html",'<button ng-if=":state:enable && auth" class="button button-positive button-small ink" ng-click="showEditUserProfile()">{{\'PROFILE.BTN_EDIT\' | translate}}</button>'),e.put("plugins/es/templates/common/view_comments.html",'<form class="comments" ng-controller="ESCommentsCtrl" ng-submit="save()"><div class="item item-divider"><i class="icon ion-chatboxes"></i> <span translate="">COMMENTS.DIVIDER</span> <span class="gray" ng-if="comments.total">({{comments.total}})</span></div><span class="item item-more-comments" ng-if="comments.hasMore"><small><a ng-click="showMore()" translate="">COMMENTS.SHOW_MORE_COMMENTS</a></small></span><div class="padding-right"><ng-repeat ng-repeat="comment in comments.result track by comment.id" ng-include="\'plugins/es/templates/common/item_comment.html\'"></ng-repeat></div><div class="visible-xs visible-sm" style="margin-bottom"><div class="block"><div class="item item-input-inset done in" ng-if="formData.parent"><div class="padding text-right pull-left" translate="">COMMENTS.REPLY_TO</div><br><div class="padding-left expanded"><div class="card card-comment stable-900-bg item-text-wrap no-padding in done"><ng-include ng-if="::formData.parent.message" ng-init="comment = formData.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><span ng-if="::!formData.parent.message" translate="">COMMENTS.DELETED_COMMENT</span><div class="card-footer text-right gray"><div class="pull-right"><a class="ion-close" ng-click="removeParentLink()">{{::\'COMMON.BTN_CANCEL\'|translate}}</a></div></div></div></div></div><div class="item item-input-inset"><div class="item-input-wrapper"><input type="text" id="comment-form-input" style="width: 100%" placeholder="{{\'COMMENTS.COMMENT_HELP\'|translate}}" on-return="save();" ng-model="formData.message"> <button type="submit" class="button button-small button-small-padding button-icon button-dark button-icon gray"><i class="icon ion-android-send"></i></button></div></div></div></div></form>'),e.put("plugins/es/templates/common/view_pictures.html",'<div class="item gallery done in" ng-if="pictures && pictures.length>0"><div ng-repeat="picture in pictures" class="item card card-gallery"><div class="ink"><h2 ng-if="picture.title">{{::picture.title}}</h2><img ng-src="{{picture.src}}"></div></div></div>'),e.put("plugins/es/templates/currency/tab_blocks_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-search visible-xs visible-sm" ui-sref="app.blockchain_search"></button></ng-if>'),e.put("plugins/es/templates/document/item_document.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-click="selectDocument($event, doc)"><i class="icon ion-document stable" ng-if=":rebind:!doc.avatar"></i> <i class="avatar" ng-if=":rebind:doc.avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-locked" ng-if=":rebind:doc.nonce"></i> {{:rebind:doc.time|formatDate}}</h3><h4 class="gray">{{:rebind:\'DOCUMENT.HASH\'|translate}} {{:rebind:doc.hash|formatHash}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.uid"><i class="ion-person"></i> {{:rebind:doc.name||doc.uid}}</span></a></h3></div><div class="col"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a><h3 ng-if=":rebind:doc.recipient"><a ui-sref="app.wot_identity({pubkey: doc.recipient.pubkey, uid: doc.recipient.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.recipient.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.recipient.uid"><i class="ion-person"></i> {{:rebind:doc.recipient.name||doc.recipient.uid}}</span></a></h3><h4 class="gray" ng-if=":rebind:doc.read_signature"><i class="ion-checkmark"></i> <span translate>DOCUMENT.LOOKUP.READ</span></h4></div></div></ion-item>'),e.put("plugins/es/templates/document/items_documents.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="doc in :rebind:search.results track by doc.id" ng-include="\'plugins/es/templates/document/item_document.html\'"></ng-repeat>'),e.put("plugins/es/templates/document/lookup.html",'<ion-view><ion-nav-title><span translate>DOCUMENT.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/document/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/document/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'DOCUMENT.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="{{helptipPrefix}}-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.last" translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</h4><h4 ng-if="!search.last">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery"><span translate="">DOCUMENT.LOOKUP.SHOW_QUERY</span> <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery"><span translate="">DOCUMENT.LOOKUP.HIDE_QUERY</span> <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/document/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>DOCUMENT.LOOKUP.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !search.total}" ng-click="removeAll()"><i class="icon ion-trash-a"></i> {{\'DOCUMENT.LOOKUP.POPOVER_ACTIONS.REMOVE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/edit_group.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">GROUP.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><form name="recordForm" novalidate="" ng-submit="save()"><div class="list" ng-class="motion.ionListClass" ng-init="setForm(recordForm)"><div class="item hidden-xs"><h1 ng-if="id" ng-bind-html="formData.title"></h1><h1 ng-if="!id" translate="">GROUP.EDIT.TITLE_NEW</h1><h2 class="balanced" ng-if="!id"><i class="icon ion-android-people"></i> <i class="icon ion-android-lock" ng-if="formData.type==\'managed\'"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</h2></div><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">GROUP.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">GROUP.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'GROUP.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="group-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">GROUP.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'GROUP.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/group/item_group.html",'<a name="group-{{:rebind:group.hash}}"></a><div id="group-{{:rebind:group.hash}}" class="item item-icon-right item-avatar {{::ionItemClass}} ink" ng-click="select(group)"><i class="item-image avatar" style="background-image: url({{::group.avatar.src}})" ng-if="group.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!group.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!group.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:group.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: group }}</h4><h4 class="dark pull-left" ng-if=":rebind:group.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:group.membersCount}}</span></h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/group/items_groups.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="group in :rebind:search.results" ng-include="\'plugins/es/templates/group/item_group.html\'"></ng-repeat>'),e.put("plugins/es/templates/group/list.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select(notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:notification"></h3><h4><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/group/lookup.html",'<ion-view class="view-group"><ion-nav-title><span translate>GROUP.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/group/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/group/lookup_form.html",'<div class="lookupForm"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'GROUP.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-group-search-text"></a></div></label><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'open\'" translate="">GROUP.LOOKUP.OPEN_RESULTS_LIST</h4><h4 ng-if="search.type==\'last\'" translate="">GROUP.LOOKUP.LAST_RESULTS_LIST</h4><h4 ng-if="search.type==\'managed\'" translate="">GROUP.LOOKUP.MANAGED_RESULTS_LIST</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }}</small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="list {{::motion.ionListClass}}" ng-if="!$scope.search.loading"><ng-include src="\'plugins/es/templates/group/items_groups.html\'"></ng-include></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/group/lookup_item.html",'<i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="item.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!item.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!item.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:item.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4>'),e.put("plugins/es/templates/group/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>GROUP.TYPE.TITLE</h1></ion-header-bar><ion-content class="lookupForm padding"><h3 translate>GROUP.TYPE.SELECT_TYPE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'open\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i><h2 translate>GROUP.TYPE.OPEN_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.OPEN_GROUP_HELP</h4></div></div><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'managed\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i> <i class="icon-secondary ion-android-lock dark" style="left: 10px; top: -8px"></i><h2 translate>GROUP.TYPE.MANAGED_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.MANAGED_GROUP_HELP</h4></div></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/group/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>GROUP.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/view_record.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><i class="avatar cion-registry-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" style="background-image: url({{::formData.avatar.src}})" ng-if="formData.avatar"></i><h3 ng-bind-html="formData.title"></h3><h4>&nbsp;</h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list item-text-wrap no-padding-xs no-padding-sm" ng-class="::motion.ionListClass"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.groups({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.groups({type:formData.type})"><i class="icon ion-flag"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="group-share-anchor-{{id}}"></a><ion-item><h2><span trust-as-html="formData.description"></span></h2></ion-item><ion-item><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_blank" href="https://www.google.fr/maps/?q={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></ion-item><ng-if ng-if="formData.socials && formData.socials.length>0"><ion-item class="item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a href="{{social.url}}" ng-if="social.type != \'email\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a></h2></ion-item></ng-if><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><span class="item item-divider" ng-if="formData.pubkey"><span translate="">REGISTRY.TECHNICAL_DIVIDER</span></span><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/invitation/list_invitation.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="invitation in search.results" class="item-border-large item-text-wrap item-avatar"><i ng-if="::!invitation.avatar" class="item-image icon {{::invitation.avatarIcon}}"></i> <i ng-if="::invitation.avatar" class="item-image avatar" style="background-image: url({{::invitation.avatar.src}})"></i><h3 trust-as-html="invitation.message | translate:invitation"></h3><h3 class="dark text-italic" ng-if="invitation.comment"><i class="icon ion-quote"></i> <span ng-bind-html="invitation.comment"></span></h3><h4><i class="icon {{::invitation.icon}}"></i> <span class="dark" ng-if="::invitation.issuer" trust-as-html="\'INVITATION.SUGGESTED_BY\' | translate:invitation"></span> <span class="dark">{{::invitation.time|formatFromNow}}</span> <span class="gray">| {{::invitation.time|formatDate}}</span></h4><div class="block text-right"><button class="button button-positive button-small button-small-padding" ng-click="accept(invitation)" ng-if="::invitation.state" translate>{{::(invitation.okText||\'COMMON.BTN_SHOW\') |translate}}</button> <button class="button button-stable button-small button-small-padding" ng-click="delete($index)" translate>INVITATION.BTN_DELETE</button></div></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/invitation/modal_new_invitation.html",'<ion-modal-view id="transfer" class="modal-invitation modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>INVITATION.NEW.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/invitation/new_invitation_form.html\'"></ng-include></ion-content></ion-modal-view>'),
-e.put("plugins/es/templates/invitation/new_invitation_form.html",'<form name="invitationForm" novalidate="" ng-submit="doSend()"><div class="list" ng-init="setForm(invitationForm)"><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': recipients.length, \'item-input-error\': form.$submitted && !recipients.length}" ng-click="showSelectRecipientModal($event)"><span class="gray" translate="">INVITATION.NEW.RECIPIENTS</span> <span class="item-note"><span class="hidden-xs" ng-if="!recipients.length" translate="">INVITATION.NEW.RECIPIENTS_HELP</span><ng-repeat ng-repeat="identity in recipients track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeRecipient($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !recipients.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': suggestions.length, \'item-input-error\': form.$submitted && !suggestions.length}" ng-click="showSelectSuggestionModal($event)"><span class="gray enable-pointer-events" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES</span> <span class="item-note"><span class="hidden-xs" ng-if="!suggestions.length" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES_HELP</span><ng-repeat ng-repeat="identity in suggestions track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeSuggestion($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !suggestions.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-content item-toggle dark visible-xs visible-sm"><span class="input-label gray">{{\'TRANSFER.BTN_ADD_COMMENT\' | translate}}</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useComment"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span><textarea placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" name="comment" ng-model="formData.comment" ng-maxlength="255">\n        </textarea></label><div class="form-errors" ng-show="form.$submitted && form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-small button-clear button-dark ink" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-small button-positive ink" type="submit">{{\'COMMON.BTN_SEND\' | translate}}</button></div></form>'),e.put("plugins/es/templates/invitation/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': !search.results.length, \'assertive\': search.results.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> <span translate>INVITATION.BTN_DELETE_ALL</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/invitation/popover_invitation.html",""),e.put("plugins/es/templates/invitation/view_invitations.html",'<ion-view left-buttons="leftButtons" class="view-invitation"><ion-nav-title>{{\'INVITATION.LIST.TITLE\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">INVITATION.NO_RESULT</div><ng-include src="\'plugins/es/templates/invitation/list_invitation.html\'"></ng-include></div></div></ion-content><button id="fab-new-invitation" class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm spin" ng-click="showNewInvitationModal()"></button></ion-view>'),e.put("plugins/es/templates/join/modal_join_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'),e.put("plugins/es/templates/network/view_network_extend.html",'<ng-if ng-if=":state:enable"><a class="button button-text button-small ink" ui-sref="app.blockchain_search"><i class="icon ion-android-search"></i> <span>{{\'COMMON.BTN_SEARCH\'|translate}}</span></a></ng-if>'),e.put("plugins/es/templates/message/compose.html",'<ion-view left-buttons="leftButtons" id="composeMessage"><ion-nav-title><span class="visible-xs visible-sm" nf-if="!isReply" translate="">MESSAGE.COMPOSE.TITLE</span> <span class="visible-xs visible-sm" nf-if="isReply" translate="">MESSAGE.COMPOSE.TITLE_REPLY</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row"><div class="col"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/message/compose_form.html",'<form name="messageForm" novalidate="" ng-submit="doSend()"><div class="list no-margin" ng-init="setForm(messageForm)"><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal()"><span class="gray" translate>MESSAGE.COMPOSE.TO</span> <span class="badge badge-royal" ng-if="destUid"><i class="ion-person"></i> {{destName||destUid}}</span>&nbsp; <span class="badge badge-stable" ng-if="!destUid && destPub">{{destName}} <span ng-if="!destName"><i class="ion-key"></i>{{destPub | formatPubkey}}</span> </span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" ng-click="showSelectWalletModal()"><span class="gray" translate>TRANSFER.FROM</span> <span class="badge badge-balanced animate-fade-in animate-show-hide" ng-show="!loading"><ion-spinner icon="android" ng-if="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}} </span></span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><div class="item item-input" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><input type="text" autocomplete="off" placeholder="{{\'MESSAGE.COMPOSE.OBJECT_HELP\' | translate}}" name="title" ng-model="formData.title" ng-maxlength="256" required> <span class="badge item-note" ng-if="isReply">({{\'MESSAGE.COMPOSE.OBJECT\' | translate}})</span></div><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 256}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.content.$invalid}"><span class="input-label">{{\'MESSAGE.COMPOSE.MESSAGE\' | translate}}</span><textarea placeholder="{{\'MESSAGE.COMPOSE.MESSAGE_HELP\' | translate}}" autocomplete="off" name="content" ng-model="formData.content" rows="8" ng-maxlength="5000">\n        </textarea></div><div class="form-errors" ng-show="form.$submitted && form.content.$error" ng-messages="form.content.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 5000}"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit" ng-disabled="sending" translate>TRANSFER.BTN_SEND</button></div><div class="list no-margin"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>MESSAGE.COMPOSE.ENCRYPTED_HELP</h4></div></div></form>'),e.put("plugins/es/templates/message/list.html",'<div class="padding gray" ng-if="!search.loading && !search.results.length"><span ng-if="search.type==\'last\'">{{ (\'MESSAGE.NO_MESSAGE_\' + type) | upper | translate }}</span> <span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list class="{{::motion.ionListClass}}" can-swipe="$root.device.enable"><ion-item class="item item-border-large item-avatar item-icon-right ink" ng-repeat="msg in :rebind:search.results track by msg.id" ng-click="select(msg, $event)"><i ng-if="::!msg.avatar" class="item-image icon" ng-class="{\'ion-person\': msg.uid, \'ion-email\': !msg.uid}"></i> <i ng-if="::msg.avatar" class="item-image avatar" style="background-image: url({{::msg.avatar.src}})"></i><h4 class="pull-right visible-xs visible-sm dark"><i class="ion-clock"></i> {{::msg.time|formatFromNow}}</h4><h3><a class="positive" ng-if="::msg.name||msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer, uid:msg.name||msg.uid})"><i class="ion-person"></i> {{::msg.name||msg.uid}} </a><a class="gray" ng-if="::!msg.name && !msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer})"><i class="ion-key"></i> {{::msg.issuer|formatPubkey}}</a></h3><h2 ng-class="{\'unread\': !msg.read}" ng-bind-html="::msg.title"></h2><p ng-bind-html="::msg.summary||msg.content"></p><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-stable" ng-click="showReplyModal($index)" translate="">MESSAGE.BTN_REPLY</ion-option-button><ion-option-button class="button-assertive" ng-click="delete($index)" translate="">COMMON.BTN_DELETE</ion-option-button></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" icon="ion-loading-c" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/message/lookup.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_message.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_message.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_by_id.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_messages_by_id.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_messages_by_id.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_lg.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-nav-title><span translate="">MESSAGE.LIST.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-more-vertical"></i></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true, $event)"></ion-refresher><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'MESSAGE.LIST.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearch()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-message-search-text"></a></div></div></div><div class="padding-top hidden-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading"><ng-if ng-if="search.type==\'last\'"><h4>{{ (\'MESSAGE.LIST.LAST_\' + type) | upper | translate}}</h4></ng-if><ng-if ng-if="search.type==\'text\'"><h4 translate="">COMMON.RESULTS_LIST</h4></ng-if></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><button id="fab-add-message-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-compose visible-xs visible-sm spin" ng-click="showNewMessageModal()"></button></ion-view>'),e.put("plugins/es/templates/message/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>MESSAGE.LIST.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': (type != \'inbox\' && !messages.length)}" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}} </a><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !messages.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.LIST.POPOVER_ACTIONS.DELETE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/message/modal_compose.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-if="!isReply" translate>MESSAGE.COMPOSE.TITLE</h1><h1 class="title" ng-if="isReply" translate>MESSAGE.COMPOSE.TITLE_REPLY</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/message/popover_message.html",""),e.put("plugins/es/templates/message/view_message.html",'<ion-view left-buttons="leftButtons" class="view-message"><ion-nav-title><span translate="">MESSAGE.VIEW.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list animate-fade-slide-in item-text-wrap"><div class="item item-avatar" ng-class="{\'item-avatar\': formData.avatar}"><i ng-if="!formData.avatar" class="item-image" ng-class="{\'ion-person\': formData.uid, \'ion-email\': !formData.uid}"></i> <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i><h4>{{type == \'inbox\' ? \'MESSAGE.VIEW.SENDER\': \'MESSAGE.VIEW.RECIPIENT\'|translate}} <a class="positive" ui-sref="app.wot_identity({pubkey: (type == \'inbox\') ? formData.issuer : formData.recipient, uid: formData.name||formData.uid})"><span ng-if="formData.uid"><i class="ion-person"></i> {{formData.name||formData.uid}} </span><span ng-if="!formData.uid" class="gray"><i class="ion-key gray"></i> {{formData.name||(formData.issuer|formatPubkey)}}</span></a></h4><h5 class="gray visible-xs visible-sm"><i class="ion-clock"></i> {{formData.time | formatDate}}</h5></div><ion-item class="visible-xs visible-sm"><h1 class="title" ng-bind-html="formData.title"></h1></ion-item><ion-item><p ng-bind-html="formData.html"></p><div class="padding gray" ng-if="!formData.content" translate="">MESSAGE.VIEW.NO_CONTENT</div></ion-item></div></div></div></ion-content><button id="fab-view-message-reply" class="button button-fab button-fab-bottom-right button-calm icon ion-reply visible-xs visible-sm spin" ng-click="showReplyModal()"></button></ion-view>'),e.put("plugins/es/templates/message/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.VIEW.DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/edit_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">REGISTRY.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="hero"><div class="content"><i class="avatar" ng-class="avatarClass" ng-style="avatarStyle"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="dark"><span ng-if="!loading && formData.title">{{formData.title}}</span> <span ng-if="!loading && !id && !formData.title" translate="">REGISTRY.EDIT.TITLE_NEW</span></h3><h4 class="dark"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><form name="recordForm" novalidate="" ng-submit="save()"><div class="list {{::motion.ionListClass}}" ng-init="setForm(recordForm)"><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">REGISTRY.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="registry-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'REGISTRY.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><div class="item item-icon-right ink" ng-if="loading || formData.type===\'company\' || formData.type===\'shop\'" ng-class="{\'item-input-error\': form.$submitted && !formData.category.id, \'done in\': !loading}" ng-click="showCategoryModal()"><span translate="">REGISTRY.CATEGORY</span> <span class="badge badge-royal">{{formData.category.name | formatCategory}}</span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></div><input type="hidden" name="category" ng-model="formData.category.id" required-if="formData.type==\'company\' || formData.type==\'shop\'"><div class="form-errors" ng-if="form.$submitted && form.category.$error" ng-messages="form.category.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ng-include src="\'plugins/es/templates/common/edit_position.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="item item-divider" translate="">REGISTRY.TECHNICAL_DIVIDER</div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_PUBKEY</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_PUBKEY_HELP\'|translate}}" ng-model="formData.pubkey"></div></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/lookup_form.html",'<form ng-submit="doSearch()"><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'REGISTRY.SEARCH.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""></div></div><ng-include src="::\'plugins/es/templates/common/item_location_search.html\'" ng-if="entered && options.location.show && (!search.geoPoint || smallscreen)" ng-controller="ESSearchPositionItemCtrl"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form_options.html\'"></ng-include></form><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px"><div class="pull-left ng-hide" ng-show="!search.loading && search.results"><ng-if ng-if="search.lastRecords"><h4 translate="">REGISTRY.SEARCH.LAST_RECORDS</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT\'|translate:{count: search.total} }}</span></small></ng-if><ng-if ng-if="!search.lastRecords"><h4 translate="">COMMON.RESULTS_LIST</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT\'|translate:{count: search.total} }}</span></small></ng-if></div></div><div class="center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding assertive" ng-if="!search.loading && search.results.length===0" translate="">COMMON.SEARCH_NO_RESULT</div>'),e.put("plugins/es/templates/registry/lookup_form_options.html",'<div class="item item-icon-left item-input item-select stable-bg" ng-if="search.advanced && options.location.show"><i class="icon ion-arrow-resize gray"></i> <span class="input-label item-icon-left-padding" translate="">LOCATION.DISTANCE</span><label><select ng-model="search.geoDistance" class="col-border-left" ng-options="i as (geoDistanceLabels[i].labelKey | translate:geoDistanceLabels[i].labelParams ) for i in geoDistances track by i"></select></label></div>'),e.put("plugins/es/templates/registry/lookup_lg.html",'<ion-view left-buttons="leftButtons"><ion-nav-title>{{\'REGISTRY.SEARCH.TITLE\' | translate}}</ion-nav-title><ion-content class="lookupForm padding no-padding-xs no-padding-sm"><ng-include src="::\'plugins/es/templates/wot/lookup_lg_extend.html\'" ng-init="enable= true; showNewPageButton=true;"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list_lg.html\'"></ng-include></ion-content><button id="fab-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="showNewPageModal()"></button></ion-view>'),e.put("plugins/es/templates/registry/lookup_list.html",'<ion-list class="{{::motion.ionListClass}}" ng-if="!search.loading && search.results"><div class="item item-avatar item-icon-right item-border-large ink" ng-repeat="item in search.results" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><i ng-if="::!item.avatar" class="item-image icon cion-page-{{::item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4 class="gray" ng-if="::item.time && search.lastRecords"><i class="ion-clock"></i> {{::item.time | formatFromNow}}</h4><h4 class="gray" ng-if="!search.lastRecords"><i class="cion-page-{{::item.type}}"></i> <span ng-if="item.category">{{::item.category.name}}</span> <span ng-if="!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><i class="icon ion-ios-arrow-right"></i></div></ion-list>'),e.put("plugins/es/templates/registry/lookup_list_lg.html",'<div class="list {{::motion.ionListClass}}" ng-if="!search.loading && search.results && search.results.length > 0"><a ng-repeat="item in search.results" class="item item-record item-border-large ink padding-xs" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><div class="row row-record"><div class="col item-text-wrap item-avatar-left-padding" ng-class="::{\'item-avatar\': item.avatar || item.type}"><i class="item-image icon cion-page-{{::item.type}}" ng-if="::!item.avatar"></i> <i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="::item.avatar"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4><span class="gray" ng-if="::item.time && search.lastRecords"><b class="ion-clock"></b> {{::item.time | formatFromNow}} </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4><span ng-if="::item.picturesCount > 1" class="badge badge-balanced badge-picture-count">{{::item.picturesCount}}&nbsp;<i class="icon ion-camera"></i></span></div><div class="col hidden-xs"><h4 class="text-wrap"><span class="visible-sm"><b class="ion-flag"></b><ng-if ng-if="::item.category">{{::item.category.name|truncText:50}}</ng-if><ng-if ng-if="::!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</ng-if></span><span class="gray text-italic" ng-if="::item.description"><b class="ion-quote"></b> <span ng-bind-html="::item.description|truncText:500" ng-if="::item.description"></span></span></h4></div></div></a></div><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/registry/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showNewPageModal();"><i class="icon ion-plus"></i> <span translate>REGISTRY.BTN_NEW</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/lookup_popover_filters.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="doGetLastRecords()"><i class="icon ion-clock"></i> {{\'REGISTRY.SEARCH.BTN_LAST_RECORDS\' | translate}} </a><a class="item item-icon-left ink" ng-click="toggleAdvanced();"><i class="icon ion-android-checkbox-outline-blank" ng-show="!search.advanced"></i> <i class="icon ion-android-checkbox-outline" ng-show="search.advanced"></i> <span translate>REGISTRY.SEARCH.POPOVER_FILTERS.BTN_ADVANCED_SEARCH</span></a></div></ion-content></ion-popover-view>'),
-e.put("plugins/es/templates/registry/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>{{getParameters().title||\'REGISTRY.TYPE.TITLE\'|translate}}</h1></ion-header-bar><ion-content class="lookupForm"><div class="list padding"><h3 translate>REGISTRY.TYPE.SELECT_TYPE</h3><button class="button button-block button-stable icon-left cion-page-shop" ng-click="closeModal(\'shop\')" translate>REGISTRY.TYPE.ENUM.SHOP</button> <button class="button button-block button-stable icon-left cion-page-association" ng-click="closeModal(\'association\')" translate>REGISTRY.TYPE.ENUM.ASSOCIATION</button> <button class="button button-block button-stable icon-left cion-page-company" ng-click="closeModal(\'company\')" translate>REGISTRY.TYPE.ENUM.COMPANY</button> <button class="button button-block button-stable icon-left cion-page-institution" ng-click="closeModal(\'institution\')" translate>REGISTRY.TYPE.ENUM.INSTITUTION</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/registry/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>REGISTRY.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="canEdit" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'COMMON.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/view_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="hero"><div class="content" ng-if="!loading"><i class="avatar cion-page-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" ng-style="{{avatarStyle}}" ng-if="formData.avatar"></i><h3><span class="dark" ng-bind-html="formData.title"></span></h3><h4>&nbsp;</h4></div><h4 class="content dark" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list animate-fade-slide-in item-text-wrap no-padding-xs no-padding-sm"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.wot_lookup.tab_registry({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.wot_lookup.tab_registry({type:formData.type})"><i class="cion-page-{{formData.type}}"></i> {{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="registry-share-anchor-{{id}}"></a><div class="item"><h2 trust-as-html="formData.description"></h2></div><div class="item" ng-if="formData.category || formData.address"><h4 ng-if="formData.category"><span class="gray" translate="">REGISTRY.VIEW.CATEGORY</span> <a class="positive" ng-if="formData.category" ui-sref="app.wot_lookup.tab_registry({category:formData.category.id})"><span ng-bind-html="formData.category.name"></span></a></h4><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_system" href="https://www.openstreetmap.org/search?query={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></div><ng-if ng-if="formData.socials && formData.socials.length>0"><div class="item item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a ng-click="openLink($event, social.url, social.type)">{{social.url}}</a></h2></div></ng-if><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/registry/view_wallet_pages.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'REGISTRY.MY_PAGES\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">REGISTRY.NO_PAGE</div><ng-include src="\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content><button id="fab-wallet-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg spin" ng-click="showNewPageModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("plugins/es/templates/notification/list_notification.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/notification/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/notification/popover_notification.html",""),e.put("plugins/es/templates/notification/view_notifications.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/settings/plugin_settings.html",'<ion-view left-buttons="leftButtons" class="settings"><ion-nav-title translate="">ES_SETTINGS.PLUGIN_NAME</ion-nav-title><ion-content scroll="true"><div class="item item-toggle dark"><div class="input-label" translate="">ES_SETTINGS.ENABLE_TOGGLE</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.ENABLE_REMOTE_STORAGE</div><h4 class="gray text-wrap" ng-bind-html="\'ES_SETTINGS.ENABLE_REMOTE_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useRemoteStorage" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right item-text-wrap visible-xs visible-sm" ng-click="formData.enable && changeEsNode()" ng-disabled="!formData.enable"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.PEER</div><ng-if ng-if="isFallbackNode"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{server}}</div></ng-if><div class="badge" ng-class="{\'badge-balanced\': formData.enable, \'badge-stable\': !formData.enable}" ng-if="!isFallbackNode">{{server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><span class="item item-divider" translate="">ES_SETTINGS.NOTIFICATIONS.DIVIDER</span><span class="item gray item-text-wrap" translate="">ES_SETTINGS.NOTIFICATIONS.HELP_TEXT</span><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_RECEIVED</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_RECEIVED</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><cs-extension-point name="common"></cs-extension-point></ion-content></ion-view>'),e.put("plugins/es/templates/settings/settings_extend.html",'<div class="item item-text-wrap item-icon-right ink" ui-sref="app.es_settings"><div class="input-label ng-binding" translate>ES_SETTINGS.PLUGIN_NAME</div><h4 class="gray" translate>ES_SETTINGS.PLUGIN_NAME_HELP</h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/subscription/edit_subscriptions.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'SUBSCRIPTION.EDIT.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">SUBSCRIPTION.NO_SUBSCRIPTION</div><div class="row no-padding"><div class="col list {{::motion.ionListClass}} item-border-large"><ng-repeat ng-repeat="subscriptions in search.results | filter: { type: \'email\' }" ng-include="\'plugins/es/templates/subscription/item_\' + subscriptions.type.toLowerCase() + \'_subscription.html\'">></ng-repeat></div></div></ion-content><button id="fab-add-subscription-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="addSubscription()"></button></ion-view>'),e.put("plugins/es/templates/subscription/item_email_subscription.html",'<div class="item item-avatar"><i class="item-image icon ion-email"></i><h3>{{\'SUBSCRIPTION.TYPE.ENUM.\' + subscriptions.type.toUpperCase() | translate}}</h3><h4 class="gray">{{\'SUBSCRIPTION.EDIT.PROVIDER\'|translate}} <a ui-sref="app.wot_identity({pubkey: subscriptions.recipient, uid: subscriptions.uid})"><span ng-class="{\'positive\': subscriptions.uid, \'dark\': !subscriptions.uid}" ng-if="subscriptions.name||subscriptions.uid"><i class="ion-person" ng-if="subscriptions.uid"></i> {{subscriptions.name||subscriptions.uid}} </span><span class="gray" ng-if="!subscriptions.uid"><i class="ion-key"></i> {{subscriptions.recipient | formatPubkey}}</span></a></h4><div class="item-note text-right"><span ng-repeat="item in subscriptions.items">{{item.content.email}} <a class="ion-trash-a gray padding-left" ng-click="deleteSubscription(item)"></a> <a class="ion-edit gray padding-left" ng-click="editSubscription(item)"></a><br></span></div></div>'),e.put("plugins/es/templates/subscription/modal_email.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>SUBSCRIPTION.MODAL_EMAIL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSubmit()"></button></ion-header-bar><ion-content scroll="true"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>SUBSCRIPTION.MODAL_EMAIL.HELP</h4></div><form name="subscriptionForm" novalidate="" ng-submit="doSubmit()"><div class="list" ng-init="setForm(subscriptionForm)"><label class="item item-input" ng-class="{\'item-input-error\': form.$submitted && (form.email.$invalid || form.email.$error)}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.EMAIL_LABEL</span> <input name="email" type="text" placeholder="{{\'SUBSCRIPTION.MODAL_EMAIL.EMAIL_HELP\' | translate}}" ng-model="formData.content.email" ng-minlength="3" required email></label><div class="form-errors" ng-if="form.$submitted && (form.email.$invalid || form.email.$error)" ng-messages="form.email.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="email"><span translate="ERROR.FIELD_NOT_EMAIL"></span></div></div><label class="item item-input item-select" ng-class="{\'item-input-error\': form.$submitted && !formData.content.frequency}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_LABEL</span><select name="frequency" ng-model="formData.content.frequency" style="height: 46px;margin-top: 1px"><option value="weekly" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_WEEKLY</option><option value="daily" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_DAILY</option></select></label><div class="form-errors" ng-if="form.$submitted && !formData.content.frequency"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-input item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.recipient}" ng-click="showNetworkLookup()" style="height: 67px"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.PROVIDER</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-class="{\'badge-royal\': recipient.uid, \'badge-stable\': !recipient.uid}" ng-show="recipient && (recipient.name||recipient.uid)"><i class="ion-person" ng-if="recipient.uid"></i> {{recipient.name||recipient.uid}} </span><span class="badge badge-secondary animate-fade-in animate-show-hide ng-hide" ng-show="formData.recipient"><i class="ion-key"></i> {{formData.recipient | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.recipient"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit">{{\'COMMON.BTN_ADD\' | translate}}</button></div></form></ion-content></ion-modal-view>'),e.put("plugins/es/templates/user/edit_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="removeProfile()"><i class="icon ion-trash-a"></i> {{\'PROFILE.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/user/edit_profile.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear button-assertive ion-trash-a visible-xs visible-sm" ng-click="removeProfile()" ng-if="existing"></button> <button class="button button-icon button-clear ion-android-done visible-xs visible-sm" ng-click="submitAndSaveAndClose()"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content"><i class="avatar" ng-style="avatarStyle" ng-class="{\'avatar-wallet\': !loading && !avatar && walletData && !walletData.isMember, \'avatar-member\': !loading && !avatar && walletData.isMember}"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="light"><ng-if ng-if="!loading && !formData.title && walletData && walletData.isMember">{{walletData.uid}}</ng-if><ng-if ng-if="!loading && !formData.title && walletData && !walletData.isMember">{{::walletData.pubkey | formatPubkey}}</ng-if><ng-if ng-if="!loading && formData.title">{{formData.title}}</ng-if></h3><h4 class="light"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col"><form name="profileForm" novalidate="" ng-submit="saveAndClose()"><div class="list item-text-wrap {{::motion.ionListClass}}" ng-init="setForm(profileForm)"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate="">PROFILE.HELP.WARNING_PUBLIC_DATA</h4></div><div class="item item-divider">{{\'PROFILE.GENERAL_DIVIDER\' | translate}}</div><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label">{{\'PROFILE.TITLE\' | translate}}</span> <input type="text" name="title" placeholder="{{\'PROFILE.TITLE_HELP\' | translate}}" id="profile-name" ng-model="formData.title" ng-model-options="{ debounce: 350 }" ng-maxlength="50" required></ion-item><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 50}"></span></div></div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label" style="width: 100%">{{\'PROFILE.DESCRIPTION\' | translate}}</span><textarea placeholder="{{\'PROFILE.DESCRIPTION_HELP\' | translate}}" ng-model="formData.description" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><ng-include src="\'plugins/es/templates/common/edit_position.html\'" ng-controller="ESPositionEditCtrl as ctrl"></ng-include></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="list item-text-wrap {{::motion.ionListClass}}"><div class="item item-divider">{{\'PROFILE.TECHNICAL_DIVIDER\' | translate}}</div><ion-item class="item-icon-left" ng-if="walletData && walletData.uid"><span translate="">COMMON.UID</span> <span class="badge badge-stable">{{::walletData.uid}}</span></ion-item><ion-item class="item-icon-left item-icon-right item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click=""><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><p class="gray">{{walletData.pubkey}}</p></ion-item></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/user/items_profile.html",'<div ng-if="!formData.profile" class="item gray" translate>PROFILE.NO_PROFILE_DEFINED</div><div class="item" ng-if="formData.profile && formData.name && showName"><span class="gray" translate>PROFILE.TITLE</span><h3>{{formData.name}}</h3></div><div class="item item-text-wrap" ng-if="formData.profile.description"><span class="gray" translate>PROFILE.DESCRIPTION</span><h3 trust-as-html="formData.profile.description"></h3></div><div class="item" ng-if="formData.profile.address || formData.profile.city" copy-on-click="{{formData.profile.address ? formData.profile.address + \'&#10;\' : \'\'}}{{formData.profile.city}}"><span class="gray" translate>LOCATION.LOCATION_DIVIDER</span><h3><span class="text-keep-lines" ng-if="formData.profile.address">{{formData.profile.address}}<br></span>{{formData.profile.city}}</h3></div><div class="item" ng-if="formData.profile.socials && formData.profile.socials.length" ng-controller="ESSocialsViewCtrl"><span class="gray" translate>PROFILE.SOCIAL_NETWORKS_DIVIDER</span><div class="list no-padding"><ion-item ng-repeat="social in formData.profile.socials | filter:filterFn track by social.url " id="social-{{::social.url|formatSlug}}" class="item-icon-left item-text-wrap no-padding-bottom ink" on-tap="openSocial($event, social)"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h4><a on-tap="openSocial($event, social)" href="{{::social.url}}" target="_blank">{{::social.url}}</a></h4></ion-item></div></div>'),e.put("plugins/es/templates/wallet/item_wallet_extend.html",'<h4 class="dark" ng-if=":state:enable && wallet.id!=\'default\'"><a ng-if="walletData.invitations.unreadCount"><i class="dark ion-person-stalker"></i> {{walletData.invitations.unreadCount}} </a><a ng-if="walletData.messages.unreadCount" ui-sref="app.user_messages_by_id.tab_inbox({id: wallet.id})"><i class="dark ion-email"></i> {{walletData.messages.unreadCount}} </a><a ng-if="walletData.notifications.unreadCount" ui-sref="app.view_notifications_by_id({id: wallet.id})"><i class="dark ion-android-notifications"></i> {{walletData.notifications.unreadCount}}</a></h4>'),e.put("plugins/es/templates/wallet/view_wallet_extend.html",'<ng-if ng-if=":state:enable"><div class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></i> </span><a class="badge button button-text button-small button-small-padding" ng-if="isDefaultWallet" ui-sref="app.edit_profile"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!isDefaultWallet" ui-sref="app.edit_profile_by_id({id: walletId})"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span></a></div><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=true"></ng-include><div class="item item-divider item-divider-top-border"><span>{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showSubscriptionHelp=!showSubscriptionHelp" class="icon positive ion-ios-help-outline" title="{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showSubscriptionHelp"><small translate>SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP</small></div><div ng-if="!formData.subscriptions.count" class="item gray" translate>SUBSCRIPTION.NO_SUBSCRIPTION</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-divider item-divider-top-border"><span>{{\'REGISTRY.WALLET.REGISTRY_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showPagesHelp=!showPagesHelp" class="icon positive ion-ios-help-outline" title="{{\'REGISTRY.WALLET.REGISTRY_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.pages.count" ng-click="showNewPageModal()"><i class="icon ion-edit"></i> <span translate>REGISTRY.BTN_NEW</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showPagesHelp"><small translate>REGISTRY.WALLET.REGISTRY_HELP</small></div><div ng-if="!formData.pages.count" class="item gray" translate>REGISTRY.NO_PAGE</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && isDefaultWallet" ui-sref="app.wallet_pages"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && !isDefaultWallet" ui-sref="app.wallet_pages_by_id({id: walletId})"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a></ng-if>'),e.put("plugins/es/templates/wot/lookup_extend.html",'<ion-tab ng-if=":state:enable" title="{{\'MENU.REGISTRY\'|translate}}" icon="ion-social-buffer" ui-sref="app.wot_lookup.tab_registry"><ion-nav-view name="tab_registry"></ion-nav-view></ion-tab>'),
-e.put("plugins/es/templates/wot/lookup_item_group.html",'<i ng-if="::!item.avatar" class="item-image icon ion-android-people"></i> <i ng-if="::!item.avatar" class="item-image icon-secondary ion-android-lock" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_item_page.html",'<i ng-if="::!item.avatar" class="item-image icon cion-page-{{item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><span class="gray" ng-if="::item.city"><i class="ion-location"></i> {{::item.city|truncText}} </span><span ng-if="::item.city && item.type">|</span> <span ng-if="item.type"><i class="cion-page-{{item.type}}"></i> {{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_lg_extend.html",'<div class="buttons-tabs" ng-if=":state:enable"><div class="pull-right"><div class="button button-tab dark" title="{{\'REGISTRY.BTN_SHOW_WOT_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/lg" ui-sref="app.wot_lookup_lg"><i class="icon ion-person-stalker"></i> {{\'REGISTRY.BTN_SHOW_WOT\' | translate}}</div><a class="button button-tab ink dark" title="{{\'REGISTRY.BTN_SHOW_PAGES_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/page" ui-sref="app.registry_lookup_lg"><i class="icon ion-social-buffer"></i> {{\'REGISTRY.BTN_SHOW_PAGES\' | translate}}</a></div><div class="pull-right" ng-if="showNewPageButton">&nbsp;</div></div>'),e.put("plugins/es/templates/wot/popover_certification_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="canCertify" ng-click="certify()"><i class="icon ion-ribbon-b"></i> {{\'WOT.BTN_CERTIFY\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey) && formData.isMember" ng-click="askCertification()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATION\' | translate}} </a><a class="item item-icon-left ink" ng-if="isUserPubkey(formData.pubkey)" ng-click="showAskCertificationModal()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATIONS_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey)" ng-click="showSuggestCertificationModal()"><i class="icon-secondary ion-person-stalker" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 37px; top: -4px"></b> {{\'WOT.BTN_SUGGEST_CERTIFICATIONS_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/wot/view_certifications_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showCertificationActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showCertificationActionsPopover($event)" title="{{\'COMMON.POPOVER_ACTIONS_TITLE\' | translate}}"></button></ng-if>'),e.put("plugins/es/templates/wot/view_identity_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-compose" ng-click="showNewMessageModal()" title="{{\'MESSAGE.BTN_WRITE\' | translate}}"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons-top-fab\'"><button id="fab-compose-{{:rebind:formData.uid}}" class="button button-fab button-fab-top-left button-fab-hero mini button-stable spin" style="left: 88px" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><span class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <a style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline ink" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></a></span></span><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=false;"></ng-include></ng-if>'),e.put("plugins/graph/templates/account/graph_balance.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="account-balance" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/account/graph_certifications.html",'\n    <div class="padding-left padding-right">\n      <canvas id="account-certifications" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n'),e.put("plugins/graph/templates/account/graph_sum_tx.html",'<div class="row responsive-sm" ng-if="!loading">\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX input chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="inputChart.data.length"\n       translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n    <canvas id="chart-received-pie" class="chart-pie"\n            chart-data="inputChart.data"\n            chart-labels="inputChart.labels"\n            chart-colors="inputChart.colors"\n            chart-click="onInputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX output chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="outputChart.data.length"\n       translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n    <canvas id="chart-sent-pie" class="chart-pie"\n            chart-data="outputChart.data"\n            chart-labels="outputChart.labels"\n            chart-colors="outputChart.colors"\n            chart-click="onOutputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n</div>\n'),e.put("plugins/graph/templates/account/view_identity_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_identity_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n\n\n    <div class="list" >\n\n      \x3c!--  - - - - Balance - - - - --\x3e\n      <ng-controller ng-controller="GpAccountBalanceCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/account/graph_balance.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_sum_tx.html\'"\n         ng-controller="GpAccountSumTxCtrl">\n    </div>\n\n    \x3c!--  - - - - WOT - - - -\n    <div class="item item-divider" translate>\n      GRAPH.ACCOUNT.WOT_DIVIDER\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_certifications.html\'"\n         ng-controller="GpAccountCertificationCtrl"\n         ng-init="setSize(350, 1000)">\n    </div>--\x3e\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/account/view_wallet_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showWalletStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/blockchain/graph_block_issuers.html",'\n    <div class="row responsive-lg">\n\n      \x3c!-- bar --\x3e\n      <div class="col col-75">\n        <canvas id="bar" class="chart-bar"\n                height="{{height}}" width="{{width}}"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-options="barOptions"\n                chart-click="onChartClick">\n        </canvas>\n      </div>\n\n      \x3c!-- pie --\x3e\n      <div class="col col-25 padding-top">\n        <canvas id="blocksByIssuer-pie" class="chart-pie"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-click="onChartClick">\n        </canvas>\n\n        <div class="gray padding-top text-center">\n          <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n        </div>\n      </div>\n    </div>\n'),e.put("plugins/graph/templates/blockchain/graph_tx_count.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="tx-line" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/blockchain/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n\n      \x3c!-- TX count --\x3e\n      <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n\n      \x3c!-- Blocks issuer --\x3e\n      <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n        <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n             ng-init="setSize(300, 750)">\n        </div>\n\n      </ng-controller>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/common/graph_range_bar.html",'\n  <div class="range range-positive no-padding-left no-padding-right">\n    <a\n      class="button button-stable button-clear no-padding pull-left"\n      ng-click="goPreviousRange($event)">\n      <i class="icon ion-chevron-left"></i>\n    </a>\n    <input type="range"\n           ng-model="formData.timePct"\n           name="timePct"\n           min="0" max="100"\n           value="{{formData.timePct}}"\n           ng-change="onRangeChanged();"\n           ng-model-options="{ debounce: 250 }">\n    <a\n      class="button button-stable button-clear no-padding pull-right"\n      ng-click="goNextRange($event)">\n      <i class="icon ion-chevron-right"></i>\n    </a>\n  </div>\n'),e.put("plugins/graph/templates/common/popover_range_actions.html",'<ion-popover-view class="has-header popover-graph-currency">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      \x3c!-- scale --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n      \x3c!-- duration divider --\x3e\n      <div class="item item-divider">\n        {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n      </div>\n\n      \x3c!-- duration: hour --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'hour\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: day --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'day\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: month --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'month\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/graph_du.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar" class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="showBlock">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_members_count.html",'  <canvas id="membersCount-bar" class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-options="options"\n          chart-dataset-override="datasetOverride"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_monetary_mass.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/popover_monetary_mass_actions.html",'<ion-popover-view class="fit has-header">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/tab_blocks_extend.html",'\x3c!-- buttons --\x3e\n<ng-if ng-if="enable && extensionPoint === \'buttons\'">\n  <div class="item item-divider">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n'),e.put("plugins/graph/templates/currency/view_currency_extend.html",'\n\x3c!-- section actual parameters --\x3e\n<ng-if ng-if="enable && extensionPoint === \'parameters-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n         ng-controller="GpCurrencyMonetaryMassCtrl"\n         ng-init="displayShareAxis=false;">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'wot-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n         ng-controller="GpCurrencyMembersCountCtrl">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'network-actual\'" >\n\n  <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n       ng-if="!smallscreen"\n       ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n       ng-controller="GpBlockchainIssuersCtrl">\n  </div>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n'),e.put("plugins/graph/templates/currency/view_stats_lg.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n\n\n    <div class="list" >\n\n      \x3c!-- Monetary mass --\x3e\n      <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs" ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n\n        <div ng-if="!loading"\n             class="item item-toggle dark no-border text-right">\n          <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n          <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n            <input type="checkbox" ng-model="formData.useRelative">\n            <div class="track">\n              <div class="handle"></div>\n            </div>\n          </label>\n        </div>\n      </ng-controller>\n\n      \x3c!-- DU --\x3e\n      <ng-controller ng-controller="GpCurrencyDUCtrl" >\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n      </ng-controller>\n\n      \x3c!-- Member count  --\x3e\n      <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n      <div class="item no-padding-xs"\n           ng-if="!loading"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/currency/view_wot_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n\n  <ion-content scroll="true" >\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <ng-include\n      ng-if="!loading"\n      src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n  </ion-content>\n  </ion-view>\n'),e.put("plugins/graph/templates/docstats/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n          class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options"\n          chart-click="onChartClick">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/docstats/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      \x3c!-- Doc stat --\x3e\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/docstats/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/network/view_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="enable && extensionPoint === \'buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.blockchain_stats" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n    ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n    <span class="badge"\n          ng-if="!loading"\n          ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n      {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n    </span>\n    <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_peer_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n      \x3c!--  - - - - TX divider - - - - --\x3e\n      <div class="item item-divider hidden-xs hidden-sm" translate>\n        GRAPH.BLOCKCHAIN.TX_DIVIDER\n      </div>\n\n      <div class="item no-padding-xs"\n           ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n           ng-init="setSize(350, 1000)">\n      </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/synchro/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="synchro-chart-{{chart.id}}"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/synchro/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/synchro/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/map/templates/network/item_search_tooltip.html","<a href=\"#\">\n  {{peer.dns || peer.server}}\n  <span class=\"{{peer.uid ? 'positive' : 'gray'}}\">\n    <i class=\"icon {{peer.uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{peer.uid ? (peer.name||peer.uid) : (peer.pubkey|formatPubkey) }}\n  </span>\n  <span class=\"gray\">{{peer.ipv4 ? (peer.ipv4 + ':' + peer.port) : ''}}</span>\n  <span class=\"{{peer.bma.useSsl  ? '' : 'ng-hide'}}\"><i class=\"ion-locked\"></i> <small>SSL</small></span>\n</a>\n"),e.put("plugins/map/templates/network/lookup_extend.html",'\x3c!-- FIXME issue #755 - https://git.duniter.org/clients/cesium-grp/cesium/issues/755\n<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.NETWORK.LOOKUP.BTN_MAP_HELP\' | translate}}"\n        ui-sref="app.view_network_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.NETWORK.LOOKUP.BTN_MAP\' | translate}}\n</a>\n --\x3e\n'),
-e.put("plugins/map/templates/network/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-network">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.NETWORK.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             center="map.center"\n             markers="map.markers"\n             layers="map.layers">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/registry/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{'cion-page-' + type}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"gray\">\n    {{pubkey ? (pubkey|formatPubkey) : ''}}\n  </span>\n</a>\n"),e.put("plugins/map/templates/registry/lookup_lg_extend.html",'<a class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.REGISTRY.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_registry_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.REGISTRY.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/registry/popup_marker.html",'<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n     ng-show="!loadingMarker"\n     ui-sref="app.view_page({id: formData.id, title: formData.name})">\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}}"></i>\n  <i ng-if="!formData.avatar" class="item-image icon cion-page-{{::formData.type}}"></i>\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{::formData.name}}\n    </h2>\n    <h4 ng-if="::formData.category" class="gray" title="{{::formData.category.name}}">\n      <b class="ion-flag"></b> {{::formData.category.name}}\n    </h4>\n    <h4 ng-if="::formData.city" class="gray" title="{{::formData.city}}">\n      <b class="ion-location"></b> {{::formData.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.description">\n      &nbsp;\n    </a>\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="::formData.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/registry/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-registry">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.REGISTRY.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-registry" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/settings/es_settings_extend.html",'\n\x3c!--<span class="item item-divider" translate>MAP.SETTINGS.MAP_DIVIDER</span>\n\n<label class="item item-toggle dark item-text-wrap">\n  <span translate>MAP.SETTINGS.ENABLE_GOOGLE_API</span>\n  <h4 class="gray" translate>MAP.SETTINGS.ENABLE_GOOGLE_API_HELP</h4>\n  <div class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.enableGoogleApi">\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </div>\n</label>\n\n<ion-item class="item-input"\n          ng-if="!$root.config.plugins.es.googleApiKey"\n          ng-class="{\'item-input-error\': formData.enableGoogleApi && !formData.googleApiKey}">\n  <div class="input-label col-33">\n    <span class="" ng-class="{\'gray\': !formData.enableGoogleApi}"translate>MAP.SETTINGS.GOOGLE_API_KEY</span>\n    <h4>\n      <a ng-click="openLink($event, \'https://console.developers.google.com/apis/credentials/key\')" translate>MAP.SETTINGS.BTN_GOOGLE_API</a>\n      <span class="gray"> ({{\'MAP.SETTINGS.BTN_GOOGLE_API_WARNING\'|translate}})</span>\n    </h4>\n  </div>\n  <input type="text"\n         placeholder="{{\'MAP.SETTINGS.GOOGLE_API_KEY_PLACEHOLDER\' | translate}}"\n         ng-model="formData.googleApiKey"\n         ng-if="formData.enableGoogleApi">\n</ion-item>\n<div class="form-errors"\n     ng-show="formData.enableGoogleApi && !formData.googleApiKey">\n  <div class="form-error">\n    <span translate="ERROR.FIELD_REQUIRED"></span>\n  </div>\n</div>--\x3e\n'),e.put("plugins/map/templates/user/edit_profile_extend.html",'<div class="item no-padding hidden-xs hidden-sm {{ionItemClass}}" ng-if="formData.geoPoint && formData.geoPoint.lat && formData.geoPoint.lon">\n  <leaflet id="{{::mapId}}"\n           height="250px"\n           center="map.center"\n           markers="map.markers"\n           defaults="map.defaults">\n  </leaflet>\n</div>\n'),e.put("plugins/map/templates/wot/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{pending ? 'ion-clock': (type ? 'cion-page-' + type : '')}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"{{uid ? 'positive' : 'gray'}}\">\n    <i class=\"{{uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{uid ? uid : (pubkey|formatPubkey) }}\n  </span>\n</a>\n"),e.put("plugins/map/templates/wot/lookup_lg_extend.html",'<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.WOT.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_wot_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.WOT.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/wot/popup_marker.html",'\n<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n   ng-show="!loadingMarker"\n   ui-sref="app.wot_identity({pubkey: formData.pubkey, uid: formData.uid})">\n\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i>\n  <i ng-if="!formData.avatar && formData.uid" class="item-image icon ion-person"></i>\n  <i ng-if="!formData.avatar && !formData.uid" class="item-image icon ion-card"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{formData.name}}\n    </h2>\n    <h4>\n      <span ng-if="formData.uid" class="positive">\n        <b class="ion-person"></b>\n        {{formData.uid}}\n      </span>\n      <span class="gray" title="{{formData.pubkey}}"><b class="ion-key"></b> {{formData.pubkey|formatPubkey}}</span>\n      <span class="assertive" ng-if="!formData.isMember">\n        {{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}\n      </span>\n    </h4>\n    <h4 ng-if="formData.profile.city" class="gray" title="{{formData.profile.city}}">\n      <b class="ion-location"></b> {{formData.profile.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.profile.description">\n      &nbsp;\n    </a>\n  </div>\n  <div style="font-size: 18px;" class="pull-right gray">\n    \x3c!-- share --\x3e\n    <a class="icon ion-android-share-alt "\n       ng-click="showSharePopover($event)"\n       title="{{\'COMMON.BTN_SHARE\' | translate}}">&nbsp;</a>\n    \x3c!-- certify --\x3e\n    <a class="icon ion-ribbon-b"\n       ng-click="certify()"\n       title="{{\'WOT.BTN_CERTIFY\' | translate}}"\n       ng-hide="!canCertify">&nbsp;</a>\n    \x3c!-- compose message --\x3e\n    <a class="icon ion-compose"\n       ng-click="showNewMessageModal()"\n       title="{{\'MESSAGE.BTN_WRITE\' | translate}}">&nbsp;</a>\n    \x3c!-- transfer --\x3e\n    <a class="icon ion-card"\n       ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.name||formData.uid})"\n       title="{{\'COMMON.BTN_SEND_MONEY\' | translate}}">&nbsp;</a>\n\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="formData.profile.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/wot/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-wot">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.WOT.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-wot" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/message/tabs/tab_list.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'),e.put("plugins/es/templates/registry/tabs/tab_registry.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/graph/templates/currency/tabs/tab_blocks_stats.html",'<ion-view>\n  <ion-content>\n    <div\n       ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n       ng-controller="GpBlockchainTxCountCtrl"\n       ng-init="setSize(500,700,false)">\n      </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_network_stats.html",'<ion-view>\n  <ion-content>\n\n    <div class="list">\n      <div class="item"\n         ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n         ng-controller="GpBlockchainIssuersCtrl"\n           ng-init="setSize(500,700,true)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_parameters_stats.html",'<ion-view>\n  <ion-content>\n    <div class="list no-padding-xs no-padding-sm">\n\n      <ng-container ng-controller="GpCurrencyMonetaryMassCtrl">\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        \x3c!-- Monetary mass --\x3e\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n\n      \x3c!-- DU --\x3e\n      <ng-container ng-controller="GpCurrencyDUCtrl">\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_wot_stats.html",'<ion-view>\n  <ion-content>\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list no-padding">\n      <div class="item no-padding-top"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(600,700,false)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n')}]),angular.module("cesium.es.plugin",["cesium.es.services","cesium.es.app.controllers","cesium.es.common.controllers","cesium.es.settings.controllers","cesium.es.currency.controllers","cesium.es.wot.controllers","cesium.es.wallet.controllers","cesium.es.profile.controllers","cesium.es.message.controllers","cesium.es.notification.controllers","cesium.es.blockchain.controllers","cesium.es.network.controllers","cesium.es.registry.controllers","cesium.es.group.controllers","cesium.es.invitation.controllers","cesium.es.subscription.controllers","cesium.es.document.controllers"]),angular.module("cesium.es.services",["cesium.es.http.services","cesium.es.comment.services","cesium.es.social.services","cesium.es.settings.services","cesium.es.crypto.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.message.services","cesium.es.modal.services","cesium.es.blockchain.services","cesium.es.registry.services","cesium.es.group.services","cesium.es.wallet.services","cesium.es.invitation.services","cesium.es.subscription.services","cesium.es.wot.services","cesium.es.tx.services","cesium.es.geo.services","cesium.es.document.services"]),angular.module("cesium.es.comment.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.profile.services"]).factory("esComment",["$rootScope","$q","UIUtils","BMA","esHttp","csWallet","csWot",function(e,t,n,i,a,o,r){"ngInject";function s(n){var i={commons:["issuer","creationTime","time","message","reply_to"]},s={index:n,fields:{commons:i.commons},raw:{search:a.post("/"+n+"/comment/_search"),remove:a.record.remove(n,"comment"),wsChanges:a.ws("/ws/_changes"),add:new a.record.post("/"+n+"/comment",{creationTime:!0}),update:new a.record.post("/"+n+"/comment/:id/_update",{creationTime:!0})}};return s.raw.refreshTreeLinks=function(e){return s.raw.addTreeLinks(e,!0)},s.raw.addTreeLinks=function(e,n){e=e||{},e.result=e.result||[],e.mapById=e.mapById||{};var o={};if(_.forEach(_.values(e.mapById),function(t){if(t.reply_to&&!t.parent){var i=e.mapById[t.reply_to];i||(i=new Comment(t.reply_to),o[i.id]=t.id,e.mapById[i.id]=i),n&&i.containsReply(t)||i.addReply(t)}}),!_.size(o)){var r=t.defer();return r.resolve(e),r.promise}var l={query:{terms:{_id:_.keys(o)}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:0,size:1e3,_source:i.commons};return console.debug("[ES] [comment] Getting missing comments in tree"),s.raw.search(l).then(function(t){return t.hits.total?(_.forEach(t.hits.hits,function(t){var n=e.mapById[t._id];n.copyFromJson(t._source),n.html=a.util.parseAsHtml(n.message),delete o[n.id]}),_.size(o)&&console.error("Comments has invalid [reply_to]: "+_.values(o).join(",")),s.raw.addTreeLinks(e)):(console.error("[ES] [comment] Comments has invalid [reply_to]: "+_.values(o).join(",")),e)})},s.raw.loadDataByRecordId=function(e,t){t=t||{},t.from=t.from||0,t.size=t.size||20,t.loadAvatar=!angular.isDefined(t.loadAvatar)||t.loadAvatar,t.loadAvatarAllParent=!!angular.isDefined(t.loadAvatarAllParent)&&(t.loadAvatar&&t.loadAvatarAllParent),t.size<0&&(t.size=20);var n={query:{term:{record:e}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:t.from,size:t.size,_source:i.commons},o={total:0,mapById:{},result:[],pendings:{}};return s.raw.search(n).then(function(e){return e.hits.total?(o.total=e.hits.total,o.result=e.hits.hits.reduce(function(e,t){var n=new Comment(t._id,t._source);return n.html=a.util.parseAsHtml(n.message),o.mapById[n.id]=n,e.concat(n)},o.result),s.raw.addTreeLinks(o)):o}).then(function(){if(t.loadAvatar)return t.loadAvatarAllParent?r.extendAll(_.values(o.mapById),"issuer"):r.extendAll(o.result,"issuer")}).then(function(){return o.result=o.result.sort(function(e,t){return e.creationTime-t.creationTime}),o})},s.raw.createOnDeleteListener=function(e){return function(n){var i=_.findIndex(e.result,{id:n.id});if(-1!==i){e.result.splice(i,1),delete e.mapById[n.id];return(o.isUserPubkey(n.issuer)?o:o.children.getByPubkey(n.issuer))?s.raw.remove(n.id).catch(function(e){throw console.error(e),new Error("COMMENTS.ERROR.FAILED_REMOVE_COMMENT")}):t.reject("No wallet found corresponding to the comment issuer")}}},s.raw.startListenChanges=function(t,i,l){i=i||{},i.result=i.result||[],i.mapById=i.mapById||{},i.pendings=i.pendings||{},l=l||e;var c=s.raw.createOnDeleteListener(i);_.forEach(i.result,function(e){e.addOnRemoveListener(c)});var u=Date.now();console.info("[ES] [comment] Starting websocket to listen comments on [{0}/record/{1}]".format(n,t.substr(0,8)));var d=s.raw.wsChanges();return d.open().then(function(e){return e.send(n+"/comment")}).then(function(){console.debug("[ES] [comment] Websocket opened in {0} ms".format(Date.now()-u)),d.on(function(e){e&&l.$applyAsync(function(){var n=i.mapById[e._id];"DELETE"===e._operation?n&&n.remove():e._source&&e._source.record===t&&(n?(n.copyFromJson(e._source),n.html=a.util.parseAsHtml(n.message),s.raw.refreshTreeLinks(i)):i.pendings&&i.pendings[e._source.creationTime]||e._source.issuer==o.data.pubkey?console.debug("Skip comment received by WS (already in pending)"):(n=new Comment(e._id,e._source),n.addOnRemoveListener(c),n.isnew=!0,n.html=a.util.parseAsHtml(n.message),i.mapById[e._id]=n,s.raw.refreshTreeLinks(i).then(function(){return r.extend(n,"issuer")}).then(function(){i.result.push(n)})))})})})},s.raw.save=function(e,t,n){t=t||{},t.result=t.result||[],t.mapById=t.mapById||{},t.pendings=t.pendings||{};var i=n.id,r={creationTime:i?n.creationTime||n.time:moment().utc().unix(),message:n.message,record:e,issuer:o.data.pubkey};n.reply_to||n.parent?r.reply_to=n.reply_to||n.parent.id:r.reply_to=null;var l;return i?(l=t.mapById[i],l.copy(n)):(l=new Comment(null,r),l.addOnRemoveListener(s.raw.createOnDeleteListener(t)),l.uid=o.data.uid,l.name=o.data.name,l.avatar=o.data.avatar,l.isnew=!0,n.parent&&n.parent.addReply(l),t.result.push(l)),l.html=a.util.parseAsHtml(l.message),i?s.raw.update(r,{id:i}).then(function(){return l}):(t.pendings=t.pendings||{},t.pendings[r.creationTime]=r,s.raw.add(r).then(function(e){return l.id=e,t.mapById[e]=l,delete t.pendings[r.creationTime],l}))},s.raw.stopListenChanges=function(e){console.debug("[ES] [comment] Stopping websocket on comments"),_.forEach(e.result,function(e){e.cleanAllListeners()}),s.raw.wsChanges().close()},s.load=s.raw.loadDataByRecordId,s.save=s.raw.save,s.changes={start:s.raw.startListenChanges,stop:s.raw.stopListenChanges},s}return{instance:s}}]),angular.module("cesium.es.http.services",["ngResource","ngApi","cesium.services","cesium.config"]).factory("esHttp",["$q","$timeout","$rootScope","$state","$sce","$translate","$window","$filter","CryptoUtils","UIUtils","csHttp","csConfig","csSettings","csCache","BMA","csWallet","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){"ngInject";function T(i,a,r,T){function I(e,t,n,i){!e&&p.data&&(e=e||(p.data.plugins&&p.data.plugins.es?p.data.plugins.es.host:null),t=t||(e?p.data.plugins.es.port:null),n=angular.isDefined(n)?n:443==t||p.data.plugins.es.useSsl||h),K.alive=!1,K.host=e,K.port=t||(n||h?443:80),K.useSsl=angular.isDefined(n)?n:443==K.port||h,K.server=u.getServer(e,t)}function v(e){if(e=e||p.data,!e.plugins||!e.plugins.es)return!1;var t=e.plugins.es.host,n=443==e.plugins.es.port||e.plugins.es.useSsl||h;return N(t,e.plugins.es.port||(n?443:80),n)}function N(e,t,n){return K.host==e&&K.port==t&&(angular.isUndefined(n)||n==K.useSsl)}function O(){return K.data.isFallback}function R(e){K.data.isFallback=e}function A(e){return new RegExp("^"+e+"$")}function S(e){return new RegExp(e)}function C(){return{getByPath:{},postByPath:{},wsByPath:{}}}function L(t,n){return n=n||e.defer(),K.data.isFallback&&K.started&&K.stop(),K.data.isFallback=!1,j=null,n.resolve(t),n.promise}function D(e,t){t=t||"#";for(var n="@"===t?q.USER_TAG:q.HASH_TAG,i=e&&n.exec(e),a=i&&[];i;){var o=i[1];_.contains(a,o)||a.push(o),e=e.substr(i.index+i[1].length+1),i=e.length>0&&n.exec(e)}return a}function y(e){for(var t=e&&q.URL.exec(e),n=t&&[];t;){var i=t[0];_.contains(n,i)||n.push(i),e=e.substr(t.index+t[0].length+1),t=e&&q.URL.exec(e)}return n}function P(e){return e?e.replace(/</g,"&lt;").replace(/>/g,"&gt;"):e}function k(e,t){var n=e?P(e.trim()):void 0;if(n){t=t||{},t.tagState=t.tagState||"app.wot_lookup.tab_search",t.uidState=t.uidState||"app.wot_identity_uid",!t.newLine&&angular.isDefined(t.newLine)||(n=n.replace(/\n/g,"<br>\n"));var i=y(n);_.forEach(i,function(e){var t=e.startsWith("http://")||e.startsWith("https://")?e:"http://"+e,i='<a on-tap="openLink($event, \'{0}\')" href="{1}" target="_blank">{2}</a>'.format(t,t,Q(e));n=n.replace(e,i)});var a=D(n);_.forEach(a,function(e){var i="<a ui-sref=\"{0}({hash: '{1}'})\">#{2}</a>".format(t.tagState,e,e);n=n.replace("#"+e,i)});var o=D(n,"@");_.forEach(o,function(e){var i="<a ui-sref=\"{0}({uid: '{1}'})\">@{2}</a>".format(t.uidState,e,e);n=n.replace("@"+e,i)})}return n}function M(e,t){t=t||["title","description"],e.tags=t.reduce(function(t,n){var i=e[n],a=i&&D(i);return a?t.concat(a):t},[])}function w(e,t){if(e)return e[t]?e[t]:Array.isArray(e)?e.reduce(function(e,n){return e||w(n,t)},!1):"object"==typeof e?_.reduce(_.keys(e),function(n,i){return n||w(e[i],t)},!1):void 0}function U(t,n){n=n||{};var i=K.post(t);return function(t,n){n=n||{};var a=n.wallet||n.walletId&&b.children.get(n.walletId)||(!n.pubkey||b.isUserPubkey(n.pubkey))&&b||n.pubkey&&b.children.getByPubkey(n.pubkey),o=n.keypair||a&&a.data&&a.data.keypair;if(!o&&!a)throw new Error("Missing wallet or keypair, to sign record");delete n.wallet,delete n.walletId,delete n.keypair;var r=angular.copy(n);return r.pubkey=r.pubkey||a.data.pubkey,(a.isAuth()?e.when(a.data):a.auth({silent:!0,minData:!0})).then(function(){n.creationTime&&!t.creationTime&&(t.creationTime=moment().utc().unix());var e=moment().utc().unix();t.time=!t.time||t.time<e?e:t.time+1;var a=angular.copy(t);delete a.signature,delete a.hash,a.issuer=r.pubkey,a.version||(a.version=2),n.tagFields&&M(a,n.tagFields);var s=JSON.stringify(a);return l.util.hash(s).then(function(e){return l.sign(e,o).then(function(t){return s='{"hash":"{0}","signature":"{1}",'.format(e,t)+s.substring(1),i(s,r).then(function(e){return m.clear(z),e}).catch(function(e){var t=K.byteCount(a);if(t>$.MAX_UPLOAD_BODY_SIZE)throw{message:"ERROR.ES_MAX_UPLOAD_BODY_SIZE",length:t};throw e})})})})}}function B(t,n){return function(i,a){a=a||{};var o=a.wallet||a.walletId&&b.children.get(a.walletId)||b;return(o.isAuth()?e.when(o.data):o.auth({silent:!0,minData:!0})).then(function(e){var a={version:2,index:t,type:n,id:i,issuer:e.pubkey,time:moment().utc().unix()},o=JSON.stringify(a);return l.util.hash(o).then(function(t){return l.sign(t,e.keypair).then(function(e){return o='{"hash":"{0}","signature":"{1}",'.format(t,e)+o.substring(1),K.post("/history/delete")(o).then(function(e){return e})})})})}}function x(e){if(!e||!e._content_type||!e._content||0===e._content.length)return null;var t={src:"data:"+e._content_type+";base64,"+e._content};return e._title&&(t.title=e._title),e._name&&(t.name=e._name),t}function F(e){if(!e||!e.src)return null;var t=q.IMAGE_SRC.exec(e.src);if(!t)return null;var n={_content_type:t[1],_content:t[2]};return e.title&&(n._title=e.title),e.name&&(n._name=e.name),n}function H(e){var t=q.ES_USER_API_ENDPOINT.exec(e);if(t){var n=t[8]||80;return{dns:t[2]||"",ipv4:t[4]||"",ipv6:t[6]||"",port:n,useSsl:80!=n&&443==n}}}function W(){return{_id:null,_index:null,_type:null,_version:null,_source:{}}}function V(){Y=[p.api.data.on.reset(n,L,K)]}function G(){_.forEach(Y,function(e){e()}),Y=[]}var Y,j,K=this,z="esHttp-",$={ES_USER_API_ENDPOINT:"ES_USER_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",MAX_UPLOAD_BODY_SIZE:d.plugins&&d.plugins.es&&d.plugins.es.maxUploadBodySize||2097152},q={IMAGE_SRC:A("data:([A-Za-z//]+);base64,(.+)"),URL:S("(www\\.|https?://(www\\.)?)[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)"),HASH_TAG:S("(?:^|[\t\n\rs ])#([\\wḡĞǦğàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+)"),USER_TAG:S("(?:^|[\t\n\rs ])@("+E.constants.regexp.USER_ID+")"),ES_USER_API_ENDPOINT:A($.ES_USER_API_ENDPOINT)},X=0,Q=s("truncUrl");K.data={isFallback:!1},K.cache=C(),K.api=new f(this,"esHttp"),K.started=!1,K.init=I,I(i,a,r,T),K.useCache=!!angular.isDefined(T)&&T,K.cleanCache=function(){console.debug("[ES] [http] Cleaning requests cache..."),_.keys(K.cache.wsByPath).forEach(function(e){K.cache.wsByPath[e].close()}),K.cache=C(),m.clear(z)},K.copy=function(e){return K.started&&K.stop(),K.init(e.host,e.port,e.useSsl||443==e.port),K.data.isTemporary=!1,K.start(!0)},K.byteCount=function(e){return e="string"==typeof e?e:JSON.stringify(e),encodeURI(e).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1},K.getUrl=function(e){return u.getUrl(K.host,K.port,e,K.useSsl)},K.get=function(t,n){n=K.useCache&&n;var i=t+(n?"#"+n:""),a=function(o){if(!K.started)return K._startPromise||console.error("[ES] [http] Trying to get [{0}] before start(). Waiting...".format(t)),K.ready().then(function(t){return t?a(o):e.reject("ERROR.ES_CONNECTION_ERROR")});var r=K.cache.getByPath[i];return r||(r=n?u.getWithCache(K.host,K.port,t,K.useSsl,n,null,null,z):u.get(K.host,K.port,t,K.useSsl),K.cache.getByPath[i]=r),r(o)};return a},K.post=function(t){var n=function(i,a){if(!K.started)return K._startPromise||console.error("[ES] [http] Trying to post [{0}] before start()...".format(t)),K.ready().then(function(t){return t?n(i,a):e.reject("ERROR.ES_CONNECTION_ERROR")});var o=K.cache.postByPath[t];return o||(o=u.post(K.host,K.port,t,K.useSsl),K.cache.postByPath[t]=o),o(i,a)};return n},K.ws=function(e){return function(){var t=K.cache.wsByPath[e];return t||(t=u.ws(K.host,K.port,e,K.useSsl),K.cache.wsByPath[e]=t),t}},K.isAlive=function(){return u.get(K.host,K.port,"/node/summary",K.useSsl)().then(function(e){var t=e&&e.duniter&&e.duniter.software||"unknown";return"cesium-plus-pod"===t||"duniter4j-elasticsearch"===t||(console.error("[ES] [http] Not a Cesium+ Pod, but a {0} node. Please check '/node/summary'".format(t)),!1)}).catch(function(){return!1})},K.checkNodeAlive=function(e){if(e)return R(!v()),!0;if(angular.isUndefined(e))return K.isAlive().then(K.checkNodeAlive);var t=p.data.plugins&&p.data.plugins.es||{};j=j||{host:t.host,port:t.port};var n=t.fallbackNodes&&X<t.fallbackNodes.length&&t.fallbackNodes[X++];if(!n)return o("ERROR.ES_CONNECTION_ERROR",{server:K.server}).then(c.alert.info),!1;var i=u.getServer(n.host,n.port);return c.loading.hide(),o("CONFIRM.ES_USE_FALLBACK_NODE",{old:K.server,new:i}).then(c.alert.confirm).then(function(e){return!!e&&(K.cleanCache(),K.init(n.host,n.port,n.useSsl||443==n.port),K.isAlive().then(K.checkNodeAlive))})},K.isStarted=function(){return K.started},K.ready=function(){return K.started?e.when(!0):K._startPromise||K.start()},K.start=function(t){return K._startPromise?K._startPromise:K.started?e.when(K.alive):(K._startPromise=g.ready().then(function(){t||K.init()}).then(function(){console.debug("[ES] [http] Starting on [{0}]{1}...".format(K.server,K.useSsl?" (SSL on)":""));var e=Date.now();return K.checkNodeAlive().then(function(t){return K.alive=t,t?(V(),console.debug("[ES] [http] Started in "+(Date.now()-e)+"ms"),K.api.node.raise.start(),K.started=!0,delete K._startPromise,X=0,!0):(console.error("[ES] [http] Could not start [{0}]: node unreachable".format(K.server)),K.started=!0,delete K._startPromise,X=0,!1)})}),K._startPromise)},K.stop=function(){return console.debug("[ES] [http] Stopping..."),G(),R(!1),delete K._startPromise,K.alive?(K.cleanCache(),K.alive=!1,K.started=!1,K.api.node.raise.stop()):K.started=!1,e.when()},K.restart=function(){return K.stop(),t(K.start,200)},K.image={},K.image.fromHit=function(e,t){if(e&&e._source){var n=e._source[t];if(n&&n._content_type&&n._content_type.startsWith("image/")){var i={};if(n._content)i.src="data:"+n._content_type+";base64,"+n._content;else{var a=n._content_type.substr(6),o=[e._index,e._type,e._id,"_image",t].join("/");o="/"+o+"."+a,i.src=K.getUrl(o)}return n._title&&(i.title=n._title),n._name&&(i.name=n._name),i}}},K.api.registerEvent("node","start"),K.api.registerEvent("node","stop");var J={getServer:u.getServer,node:{summary:K.get("/node/summary"),parseEndPoint:H,same:N,sameAsSettings:v,isFallback:O},network:{peering:K.get("/network/peering"),peers:K.get("/network/peers")},record:{post:U,remove:B},image:{fromAttachment:x,toAttachment:F},hit:{empty:W},util:{parseTags:D,parseAsHtml:k,findObjectInTree:w},cache:u.cache,constants:$};J.constants.regexp=q,angular.merge(K,J)}var h=!!("true"===d.httpsMode||!0===d.httpsMode||"force"===d.httpsMode||r.location&&"https:"===r.location.protocol);h&&console.debug("[ES] [https] Enable SSL (forced by config or detected in URL)");var I=new T(void 0,void 0,void 0,!0);return I.instance=function(e,t,n,i){return new T(e,t,n,i)},I}]),angular.module("cesium.es.settings.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSettings")}]).factory("esSettings",["$rootScope","$q","$timeout","Api","esHttp","csConfig","csSettings","CryptoUtils","Device","UIUtils","csWallet",function(e,t,n,i,a,o,r,s,l,c,u){"ngInject";function d(e,t){var n={};return t.includes&&_.forEach(_.keys(t),function(e){"includes"!=e&&"excludes"!=e&&t.includes.push(e)}),_.forEach(_.keys(e),function(i){t.includes&&!_.contains(t.includes,i)||t.excludes&&_.contains(t.excludes,i)||(e[i]&&"object"==typeof e[i]&&t[i]&&"object"==typeof t[i]?n[i]=d(e[i],t[i]):n[i]=e[i])}),n}function p(e,t){var n=Date.now();return S.get({id:e}).catch(function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}).then(function(e){if(e&&e._source){var i=e._source
-;if(i.time===r.data.time)return void console.debug("[ES] [settings] Loaded in "+(Date.now()-n)+"ms, but already up to date");var a=s.util.decode_base58(i.nonce);return s.box.open(i.content,a,t.boxPk,t.boxSk).then(function(e){var t=JSON.parse(e||"{}");return t.time=i.time,console.debug("[ES] [settings] Loaded and decrypted in "+(Date.now()-n)+"ms"),t}).catch(function(e){return console.error("[ES] [settings] Could not load remote settings: "+(e&&e.message||"decryption error")),delete r.data.time,null})}})}function m(e,n){return n=n||t.defer(),angular.merge(e,A),D=!1,n.resolve(e),n.promise}function E(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair&&e.keypair.signSk&&e.keypair.boxSk?(console.debug("[ES] [settings] Loading user settings..."),p(e.pubkey,e.keypair).then(function(e){if(e)return angular.merge(r.data,e),N=e,console.debug("[ES] [settings] Applied"),g()}).then(function(){n.resolve(e)}).catch(function(e){n.reject(e)}),n.promise):(n.resolve(),n.promise)}function b(e){if(!L){var t=O&&O.length>0;!a.isStarted()||a.node.isFallback()||a.node.sameAsSettings(e)||I(),v();S.isEnable()&&u.isAuth()&&(t?f(e):E(u.data))}}function g(){return L?t.when():(L=!0,r.store().then(function(){L=!1}).catch(function(e){throw L=!1,e}))}function f(e){var n=d(e,R);if(N&&angular.equals(n,N))return t.when();if(!r.data.plugins.es.useRemoteStorage)return g();var i=moment().utc().unix();return console.debug("[ES] [settings] Saving user settings remotely..."),t.all([u.getKeypair(),s.util.random_nonce()]).then(function(t){var a=t[0],o=t[1];if(a.boxPk&&a.boxSk){var r={issuer:u.data.pubkey,nonce:s.util.encode_base58(o),time:i},l=JSON.stringify(n);return s.box.pack(l,o,a.boxPk,a.boxSk).then(function(t){return r.content=t,angular.isUndefined(e.time)?S.add(r):S.update(r,{id:r.issuer}).catch(function(e){if(e&&404==e.ucode)return S.add(r);throw e})}).then(function(){return!0})}}).then(function(t){if(t)return e.time=i,N=n,console.debug("[ES] [settings] Saved user settings remotely in "+(moment().utc().unix()-i)+"ms"),g()}).catch(function(e){throw console.error(e),e})}function T(){_.forEach(O,function(e){e()}),O=[]}function h(){O=[r.api.data.on.reset(e,m,this),u.api.data.on.auth(e,E,this)]}function I(){T(),a.stop()}function v(){var e=S.isEnable();return!e&&O&&O.length>0?(console.debug("[ES] [settings] Disable"),T(),a.stop().then(function(){C.state.raise.changed(e)})):!e||O&&0!==O.length&&a.isStarted()?void 0:a.start().then(function(t){return t?(console.debug("[ES] [settings] Enable"),h(),u.isAuth()?E(u.data).then(function(){C.state.raise.changed(e)}):void C.state.raise.changed(e)):(r.data.plugins.es.enable=!1,r.data.plugins.es.askEnable=!0,D=!0,C.state.raise.changed(!1),void console.error("[ES] [settings] Disable, has ES node could not be started"))})}var N,O,R={includes:["locale","showUDHistory","useRelative","useLocalStorage","useLocalStorageEncryption","expertMode","logoutIdle","blockValidityWindow"],excludes:["timeout","cacheTimeMs","version","build","minVersion","fallbackLanguage"],plugins:{es:{excludes:["enable","host","port","fallbackNodes","enableGoogleApi","googleApiKey"],notifications:{}}},wallet:{includes:["alertIfUnusedWallet"],excludes:["notificationReadTime"]},helptip:{excludes:["installDocUrl"]},notifications:{excludes:["time","warnCount","unreadCount"]}},A=angular.merge({plugins:{es:{askEnable:!1,useRemoteStorage:!0,notifications:{txSent:!0,txReceived:!0,certSent:!0,certReceived:!0,emitHtml5:!1},invitations:{readTime:!0},defaultCountry:void 0,enableGoogleApi:!1,googleApiKey:void 0,wot:{enableMixedSearch:!0},registry:{defaultSearch:{location:null,geoPoint:null}},geoDistance:"20km"}}},{plugins:{es:o.plugins&&o.plugins.es||{}}}),S=this,C=new i("esSettings"),L=!1,D=!1;return S.api=C,S.get=a.get("/user/settings/:id"),S.add=a.record.post("/user/settings"),S.update=a.record.post("/user/settings/:id/_update"),S.isEnable=function(){return r.data.plugins&&r.data.plugins.es&&r.data.plugins.es.enable&&!!r.data.plugins.es.host},S.notifications={},S.notifications.isEmitHtml5Enable=function(){return!!(S.isEnable()&&r.data.plugins.es.notifications&&angular.isDefined(r.data.plugins.es.notifications.emitHtml5))&&r.data.plugins.es.notifications.emitHtml5},S.wot={},S.wot.isMixedSearchEnable=function(){return S.isEnable()&&(!angular.isDefined(r.data.plugins.es.wot&&r.data.plugins.es.wot.enableMixedSearch)||r.data.plugins.es.wot.enableMixedSearch)},C.registerEvent("state","changed"),r.ready().then(function(){return r.api.data.on.changed(e,b,this),a.api.node.on.stop(e,function(){N=null},this),v()}).then(function(){if(!D&&o.plugins&&o.plugins.es&&o.plugins.es.askEnable&&!S.isEnable()&&r.data.plugins.es.askEnable)return c.alert.confirm("ES_SETTINGS.CONFIRM.ASK_ENABLE","ES_SETTINGS.CONFIRM.ASK_ENABLE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then(function(e){return e&&(r.data.plugins.es.enable=!0),r.data.plugins.es.askEnable=!1,r.store()})}),S}]),angular.module("cesium.es.registry.services",["ngResource","cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esRegistry")}]).factory("esRegistry",["$rootScope","$q","csPlatform","csSettings","csWallet","csWot","esHttp","esComment","esGeo",function(e,t,n,i,a,o,r,s,l){"ngInject";function c(e){e.pages=null}function u(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [registry] Loading pages count..."),v.raw.count({pubkey:e.pubkey}).then(function(t){e.pages=e.pages||{},e.pages.count=t&&t.hits&&t.hits.total,console.debug("[ES] [registry] Loaded pages count ("+e.pages.count+")"),n.resolve(e)}).catch(function(t){console.error("[ES] [registry] Error while counting page: "+(t.message?t.message:t)),n.resolve(e)}),n.promise):(n.resolve(),n.promise)}function d(){if(v.raw.categories&&v.raw.categories.length){var e=t.defer();return e.resolve(v.raw.categories),e.promise}return v.raw.category.all().then(function(e){if(0===e.hits.total)v.raw.categories=[];else{var t=e.hits.hits.reduce(function(e,t){var n=t._source;return n.id=t._id,e.concat(n)},[]);_.forEach(t,function(e){t[e.id]=e}),v.raw.categories=t}return v.raw.categories})}function p(e){return v.raw.category.get(e).then(function(e){var t=e._source;return t.id=e._id,t})}function m(e,t){if(e){var n=e._source;return n.category&&n.category.id&&(n.category=t[n.category.id]),e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(n.tags=e.highlight.tags.reduce(function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))},[]))),n.avatar=r.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce(function(e,t){return e.concat(r.image.fromAttachment(t.file))},[])),n}}function E(e){return e=e||{},e.from=e.from||0,e.size=e.size||20,e._source=e._source||I.commons,e.highlight=e.highlight||{fields:{title:{},description:{}}},t.all([d(),v.raw.search(e)]).then(function(t){var n=t[0];if(!(t=t[1])||!t.hits||!t.hits.total)return{total:0,hits:[]};var i=r.util.findObjectInTree(e.query,"geo_distance"),a=i&&i.geoPoint,o=i&&i.distance&&i.distance.replace(new RegExp("[0-9 ]+","gm"),""),s=t.hits.hits.reduce(function(e,t){var i=m(t,n);return i.id=t._id,a&&i.geoPoint&&o&&(i.distance=l.point.distance(a.lat,a.lon,i.geoPoint.lat,i.geoPoint.lon,o)),e.concat(i)},[]);return{total:t.hits.total,hits:s}})}function b(e,n){return n=n||{},n.raw=!!angular.isDefined(n.raw)&&n.raw,n.fecthPictures=angular.isDefined(n.fetchPictures)?n.fetchPictures:n.raw,t.all([d(),n.fecthPictures?v.raw.get({id:e}):v.raw.getCommons({id:e})]).then(function(e){var t=e[0],i=e[1],a=m(i,t);return n.raw||(a.description=r.util.parseAsHtml(a.description,{tagState:"app.wot_lookup.tab_registry"})),o.extend({pubkey:a.issuer}).then(function(e){return{id:i._id,issuer:e,record:a}})})}function g(){_.forEach(h,function(e){e()}),h=[]}function f(){h=[a.api.data.on.load(e,u,this),a.api.data.on.init(e,c,this),a.api.data.on.reset(e,c,this)]}function T(){var e=r.alive;if(!e&&h&&h.length>0){if(console.debug("[ES] [subscription] Disable"),g(),a.isLogin())return c(a.data)}else if(e&&(!h||0===h.length)&&(console.debug("[ES] [subscription] Enable"),f(),a.isLogin()))return u(a.data)}var h,I={commons:["title","description","issuer","time","address","city","creationTime","avatar._content_type","picturesCount","type","category","socials","pubkey","geoPoint"]},v=this;return v.raw={count:r.get("/page/record/_search?size=0&q=issuer::pubkey"),searchText:r.get("/page/record/_search?q=:search"),search:r.post("/page/record/_search"),get:r.get("/page/record/:id"),getCommons:r.get("/page/record/:id?_source="+I.commons.join(",")),category:{get:r.get("/page/category/:id"),all:r.get("/page/category/_search?sort=order&from=0&size=1000&_source=name,parent")}},n.ready().then(function(){return r.api.node.on.start(e,T,this),r.api.node.on.stop(e,T,this),T()}),v.category={all:d,get:p},v.record={search:E,load:b,add:r.record.post("/page/record",{tagFields:["title","description"],creationTime:!0}),update:r.record.post("/page/record/:id/_update",{tagFields:["title","description"]}),remove:r.record.remove("page","record"),fields:{commons:I.commons},picture:{all:r.get("/page/record/:id?_source=pictures")},comment:s.instance("page")},v.currency={all:r.get("/currency/record/_search?_source=currencyName,peers.host,peers.port"),get:r.get("/currency/record/:id/_source")},v}]),angular.module("cesium.es.social.services",["cesium.es.crypto.services"]).factory("SocialUtils",["$filter","$q","CryptoUtils","BMA","csWallet","esCrypto","$timeout",function(e,t,n,i,a,o,r){"ngInject";function s(){function s(e){return new RegExp("^"+e+"$")}function l(e){var t;if(E.URI.test(e)){var n=E.URI.exec(e)[1],i=e;if("http"==n||"https"==n){var a=e.indexOf("/",n.length+3);a>0&&(i=e.substring(0,a))}_.keys(E.socials).forEach(function(e){if(E.socials[e].test(i))return t=e,!1}),t||(t="web")}else E.EMAIL.test(e)?t="email":E.PHONE.test(e)&&(t="phone");return t||console.warn("[ES] [social] Unable to detect type of social URL: "+e),t}function c(e){if((e=e?e.trim():e)&&e.length>0)return e.startsWith("www.")&&(e="http://"+e),{type:l(e),url:e}}function u(t){if(!t||!t.length)return[];var n={};return t.forEach(function(t){if("curve25519"==t.type?(delete t.issuer,t.valid&&angular.merge(t,c(t.url))):t=c(t.url),t){var i=e("formatSlug")(t.url);n[i]=t}}),_.values(n)}function d(e,t){return{recipient:e,type:"curve25519",url:t}}function p(e,i,s){if(s=s||a.data.pubkey,!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r(function(){return p(e,i,s)},100);var l=_.filter(e||[],function(e){var t=e.url&&"curve25519"==e.type&&E.socials.curve25519.exec(e.url);return!!t&&(e.recipient=t[1],e.nonce=t[2],e.url=t[3],e.issuer=i,e.valid=e.recipient===s,e.valid)});return l.length?o.box.open(l,void 0,"issuer","url").then(function(){return u(e)}):t.when(u(e))}function m(e){if(!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r(function(){return m(e)},100);var i=_.filter(e||[],function(e){return"curve25519"==e.type&&e.url&&e.recipient});return i.length?n.util.random_nonce().then(function(e){return t.all(i.reduce(function(t,n){return t.concat(o.box.pack(n,void 0,"recipient","url",e))},[]))}).then(function(e){return e.reduce(function(e,t){return e.concat({type:"curve25519",url:"curve25519://{0}:{1}@{2}".format(t.recipient,t.nonce,t.url)})},[])}):t.when(e)}var E={URI:"([a-zA−Z0-9]+)://[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",EMAIL:"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",PHONE:"[+]?[0-9. ]{9,15}",socials:{facebook:"https?://((fb.me)|((www.)?facebook.com))",twitter:"https?://(www.)?twitter.com",googleplus:"https?://plus.google.com(/u)?",youtube:"https?://(www.)?youtube.com",github:"https?://(www.)?github.com",tumblr:"https?://(www.)?tumblr.com",snapchat:"https?://(www.)?snapchat.com",linkedin:"https?://(www.)?linkedin.com",vimeo:"https?://(www.)?vimeo.com",instagram:"https?://(www.)?instagram.com",wordpress:"https?://([a-z]+)?wordpress.com",diaspora:"https?://(www.)?((diaspora[-a-z]+)|(framasphere)).org",duniter:"duniter://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",bitcoin:"bitcoin://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",curve25519:"curve25519://("+i.constants.regexp.PUBKEY+"):([a-zA-Z0-9]+)@([a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)"}};return E.URI=s(E.URI),E.EMAIL=s(E.EMAIL),E.PHONE=s(E.PHONE),_.keys(E.socials).forEach(function(e){E.socials[e]=s(E.socials[e])}),{get:c,reduce:u,createForEncryption:d,open:p,pack:m}}var l=s();return l.instance=s,l}]),angular.module("cesium.es.crypto.services",["ngResource","cesium.services"]).factory("esCrypto",["$q","$rootScope","CryptoUtils",function(e,t,n){"ngInject";function i(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([n.box.keypair.skFromSignSk(t.signSk),n.box.keypair.pkFromSignPk(t.signPk)]).then(function(e){return{boxSk:e[0],boxPk:e[1]}})}function a(t,a,o,r,s){if(o=o||"recipient",!t[o])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});r=r||"content","string"==typeof r&&(r=[r]),t=angular.copy(t);var l=n.util.decode_base58(t[o]);return e.all([i(a),n.box.keypair.pkFromSignPk(l),s?e.when(s):n.util.random_nonce()]).then(function(i){var a=i[0],o=a.boxSk,s=i[1],l=i[2];return e.all(r.reduce(function(e,i){return t[i]?e.concat(n.box.pack(t[i],l,s,o)):e},[])).then(function(e){var i=0;return _.forEach(r,function(n){t[n]?t[n]=e[i++]:t[n]=null}),t.nonce=n.util.encode_base58(l),t})})}function o(t,a,o,r){o=o||"issuer","string"==typeof(r=r||"content")&&(r=[r]);var s=Date.now(),l={},c=[i(a)];return e.all(t.reduce(function(e,t){var i=t[o];if(!i)throw"Record has no "+o;return l[i]?res:e.concat(n.box.keypair.pkFromSignPk(n.util.decode_base58(i)).then(function(e){l[i]=e}))},c)).then(function(i){var a=i[0];return e.all(t.reduce(function(e,t){var i=l[t[o]],s=n.util.decode_base58(t.nonce);return t.valid=!0,e.concat(r.reduce(function(e,o){return t[o]?e.concat(n.box.open(t[o],s,i,a.boxSk).then(function(e){t[o]=e}).catch(function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+o),t.valid=!1})):e},[]))},[]))}).then(function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-s)+"ms"),t})}return{box:{getKeypair:i,pack:a,open:o}}}]),angular.module("cesium.es.profile.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esProfile")}]).factory("esProfile",["$rootScope","$q","esHttp","SocialUtils","csWot","csWallet","csPlatform","esSettings",function(e,t,n,i,a,o,r,s){"ngInject";function l(e){return T.raw.getFields({id:e,fields:"title,avatar._content_type"}).then(function(e){var t;return e&&e._source&&(t={name:e._source.title},t.avatar=n.image.fromHit(e,"avatar")),t}).catch(function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e})}function c(e,t){return t=t||{},(t.raw?T.raw.getAll:T.raw.get)({id:e}).then(function(a){if(a&&a.found&&a._source){var r={name:a._source.title,source:a._source};return r.name&&r.name.length>30&&(r.name=r.name.substr(0,27)+"..."),r.avatar=n.image.fromHit(a,"avatar"),t.raw||(r.description=n.util.parseAsHtml(r.source.description)),r.source.socials&&r.source.socials.length&&(r.source.socials=_.uniq(r.source.socials,!1,function(e){return e.url})),o.isLogin()?i.open(r.source.socials,e).then(function(){return r}):(r.source.socials=_.filter(r.source.socials,function(e){return"curve25519"!=e.type}),r)}}).catch(function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e})}function u(e,t){return p(null,e,t)}function d(e,t,i){e.avatar=e.avatar||n.image.fromHit(t,i||"avatar"),e.name=t._source.title,e.name&&e.name.length>30&&(e.name=e.name.substr(0,27)+"..."),e.description=t._source.description||e.description,e.city=t._source.city||e.city,t.highlight&&(t.highlight.title&&(e.name=t.highlight.title[0]),t.highlight.tags&&(e.tags=t.highlight.tags.reduce(function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))},[])))}function p(e,i,a,o){if(o=o||t.defer(),!(e||i&&i.length))return o.resolve(i),o.promise;a=a||"pubkey",e=e?e.toLowerCase().trim():e;var r,l=e?n.util.parseTags(e):void 0,c={query:{},highlight:{fields:{title:{},tags:{}}},from:0,size:100,_source:["title","avatar._content_type"]},u=e&&s.wot.isMixedSearchEnable();if(u&&(c._source=c._source.concat(["description","city","creationTime","membersCount","type"]),console.debug("[ES] [profile] Mixed search: enable")),i.length>0){r={},_.forEach(i,function(e){var t=e[a];if(t){var n=r[t];n?n.push(e):(n=[e],r[t]=n)}});var p=_.keys(r);c.size=p.length<=c.size?c.size:p.length,e?(c.query.bool={should:[{terms:{"_id^4":p}},{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},l&&c.query.bool.should.push({terms:{tags:l}})):(delete c.highlight,c.query.constant_score={filter:{terms:{_id:p}}})}else{if(!e)return o.resolve(i),o.promise;c.query.bool={should:[{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},l&&c.query.bool.should.push({terms:{tags:l}})}e&&u&&(c.indices_boost={user:100,page:1,group:.01});var m;return(u?T.raw.mixedSearch:T.raw.search)(c).then(function(e){if(m=e.hits,m.total>0){var t,s={};_.forEach(m.hits,function(e){var o="avatar";if("user"==e._index){if(!(t=r&&r[e._id])){var l={};l[a]=e._id,t=[l],i.push(l)}}else if("user"!=e._index){s[e._index]||(s[e._index]=!0,i.push({id:"divider-"+e._index,divider:!0,index:e._index}));var c={id:e._index+"-"+e._id,index:e._index,templateUrl:"plugins/es/templates/wot/lookup_item_{0}.html".format(e._index),state:"app.view_{0}".format(e._index),stateParams:{id:e._id,title:e._source.title},creationTime:e._source.creationTime,memberCount:e._source.memberCount,type:e._source.type};t=[c],i.push(c),o="avatar"}var u=n.image.fromHit(e,o);_.forEach(t,function(t){t.avatar=u,d(t,e)})}),_.keys(s).length&&i.splice(0,0,{id:"divider-identities",divider:!0,index:"profile"})}o.resolve(i)}).catch(function(e){e&&e.ucode&&404==e.ucode?o.resolve(i):o.reject(e)}),o.promise}function m(e,n){return n=n||t.defer(),e&&e.pubkey?(t.all([c(e.pubkey).then(function(t){t&&(e.name=t.name,e.avatar=t.avatar,e.profile=t.source,e.profile.description=t.description),n.resolve(e)}),u((e.received_cert||[]).concat(e.received_cert_pending||[]).concat(e.given_cert||[]).concat(e.given_cert_pending||[]))]).catch(function(e){n.reject(e)}),n.promise):(n.resolve(),n.promise)}function E(){_.forEach(f,function(e){e()}),f=[]}function b(){f=[a.api.data.on.load(e,m,this),a.api.data.on.search(e,p,this)]}function g(){var e=n.alive;!e&&f&&f.length>0?(console.debug("[ES] [profile] Disable"),E()):!e||f&&0!==f.length||(console.debug("[ES] [profile] Enable"),b())}var f,T=this;return T.raw={getFields:n.get("/user/profile/:id?&_source_exclude=avatar._content&_source=:fields"),get:n.get("/user/profile/:id?&_source_exclude=avatar._content",n.cache.MEDIUM),getAll:n.get("/user/profile/:id",n.cache.MEDIUM),search:n.post("/user/profile/_search",n.cache.MEDIUM),mixedSearch:n.post("/user,page,group/profile,record/_search",n.cache.MEDIUM)},r.ready().then(function(){return n.api.node.on.start(e,g,this),n.api.node.on.stop(e,g,this),g()}),{getAvatarAndName:l,get:c,add:n.record.post("/user/profile",{tagFields:["title","description"]}),update:n.record.post("/user/profile/:id/_update",{tagFields:["title","description"]}),avatar:n.get("/user/profile/:id?_source=avatar"),fillAvatars:u,remove:n.record.remove("user","profile")}}]),angular.module("cesium.es.notification.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esNotification")}]).factory("esNotification",["$rootScope","$q","$timeout","$translate","$state","csHttp","csConfig","csSettings","esHttp","esSettings","csWallet","csWot","UIUtils","filterTranslations","BMA","CryptoUtils","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){"ngInject";function T(e,t){t=t||{},t.codes=t.codes||{},t.codes.excludes=t.codes.excludes||x.EXCLUDED_CODES;var n={bool:{must:[{term:{recipient:e}}]}};if(t.codes&&t.codes.includes)n.bool.must.push({terms:{code:t.codes.includes}});else{var i=[];s.getByPath("plugins.es.notifications.txSent",!1)||i.push("TX_SENT"),s.getByPath("plugins.es.notifications.txReceived",!0)||i.push("TX_RECEIVED"),s.getByPath("plugins.es.notifications.certSent",!1)||i.push("CERT_SENT"),s.getByPath("plugins.es.notifications.certReceived",!0)||i.push("CERT_RECEIVED"),t.codes.excludes&&_.forEach(t.codes.excludes,function(e){i.push(e)}),i.length&&(n.bool.must_not={terms:{code:i}})}return t.readTime&&n.bool.must.push({range:{time:{gt:t.readTime}}}),n}function h(e,n){if(!e)return t.reject("[ES] [notification] Unable to load - missing pubkey");var i={query:T(e,n)};return i.query.bool.must.push({missing:{field:"read_signature"}}),H.raw.postCount(i).then(function(e){return e.count})}function I(e){e=e||{};var t=e.wallet||u;return new Promise(function(e){if(!t.data||!t.data.events||!t.data.events.length)return e([]);var n=o.date.now()-m.MEDIAN_TIME_OFFSET;e((t.data.events||[]).reduce(function(e,i){if("warn"!=i.type&&"error"!=i.type)return e;var a=new EsNotification({},function(e){e.read||(e.read=!0,t.data.notifications&&t.data.notifications.warnCount>0&&t.data.notifications.warnCount--)});return a.id=i.code,a.read=!1,a.state="app.view_wallet",a.avatarIcon="ion-alert-circled",a.icon="ion-alert-circled assertive",a.time=n,a.message=i.message,a.messageParams=i.messageParams,e.concat(a)},[]))})}function v(e){if(e=e||{},!e.pubkey)return t.reject("[ES] [notification] Unable to load - missing options.pubkey");e.from=e.from||0,e.size=e.size||x.DEFAULT_LOAD_SIZE;var n={query:T(e.pubkey,e),sort:[{time:{order:"desc"}}],from:e.from,size:e.size,_source:F.commons};return t.all([I(e),H.raw.postSearch(n)]).then(function(e){var t=e[0]||[];if(e=e[1],!e.hits||!e.hits.total)return t;var n=e.hits.hits.reduce(function(e,t){var n=new EsNotification(t._source,C);return n.id=t._id,e.concat(n)},t);return d.extendAll(n)})}function N(t){if(t&&u.isLogin()){if(_.contains(x.INVITATION_CODES,t.code))return void W.event.raise.newInvitation(t);if(_.contains(x.MESSAGE_CODES,t.code))return void W.event.raise.newMessage(t);var n=new EsNotification(t,C);return d.extendAll([n]).then(function(){e.$$phase?O(n):e.$applyAsync(function(){O(n)})}).then(function(){if(c.notifications.isEmitHtml5Enable())return A(n)})}}function O(e){return u.data.notifications=u.data.notifications||{},u.data.notifications.unreadCount++,W.data.raise.new(e),e}function R(e){return e?String(e).replace(/<[^>]*>/gm,"").replace(/&[^;]+;/gm,""):""}function A(n,o){t.all([i(o||"COMMON.NOTIFICATION.TITLE"),i(n.message,n)]).then(function(t){S(R(t[0]),{body:R(t[1]),icon:n.avatar&&n.avatar.src||"./img/logo.png",lang:i.use(),tag:n.id,onclick:function(){e.$applyAsync(function(){"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&a.go(n.state,n.stateParams)})}})})}function S(e,t){if("Notification"in window)if("granted"===Notification.permission){var n=new Notification(e,t);n.onclick=t.onclick||n.onclick}else"denied"!==Notification.permission&&Notification.requestPermission(function(n){"granted"===n&&S(e,t)})}function C(e){if(!e.read&&e.id){if(!e.id)return void console.error("[ES] [notification] Could not mark as read: no 'id' found!",e);if(u.isAuth())return e.read=!0,u.getKeypair().then(function(t){return b.sign(e.hash,t).then(function(t){return H.raw.postReadById(t,{id:e.id})}).catch(function(e){console.error("[ES] [notification] Error while trying to mark event as read.",e)})})}}function L(e){e.notifications=e.notifications||{},e.notifications.unreadCount=null,e.notifications.warnCount=null,e.notifications.time=null,B&&(console.debug("[ES] [notification] Closing websocket..."),B(),B=null)}function D(e,i){if(i=i||t.defer(),!e||!e.pubkey||!e.keypair)return i.resolve(),i.promise;var a=Date.now(),o=Math.trunc(a/1e3);if(e.notifications&&e.notifications.time&&o-e.notifications.time<30)return e.notifications.warnCount=P(e),console.debug("[ES] [notification] Skipping load (loaded "+(o-e.notifications.time)+"s ago)"),i.resolve(),i.promise;var r=u.isUserPubkey(e.pubkey);return console.debug("[ES] [notification] Loading count..."+e.pubkey.substr(0,8)),h(e.pubkey,{readTime:e.notifications&&e.notifications.time||0,excludeCodes:x.EXCLUDED_CODES}).then(function(t){e.notifications=e.notifications||{},e.notifications.unreadCount=t,e.notifications.warnCount=P(e),t>0&&c.notifications.isEmitHtml5Enable()&&r&&n(function(){A({message:"COMMON.NOTIFICATION.HAS_UNREAD",count:t,state:"app.view_notifications"},e.ui||e.name||e.pubkey&&e.pubkey.substr(0,8))},500),console.debug("[ES] [notification] Loaded count ("+t+") in "+(Date.now()-a)+"ms"),i.resolve(e)}).catch(i.reject),i.promise}function y(e,t){return D(e,t).then(function(){console.debug("[ES] [notification] Starting listen user event...");var t=H.raw.ws.getUserEvent();t.on(N,{pubkey:e.pubkey,locale:s.data.locale.id}).catch(function(e){console.error("[ES] [notification] Unable to listen user event",e),p.alert.error("ACCOUNT.ERROR.WS_CONNECTION_FAILED")}),B=function(){t.close()}})}function P(e){return e.events?e.events.reduce(function(e,t){return"warn"==t.type?e+1:e},0):0}function k(){U=[u.api.data.on.login(e,y,this),u.api.data.on.load(e,D,this),u.api.data.on.init(e,L,this),u.api.data.on.reset(e,L,this)]}function M(){_.forEach(U,function(e){e()}),U=[]}function w(){var e=l.alive;if(!e&&U&&U.length>0)console.debug("[ES] [notification] Disable"),M(),u.isLogin()&&L(u.data);else if(e&&(!U||0===U.length)&&(console.debug("[ES] [notification] Enable"),k(),u.isLogin()))return y(u.data)}var U,B,x={MESSAGE_CODES:["MESSAGE_RECEIVED"],INVITATION_CODES:["INVITATION_TO_CERTIFY"],DEFAULT_LOAD_SIZE:20},F={commons:["type","code","params","reference","recipient","time","hash","read_signature"]},H=this,W=new f(this,"esNotification");return x.EXCLUDED_CODES=x.MESSAGE_CODES.concat(x.INVITATION_CODES),H.raw={postCount:l.post("/user/event/_count"),postSearch:l.post("/user/event/_search"),postReadById:l.post("/user/event/:id/_read"),ws:{getUserEvent:l.ws("/ws/event/user/:pubkey/:locale"),getChanges:l.ws("/ws/_changes")}},W.registerEvent("data","new"),W.registerEvent("event","newInvitation"),W.registerEvent("event","newMessage"),g.ready().then(function(){return l.api.node.on.start(e,w,this),l.api.node.on.stop(e,w,this),w()}),H.load=v,H.unreadCount=h,H.html5={emit:S},H.api=W,H.websocket={event:H.raw.ws.getUserEvent,change:H.raw.ws.getChanges},H.constants=x,H}]),angular.module("cesium.es.message.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esMessage")}]).factory("esMessage",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";function E(e){e.messages=e.messages||{},e.messages.unreadCount=null,e.messages.time=null}function b(e){e.messages&&delete e.messages}function g(t,n){if(n=n||e.defer(),!t||!t.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return t.messages&&t.messages.time&&a-t.messages.time<30?(console.debug("[ES] [message] Skipping load (loaded "+(a-t.messages.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [message] Loading count..."),f({pubkey:t.pubkey}).then(function(e){t.messages=t.messages||{},t.messages.unreadCount=e,t.messages.time=a,console.debug("[ES] [message] Loaded count ("+e+") in "+(Date.now()-i)+"ms"),n.resolve(t)}).catch(function(e){console.error("Error while counting messages: "+(e.message?e.message:e)),n.resolve(t)}),n.promise)}function f(e){e=e||{};var t=e.wallet||e.walletId&&u.children.get(e.walletId)||u,n=e.pubkey||t&&t.data&&t.data.pubkey;if(!n)throw new Error("no pubkey or wallet found in options, and user not connected.");var i={query:{bool:{must:[{term:{recipient:n}},{missing:{field:"read_signature"}}]}}};return c.post("/message/inbox/_count")(i).then(function(e){return e.count})}function T(e,t){console.debug("[ES] [message] detected new message (from notification service)");var n=new EsNotification(e);if(n.issuer=n.pubkey,delete n.pubkey,n.issuer){if(!(t=t||n.issuer&&u.isUserPubkey(n.issuer)&&u||n.issuer&&u.children.getByPubkey(n.issuer)))throw new Error("No wallet for pubkey: {0}".format(n.issuer.substring(0,6)));p.extend(n,"issuer").then(function(){t.data.messages=t.data.messages||{},t.data.messages.unreadCount++,V.data.raise.new(n)})}}function h(e,t){t=t||{};var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;return delete t.wallet,e.issuer=e.issuer||n.data.pubkey,n.getKeypair().then(function(t){return I(e,t).then(function(n){return l.data.plugins.es.message&&angular.isDefined(l.data.plugins.es.message.outbox)&&!l.data.plugins.es.message.outbox?n:I(e,t,"/message/outbox","issuer").catch(function(e){return console.error("Failed to store message to outbox: "+e),n})}).then(function(e){return V.data.raise.sent(e),e})})}function I(e,t,n,i){return n=n||"/message/inbox",d.box.record.pack(e,t,i,["title","content"]).then(function(e){return c.record.post(n)(e,{pubkey:e.issuer,keypair:t})})}function v(t){t=t||{},t.from=t.from||0,t.size=t.size||F.DEFAULT_LOAD_SIZE;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;if(delete t.wallet,!n.isLogin())return e.when([]);var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:n.data.pubkey}}}},from:t.from,size:t.size,_source:H.notifications};return W.postSearch(i).then(function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce(function(e,t){var n=t._source;return n.id=t._id,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)},[]);return p.extendAll(t,"issuer")})}function N(e,t){e=e||u.data.pubkey,t=t||{},t.type=t.type||"inbox",t.from=t.from||0,t.size=t.size||1e3,t._source=t._source||H.commons;var n={sort:{time:"desc"},from:t.from,size:t.size,_source:t._source};return"inbox"==t.type?n.query={bool:{filter:{term:{recipient:e}}}}:n.query={bool:{filter:{term:{issuer:e}}}},W.postSearchByType(n,{type:t.type}).then(function(e){if(!e||!e.hits||!e.hits.total)return[];var n=e.hits.hits.reduce(function(e,n){var i=n._source||{};return i.id=n._id,i.read="outbox"==t.type||!!i.read_signature,delete i.read_signature,e.concat(i)},[]);return console.debug("[ES] [message] Loading {0} {1} messages".format(n.length,t.type)),n})}function O(e){e=e||{},e.type=e.type||"inbox",e._source=H.commons,e.summary=!angular.isDefined(e.summary)||e.summary,e.filter=angular.isDefined(e.filter)?e.filter:void 0,e.from=e.from||0;var t=e.wallet||e.walletId&&u.children.get(e.walletId)||u;delete e.wallet;var n=t.auth().then(function(t){return N(t.pubkey,e).then(function(n){return A(n,t.keypair,e.summary)})}).then(function(t){var n="inbox"==e.type?"issuer":"recipient";return p.extendAll(t,n)}).then(function(n){if(n.length&&e.filter){var i=P(n,e.filter);if(i.length<n.length)return e=angular.copy(e),e.from+=e.size,e.size=n.length-i.length,e.wallet=t,O(e).then(function(e){return i.concat(e)})}return 0!==e.from||e.filter||(t.data.messages=t.data.messages||{},t.data.messages.count=n.length),n});return 0===e.from&&e.filter&&n.then(k),n}function R(e,t,n){return t=t||"inbox",n=n||{},n.summary=!!angular.isDefined(n.summary)&&n.summary,(n.wallet||n.walletId&&u.children.get(n.walletId)||u).auth().then(function(i){return W.getByTypeAndId({id:e,type:t}).then(function(e){if(e.found){var a=e._source;return a.id=e._id,a.read="outbox"==t||!!a.read_signature,delete a.read_signature,A([a],i.keypair,n.summary).then(function(){var e="inbox"==t?"issuer":"recipient";return p.extend(a,e)})}})})}function A(t,n,i){
-var a=Date.now(),r={},s=[d.box.getKeypair(n)];return e.all(t.reduce(function(e,t){return r[t.issuer]?res:e.concat(o.box.keypair.pkFromSignPk(o.util.decode_base58(t.issuer)).then(function(e){r[t.issuer]=e}))},s)).then(function(n){var a=n[0];return e.all(t.reduce(function(e,t){var n=r[t.issuer],s=o.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.box.open(t.title,s,n,a.boxSk).then(function(e){t.title=e}).catch(function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher title"),t.valid=!1}),o.box.open(t.content,s,n,a.boxSk).then(function(e){t.content=e,i?S(t):e&&(t.html=c.util.parseAsHtml(e))}).catch(function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher content"),t.valid=!1}))},[]))}).then(function(){return console.debug("[ES] [message] All messages decrypted in "+(Date.now()-a)+"ms"),t})}function S(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim(),e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"..."))}function C(e,t,n){t=t||"inbox";var i=n.wallet||n.walletId&&u.children.get(n.walletId)||u;return c.record.remove("message",t)(e,{wallet:i}).then(function(n){return"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=i.data.messages.count>0?i.data.messages.count-1:0),i.isDefault()&&V.data.raise.delete(e),n})}function L(t,n){t=t||"inbox";var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then(function(n){return N(n.pubkey,{type:t,from:0,size:1e3,_source:!1}).then(function(n){if(n&&n.length){var a=_.pluck(n,"id");return e.all(n.reduce(function(e,n){return e.concat(c.record.remove("message",t)(n.id,{wallet:i}))},[])).then(function(){return a})}}).then(function(e){"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=0,i.data.messages.unreadCount=0),i.isDefault()&&_.forEach(e,V.data.raise.delete)})})}function D(t,n){n=n||{};var i=n.wallet||n.walletId&&u.children.get(n.walletId)||u,a=n&&n.type||(i.isUserPubkey(t.recipient)?"inbox":"outbox");if(t.read){var r=e.defer();return r.resolve(),r.promise}return t.read=!0,i.getKeypair().then(function(e){return o.sign(t.hash,e)}).then(function(e){return W.postReadById(e,{id:t.id})}).then(function(){"inbox"===a&&(i.data.messages=i.data.messages||{},i.data.messages.unreadCount=i.data.messages.unreadCount?i.data.messages.unreadCount-1:0)})}function y(t){t=t||{};var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;return n.auth().then(function(t){return N(t.pubkey,{type:"inbox",from:0,size:1e3,_source:["hash","read_signature"]}).then(function(n){if(n&&n.length)return n=_.filter(n,{read:!1}),e.all(n.reduce(function(e,n){return e.concat(o.sign(n.hash,t.keypair).then(function(e){return W.postReadById(e,{id:n.id})}))},[]))}).then(function(){n.data.messages=n.data.messages||{},n.data.messages.unreadCount=0})})}function P(e,t){return t&&!t.trim().length?e:(e.forEach(function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim()||"")}),t.trim().split(" ").forEach(function(t){var n=new RegExp(t,"gi");e.forEach(function(e){var i=n.exec(e.title);if(i)for(e.title=e.title.replace(n,"<b>$&</b>"),e.titleMatch=(e.titleMatch||0)+1;(i=n.exec(e.title.substring(i.index+t.length)))&&!(e.titleMatch>=10);)e.titleMatch=e.titleMatch+1;else if(i=n.exec(e.summary)){for(i.index>140&&(e.summary="..."+e.summary.substring(i.index-20)),e.summary=e.summary.replace(n,"<b>$&</b>"),e.contentMatch=(e.contentMatch||0)+1;(i=n.exec(e.summary.substring(i.index+t.length)))&&!(e.contentMatch>=10);)e.contentMatch++;e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"...")}})}),e=_.filter(e,function(e){return e.titleMatch||e.contentMatch}))}function k(e){return _.sortBy(e,function(e){return-1*(1e3*(e.titleMatch||0)+100*(e.contentMatch||0)+e.time/1e10)})}function M(t){var n=s.developers||[{pubkey:"38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"}];t&&t.content&&n&&n.length&&(console.info("[ES] [message] Sending logs to developers..."),t.issuer=u.data.pubkey,t.title=t.title||"Sending log",t.time=moment().utc().unix(),u.getKeypair().then(function(i){return e.all(n.reduce(function(e,n){return n.pubkey?e.concat(I(angular.merge({recipient:n.pubkey},t),i)):e},[]))}).then(function(e){console.info("[ES] [message] Logs sent to {0} developers".format(e.length))}))}function w(){_.forEach(x,function(e){e()}),x=[]}function U(){x=[u.api.data.on.init(t,E,this),u.api.data.on.login(t,g,this),u.api.data.on.load(t,g,this),u.api.data.on.reset(t,b,this),m.api.event.on.newMessage(t,T,this),u.api.error.on.send(t,M,this)]}function B(){var e=c.alive;!e&&x&&x.length>0?(console.debug("[ES] [message] Disable"),w(),u.isLogin()&&b(u.data)):!e||x&&0!==x.length||(console.debug("[ES] [message] Enable"),U(),u.isLogin()&&g(u.data))}var x,F={DEFAULT_LOAD_SIZE:10},H={commons:["issuer","recipient","title","content","time","nonce","read_signature"],notifications:["issuer","time","hash","read_signature"]},W={postSearch:c.post("/message/inbox/_search"),postSearchByType:c.post("/message/:type/_search"),getByTypeAndId:c.get("/message/:type/:id"),postReadById:c.post("/message/inbox/:id/_read")},V=new a(this,"esMessage");return V.registerEvent("data","new"),V.registerEvent("data","delete"),V.registerEvent("data","sent"),r.ready().then(function(){return c.api.node.on.start(t,B,this),c.api.node.on.stop(t,B,this),B()}),{api:V,search:W.postSearch,notifications:{load:v},load:O,get:R,send:h,remove:C,removeAll:L,markAsRead:D,markAllAsRead:y,fields:{commons:H.commons}}}]),angular.module("cesium.es.modal.services",["cesium.modal.services","cesium.es.message.services"]).factory("esModals",["$state","ModalUtils","UIUtils","csWallet",function(e,t,n,i){"ngInject";function a(e){return t.show("plugins/es/templates/message/modal_compose.html","ESMessageComposeModalCtrl",e,{focusFirstInput:!0})}function o(t,i){return n.popover.show(i,{templateUrl:"plugins/es/templates/common/popover_notification.html",scope:t,autoremove:!1,afterHidden:t.resetUnreadCount}).then(function(t){t&&(t.onRead&&"function"==typeof t.onRead&&t.onRead(),t.state&&e.go(t.state,t.stateParams))})}function r(e){return i.auth({minData:!0}).then(function(i){return n.loading.hide(),i.isMember?t.show("plugins/es/templates/invitation/modal_new_invitation.html","ESNewInvitationModalCtrl",e):n.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")})}function s(a){var o=a&&a.wallet||i;return o.auth({minData:!0}).then(function(){return n.loading.hide(),t.show("plugins/es/templates/registry/modal_record_type.html",void 0,{title:"REGISTRY.EDIT.TITLE_NEW"}).then(function(t){t&&e.go("app.registry_add_record",{type:t,wallet:o.id})})})}return{showMessageCompose:a,showNotifications:o,showNewInvitation:r,showNewPage:s}}]),angular.module("cesium.es.blockchain.services",["cesium.services","cesium.es.http.services"]).factory("esBlockchain",["$rootScope","$q","$timeout","BMA","esHttp",function(e,t,n,i,a){"ngInject";return function(){var e=i.constants.regexp.PUBKEY,t={DEFAULT_SEARCH_SIZE:40,ES_CORE_API_ENDPOINT:"ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))"},n={SEARCH_FILTER:{TX_PUBKEY:new RegExp("\\(transactions\\.issuers:("+e+") OR transactions\\.outputs:\\*("+e+")\\)([ ]+AND)?"),ISSUER:new RegExp("issuer:("+e+")([ ]+AND)?"),MEMBER_FLOWS:new RegExp("\\(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded\\)([ ]+AND)?"),EXISTING_TRANSACTION:new RegExp("_exists_:transactions([ ]+AND)?"),PERIOD:new RegExp("medianTime:>=?([0-9]+)[ ]+AND[ ]+medianTime:<=?([0-9]+)([ ]+AND)?")},LAST_AND:/[ ]+AND$/},o={MINIMAL:["number","hash","medianTime","issuer"],COMMONS:["number","hash","medianTime","issuer","currency","version","powMin","dividend","membersCount","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions"]},r={node:{},block:{},raw:{block:{search:a.post("/:currency/block/_search",a.cache.SHORT),searchText:a.get("/:currency/block/_search?q=:text"),get:a.get("/:currency/block/:number/_source",a.cache.SHORT)}},regexp:{ES_CORE_API_ENDPOINT:function(e){return new RegExp("^"+e+"$")}(t.ES_CORE_API_ENDPOINT)}};return r.regex=r.regexp,r.node.parseEndPoint=function(e){var t=r.regexp.ES_CORE_API_ENDPOINT.exec(e);if(t)return{dns:t[2]||"",ipv4:t[4]||"",ipv6:t[6]||"",port:t[8]||80}},r.raw.block.processSearchResult=function(e,t){t=t||{},t.excludeCurrent=!angular.isDefined(t.excludeCurrent)||t.excludeCurrent,t.fillAvatar=!angular.isDefined(t.fillAvatar)||t.fillAvatar,t.cleanData=!angular.isDefined(t.cleanData)||t.cleanData;var n=!1;return{hits:(e&&e.hits&&e.hits.hits||[]).reduce(function(e,i){if("current"==i._id&&t.excludeCurrent)return n=!0,e;if(!i._source)return e;var a=new Block(i._source);return t.cleanData&&a.cleanData(),e.concat(a)},[]),took:e.took,total:e&&e.hits&&e.hits.total?n?e.hits.total-1:e.hits.total:0}},r.block.search=function(e,n){var i=n?angular.copy(n):{};return delete i.excludeCurrent,delete i.fillAvatar,delete i.skipData,i.from=i.from||0,i.size=i.size||t.DEFAULT_SEARCH_SIZE,i._source=n._source||o.COMMONS,n._source&&"*"==n._source&&delete i._source,r.raw.block.search(i,{currency:e}).then(function(e){return r.raw.block.processSearchResult(e,n)})},r.block.searchText=function(e,n,i){i&&angular.isUndefined(i.excludeCurrent)&&(i.excludeCurrent=!0);var a=i?angular.copy(i):{};return delete a.excludeCurrent,delete a.fillAvatar,delete a.skipData,a.from=a.from||0,a.size=a.size||t.DEFAULT_SEARCH_SIZE,a._source=i._source||o.COMMONS.join(","),i._source&&"*"==i._source&&delete a._source,a.currency=e,a.text=n||"",r.raw.block.searchText(a).then(function(e){return r.raw.block.processSearchResult(e,i)})},r.block.parseSearchText=function(e,t){var i=e;return t=_.keys(n.SEARCH_FILTER).reduce(function(e,t){var a=n.SEARCH_FILTER[t].exec(i);if(a){var o=a[0];i=i.replace(o,""),o=o.replace(n.LAST_AND,"");var r={type:t,text:o,params:a};return e.concat(r)}return e},t||[]),{filters:t,text:i.trim()}},r}()}]),angular.module("cesium.es.group.services",["cesium.platform","cesium.es.http.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.comment.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGroup")}]).factory("esGroup",["$q","$rootScope","csPlatform","BMA","csSettings","esHttp","CryptoUtils","csWot","csWallet","esNotification","esComment",function(e,t,n,i,a,o,r,s,l,c,u){"ngInject";function d(e){e.groups=e.groups||{},e.groups.unreadCount=null}function p(e){e.groups&&delete e.groups}function m(t,n){return n=n||e.defer(),t&&t.pubkey?(c.unreadCount(t.pubkey,{codes:{includes:["GROUP_INVITATION"],excludes:[]}}).then(function(e){t.groups=t.groups||{},t.groups.unreadCount=e,console.debug("[ES] [group] Detecting "+e+" unread notifications"),n.resolve(t)}).catch(function(e){console.error("Error while counting group notifications: "+(e.message?e.message:e)),n.resolve(t)}),n.promise):(n.resolve(),n.promise)}function E(e,t){if(e){var n=e._source;return t&&e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(data.tags=e.highlight.tags.reduce(function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))},[]))),t&&(n.description=o.util.parseAsHtml(n.description)),n.avatar=o.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce(function(e,t){return e.concat(o.image.fromAttachment(t.file))},[])),n}}function b(e){return A._internal.search(e).then(function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce(function(e,t){var n=E(t,!0);return n.id=t._id,n?e.concat(n):e},[]);return console.debug("[ES] [group] Loading {0} groups".format(t.length)),t})}function g(e){return e=e||{},b({sort:{time:"desc"},from:e.from||0,size:e.size||O,_source:e._source||R.list})}function f(e){e=e||{};var t=e.text&&e.text.trim();if(!t)return g(e);var n={from:e.from||0,size:e.size||O,highlight:{fields:{title:{},tags:{}}},_source:e._source||R.list},a=[],o=[];if(i.regexp.PUBKEY.test(t))o.push({term:{issuer:t}}),o.push({term:{pubkey:t}});else{t=t.toLowerCase();var r=["title","description"];a.push({multi_match:{query:t,fields:r,type:"phrase_prefix"}}),a.push({match:{title:t}}),a.push({match:{description:t}})}return n.query={bool:{}},a.length>0&&(n.query.bool.should=a),o.length>0&&(n.query.bool.filter=o),b(n)}function T(e,t){return t=t||{},t.fecthPictures=!!angular.isDefined(t.fetchPictures)&&t.fetchPictures,t.html=!angular.isDefined(t.html)||t.html,(t.fecthPictures?A._internal.get({id:e}):A._internal.getCommons({id:e})).then(function(e){var n=E(e,t.html);return s.extend({pubkey:n.issuer}).then(function(t){return{id:e._id,issuer:t,record:n}})})}function h(){_.forEach(N,function(e){e()}),N=[]}function I(){N=[l.api.data.on.login(t,m,this),l.api.data.on.init(t,d,this),l.api.data.on.reset(t,p,this)]}function v(){var e=o.alive;!e&&N&&N.length>0?(console.debug("[ES] [group] Disable"),h(),l.isLogin()&&p(l.data)):!e||N&&0!==N.length||(console.debug("[ES] [group] Enable"),I(),l.isLogin()&&m(l.data))}var N,O=50,R={list:["issuer","title","description","type","creationTime","avatar._content_type"],commons:["issuer","title","description","creationTime","time","signature"],notifications:["issuer","time","hash","read_signature"]},A={_internal:{}};return A._internal.search=o.post("/group/record/_search"),A._internal.get=o.get("/group/record/:id"),A._internal.getCommons=o.get("/group/record/:id?_source="+R.commons.join(",")),n.ready().then(function(){return o.api.node.on.start(t,v,this),o.api.node.on.stop(t,v,this),v()}),{record:{last:g,search:f,load:T,add:o.record.post("/group/record",{tagFields:["title","description"]}),update:o.record.post("/group/record/:id/_update",{tagFields:["title","description"]}),remove:o.record.remove("group","record"),fields:{commons:R.commons},picture:{all:o.get("/group/record/:id?_source=pictures")},comment:u.instance("group")}}}]),angular.module("cesium.es.invitation.services",["cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esInvitation")}]).factory("esInvitation",["$rootScope","$q","CryptoUtils","csPlatform","Api","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c){"ngInject";function u(e){e.invitations=e.invitations||{},e.invitations.unreadCount=null,e.invitations.time=null}function d(e){e.invitations&&delete e.invitations}function p(e,n){if(n=n||t.defer(),!e||!e.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return e.invitations&&e.invitations.time&&a-e.invitations.time<30?(console.debug("[ES] [invitation] Skipping load (loaded "+(a-e.invitations.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [invitation] Loading count..."),b(e.pubkey).then(function(t){e.invitations=e.invitations||{},e.invitations.unreadCount=t,e.invitations.time=a,console.debug("[ES] [invitation] Loaded count ("+t+") in "+(Date.now()-i)+"ms"),n.resolve(e)}).catch(function(t){console.error("Error while counting invitation: "+(t.message?t.message:t)),n.resolve(e)}),n.promise)}function m(e){if(r.data.invitations&&r.data.invitations.list){var n=_.where(r.data.invitations.list,{type:"certification",pubkey:e.pubkey});if(n&&n.length)return t.all(n.reduce(function(e,t){return e.concat(h(t))},[]))}}function E(t){if(console.debug("[ES] [invitation] detected new invitation (from notification service)"),!r.isAuth())return void e.$applyAsync(function(){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++});f(t.reference.id,t.reference.type).then(function(e){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++,r.data.invitations.list&&r.data.invitations.list.splice(0,0,e),D.data.raise.new(e)})}function b(e){if(!(e=e||(r.isLogin()?r.data.pubkey:e)))throw new Error("User not connected or no pubkey");var t={query:{bool:{must:[{term:{recipient:e}}]}}};return o.post("/invitation/certification/_count")(t).then(function(e){return e.count})}function g(e,t){t=t||{},t.type=t.type||"certification";var n=t.keypair||t.wallet&&t.wallet.data.keypair;return s.box.record.pack(e,n,"recipient",["content","comment"]).then(function(e){return S.raw[t.type].add(e,t)})}function f(e,n){return n=n||"certification",t.all([s.box.getKeypair(),S.raw[n].get({id:e,fields:L.commons.join(",")})]).then(function(e){var t=e[0],n=e[1],i=n._source;return i.id=n._id,i.type=n._type,s.box.record.open([i],t,"issuer",["content","comment"])}).then(function(e){var t=e[0];if(t&&t.valid){var n=new Invitation(t);return l.extendAll(n.issuer?[n,n.issuer]:[n],"pubkey").then(function(){return n})}})}function T(e,n){if(!r.isLogin())return t.when([]);e=e||{},e.from=e.from||0,e.size=e.size||C.DEFAULT_LOAD_SIZE;var i=e.issuer||r.data.pubkey,a={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:i}}}},from:e.from,size:e.size,_source:L.commons};return e.readTime&&(query.bool.must=[{range:{time:{gt:e.readTime}}}]),S.raw.certification.postSearch(a).then(function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce(function(e,t){var n=t._source;return n.id=t._id,n.type=t._type,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)},[]);return s.box.record.open(t,n,"issuer",["content","comment"])}).then(function(t){var n=[];return t=t.reduce(function(e,t){if(!t||!t.valid)return e;var i=new Invitation(t);return n.push(i),i.issuer&&n.push(i.issuer),e.concat(i)},[]),l.extendAll(n,"pubkey").then(function(){return r.data.invitations=r.data.invitations||{},r.data.invitations.list?(r.data.invitations.list.length&&r.data.invitations.list.splice(e.from,r.data.invitations.list.length-e.from),_.forEach(t,function(e){r.data.invitations.list.push(e)})):r.data.invitations.list=t,r.data.invitations.list})})}function h(e,t){if(!e||!e.id)throw"Invalid invitation (empty or without id). Could not delete.";var n=e.type||"certification",i=t&&t.walletId&&r.children.get(t.walletId)||r;return S.raw[n].remove(e.id,{wallet:i}).then(function(){i.data.invitations.unreadCount=0,i.data.invitations&&i.data.invitations.list&&i.data.invitations.list.splice(i.data.invitations.list.indexOf(e),1)})}function I(e,n,i){return e&&e.length?(n=n||"certification",t.all(e.reduce(function(e,t){return e.concat(S.raw[n].remove(t,i))},[]))):t.when()}function v(e,t){e=e||"certification";var n=Date.now();console.debug("[ES] [invitation] Deleting all {0} invitations...".format(e));var i=t&&t.pubkey&&r.children.getByPubkey(t.pubkey)||t&&t.walletId&&r.children.getByPubkey(t.walletId)||r,a=i.data.invitations&&i.data.invitations.count||0,o=i.data.invitations&&i.data.invitations.unreadCount||0;return S.raw[e].getIds({pubkey:i.data.pubkey}).then(function(t){if(t&&t.hits&&t.hits.total){return I(t.hits.hits.reduce(function(e,t){return e.concat(t._id)},[]),e,{walletId:i.id}).then(function(){i.data.invitations=i.data.invitations||{},i.data.invitations.count>=a?i.data.invitations.count-=a||0:i.data.invitations.count=0,i.data.invitations.unreadCount>=o?i.data.invitations.unreadCount-=o||0:i.data.invitations.unreadCount=0,console.debug("[ES] [invitation] All {0} invitations deleted in {1}ms".format(e,Date.now()-n))})}})}function N(){_.forEach(A,function(e){e()}),A=[]}function O(){A=[r.api.data.on.init(e,u,this),r.api.data.on.login(e,p,this),r.api.data.on.load(e,p,this),r.api.data.on.reset(e,d,this),r.api.action.on.certify(e,m,this),c.api.event.on.newInvitation(e,E,this)]}function R(){var e=o.alive;!e&&A&&A.length>0?(console.debug("[ES] [invitations] Disable"),N(),r.isLogin()&&d(r.data)):!e||A&&0!==A.length||(console.debug("[ES] [invitations] Enable"),O(),r.isLogin()&&p(r.data))}var A,S=this,C={DEFAULT_LOAD_SIZE:20},L={commons:["issuer","time","hash","content","nonce","comment"]},D=new a(this,"esInvitation");return S.raw={certification:{get:o.get("/invitation/certification/:id?_source:fields"),add:o.record.post("/invitation/certification"),postSearch:o.post("/invitation/certification/_search"),remove:o.record.remove("invitation","certification"),getIds:o.get("/invitation/certification/_search?q=recipient::pubkey&_source=false&size=1000")}},D.registerEvent("data","new"),i.ready().then(function(){return o.api.node.on.start(e,R,this),o.api.node.on.stop(e,R,this),R()}),S.api=D,S.load=T,S.get=f,S.send=g,S.delete=h,S.deleteByIds=I,S.deleteAll=v,S.constants=C,S}]),angular.module("cesium.es.subscription.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSubscription")}]).factory("esSubscription",["$rootScope","$q","$timeout","esHttp","$state","$sce","$sanitize","esSettings","CryptoUtils","UIUtils","csWallet","csWot","BMA","csPlatform","esWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){"ngInject";function b(e){e.subscriptions=null}function g(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [subscription] Loading subscriptions count..."),C.raw.count({pubkey:e.pubkey}).then(function(t){e.subscriptions=e.subscriptions||{},e.subscriptions.count=t&&t.hits&&t.hits.total,console.debug("[ES] [subscription] Loaded count ("+e.subscriptions.count+")"),n.resolve(e)}).catch(function(t){console.error("[ES] [subscription] Error while counting subscription: "+(t.message?t.message:t)),n.resolve(e)}),n.promise):(n.resolve(),n.promise)}function f(e,t){return C.raw.getAll({issuer:e}).then(function(e){var n=e&&e.hits&&e.hits.total&&e.hits.hits.reduce(function(e,t){var n=t._source;return n.id=t._id,e.concat(n)},[])||[];return E.box.record.open(n,t,"issuer","issuerContent").then(function(e){return _.forEach(e,function(e){e.content=JSON.parse(e.issuerContent||"{}"),delete e.issuerContent,delete e.recipientContent}),e})})}function T(e,n){if(!(e&&e.type&&e.content&&e.recipient))return t.reject("Missing arguments 'record' or 'record.type' or 'record.content' or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then(function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])}).then(function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,C.raw.add(n,{wallet:i}).then(function(t){return e.id=t,e})})}function h(e,n){if(!e||!e.content||!e.recipient)return t.reject("Missing arguments 'record' or 'record.content', or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then(function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])}).then(function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,C.raw.update(n,{id:e.id,wallet:i}).then(function(){return e})})}function I(){if(C.raw.categories&&C.raw.categories.length){var e=t.defer();return e.resolve(C.raw.categories),e.promise}return C.raw.category.all().then(function(e){if(0===e.hits.total)C.raw.categories=[];else{var t=e.hits.hits.reduce(function(e,t){var n=t._source;return n.id=t._id,e.concat(n)},[]);_.forEach(t,function(e){t[e.id]=e}),C.raw.categories=t}return C.raw.categories})}function v(e){return C.raw.category.get(e).then(function(e){var t=e._source;return t.id=e._id,t})}function N(){_.forEach(A,function(e){e()}),A=[]}function O(){A=[u.api.data.on.load(e,g,this),u.api.data.on.init(e,b,this),u.api.data.on.reset(e,b,this)]}function R(){var e=i.alive;if(!e&&A&&A.length>0){if(console.debug("[ES] [subscription] Disable"),N(),u.isLogin())return b(u.data)}else if(e&&(!A||0===A.length)&&(console.debug("[ES] [subscription] Enable"),O(),u.isLogin()))return g(u.data)}var A,S={},C=this;return C.raw={getAll:i.get("/subscription/record/_search?_source_excludes=recipientContent&q=issuer::issuer"),count:i.get("/subscription/record/_search?size=0&q=issuer::pubkey"),add:i.record.post("/subscription/record"),update:i.record.post("/subscription/record/:id/_update"),category:{get:i.get("/subscription/category/:id"),all:i.get("/subscription/category/_search?sort=order&from=0&size=1000&_source=name,parent,key")}},m.ready().then(function(){return i.api.node.on.start(e,R,this),i.api.node.on.stop(e,R,this),R()}),C.record={load:f,add:T,update:h,remove:i.record.remove("subscription","record")},C.category={all:I,get:v},C.constants=S,C}]),angular.module("cesium.es.wallet.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.crypto.services"]).factory("esWallet",["$q","$rootScope","$timeout","CryptoUtils","csPlatform","csWallet","esCrypto","esProfile","esHttp",function(e,t,n,i,a,o,r,s,l){"ngInject";function c(e){e.avatar=null,e.profile=null,e.name=null,o.events.cleanByContext("esWallet"),e.keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function u(t,n){return n=n||e.defer(),r.box.getKeypair(t.keypair).then(function(e){t.keypair.boxSk=e.boxSk,t.keypair.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),n.resolve()}),n.promise}function d(e){e=e||o.data,e.keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function p(t,a){if(a=a||e.defer(),!t||!t.pubkey||!t.keypair)return a.resolve(),a.promise;if(!i.isLoaded())return console.debug("[ES] [wallet] Waiting crypto lib loading..."),n(function(){return p(t,a)},50);console.debug("[ES] [wallet] Loading user avatar+name...");var o=Date.now();return s.getAvatarAndName(t.pubkey).then(function(e){e?(t.name=e.name,t.avatarStyle=e.avatarStyle,t.avatar=e.avatar,console.debug("[ES] [wallet] Loaded user avatar+name in "+(Date.now()-o)+"ms")):console.debug("[ES] [wallet] No user avatar+name found"),a.resolve(t)}).catch(function(e){a.reject(e)}),a.promise}function m(t,n){n=n||e.defer(),o.events.cleanByContext("esWallet"),!t.name&&!t.requirements.revoked&&t.requirements.pendingMembership&&t.requirements.needCertificationCount>0&&o.events.add({type:"info",message:"ACCOUNT.EVENT.MEMBER_WITHOUT_PROFILE",context:"esWallet"}),console.debug("[ES] [wallet] Loading full user profile...");var i=Date.now();return s.get(t.pubkey).then(function(e){e&&(t.name=e.name,t.avatar=e.avatar,t.profile=e.source,t.profile.description=e.description,console.debug("[ES] [wallet] Loaded full user profile in "+(Date.now()-i)+"ms")),n.resolve()}),n.promise}function E(t){if(!t&&!o.isAuth())throw new Error("Unable to get box keypair: user not authenticated !");return(t?e.when(t):o.getKeypair({silent:!0})).then(function(t){return t&&t.boxPk&&t.boxSk?e.when(t):r.box.getKeypair(t).then(function(e){return t.boxSk=e.boxSk,t.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),t})})}function b(){T=[o.api.data.on.login(t,p,this),o.api.data.on.load(t,m,this),o.api.data.on.init(t,c,this),o.api.data.on.reset(t,c,this),o.api.data.on.unauth(t,d,this),o.api.data.on.auth(t,u,this)]}function g(){_.forEach(T,function(e){e()}),T=[]}function f(){var e=l.alive;if(!e&&T&&T.length>0){if(console.debug("[ES] [wallet] Disable"),g(),o.isLogin())return c(o.data)}else if(e&&(!T||0===T.length)&&(console.debug("[ES] [wallet] Enable"),b(),o.isLogin()))return p(o.data)}var T,h=this;return a.ready().then(function(){return l.api.node.on.start(t,f,this),l.api.node.on.stop(t,f,this),f()}),h.box={getKeypair:E,record:{pack:function(e,t,n,i,a){return E(t).then(function(t){return r.box.pack(e,t,n,i,a)})},open:function(e,t,n,i){return E(t).then(function(t){return r.box.open(e,t,n,i)})}}},h}]),angular.module("cesium.es.wot.services",["ngResource","cesium.es.http.services"]).factory("esWot",["$rootScope","$q","esHttp","csCache",function(e,t,n,i){"ngInject";var a=i.get("esWot-memberships-",i.constants.MEDIUM),o={user:{event:n.post("/user/event/_search")}},r=function(e,n){n=n||{};var i=!1!==n.cache?a.get(e):null;if(i)return t.when(i);var r={size:1e3,query:{bool:{filter:[{term:{recipient:e}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return o.user.event(r).then(function(t){if(t.hits&&t.hits.total){var n,i=t.hits.hits.reduce(function(e,t){var i="MEMBER_JOIN"==t._source.code||"MEMBER_ACTIVE"==t._source.code;return i&&!n?n=t._source.time:!i&&n&&(e=e.concat({joinTime:n,leaveTime:t._source.time}),n=0),e},[]);return n&&i.push({joinTime:n,leaveTime:moment().utc().unix()}),a.put(e,i),i}})},s=function(){console.debug("[ES] [wot] Clean cache..."),i.clear("esWot-")};return n.api.node.on.stop(e,s,this),{memberships:r}}]),angular.module("cesium.es.tx.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.wot.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esTx")}]).factory("esTx",["$q","$rootScope","csPlatform","csCurrency","csTx","esHttp","esWot",function(e,t,n,i,a,o,r){"ngInject";function s(e,t){return t<=0?e:e*Math.pow(10,t)}function l(t,n){return n=n||e.defer(),t=t||{},t.pubkey||n.reject("Missing [pubkey] when calling [loadUDs] extension point"),e.all([i.get(),r.memberships(t.pubkey)]).then(function(n){var i=n[0]&&n[0].name,a=n[1];if(i&&a&&a.length)return-1!==t.fromTime&&(a=a.reduce(function(e,n){return n.leaveTime<t.fromTime?e:(n.joinTime=Math.max(n.joinTime,t.fromTime),e.concat(n))},[])),e.all(a.reduce(function(e,n){var a={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}},{range:{medianTime:{from:n.joinTime+1,to:n.leaveTime}}}]}}}},size:t.size||1e4,from:t.from||0,sort:{medianTime:"desc"},_source:["medianTime","number","dividend","unitbase"]};return e.concat(m.block.search(a,{currency:i}))},[]))}).then(function(e){if(e&&e.length)return e.reduce(function(e,t){return t.hits.total&&t.hits.hits.length?e.concat(t.hits.hits.reduce(function(e,t){var n=t._source;return e.concat({time:n.medianTime,amount:s(n.dividend,n.unitbase),isUD:!0,block_number:n.number})},[])):t},[])}).then(function(e){n.resolve(e)}).catch(function(e){n.reject(e)}),n.promise}function c(){p=[a.api.data.on.loadUDs(t,l,this)]}function u(){_.forEach(p,function(e){e()}),p=[]}function d(){var e=o.alive;!e&&p&&p.length>0?(console.debug("[ES] [tx] Disable"),u()):!e||p&&0!==p.length||(console.debug("[ES] [tx] Enable"),c())}var p,m={block:{search:o.post("/:currency/block/_search")}};return n.ready().then(function(){return o.api.node.on.start(t,d,this),o.api.node.on.stop(t,d,this),d()}),{}}]),angular.module("cesium.es.geo.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGeo")}]).factory("esGeo",["$rootScope","$q","csConfig","csSettings","csHttp",function(e,t,n,i,a){"ngInject";function o(e){var t=e.trim().replace(/\n/g,",");return t=t.replace(/(?:^|[\t\n\r\s ])([A−Z09-]+)(?:$|[\t\n\r\s ])/g,""),t=t.replace(/,[ ,]+/g,", ")}function r(e){return p.raw.google.search({address:e,key:p.raw.google.apiKey}).then(function(e){if(e&&e.results&&e.results.length)return e.results.reduce(function(e,t){return e.concat({display_name:t.address_components&&t.address_components.reduce(function(e,t){return t.long_name?e.concat(t.long_name):e},[]).join(", "),lat:t.geometry&&t.geometry.location&&t.geometry.location.lat,lon:t.geometry&&t.geometry.location&&t.geometry.location.lng})},[])})}function s(e,t){return console.debug("[ES] [geo] Search position failed on [OSM]. Trying [google] service"),r(t).catch(function(t){throw console.debug("[ES] [geo] Search position failed on [google] service"),e||t})}function l(e){"string"==typeof e&&(e={q:e}),e.q&&(e.q=o(e.q)),e.addressdetails=1
-;var t=Date.now();return p.raw.osm.search(e).then(function(e){if(e)return e=e.reduce(function(e,t){return"waterway"!=t.class&&"railway"!=t.class&&t.address?(t.address.city=t.address.city||t.address.village||t.address.town||t.address.postcode,t.address.road=t.address.road||t.address.suburb||t.address.hamlet,t.address.postcode&&t.address.city==t.address.postcode&&delete t.address.postcode,t.address.city?e.concat({id:t.place_id,name:t.display_name,address:t.address,lat:t.lat,lon:t.lon,class:t.class,license:p.raw.osm.license}):e):e},[]),console.debug("[ES] [geo] Found {0} address position(s)".format(e&&e.length||0,Date.now()-t),e),e.length?e:void 0}).catch(function(t){return s(t,e.q?e.q:(e.street?e.street+", ":"")+e.city+(e.country?", "+e.country:""))})}function c(){var e=t.defer();return navigator.geolocation?navigator.geolocation.getCurrentPosition(function(t){if(!t||!t.coords)return void console.error("[ES] [geo] navigator geolocation > Unknown format:",t);e.resolve({lat:t.coords.latitude,lon:t.coords.longitude})},function(t){e.reject(t)},{timeout:5e3}):e.reject(),e.promise}function u(e){return p.raw.freegeoip.search({ip:e}).then(function(e){return e?{lat:e.latitude,lng:e.longitude}:void 0})}function d(e,t,n,i,a){var o=Math.PI*e/180,r=Math.PI*n/180,s=t-i,l=Math.PI*s/180,c=Math.sin(o)*Math.sin(r)+Math.cos(o)*Math.cos(r)*Math.cos(l);return c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"km"==a?1.609344*c:"N"==a?.8684*c:c}var p=this;p.raw={osm:{search:a.get("nominatim.openstreetmap.org",443,"/search.php?format=json"),license:{name:"OpenStreetMap",url:"https://www.openstreetmap.org/copyright"}},google:{apiKey:void 0,search:a.get("maps.google.com",443,"/maps/api/geocode/json")},freegeoip:{search:a.get("freegeoip.net",443,"/json/:ip"),license:{name:"freegeoip",url:"https://freegeoip.net"}}},p.raw.google.apiKey=n.plugins&&n.plugins.es&&n.plugins.es.googleApiKey;var m=!!p.raw.google.apiKey;return i.ready().then(function(){function t(e){m||(p.raw.google.apiKey=e.plugins.es.googleApiKey),p.raw.google.enable=p.raw.google.apiKey&&e.plugins&&e.plugins.es&&e.plugins.es.enableGoogleApi}i.api.data.on.changed(e,t,this),t(i.data)}),{point:{current:c,searchByAddress:l,distance:d,ip:{search:u,license:p.raw.freegeoip.license}},google:{isEnable:function(){return p.raw.google.enable&&p.raw.google.apiKey},searchByAddress:r}}}]),angular.module("cesium.es.document.services",["ngResource","cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esDocument")}]).factory("esDocument",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","csWot","csWallet","esHttp",function(e,t,n,i,a,o,r,s,l,c,u,d){"ngInject";function p(e,t){t.issuerField=t.issuerField||"pubkey";var n=(e&&e.hits&&e.hits.hits||[]).reduce(function(e,n){var i=n._source||{};return i.index=n._index,i.type=n._type,i.id=n._id,i.pubkey=i.issuer||t.issuerField&&i[t.issuerField],i.time=i.time||t.getTimeFunction&&t.getTimeFunction(i),e.concat(i)},[]),i=n.reduce(function(e,t){return t.recipient?(t.recipient={pubkey:t.recipient},e.concat(t.recipient)):e},[]);return c.extendAll(n.concat(i)).then(function(){return{hits:n,took:e.took,total:e&&e.hits&&e.hits.total||0}})}function m(e){e=e||{};var t,n;if("movement"==e.type?e.sort?(t=e.sort.split(":"),n=t.length>1?t[1]:"desc",e.sort=[{"stats.medianTime":{nested_path:"stats",order:n}}],e._source=f.peer,e.getTimeFunction=function(e){return e.time=e.stats&&e.stats.medianTime,e.time}):e.sort="stats.medianTime:desc":"movement"==e.type&&(e.sort?(t=e.sort.split(":"),n=t.length>1?t[1]:"desc",e.sort=[{medianTime:{order:n}}],e._source=f.movement,e.getTimeFunction=function(e){return e.time=e.medianTime,e.time}):e.sort="medianTime:desc"),!e||!e.index||!e.type)throw new Error("Missing mandatory options [index, type]");var i={from:e.from||0,size:e.size||_.DEFAULT_LOAD_SIZE,sort:e.sort||{time:"desc"},_source:e._source||f.commons};return e.query&&(i.query=e.query),T.search(i,{index:e.index,type:e.type}).then(function(t){return p(t,e)})}function E(e,t){t=t||{};var n={text:e,index:t.index||"user",type:t.type||"event",from:t.from||0,size:t.size||_.DEFAULT_LOAD_SIZE,sort:t.sort||"time:desc",_source:t._source||f.commons.join(",")};console.debug("[ES] [wallet] [document] [{0}/{1}] Loading documents...".format(t.index,t.type));var i=Date.now();return T.searchText(n).then(function(e){return p(e,t)}).then(function(e){return console.debug("[ES] [document] [{0}/{1}] Loading {2} documents in {3}ms".format(t.index,t.type,e&&e.hits&&e.hits.length||0,Date.now()-i)),e})}function b(t,n){return t&&t.index&&t.type&&t.id?d.record.remove(t.index,t.type)(t.id,n):e.reject("Could not remove document: missing mandatory fields")}function g(t,n){if(t&&t.length){var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then(function(){return e.all(t.reduce(function(e,t){return e.concat(d.record.remove(t.index,t.type)(t.id,{wallet:i}))},[]))})}}var _={DEFAULT_LOAD_SIZE:40},f={commons:["issuer","pubkey","hash","time","recipient","nonce","read_signature"],peer:["*"],movement:["*"]},T={search:d.post("/:index/:type/_search"),searchText:d.get("/:index/:type/_search?q=:text")};return{search:m,searchText:E,remove:b,removeAll:g,fields:{commons:f.commons}}}]),ESPicturesEditController.$inject=["$scope","UIUtils","$q","Device"],ESSocialsEditController.$inject=["$scope","$focus","$filter","UIUtils","SocialUtils"],ESSocialsViewController.$inject=["$scope"],ESCommentsController.$inject=["$scope","$filter","$state","$focus","$timeout","$anchorScroll","UIUtils"],ESCategoryModalController.$inject=["$scope","UIUtils","$timeout","parameters"],ESAvatarModalController.$inject=["$scope"],ESPositionEditController.$inject=["$scope","csConfig","esGeo","ModalUtils"],ESLookupPositionController.$inject=["$scope","$q","csConfig","esGeo","ModalUtils"],ESSearchPositionItemController.$inject=["$scope","$timeout","ModalUtils","csConfig","esGeo"],ESSearchPositionModalController.$inject=["$scope","$q","$translate","esGeo","parameters"],angular.module("cesium.es.common.controllers",["ngResource","cesium.es.services"]).controller("ESPicturesEditCtrl",ESPicturesEditController).controller("ESPicturesEditCtrl",ESPicturesEditController).controller("ESSocialsEditCtrl",ESSocialsEditController).controller("ESSocialsViewCtrl",ESSocialsViewController).controller("ESCommentsCtrl",ESCommentsController).controller("ESCategoryModalCtrl",ESCategoryModalController).controller("ESAvatarModalCtrl",ESAvatarModalController).controller("ESPositionEditCtrl",ESPositionEditController).controller("ESLookupPositionCtrl",ESLookupPositionController).controller("ESSearchPositionItemCtrl",ESSearchPositionItemController).controller("ESSearchPositionModalCtrl",ESSearchPositionModalController),ESExtensionController.$inject=["$scope","esSettings","PluginService"],ESMenuExtendController.$inject=["$scope","$state","$controller","UIUtils","csWallet"],ESProfilePopoverExtendController.$inject=["$scope","$q","$state","esSettings","csWallet"],angular.module("cesium.es.app.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&(e.extendState("app",{points:{"nav-buttons-right":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"},"menu-user":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"}}}),e.extendState("app",{points:{"profile-popover-user":{templateUrl:"plugins/es/templates/common/popover_profile_extend.html",controller:"ESProfilePopoverExtendCtrl"}}}))}]).controller("ESExtensionCtrl",ESExtensionController).controller("ESMenuExtendCtrl",ESMenuExtendController).controller("ESProfilePopoverExtendCtrl",ESProfilePopoverExtendController),ESExtendSettingsController.$inject=["$scope","PluginService"],ESPluginSettingsController.$inject=["$scope","$window","$q","$translate","$ionicPopup","UIUtils","Modals","csHttp","csConfig","csSettings","esHttp","esSettings"],angular.module("cesium.es.settings.controllers",["cesium.es.services"]).config(["PluginServiceProvider","$stateProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(e.extendState("app.settings",{points:{plugins:{templateUrl:"plugins/es/templates/settings/settings_extend.html",controller:"ESExtensionCtrl"}}}),t.state("app.es_settings",{url:"/settings/es",views:{menuContent:{templateUrl:"plugins/es/templates/settings/plugin_settings.html",controller:"ESPluginSettingsCtrl"}}}))}]).controller("ESExtendSettingsCtrl",ESExtendSettingsController).controller("ESPluginSettingsCtrl",ESPluginSettingsController),angular.module("cesium.es.currency.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.extendState("app.currency.tab_blocks",{points:{"nav-buttons":{templateUrl:"plugins/es/templates/currency/tab_blocks_extend.html",controller:"ESExtensionCtrl"}}})}]),ESWalletController.$inject=["$scope","$controller","$state","esModals","csWallet"],angular.module("cesium.es.wallet.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.extendStates(["app.view_wallet","app.view_wallet_by_id"],{points:{"after-general":{templateUrl:"plugins/es/templates/wallet/view_wallet_extend.html",controller:"ESWalletCtrl"}}}).extendState("app.view_wallets",{points:{"item-wallet":{templateUrl:"plugins/es/templates/wallet/item_wallet_extend.html",controller:"ESExtensionCtrl"}}})}]).controller("ESWalletCtrl",ESWalletController),ESWotLookupExtendController.$inject=["$scope","$controller","$state"],ESWotIdentityViewController.$inject=["$scope","$ionicPopover","$q","$controller","UIUtils","Modals","csWallet","esModals","esWallet","esInvitation"],angular.module("cesium.es.wot.controllers",["cesium.es.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&t.extendState("app.wot_lookup",{points:{tabs:{templateUrl:"plugins/es/templates/wot/lookup_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.wot_lookup_lg",{points:{top:{templateUrl:"plugins/es/templates/wot/lookup_lg_extend.html",controller:"ESWotLookupExtendCtrl"}}}).extendStates(["app.wot_identity","app.wot_identity_uid"],{points:{"after-general":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"buttons-top-fab":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"}}}).extendStates(["app.wot_cert","app.wot_cert_lg","app.wallet_cert","app.wallet_cert_lg"],{points:{"nav-buttons":{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"}}})}]).controller("ESWotLookupExtendCtrl",ESWotLookupExtendController).controller("ESWotIdentityViewCtrl",ESWotIdentityViewController),ESRegistryLookupController.$inject=["$scope","$focus","$timeout","$filter","$controller","$location","$translate","$ionicPopover","Device","UIUtils","ModalUtils","BMA","csSettings","csWallet","esModals","esRegistry","esHttp"],ESWalletPagesController.$inject=["$scope","$controller","$timeout","UIUtils","esModals","csWallet"],ESRegistryRecordViewController.$inject=["$scope","$rootScope","$state","$q","$timeout","$ionicPopover","$ionicHistory","$translate","$anchorScroll","csConfig","csWallet","esRegistry","UIUtils","esHttp"],ESRegistryRecordEditController.$inject=["$scope","$timeout","$state","$q","$ionicHistory","$focus","$translate","$controller","Device","UIUtils","ModalUtils","csWallet","esHttp","esRegistry"],angular.module("cesium.es.registry.controllers",["cesium.es.services","cesium.es.common.controllers"]).config(["$stateProvider",function(e){"ngInject";e.state("app.wot_lookup.tab_registry",{url:"/page?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{tab_registry:{templateUrl:"plugins/es/templates/registry/tabs/tab_registry.html",controller:"ESRegistryLookupCtrl"}},data:{large:"app.registry_lookup_lg",silentLocationChange:!0}}).state("app.registry_lookup_lg",{url:"/wot/page/lg?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{menuContent:{templateUrl:"plugins/es/templates/registry/lookup_lg.html",controller:"ESRegistryLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wallet_pages",{url:"/account/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.wallet_pages_by_id",{url:"/wallets/:id/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.view_page",{url:"/page/view/:id/:title?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.view_page_anchor",{url:"/page/view/:id/:title/:anchor",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.registry_add_record",{cache:!1,url:"/page/add/:type?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}}).state("app.registry_edit_record",{cache:!1,url:"/page/edit/:id/:title?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}})}]).controller("ESRegistryLookupCtrl",ESRegistryLookupController).controller("ESWalletPagesCtrl",ESWalletPagesController).controller("ESRegistryRecordViewCtrl",ESRegistryRecordViewController).controller("ESRegistryRecordEditCtrl",ESRegistryRecordEditController),ESViewEditProfileController.$inject=["$scope","$q","$timeout","$state","$focus","$translate","$controller","$ionicHistory","$ionicPopover","UIUtils","csWallet","esHttp","esProfile","ModalUtils","Device"],angular.module("cesium.es.profile.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_profile",{url:"/wallet/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{auth:!0}}).state("app.edit_profile_by_id",{url:"/wallets/:id/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{login:!0}})}]).controller("ESViewEditProfileCtrl",ESViewEditProfileController),ESMessageAbstractListController.$inject=["$scope","$state","$translate","$ionicHistory","$ionicPopover","$timeout","csWallet","esModals","UIUtils","esMessage"],ESMessageInboxListController.$inject=["$scope","$controller"],ESMessageOutboxListController.$inject=["$scope","$controller"],ESMessageComposeController.$inject=["$scope","$controller"],ESMessageComposeModalController.$inject=["$scope","Modals","UIUtils","csWallet","esHttp","esMessage","parameters"],ESMessageViewController.$inject=["$scope","$state","$timeout","$translate","$ionicHistory","$ionicPopover","UIUtils","esModals","esMessage","csWallet"],PopoverMessageController.$inject=["$scope","UIUtils","$state","csWallet","esHttp","esMessage","esModals","$timeout"],angular.module("cesium.es.message.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.user_message",{url:"/user/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup.html"}}}).state("app.user_message.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_inbox"}}).state("app.user_message.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_outbox"}}).state("app.user_messages_lg_inbox",{url:"/user/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_by_id",{url:"/wallets/:id/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_by_id.html"}}}).state("app.user_messages_by_id.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_inbox_by_id"}}).state("app.user_messages_by_id.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_outbox_by_id"}}).state("app.user_messages_lg_inbox_by_id",{url:"/wallets/:id/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}}}).state("app.user_messages_lg_outbox",{url:"/user/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_lg_outbox_by_id",{url:"/wallets/:id/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}}}).state("app.user_new_message",{cache:!1,url:"/user/message/new?pubkey&uid&title&content&isReply",views:{menuContent:{templateUrl:"plugins/es/templates/message/compose.html",controller:"ESMessageComposeCtrl"}}}).state("app.user_view_message",{cache:!1,url:"/user/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_view_message_by_id",{cache:!1,url:"/wallets/:id/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}}})}]).controller("ESMessageAbstractListCtrl",ESMessageAbstractListController).controller("ESMessageInboxListCtrl",ESMessageInboxListController).controller("ESMessageOutboxListCtrl",ESMessageOutboxListController).controller("ESMessageComposeCtrl",ESMessageComposeController).controller("ESMessageComposeModalCtrl",ESMessageComposeModalController).controller("ESMessageViewCtrl",ESMessageViewController).controller("PopoverMessageCtrl",PopoverMessageController),NotificationsController.$inject=["$scope","$ionicPopover","$state","$timeout","UIUtils","esHttp","csWallet","esNotification"],PopoverNotificationsController.$inject=["$scope","$timeout","$controller","$state","UIUtils","csWallet"],angular.module("cesium.es.notification.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.view_notifications",{url:"/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}}).state("app.view_notifications_by_id",{url:"/wallets/:id/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}})}]).controller("NotificationsCtrl",NotificationsController).controller("PopoverNotificationsCtrl",PopoverNotificationsController),ESBlockLookupController.$inject=["$scope","$controller","$ionicPopover","$location","UIUtils","esBlockchain"],angular.module("cesium.es.blockchain.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.lookup_blocks_currency",{url:"/currencies/:currency/blocks?q",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}}}).state("app.blockchain_search",{url:"/blockchain/search?q&type",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESBlockLookupCtrl",ESBlockLookupController),angular.module("cesium.es.network.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.extendState("app.network",{points:{buttons:{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}})}]),ESGroupListController.$inject=["$scope","UIUtils","$state","csWallet","esGroup","ModalUtils"],ESGroupViewController.$inject=["$scope","$state","$ionicPopover","$ionicHistory","$translate","UIUtils","csConfig","esGroup","csWallet"],ESGroupEditController.$inject=["$scope","esGroup","UIUtils","$state","$q","Device","$ionicHistory","ModalUtils","$focus","esHttp"],angular.module("cesium.es.group.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.groups",{url:"/group?type&location",views:{menuContent:{templateUrl:"plugins/es/templates/group/lookup.html",controller:"ESGroupListCtrl"}}}).state("app.add_group",{url:"/group/add/:type",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.edit_group",{url:"/group/edit/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.view_group",{url:"/group/view/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/view_record.html",controller:"ESGroupViewCtrl"}}})}]).controller("ESGroupListCtrl",ESGroupListController).controller("ESGroupViewCtrl",ESGroupViewController).controller("ESGroupEditCtrl",ESGroupEditController),InvitationsController.$inject=["$scope","$q","$ionicPopover","$state","$timeout","UIUtils","csWallet","esHttp","esModals","esNotification","esInvitation"],PopoverInvitationController.$inject=["$scope","$controller","csWallet"],NewInvitationModalController.$inject=["$scope","$q","Modals","UIUtils","csWallet","esHttp","esWallet","esInvitation","parameters"],angular.module("cesium.es.invitation.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.view_invitations",{url:"/invitations?id",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{auth:!0}}).state("app.view_invitations_by_id",{url:"/wallets/:id/invitations",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{login:!0}})}]).controller("InvitationsCtrl",InvitationsController).controller("PopoverInvitationCtrl",PopoverInvitationController).controller("ESNewInvitationModalCtrl",NewInvitationModalController),ViewSubscriptionsController.$inject=["$scope","$q","$ionicHistory","csWot","csWallet","UIUtils","ModalUtils","esSubscription"],ModalEmailSubscriptionsController.$inject=["$scope","Modals","csSettings","esHttp","csWot","parameters"],angular.module("cesium.es.subscription.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_subscriptions",{cache:!1,url:"/wallet/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{auth:!0,minData:!0}}).state("app.edit_subscriptions_by_id",{cache:!1,url:"/wallets/:id/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{login:!0,minData:!0}})}]).controller("ViewSubscriptionsCtrl",ViewSubscriptionsController).controller("ModalEmailSubscriptionsCtrl",ModalEmailSubscriptionsController),ESDocumentLookupController.$inject=["$scope","$ionicPopover","$location","$timeout","csSettings","csWallet","UIUtils","esHttp","esDocument"],angular.module("cesium.es.document.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.document_search",{url:"/data/search/:index/:type?q",views:{menuContent:{templateUrl:"plugins/es/templates/document/lookup.html",controller:"ESDocumentLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESDocumentLookupCtrl",ESDocumentLookupController),angular.module("cesium.graph.plugin",["cesium.graph.services","cesium.graph.common.controllers","cesium.graph.blockchain.controllers","cesium.graph.network.controllers","cesium.graph.currency.controllers","cesium.graph.account.controllers","cesium.graph.docstats.controllers","cesium.graph.synchro.controllers"]),angular.module("cesium.graph.services",["cesium.graph.color.services","cesium.graph.data.services"]),angular.module("cesium.graph.data.services",["cesium.wot.services","cesium.es.http.services","cesium.es.wot.services"]).factory("gpData",["$rootScope","$q","$timeout","esHttp","BMA","csWot","csCache","esWot",function(e,t,n,i,a,o,r,s){"ngInject";function l(e,t){return t<=0?e:e*Math.pow(10,t)}function c(e){return e=e||{},e.maxRangeSize=e.maxRangeSize||30,e.defaultTotalRangeCount=e.defaultTotalRangeCount||2*e.maxRangeSize,e.rangeDuration=e.rangeDuration||"day",e.endTime=e.endTime||moment().utc().add(1,e.rangeDuration).unix(),e.startTime=e.startTime||moment.unix(e.endTime).utc().subtract(e.defaultTotalRangeCount,e.rangeDuration).unix(),e.firstBlockTime&&e.startTime<e.firstBlockTime&&(e.startTime=e.firstBlockTime),e}var u=r.get("gpData-currency-",r.constants.SHORT),d={node:{},wot:{},blockchain:{},docstat:{},synchro:{execution:{}},raw:{block:{search:i.post("/:currency/block/_search")},blockstat:{search:i.post("/:currency/blockstat/_search")},movement:{search:i.post("/:currency/movement/_search")},user:{event:i.post("/user/event/_search?pretty")},docstat:{search:i.post("/docstat/record/_search")},synchro:{search:i.post("/:currency/synchro/_search")}},regex:{}};return d.blockchain.countByIssuer=function(e){var t={size:0,aggs:{blocksByIssuer:{terms:{field:"issuer",size:0}}}};return d.raw.block.search(t,{currency:e}).then(function(e){var t=e.aggregations;if(t.blocksByIssuer&&t.blocksByIssuer.buckets&&t.blocksByIssuer.buckets.length){var n={blockCount:e.hits.total};return n.data=(t.blocksByIssuer.buckets||[]).reduce(function(e,t){return e.concat(t.doc_count)},[]),n.issuers=(t.blocksByIssuer.buckets||[]).reduce(function(e,t){return e.concat({pubkey:t.key})},[]),o.extendAll(n.issuers).then(function(){return n.labels=n.issuers.reduce(function(e,t){return e.concat(t.name||t.uid||t.pubkey.substr(0,8))},[]),n})}})},d.blockchain.withDividend=function(e,n){n=n||{};var i=!angular.isDefined(n.withCache)||n.withCache,o=[e,JSON.stringify(n)].join("-");if(i){var r=u.get(o);if(r){if(!r.blocks){var s=t.defer();return r.then(function(e){return s.resolve(e),e}),s.promise}return console.debug("[graph] monetaryMass for ["+e+"] found in cache"),t.when(r)}}var c={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}}]}}}},size:n.size||1e4,from:n.from||0,_source:["medianTime","number","dividend","monetaryMass","membersCount","unitbase"],sort:{medianTime:"asc"}},p=t.all([n.withCurrent?a.blockchain.current().catch(function(e){if(!e||e.ucode!=a.errorCodes.NO_CURRENT_BLOCK)throw e}):t.when(),d.raw.block.search(c,{currency:e})]).then(function(e){var t=e[0];if(e=e[1],e.hits.total&&e.hits.hits.length){var n={};if(n.blocks=e.hits.hits.reduce(function(e,t){var n=t._source;return n.dividend=l(n.dividend,n.unitbase),delete n.unitbase,e.concat(n)},[]),t){var i=n.blocks.length&&t.medianTime-n.blocks[n.blocks.length-1].medianTime;i&&i>=3600&&(t.dividend=l(t.dividend,t.unitbase),delete t.unitbase,n.blocks.push(t))}return n.times=n.blocks.reduce(function(e,t){return e.concat(t.medianTime)},[]),u.put(o,n),n}});return u.put(o,p),p},d.blockchain.txCount=function(e,n){n=c(n);for(var i=[],a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[];a.isBefore(o);){r.push({from:a.unix(),to:a.add(1,n.rangeDuration).unix()});if(r.length===n.maxRangeSize||!a.isBefore(o)){var s={size:0,aggs:{tx:{range:{field:"medianTime",ranges:r},aggs:{txCount:{stats:{field:"txCount"}},txAmount:{stats:{field:"txAmount"}}}}}};n.issuer&&(s.query={bool:{filter:{term:{issuer:n.issuer}}}}),r=[],10==i.length?(console.error("Too many parallel jobs!"),a=moment.unix(n.endTime).utc()):i.push(d.raw.blockstat.search(s,{currency:e}).then(function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce(function(e,t){return e.concat({from:t.from,to:t.to,count:t.txCount.sum||0,amount:t.txAmount.sum||0,avgByBlock:Math.round(100*t.txCount.avg)/100,maxByBlock:t.txCount.max})},[])}))}}return t.all(i).then(function(e){return e=e.reduce(function(e,t){return t&&t.length?e.concat(t):e},[]),e=_.sortBy(e,"from"),{count:_.pluck(e,"count"),avgByBlock:_.pluck(e,"avgByBlock"),maxByBlock:_.pluck(e,"maxByBlock"),amount:e.reduce(function(e,t){return e.concat(t.amount/100)},[]),times:_.pluck(e,"from")}})},d.node.blockCount=function(e,t){var n={size:0,query:{bool:{filter:{term:{issuer:t}}}}};return d.raw.block.search(n,{currency:e}).then(function(e){return e.hits.total})},d.raw.movement.getByRange=function(e,t,n){if(!t)throw new Error("Missing 'pubkey' argument!");var i={size:0,query:{bool:{should:[{term:{recipient:t}},{term:{issuer:t}}]}},aggs:{tx:{range:{field:"medianTime",ranges:n},aggs:{received:{filter:{term:{recipient:t}},aggs:{received_stats:{stats:{field:"amount"}}}},sent:{filter:{term:{issuer:t}},aggs:{sent_stats:{stats:{field:"amount"}}}}}}}};return d.raw.movement.search(i,{currency:e}).then(function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce(function(e,t){var n=t.sent.sent_stats,i=t.received.received_stats;return e.concat({from:t.from,to:t.to,sent:n.sum?-n.sum/100:0,received:i.sum?i.sum/100:0})},[])})},d.raw.movement.getUds=function(e,t,n){var i={size:0,query:{bool:{should:[{exists:{field:"dividend"}}]}},aggs:{ud:{range:{field:"medianTime",ranges:t},aggs:{ud_stats:{stats:{field:"dividend"}},unitbase_stats:{stats:{field:"unitbase"}}}}}};return d.raw.block.search(i,{currency:e}).then(function(e){var t=e.aggregations;if(t.ud&&t.ud.buckets&&t.ud.buckets.length)return(t.ud.buckets||[]).reduce(function(e,t){return e[n[t.from]]=l(t.ud_stats.sum,t.unitbase_stats.min)/100,e},{})})},d.blockchain.movement=function(e,n){function i(e){if(l.push(e),E&&E.joinTime<e.to){var t={from:Math.max(E.joinTime,e.from),to:Math.min(E.leaveTime,e.to)};for(u.push(t),p[t.from]=e.from;E&&E.leaveTime&&E.leaveTime<e.to;)E=m.pop()}}n=c(n),n.withUD=!angular.isDefined(n.withUD)||n.withUD;var a=[];if(n.withUD&&!n.memberships)return s.memberships(n.pubkey).then(function(t){return n.memberships=t||[],d.blockchain.movement(e,n)});var o=moment.unix(n.startTime).utc().startOf(n.rangeDuration),r=moment.unix(n.endTime).utc().startOf(n.rangeDuration),l=[],u=[],p={},m=angular.copy(n.memberships).reverse(),E=m.pop();for(i({from:0,to:o.unix()});o.isBefore(r);){i({from:o.unix(),to:o.add(1,n.rangeDuration).unix()});(!a.length&&l.length==n.maxRangeSize+1||a.length&&l.length==n.maxRangeSize||!o.isBefore(r))&&(u.length?a.push(t.all([d.raw.movement.getUds(e,u,p),d.raw.movement.getByRange(e,n.pubkey,l)]).then(function(e){var t=e[0];return e=e[1],e.forEach(function(e){e.ud=t[e.from]||0}),e})):a.push(d.raw.movement.getByRange(e,n.pubkey,l).then(function(e){return e.forEach(function(e){e.ud=0}),e})),l=[])}return t.all(a).then(function(e){if(e=e.reduce(function(e,t){return t&&t.length?e.concat(t):e},[]),e.length){e=_.sortBy(e,"from");var t=e.splice(0,1)[0],n=t.received+t.sent+t.ud;return{
-times:_.pluck(e,"from"),ud:_.pluck(e,"ud"),sent:_.pluck(e,"sent"),received:_.pluck(e,"received"),balance:e.reduce(function(e,t){return n+=t.received+t.sent+t.ud,e.concat(n)},[])}}})},d.wot.certifications=function(e){return e=c(e),o.load(e.pubkey).then(function(t){if(t){var n={};_.forEach(t.given_cert||[],function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].given++}),_.forEach(t.received_cert||[],function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].received++}),n=_.sortBy(_.values(n),"time");var i={times:_.pluck(n,"time"),deltaGiven:_.pluck(n,"given"),deltaReceived:_.pluck(n,"received")},a=0;return i.given=i.deltaGiven.reduce(function(e,t){return a+=t,e.concat(a)},[]),a=0,i.received=i.deltaReceived.reduce(function(e,t){return a+=t,e.concat(a)},[]),i}})},d.wot.memberships=function(e){e=e||{};var t={size:1e3,query:{bool:{filter:[{term:{recipient:e.pubkey}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return d.raw.user.event(t).then(function(e){if(e.hits&&e.hits.total){var t,n=e.hits.hits.reduce(function(e,n){var i="MEMBER_JOIN"==n._source.code||"MEMBER_ACTIVE"==n._source.code;return i&&!t?t=n._source.time:!i&&t&&(e=e.concat({joinTime:t,leaveTime:n._source.time}),t=0),e},[]);return t&&n.push({joinTime:t,leaveTime:moment().utc().unix()}),n}})},d.docstat.get=function(e){e=c(e);for(var n=[],i=moment.unix(e.startTime).utc().startOf(e.rangeDuration),a=moment.unix(e.endTime).utc().startOf(e.rangeDuration),o=[];i.isBefore(a);){o.push({from:i.unix(),to:i.add(1,e.rangeDuration).unix()});if(o.length===e.maxRangeSize||!i.isBefore(a)){var r={size:0,aggs:{range:{range:{field:"time",ranges:o},aggs:{index:{terms:{field:"index",size:0},aggs:{type:{terms:{field:"indexType",size:0},aggs:{max:{max:{field:"count"}}}}}}}}}};o=[];var s={};10==n.length?(console.error("Too many parallel jobs!"),i=moment.unix(e.endTime).utc()):n.push(d.raw.docstat.search(r).then(function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce(function(e,t){var n={from:t.from,to:t.to};return _.forEach(t.index&&t.index.buckets||[],function(e){var t=e.key;_.forEach(e.type&&e.type.buckets||[],function(e){var i=t+"_"+e.key;n[i]=e.max.value,s[i]||(s[i]=!0)})}),e.concat(n)},[])}))}}return t.all(n).then(function(e){return e=e.reduce(function(e,t){return t&&t.length?e.concat(t):e},[]),e=_.sortBy(e,"from"),_.keys(s).reduce(function(t,n){return t[n]=_.pluck(e,n),t},{times:_.pluck(e,"from")})})},d.synchro.execution.get=function(e){e=c(e);for(var n=[],i=moment.unix(e.startTime).utc().startOf(e.rangeDuration),a=moment.unix(e.endTime).utc().startOf(e.rangeDuration),o=[];i.isBefore(a);){o.push({from:i.unix(),to:i.add(1,e.rangeDuration).unix()});if(o.length===e.maxRangeSize||!i.isBefore(a)){var r={size:0,aggs:{range:{range:{field:"time",ranges:o},aggs:{api:{terms:{field:"api",size:0},aggs:{peer_count:{cardinality:{field:"peer"}}}},duration:{sum:{field:"executionTime"}},result:{nested:{path:"result"},aggs:{inserts:{sum:{field:"result.inserts"}},updates:{sum:{field:"result.updates"}},deletes:{sum:{field:"result.deletes"}}}}}}}};o=[];var s={};10==n.length?(console.error("Too many parallel jobs!"),i=moment.unix(e.endTime).utc()):n.push(d.raw.synchro.search(r,{currency:e.currency}).then(function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce(function(e,t){var n={from:t.from,to:t.to,inserts:t.result.inserts.value,updates:t.result.inserts.value,deletes:t.result.deletes.value,duration:t.duration.value};return _.forEach(t.api&&t.api.buckets||[],function(e){n[e.key]=e.peer_count&&e.peer_count.value||0,s[e.key]||(s[e.key]=!0)}),e.concat(n)},[])}))}}return t.all(n).then(function(e){e=e.reduce(function(e,t){return t&&t.length?e.concat(t):e},[]),e=_.sortBy(e,"from");var t={times:_.pluck(e,"from"),inserts:_.pluck(e,"inserts"),updates:_.pluck(e,"updates"),deletes:_.pluck(e,"deletes"),duration:_.pluck(e,"duration")};return _.keys(s).forEach(function(n){t[n]=_.pluck(e,n)}),t})},d}]),angular.module("cesium.graph.color.services",[]).factory("gpColor",function(){"ngInject";var e={css2Rgb:{white:[255,255,255],assertive:[239,71,58],calm:[17,193,243],positive:[56,126,245],balanced:[51,205,95],energized:[255,201,0],royal:[136,106,234],gray:[150,150,150],stable:[248,248,248]}},t={scale:{}};return t.scale.custom=function(e,t,n,i){function a(e){switch(e){case 0:return 0;case 1:return-1;case 2:return 0;case 3:return 1}}t=t>0&&t||.55;for(var o=Math.round(e/2.5),r=n&&3==n.length?angular.copy(n):[255,0,0],s=i&&3==i.length?angular.copy(i):[0,2,3],l=n?[Math.round(255/o),Math.round(255/o),Math.round(255/o)]:[Math.round((r[0]-50)/o),Math.round((255-r[1])/o),Math.round((255-r[2])/o)],c=[a(s[0]),a(s[1]),a(s[2])],u=[0,0,0],d=[],p=0;p<e;p++){for(var m=0;m<3;m++)r[m]+=c[m]*l[m],u[m]++,((r[m]<=0||r[m]>=255)&&0!==c[m]||0===c[m]&&u[m]==o)&&(r[m]<=0?r[m]=0:r[m]>=255&&(r[m]=255),s[m]=(s[m]+1)%4,c[m]=a(s[m]),u[m]=0);d.push("rgba("+r[0]+","+r[1]+","+r[2]+","+t+")")}return d},t.scale.default=function(){return t.scale.custom(25)},t.scale.fix=function(e,n){return Array.apply(null,Array(e||25)).map(String.prototype.valueOf,n||t.rgba.calm(.5))},t.rgba=_.mapObject(e.css2Rgb,function(e){var t="rgba("+e.join(",")+",";return function(n){return!n||n<0?"rgb("+e.join(",")+")":t+n+")"}}),t.rgba.translucent=function(){return"rgb(0,0,0,0)"},t.constants=e,t}),GpCurrencyAbstractController.$inject=["$scope","$filter","$ionicPopover","$ionicHistory","$state","csSettings","csCurrency","esHttp","UIUtils"],angular.module("cesium.graph.common.controllers",["cesium.services"]).controller("GpCurrencyAbstractCtrl",GpCurrencyAbstractController),GpBlockchainTxCountController.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor"],GpBlockchainIssuersController.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData"],angular.module("cesium.graph.blockchain.controllers",["chart.js","cesium.services","cesium.graph.services"]).config(["$stateProvider",function(e){"ngInject";e.state("app.blockchain_stats",{url:"/blockchain/stats?currency&stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}}).state("app.currency_blockchain_stats",{url:"/:currency/blockchain/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}})}]).controller("GpBlockchainTxCountCtrl",GpBlockchainTxCountController).controller("GpBlockchainIssuersCtrl",GpBlockchainIssuersController),GpNetworkViewExtendController.$inject=["$scope","PluginService","esSettings"],GpPeerViewExtendController.$inject=["$scope","$timeout","PluginService","esSettings","csCurrency","gpData"],angular.module("cesium.graph.network.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{buttons:{templateUrl:"plugins/graph/templates/network/view_network_extend.html",controller:"GpNetworkViewExtendCtrl"}}}).extendState("app.view_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_peer_extend.html",controller:"GpPeerViewExtendCtrl"}}}),e.state("app.view_peer_stats",{url:"/network/peer/:pubkey/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/network/view_peer_stats.html",controller:"GpBlockchainTxCountCtrl"}}}))}]).controller("GpNetworkViewExtendCtrl",GpNetworkViewExtendController).controller("GpPeerViewExtendCtrl",GpPeerViewExtendController),GpCurrencyViewExtendController.$inject=["$scope","PluginService","UIUtils","esSettings"],GpCurrencyMonetaryMassController.$inject=["$scope","$controller","$q","$state","$translate","UIUtils","gpColor","gpData","$filter","csSettings"],GpCurrencyDUController.$inject=["$scope","$q","$controller","$translate","gpColor","gpData","$filter","UIUtils"],GpCurrencyMembersCountController.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.currency.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";e.state("app.currency.tab_parameters_stats",{url:"/parameters/stats",views:{"tab-parameters":{templateUrl:"plugins/graph/templates/currency/tabs/tab_parameters_stats.html"}}}).state("app.currency.tab_wot_stats",{url:"/community/stats",views:{"tab-wot":{templateUrl:"plugins/graph/templates/currency/tabs/tab_wot_stats.html",controller:"GpCurrencyMembersCountCtrl"}}}).state("app.currency.tab_network_stats",{url:"/network/stats",views:{"tab-network":{templateUrl:"plugins/graph/templates/currency/tabs/tab_network_stats.html"}}}).state("app.currency.tab_blocks_stats",{url:"/blocks/stats",views:{"tab-blocks":{templateUrl:"plugins/graph/templates/currency/tabs/tab_blocks_stats.html"}}}).state("app.currency_stats_lg",{url:"/currency/stats/lg?hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/currency/view_stats_lg.html"}}}),n.plugins&&n.plugins.es&&t.extendStates(["app.currency_name","app.currency","app.currency_name_lg","app.currency_lg"],{points:{"parameters-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"wot-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"network-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"}}}).extendStates(["app.currency.tab_blocks"],{points:{buttons:{templateUrl:"plugins/graph/templates/currency/tab_blocks_extend.html",controller:"GpCurrencyViewExtendCtrl"}}})}]).controller("GpCurrencyViewExtendCtrl",GpCurrencyViewExtendController).controller("GpCurrencyMonetaryMassCtrl",GpCurrencyMonetaryMassController).controller("GpCurrencyDUCtrl",GpCurrencyDUController).controller("GpCurrencyMembersCountCtrl",GpCurrencyMembersCountController),GpExtendController.$inject=["$scope","PluginService","esSettings","$state","csWallet"],GpAccountBalanceController.$inject=["$scope","$controller","$q","$state","$filter","$translate","csWot","gpData","gpColor","csWallet"],GpAccountSumTxController.$inject=["$scope","$controller","$filter","$state","csTx","gpColor"],GpAccountCertificationController.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor","csWallet"],angular.module("cesium.graph.account.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(t.extendState("app.view_wallet_tx",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.view_wallet_tx_by_id",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.wot_identity",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_extend.html",controller:"GpExtendCtrl"}}}).extendStates(["app.wot_identity_tx_uid","app.wot_identity_tx_uid_lg"],{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_tx_extend.html",controller:"GpExtendCtrl"}}}),e.state("app.view_wallet_stats",{url:"/wallet/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.view_wallet_stats_by_id",{url:"/wallets/:id/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.wot_identity_stats",{url:"/wot/:pubkey/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}}}))}]).controller("GpExtendCtrl",GpExtendController).controller("GpAccountBalanceCtrl",GpAccountBalanceController).controller("GpAccountSumTxCtrl",GpAccountSumTxController).controller("GpAccountCertificationCtrl",GpAccountCertificationController),GpDocStatsController.$inject=["$scope","$state","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.docstats.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";e.state("app.doc_stats_lg",{url:"/data/stats?stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}});n.plugins&&n.plugins.es}]).controller("GpDocStatsCtrl",GpDocStatsController),GpSynchroController.$inject=["$scope","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.synchro.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";e.state("app.doc_synchro_lg",{url:"/data/synchro?stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}});n.plugins&&n.plugins.es}]).controller("GpSynchroCtrl",GpSynchroController),angular.module("cesium.map.plugin",["ui-leaflet","cesium.map.services","cesium.map.wot.controllers","cesium.map.registry.controllers","cesium.map.network.controllers","cesium.map.user.controllers","cesium.map.settings.controllers","cesium.map.help.controllers"]).config(function(){"ngInject";L.AwesomeMarkers.Icon.prototype.options.prefix="ion"}),angular.module("cesium.map.services",["cesium.map.wot.services","cesium.map.registry.services","cesium.map.utils.services"]),angular.module("cesium.map.wot.services",["cesium.services"]).factory("mapWot",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){"ngInject";function s(e){e=e||{};var t={bool:{}};if(e.searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest){var n={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}};console.debug("[map] [wot] Filtering on bounds: ",e.bounds),t.bool.must=t.bool.must||[],t.bool.must.push({geo_bounding_box:n})}return t}function l(t){t=t||{},t.from=t.from||0,t.size=t.size||d.DEFAULT_LOAD_SIZE,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!!angular.isDefined(t.fields.description)&&t.fields.description;var n={query:s(t),from:0,size:t.size,_source:t.fields.description?p.profile.concat("description"):p.profile},i=u.raw.profile.search;return e.all([i(n),o.wot.member.uids(),o.wot.member.pending().then(function(e){return e.memberships&&e.memberships.length?e.memberships:[]})]).then(function(a){var o=a[1],r=a[2],a=a[0];if(!a.hits||!a.hits.total)return[];r=r.reduce(function(e,t){if("IN"==t.membership&&!o[t.pubkey]){var n={uid:t.uid,pubkey:t.pubkey,block:t.blockNumber,blockHash:t.blockHash,pending:!0},i=e[t.pubkey];if(i&&n.block>i.block)return e;e[n.pubkey]=n}return e},{});var s=[c(t,o,r,a)];for(n.from+=n.size;n.from<a.hits.total;)s.push(i(angular.copy(n)).then(function(e){return e.hits&&e.hits.hits.length?c(t,o,r,e):[]})),n.from+=n.size;return e.all(s).then(function(e){return e.reduce(function(e,t){return e.concat(t)},[])})})}function c(t,i,a,o){var s=new RegExp("[,]"),l=[],c=o.hits.hits.reduce(function(e,o){var r=o._id,c=i[r],u=c&&{uid:c}||a[r]||{};if(u.pubkey=r,u.index=o._index,u.city=o._source.city,u.address=o._source.address,u.geoPoint=o._source.geoPoint,u.geoPoint&&u.geoPoint.lat&&u.geoPoint.lon)u.geoPoint.lat&&"string"==typeof u.geoPoint.lat&&(u.geoPoint.lat=parseFloat(u.geoPoint.lat.replace(s,"."))),u.geoPoint.lon&&"string"==typeof u.geoPoint.lon&&(u.geoPoint.lon=parseFloat(u.geoPoint.lon.replace(s,".")));else{if(!t.searchAddress||!u.city)return e;u.searchAddress=u.city&&(o._source.address?o._source.address+", ":"")+u.city,l.push(u)}return u.avatar=n.image.fromHit(o,"avatar"),u.name=o._source.title,u.name&&u.name.length>30&&(u.name=u.name.substr(0,27)+"..."),u.description=o._source.description&&n.util.parseAsHtml(o._source.description),u.geoPoint?e.concat(u):e},[]);if(l.length){var u=Date.now();console.debug("[map] [wot] Search positions of {0} addresses...".format(l.length));var d=0;return e.all(l.reduce(function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then(function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,c.push(t),d++)}).catch(function(){})):e},[])).then(function(){return console.debug("[map] [wot] Resolved {0}/{1} addresses in {2}ms".format(d,l.length,Date.now()-u)),c})}return e.when(c)}var u=this,d={DEFAULT_LOAD_SIZE:1e3},p={min:["title","geoPoint"],profile:["title","geoPoint","avatar._content_type","address","city"]};return u.raw={profile:{search:n.post("/user/profile/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:l}}]),angular.module("cesium.map.registry.services",["cesium.services"]).factory("mapRegistry",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){"ngInject";function s(e){e=e||{};var t={bool:{}};return e.searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest&&(t.bool.should=t.bool.should||{},t.bool.should.geo_bounding_box={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}}),t}function l(t){t=t||{},t.from=t.from||0,t.size=t.size||d.DEFAULT_LOAD_SIZE,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!angular.isDefined(t.fields.description)||t.fields.description;var n={query:s(t),from:0,size:t.size,_source:t.fields.description?p.record.concat("description"):p.record},i=u.raw.profile.search;return i(n).then(function(a){if(!a.hits||!a.hits.total)return[];var o=[c(t,a)];for(n.from+=n.size;n.from<a.hits.total;)o.push(i(angular.copy(n)).then(function(e){return e.hits&&e.hits.hits.length?c(t,e):[]})),n.from+=n.size;return e.all(o).then(function(e){return e.reduce(function(e,t){return e.concat(t)},[])})})}function c(t,i){var a=new RegExp("[,]"),o=[],s=i.hits.hits.reduce(function(e,i){var r=i._source.issuer,s={};if(s.issuer=r,s.pubkey=i._source.pubkey||s.issuer,s.id=i._id,s.index=i._index,s.type=i._source.type,s.category=i._source.category,s.category&&delete s.category.parent,s.city=i._source.city,s.address=i._source.address,s.geoPoint=i._source.geoPoint,s.geoPoint&&s.geoPoint.lat&&s.geoPoint.lon)s.geoPoint.lat&&"string"==typeof s.geoPoint.lat&&(s.geoPoint.lat=parseFloat(s.geoPoint.lat.replace(a,"."))),s.geoPoint.lon&&"string"==typeof s.geoPoint.lon&&(s.geoPoint.lon=parseFloat(s.geoPoint.lon.replace(a,".")));else{if(!t.searchAddress||!s.city)return e;s.searchAddress=s.city&&(i._source.address?i._source.address+", ":"")+s.city,o.push(s)}return s.avatar=n.image.fromHit(i,"avatar"),s.name=i._source.title,s.name&&s.name.length>30&&(s.name=s.name.substr(0,27)+"..."),s.description=i._source.description&&n.util.parseAsHtml(i._source.description),s.geoPoint?e.concat(s):e},[]);if(o.length){var l=Date.now();console.debug("[map] [registry] Search positions of {0} addresses...".format(o.length));var c=0;return e.all(o.reduce(function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then(function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,s.push(t),c++)}).catch(function(){})):e},[])).then(function(){return console.debug("[map] [registry] Resolved {0}/{1} addresses in {2}ms".format(c,o.length,Date.now()-l)),s})}return e.when(s)}var u=this,d={DEFAULT_LOAD_SIZE:1e3},p={record:["title","geoPoint","avatar._content_type","address","city","type","pubkey","issuer","category"]};return u.raw={profile:{search:n.post("/page/record/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:l}}]),angular.module("cesium.map.utils.services",["cesium.services","ui-leaflet"]).factory("MapUtils",["$timeout","$q","$translate","$window","leafletData","csConfig","csSettings","esGeo","UIUtils","leafletHelpers",function(e,t,n,i,a,o,r,s,l,c){"ngInject";function u(e){e=angular.merge({center:angular.copy(I.DEFAULT_CENTER),cache:!1,defaults:{scrollWheelZoom:!0,tileLayerOptions:{attribution:'© <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}},layers:{baselayers:{osm:{name:"OpenStreetMap",type:"xyz",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",layerOptions:{subdomains:["a","b","c"],attribution:'&copy; <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',continuousWorld:!0}},google:{name:"Google map",type:"xyz",url:"https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&key="+h,layerOptions:{subdomains:["mt0","mt1","mt2","mt3"],attribution:'&copy; <a target="_blank"  href="https://www.google.com/intl/fr_fr/help/terms_maps.html">Google</a>',continuousWorld:!0}}}},controls:{custom:[]}},e||{}),e.cache&&v.cache[e.cache]&&(console.debug("[map] Restoring map from cache :",v.cache[e.cache]),e=angular.merge(e,v.cache[e.cache]));var t;return e.layers.overlays&&(t=_.keys(e.layers.overlays).reduce(function(t,n){return t.concat(e.layers.overlays[n].name)},[]),n(t).then(function(t){_.keys(e.layers.overlays||{}).forEach(function(n){e.layers.overlays[n].name=t[e.layers.overlays[n].name]})})),e}function d(n,i){return E(i,n)?t.when():e(function(){n.invalidateSize(),n._resetView(i,i.zoom,!0)},300)}function p(e,t,n){if(n=n||{},!t||!n.layers||!e)throw"Illegal arguments";if(n.cache){if(n.layers.overlays){var o=_.keys(n.layers.overlays);v.cache[n.cache]||(v.cache[n.cache]={center:n.center,bounds:n.bounds,layers:angular.copy(n.layers)}),a.getMap(t).then(function(){_(i.document.querySelectorAll("#{0} .leaflet-control-layers-overlays input[type=checkbox]".format(t))).forEach(function(e,t){var i=o[t],a=n.layers.overlays[i].visible;e.addEventListener("change",function(e){a=!a,v.cache[n.cache].layers.overlays[i].visible=a})})})}e.$on("$ionicView.leave",function(){v.cache[n.cache].center=n.center,v.cache[n.cache].bounds=n.bounds})}}function m(e){if(e){var t;if(e.lat&&(t={},t.lat=parseFloat(e.lat)),(e.lng||e.lon)&&(t=t||{},t.lng=parseFloat(e.lng||e.lon)),e.zoom&&(t=t||{},t.zoom=parseFloat(e.zoom)),t)return c.isValidCenter(t)||(t=angular.merge({},I.DEFAULT_CENTER,t)),t}}function E(e,t){return c.isSameCenterOnMap(e,t)}function b(e){var t=I.DEFAULT_CENTER;return!(!e.lat||!e.lng||t.lat.toFixed(4)!==e.lat.toFixed(4)||t.lng.toFixed(4)!==e.lng.toFixed(4)||t.zoom!==e.zoom)}function g(e,t){if(!e||!t)throw"Illegal arguments";if(e._container)e._container.id=t;else{var n=e.onAdd;e.onAdd=function(e){var i=n.call(this,e);return i.id=t,i}}}function f(e){e=e||{},e.initial=!!angular.isDefined(e.initial)&&e.initial,e.marker=!!angular.isDefined(e.marker)&&e.marker,e.propertyName=angular.isDefined(e.propertyName)?e.propertyName:"title",e.position=angular.isDefined(e.position)?e.position:"topleft",e.zoom=angular.isDefined(e.zoom)?e.zoom:I.LOCALIZE_ZOOM,e.markerLocation=!angular.isDefined(e.markerLocation)||e.markerLocation;var t=n(["MAP.COMMON.SEARCH_DOTS","COMMON.SEARCH_NO_RESULT"]);return{addTo:function(n){t.then(function(t){var i=L.control.search(angular.merge(e,{textPlaceholder:t["MAP.COMMON.SEARCH_DOTS"],textErr:t["COMMON.SEARCH_NO_RESULT"]}));e.id&&g(i,e.id),i.addTo(n)})}}}function T(e){return e=e||{},L.easyButton({position:"topleft",type:"replace",leafletClasses:!0,states:[{stateName:"locate-me",onClick:function(e,t){s.point.current().then(function(e){t.setView({lat:e.lat,lng:e.lon},I.LOCALIZE_ZOOM)}).catch(function(e){console.error(e),l.alert.error("MAP.ERROR.LOCALIZE_ME_FAILED")})},title:e.title,icon:"icon ion-android-locate"}]})}var h=o.plugins&&o.plugins.es&&o.plugins.es.googleApiKey,I={locations:{FRANCE:{lat:46.5588603,lng:4.229736328124999,zoom:6}},LOCALIZE_ZOOM:15},v={cache:{}};return I.DEFAULT_CENTER=r.data&&r.data.plugins&&r.data.plugins.map&&r.data.plugins.map.center||I.locations.FRANCE,{map:u,updateCenter:d,center:{get:m,isSame:E,isDefault:b},control:{search:f,localizeMe:T,setId:g},cache:{bind:p},constants:I}}]),MapWotViewController.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","$controller","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapWot"],angular.module("cesium.map.wot.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_search",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_wot_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.wot_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/wot/lookup_lg_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_wot_map",{url:"/wot/map?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/wot/view_map.html",controller:"MapWotViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapWotViewCtrl",MapWotViewController),MapRegistryViewController.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapRegistry"],angular.module("cesium.map.registry.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_registry",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_registry_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.registry_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/registry/lookup_lg_extend.html"}}}),e.state("app.view_registry_map",{url:"/wot/pagemap?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/registry/view_map.html",controller:"MapRegistryViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapRegistryViewCtrl",MapRegistryViewController),angular.module("cesium.map.network.controllers",["cesium.services","cesium.map.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){"ngInject";n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/network/lookup_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_network_map",{url:"/network/map?c",views:{menuContent:{templateUrl:"plugins/map/templates/network/view_map.html",controller:"MapNetworkViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapNetworkViewCtrl",["$scope","$controller","$q","$interpolate","$translate","$filter","$templateCache","$timeout","$location","esGeo","UIUtils","csNetwork","MapUtils","leafletData",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var E,b,g=o("formatPubkey"),f={member:{type:"awesomeMarker",icon:"person",markerColor:"green",iconColor:"white"},mirror:{type:"awesomeMarker",icon:"radio-waves",markerColor:"green",iconColor:"white"},offline:{type:"awesomeMarker",icon:"ion-close-circled",markerColor:"red",iconColor:"white"}},T={},h=0;E='<div class="item item-peer item-icon-left no-border" ng-click="selectPeer(peer)">',E+=r.get("templates/network/item_content_peer.html"),E+="</div>",E=E.replace(/[:]rebind[:]|[:][:]/g,""),e.loading=!0,e.mapId="map-network-"+e.$id,e.helptipPrefix="helptip-"+e.mapId,e.map=p.map({cache:"map-network",layers:{overlays:{member:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MEMBER",visible:!0},mirror:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MIRROR",visible:!0},offline:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.OFFLINE",visible:!1}}},bounds:{},loading:!0,markers:{}});var I=e.enter;e.enter=function(t,n){if(!e.loading)return e.updateLocationHref(),I(t,n);if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",function(){if(!e.map.loading)return s(function(){e.updateLocationHref()},300)},!0),e.loadMap().then(function(e){return e.fire("dataloading"),I(t,n)})},e.$on("$ionicView.enter",e.enter);var v=e.computeOptions;e.computeOptions=function(){var e=v();return e.filter.online="all",e},e.loadMap=function(){return m.getMap(e.mapId).then(function(t){if(!e.map.loading)return t;L.Control.loading({position:"topright",separate:!0}).addTo(t),b=L.layerGroup({visible:!1});var n=i(r.get("plugins/map/templates/network/item_search_tooltip.html"));p.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return n(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;i&&s(function(){var e=_.find(n._layers,function(e){return e.options&&e.options.id===i});e&&e.openPopup()},400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(t);var a=function(e){return e.options&&e.options.icon.options.markerColor},o=L.markerClusterGroup({disableClusteringAtZoom:p.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),a),n=t.green?"green":t.lightgreen?"lightgreen":t.lightgray?"lightgray":"red",i=e.getChildCount(),o="marker-cluster "+n+" marker-cluster-";return o+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:o,iconSize:new L.Point(40,40)})}});return t.eachLayer(function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(o))}),c.point.ip.license&&(o.getAttribution=function(){return'<a target="_blank" href="{0}">{1}</a>'.format(c.point.ip.license.url,c.point.ip.license.name)}),o.addTo(t),e.map.loading=!1,t})},e.updateView=function(t){console.debug("[map] [peers] Updating UI"),e.search.loading=!e.networkStarted||d.isBusy();var n=angular.copy(T);_.forEach(t.peers||[],function(t){if(!t.isTor()){var i=T[t.id];if(i&&e.map.markers[i])return e.updateMarker(e.map.markers[i],t),void delete n[t.id];var a=t.bma,o=t.hasValid4(a)?a.ipv4:a.dns||a.ipv6;c.point.ip.search(o).then(function(n){i=""+h++;var o=e.updateMarker({position:n,getMessageScope:function(){var n=e.$new();return n.peer=t,n},draggable:!1,focus:!1,message:E,id:i},t);e.map.markers[i]=o,T[t.id]=i;var r,s=t.dns||t.server,l=s+(t.uid?" | "+(t.name||t.uid):"")+" | "+g(t.pubkey);a.ipv4&&!(t.dns||t.server).startsWith(a.ipv4)&&(r=a.ipv4,l+=" | "+a.ipv4),b.addLayer(new L.Marker({lat:n.lat,lng:n.lng},{opacity:0,icon:L.divIcon({className:"ng-hide",iconSize:L.point(0,0)}),title:l,peer:angular.extend({ipv4:r},t),popupMarkerId:i}))}).catch(function(e){console.debug("No position found for address ["+o+"]",e)})}}),_.forEach(_.keys(n),function(e){delete T[e]}),_.forEach(_.values(n),function(t){delete e.map.markers[t]}),
-e.search.loading||m.getMap(e.mapId).then(function(t){e.loading=!1,t.fire("dataload")})},e.updateMarker=function(e,t){return e.layer=t.online?t.uid?"member":"mirror":"offline",e.icon=angular.copy(f[e.layer]),e.opacity=(t.online,1),e.title=t.dns||t.server,t.online&&!t.hasMainConsensusBlock&&(e.icon.markerColor=t.hasConsensusBlock?"lightgreen":"lightgray",e.opacity=t.hasConsensusBlock?.9:.8),e.lng||(e.lng=e.position.lng+Math.random()/1e3,e.lat=e.position.lat+Math.random()/1e3),e},e.updateLocationHref=function(t){(l.search()||{}).c&&p.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),l.search({c:t}).replace())},e.$on("centerUrlHash",function(t,n){if(!e.loading)return s(function(){e.updateLocationHref(n)},300)}),e.showHelpTip=function(){}}]),angular.module("cesium.map.user.controllers",["cesium.services","cesium.map.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.extendState("app.edit_profile",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}}).extendState("app.edit_profile_by_id",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}})}]).controller("MapEditProfileViewCtrl",["$scope","$timeout","$q","MapUtils","$translate",function(e,t,n,i,a){"ngInject";var o=[];e.mapId="map-user-profile-"+e.$id,e.map=i.map({markers:{},center:{zoom:13}}),e.loading=!0,e.mapId="map-profile-"+e.$id,e.enter=function(n,i){return e.formData&&(e.formData.title||e.formData.geoPoint)?(e.loading=!0,e.load()):t(e.enter,500)},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.load=function(){return e.formData.geoPoint&&e.formData.geoPoint.lat&&e.formData.geoPoint.lon?e.map.markers.geoPoint?(e.map.markers.geoPoint.lat=e.formData.geoPoint.lat,void(e.map.markers.geoPoint.lng=e.formData.geoPoint.lon)):a("MAP.PROFILE.MARKER_HELP").then(function(t){e.map.markers.geoPoint={message:t,lat:parseFloat(e.formData.geoPoint.lat),lng:parseFloat(e.formData.geoPoint.lon),draggable:!0,focus:!0},angular.extend(e.map.center,{lat:e.map.markers.geoPoint.lat,lng:e.map.markers.geoPoint.lng});var n=e.$watch("map.markers.geoPoint",function(){e.loading||e.map.markers.geoPoint&&e.map.markers.geoPoint.lat&&e.map.markers.geoPoint.lng&&(e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=e.map.markers.geoPoint.lat,e.formData.geoPoint.lon=e.map.markers.geoPoint.lng)},!0);o.push(n),e.ionItemClass||(e.ionItemClass="done in"),e.loading=!1}):(_.forEach(o,function(e){e()}),o=[],delete e.map.markers.geoPoint,e.loading=!1,n.when())},e.$watch("formData.geoPoint",function(){e.loading||e.load()},!0)}]),angular.module("cesium.map.settings.controllers",["cesium.services"]).config(["PluginServiceProvider","csConfig",function(e,t){"ngInject";t.plugins&&t.plugins.es&&e.extendState("app.es_settings",{points:{common:{templateUrl:"plugins/map/templates/settings/es_settings_extend.html"}}})}]),MapHelpTipController.$inject=["$scope","$controller"],angular.module("cesium.map.help.controllers",["cesium.services"]).controller("MapHelpTipCtrl",MapHelpTipController),angular.module("cesium",["ionic","ionic-material","ngMessages","ngSanitize","pascalprecht.translate","ngApi","angular-cache","angular.screenmatch","angular.bind.notifier","ImageCropper","ion-digit-keyboard","FBAngular","ngCordova","cesium.plugins","cesium.filters","cesium.config","cesium.platform","cesium.controllers","cesium.templates","cesium.translations","cesium.components","cesium.directives"]).config(["$urlRouterProvider",function(e){"ngInject";e.deferIntercept()}]).run(["$rootScope","$translate","$state","$window","$urlRouter","ionicReady","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d){"ngInject";u.disableChangeState();var p=!1;e.$on("$stateChangeStart",function(t,i,a,o){if(!t.defaultPrevented){if(!(!i.data||e.tour||t.currentScope.tour)){if(p)return void t.preventDefault();var r,l=a.wallet&&"default"!=a.wallet?d.children.get(a.wallet):d;return a.wallet&&!l&&console.warn("[app] Unable to find the children wallet: "+a.wallet),i.data.auth&&!l.isAuth()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.auth(r).then(function(){return p=!1,n.go(i.name,a)}).catch(function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")})):i.data.login&&!d.isLogin()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.login(r).then(function(){return p=!1,n.go(i.name,a)}).catch(function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")})):!i.data.login&&!i.data.auth||(r=i.data.minData?{minData:!0}:void 0,l.isDataLoaded(r))?void 0:(t.preventDefault(),r&&r.minData||s.loading.show(),l.loadData(r).then(function(){return p=!1,n.go(i.name,a)}))}}}),d.api.data.on.unauth(e,function(){n.current&&n.current.data&&n.current.data.auth&&n.go("app.home")}),e.$on("$locationChangeSuccess",function(e,t,i){if(n.current.data&&!0===n.current.data.silentLocationChange){i&&i.split("?")[0]===t.split("?")[0]&&e.preventDefault()}}),a.listen(),c.start(),o().then(function(){ionic.Platform.isIOS()&&window.StatusBar&&StatusBar.styleLightContent()})}]),window.ionic.Platform.ready(function(){angular.bootstrap(document,["cesium"])}),angular.module("cesium.components",[]).component("csBadgeCertification",{bindings:{requirements:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_certification_count.html"}).component("csBadgeGivenCertification",{bindings:{identity:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_given_certification_count.html"}).component("csSortIcon",{bindings:{asc:"=",sort:"=",toggle:"<"},template:'<i class="ion-chevron-up" ng-class="{gray: !$ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: 5px; top:-5px; font-size: 9px;"></i><i class="ion-chevron-down" ng-class="{gray : $ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: -2.6px; top: 3px; font-size: 9px;"></i>'}),angular.module("cesium.directives",[]).directive("compareTo",function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.compareTo&&(i.$validators.compareTo=function(t){return t==e.$eval(n.compareTo)},e.$watch(n.compareTo,function(){i.$validate()}))}}}).directive("differentTo",function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.differentTo&&(i.$validators.differentTo=function(t){return t!=e.$eval(n.differentTo)},e.$watch(n.differentTo,function(){i.$validate()}))}}}).directive("numberFloat",function(){var e=new RegExp("^[0-9]+([.,][0-9]+)?$");return{require:"?ngModel",link:function(t,n,i,a){a&&(a.$validators.numberFloat=function(t){return a.$isEmpty(t)||e.test(t)})}}}).directive("numberInt",function(){var e=new RegExp("^[0-9]+$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.numberInt=function(t){return a.$isEmpty(t)||e.test(t)})}}}).directive("email",function(){var e=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.email=function(t){return a.$isEmpty(t)||e.test(t)})}}}).directive("requiredIf",function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.requiredIf&&(i.$validators.required=function(t){return!e.$eval(n.requiredIf)||!i.$isEmpty(t)},e.$watch(n.requiredIf,function(){i.$validate()}))}}}).directive("geoPoint",function(){return{require:"?ngModel",link:function(e,t,n,i){i&&(i.$validators.geoPoint=function(e){return i.$isEmpty(e)||angular.isDefined(e.lat)&&angular.isDefined(e.lon)||angular.isUndefined(e.lat)&&angular.isUndefined(e.lon)})}}}).directive("copyOnClick",["$window","Device","UIUtils",function(e,t,n){"ngInject";return{restrict:"A",link:function(e,i,a){var o=function(i){var o=a.copyOnClick;if(o&&t.clipboard.enable)t.clipboard.copy(o).then(function(){n.toast.show("INFO.COPY_TO_CLIPBOARD_DONE")}).catch(n.onError("ERROR.COPY_CLIPBOARD"));else if(o){var r=o&&o.indexOf("\n")>=0?o.split("\n").length:1;n.popover.show(i,{scope:e,templateUrl:"templates/common/popover_copy.html",bindings:{value:a.copyOnClick,rows:r},autoselect:".popover-copy "+(r<=1?"input":"textarea")})}};i.bind("click",o),i.bind("hold",o)}}}]).directive("selectOnClick",["$window",function(e){"ngInject";return{restrict:"A",link:function(t,n,i){n.bind("click",function(){e.getSelection&&!e.getSelection().toString()&&this.value&&this.setSelectionRange(0,this.value.length)})}}}]).directive("activeLink",["$location",function(e){"ngInject";return{restrict:"A",link:function(t,n,i,a){var o,r=i.activeLink;i.activeLinkPathPrefix?(o=i.activeLinkPathPrefix.substring(1),t.location=e,t.$watch("location.path()",function(e){e&&0===e.indexOf(o)?n.addClass(r):n.removeClass(r)})):i.href&&(o=i.href.substring(1),t.location=e,t.$watch("location.path()",function(e){e&&e==o?n.addClass(r):n.removeClass(r)}))}}}]).directive("input",["$timeout",function(e){return{restrict:"E",scope:{returnClose:"=",onReturn:"&",onFocus:"&",onBlur:"&"},link:function(t,n,i){n.bind("focus",function(n){t.onFocus&&e(function(){t.onFocus()})}),n.bind("blur",function(n){t.onBlur&&e(function(){t.onBlur()})}),n.bind("keydown",function(i){13==i.which&&(t.returnClose&&n[0].blur(),t.onReturn&&e(function(){t.onReturn()}))})}}}]).directive("trustAsHtml",["$sce","$compile","$parse",function(e,t,n){return{restrict:"A",compile:function(i,a){var o=n(a.trustAsHtml),r=n(a.trustAsHtml,function(e){return(e||"").toString()});return t.$$addBindingClass(i),function(n,i,a){t.$$addBindingInfo(i,a.trustAsHtml),n.$watch(r,function(){i.html(e.getTrustedHtml(e.trustAsHtml(o(n)))||""),t(i.contents())(n)})}}}}]).directive("modalClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",function(){n.closeModal&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t(function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})},300),n.closeModal())})}}}]).directive("csExtensionPoint",["$state","$compile","$controller","$templateCache","PluginService",function(e,t,n,i,a){var o=function(e){var t=e.templateUrl?i.get(e.templateUrl):e.template;return t?(e.controller&&(t='<ng-controller ng-controller="'+e.controller+'">'+t+"</div>"),t):(console.error("[plugin] Could not found template for extension :"+(e.templateUrl?e.templateUrl:e.template)),"")};return{restrict:"E",compile:function(e,t){if(angular.isDefined(t.name)){var n=a.extensions.points.getActivesByName(t.name);n.length>0&&(e.html(""),_.forEach(n,function(t){e.append(o(t))}))}return{pre:function(e,t,n){a.extensions.points.current.set(n.name)},post:function(){a.extensions.points.current.set()}}},scope:{content:"="}}}]).directive("onReadFile",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.onReadFile);n.on("change",function(e){var n=new FileReader,i={name:this.files[0].name,size:this.files[0].size,type:this.files[0].type};n.onload=function(e){t.$applyAsync(function(){a(t,{file:{fileContent:e.target.result,fileData:i}})})},n.readAsText((e.srcElement||e.target).files[0])})}}}]).directive("dropzone",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.dropzone);n.bind("dragover",function(e){e.stopPropagation(),e.preventDefault()}),n.bind("dragenter",function(e){e.stopPropagation(),e.preventDefault()}),n.bind("dragleave",function(e){e.stopPropagation(),e.preventDefault()}),n.bind("drop",function(e){e.stopPropagation(),e.preventDefault();var n={name:e.dataTransfer.files[0].name,size:e.dataTransfer.files[0].size,type:e.dataTransfer.files[0].type},i=new FileReader;i.onload=function(e){t.$apply(function(){a(t,{file:{fileContent:e.target.result,fileData:n}})})},i.readAsText(e.dataTransfer.files[0])})}}}]).directive("windowExitUnauth",["$window","csSettings","csWallet",function(e,t,n){return{restrict:"AE",link:function(i,a){(e.attachEvent||e.addEventListener)(e.attachEvent?"onunload":"unload",function(e){if(t.data&&t.data.keepAuthIdle!=t.constants.KEEP_AUTH_IDLE_SESSION)return n.unauth()})}}}]),angular.module("cesium.filters",["cesium.config","cesium.platform","pascalprecht.translate","cesium.translations"]).factory("filterTranslations",["$rootScope","$q","csPlatform","csSettings","csCurrency","$translate","$timeout",function(e,t,n,i,a,o,r){"ngInject";function s(){return console.debug("[filter] Loading translations for locale [{0}]".format(o.use())),o(["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.UD","COMMON.DAYS"]).then(function(e){d.DATE_PATTERN=e["COMMON.DATE_PATTERN"],"COMMON.DATE_PATTERN"===d.DATE_PATTERN&&(d.DATE_PATTERN="YYYY-MM-DD HH:mm"),d.DATE_SHORT_PATTERN=e["COMMON.DATE_SHORT_PATTERN"],"COMMON.DATE_SHORT_PATTERN"===d.DATE_SHORT_PATTERN&&(d.DATE_SHORT_PATTERN="YYYY-MM-DD"),d.DATE_MONTH_YEAR_PATTERN=e["COMMON.DATE_MONTH_YEAR_PATTERN"],"COMMON.DATE_MONTH_YEAR_PATTERN"===d.DATE_MONTH_YEAR_PATTERN&&(d.DATE_MONTH_YEAR_PATTERN="MMM YY"),d.DAYS=e["COMMON.DAYS"],"COMMON.DAYS"===d.DAYS&&(d.DAYS="days"),d.UD=e["COMMON.UD"],"COMMON.UD"===d.UD&&(d.UD="UD")})}function l(){console.debug("[filter] Computing constants from currency parameters"),d.MEDIAN_TIME_OFFSET=a.data.medianTimeOffset||d.MEDIAN_TIME_OFFSET}var c,u=!1,d=this;return d.MEDIAN_TIME_OFFSET=3600,d.ready=function(){return u?t.when():c||d.start()},d.start=function(){return c=n.ready().then(s).then(function(){l(),u=!0,i.api.locale.on.changed(e,s,this),a.api.data.on.ready(e,l,this)})},r(function(){d.start()}),d}]).filter("formatInteger",function(){return function(e){return e?e<1e7?numeral(e).format("0,0"):numeral(e).format("0,0.000 a"):"0"}}).filter("formatAmount",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){function a(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(!i)return void console.warn("formatAmount: currentUD not defined");var a=e/i;return a=Math.abs(e)<u&&0!==e?"~ 0":numeral(a).format(c),t&&t.currency?a+" "+l(t.currency,!0):a}function o(e,t){var n=numeral(e/100).format(e<-1e9||e>1e9?s:r);return t&&t.currency?n+" "+l(t.currency,!1):n}var r="0,0.0"+Array(e.decimalCount||4).join("0"),s="0,0.000 a",l=i("currencySymbol"),c=r+"0",u=1/Math.pow(10,(e.decimalCount||4)+1);return function(e,n){if(void 0!==e)return(n&&angular.isDefined(n.useRelative)?n.useRelative:t.data.useRelative)?a(e,n):o(e,n)}}]).filter("formatAmountNoHtml",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){function a(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(!i)return void console.warn("formatAmount: currentUD not defined");var a=e/i;return a=Math.abs(a)<r&&0!==e?"~ 0":numeral(a).format(s),t&&t.currency?a+" "+l(t.currency,!0):a}function o(e,t){var n=numeral(e/100).format(e>-1e9&&e<1e9?"0,0.00":"0,0.000 a");return t&&t.currency?n+" "+l(t.currency,!1):n}var r=1/Math.pow(10,e.decimalCount||4),s="0,0.0"+Array(e.decimalCount||4).join("0"),l=i("currencySymbolNoHtml");return function(e,n){if(void 0!==e)return(n&&angular.isDefined(n.useRelative)?n.useRelative:t.data.useRelative)?a(e,n):o(e,n)}}]).filter("currencySymbol",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+"<sub>"+t("abbreviate")(i)+"</sub>":t("abbreviate")(i):""}}]).filter("currencySymbolNoHtml",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+" "+t("abbreviate")(i):t("abbreviate")(i):""}}]).filter("formatDecimal",["csConfig","csCurrency",function(e,t){var n=1/Math.pow(10,e.decimalCount||4),i="0,0.0"+Array(e.decimalCount||4).join("0");return function(e){return void 0===e?"0":e===1/0||e===-1/0?(console.warn("formatDecimal: division by zero ? (is currentUD defined ?) = "+t.data.currentUD),"error"):Math.abs(e)<n?"~ 0":numeral(e).format(i)}}]).filter("formatNumeral",function(){return function(e,t){return void 0===e?"0":Math.abs(e)<1e-4?"~ 0":numeral(e).format(t)}}).filter("formatDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("formatDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatDateMonth",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_MONTH_YEAR_PATTERN||"MMM YY"):""}}]).filter("formatDateForFile",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_FILE_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatTime",function(){return function(e){return e?moment.unix(parseInt(e)).local().format("HH:mm"):""}}).filter("formatFromNow",function(){return function(e){return e?moment.unix(parseInt(e)).fromNow():""}}).filter("formatFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t));return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("formatDurationTo",function(){return function(e){return e?moment.unix(moment().utc().unix()+parseInt(e)).fromNow():""}}).filter("formatDuration",function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0):""}}).filter("formatDurationTime",["filterTranslations",function(e){return function(t){if(!t)return"";var n=t&&t<0?"-":"+";t=Math.abs(t);var i=Math.trunc(t/3600/24),a=Math.trunc(t/3600-24*i),o=Math.trunc(t/60-24*i*60-60*a);return i>0?n+i+" "+e.DAYS+" "+a+"h "+o+"m":a>0?n+a+"h "+o+"m":n+o+"m"}}]).filter("formatDurationMs",function(){return function(e){return e?e<1e3?e+"ms":e/1e3+"s":""}}).filter("formatPeriod",function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0).split(" ").slice(-1)[0]:null}}).filter("formatFromNowShort",function(){return function(e){return e?moment.unix(parseInt(e)+offset).fromNow(!0):""}}).filter("medianDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("medianDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("medianTime",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format("HH:mm"):""}}]).filter("medianFromNow",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow():""}}]).filter("medianFromNowShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow(!0):""}}]).filter("medianFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET);return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("capitalize",function(){return function(e){return e?(e=e.toLowerCase(),e.substring(0,1).toUpperCase()+e.substring(1)):""}}).filter("abbreviate",function(){var e={};return function(t){var n=t||"";if(e[n])return e[n];if(n.length>3){for(var i="",a=["-","_"," "],o=0;o<n.length;o++){var r=n[o];0===o?i="g"===r||"G"===r?"Äž":r:o>0&&-1!=a.indexOf(n[o-1])&&(i+=r)}n=i.toUpperCase()}else n=n.toUpperCase(),"G"===n.charAt(0)&&(n="Äž"+(n.length>1?n.substr(1):""));return e[t]=n,n}}).filter("upper",function(){return function(e){return e?e.toUpperCase():""}}).filter("formatPubkey",function(){return function(e){return e?e.substr(0,8):""}}).filter("formatHash",function(){return function(e){return e?e.substr(0,4)+e.substr(e.length-4):""}}).filter("formatCategory",function(){return function(e){return e&&e.length>28?e.substr(0,25)+"...":e}}).filter("formatSlug",function(){return function(e){return e?encodeURIComponent(e.toLowerCase().replace(/<[^>]+>/g,"").replace(/[^\w ]+/g,"").replace(/ +/g,"-")):""}}).filter("formatEncodeURI",function(){return function(e){return e?encodeURIComponent(e):""}}).filter("truncText",function(){return function(e,t){return t=t||500,!e||e.length<=t?e:e.substr(0,t)+"..."}}).filter("truncUrl",function(){return function(e,t){t=t||25;var n=e.startsWith("http://")?7:e.startsWith("https://")?8:0;return n=e.startsWith("www.",n)?n+4:n,!e||e.length-n<=t?e.substr(n):e.substr(n,t)+"..."}}).filter("trustAsHtml",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("cesium.platform",["ngIdle","cesium.config","cesium.services"]).config(["$translateProvider","csConfig",function(e,t){"ngInject";e.uniformLanguageTag("bcp47").determinePreferredLanguage().useSanitizeValueStrategy(null).fallbackLanguage([t.fallbackLanguage?t.fallbackLanguage:"en"]).useLoaderCache(!0)}]).config(["$httpProvider","csConfig",function(e,t){"ngInject";e.defaults.timeout=t.timeout?t.timeout:3e5,e.defaults.useXDomain=!0,delete e.defaults.headers.common["X-Requested-With"],e.useApplyAsync(!0)}]).config(["$compileProvider","csConfig",function(e,t){"ngInject";e.debugInfoEnabled(!!t.debug)}]).config(["$animateProvider",function(e){"ngInject";e.classNameFilter(/\banimate-/)}]).config(["CacheFactoryProvider","csConfig",function(e,t){"ngInject";angular.extend(e.defaults,{maxAge:t.cacheTimeMs||6e4})}]).config(["screenmatchConfigProvider",function(e){"ngInject";e.config.rules="bootstrap"}]).config(["$ionicConfigProvider",function(e){"ngInject";var t=ionic.Platform.isIOS();e.scrolling.jsScrolling(t),e.views.maxCache(5)}]).config(["IdleProvider","csConfig",function(e,t){"ngInject";e.idle(t.logoutIdle||600),e.timeout(t.logoutTimeout||15)}]).factory("$exceptionHandler",["$log",function(e){"ngInject";return function(t,n){n?e.error(t,n):e.error(t)}}]).factory("csPlatform",["ionicReady","$rootScope","$q","$state","$translate","$timeout","UIUtils","BMA","Device","csHttp","csConfig","csSettings","csCurrency","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){"ngInject";function E(){if(!L){var e=t.$on("$stateChangeStart",function(e,t,n,a){e.defaultPrevented||"app.home"===t.name||"app.settings"===t.name||(e.preventDefault(),S?S.then(function(){i.go(t.name,n)}):r.loading.hide())});L=e}}function b(){L&&L(),L=null}function g(e){if(e)return!0;A=A||d.data.node;var t=d.data.fallbackNodes&&D<d.data.fallbackNodes.length&&d.data.fallbackNodes[D++];if(!t)throw"ERROR.CHECK_NETWORK_CONNECTION";var n=t.host+(t.port||80==t.port||443==t.port?"":":"+t.port);return s.node.same(t.host,t.port)?(console.debug("[platform] Skipping fallback node [{0}]: same as actual node".format(n)),g()):c.get(t.host,t.port,"/node/summary",443==t.port||s.node.forceUseSsl)().catch(function(e){console.error("[platform] Could not reach fallback node [{0}]: skipping".format(n))}).then(function(e){if(!e)return g();var i={old:s.server,new:n};return i.old===i.new&&(s.port!=t.port?i.new+=":"+t.port:0!=s.useSsl||!t.useSsl&&443!=t.port||(i.new+=" (SSL)")),a("CONFIRM.USE_FALLBACK_NODE",i).then(function(e){return r.alert.confirm(e)}).then(function(e){if(e)return d.data.node=t,d.data.node.temporary=!0,c.cache.clear(),s.copy(t).then(g)})})}function f(){return y}function T(){var e=d.data.latestReleaseUrl&&c.uri.parse(d.data.latestReleaseUrl);return e?c.get(e.host,"https:"==e.protocol?443:e.port,"/"+e.pathname)().then(function(e){if(e&&e.name&&e.tag_name&&e.html_url)return{version:e.name,url:e.html_url,isNewer:c.version.compare(u.version,e.name)<0}}).catch(function(e){console.error("[platform] Failed to get Cesium latest version",e)}):n.when()}function h(){C=[s.api.node.on.restart(t,N,this)]}function I(){_.forEach(C,function(e){e()}),C=[]}function v(){return y?n.when():S||O()}function N(){return console.debug("[platform] restarting csPlatform"),R().then(function(){return o(O,200)})}function O(){return E(),S=e().then(n.all([l.ready(),d.ready()])).then(function(){return s.ready().then(g)}).then(p.ready).then(m.ready).then(function(){b(),h(),S=null,y=!0}).catch(function(e){throw S=null,y=!1,i.current.name!==t.errorState&&i.go(t.errorState,{error:"peer"}),e})}function R(){return y?(I(),m.stop(),p.stop(),s.stop(),o(function(){b(),y=!1,S=null},500)):n.when()}var A,S,C,L,D=0,y=!1;return{disableChangeState:E,isStarted:f,ready:v,restart:N,start:O,stop:R,version:{latest:T}}}]).run(["$rootScope","$state","$window","$urlRouter","ionicReady","$ionicPlatform","$ionicHistory","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet","csSettings","csConfig","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){"ngInject";e.config=E,e.settings=m.data,e.currency=b.data,e.device=s,e.errorState="app.home",e.smallscreen=l.screen.isSmall();var g=n.location.href.indexOf("#");e.rootPath=-1!=g?n.location.href.substr(0,g):n.location.href,console.debug("[app] Root path is ["+e.rootPath+"]"),a().then(function(){return s.keyboard.enable&&(s.keyboard.hideKeyboardAccessoryBar(!0),ionic.Platform.isIOS()&&s.keyboard.disableScroll(!0)),"a"!==ionic.Platform.grade.toLowerCase()&&(console.info("[app] Disabling UI effects, because plateform's grade is ["+ionic.Platform.grade+"]"),l.setEffects(!1)),window.StatusBar&&console.debug("[app] Status bar plugin enable"),d.version.latest().then(function(t){t&&t.isNewer?(console.info("[app] New release detected [{0}]".format(t.version)),e.newRelease=t):console.info("[app] Current version [{0}] is the latest release".format(E.version))}),o.registerBackButtonAction(function(e){return r.backView()?r.goBack():(e.preventDefault(),l.alert.confirm("CONFIRM.EXIT_APP").then(function(e){e&&ionic.Platform.exitApp()}))},100),d.ready()})}]),"function"!=typeof String.prototype.startsWith&&(console.debug("Adding String.prototype.startsWith() -> was missing on this platform"),String.prototype.startsWith=function(e,t){return 0===this.indexOf(e,t)}),"function"!=typeof String.prototype.trim){console.debug("Adding String.prototype.trim() -> was missing on this platform");var rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(rtrim,"")}}Math&&"function"!=typeof Math.trunc&&(console.debug("Adding Math.trunc() -> was missing on this platform"),Math.trunc=function(e){return(e-.5).toFixed()}),"function"!=typeof String.prototype.format&&(console.debug("Adding String.prototype.format() -> was missing on this platform"),String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,function(t,n){return void 0!==e[n]?e[n]:t})});
\ No newline at end of file
diff --git a/assets/www/dist_js/cesium-c52c7fd0a4.js b/assets/www/dist_js/cesium-c52c7fd0a4.js
new file mode 100644
index 0000000000000000000000000000000000000000..0d77a820f7e07ae7dc0ea09088c155a252e369ec
--- /dev/null
+++ b/assets/www/dist_js/cesium-c52c7fd0a4.js
@@ -0,0 +1,15 @@
+/* minified */
+function e(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function t(e,t){"use strict";var n=this;t&&t.length?_.forEach(t,(function(t){n[t]=e[t]})):["currency","issuer","medianTime","number","version","powMin","dividend","membersCount","hash","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions","unitbase"].forEach((function(t){n[t]=e[t]})),n.identitiesCount=n.identities?n.identities.length:0,n.joinersCount=n.joiners?n.joiners.length:0,n.activesCount=n.actives?n.actives.length:0,n.leaversCount=n.leavers?n.leavers.length:0,n.revokedCount=n.revoked?n.revoked.length:0,n.excludedCount=n.excluded?n.excluded.length:0,n.certificationsCount=n.certifications?n.certifications.length:0,n.transactionsCount=n.transactions?n.transactions.length:0,n.empty=n.isEmpty()}function n(e){var t=e.split(":");if(t.length<3||!t[0].startsWith("WS2P"))throw Error("Invalid format: "+e);if("HEAD"==t[1]){if(t.length<4)throw Error("Invalid format: "+e);if(4==t.length)this.pubkey=t[2],this.buid=t[3];else if(t[2]>=1){var n=t[0];if(n.length>4){var i=this.regexp.WS2P_PREFIX.exec(n);if(!i)throw Error("Invalid format: "+e);var a=i[1];if(a){this.private={useTor:a.startsWith("T")};var o=a.substring(1);"A"==o?this.private.mode="all":"M"==o?this.private.mode="mixed":"S"==o&&(this.private.mode="strict")}var r=i[2];r&&(this.public={useTor:r.startsWith("T"),mode:"all"})}this.pubkey=t[3],this.buid=t[4],this.ws2pid=t[5],this.software=t[6],this.version=t[7],this.powPrefix=t[8]}}}function a(e,t){e.extensionPoint=t.extensions.points.current.get()}function o(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f,_){e.walletData=E.data,e.search={},e.login=E.isLogin(),e.auth=E.isAuth(),e.motion=p.motion.default,e.fullscreen=p.screen.fullscreen.isEnabled(),e.showHome=function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.home").then(p.loading.hide)},e.scanQrCodeAndGo=function(){if(b.barcode.enable)return b.barcode.scan().then((function(e){if(e)return m.uri.parse(e).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return n.go("app.wot_identity",{pubkey:e.pubkey,node:e.host?e.host:null})})).catch((function(t){return console.debug("[app] Scan data is not an URI (get error: "+(t&&t.message||t)+"). Trying to decode as a WIF or EWIF format..."),d.keyfile.parseData(e).then((function(e){if(!e||!e.signPk||!e.signSk)throw t;var i=u.base58.encode(e.signPk);console.debug("[app] Detected WIF/EWIF format. Will login to wallet {"+i.substring(0,8)+"}");var a=E.isLogin()?E.children.create({store:!1}):E;return a.login({silent:!0,forceAuth:!0,minData:!1,authData:{pubkey:i,keypair:e}}).then((function(){return r.nextViewOptions({historyRoot:!0}),n.go("app.new_transfer",{all:!0,wallet:a.isDefault()?void 0:a.id})}))})).catch(p.onError("ERROR.SCAN_UNKNOWN_FORMAT"))}))})).catch(p.onError("ERROR.SCAN_FAILED"))},e.createHelptipScope=function(n,i){if(n||!t.tour&&t.settings.helptip.enable&&!p.screen.isSmall()){var a=e.$new();return s(i||"HelpTipCtrl",{$scope:a}),a}},e.startHelpTour=function(n,i){if(t.tour=!0,!i)return r.clearHistory(),r.clearCache().then((function(){e.startHelpTour(n,!0)}));var a=e.createHelptipScope(!0,n);return a.startHelpTour().then((function(){a.$destroy(),delete t.tour})).catch((function(e){delete t.tour}))},e.isLogin=function(){return e.login},e.loadWalletData=function(e){return console.warn("[app-controller] DEPRECATED  - Please use csWallet.load() instead of $scope.loadWalletData()",new Error),((e=e||{}).wallet||E).loadData(e).then((function(e){if(!e)throw"CANCELLED";return e}))},e.loadWallet=function(t){if(console.warn("[app-controller] DEPRECATED  - Please use csWallet.loginOrLoad() instead of $scope.loadWallet()",new Error),!c.isStarted())return c.ready().then((function(){return e.loadWallet(t)}));var n=(t=t||{}).wallet||E;return t.auth&&!n.isAuth()?n.auth(t).then((function(e){if(e)return e;throw"CANCELLED"})):n.isLogin()?n.isDataLoaded(t)?a.when(n.data):e.loadWalletData(t):n.login(t).then((function(e){if(e)return e;throw"CANCELLED"}))},e.loginAndGo=function(t,i){e.closeProfilePopover();var a=(i=i||{}).wallet||E;if(delete i.wallet,t=t||"app.view_wallet",a.isLogin())return n.go(t,i);if(f.httpsMode&&l.location&&"https:"!==l.location.protocol){var o=l.location.href,r=o.indexOf("#"),s=-1!=r?o.substr(0,r):o;if(o=(s="https"+s.substr(4))+n.href(t),!f.httpsModeDebug)return void(l.location.href=o);console.debug("[httpsMode] --- Should redirect to: "+o)}return a.login(i).then((function(){return n.go(t,i)})).then(p.loading.hide)},e.logout=function(t){var n=(t=t||{}).wallet||E;return!t.force&&e.profilePopover?e.profilePopover.hide().then((function(){return t.force=!0,e.logout(t)})):t.askConfirm?p.alert.confirm("CONFIRM.LOGOUT").then((function(n){if(n)return t.askConfirm=!1,e.logout(t)})):(p.loading.show(),n.logout().then((function(){if(i.isOpenLeft()&&i.toggleLeft(),n.isDefault())return r.clearHistory(),r.clearCache().then((function(){return e.showHome()}))})).catch(p.onError()))},e.doAuth=function(e){return(e&&e.wallet||E).auth().then(p.loading.hide)},e.isUserPubkey=function(e){return E.isUserPubkey(e)},E.api.data.on.login(e,(function(t,n){return e.login=!0,n?n.resolve():a.when()})),E.api.data.on.logout(e,(function(){e.login=!1})),E.api.data.on.auth(e,(function(t,n){return e.auth=!0,n?n.resolve():a.when()})),E.api.data.on.unauth(e,(function(){e.auth=!1})),e.showTransferModal=function(e){return g.showTransfer(e)},e.showAboutModal=function(){return g.showAbout()},e.showJoinModal=function(){return e.closeProfilePopover(),g.showJoin()},e.showSettings=function(){return e.closeProfilePopover(),n.go("app.settings")},e.showHelpModal=function(e){return g.showHelp(e)},e.showProfilePopover=function(t){return p.popover.show(t,{templateUrl:"templates/common/popover_profile.html",scope:e,autoremove:!0,afterShow:function(t){e.profilePopover=t,o((function(){p.ink({selector:"#profile-popover .ink, #profile-popover .ink-dark"})}),100)}})},e.closeProfilePopover=function(){e.profilePopover&&e.profilePopover.isShown()&&o((function(){e.profilePopover.hide()}))},e.showPeerInfoPopover=function(t){return p.popover.show(t,{templateUrl:"templates/network/popover_peer_info.html",autoremove:!0,scope:e.$new(!0)})},e.openLink=function(e,t,n){return e.stopPropagation(),e.preventDefault(),(n=n||{}).onError=function(){return p.popover.copy(e,t)},_.uri.open(t,n),!1},e.showFab=function(e,t){p.motion.toggleOn({selector:"#"+e+".button-fab"},t)},e.hideFab=function(e,t){p.motion.toggleOff({selector:"#"+e+".button-fab"},t)},e.doMotion=function(t){return e.motion.show(t)},e.askFullscreen=function(){if(!e.fullscreen&&p.screen.isSmall()&&b.isWeb())return p.alert.confirm("CONFIRM.FULLSCREEN",null,{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(t){t&&e.toggleFullscreen()}))},e.toggleFullscreen=function(){e.fullscreen=!p.screen.fullscreen.isEnabled(),p.screen.fullscreen.toggleAll()}}function r(e,t,n,i,a,o,r,s,l){e.loading=!0,e.locales=angular.copy(l.locales),e.enter=function(n,a){ionic.Platform.isIOS()&&window.StatusBar&&(StatusBar.overlaysWebView(!1),StatusBar.overlaysWebView(!0)),a&&a.stateParams&&a.stateParams.error?(e.error=a.stateParams.error,e.node=s.data.node,e.loading=!1,i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),t.go("app.home",{error:void 0},{reload:!1,inherit:!0,notify:!1})):r.ready().then((function(){e.loading=!1})).catch((function(t){e.node=s.data.node,e.loading=!1,e.error=t}))},e.$on("$ionicView.enter",e.enter),e.reload=function(){e.loading=!0,delete e.error,n(e.enter,200)},e.doQuickFix=function(e){"settings"===e&&(i.nextViewOptions({historyRoot:!0}),t.go("app.settings"))},e.changeLanguage=function(t){a.use(t),e.hideLocalesPopover(),l.data.locale=_.findWhere(e.locales,{id:t})},e.showLocalesPopover=function(t){o.popover.show(t,{templateUrl:"templates/api/locales_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.localesPopover=t}})},e.hideLocalesPopover=function(){e.localesPopover&&(e.localesPopover.hide(),e.localesPopover=null)}}function s(e,t,n,i,a){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showJoinModal=function(){return e.loading?t(e.showJoinModal,500):a.isLogin()||e.error?void 0:t(i.showJoin,300)},e.$on("$ionicView.enter",e.showJoinModal)}function l(e,t,n,i,a){e.formData={},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.loading=!0,e.load=function(){if(e.loading)return a.get().then((function(t){t&&(e.currency=t,e.formData.currency=t.name,e.loading=!1)})).catch(i.onError("ERROR.GET_CURRENCY_FAILED"))},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.selectAccountTypeAndClose=function(t){e.formData.accountType=t,e.closeModal(e.formData)},e.doQuickFix=function(n){"settings"==n&&(e.closeModal(),t.go("app.settings"))},e.showHelpModal=function(e){n.showHelp({anchor:e})}}function c(e,t,n,i,a,o,r,s,l,c,u,d,p){var m;e.formData={pseudo:p.uid||"",pubkey:p.pubkey||void 0},e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500,pager:!1,showPager:!1}},e.slideBehavior={},e.loading=!0,e.isLicenseRead=o.isIOS(),e.showUsername=!1,e.showPassword=!1,e.formData.computing=!1,e.smallscreen=r.screen.isSmall(),e.userIdPattern=d.constants.regexp.USER_ID,e.accountAvailable=!!p.pubkey,e.currency=p.currency,e.accountType=p.accountType||"member",e.load=function(){if(e.loading){if(!(m=p.walletId&&u.children.get(p.walletId)||p.pubkey&&u.children.getByPubkey(p.pubkey)||(!p.pubkey||u.isUserPubkey(p.pubkey))&&u))throw new Error("Cannot found the corresponding wallet, from parameters.pubkey or parameters.walletId");console.debug("[join] Starting join modal on wallet {0}".format(m.id)),"member"===e.accountType&&(e.licenseFileUrl=l.getLicenseUrl(),e.licenseFileUrl&&(".txt"!=e.licenseFileUrl.substring(e.licenseFileUrl.length-3)&&(e.licenseFileUrl=e.licenseFileUrl+".html"),e.isLicenseRead||a((function(){e.isLicenseRead||(e.isLicenseRead=!0)}),5e3))),e.slideBehavior=e.computeSlideBehavior(),e.loading=!1}},e.$on("modal.shown",e.load),e.$on("$ionicSlides.sliderInitialized",(function(e,t){t.slider.lockSwipes()})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes()},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes()},e.showAccountPubkey=function(){if(p.pubkey&&p.pseudo===e.formData.pseudo)return e.formData.pubkey=p.pubkey,void(e.formData.computing=!1);e.formData.computing=!0,s.scryptKeypair(e.formData.username,e.formData.password).then((function(t){return e.formData.pubkey=s.util.encode_base58(t.signPk),e.checkAccountAvailable()})).then((function(){return a((function(){e.formData.computing=!1}),400)})).catch((function(t){e.formData.pubkey=void 0,e.formData.computing=!1,r.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t)}))},e.formDataChanged=function(){e.formData.computing=!1,e.formData.pubkey=null},e.getCurrentFormName=function(){var t=e.slides.slider.activeIndex;if("member"===e.accountType){if(t+=e.licenseFileUrl?0:1,0===(t+=p.pubkey&&t>=2?2:0))return"licenseForm";if(1===t)return"pseudoForm";if(2===t)return"saltForm";if(3===t)return"passwordForm";if(4===t)return"confirmForm"}else{if(0===t)return"saltForm";if(1===t)return"passwordForm";if(2===t)return"confirmForm"}},e.computeSlideBehavior=function(){var t=e.getCurrentFormName();return"licenseForm"===t?{hasPreviousButton:!1,hasNextButton:!1,hasAcceptButton:!0}:"pseudoForm"===t?{helpAnchor:"join-pseudo",hasPreviousButton:e.licenseFileUrl&&!0,hasNextButton:!0,focus:"pseudo"}:"saltForm"===t?{helpAnchor:"join-salt",hasPreviousButton:"member"===e.accountType,hasNextButton:!0,focus:"salt"}:"passwordForm"===t?{helpAnchor:"join-password",hasPreviousButton:!0,hasNextButton:!0,focus:"password"}:"confirmForm"===t?{hasPreviousButton:!0,hasNextButton:!1,hasSendButton:!0,helpAnchor:"join-pubkey"}:{hasPreviousButton:!1,hasNextButton:!0}},e.doNext=function(){var t=e.getCurrentFormName();if(t&&e[t]){if(e[t].$submitted=!0,!e[t].$valid)return;if("pseudoForm"===t&&e.uiAlreadyUsed)return;"passwordForm"===t&&e.showAccountPubkey()}e.slideNext(),e.slideBehavior=e.computeSlideBehavior()},e.doPrev=function(){e.slidePrev(),e.slideBehavior=e.computeSlideBehavior()},e.doNewAccount=function(n){if(!n){var o="member"===e.accountType?"ACCOUNT.NEW.CONFIRMATION_MEMBER_ACCOUNT":"ACCOUNT.NEW.CONFIRMATION_WALLET_ACCOUNT";return r.alert.confirm(o,void 0,{cssClass:"warning",okText:"member"==e.accountType?"COMMON.BTN_SEND":"COMMON.BTN_CONTINUE",okType:"button-assertive"}).then((function(t){t&&e.doNewAccount(!0)}))}var s=function(e){return function(t){throw parameter.uid?m.unauth().then((function(){r.onError(e)(t)})):m.logout().then((function(){r.onError(e)(t)})),new Error("CANCELLED")}};return r.loading.show(),m.login({auth:!0,isNew:!0,method:"SCRYPT_DEFAULT",expectedPubkey:e.formData.pubkey,showMethods:!1}).then((function(){if("member"===e.accountType){e.closeModal(),l.data.wallet=l.data.wallet||{},l.data.wallet.alertIfUnusedWallet=!1;var n=angular.isUndefined(p.uid)||angular.isUndefined(p.blockUid)||p.uid.toUpperCase()!==e.formData.pseudo.toUpperCase();return n||m.setSelf(p.uid,p.blockUid),(n?m.self(e.formData.pseudo,!1).catch(s("ERROR.SEND_IDENTITY_FAILED")):i.when()).then((function(){return m.membership.inside().catch((function(e){e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND||s("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e)}))})).then((function(){return e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).then((function(){return a((function(){return m.isDataLoaded({requirements:!0})&&r.loading.hide(),e.downloadRevocationRegistration()}),2e3)}))}e.closeModal(),m.isDefault()?t.go("app.view_wallet"):t.go("app.view_wallet_by_id",{id:m.id})})).catch((function(e){r.loading.hide(),"CANCELLED"!==e&&(e&&e.ucode!=d.errorCodes.MEMBERSHIP_ALREADY_SEND?console.error("[wallet] Node: already membership",e):r.alert.error("ERROR.UNKNOWN_ERROR"))}))},e.downloadRevocationRegistration=function(){return r.alert.confirm("DOWNLOAD.POPUP_REVOKE_MESSAGE","DOWNLOAD.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_DOWNLOAD",okType:"button-assertive",cancelText:"COMMON.BTN_LATER"}).then((function(e){if(e)return m.downloadRevocation()}))},e.showHelpModal=function(e){c.showHelp({anchor:e})},e.startListenLicenseBottom=function(){var t=angular.element(document.querySelector(".modal #iframe-license"));if(!(t=t&&t.length?t[0]:void 0)||!t.contentWindow)return console.debug("[join] Waiting license frame to be load..."),a(e.startListenLicenseBottom,1e3);e.licenseBottomInterval=n((function(){var n=t.contentWindow.document.body.scrollTop;t.contentWindow.document.body.scrollHeight-t.contentWindow.document.body.clientHeight===n&&(e.isLicenseRead=!0,e.stopListenLicenseBottom())}),1e3)},e.stopListenLicenseBottom=function(){e.licenseBottomInterval&&(n.cancel(e.licenseBottomInterval),delete e.licenseBottomInterval)},e.$on("modal.hidden",e.stopListenLicenseBottom),e.checkUid=function(){if(!e.formData.pseudo||e.formData.pseudo.length<3)return e.formData.computing=!1,void delete e.uiAlreadyUsed;var t=e.formData.pseudo.toUpperCase();if(e.formData.computing=!0,p.uid&&t===p.uid.toUpperCase())return e.formData.computing=!1,void(e.uiAlreadyUsed=!1);d.wot.lookup({search:t}).then((function(n){e.uiAlreadyUsed=(n.results||[]).some((function(e){return(e.uids||[]).some((function(e){return e.uid.toUpperCase()===t}))})),e.formData.computing=!1})).catch((function(t){console.error(t),e.formData.computing=!1,e.uiAlreadyUsed=!1}))},e.$watch("formData.pseudo",e.checkUid,!0),e.checkAccountAvailable=function(){if(!p.pubkey)return delete e.accountAvailable,d.tx.sources({pubkey:e.formData.pubkey}).then((function(t){e.accountAvailable=!t||!t.sources.length})).catch((function(t){console.error(t),e.accountAvailable=!1}));e.accountAvailable=!0},e.identifierRecovery=function(){e.slides.slider.unlockSwipes();for(var t=0;t<2;t++)e.slides.slider.slidePrev();e.slides.slider.lockSwipes(),e.slideBehavior=e.computeSlideBehavior()}}function u(e,t,n,i){angular.extend(this,n("HomeCtrl",{$scope:e})),e.showLoginModal=function(){return e.loading?t(e.showLoginModal,500):i.isLogin()||e.error?void 0:t(i.login,300)},e.$on("$ionicView.enter",e.showLoginModal)}function d(e,t,n,i,a,o,r,s,l,c,u,d,p){p=p||{},e.computing=!1,e.pubkey=null,e.formData={},e.showPubkey=!1,e.showComputePubkeyButton=!1,e.autoComputePubkey=!1,e.pubkeyPattern="^(:?{0}|{1})$".format(l.constants.regexp.PUBKEY,l.constants.regexp.PUBKEY_WITH_CHECKSUM),e.isAuth=p.auth,e.okText=p.okText,e.title=p.title||(e.isAuth?"AUTH.TITLE":"LOGIN.TITLE"),e.showMethods=!angular.isDefined(p.showMethods)||p.showMethods,e.showNewAccountLink=!angular.isDefined(p.showNewAccountLink)||p.showNewAccountLink,e.expectedPubkey=p.expectedPubkey,e.expectedUid=p.uid,e.scryptParamsValues=_.keys(a.constants.SCRYPT_PARAMS).reduce((function(e,t){return e.concat({id:t,label:"LOGIN.SCRYPT."+t,params:a.constants.SCRYPT_PARAMS[t]})}),[{id:"USER",label:"LOGIN.SCRYPT.USER",params:{}}]),e.init=function(){r().then((function(){e.autoComputePubkey="a"===ionic.Platform.grade.toLowerCase()&&!s.screen.isSmall()})),e.formData.rememberMe=u.data.rememberMe,e.formData.keepAuthIdle=u.data.keepAuthIdle,e.formData.keepAuth=e.formData.keepAuthIdle==u.constants.KEEP_AUTH_IDLE_SESSION;var t=p.method||u.data.login&&u.data.login.method||"SCRYPT_DEFAULT",n=u.data.login&&u.data.login.params;(e.isAuth&&"PUBKEY"===t||"SCAN"===t||"default"===t)&&(t="SCRYPT_DEFAULT"),e.changeMethod(t,n)},e.enter=function(){s.loading.hide(),s.ink({selector:".modal-login .ink"})},e.$on("modal.shown",e.enter),e.leave=function(){e.formData={},e.computing=!1,e.pubkey=null,e.methods=[]},e.$on("modal.hide",e.leave),e.doLogin=function(n){var i=e.formData.method;if(e.form.$valid||"SCAN"===i){d.keyboard.close();var r,c=e.formData.keepAuthIdle;if("SCRYPT_DEFAULT"===i||"SCRYPT_ADVANCED"===i){if(!e.formData.username||!e.formData.password)return;var m=e.formData.scrypt&&e.formData.scrypt.params;s.loading.show(),r=a.scryptKeypair(e.formData.username,e.formData.password,m).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.pubkey=n,e.showPubkey=!0,e.pubkeyError=!0,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t,params:e.formData.scrypt&&"SCRYPT_DEFAULT"!=e.formData.scrypt.id?m:void 0})})).catch(s.onError("ERROR.CRYPTO_UNKNOWN_ERROR"))}else if("FILE"===i){if(!e.formData.file||!e.formData.file.valid||!e.formData.file.pubkey)return;c=e.formData.keepAuth&&u.constants.KEEP_AUTH_IDLE_SESSION||c,r=s.loading.show().then((function(){return e.readKeyFile(e.formData.file,{withSecret:e.isAuth||e.formData.keepAuth})})).then((function(t){if(!t)return s.loading.hide(10);var n=a.util.encode_base58(t.signPk);return p.expectedPubkey&&p.expectedPubkey!=n?(e.formData.file.valid=!1,s.loading.hide(10)):(e.pubkeyError=!1,{pubkey:n,keypair:t})})).catch(s.onError("ERROR.AUTH_FILE_ERROR"))}else if("PUBKEY"===i){var E=e.formData.pubkey&&e.formData.pubkey.trim(),b=e.formData.uid&&e.formData.uid.trim()||void 0;if(!E)return;var g=l.regexp.PUBKEY.exec(E);if(g)r=s.loading.show().then((function(){return{pubkey:E,uid:b}}));else{if(!(g=l.regexp.PUBKEY_WITH_CHECKSUM.exec(E)))return e.showWotLookupModal(E);E=g[1],g[2]!=o.util.pkChecksum(E)?e.form.pubkey.$error={checksum:!0}:r=s.loading.show().then((function(){return{pubkey:E,uid:b}}))}}else if("SCAN"===i){if(!e.formData.pubkey||e.isAuth&&!e.formData.keypair)return;r=s.loading.show().then((function(){return{pubkey:e.formData.pubkey,keypair:e.formData.keypair}}))}if(r)return r.then((function(n){if(n){var a=!angular.equals(u.data.rememberMe,e.formData.rememberMe),o=!angular.equals(u.data.keepAuthIdle,c),r=!angular.equals(u.data.login&&u.data.login.method,i),l=!angular.equals(u.data.login&&u.data.login.params,n.params);return(a||o||r||l)&&(u.data.rememberMe=e.formData.rememberMe,u.data.keepAuthIdle=c,u.data.useLocalStorage=!!u.data.rememberMe||u.data.useLocalStorage,u.data.login=u.data.login||{},u.data.login.method=i,u.data.login.params=n.params,t(u.store,500)),p.success&&p.success(e.formData),p.silent&&s.loading.hide(),e.closeModal(n)}}));console.warn("[login] unknown method: ",i)}},e.onScryptFormChanged=function(){e.computing||(e.pubkey=null,e.pubkeyError=!1,e.showPubkey=!!e.formData.username&&!!e.formData.password,e.autoComputePubkey&&e.showPubkey?(e.computePubkey(),e.showComputePubkeyButton=!1):e.showComputePubkeyButton=!e.autoComputePubkey&&e.showPubkey)},e.$watch("formData.username + formData.password",e.onScryptFormChanged,!0),e.computePubkey=function(){return e.showComputePubkeyButton=!1,e.computing=!0,e.pubkey=null,t((function(){var t=e.formData.username,n=e.formData.password,i=e.formData.scrypt&&e.formData.scrypt.params;return a.scryptSignPk(t,n,i).then((function(i){if(t!==e.formData.username||n!==e.formData.password)return e.computePubkey();e.pubkey=a.util.encode_base58(i),e.expectedPubkey&&e.expectedPubkey!=e.pubkey&&(e.pubkeyError=!0),e.computing=!1})).catch((function(t){s.onError("ERROR.CRYPTO_UNKNOWN_ERROR")(t),e.computing=!1,e.autoComputePubkey=!1,e.onScryptFormChanged()}))}),100)},e.showJoinModal=function(){e.closeModal(),t((function(){c.showJoin()}),300)},e.showAccountSecurityModal=function(){e.closeModal(),t((function(){c.showAccountSecurity()}),300)},e.showHelpModal=function(e){return c.showHelp(e)},e.doScan=function(){if(!e.computing)return e.computing=!0,e.formData.pubkey=null,e.formData.keypair=null,d.barcode.scan().then((function(t){if(t)return e.isAuth?n.when(t):l.uri.parse(t).then((function(e){if(!e||!e.pubkey)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return e})).catch((function(e){return console.debug("[login] Error while parsing as URI: "+(e&&e.message||e)),t}))})).then((function(e){if(e)return e&&e.pubkey?e:o.keyfile.parseData(e,{silent:!0}).then((function(e){if(!e||!e.signPk||!e.signSk)throw{message:"ERROR.SCAN_UNKNOWN_FORMAT"};return{pubkey:a.base58.encode(e.signPk),keypair:e}})).catch(s.onError("ERROR.SCAN_UNKNOWN_FORMAT"))})).then((function(t){t&&t.pubkey&&(e.pubkeyError=e.expectedPubkey&&e.expectedPubkey!=t.pubkey,e.formData.pubkey=t.pubkey,e.formData.keypair=t.keypair)})).then((function(){e.computing=!1,s.loading.hide(10)})).catch((function(t){e.computing=!1,s.onError("ERROR.SCAN_FAILED")(t)}))},e.changeMethod=function(t,n){if(e.hideMethodsPopover(),t&&t!=e.formData.method)if(console.debug("[login] method is: "+t),e.formData.method=t,e.formData.uid=null,e.form&&delete e.form.$submitted,"SCRYPT_DEFAULT"==t||"SCRYPT_ADVANCED"==t){var i;e.pubkey=null,n?(i=_.find(e.scryptParamsValues,(function(e){return e.params&&angular.equals(e.params,n)})))||((i=_.findWhere(e.scryptParamsValues,{id:"USER"})||{}).params=n):i=_.findWhere(e.scryptParamsValues,{id:"DEFAULT"}),e.changeScrypt(i),e.autoComputePubkey=e.autoComputePubkey&&"SCRYPT_DEFAULT"==t}else{if("SCAN"==t)return e.doScan();e.formData.username=null,e.formData.password=null,e.formData.pubkey=null,e.pubkey=null,e.computing=!1}},e.changeScrypt=function(t){e.formData.scrypt=angular.copy(t||{}),e.onScryptFormChanged()},e.readKeyFile=function(n,i){return(i=i||{}).password=i.password||e.formData.file.password||function(){return e.formData.file.password=void 0,c.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:e}).then((function(n){return e.formData.file.password=n,t((function(){return n}),150)}))},o.keyfile.read(e.formData.file,i).catch((function(t){if(e.formData.file.password=void 0,"CANCELLED"===t&&s.loading.hide(10),t&&t.ucode==o.errorCodes.BAD_PASSWORD)return e.readKeyFile(e.formData.file,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw t}))},e.fileChanged=function(n){e.validatingFile=!0,e.formData.file=n&&n.target&&n.target.files&&n.target.files.length&&n.target.files[0],e.formData.file?t((function(){return console.debug("[login] key file changed: ",e.formData.file),e.validatingFile=!0,e.readKeyFile(e.formData.file,{withSecret:!1,password:e.formData.file.password}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){t&&"CANCELLED"===t?e.removeKeyFile():(e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t))}))})):e.validatingFile=!1},e.onKeyFileDrop=function(n){n&&n.fileData&&(e.formData.file={name:n.fileData.name,size:n.fileData.size,content:n.fileContent},e.validatingFile=!0,t((function(){return e.readKeyFile(e.formData.file,{withSecret:!1}).then((function(t){t&&t.signPk?(e.formData.file.pubkey=a.util.encode_base58(t.signPk),e.formData.file.valid=!e.expectedPubkey||e.expectedPubkey==e.formData.file.pubkey,e.validatingFile=!1):(e.formData.file.valid=!1,e.formData.file.pubkey=void 0)})).catch((function(t){e.validatingFile=!1,e.formData.file.valid=!1,e.formData.file.pubkey=void 0,s.onError("ERROR.AUTH_FILE_ERROR")(t)}))})))},e.removeKeyFile=function(){e.formData.file=void 0},e.showWotLookupModal=function(n){return c.showWotLookup({q:n}).then((function(n){if(n&&n.pubkey)return e.formData.pubkey=n.pubkey,e.formData.uid=n.uid||void 0,t(e.doLogin,300)}))},e.showMethodsPopover=function(t){t.defaultPrevented||s.popover.show(t,{templateUrl:"templates/login/popover_methods.html",scope:e,autoremove:!0,afterShow:function(t){e.methodsPopover=t,s.ink({selector:".popover-login-methods .item"})}})},e.hideMethodsPopover=function(){e.methodsPopover&&(e.methodsPopover.hide(),e.methodsPopover=null)},e.init()}function p(e,t){angular.extend(this,t("LoginModalCtrl",{$scope:e,parameters:{auth:!0}})),e.setForm=function(t){e.form=t}}function m(e,t,n,i,a){e.$on("$ionicView.enter",(function(o){e.locale=a.data.locale.id,t.stateParams&&t.stateParams.anchor&&(e.anchor=t.stateParams.anchor,n((function(){i(t.stateParams.anchor)}),100))}))}function E(e,t,n,i,a){e.itemsClass={},e.locale=i.data.locale.id,(a=a||{})&&"string"==typeof a&&(a={anchor:a}),a.anchor&&(t((function(){n(a.anchor)}),100),e.itemsClass={},e.itemsClass[a.anchor]="selected",e.listClass="selection")}function b(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.tour=!1,e.continue=!0,e.executeStep=function(t,n,i){if((i=angular.isDefined(i)?i:0)>=n.length)return o.when(!0);var a=n[i];if("function"!=typeof a)throw new Error("[helptip] Invalid step at index {0} of '{1}' tour: step must be a function".format(i,t));var r=a();return"boolean"==typeof r&&(r=o.when(r)),r.then((function(a){return angular.isUndefined(a)?(e.continue=!1,i):a&&i!==n.length-1?e.executeStep(t,n,i+1):a?-1:i+1})).catch((function(n){return n&&"transition prevented"==n.message?console.error("ERROR: in help tour [{0}], in step [{1}] -> use large if exists, to prevent [transition prevented] error".format(t,i)):console.error("ERROR: in help tour  [{0}], in step [{1}] : {2}".format(t,i,n)),e.continue=!1,i}))},e.showHelpTip=function(t,n){return(n=n||{}).bindings=n.bindings||{},n.bindings.value=n.bindings.value||"",n.bindings.hasNext=!angular.isDefined(n.bindings.hasNext)||n.bindings.hasNext,n.timeout=n.timeout||(p.enable?900:500),n.autoremove=!0,n.bindings.tour=e.tour,n.backdropClickToClose=!e.tour,s.popover.helptip(t,n)},e.showHelpModal=function(e){Modals.showHelp({anchor:e})},e.startHelpTour=function(){return e.tour=!0,e.continue=!0,e.startCurrencyTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.currency=t,c.store(),e.continue)})).then((function(t){return!!t&&e.startNetworkTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.network=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotLookupTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wotLookup=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotTour(0,!0).then((function(t){return!(!t||e.cancelled)&&(c.data.helptip.wot=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWotCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wotCerts=t,c.store(),e.continue)}))})).then((function(t){return!!t&&e.startWalletNoLoginTour(0,!0)})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletTour(0,!0).then((function(t){return!!t&&(c.data.helptip.wallet=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startWalletCertTour(0,!0).then((function(t){return!!t&&(c.data.helptip.walletCerts=t,c.store(),e.continue)})))})).then((function(t){return!!t&&(!m.isLogin()||e.startTxTour(0,!0).then((function(t){return!!t&&(c.data.helptip.tx=t,c.store(),e.continue)})))})).then((function(t){return!!t&&e.startHeaderTour(0,!0)})).then((function(t){return!!t&&e.startSettingsTour(0,!0)})).then((function(t){return!!t&&e.finishTour()}))},e.startCurrencyTour=function(n,a){var o,l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-currency",{bindings:{content:"HELP.TIP.MENU_BTN_CURRENCY",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency":"app.currency_lg").then((function(){return e.showHelpTip("helptip-currency-mass-member",{bindings:{content:"HELP.TIP.CURRENCY_MASS",icon:{position:"center"}}})}))},function(){return!c.data.useRelative||e.showHelpTip("helptip-currency-mass-member-unit",{bindings:{content:"HELP.TIP.CURRENCY_UNIT_RELATIVE",contentParams:o,icon:{position:s.screen.isSmall()?"right":"center"}}})},function(){return r("helptip-currency-rules-anchor"),e.showHelpTip("helptip-currency-rules",{bindings:{content:"HELP.TIP.CURRENCY_RULES",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return t.is("app.currency.tab_parameters")&&t.go("app.currency.tab_wot"),r("helptip-currency-newcomers-anchor"),e.showHelpTip("helptip-currency-newcomers",{bindings:{content:"HELP.TIP.CURRENCY_WOT",icon:{position:"center"},hasNext:a},timeout:1200})}];return u.get().then((function(t){return o=t.parameters,e.executeStep("currency",l,n)}))},e.startNetworkTour=function(o,r){var d=function(){t.is("app.currency")&&a((function(){var e=n.document.querySelectorAll("ion-tabs .tabs a");e&&3==e.length&&angular.element(e[2]).triggerHandler("click")}),100)},p=[function(){return!!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-network",{bindings:{content:"HELP.TIP.MENU_BTN_NETWORK",icon:{position:"left"}}}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.currency.tab_network":"app.network").then((function(){return d(),e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_BLOCKCHAIN",icon:{position:"center",glyph:"ion-information-circled"}},timeout:1200})}))},function(){return d(),e.showHelpTip("helptip-network-peer-0",{bindings:{content:"HELP.TIP.NETWORK_PEERS",icon:{position:s.screen.isSmall()?void 0:"center"}},timeout:1e3,retry:20})},function(){return d(),e.showHelpTip("helptip-network-peer-0-block",{bindings:{content:"HELP.TIP.NETWORK_PEERS_BLOCK_NUMBER",icon:{position:s.screen.isSmall()?void 0:"center"}}})},function(){d();var t=c.data.locale.id;return e.showHelpTip("helptip-network-peers",{bindings:{content:"HELP.TIP.NETWORK_PEERS_PARTICIPATE",contentParams:{installDocUrl:l.helptip&&l.helptip.installDocUrl?l.helptip.installDocUrl[t]?l.helptip.installDocUrl[t]:l.helptip.installDocUrl:"http://duniter.org"},icon:{position:"center",glyph:"ion-information-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("network",p,o)}))},e.startWotLookupTour=function(o,r){var l=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-wot",{bindings:{content:"HELP.TIP.MENU_BTN_WOT",icon:{position:"left"}},onError:"continue"})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go(s.screen.isSmall()?"app.wot_lookup.tab_search":"app.wot_lookup_lg").then((function(){return e.showHelpTip("helptip-wot-search-text",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WOT_SEARCH_TEXT_XS":"HELP.TIP.WOT_SEARCH_TEXT",icon:{position:"center"}}})}))},function(){return e.showHelpTip("helptip-wot-search-result-0",{bindings:{content:"HELP.TIP.WOT_SEARCH_RESULT",icon:{position:"center"}},timeout:700,retry:15})},function(){var t=n.document.getElementById("helptip-wot-search-result-0");return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS",hasNext:r},timeout:2500}))}];return e.executeStep("wotLookup",l,o)},e.startWotTour=function(t,n){var i,a=[function(){return e.showHelpTip("helptip-wot-view-certifications",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_COUNT",contentParams:i,icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip("helptip-wot-view-certifications-count",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFICATIONS_CLICK",icon:{position:"center"},hasNext:n}})}];return u.get().then((function(n){return(i=n.parameters).currentUD=n.currentUD,e.executeStep("wot",a,t)}))},e.startWotCertTour=function(i,o){var r=[function(){if(t.is("app.wot_identity")){var i=n.document.getElementById("helptip-wot-view-certifications");if(!i)return!0;a((function(){angular.element(i).triggerHandler("click")}))}return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.WOT_VIEW_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:1e3,retry:10})},function(){return e.showHelpTip(s.screen.isSmall()?"fab-certify":"helptip-certs-certify",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:o}})}];return e.executeStep("certs",r,i)},e.startWalletNoLoginTour=function(t,n){if(m.isLogin())return o.when(!0);var a=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"},hasNext:n}})}];return e.executeStep("wallet-no-login",a,t)},e.startWalletTour=function(n,a){if(!m.isLogin())return o.when(!0);var l=m.data.isMember||m.data.requirements&&m.data.requirements.pendingMembership,c=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-account",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_ACCOUNT_MEMBER":"HELP.TIP.MENU_BTN_ACCOUNT",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet").then((function(){return e.showHelpTip(s.screen.isSmall()?"helptip-wallet-options-xs":"helptip-wallet-options",{bindings:{content:"HELP.TIP.WALLET_OPTIONS",icon:{position:s.screen.isSmall()?"right":"center"}}})}))},function(){return r("helptip-wallet-pubkey"),e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.WALLET_PUBKEY",icon:{position:"center"},hasNext:!l&&a},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return l?(r("helptip-wallet-certifications"),e.showHelpTip("helptip-wallet-certifications",{bindings:{content:s.screen.isSmall()?"HELP.TIP.WALLET_RECEIVED_CERTIFICATIONS":"HELP.TIP.WALLET_CERTIFICATIONS",icon:{position:"center"},hasNext:a},timeout:500,onError:"continue"})):a}];return c.length!=d.wallet.stepCount&&console.error("[help] Invalid value of 'csHelpConstants.wallet.stepCount'. Please update to {0}".format(c.length)),u.get().then((function(t){return t.parameters.currentUD=t.currentUD,e.executeStep("wallet",c,n)}))},e.startWalletCertTour=function(i,r){if(!m.isLogin())return o.when(!0);var l=!1,c=[function(){if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}))}return!s.screen.isSmall()||e.showHelpTip("helptip-received-certs",{bindings:{content:"HELP.TIP.WALLET_RECEIVED_CERTS"}})},function(){return!(!l&&s.screen.isSmall())||t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-given-certifications",{bindings:{content:"HELP.TIP.WALLET_GIVEN_CERTIFICATIONS",icon:{position:"center"}},timeout:500})}))},function(){if(l)return!0;if(t.is("app.view_wallet")){var i=n.document.getElementById("helptip-wallet-given-certifications");if(!i)return l=!0,!0;a((function(){angular.element(i).triggerHandler("click")}),500)}return e.showHelpTip(s.screen.isSmall()?"fab-select-certify":"helptip-certs-select-certify",{bindings:{content:"HELP.TIP.WALLET_CERTIFY",icon:{position:s.screen.isSmall()?"bottom-right":"center"}},timeout:s.screen.isSmall()?2e3:500,retry:10})},function(){return e.tour||l?r:e.showHelpTip("helptip-certs-stock",{bindings:{content:"HELP.TIP.CERTIFY_RULES",icon:{position:"center",glyph:"ion-alert-circled"},hasNext:r}})}];return u.parameters().then((function(t){return e.executeStep("certs",c,i)}))},e.startTxTour=function(n,a){if(!m.isLogin())return o.when(!0);var r,s=[function(){return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-tx",{bindings:{content:m.data.isMember?"HELP.TIP.MENU_BTN_TX_MEMBER":"HELP.TIP.MENU_BTN_TX",icon:{position:"left"}}})},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.view_wallet_tx").then((function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:c.data.useRelative?"HELP.TIP.WALLET_BALANCE_RELATIVE":"HELP.TIP.WALLET_BALANCE",contentParams:r,icon:{position:"center"}},retry:20})}))},function(){return e.showHelpTip("helptip-wallet-balance",{bindings:{content:"HELP.TIP.WALLET_BALANCE_CHANGE_UNIT",contentParams:r,icon:{position:"center",glyph:"ion-information-circled"}}})}];return u.get().then((function(t){return(r=t.parameters).currentUD=t.currentUD,e.executeStep("tx",s,n)}))},e.startHeaderTour=function(t,r){if(s.screen.isSmall())return o.when(!0);function l(){var e=n.document.querySelectorAll("#helptip-header-bar-btn-profile");return e&&e.length?_.find(e,(function(e){return e.offsetWidth>0})):null}var c=[function(){if(s.screen.isSmall())return!0;var t=l();return!t||e.showHelpTip(t,{bindings:{content:"HELP.TIP.HEADER_BAR_BTN_PROFILE",icon:{position:"right"}}})},function(){if(s.screen.isSmall())return i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"},hasNext:r},timeout:1e3});var t=l();return!t||(a((function(){angular.element(t).triggerHandler("click")})),e.showHelpTip("helptip-popover-profile-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"center"},hasNext:r},timeout:1e3}).then((function(t){return e.closeProfilePopover(),t})))}];return e.executeStep("header",c,t)},e.startSettingsTour=function(n,a){var o,r=[function(){return!s.screen.isSmall()||(i.toggleLeft(!0),e.showHelpTip("helptip-menu-btn-settings",{bindings:{content:"HELP.TIP.MENU_BTN_SETTINGS",icon:{position:"left"}},timeout:1e3}))},function(){return i.isOpen()&&i.toggleLeft(!1),t.go("app.settings").then((function(){return e.showHelpTip("helptip-settings-btn-unit-relative",{bindings:{content:"HELP.TIP.SETTINGS_CHANGE_UNIT",contentParams:o,icon:s.screen.isSmall()?{position:"right",style:"margin-right: 60px"}:{position:"center"},hasNext:a},timeout:1e3})}))}];return u.parameters().then((function(t){return o=t,e.executeStep("settings",r,n)}))},e.finishTour=function(){return i.isOpen()&&i.toggleLeft(!1),m.isLogin()?t.go("app.view_wallet").then((function(){return e.showHelpTip("helptip-wallet-pubkey",{bindings:{content:"HELP.TIP.END_LOGIN",hasNext:!1},timeout:1200})})):o.all([e.showHome(),u.parameters().then((function(e){n=e}))]).then((function(){return e.showHelpTip("helptip-home-logo",{bindings:{content:"HELP.TIP.END_NOT_LOGIN",contentParams:n,hasNext:!1}})}));var n}}function g(e){e.$on("$ionicView.enter",(function(t,n){e.startHelpTour()}))}function f(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T;e.loading=!0,e.settings=b.data,e.qrcodeId="qrcode-wallet-"+e.$id,e.toggleQRCode=!1,e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=g.children.count()>0,e.loading)return(T=n.stateParams&&n.stateParams.id?g.children.get(n.stateParams.id):g)?(e.isDefaultWallet=T.isDefault(),e.walletId=T.id,e.cleanLocationHref(n),e.load()):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());c.loading.hide(),a(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.load=function(){if(T)return T.login().then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showQRCode(),T.isDefault()&&e.showHelpTip(),e.addListeners(),c.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))},e.updateView=function(){e.motion.show({selector:"#wallet .item"}),e.$broadcast("$$rebind::rebind")},e.setRegisterForm=function(t){e.registerForm=t},e.onWalletLogout=function(){e.hideQRCode(),e.removeListeners(),delete e.formData,T=null,e.loading=!0},e.addListeners=function(){e.listeners=[T.api.data.on.logout(e,e.onWalletLogout),e.$watchCollection("formData.events",(function(t,n){!n||e.loading||angular.equals(t,n)||e.updateView()}))]},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showUidPopup=function(){return n((function(t,n){r(["ACCOUNT.NEW.TITLE","ACCOUNT.POPUP_REGISTER.TITLE","ACCOUNT.POPUP_REGISTER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(n){e.formData.newUid=e.formData.uid?""+e.formData.uid:"",i.show({templateUrl:"templates/wallet/popup_register.html",title:n["ACCOUNT.POPUP_REGISTER.TITLE"],subTitle:n["ACCOUNT.POPUP_REGISTER.HELP"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.registerForm.$submitted=!0,e.registerForm.$valid&&e.formData.newUid)return e.formData.newUid;t.preventDefault()}}]}).then((function(n){if(!n)return delete e.formData.uid,void c.loading.hide();t(n)}))}))}))},e.self=function(){return e.hideActionsPopover(),e.showUidPopup().then((function(t){return c.loading.show(),T.self(t).then((function(){e.updateView(),c.loading.hide()})).catch((function(t){c.onError("ERROR.SEND_IDENTITY_FAILED")(t).then((function(){e.self()}))}))}))},e.doMembershipIn=function(t){return T.membership.inside().then((function(){e.updateView(),c.loading.hide()})).catch((function(n){if("CANCELLED"===n)throw n;if(n&&n.ucode!=m.errorCodes.MEMBERSHIP_ALREADY_SEND)return console.error("[wallet] Node: already membership",n),void c.loading.hide();if(!t||t<=2)return a((function(){return e.doMembershipIn((t||0)+1)}),1e3);throw n}))},e.membershipIn=function(t){if(e.hideActionsPopover(),T.isMember())return c.alert.info("INFO.NOT_NEED_MEMBERSHIP");var n=angular.isDefined(e.formData.blockUid)&&e.formData.uid||void 0;return d.showJoinMember({uid:n,blockUid:n&&e.formData.blockUid,pubkey:e.formData.pubkey}).catch((function(e){"CANCELLED"!==e&&(T.data.uid?c.onError("ERROR.SEND_MEMBERSHIP_IN_FAILED")(e):c.onError("ERROR.SEND_IDENTITY_FAILED")(e))}))},e.membershipOut=function(t,n){return e.hideActionsPopover(),t?n?(c.loading.show(),T.membership.out().then((function(){c.loading.hide(),c.toast.show("INFO.MEMBERSHIP_OUT_SENT")})).catch(c.onError("ERROR.SEND_MEMBERSHIP_OUT_FAILED"))):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0,!0)})):c.alert.confirm("CONFIRM.MEMBERSHIP_OUT","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(t){t&&e.membershipOut(!0)}))},e.doUpdate=function(t){return console.debug("[wallet] Refreshing data..."),(t?T.refreshData():c.loading.show().then(T.refreshData).then(c.loading.hide)).then(e.updateView).catch(c.onError("ERROR.REFRESH_WALLET_DATA"))},e.renewMembership=function(t){return T.isMember()||e.formData.requirements.wasMember?t||e.formData.requirements.needRenew?T.auth({minData:!0}).then((function(){return c.loading.hide(),c.alert.confirm("CONFIRM.RENEW_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.doMembershipIn()})).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})):r("CONFIRM.NOT_NEED_RENEW_MEMBERSHIP",{membershipExpiresIn:e.formData.requirements.membershipExpiresIn}).then((function(e){return c.alert.confirm(e)})).then((function(t){if(t)return e.renewMembership(!0)})):c.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")},e.fixIdentity=function(){if(e.formData.uid)return n.all([T.auth(),r("CONFIRM.FIX_IDENTITY",{uid:e.formData.uid})]).then((function(e){return c.alert.confirm(e[1])})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))}))},e.fixMembership=function(){if(e.formData.uid)return T.isMember()?c.alert.info("INFO.NOT_NEED_MEMBERSHIP"):(e.hideActionsPopover(),T.auth({silent:!0}).then((function(){c.alert.confirm("CONFIRM.FIX_MEMBERSHIP")})).then((function(t){if(t)return c.loading.show(),e.formData.blockUid=null,e.formData.sigDate=null,T.self(e.formData.uid,!1)})).then(e.doMembershipIn).catch((function(e){"CANCELLED"!==e&&(c.loading.hide(),c.alert.error(e))})))},e.doQuickFix=function(t){"renew"===t?e.renewMembership():"membership"===t?e.membershipIn(!0):"fixMembership"===t?e.fixMembership(!1):"fixIdentity"===t&&e.fixIdentity()};var h=e.logout;e.logout=function(t){if(e.isDefaultWallet)return h(t)},e.startWalletTour=function(){return e.hideActionsPopover(),f.wallet.tour()},e.showHelpTip=function(){return f.wallet.helptip()},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),c.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),c.motion.toggleOff({selector:"#"+e.qrcodeId}))},e.showCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"received"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"received"})},e.showGivenCertifications=function(){e.isDefaultWallet?o.go(c.screen.isSmall()?"app.wallet_cert":"app.wallet_cert_lg",{type:"given"}):o.go(c.screen.isSmall()?"app.wallet_cert_by_id":"app.wallet_cert_lg_by_id",{id:e.walletId,type:"given"})},e.showTxHistory=function(){o.go(e.isDefaultWallet?"app.view_wallet_tx":"app.view_wallet_tx_by_id",{id:e.walletId})},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||g.children.count())return d.showTransfer({wallet:T.id}).then((function(t){t&&(c.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));c.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showSecurityModal=function(){return e.hideActionsPopover(),d.showAccountSecurity({wallet:T}).then((function(t){if(t)return"self"===t?e.self():"membershipIn"===t?e.membershipIn():void 0}))},e.showSelectIdentitiesModal=function(){return e.hideActionsPopover(),d.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(t){if(t&&t.uid)return e.loading=!0,T.setSelf(t.uid,t.blockUid).then((function(){e.loading=!1,e.updateView(),c.loading.hide()}))}))},e.showSelectWalletModal=function(){if(g.children.count())return d.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!T||t.id!==T.id))return e.removeListeners(),e.loading=!0,T=t,console.debug("[transfer] Using wallet {"+T.id+"}"),e.formData={},e.load()}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.name||e.formData.uid||e.formData.pubkey,a=(E.shareBaseUrl||t.rootPath)+o.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});c.screen.isSmall()&&(n=angular.element(document.querySelector("#wallet-share-anchor"))||n),c.popover.share(n,{bindings:{url:a,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},postMessage:i}})},e.showSelectWalletPopover=function(t){return p.showSelectWallet(t,{parameters:{excludedWalletId:e.walletId}}).then((function(t){if(t&&t.id!==e.walletId)return t.isDefault()?o.go("app.view_wallet"):o.go("app.view_wallet_by_id",{id:t.id})}))},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&a((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,l.search(t).replace()}),300)}}function T(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;e.loading=!0,e.settings=u.data,e.listeners=[],e.enter=function(t,n){if(e.loading=e.loading||n.stateParams&&n.stateParams.refresh,e.enableSelectWallet=p.children.count()>0,e.loading)return(E=n.stateParams&&n.stateParams.id?p.children.get(n.stateParams.id):p)?(e.walletId=E.id,e.cleanLocationHref(n),e.load()):(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome());e.addListeners(),i(e.updateView,300)},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.load=function(){if(E){var t=E.isDataLoaded({minData:!0}),n={requirements:!t,minData:!t,sources:!0,tx:{enable:!0}};return E.login(n).then((function(t){e.formData=t,e.loading=!1,e.updateView(),e.showFab("fab-transfer"),E.isDefault()&&e.showHelpTip(),e.addListeners(),o.loading.hide()})).catch((function(t){"CANCELLED"===t&&e.showHome()}))}},e.cleanLocationHref=function(e){e&&e.stateParams&&e.stateParams.refresh&&i((function(){var t=angular.copy(e.stateParams);delete t.refresh,delete t.id,a.search(t).replace()}),300)},e.updateView=function(){e.formData&&!e.loading&&(e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".view-wallet-tx .item",ink:!1}))},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1;var n=e.formData.pubkey;m.downloadHistoryFile(n,t)},e.doUpdate=function(t){console.debug("[wallet] TX history reloading...");var n={sources:!0,tx:{enable:!0,fromTime:e.formData&&e.formData.tx&&e.formData.tx.fromTime||void 0},api:!1};return(t?E.refreshData(n):o.loading.show().then((function(){return E.refreshData(n)})).then(o.loading.hide)).then(e.updateView).catch(o.onError("ERROR.REFRESH_WALLET_DATA"))},e.addListeners=function(){e.listeners=[E.api.data.on.balanceChanged(e,e.updateView),e.$watch("settings.useRelative",e.updateView,!0),e.$watch("settings.showUDHistory",(function(t,n){e.formData&&!e.loading&&t!==n&&e.doUpdate()}),!0)],e.settings.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet] Received new block. Will reload history."),i((function(){e.doUpdate(!0)}),500))})))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]},e.showTransferModal=function(){if(e.formData.balance&&e.formData.balance>0||p.children.count())return r.showTransfer({wallet:E.id}).then((function(t){t&&(o.toast.show("INFO.TRANSFER_SENT"),e.$broadcast("$$rebind::balance"),e.motion.show({selector:".item-pending"}))}));o.alert.info("INFO.NOT_ENOUGH_CREDIT")},e.showHelpTip=function(e,t){},e.showTxErrors=function(t){return E.isDefault()?e.goState("app.view_wallet_tx_errors"):e.goState("app.view_wallet_tx_errors_by_id",{id:E.id})},e.showMoreTx=function(t){return t=t||e.formData.tx.fromTime-u.data.walletHistoryTimeSecond||c.date.now()-2*u.data.walletHistoryTimeSecond,o.loading.show(),E.refreshData({tx:{enable:!0,fromTime:t}}).then((function(){e.updateView(),o.loading.hide()})).catch((function(n){n.ucode==l.errorCodes.HTTP_LIMITATION?i((function(){return e.showMoreTx(t)}),2e3):o.onError("ERROR.REFRESH_WALLET_DATA")(n)}))},e.showSelectWalletModal=function(){if(p.children.count())return r.showSelectWallet({parameters:{showDefault:!0,showBalance:!1,excludedWalletId:e.walletId}}).then((function(t){if(t&&(!E||t.id!==E.id))return e.removeListeners(),e.loading=!0,E=t,console.debug("[transfer] Using wallet {"+E.id+"}"),e.formData={},e.load()}))},e.toUnlockUIArray=function(t,n,i){return n=n||0,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showLockedOutputsPopover=function(t,n){t.lockedOutputs&&(e.popoverData=e.popoverData||{},e.popoverData.lockedOuputs=t.lockedOutputs.reduce((function(t,n){return t.concat({amount:n.amount,unlockFunctions:n.unlockFunctions,unlockConditions:e.toUnlockUIArray(n.unlockTree)})}),[]),o.popover.show(n,{templateUrl:"templates/wallet/tx_locked_outputs_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}}))},e.hideLockedOutputsPopover=function(){e.lockedOutputsPopover&&(e.lockedOutputsPopover.hide(),e.popoverData&&delete e.popoverData.unlockConditions,e.lockedOutputsPopover=null)},e.showSelectWalletPopover=function(t){return s.showSelectWallet(t,{scope:e}).then((function(t){if(t&&t.id!==E.id)return t.isDefault()?e.goState("app.view_wallet_tx"):e.goState("app.view_wallet_tx_by_id",{id:t.id})}))},e.goState=function(t,i){return e.hideLockedOutputsPopover(),n.go(t,i)}}function h(e,t,n,i){var a;e.settings=n.data,e.loading=!0,e.formData={},e.$on("$ionicView.enter",(function(n,o){return(a=o.stateParams&&o.stateParams.id?i.children.get(o.stateParams.id):i)?e.load():(t.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.load=function(){if(a)return a.login().then((function(n){e.formData=n,e.loading=!1,e.doMotion(),t.loading.hide()}))},e.doUpdate=function(n){return e.loading=!0,(n?a.refreshData():t.loading.show().then(i.refreshData).then(t.loading.hide)).then((function(){e.doMotion(),e.loading=!1})).catch((function(n){t.onError("ERROR.REFRESH_WALLET_DATA")(n),e.loading=!1}))},e.filterReceivedTx=function(e){return e.amount&&e.amount>0},e.filterSentTx=function(e){return e.amount&&e.amount<0},e.hasReceivedTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterReceivedTx)&&!0},e.hasSentTx=function(){return e.formData.tx&&_(e.formData.tx.errors||[]).find(e.filterSentTx)&&!0}}function v(e,t,n,i,a){var o=a&&a.wallet||n;e.slides={slider:null,options:{loop:!1,effect:"slide",speed:500}},e.isLastSlide=!1,e.smallscreen=t.screen.isSmall(),e.recover={},e.isValidFile=!1,e.login=o.isLogin(),e.hasSelf=o.hasSelf(),e.needSelf=e.login&&o.data.requirements.needSelf,e.canRevoke=e.login&&e.hasSelf&&!o.data.requirements.revoked,e.needMembership=e.login&&o.data.requirements.needMembership,e.option=e.login?"saveID":"recoverID",e.formData={addQuestion:"",level:"4",questions:[]};for(var r=[],s=1;s<20;s++)r.push("ACCOUNT.SECURITY.QUESTION_"+s.toString());i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))})),e.slidePrev=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slidePrev(),e.slides.slider.lockSwipes(),e.isLastSlide=!1},e.slideNext=function(){e.slides.slider.unlockSwipes(),e.slides.slider.slideNext(),e.slides.slider.lockSwipes(),e.isLastSlide=3===e.slides.slider.activeIndex&&("saveID"==e.option||"recoverID"==e.option)||2===e.slides.slider.activeIndex&&"revocation"==e.option},e.doNext=function(n){if(!n)switch(e.slides.slider.activeIndex){case 1:switch(e.option){case"saveID":n="questionsForm";break;case"recoverID":e.isValidFile?(e.slideNext(),e.hasContent=!1,e.fileData=""):t.alert.error("ERROR.NOT_VALID_SAVE_ID_FILE","ERROR.LOAD_FILE_FAILED")}break;case 2:switch(e.option){case"recoverID":n="recoverForm";break;case"saveID":n="answersForm"}}if(n){if(e[n].$submitted=!0,!e[n].$valid)return;switch(n){case"recoverForm":e.recoverId();break;case"answersForm":e.downloadSaveIDFile();break;default:e.slideNext()}}},e.selectOption=function(t){e.option=t,e.slideNext()},e.restore=function(){1===e.slides.slider.activeIndex&&"saveID"===e.option?(e.formData={addQuestion:"",level:"4",questions:[]},i(r).then((function(t){_.each(t,(function(t){e.formData.questions.push({value:t,checked:!1})}))}))):2===e.slides.slider.activeIndex&&"saveID"===e.option?_.each(e.formData.questions,(function(e){e.answer=void 0})):1===e.slides.slider.activeIndex&&"recoverID"===e.option?(e.hasContent=!1,e.recover={},e.fileData="",e.isValidFile=!1):2===e.slides.slider.activeIndex&&"recoverID"===e.option?_.each(e.recover.questions,(function(e){e.answer=void 0})):2===e.slides.slider.activeIndex&&"revocation"===e.option&&(e.isValidFile=!1,e.hasContent=!1,e.revocation=void 0)},e.recoverContent=function(t){if(e.hasContent=angular.isDefined(t)&&""!==t,e.fileData=t.fileData?t.fileData:"",e.isValidFile=""!==e.fileData&&"text/plain"==e.fileData.type,e.isValidFile&&"recoverID"===e.option){e.content=t.fileContent.split("\n");var n=_.indexOf(e.content,"Questions: "),i=-1;_.each(e.content,(function(t,n){/^Issuer:/.test(t)?i=n:/^Crypted-Nonce:/.test(t)?e.recover.cypherNonce=t.split(" ")[1]:/^Crypted-Pubkey:/.test(t)?e.recover.cypherPubkey=t.split(" ")[1]:/^Crypted-Salt:/.test(t)?e.recover.cypherSalt=t.split(" ")[1]:/^Crypted-Pwd:/.test(t)&&(e.recover.cypherPwd=t.split(" ")[1])})),e.recover.questions=[];for(var a=n+1;a<i;a++)e.recover.questions.push({value:e.content[a]})}else e.isValidFile&&"revocation"===e.option&&(e.revocation=t.fileContent)},e.recoverId=function(){if(e.recoverForm.$valid)return e.recover.answer="",_.each(e.recover.questions,(function(t){e.recover.answer+=t.answer})),o.recoverId(e.recover).then((function(n){angular.isDefined(n)?(e.recover=n,e.slideNext()):t.alert.error("ERROR.RECOVER_ID_FAILED")}))},e.addQuestion=function(){""!==e.formData.addQuestion&&(e.formData.questions.push({value:e.formData.addQuestion,checked:!0}),e.formData.addQuestion="")},e.downloadSaveIDFile=function(){var n;return o.auth({forceAuth:!0,expectedPubkey:e.pubkey,silent:!0,success:function(e){n=e}}).catch((function(e){e&&"CANCELLED"===e||t.alert.error("ERROR.SALT_OR_PASSWORD_NOT_CONFIRMED","ERROR.LOGIN_FAILED")})).then((function(t){if(t){var i={file:_.filter(e.formData.questions,(function(e){return e.checked}))},a={salt:n.username,pwd:n.password,questions:"",answer:""};return _.each(i.file,(function(e){a.questions+=e.value+"\n",a.answer+=e.answer})),o.getCryptedId(a).then((function(t){o.downloadSaveId(t),e.closeModal()}))}}))},e.isRequired=function(){return _.filter(e.formData.questions,(function(e){return e.checked})).length<e.formData.level},e.revokeWithFile=function(){e.isValidFile?e.revokeIdentity():t.alert.error("ERROR.NOT_VALID_REVOCATION_FILE","ERROR.LOAD_FILE_FAILED")},e.downloadRevokeFile=function(){return o.auth({forceAuth:!0}).then((function(){return o.downloadRevocation()})).then((function(){t.loading.hide()})).catch((function(e){e&&"CANCELLED"===e||t.onError("ERROR.DOWNLOAD_REVOCATION_FAILED")(e)}))},e.revokeWalletIdentity=function(){return e.hasSelf?o.auth({forceAuth:!0}).then((function(n){if(t.loading.hide(),n)return e.revokeIdentity()})).catch((function(e){"CANCELLED"!==e&&t.onError("ERROR.REVOCATION_FAILED")(e)})):t.alert.error("ERROR.ONLY_SELF_CAN_EXECUTE_THIS_ACTION")},e.revokeIdentity=function(n){return n?t.loading.show().then((function(){return e.revocation?o.revokeWithFile(e.revocation):o.revoke()})).then((function(){return t.toast.show("INFO.REVOCATION_SENT"),e.closeModal(),t.loading.hide()})).catch(t.onError("ERROR.REVOCATION_FAILED")):t.alert.confirm("CONFIRM.REVOKE_IDENTITY","CONFIRM.POPUP_WARNING_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"}).then((function(e){if(e)return t.alert.confirm("CONFIRM.REVOKE_IDENTITY_2","CONFIRM.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_YES",okType:"button-assertive"})})).then((function(t){t&&e.revokeIdentity(!0,!0)}))},e.self=function(){return e.closeModal("self")},e.membershipIn=function(){return e.closeModal("membershipIn")},e.downloadKeyFile=function(n){return o.auth({forceAuth:!0}).then((function(){return o.downloadKeyFile(n)})).then((function(){return t.loading.hide(),e.closeModal()})).catch((function(e){e&&"CANCELLED"===e?t.loading.hide():t.onError("ERROR.DOWNLOAD_KEYFILE_FAILED")(e)}))}}function I(e,t,n,i,a,o,r,s){e.loading=!0,e.wallets=null,e.formData={useRelative:o.data.useRelative,showDefault:!0,showBalance:!1,balance:void 0,updatingWalletId:void 0,stopped:!1,minData:!0},e.motion=null,e.setParameters=function(t){t=t||{},e.formData.useRelative=angular.isDefined(t.useRelative)?t.useRelative:e.formData.useRelative,e.formData.showBalance=angular.isDefined(t.showBalance)?t.showBalance:e.formData.showBalance,e.formData.minData=angular.isDefined(t.minData)?t.minData:e.formData.minData,e.formData.excludedWalletId=t.excludedWalletId,e.formData.showDefault=(angular.isDefined(t.showDefault)?t.showDefault:e.formData.showDefault)&&"default"!==e.formData.excludedWalletId},e.load=function(n){n=n||{},e.loading=!1!==n.silent,e.formData.balance=void 0,e.formData.updatingWalletId=void 0,e.formData.stopped=!1;var o=[];o.push(r.name().then((function(t){return e.currency=t,a.ready()}))),e.defaultWallet=e.formData.showDefault?s:void 0,e.wallets||o.push(s.children.all().then((function(t){e.wallets=t,i.loading.hide()})));var l={silent:!0,minData:e.formData.minData,sources:e.formData.showBalance,tx:{enable:!1},api:!0},c=!1,u=0,d=Date.now(),p=0;return(o.length?t.all(o):t.when()).then((function(){var i=e.formData.showDefault?[s].concat(e.wallets):e.wallets;if(i.length)return console.debug("[wallets] Loading {0} wallets...".format(i.length)),i.reduce((function(t,i){return!n.refresh&&i.isDataLoaded(l)?(console.debug("[wallets] Wallet #{0} already loaded. Skipping".format(i.id)),t.then((function(){p+=i.data.balance,e.updateWalletView(i.id)}))):(u++,t.then((function(){if(!e.formData.stopped){var t;if(e.formData.updatingWalletId=i.id,n.refresh&&i.data.loaded){var a=angular.merge({requirements:!i.data.requirements.loaded||i.data.requirements.isMember||i.data.requirements.wasMember||i.data.requirements.pendingMembership},l);t=i.refreshData(a)}else t=i.loadData(l);return t.then((function(t){p+=t.balance,e.updateWalletView(i.id)})).catch((function(e){console.error("[wallets] Error while loading data of wallet #{0}".format(i.id),e),c=!0})),t}})))}),t.when())})).then((function(){if(c)return i.alert.error("ERROR.LOAD_WALLET_LIST_FAILED").then((function(){e.resetData(),e.cancel()}));e.formData.stopped||(u&&console.debug("[wallets] Loaded data of {0} wallet(s) in {1}ms".format(u,Date.now()-d)),e.formData.balance=p,e.formData.updatingWalletId=void 0,e.loading=!1,i.loading.hide(),e.updateView())})).catch((function(t){if(e.resetData(),t&&"CANCELLED"===t)throw e.cancel(),t;return i.onError("ERROR.LOAD_WALLET_LIST_FAILED")(t)}))},e.filterFn=function(e){return function(t){return!e||t.id!==e.excludedWalletId}},e.resetData=function(){console.debug("[wallets] Cleaning wallet list"),e.wallets=null,e.loading=!0,e.entered=!1,e.formData.balance=void 0,e.formData.updatingWalletId=void 0},e.updateView=function(t){if(e.wallets&&e.wallets.length){var n=t&&" #wallet-"+t||"";e.motion?e.motion.show({selector:".list .item.item-wallet"+n,ink:!0}):i.ink({selector:".list .item.item-wallet"+n})}},e.updateWalletView=function(t){e.motion?e.motion.show({selector:".list #wallet-"+t,ink:!0}):i.ink({selector:".list #wallet-"+t})},e.doUpdate=function(i){return e.loading||!e.wallets||!e.wallets.length||e.formData.updatingWalletId?t.when():(e.selectPrevented=!0,n((function(){e.selectPrevented=!1}),1e3),e.load({silent:i,refresh:!0}).then((function(){e.loading=!1,e.selectPrevented=!1,i&&e.$broadcast("$$rebind::rebind"),e.updateView()})))},e.addNewWallet=function(n){return n?o.data.useLocalStorageEncryption&&!s.isAuth()?s.auth({minData:!0}).then((function(){return e.addNewWallet(n)})).catch((function(e){if("CANCELLED"===e)return i.loading.hide();i.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)})):s.api.data.raisePromise.load(n.data).catch(console.error).then((function(){e.addListenersOnWallet(n),s.children.add(n)})):t.reject("Missing 'wallet' argument")},e.showNewWalletModal=function(){var t=s.children.instance();return t.login({showNewAccountLink:!1,title:"ACCOUNT.WALLET_LIST.BTN_NEW",okText:"COMMON.BTN_ADD",minData:!0,sources:!0,api:!1,success:i.loading.show,method:"PUBKEY"}).then((function(n){if(n)return s.isUserPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_MAIN_WALLET")):s.children.hasPubkey(n.pubkey)?(i.loading.hide(),void i.alert.error("ERROR.COULD_NOT_ADD_EXISTING_WALLET")):(console.debug("[wallet] Adding secondary wallet {"+n.pubkey.substring(0,8)+"}"),e.addNewWallet(t).then((function(){i.loading.hide(),e.updateView()})));i.loading.hide(100)})).catch((function(e){"CANCELLED"===e&&i.loading.hide()}))},e.addListenersOnWallet=function(e){},e.cancel=function(){console.warn("cancel() must be implement by subclass")},e.select=function(e,t){console.warn("select() must be implement by subclass")}}function N(e,t,n){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.$on("modal.shown",(function(){e.setParameters(n),e.load()})),e.cancel=function(){e.closeModal()},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closeModal(n)},n&&e.setParameters(n)}function O(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.settings=p.data,e.listeners=[],angular.extend(this,t("WalletListAbstractCtrl",{$scope:e,parameters:{}})),e.formData.name=void 0,e.motion=c.motion.default,e.entered=!1,e.enter=function(t,n){if(!e.entered)return e.entered=!0,e.setParameters({showDefault:!0,showBalance:!0,minData:!1}),e.load().then((function(){c.loading.hide(),e.wallets&&(e.addListeners(),e.showFab("fab-add-wallet"))}));e.addListeners(),e.formData.stopped&&(e.loading=!1,e.formData.stopped=!1,e.formData.updatingWalletId=void 0,e.updateView())},e.$on("$ionicView.enter",e.enter),e.leave=function(){e.formData.stopped=!0,e.formData.updatingWalletId=void 0,e.loading=!1,e.removeListeners()},e.$on("$ionicView.leave",e.leave),e.cancel=function(){e.showHome()},e.select=function(t,i){t.isDefaultPrevented()||!i||e.selectPrevented||(i.isDefault()?n.go("app.view_wallet"):n.go("app.view_wallet_by_id",{id:i.id}),t.preventDefault())},e.editWallet=function(t,n){return t.preventDefault(),e.showEditPopup(n).then((function(t){if(t)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){n.data.localName=t,m.storeData(),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.SAVE_WALLET_LIST_FAILED")(e)}))}))},e.downloadAsFile=function(){if(e.wallets)return m.children.downloadFile()},e.selectAndRemoveWallet=function(){return e.hideActionsPopover(),u.showSelectWallet({wallets:e.wallets,showDefault:!1}).then((function(t){if(t&&t.id)return(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){m.children.remove(t.id),c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.showImportFileModal=function(){return e.hideActionsPopover(),l.show("templates/wallet/list/modal_import_file.html","WalletListImportModalCtrl").then((function(t){if(t&&t.length)return c.loading.show(),(p.data.useLocalStorageEncryption?m.auth({minData:!0}):a.when()).then((function(){return t.reduce((function(t,n){return t.then((function(){return function(t){console.debug("[wallet] Adding secondary wallet {"+t.pubkey.substring(0,8)+"}");var n=m.children.instance();return n.login({authData:t,minData:!0,sources:!0,api:!1,success:c.loading.show}).then((function(i){return i.localName=t.localName,e.addNewWallet(n)}))}(n)}))}),a.when())})).then((function(){c.loading.hide(),e.updateView()})).catch((function(e){if("CANCELLED"===e)return c.loading.hide();c.onError("ERROR.ADD_SECONDARY_WALLET_FAILED")(e)}))}))},e.setEditForm=function(t){e.editForm=t},e.showEditPopup=function(t){return a((function(n,i){o(["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE","ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(i){e.formData.name=t.data.localName||t.data.name||t.data.uid||t.data.pubkey.substring(0,8),s.show({templateUrl:"templates/wallet/list/popup_edit_name.html",title:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.TITLE"],subTitle:i["ACCOUNT.WALLET_LIST.EDIT_POPOVER.HELP"],scope:e,buttons:[{text:i["COMMON.BTN_CANCEL"]},{text:i["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.editForm.$submitted=!0,e.editForm.$valid&&e.formData.name)return e.formData.name;t.preventDefault()}}]}).then((function(t){if(!t)return delete e.formData.name,void c.loading.hide();n(t)}))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"templates/wallet/list/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onWalletLogout=function(){e.resetData(),e.removeListeners()},e.addListeners=function(){e.removeListeners(),e.listeners=[m.api.data.on.logout(e,e.onWalletLogout)],p.data.walletHistoryAutoRefresh&&e.listeners.push(d.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[wallet-list] Received new block. Will reload list."),i((function(){e.doUpdate(!0)}),300))}))),_.forEach(e.wallets||[],e.addListenersOnWallet)},e.addListenersOnWallet=function(t){t&&(e.listeners.push(t.api.data.on.unauth(e,e.updateView)),e.listeners.push(t.api.data.on.auth(e,(function(t,n){return i(e.updateView),n?n.resolve():a.when()}))))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]};var E=e.updateView;e.updateView=function(){E(),e.$broadcast("$$rebind::rebind")};var b=e.updateWalletView;e.updateWalletView=function(t){b(t),e.$broadcast("$$rebind::rebind")},e.$watch("settings.useRelative",(function(t,n){e.formData&&!e.loading&&t!==n&&(e.formData.useRelative=p.data.useRelative,e.updateView())}),!0)}function R(e,t,n,i){angular.extend(this,t("WalletListAbstractCtrl",{$scope:e})),e.motion=null,e.$on("popover.shown",(function(){e.loading&&(e.setParameters(i),e.load())})),e.updateView=function(){e.wallets&&e.wallets.length&&(n.ink({selector:".popover-wallets .list .item"}),e.$broadcast("$$rebind::rebind"))},e.select=function(t,n){t.isDefaultPrevented()||!n||e.selectPrevented||e.closePopover(n)}}function A(e,t,n,i){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1,e.importFromFile=function(a){e.validatingFile=!0,e.hasContent=angular.isDefined(a)&&""!==a,e.fileData=a.fileData?a.fileData:"";var o=""!==e.fileData&&("text/csv"==e.fileData.type||"text/plain"==e.fileData.type||"application/vnd.ms-excel");if(!o)return console.error("[wallet] Import failed. Invalid file type: "+e.fileData.type),e.isValidFile=!1,void(e.validatingFile=!1);console.debug("[wallet] Parsing file to import...");var r=a.fileContent.split("\n");e.content=r.reduce((function(e,t){if(!t||!t.trim().length)return e;var a=t.split("\t",3)||void 0;if(a&&3!=a.length)return console.debug("[wallet] Import: skip invalid row: "+t),o=!1,e;var r={pubkey:a[0],uid:a[1],localName:a[2]};return n.regexp.PUBKEY.test(r.pubkey)?i.isUserPubkey(r.pubkey)?(console.debug("[wallet] Pubkey equals to main wallet. Skip this row: ",t),e):i.children.hasPubkey(r.pubkey)?(console.debug("[wallet] Pubkey already in wallet list. Skip this row",t),e):e.concat(r):(console.debug("[wallet] Invalid pubkey, found in this row: ",t),o=!1,e)}),[]),e.isValidFile=o,t((function(){e.validatingFile=!1}),250)},e.removeFile=function(){e.hasContent=!1,e.content=null,e.fileData="",e.isValidFile=!1,e.validatingFile=!1}}function S(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.search={text:"",loading:!0,type:null,results:[]},e.entered=!1,e.wotSearchTextId="wotSearchText",e.enableFilter=!0,e.enableWallets=!1,e.allowMultiple=!1,e.selection=[],e.showResultLabel=!0,e.parameters={},e.enter=function(t,n){if(e.entered)e.updateLocationHref(),e.search.results&&e.search.results.length&&e.motion.show({selector:".lookupForm .list .item",ink:!0});else{var a=angular.merge({},e.parameters,n&&n.stateParams);a&&a.q?(e.search.text=a.q,i((function(){e.doSearch()}),100)):a&&a.hash?(e.search.text="#"+a.hash,i((function(){e.doSearch()}),100)):i((function(){u.data.initPhase&&!a.type?e.doGetPending(0,void 0,!0):"newcomers"==a.type||!c.initPhase&&!a.type?e.doGetNewcomers(0,void 0,!0):"pending"==a.type?e.doGetPending(0,void 0,!0):"wallets"==a.type&&e.doGetWallets(0,void 0,!0)}),100),e.entered=!0,i(l.ink,100),e.showHelpTip()}},e.$on("$ionicView.enter",e.enter),e.resetWotSearch=function(){e.search={text:null,loading:!1,type:"newcomers",results:[]}},e.updateLocationHref=function(){},e.doSearchText=function(){e.doSearch(),e.updateLocationHref(),p.keyboard.close()},e.doSearch=function(){e.search.loading=!0;var t=e.search.text.trim();return l.screen.isSmall()&&t.length<3||!t.length?(e.search.results=void 0,e.search.loading=!1,e.search.type="none",e.search.total=void 0,n.when()):(e.search.type="text",b.search(t).then((function(n){if("text"==e.search.type&&e.search.text.trim()===t){if(!(n&&n.length||!m.regexp.PUBKEY.test(t)&&!m.regexp.PUBKEY_WITH_CHECKSUM.test(t)))return m.uri.parse(t).then((function(t){e.doDisplayResult([t])}));e.doDisplayResult(n);var i=_.countBy(n,(function(e){return e.divider?"divider":"results"}));e.search.total=i&&i.results||0}})).catch(l.onError("ERROR.WOT_LOOKUP_FAILED")))},e.doGetNewcomers=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="newcomers",t||i||e.updateLocationHref(),b.newcomers(t,n).then((function(i){return"newcomers"===e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.hasMore=!1,e.search.total=void 0,l.onError("ERROR.LOAD_NEWCOMERS_FAILED")(n)}))},e.doGetPending=function(t,n,i){t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="pending";var a=u.data.initPhase?b.all:b.pending;return t||i||e.updateLocationHref(),a(t,n).then((function(i){return"pending"==e.search.type&&(e.doDisplayResult(i&&i.hits,t,n,i&&i.total),e.search.hasMore=!u.data.initPhase&&e.search.hasMore,!0)})).catch((function(n){e.search.loading=!1,e.search.results=t>0?e.search.results:[],e.search.total=void 0,e.search.hasMore=!1,l.onError("ERROR.LOAD_PENDING_FAILED")(n)}))},e.doGetWallets=function(t,n,i){return t=t||0,(n=n||10)<10&&(n=10),e.hideActionsPopover(),e.search.loading=0===t,e.search.type="wallets",t||i||e.updateLocationHref(),E.children.all().then((function(i){if(!i||"wallets"!=e.search.type)return!1;var a=[E].concat(i).reduce((function(e,t,n){var i={id:n,pubkey:t.data.pubkey,uid:t.data.uid,name:t.data.localName||t.data.name,avatar:t.data.avatar};return e.concat(i)}),[]);return e.doDisplayResult(a,t,n,a.length),e.search.hasMore=!1,!0}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,("newcomers"==e.search.type?e.doGetNewcomers:e.doGetPending)(t).then((function(t){t&&(e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete"))})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.select=function(e){var n=e.state;!n&&e.pubkey&&(n=E.isUserPubkey(e.pubkey)?"app.view_wallet":"app.wot_identity"),n&&(s.nextViewOptions({historyRoot:!1,disableAnimate:!1,expire:300}),t.go(n,e.stateParams||e))},e.next=function(){console.warn("Selected identities (should be override):",e.selection)},e.toggleCheck=function(t,n){var i=e.search.results[t];i.checked?e.addToSelection(i):e.removeSelection(i,n)},e.toggleSelect=function(e){e.selected=!e.selected},e.addToSelection=function(t){var n=angular.copy(t);n.name&&(n.name=n.name.replace("<em>","").replace("</em>","")),e.selection.push(n)},e.removeSelection=function(t,n){var i=_.findWhere(e.selection,{id:t.id});if(i&&e.selection.splice(e.selection.indexOf(i),1),!e.search.loading){var a=_.findWhere(e.search.results,{id:t.id});a&&a.checked&&(a.checked=!1)}},e.scanQrCode=function(){p.barcode.enable&&p.barcode.scan().then((function(t){t&&m.uri.parse(t).then((function(n){n.pubkey?e.search.text=n.pubkey:t.uid?e.search.text=n.uid:e.search.text=t,e.doSearch()}))})).catch(l.onError("ERROR.SCAN_FAILED"))},e.showHelpTip=function(t){if(e.isLogin()&&!((t=angular.isDefined(t)?t:d.data.helptip.wotLookup)<0)){0===t&&(t=1);var n=e.createHelptipScope();if(n)return n.startWotLookupTour(t,!1).then((function(e){n.$destroy(),d.data.helptip.wotLookup=e,d.store()}))}},e.doDisplayResult=function(t,n,i,a){t=t||[],e.allowMultiple&&t.length&&e.selection.length&&_.forEach(e.selection,(function(e){var n=_.findWhere(t,{id:e.id});n&&(n.checked=!0)})),e.search.results=n?e.search.results.concat(t):t||[],e.search.total=angular.isDefined(a)?a:void 0,e.search.loading=!1,e.search.hasMore=e.search.results.length>=n+i,e.smallscreen=l.screen.isSmall(),e.search.results.length&&t.length>0&&e.motion&&e.motion.show({selector:".lookupForm .list .item",ink:!0})},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/wot/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function C(e,t,n,i,a){angular.extend(this,t("WotLookupCtrl",{$scope:e})),a=a||{},e.search.loading=!1,e.enableFilter=!!angular.isDefined(a.enableFilter)&&a.enableFilter,e.enableWallets=!!angular.isDefined(a.enableWallets)&&i.isLogin()&&i.children.count()&&a.enableWallets,e.allowMultiple=!!angular.isDefined(a.allowMultiple)&&a.allowMultiple,e.parameters=a,e.showResultLabel=!1,e.wotSearchTextId="wotSearchTextModal",e.allowMultiple&&a.selection&&(e.selection=a.selection);var o=e.enter;e.enter=function(t){e.parameters&&e.parameters.q&&(e.search.text=e.parameters.q,e.parameters.q.trim().length>2&&o(t))},e.$on("modal.shown",e.enter),e.cancel=function(){e.closeModal()},e.select=function(t){e.closeModal({pubkey:t.pubkey,uid:t.uid,name:t.name&&t.name.replace(/<\/?em>/gi,"")})},e.next=function(){e.closeModal(e.selection)},e.updateLocationHref=function(){},e.showHelpTip=function(){}}function D(e,t,n,i,a,o,r,s,l,c,u,d,p){e.formData={hasSelf:!0},e.disableCertifyButton=!0,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.load=function(t,n,i){return d.load(t,n,i).then((function(n){if(!n)return r.onError("ERROR.IDENTITY_NOT_FOUND")().then(e.showHome);e.formData=n;var i=p.isLogin();e.revoked=n.requirements&&(n.requirements.revoked||n.requirements.pendingRevocation),e.canCertify=n.hasSelf&&!e.revoked&&(!i||!p.isUserPubkey(t)||p.children.count()>0),e.canSelectAndCertify=n.hasSelf&&(p.isUserPubkey(t)||p.children.hasPubkey(t));var a=i&&_.find((n.received_cert||[]).concat(n.received_cert_pending||[]),(function(e){return e.pubkey===p.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));e.alreadyCertified=!(!e.canCertify||!i||p.children.count()>0||!a),e.disableCertifyButton=e.alreadyCertified||e.revoked,e.loading=!1})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_IDENTITY_FAILED")(t)}))},e.doUpdate=function(t){t||(e.loading=!0,r.loading.show());var n={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,n).then(r.loading.hide)},e.certify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){if(t)return t.auth({minData:!0}).then((function(n){if(r.loading.hide(),u.data.initPhase||n.isMember)if(u.data.initPhase||e.formData.hasSelf)if(e.formData.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.find(e.formData.received_cert,(function(e){return e.pubkey===t.data.pubkey&&e.valid&&e.expiresIn>c.data.timeWarningExpire}));a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(e.formData.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):r.alert.confirm("CONFIRM.CERTIFY_RULES","CONFIRM.POPUP_SECURITY_WARNING_TITLE",{cssClass:"warning",okText:"WOT.BTN_YES_CERTIFY",okType:"button-assertive"}).then((function(n){n&&(r.loading.show(),t.certify(e.formData.uid,e.formData.pubkey,e.formData.blockUid||e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.timestamp,e.formData.requirements&&e.formData.requirements.meta&&e.formData.requirements.meta.sig,e.formData.isMember,e.formData.wasMember).then((function(n){r.loading.hide(),n&&(e.prepareNewCert(t,n),e.alreadyCertified=!0,r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.received_cert_pending.unshift(n),e.formData.requirements.pendingCertificationCount++,e.doMotion())})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF");else r.alert.error(n.requirements.needSelf?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOGIN_FAILED")(e)}))}))},e.selectAndCertify=function(){return(p.children.count()?s.showSelectWallet({displayBalance:!1}):o.when(p)).then((function(t){return t.auth({minData:!0}).then((function(e){if(u.data.initPhase||e.isMember)return r.loading.hide(),s.showWotLookup();r.alert.error(e.requirements.needSelf||e.requirements.needMembership?"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY":"ERROR.NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF")})).then((function(e){if(e&&e.pubkey){if(e.uid){r.loading.show();var t={cache:!1,blockUid:e.blockUid};return d.load(e.pubkey,e.uid,t)}r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")}})).then((function(n){if(n)if(r.loading.hide(),n&&n.hasSelf)if(n.requirements.expired)r.alert.error("ERROR.IDENTITY_EXPIRED");else{var a=_.findWhere(n.received_cert,{pubkey:t.data.pubkey,valid:!0});a?i("ERROR.IDENTITY_ALREADY_CERTIFY",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):(a=_.findWhere(n.received_cert_pending,{pubkey:t.data.pubkey,valid:!0}))?i("ERROR.IDENTITY_ALREADY_CERTIFY_PENDING",a).then((function(e){r.alert.error(e,"ERROR.UNABLE_TO_CERTIFY_TITLE")})):i("CONFIRM.CERTIFY_RULES_TITLE_UID",{uid:n.uid}).then((function(e){return r.alert.confirm("CONFIRM.CERTIFY_RULES",e)})).then((function(i){i&&(r.loading.show(),t.certify(n.uid,n.pubkey,n.blockUid||n.requirements&&n.requirements.meta&&n.requirements.meta.timestamp,n.requirements&&n.requirements.meta&&n.requirements.meta.sig,n.isMember,n.wasMember).then((function(t){if(r.loading.hide(),t)return d.extendAll([t],"pubkey").then((function(){r.toast.show("INFO.CERTIFICATION_DONE"),e.formData.given_cert_pending.unshift(t),e.doMotion()}))})).catch(r.onError("ERROR.SEND_CERTIFICATION_FAILED")))}))}else r.alert.error("ERROR.IDENTITY_TO_CERTIFY_HAS_NO_SELF")})).catch((function(e){"CANCELLED"!==e&&r.onError("ERROR.LOAD_IDENTITY_FAILED")(e)}))}))},e.prepareNewCert=function(e,t){t.uid=e.data.uid,t.pubkey=e.data.pubkey,t.isMember=e.data.isMember,t.avatar=e.data.avatar,t.name=e.data.name},e.removeActionParamInLocationHref=function(e){if(e&&e.stateParams&&e.stateParams.action){var t=angular.copy(e.stateParams);t.action=null,a.nextViewOptions({disableAnimate:!0,disableBack:!1,historyRoot:!1}),n.go(e.stateName,t,{reload:!1,inherit:!0,notify:!1})}},e.doAction=function(t,n){if("certify"==t)return e.certify();"transfer"==t&&e.showTransferModal(n)},e.showCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"received",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showGivenCertifications=function(){var t=e.formData.requirements&&e.formData.requirements.alternatives&&e.formData.blockUid||void 0;r.screen.isSmall()?n.go("app.wot_cert",{pubkey:e.formData.pubkey,uid:e.formData.uid,type:"given",block:t}):n.go("app.wot_cert_lg",{pubkey:e.formData.pubkey,uid:e.formData.uid,block:t})},e.showSharePopover=function(i){var a=e.formData.name||e.formData.uid||e.formData.pubkey,o=(l.shareBaseUrl||t.rootPath)+n.href("app.wot_identity",{pubkey:e.formData.pubkey,uid:e.formData.uid});r.screen.isSmall()&&(i=angular.element(document.querySelector("#wot-share-anchor-"+e.formData.pubkey))||i),r.popover.share(i,{bindings:{url:o,titleKey:"WOT.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},postMessage:a}})}}function y(e,t,n,i,a,o,r,s){angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motion=o.motion.fadeSlideInRight,e.qrcodeId="qrcode-wot-"+e.$id,e.$on("$ionicView.enter",(function(t,n){var a=function(){e.doMotion(),n.stateParams&&n.stateParams.action&&(i((function(){e.doAction(n.stateParams.action.trim())}),100),e.removeActionParamInLocationHref(n)),e.showQRCode()},o={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};if(n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0){if(e.loading)return e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,o).then(a)}else if(n.stateParams&&n.stateParams.uid&&n.stateParams.uid.trim().length>0){if(e.loading)return e.load(null,n.stateParams.uid,o).then(a)}else e.showHome()})),e.doMotion=function(){e.motion.show({selector:".view-identity .list .item"}),e.showFab("fab-transfer"),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify-"+e.formData.uid),e.$broadcast("$csExtension.motion")},e.doQuickFix=function(t){if("showSelectIdentities"===t)return e.showSelectIdentities()},e.showSelectIdentities=function(){if(e.formData.requirements&&e.formData.requirements.alternatives)return r.showSelectPubkeyIdentity({identities:[e.formData.requirements].concat(e.formData.requirements.alternatives)}).then((function(e){if(e&&e.pubkey)return a.go("app.wot_identity",{pubkey:e.pubkey,uid:e.uid,block:e.meta&&e.meta.timestamp||e.blockUid})}))},e.showQRCode=function(t){e.qrcode?(e.qrcode.clear(),e.qrcode.makeCode(e.formData.pubkey),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100)):(e.qrcode=new QRCode(e.qrcodeId,{text:e.formData.pubkey,width:180,height:180,correctLevel:QRCode.CorrectLevel.L}),o.motion.toggleOn({selector:"#"+e.qrcodeId},t||1100))},e.hideQRCode=function(){e.qrcode&&(e.qrcode.clear(),o.motion.toggleOff({selector:"#"+e.qrcodeId}))}}function P(e,t,n,i,a,o,r,s){e.formData={},e.loading=!0,e.motion=s.motion.fadeSlideInRight,e.$on("$ionicView.enter",(function(t,n){e.loading?(e.pubkey=n.stateParams.pubkey,e.uid=n.stateParams.uid,e.load()):e.updateView()})),e.load=function(t){return n.all([o.extend({pubkey:e.pubkey}),r.load(e.pubkey,t)]).then((function(t){e.formData=angular.merge(t[0],t[1]),e.loading=!1,e.updateView()}))},e.doUpdate=function(t){return console.debug("[wot] TX history reloading..."),e.formData={},(t?e.load():s.loading.show().then(e.load).then(s.loading.hide)).then(e.updateView).catch(s.onError("ERROR.IDENTITY_TX_FAILED"))},e.updateView=function(){e.$broadcast("$$rebind::balance"),e.$broadcast("$$rebind::rebind"),e.motion.show()},e.downloadHistoryFile=function(t){(t=t||{}).fromTime=t.fromTime||-1,r.downloadHistoryFile(e.pubkey,t)},e.showMoreTx=function(n){return n=n||e.formData.tx.fromTime-a.data.walletHistoryTimeSecond||moment().utc().unix()-2*a.data.walletHistoryTimeSecond,s.loading.show(),r.load(e.pubkey,n).then((function(t){angular.merge(e.formData,t),e.updateView(),s.loading.hide()})).catch((function(a){a.ucode==i.errorCodes.HTTP_LIMITATION?t((function(){return e.showMoreTx(n)}),2e3):s.onError("ERROR.IDENTITY_TX_FAILED")(a)}))}}function k(e,t,n,i,a,o){var r;angular.extend(this,n("WotIdentityAbstractCtrl",{$scope:e})),e.motions={receivedCertifications:angular.copy(o.motion.fadeSlideIn),givenCertifications:angular.copy(o.motion.fadeSlideInRight),avatar:angular.copy(o.motion.fadeIn)},e.motions.receivedCertifications.enable=!0,e.motions.givenCertifications.enable=!0,e.motions.avatar.enable=!0,e.$on("$ionicView.enter",(function(t,n){if(n.stateParams&&n.stateParams.type&&(e.motions.receivedCertifications.enable="given"!=n.stateParams.type,e.motions.givenCertifications.enable="given"==n.stateParams.type,e.motions.avatar.enable=!1),e.loading){var i={cache:!0,blockUid:n.stateParams&&n.stateParams.block||void 0};return n.stateParams&&n.stateParams.pubkey&&n.stateParams.pubkey.trim().length>0?e.load(n.stateParams.pubkey.trim(),n.stateParams.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):(r=n.stateParams&&n.stateParams.id?a.children.get(n.stateParams.id):a)?r.isLogin()?e.load(r.data.pubkey,r.data.uid,i).then((function(){e.doMotion(),e.showHelpTip()})):e.showHome():(o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())}e.doMotion()})),e.$on("$ionicView.leave",(function(){e.loading=!0})),e.doUpdate=function(){var t={cache:!1,blockUid:e.formData.blockUid||void 0};return e.load(e.formData.pubkey,e.formData.uid,t).then((function(){e.doMotion(),e.showHelpTip()}))},e.doMotion=function(t){e.doMotionReceivedCertifications(0,t),e.motions.avatar.enable&&e.motions.avatar.show({selector:".col-avatar ."+e.motions.avatar.ionListClass}),e.doMotionGivenCertifications(e.motions.receivedCertifications.enable?100:10,t)},e.doMotionReceivedCertifications=function(n,i){e.motions.receivedCertifications.enable?(i||e.motions.receivedCertifications.show({selector:".list.certifications .item",timeout:n}),(e.canCertify&&!e.alreadyCertified||t.tour)&&e.showFab("fab-certify",n)):(e.canCertify||t.tour)&&e.hideFab("fab-certify",0)},e.doMotionGivenCertifications=function(n,i){e.motions.givenCertifications.enable?(i||e.motions.givenCertifications.show({selector:".list.given-certifications .item",timeout:n}),(e.canSelectAndCertify||t.tour)&&e.showFab("fab-select-certify")):(e.canSelectAndCertify||t.tour)&&e.hideFab("fab-select-certify",0)},e.showHelpTip=function(){if(e.isLogin()&&i.data.helptip.enable){var t=e.createHelptipScope();if(t){var n=a.isUserPubkey(e.formData.pubkey),o=n?i.data.helptip.walletCerts:i.data.helptip.wotCerts;if(!(o<0))return(n?t.startWalletCertTour(o,!1):t.startWotCertTour(o,!1)).then((function(e){t.$destroy(),n?i.data.helptip.walletCerts=e:i.data.helptip.wotCerts=e,i.store()}))}}}}function M(e,t,n,i){e.loading=!0,e.load=function(){return i&&i.identities?(e.identities=i.identities,e.pubkey=e.identities[0].pubkey,e.loading=!1,t.when()):(e.pubkey=i&&i.pubkey,pubkey?n.loadRequirements({pubkey:pubkey,uid:uid}).then((function(t){t&&t.requirements&&(e.identities=t.requirements,t.requirements.alternatives?e.identities=[t.requirements].concat(t.requirements.alternatives):e.identities=[t.requirements]),e.loading=!1})):t.reject("Missing parameters: [pubkey] or [identities]"))},e.$on("modal.shown",e.load)}function w(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,type:void 0,results:[],endpoint:null,bma:void 0,ssl:void 0,ws2p:void 0,sort:void 0,asc:!0},e.compactMode=!0,e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&(n.stateParams.type&&-1!=["mirror","member","offline"].indexOf(n.stateParams.type)&&(e.search.type=n.stateParams.type),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpoint:angular.isDefined(e.search.endpoint)?e.search.endpoint:null,bma:e.search.bma,ssl:e.search.ssl,ws2p:e.search.ws2p,online:!(e.search.type&&"offline"===e.search.type)},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))})))),e.showHelpTip()},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.loading||e.$broadcast("$$rebind::rebind"),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"})},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleSearchType=function(t){e.hideActionsPopover(),e.search.type===t||"none"===t?e.search.type=void 0:e.search.type=t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search({type:e.search.type}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpoint===t||null===t?e.search.endpoint=null:e.search.endpoint=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.$broadcast("$$rebind::rebind")},e.selectPeer=function(n){if(n.compacted&&e.compactMode)e.toggleCompactMode();else if(n.online&&n.hasBma()){var i={server:n.getServer()};n.isSsl()&&(i.ssl=!0),n.isTor()&&(i.tor=!0),t.go("app.view_peer",i)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"templates/network/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showEndpointsPopover=function(e,t,n){e.preventDefault(),e.stopPropagation();var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,i){var a=r.node.parseEndPoint(i)||r.node.parseEndPoint(i,n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer(a)+(a&&a.path||"")})}),[])).length&&s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}})},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:c.data.helptip.network,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope();if(i)return i.tour=n,i.startNetworkTour(t,!1).then((function(e){i.$destroy(),n||(c.data.helptip.network=e,c.store())}))}}}function U(e,t,n){angular.extend(this,t("NetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.search.bma=angular.isDefined(n.bma)?n.bma:e.search.bma,e.search.ssl=angular.isDefined(n.ssl)?n.ssl:e.search.ssl,e.search.ws2p=angular.isDefined(n.ws2p)?n.ws2p:e.search.ws2p,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function B(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpoint=angular.isDefined(n.endpoint)?n.endpoint:e.search.endpoint,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function x(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"duniter"==e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function F(t,n,i,a,o,r,s){t.node={},t.loading=!0,t.isHttps="https:"===i.location.protocol,t.isReachable=!0,t.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!o.screen.isSmall()||t.enableBack})),t.$on("$ionicView.enter",(function(e,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||s.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&s.useSsl,r="true"==n.stateParams.tor||!!i&&s.useTor;return t.load(a,o,r).then((function(){return t.$broadcast("$csExtension.enter",e,n)})).then((function(){t.loading=!1})).catch((function(){t.loading=!1}))})),t.load=function(i,a,l){var c={server:i,host:i,useSsl:a,useTor:l},u=i.split(":");return 2==u.length&&(c.host=u[0],c.port=u[1]),angular.merge(t.node,l?s.lightInstance(c.host+".to",443,!0,6e4):s.lightInstance(c.host,c.port,c.useSsl),c),t.isReachable=!t.isHttps||a,t.isReachable?n.all([t.node.network.peering.self().then((function(e){t.node.pubkey=e.pubkey,t.node.currency=e.currency})).catch((function(e){console.error(e&&e.message||e)})),t.node.network.peers().then((function(n){var i=(n&&n.peers||[]).map((function(t){var n=new e(t);return n.online="UP"===t.status,n.buid=n.block,n.blockNumber=n.buid&&n.buid.split("-")[0],n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),n}));return r.extendAll([t.node].concat(i)).then((function(){t.peers=_.sortBy(i,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.uid?1:0))})),t.motion.show({selector:".item-peer"})}))})),t.node.blockchain.current().then((function(e){t.current=e}))]).catch((function(e){throw console.error(e&&e.message||e),o.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")(e),e})):s.network.peers().then((function(n){var i=(n&&n.peers||[]).reduce((function(t,n){var i=new e(n);return(i.getEndpoints("BASIC_MERKLED_API")||[]).reduce((function(e,t){var n=s.node.parseEndPoint(t);return n.dns!=c.host&&n.ipv4!=c.host&&n.ipv6!=c.host||n.port!=c.port?e:(i.bma=n,e.concat(i))}),t)}),[]),a=i.length&&i[0];if(a)return t.node.pubkey=a.pubkey,t.node.currency=a.currency,r.extend(t.node);console.warn("Could not get peer from /network/peers")}))},t.selectPeer=function(e){if(e.online&&!e.isWs2p()){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),a.go("app.view_peer",t)}},t.openRawPeering=function(e){return t.openLink(e,t.node.url+"/network/peering")},t.openRawCurrentBlock=function(e){return t.openLink(e,t.node.url+"/blockchain/current")}}function H(e,t,n,i,a,o,r,s,l,c,u){e.formData={useRelative:!1,currency:"",M:0,MoverN:0,UD:0,cactual:0,c:0,dt:0,sigQty:0,sigStock:0,msWindow:0,msValidity:0,sigWindow:0,sigValidity:0,sigPeriod:0,medianTime:0,difficulty:0,Nprev:0,stepMax:0,sentries:0,xpercent:0,durationFromLastUD:0,blockUid:null,dtReeval:0,udReevalTime0:0,allRules:angular.isDefined(s.data.currency&&s.data.currency.allRules)?s.data.currency.allRules:s.data.expertMode,allWotRules:angular.isDefined(s.data.currency&&s.data.currency.allWotRules)?s.data.currency.allWotRules:s.data.expertMode,licenseUrl:s.getLicenseUrl()},e.loading=!0,e.screen=r.screen,e.enter=function(t,i){e.loading&&(e.formData.useRelative=s.data.useRelative,l.get().then(e.load).then((function(){e.isLogin()&&e.showHelpTip()})).catch(r.onError("ERROR.GET_CURRENCY_FAILED")),c.api.data.on.mainBlockChanged(e,(function(t){e.loading||e.formData.blockUid!==t.buid&&(console.debug("[currency] Updating parameters UI (new main block detected)"),n(e.load,1e3))}))),e.$broadcast("$csExtension.enter",i)},e.$on("$ionicView.enter",e.enter),e.load=function(){var n,i,a={},s=Date.now();return t.all([o.blockchain.parameters().then((function(e){a.currency=e.currency,a.c=e.c,a.dt=e.dt,a.sigQty=e.sigQty,a.sigStock=e.sigStock,a.msWindow=e.msWindow,a.msValidity=e.msValidity,a.sigWindow=e.sigWindow,a.sigValidity=e.sigValidity,a.sigPeriod=e.sigPeriod,a.stepMax=e.stepMax,a.xpercent=e.xpercent,a.avgGenTime=e.avgGenTime,a.dtReeval=e.dtReeval,a.udTime0=e.udTime0,a.udReevalTime0=e.udReevalTime0,a.dtReeval||(a.dtReeval=a.dt)})),o.blockchain.current().then((function(e){n=e.monetaryMass,a.N=e.membersCount,a.medianTime=e.medianTime,a.difficulty=e.powMin,a.blockUid=[e.number,e.hash].join("-")})).catch((function(e){if(e&&e.ucode==o.errorCodes.NO_CURRENT_BLOCK)return n=0,a.N=0,a.medianTime=moment().utc().unix(),a.difficulty=0,void(a.blockUid=null);throw e})),o.blockchain.stats.ud().then((function(e){if(e.result.blocks.length){var t=e.result.blocks[e.result.blocks.length-1];return o.blockchain.block({block:t}).then((function(e){a.currentUD=e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend,i=e.medianTime,a.Nprev=e.membersCount}))}return i=0,a.Nprev=0,o.blockchain.parameters().then((function(e){a.currentUD=e.ud0}))}))]).then((function(){var t=n-a.currentUD*a.Nprev,o=a.Nprev?t/a.Nprev:0;return a.cactual=o?100*a.currentUD/o:0,a.M=n,a.MoverN=a.Nprev?(t||n)/a.Nprev:0,a.UD=a.currentUD,a.durationFromLastUD=i?a.medianTime-i:0,a.sentries=Math.ceil(Math.pow(a.N,1/a.stepMax)),angular.extend(e.formData,a),console.debug("[currency] Parameters loaded in "+(Date.now()-s)+"ms"),e.loading=!1,e.$broadcast("$$rebind::rebind"),r.ink(),r.loading.hide()})).catch((function(t){e.loading=!1,r.onError("ERROR.LOAD_PEER_DATA_FAILED")(t)}))},e.refresh=function(){if(!e.loading)return e.loading=!0,r.loading.show(),e.load().then((function(){e.$broadcast("csView.action.refresh","currency")}))},e.refreshPeers=function(){return e.$broadcast("csView.action.refresh","peers"),t.when()},e.showExtendActionsPopover=function(t){e.$broadcast("csView.action.showActionsPopover",t)},e.onAllRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allRules!==e.formData.allRules&&(s.data.currency.allRules=e.formData.allRules,s.store())},e.$watch("formData.allRules",e.onAllRulesChange),e.onAllWotRulesChange=function(){s.data.currency=s.data.currency||{},s.data.currency.allWotRules!==e.formData.allWotRules&&(s.data.currency.allWotRules=e.formData.allWotRules,s.store())},e.$watch("formData.allWotRules",e.onAllWotRulesChange),e.startCurrencyTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:s.data.helptip.currency,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope(n);if(i)return i.tour=n,i.startCurrencyTour(t,!1).then((function(e){i.$destroy(),s.data.helptip.currency=e,s.store()}))}},e.showLicenseModal=function(){return u.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl")},e.showHelpModal=function(e){a.showHelp({anchor:e})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"templates/currency/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function W(e,t,n,i,a){e.loading=!0,e.load=function(){e.loading&&(e.licenseUrl=i.getLicenseUrl(),e.licenseUrl&&".txt"!=e.licenseUrl.substring(e.licenseUrl.length-3)&&(e.licenseUrlHtml=e.licenseUrl+".html",e.licenseUrl=e.licenseUrl+".txt"),e.loading=!1)},e.$on("modal.shown",e.load),e.downloadFile=function(){if(e.licenseUrl)return t.get(e.licenseUrl).success((function(e){var t=new Blob([e],{type:"text/plain; charset=utf-8"});a.saveAs(t,"license.txt")})).error((function(){n.onError("ERROR.GET_LICENSE_FILE_FAILED")()}))}}function V(e,t,n){angular.extend(this,t("TransferModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,i){return i&&i.stateParams&&e.setParameters(i.stateParams),e.load().then(n.loading.hide)},e.$on("$ionicView.enter",e.enter),e.setForm=function(t){e.form=t},e.closeModal=function(){return e.showHome()}}function G(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;e.convertedBalance=0,e.formData={destPub:null,amount:null,comment:null,useRelative:m.data.useRelative,useComment:!1,all:!1,restPub:null,restAmount:null,walletId:null},e.udAmount=null,e.minAmount=.01,e.commentPattern=s.regexp.COMMENT,e.currency=p.data.name,e.loading=!0,e.commentInputId="transferComment-"+e.$id,e.enableSelectWallet=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:l.screen.isSmall(),(e.smallscreen||r.enable)&&(e.digitKeyboardSettings=e.digitKeyboardSettings||r.keyboard.digit.settings.bindModel(e,"formData.amount",{decimal:!0,decimalSeparator:".",resizeContent:!1}),e.digitKeyboardVisible=!1),e.setParameters=function(t){t&&(t.pubkey&&(e.formData.destPub=t.pubkey),t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),t.amount?(e.formData.amount=t.amount,e.formData.useRelative=!1):t.udAmount&&(e.formData.amount=t.udAmount,e.formData.useRelative=!0),t.comment&&(e.formData.useComment=!0,e.formData.comment=t.comment),t.restPub||t.all?(e.restUid="",e.restPub=t.restPub,e.formData.restPub=t.restPub,e.formData.all=!0):e.formData.all=!1,t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=u.id)},e.setParameters(E),e.load=function(){return e.enableSelectWallet=u.children.count()>0,(b=e.enableSelectWallet&&(e.formData.walletId?u.children.get(e.formData.walletId):u)||u).isDefault()||console.debug("[transfer] Using wallet {"+b.id+"}"),b.login({sources:!0,silent:!0}).then((function(t){if(b&&!e.$$destroyed){if(e.walletData=t,e.formData.walletId=b.id,e.onUseRelativeChanged(),e.onAmountChanged(),e.$watch("walletData.balance",e.onAmountChanged,!0),e.$watch("formData.amount",e.onAmountChanged,!0),e.$watch("formData.useRelative",e.onUseRelativeChanged,!0),e.$watch("walletData.balance",e.onUseRelativeChanged,!0),l.ink({selector:".modal-transfer .ink"}),e.destPub&&!e.destUid)return d.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1}})).catch((function(t){if("CANCELLED"===t)return e.cancel();l.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.cancel=function(){e.closeModal(),b=null},e.onUseRelativeChanged=function(){e.currency=p.data.name,e.formData.useRelative?(e.convertedBalance=e.walletData.balance/p.data.currentUD,e.minAmount=.01/(p.data.currentUD/100)):(e.convertedBalance=e.walletData.balance/100,e.minAmount=.01),e.form&&!e.loading&&e.form.$setPristine(!0)},e.onAmountChanged=function(){if(!e.sending){var t=e.formData.amount;t&&"string"==typeof t&&(t=parseFloat(t.replace(new RegExp("[.,]"),".")));var n=!0;t&&t<e.minAmount?(n=!1,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error.min=!0):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.min&&delete e.form.amount.$error.min,t&&t>e.convertedBalance?(e.form.$valid=!1,e.form.amount.$invalid=!0,e.form.amount.$error=e.form.amount.$error||{},e.form.amount.$error={max:!0}):e.form.amount&&e.form.amount.$error&&e.form.amount.$error.max&&delete e.form.amount.$error.max,e.form.$valid=n,e.form.amount&&(e.form.amount.$invalid=!n),n&&e.formData.all&&t?e.formData.useRelative?(e.formData.restAmount=e.walletData.balance-t*p.data.currentUD,e.formData.restAmount<.01&&(e.formData.restAmount=0)):e.formData.restAmount=e.walletData.balance-100*t:e.formData.restAmount=void 0}},e.doTransfer=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.destPub&&e.formData.amount){var n,a=e.formData.amount;if("string"==typeof a&&(a=parseFloat(a.replace(new RegExp("[.,]"),"."))),!e.sending)return e.sending=!0,t.all([b.auth({silent:!0}),p.currentUD().then((function(e){n=e})),e.hideDigitKeyboard(300)]).then(e.askTransferConfirm).then((function(t){if(t)return l.loading.show().then((function(){e.formData.useRelative?a*=n:a=100*a.toFixed(2);var t=e.formData.comment&&e.formData.comment.trim();return t&&!t.length&&(t=null),e.formData.all&&e.formData.restAmount>0?b.transferAll(e.formData.destPub,a,t,e.formData.useRelative,e.formData.restPub):b.transfer(e.formData.destPub,a,t,e.formData.useRelative)})).then((function(){return l.loading.hide(),e.closeModal(!0)})).then((function(t){return i((function(){e.sending=!1,l.toast.show("INFO.TRANSFER_SENT")}),500),t}));e.sending=!1})).catch((function(t){e.sending=!1,"CANCELLED"!==t&&l.onError("ERROR.SEND_TX_FAILED")(t)}))}},e.askTransferConfirm=function(){return n(["COMMON.UD","COMMON.EMPTY_PARENTHESIS"]).then((function(t){var i=e.formData.all&&e.formData.restAmount>0;return n(i?"CONFIRM.TRANSFER_ALL":"CONFIRM.TRANSFER",{from:e.walletData.isMember?e.walletData.uid:a("formatPubkey")(e.walletData.pubkey),to:e.destUid||e.destPub,amount:e.formData.amount,unit:e.formData.useRelative?t["COMMON.UD"]:a("abbreviate")(e.currency),comment:e.formData.comment&&0!==e.formData.comment.trim().length?e.formData.comment:t["COMMON.EMPTY_PARENTHESIS"],restAmount:i&&a("formatAmount")(e.formData.restAmount,{useRelative:e.formData.useRelative}),restTo:i&&(e.restUid||e.restPub)})})).then(l.alert.confirm)},e.addComment=function(){e.formData.useComment=!0},e.showWotLookupModal=function(t){return t=t||"destPub",e.hideDigitKeyboard(0),c.showWotLookup({enableWallets:!0}).then((function(n){n&&("destPub"==t?(e.destUid=n.uid,e.destPub=n.uid?"":n.pubkey,e.formData.destPub=n.pubkey):"restPub"==t&&(e.restUid=n.uid,e.restPub=n.uid?"":n.pubkey,e.formData.restPub=n.pubkey))}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return c.showSelectWallet({useRelative:e.formData.useRelative,showDefault:!0,showBalance:!0}).then((function(t){!t||b&&b.id===t.id||(b=t,e.walletData=b.data,console.debug("[transfer] Using wallet {"+b.id+"}"),e.onAmountChanged())}))},e.showUnitPopover=function(t){l.popover.show(t,{templateUrl:"templates/wallet/popover_unit.html",scope:e}).then((function(t){e.formData.useRelative=t}))},e.showDigitKeyboard=function(){if(e.digitKeyboardSettings&&!e.digitKeyboardVisible)return r.enable?(r.keyboard.close(),i((function(){e.digitKeyboardVisible=!0}),200)):(e.digitKeyboardVisible=!0,t.when())},e.hideDigitKeyboard=function(n){return e.digitKeyboardVisible?(e.digitKeyboardVisible=!1,i((function(){}),n||200)):t.when()}}function Y(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.formData=angular.copy(E.data),e.popupData={},e.loading=!0,e.nodePopup={},e.bma=u,e.keepAuthIdleLabels={10:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:10}},30:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.SECONDS",labelParams:{value:30}},60:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTE",labelParams:{value:1}},600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.MINUTES",labelParams:{value:10}},3600:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.HOUR",labelParams:{value:1}},9999:{labelKey:"SETTINGS.KEEP_AUTH_OPTION.ALWAYS"}},e.keepAuthIdles=_.keys(e.keepAuthIdleLabels),e.blockValidityWindowLabels={0:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.NONE"},6:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:6,time:void 0}},12:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:12,time:void 0}},24:{labelKey:"SETTINGS.BLOCK_VALIDITY_OPTION.N",labelParams:{count:24,time:void 0}}},e.blockValidityWindows=_.keys(e.blockValidityWindowLabels),e.$on("$ionicView.enter",(function(){t.all([E.ready(),m.parameters().then((function(e){return e&&e.avgGenTime})).catch((function(e){return console.error("[settings] Could not not currency parameters. Using default 'avgGenTime' (300)",e),{avgGenTime:300}})).then((function(t){_.each(e.blockValidityWindows,(function(n){n>0&&(e.blockValidityWindowLabels[n].labelParams.time=t.avgGenTime*n)}))}))]).then(e.load)})),e.setPopupForm=function(t){e.popupForm=t},e.load=function(){return e.loading=!0,e.locales=angular.copy(E.locales),angular.merge(e.formData,E.data),e.formData.locale=E.data.locale&&E.data.locale.id&&_.findWhere(e.locales,{id:E.data.locale.id})||_.findWhere(e.locales,{id:E.defaultSettings.locale.id}),o((function(){e.loading=!1,l.ink({selector:".item"}),e.showHelpTip()}),100)},e.reset=function(){e.actionsPopover&&e.actionsPopover.hide(),e.pendingSaving=!0,E.reset().then(b.restart).then((function(){e.load(),e.pendingSaving=!1}))},e.changeLanguage=function(e){r.use(e)},e.changeNode=function(t){var n=e.formData.node.port&&80!=e.formData.node.port&&443!=e.formData.node.port?e.formData.node.port:void 0;t=t||{host:e.formData.node.host,port:n,useSsl:angular.isDefined(e.formData.node.useSsl)?e.formData.node.useSsl:443==e.formData.node.port},e.showNodePopup(t).then((function(t){if(t.host!==e.formData.node.host||t.port!==e.formData.node.port||t.useSsl!==e.formData.node.useSsl||e.formData.node.temporary){l.loading.show();var n=u.instance(t.host,t.port,t.useSsl,!0);n.isAlive().then((function(a){return a?(l.loading.hide(),angular.merge(e.formData.node,t),delete e.formData.node.temporary,u.copy(n),e.bma=u,b.restart(),i.clearCache()):(l.loading.hide(),l.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeNode(t)})))}))}}))},e.showNodeList=function(){var t=!!("true"===p.httpsMode||!0===p.httpsMode||"force"===p.httpsMode||n.location&&"https:"===n.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),c.showNetworkLookup({enableFilter:!0,bma:!0,ssl:!!t||void 0}).then((function(e){if(e){var t=e.getBMA();return{host:t.dns?t.dns:e.hasValid4(t)?t.ipv4:t.ipv6,port:t.port||80,useSsl:t.useSsl||443==t.port}}})).then((function(t){e.changeNode(t)}))},e.showNodePopup=function(n){return t((function(t,i){e.popupData.newNode=n.port?[n.host,n.port].join(":"):n.host,e.popupData.useSsl=n.useSsl,e.popupForm&&e.popupForm.$setPristine(),r(["SETTINGS.POPUP_PEER.TITLE","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(n){a.show({templateUrl:"templates/settings/popup_node.html",title:n["SETTINGS.POPUP_PEER.TITLE"],scope:e,buttons:[{text:n["COMMON.BTN_CANCEL"]},{text:n["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return{server:e.popupData.newNode,useSsl:e.popupData.useSsl};t.preventDefault()}}]}).then((function(e){if(e){var n=e.server.split(":");n[1]=n[1]?n[1]:80,t({host:n[0],port:n[1],useSsl:e.useSsl})}else l.loading.hide()}))}))}))},e.save=function(){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.save()}),500)):(e.saving=!0,o((function(){return e.cleanupHelpTip(),E.apply(e.formData),E.store()}),100).then((function(){e.saving=!1})))},e.onDataChanged=function(n,i,a){return e.loading||e.pendingSaving?t.when():e.saving?(e.pendingSaving=!0,o((function(){return e.pendingSaving=!1,e.onDataChanged(n,i,a)}),500)):void(a!==e||angular.equals(n,i)||e.save())},e.$watch("formData",e.onDataChanged,!0),E.api.data.on.changed(e,(function(t){e.loading||e.saving||e.pendingSaving||!angular.equals(t.useLocalStorageEncryption,e.formData.useLocalStorageEncryption)&&(console.debug("[settings] Settings changed (outside the settings page). Reloading..."),e.load())})),e.getServer=function(){return e.formData.node&&e.formData.node.host?d.getServer(e.formData.node.host,e.formData.node.port):""},e.cleanupHelpTip=function(){if(e.formData.helptip.enable!==E.data.helptip.enable){var t=e.formData.helptip.enable;e.formData.helptip=angular.merge({},E.defaultSettings.helptip),e.formData.helptip.enable=t}},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"templates/settings/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.startSettingsTour=function(){return e.hideActionsPopover(),e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((e.isLogin()||n)&&!((t=angular.isDefined(t)?t:E.data.helptip.settings)<0)){0===t&&(t=1);var i=e.createHelptipScope(n);if(i)return i.startSettingsTour(t,!1).then((function(e){i.$destroy(),E.data.helptip.settings=e,E.store()}))}}}function j(e,n,i,a,o,r,s,l,c,u,d){e.search={result:[],total:0,loading:!0,loadingMore:!1,hasMore:!1,type:"last"},e.node={},e.currency=!1,e.entered=!1,e.searchTextId=null,e.ionItemClass="item-border-large",e.defaultSizeLimit=s.screen.isSmall()?50:100,e.helptipPrefix="helptip-network",e.listeners=[],e.enter=function(t,n){if(e.entered)e.addListeners();else{if(n&&n.stateParams&&n.stateParams.q&&(e.search.text=n.stateParams.q,e.search.text&&e.search.text.trim().length&&(e.search.type="text")),n&&n.stateParams&&n.stateParams.server){var i="true"==n.stateParams.ssl,a="true"==n.stateParams.tor,o={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:a},r=n.stateParams.server.split(":");if(2==r.length&&(o.host=r[0],o.port=r[1]),!l.node.same(o.host,o.port))return e.node=a?l.instance(o.host+".to",443,!0,6e5):l.instance(o.host,o.port,o.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=l}if(!e.currency)return c.get().then((function(t){e.currency=t?t.name:null,e.node=t.node?t.node:l,e.currency?e.enter():s.alert.error("ERROR.GET_CURRENCY_FAILED")})).catch(s.onError("ERROR.GET_CURRENCY_FAILED"));e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!s.screen.isSmall()&&d.data.expertMode,e.doSearch(),e.addListeners(),e.entered=!0,e.showHelpTip()}},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.removeListeners()},e.$on("$ionicParentView.leave",e.leave),e.$on("$destroy",e.leave),e.doSearchLast=function(){return e.search.type="last",e.doSearch()},
+e.doSearch=function(n){var i;if(n=angular.isDefined(n)?n:0,e.search.loading=0===n,e.search.hasMore=!1,0===n)i=e.node.blockchain.current().then((function(t){var n=t.number<e.defaultSizeLimit?t.number:e.defaultSizeLimit;return e.node.blockchain.blocksSlice({count:n,from:t.number-n}).then((function(e){return e&&e.splice(0,0,t),e}))})).catch((function(e){if(e&&e.ucode==l.errorCodes.NO_CURRENT_BLOCK)return[];throw e}));else{var a=e.search.results[e.search.results.length-1].number,o=a<e.defaultSizeLimit?a:e.defaultSizeLimit;i=e.node.blockchain.blocksSlice({count:o,from:a-o})}return i.then((function(i){if(!i||!i.length)return e.doDisplayResult([],n,0),void(e.search.loading=!1);i=i.reduce((function(e,n){var i=new t(n);return i.cleanData(),e.concat(i)}),[]),i=_.sortBy(i,(function(e){return-1*e.number}));var a=(0===n?i[0].number:e.search.results[0].number)+1;return e.doPrepareResult(i,n).then((function(){e.doDisplayResult(i,n,a),e.search.loading=!1}))})).catch((function(t){s.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t),e.search.loading=!1}))};var p=a("formatDateShort");e.doPrepareResult=function(t,n){if(n=angular.isDefined(n)?n:0,"last"==e.search.type){var i;if(n>0&&e.search.results.length){var a=e.search.results[e.search.results.length-1];i=a.empty?a.day:void 0}_.forEach(t,(function(e,t){if(e.empty){var a=p(e.medianTime),o=0!==t||0!==n,r=!i||i==a;e.compacted=o&&r,i=a}else i=void 0}))}return u.extendAll(t,"issuer")},e.doDisplayResult=function(t,n,i){e.search.results=n?e.search.results.concat(t):t||[],e.search.hasMore=i&&e.search.results.length<i,e.search.total=i||e.search.total,e.smallscreen=s.screen.isSmall(),e.$broadcast("$$rebind::rebind"),t&&t.length&&e.motion.show({selector:".list-blocks .item-block"})},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,e.doSearch(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeListeners=function(){e.listeners.length&&(console.debug("[block] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.addListeners=function(){e.listeners.length||(console.debug("[block] Starting listeners"),e.node===l?e.listeners=[c.api.data.on.newBlock(e,e.onBlock)]:e.listeners=[e.node.websocket.block().onListener((function(n){if(n){var i=new t(n);i.cleanData(),e.onBlock(i)}}))])},e.onBlock=function(t){if(!(e.search.loading||"last"!=e.search.type||e.search.sort&&"desc"!=e.search.sort))if(e.search.results=e.search.results||[],e.search.results.length){var n=_.findWhere(e.search.results,{number:t.number});n?n.hash!=t.hash&&(console.debug("[ES] [blockchain] block #{0} updated (by websocket)".format(t.number)),angular.copy(t,n),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(n)}))):(console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.splice(0,0,t),e.doPrepareResult([t,e.search.results[1]]).then((function(){return e.showBlock(t)})))}else console.debug("[ES] [blockchain] new block #{0} received (by websocket)".format(t.number)),e.search.total++,e.search.results.push(t),e.doPrepareResult([t]).then((function(){return e.showBlock(t)}))},e.showBlock=function(t){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:"#block-"+t.number})},e.selectBlock=function(t){t.compacted&&e.compactMode?(e.toggleCompactMode(),n((function(){r("block-"+t.number)}),900)):l.node.same(e.node.host,e.node.port)?o.go("app.view_block_hash",{number:t.number,hash:t.hash}):o.go("app.view_server_block_hash",{server:e.node.server,ssl:e.node.useSsl,number:t.number,hash:t.hash})},e.toggleCompactMode=function(){if(e.compactMode=!e.compactMode,e.doDisplayResult(e.search.results,0,e.search.total),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type){var t=e.search.results[e.search.results.length-1];t&&t.number>0&&n((function(){e.search.hasMore=!0}),500)}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){}}function K(e,n,i,a,o,r,s){e.loading=!0,e.formData={},e.compactMode=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n&&(e.number=n.stateParams&&angular.isDefined(n.stateParams.number)?n.stateParams.number:"current",e.hash=n.stateParams&&n.stateParams.hash?n.stateParams.hash:void 0,n.stateParams&&n.stateParams.server)){var i="true"==n.stateParams.ssl,s="true"==n.stateParams.tor,l={server:n.stateParams.server,host:n.stateParams.server,useSsl:i,useTor:s},c=n.stateParams.server.split(":");if(2==c.length&&(l.host=c[0],l.port=c[1]),!o.node.same(l.host,l.port))return e.node=s?o.instance(l.host+".to",443,!0,6e5):o.instance(l.host,l.port,l.useSsl),e.node.blockchain.parameters().then((function(t){e.currency=t.currency,e.enter()}));e.node=o}e.currency&&e.node?e.load():r.get().then((function(t){t&&(e.currency=t.name,e.node=t.node,e.load())})).catch(a.onError("ERROR.GET_CURRENCY_FAILED"))}},e.$on("$ionicView.enter",e.enter),e.leave=function(){},e.$on("$ionicParentView.beforeLeave",e.leave),e.load=function(){if(e.number)return("current"==e.number?e.node.blockchain.current():e.node.blockchain.block({block:e.number})).then((function(n){var i=new t(n);if(i.parseData(),!i||!angular.isDefined(i.number)||!i.hash)return e.loading=!1,void a.alert.error("ERROR.GET_BLOCK_FAILED");if(e.hash&&i.hash!=e.hash)return e.loading=!1,void a.alert.error("ERROR.INVALID_BLOCK_HASH");var r=[];i.joiners.length&&(r=r.concat(i.joiners)),i.certifications.length&&(r=i.certifications.reduce((function(e,t){return t.to={pubkey:t.to},t.from={pubkey:t.from},e.concat(t.to,t.from)}),r),i.certifications=_.groupBy(i.certifications,(function(e){return e.to.pubkey}))),i.transactions.length&&(r=i.transactions.reduce((function(e,t){return t.issuers=t.issuers.reduce((function(e,t){return e.concat({pubkey:t})}),[]),_.forEach(t.outputs||[],(function(e){e.unlockCondition&&angular.merge(e,o.tx.parseUnlockCondition(e.unlockCondition))})),e.concat(t.issuers.concat(t.outputs||[]))}),r));var l={pubkey:i.issuer};return r.push(l),s.extendAll(r).then((function(){e.updateView({block:i,issuer:l})}))})).catch((function(t){e.loading=!1,a.onError("ERROR.GET_BLOCK_FAILED")(t)}))},e.updateView=function(t){e.formData=t.block,e.issuer=t.issuer,e.loading=!1},e.toggleCompactMode=function(){e.compactMode=!e.compactMode},e.toUnlockUIArray=function(t,n,i){return n=n||10,!t.children||"AND"!=t.type&&"OR"!=t.type?{style:{"padding-left":n+"px"},operator:i,type:t.type,value:t.value}:t.children.reduce((function(i,a,o){return a.children&&o>0?(i=i.concat({style:{"padding-left":n+"px","padding-top":"10px","padding-bottom":"10px"},operator:t.type})).concat(e.toUnlockUIArray(a,n+10)):i.concat(e.toUnlockUIArray(a,n+10,o&&t.type))}),[])},e.showUnlockConditionPopover=function(t,n){t.unlockTree&&(e.popoverData=e.popoverData||{},e.popoverData.unlockConditions=e.toUnlockUIArray(t.unlockTree),a.popover.show(n,{templateUrl:"templates/blockchain/unlock_condition_popover.html",scope:e,autoremove:!0,afterShow:function(t){e.unlockConditionPopover=t}}))},e.hideUnlockConditionsPopover=function(){e.unlockConditionPopover&&(e.unlockConditionPopover.hide(),e.unlockConditionPopover=null)},e.goState=function(t,n){e.hideUnlockConditionsPopover(),i.go(t,n)},e.openRawBlock=function(t){return e.openLink(t,e.node.url+"/blockchain/block/"+e.formData.number)},e.showHelpTip=function(e){}}function $(e,t){var n,i,a={registry:"EVENT.REGISTRY."},o=this;return e=e||{},o.type=e.type&&e.type.toLowerCase(),o.time=e.time,o.hash=e.hash,o.read=!!e.read_signature,o.message=e.reference&&a[e.reference.index]?a[e.reference.index]+e.code:"EVENT."+e.code,o.params=e.params,t&&"function"==typeof t&&(o.markAsReadCallback=t),o.markAsRead=function(){o.markAsReadCallback&&o.markAsReadCallback(o)},e.code=e.code||"",e.code.startsWith("MEMBER_")?(o.avatarIcon="ion-person",o.icon="ion-information-circled positive",o.state="app.view_wallet",o.medianTime=o.time):e.code.startsWith("TX_")?(o.avatarIcon="ion-card",o.icon="TX_SENT"==e.code?"ion-paper-airplane dark":"ion-archive balanced",o.medianTime=o.time,(n=e.params.length>0?e.params[0]:null)&&-1==n.indexOf(",")&&(o.pubkey=n),o.state="app.view_wallet_tx",o.stateParams={refresh:!0}):e.code.startsWith("CERT_")?(o.avatarIcon="CERT_RECEIVED"==e.code?"ion-ribbon-b":"ion-ribbon-a",o.icon="CERT_RECEIVED"==e.code?"ion-ribbon-b balanced":"ion-ribbon-a gray",o.pubkey=e.params.length>0?e.params[0]:null,o.medianTime=o.time,o.state="app.wallet_cert",o.stateParams={type:"CERT_RECEIVED"==e.code?"received":"given"}):e.code.startsWith("MESSAGE_")?(o.avatarIcon="ion-email",o.icon="ion-email dark",(n=e.params.length>0?e.params[0]:null)&&-1==n.indexOf(",")&&(o.pubkey=n),o.id=e.reference.id):e.reference&&"page"==e.reference.index?(o.avatarIcon="ion-ios-book",e.reference.anchor?(o.icon="ion-ios-chatbubble-outline dark",o.state="app.view_page_anchor",o.stateParams={id:e.reference.id,title:e.params[1],anchor:(i=e.reference.anchor,i?i.substr(0,4)+i.substr(i.length-4):"")}):(o.icon="ion-ios-book dark",o.state="app.view_page",o.stateParams={id:e.reference.id,title:e.params[1]})):"INFO"==e.type?(o.avatarIcon="ion-information",o.icon="ion-information-circled positive"):"WARN"==e.type?(o.avatarIcon="ion-alert-circled",o.icon="ion-alert-circled energized"):"ERROR"==e.type&&(o.avatarIcon="ion-close",o.icon="ion-close-circled assertive"),o}function z(e,t){var n=this;n.id=e,n.message=null,n.html=null,n.issuer=null,n.time=null,n.creationTime=null,n.reply_to=null,n.replyCount=0,n.parent=null,n.replies=[],n.onRemoveListeners=[],n.copy=function(e){n.message=e.message,n.html=e.html,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.id=e.id||n.id,n.reply_to=e.reply_to||n.reply_to,n.uid=e.uid||n.uid,n.name=e.name||n.name,n.avatarStyle=e.avatarStyle||n.avatarStyle,e.parent&&(n.parent=e.parent),e.replies&&n.setReplies(e.replies)},n.copyFromJson=function(e){n.message=e.message,n.issuer=e.issuer,n.time=e.time,n.creationTime=e.creationTime||n.time,n.reply_to=e.reply_to},n.addOnRemoveListener=function(e){e&&"function"==typeof e&&n.onRemoveListeners.push(e)},n.cleanAllListeners=function(){n.onRemoveListeners=[]},n.setReplies=function(e){n.removeAllReplies(),n.addReplies(e)},n.addReplies=function(e){e&&e.length&&(e=e.sort((function(e,t){return e.time-t.time})),_.forEach(e,(function(e){e.parent=n,n.replies.push(e)})),n.replyCount+=e.length)},n.containsReply=function(e){return-1!=n.replies.indexOf(e)},n.addReply=function(e){n.replyCount+=1,n.replies.push(e),n.replies=n.replies.sort((function(e,t){return e.time-t.time})),e.parent=n},n.removeAllReplies=function(){if(n.replyCount){var e=n.replies.splice(0,n.replies.length);n.replyCount=0,_.forEach(e,(function(e){e.remove()}))}},n.removeReply=function(e){var t=_.findIndex(n.replies,{id:e});-1!=t&&(n.replyCount--,delete n.replies.splice(t,1)[0].parent)},n.remove=function(){n.parent&&(n.parent.removeReply(n.id),delete n.parent),n.onRemoveListeners.length&&(_.forEach(n.onRemoveListeners,(function(e){e(n)})),n.issuer=null,n.message=null,n.cleanAllListeners())},t&&"object"==typeof t&&n.copyFromJson(t)}function q(e){if(e=e||{},this.type=e.type&&e.type.toLowerCase(),this.time=e.time,this.id=e.id,"certification"==this.type){if(this.comment=e.comment,this.icon="ion-ribbon-a",this.okText="WOT.BTN_CERTIFY",!e.content||-1==e.content.indexOf("-"))return console.error("[invitation] Empty content for invitation [{0}]".format(this.id)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var t=e.content.lastIndexOf("-");if(-1==t)return console.error("[invitation] Bad content format for invitation [{0}]: {1}".format(this.id,e.content)),this.message="INVITATION.ERROR.BAD_INVITATION_FORMAT",void(this.pubkey=e.issuer);var n={uid:e.content.substr(0,t),pubkey:e.content.substr(t+1)};this.state="app.wot_identity",this.stateParams={pubkey:n.pubkey,uid:n.uid,action:"certify"},n.pubkey==e.issuer?(this.pubkey=e.issuer,this.uid=n.uid,this.message="INVITATION.ASK_CERTIFICATION"):(this.issuer={pubkey:e.issuer},this.message="INVITATION.SUGGESTION_CERTIFICATION",this.pubkey=n.pubkey,this.uid=n.uid)}}function X(e){var t=this;Object.keys(e).forEach((function(n){t[n]=e[n]})),t.endpoints=t.endpoints||[]}function Q(e,t,n,i){e.selectNewPicture=function(t){if(i.enable)e.openPicturePopup();else{var n=angular.element(document.querySelector(t||"#pictureFile"));n&&n.length>0&&n[0].click()}},e.openPicturePopup=function(){i.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t,isnew:!0})})).catch(t.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(n){if(n.target.files&&n.target.files.length){t.loading.show();var i=n.target.files[0];return t.image.resizeFile(i).then((function(i){e.pictures.push({src:i,isnew:!0}),n.target.value="",t.loading.hide(100)})).catch((function(e){console.error(e),n.target.value="",t.loading.hide()}))}},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.rotatePicture=function(n){var i=e.pictures[n];t.image.rotateSrc(i.src).then((function(e){i.src=e}))}}function J(e,t,n,i){e.loading=!0,e.allCategories=[],e.categories=[],this.searchText="",this.title=i&&i.title,e.afterLoad=function(i){e.categories=i,e.allCategories=i,e.loading=!1,n((function(){t.ink()}),10)},this.doSearch=function(){var t=this.searchText.toLowerCase().trim();t.length>1?(e.loading=!0,e.categories=e.allCategories.reduce((function(e,n){return n.parent&&-1!=n.name.toLowerCase().search(t)?e.concat(n):e}),[]),e.loading=!1):e.categories=e.allCategories},i&&i.categories?e.afterLoad(i.categories):i&&i.load&&i.load().then((function(t){e.afterLoad(t)}))}function Z(e,t,n,i,a,o,r){e.loading=!0,e.defaultCommentSize=5,e.formData={},e.comments={},e.$on("$recordView.enter",(function(t,n){e.loading?e.anchor=n&&n.stateParams.anchor:!e.loading&&e.id&&e.load(e.id,{animate:!1})})),e.$on("$recordView.load",(function(t,n,i){e.id=n||e.id,e.service=i||e.service,console.debug("[ES] [comment] Will use {"+i.index+"} service"),e.id&&e.load(e.id).then((function(){e.scrollToAnchor()}))})),e.load=function(t,n){return(n=n||{}).from=n.from||0,n.size=n.size||e.anchor&&-1,n.size=n.size||e.defaultCommentSize,n.animate=!angular.isDefined(n.animate)||n.animate,n.loadAvatarAllParent=!angular.isDefined(n.loadAvatarAllParent)||n.loadAvatarAllParent,e.loading=!0,e.service.load(t,n).then((function(i){!n.animate&&i.result.length&&_.forEach(i.result,(function(e){e.isnew=!0})),e.comments=i,e.comments.hasMore=i.total>i.result.length,e.loading=!1,e.service.changes.start(t,i,e),e.motion.show({selector:".comments .item",ink:!1})}))},e.$on("$recordView.beforeLeave",(function(){if(e.comments){if(!e.service)return void console.error("[comment] Comment controller has no service ! Unable to listen changes...");e.service.changes.stop(e.comments)}})),e.scrollToAnchor=function(){if(e.anchor){var t=document.getElementsByName(e.anchor);if(!t||!t.length)return a(e.scrollToAnchor,500);for(var n=0;n<t.length-1;n++)angular.element(t[n]).remove();o(e.anchor),a((function(){e.anchor=null}),1500)}},e.showMore=function(){e.load(e.id,{from:0,size:-1,loadAvatarAllParent:!1}).then((function(){e.motion.show({selector:".card-avatar"})}))},e.onKeypress=function(t){t&&10==t.charCode&&t.ctrlKey&&(e.save(),t.preventDefault())},e.save=function(){e.formData.message&&e.formData.message.length&&e.loadWallet({minData:!0,auth:!0}).then((function(){r.loading.hide();var t=e.formData;return e.formData={},e.focusNewComment(),e.service.save(e.id,e.comments,t)})).then((function(){e.comments.total++})).catch(r.onError("COMMENTS.ERROR.FAILED_SAVE_COMMENT"))},e.share=function(i,a){var o,s=angular.copy(n.params);s.anchor?(s.anchor=t("formatHash")(a.id),o=n.href(n.current.name,s,{absolute:!0})):o=n.href(n.current.name,s,{absolute:!0})+"/"+t("formatHash")(a.id);var l=_.findIndex(e.comments.result,{id:a.id}),c=o+"?u="+(a.uid||t("formatPubkey")(a.issuer));r.popover.show(i,{templateUrl:"templates/common/popover_share.html",scope:e,bindings:{titleKey:"COMMENTS.POPOVER_SHARE_TITLE",titleValues:{number:l?l+1:1},date:a.creationTime,value:c,postUrl:o,postMessage:a.message},autoselect:".popover-share input"})},e.edit=function(t){var n=new z;n.copy(t),e.formData=n},e.remove=function(t){t&&(t.remove(),e.comments.total--)},e.reply=function(t){t&&t.id&&(e.formData={parent:t},e.focusNewComment(!0))},e.cancel=function(){e.formData={},e.focusNewComment()},e.focusNewComment=function(e){r.screen.isSmall()?e&&i("comment-form-input"):i("comment-form-textarea")},e.removeParentLink=function(){delete e.formData.parent,delete e.formData.reply_to,e.focusNewComment()},e.toggleExpandedReplies=function(e,t){e.expandedReplies=e.expandedReplies||{},e.expandedReplies[t]=!e.expandedReplies[t]},e.toggleExpandedParent=function(e,t){e.expandedParent=e.expandedParent||{},e.expandedParent[t]=!e.expandedParent[t]}}function ee(e,t,n,i,a){e.socialData={url:null,reorder:!1},e.addSocialNetwork=function(){if(e.socialData.url&&0!==e.socialData.url.trim().length){e.formData.socials=e.formData.socials||[];var o=e.socialData.url.trim();if(_.findWhere(e.formData.socials,{url:o}))e.socialData.url="";else{var r=a.get(o);if(!r)return i.alert.error("PROFILE.ERROR.INVALID_SOCIAL_NETWORK_FORMAT"),void t("socialUrl");e.formData.socials.push(r),e.socialData.url="",e.motion.show({selector:"#social-"+n("formatSlug")(r.url),startVelocity:1e4})}}},e.editSocialNetwork=function(n){var i=e.formData.socials[n];e.formData.socials.splice(n,1),e.socialData.url=i.url,t("socialUrl")},e.reorderSocialNetwork=function(t,n,i){t&&n!=i&&(e.formData.socials.splice(n,1),e.formData.socials.splice(i,0,t))},e.filterFn=function(e){return!e.recipient||e.valid}}function te(e){e.openSocial=function(t,n){return e.openLink(t,n.url,{type:n.type})},e.filterFn=function(e){return!e.recipient||e.valid}}function ne(e){e.formData={initCrop:!1,imageCropStep:0,imgSrc:void 0,result:void 0,resultBlob:void 0},e.openFileSelector=function(){var e=angular.element(document.querySelector(".modal-avatar #fileInput"));e&&e.length>0&&e[0].click()},e.fileChanged=function(t){var n=t.target.files,i=new FileReader;i.readAsDataURL(n[0]),i.onload=function(t){var n=this.result;e.$applyAsync((function(){e.formData.imgSrc=n}))}},e.doNext=function(){2==e.formData.imageCropStep?e.doCrop():3==e.formData.imageCropStep&&e.closeModal(e.formData.result)},e.doCrop=function(){e.formData.initCrop=!0},e.clear=function(){e.formData={initCrop:!1,imageCropStep:1,imgSrc:void 0,result:void 0,resultBlob:void 0}}}function ie(e,t,n,i){var a=t.plugins&&t.plugins.es&&t.plugins.es.defaultCountry,o=!1;e.formPosition={loading:!1,enable:void 0},e.tryToLocalize=function(){if(!e.formPosition.loading&&!o){var t=e.getAddressToSearch();return t?(e.formPosition.loading=!0,n.point.searchByAddress(t).then((function(n){return n&&1==n.length?e.updateGeoPoint(n[0]):e.openSearchLocationModal({text:t,results:n||[],forceFallback:!n||!n.length})})).then((function(){e.formPosition.loading=!1})).catch((function(t){console.error(t),e.formPosition.loading=!1}))):(o=!0,n.point.current().then(e.updateGeoPoint).then((function(){o=!1})).catch((function(e){console.error(e),o=!1})))}},e.onCityChanged=function(){if(!e.loading)return e.formPosition.enable?(e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0),e.tryToLocalize()):void 0},e.onUseGeopointChanged=function(){e.loading||(e.formPosition.enable?e.tryToLocalize():e.formData.geoPoint&&(e.formData.geoPoint.lat=void 0,e.formData.geoPoint.lon=void 0,e.dirty=!0))},e.onGeopointChanged=function(){e.loading&&(e.formPosition.enable=e.formData.geoPoint&&!!e.formData.geoPoint.lat&&!!e.formData.geoPoint.lon)},e.$watch("formData.geoPoint",e.onGeopointChanged),e.getAddressToSearch=function(){return e.formData.address&&e.formData.city?[e.formData.address.trim(),e.formData.city.trim()].join(", "):e.formData.city||e.formData.address||e.formData.location},e.updateGeoPoint=function(t){if(t&&t.lat&&t.lon&&(e.dirty=!0,e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=parseFloat(t.lat),e.formData.geoPoint.lon=parseFloat(t.lon),t.address&&t.address.city)){var n=[t.address.city];t.address.postcode&&n.push(t.address.postcode),t.address.country!=a&&n.push(t.address.country),e.formData.city=n.join(", ")}},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.formData.city,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return i.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0}).then(e.updateGeoPoint)}}function ae(e,t,n,i,a){var o=n.plugins&&n.plugins.es&&n.plugins.es.defaultCountry,r=!1;e.geoDistanceLabels=[5,10,20,50,100,250,500].reduce((function(e,t){return e[t]={labelKey:"LOCATION.DISTANCE_OPTION",labelParams:{value:t}},e}),{}),e.geoDistances=_.keys(e.geoDistanceLabels),e.searchPosition=function(n){if(r)return t.when();r=!0;var a=n?i.point.searchByAddress(n).then((function(t){return t&&1==t.length?(t[0].exact=!0,t[0]):e.openSearchLocationModal({text:n,results:t||[],forceFallback:!t||!t.length}).then((function(e){if(e&&e.address&&e.address.city){var t=[e.address.city];e.address.postcode&&t.push(e.address.postcode),e.address.country!=o&&t.push(e.address.country),e.shortName=t.join(", ")}return e}))})):i.point.current();return a.then((function(e){if(r=!1,e&&e.lat&&e.lon)return{lat:parseFloat(e.lat),lon:parseFloat(e.lon),name:e.shortName,exact:e.exact}})).catch((function(e){console.error(e),r=!1})),a},e.openSearchLocationModal=function(t){var n={text:(t=t||{}).text||e.getAddressToSearch(),results:t.results,fallbackText:t.fallbackText||e.search.location,forceFallback:angular.isDefined(t.forceFallback)?t.forceFallback:void 0};return a.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",n,{focusFirstInput:!0})}}function oe(e,t,n,i,a){var o=i.plugins&&i.plugins.es&&i.plugins.es.defaultCountry,r=!1;e.locations=void 0,e.selectLocationIndex=-1,e.onKeydown=function(t){switch(t.keyCode){case 27:e.hideDropdown();break;case 13:e.locations&&e.locations.length&&e.onEnter();break;case 38:e.onArrowUpOrDown(-1),t.preventDefault();break;case 40:e.onArrowUpOrDown(1),t.preventDefault();break;case 8:case 45:case 46:break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:e.showDropdown()}},e.onEnter=function(){e.selectLocationIndex>-1?e.selectLocation(e.locations[e.selectLocationIndex]):e.selectLocation(e.locations[0])},e.onArrowUpOrDown=function(t){e.locations&&(e.selectLocationIndex+=t,e.selectLocationIndex>=e.locations.length&&(e.selectLocationIndex=0),e.selectLocationIndex<0&&(e.selectLocationIndex=e.locations.length-1),_.forEach(e.locations||[],(function(t,n){t.selected=n==e.selectLocationIndex})))},e.onLocationChanged=function(){r||e.search.loading||(e.search.geoPoint=void 0,e.showDropdown())},e.showDropdown=function(){var t=e.search.location&&e.search.location.trim();if(!t||t.length<3)return e.hideDropdown(!0);var n=e.requestId&&e.requestId+1||1;return e.requestId=n,r=!0,a.point.searchByAddress(t).then((function(t){e.requestId==n&&(r=!1,e.locations=t||[],e.license=t&&t.length&&t[0].license)})).catch((function(t){throw e.hideDropdown(),t}))},e.hideDropdown=function(n){return n?(e.locations=void 0,e.selectLocationIndex=-1,e.license=void 0,void(r=!1)):t((function(){r||(e.locations=void 0,e.license=void 0,r=!1)}),500)},e.selectLocation=function(t,n){if(r=!0,t)if(e.search.geoPoint=e.search.geoPoint||{},e.search.geoPoint.lat=parseFloat(t.lat),e.search.geoPoint.lon=parseFloat(t.lon),n)e.search.geoPoint.exact=!0;else if(t&&t.address&&t.address.city){var i=[t.address.city];t.address.postcode&&i.push(t.address.postcode),t.address.country!=o&&i.push(t.address.country),e.search.location=i.join(", ")}e.hideDropdown(!0)},e.openSearchLocationModal=function(t){var i={text:(t=t||{text:e.search.location}).text||e.search.location};return n.show("plugins/es/templates/common/modal_location.html","ESSearchPositionModalCtrl",i,{focusFirstInput:!0}).then(e.selectLocation)}}function re(e,t,n,i,a){e.search={text:a.text||"",fallbackText:a.fallbackText||void 0,forceFallback:!!angular.isDefined(a.forceFallback)&&a.forceFallback,loading:!1,results:a.results||void 0},e.$on("modal.shown",(function(){e.doSearch(!0)})),e.doSearch=function(a){var o=e.search.text&&e.search.text.trim();if(!o)return t.when();e.search.loading=!0;var r=a&&e.search.fallbackText&&e.search.fallbackText.trim();return r=r&&r!=o?r:void 0,(a&&e.search.forceFallback&&e.search.results?t.when(e.search.results):i.point.searchByAddress(o)).then((function(e){return e&&e.length||!r?e:t.all([n("LOCATION.MODAL.ALTERNATIVE_RESULT_DIVIDER",{address:r}),i.point.searchByAddress(r)]).then((function(e){var t=e[0];return(e=e[1])&&e.length?[{name:t}].concat(e):e}))})).then((function(t){e.search.loading=!1,e.search.results=t||[],e.license=t&&t.length&&t[0].license})).catch((function(t){throw e.search.loading=!1,e.search.results=[],e.license=void 0,t}))}}function se(e,t,n){e.extensionPoint=n.extensions.points.current.get(),e.enable=t.isEnable(),t.api.state.on.changed(e,(function(t){e.enable=t,e.$broadcast("$$rebind::state")}))}function le(e,t,n,i,a){angular.extend(this,n("ESExtensionCtrl",{$scope:e})),e.showRegistryLookupView=function(){t.go(i.screen.isSmall()?"app.wot_lookup.tab_registry":"app.registry_lookup_lg")},e.showNotificationsPopover=function(t){return i.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_notification.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}})},e.showMessagesPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/message/popover_message.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth({minData:!0}).then((function(){return i.loading.hide(),e.showMessagesPopover(t)}))},e.showInvitationsPopover=function(t){return a.isAuth()?i.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_invitation.html",scope:e,autoremove:!1,afterShow:function(e){var t=a.api.data.on.unauth(e.scope,(function(){e.scope.closePopover(),t()}))}}):a.auth().then((function(){return i.loading.hide(),e.showInvitationsPopover(t)}))}}function ce(e,t,n,i,a){e.updateView=function(){e.enable=a.isLogin()&&i.isEnable()},e.showEditUserProfile=function(){e.closeProfilePopover(),n.go("app.edit_profile")},i.api.state.on.changed(e,e.updateView),a.api.data.on.login(e,(function(n,a){return e.enable=i.isEnable(),a&&a.resolve()||t.when()})),a.api.data.on.logout(e,(function(){e.enable=!1})),e.updateView()}function ue(e,t){e.extensionPoint=t.extensions.points.current.get()}function de(e,t,n,i,a,o,r,s,l,c,u,d){e.hasWindowNotification=!!("Notification"in window),e.formData={},e.popupData={},e.loading=!0,e.enter=function(t,n){e.load()},e.$on("$ionicView.enter",e.enter),e.load=function(t){e.loading=!0;var n=e.formData.enable;e.formData=c.data.plugins&&c.data.plugins.es?angular.copy(c.data.plugins.es):{enable:!1,host:void 0,port:void 0},t&&n&&(e.formData.enable=n),e.isFallbackNode=e.formData.enable&&u.node.isFallback(),e.server=e.getServer(u),e.loading=!1},d.api.state.on.changed(e,(function(t){e.load(!0)})),e.setPopupForm=function(t){e.popupForm=t},e.changeEsNode=function(t){t=t||{host:e.formData.host,port:e.formData.port&&80!=e.formData.port&&443!=e.formData.port?e.formData.port:void 0,useSsl:angular.isDefined(e.formData.useSsl)?e.formData.useSsl:443==e.formData.port},e.showNodePopup(t).then((function(t){if(t.host!=e.formData.host||t.port!=e.formData.port||t.useSsl!=e.formData.useSsl){o.loading.show();var n=u.instance(t.host,t.port,t.useSsl);return n.isAlive().then((function(i){return i?(e.formData.host=n.host,e.formData.port=n.port,e.formData.useSsl=n.useSsl,u.copy(n)):(o.loading.hide(),o.alert.error("ERROR.INVALID_NODE_SUMMARY").then((function(){e.changeEsNode(t)})))})).then((function(){e.server=e.getServer(u),e.isFallbackNode=!1,o.loading.hide()}))}o.loading.hide()}))},e.showNodePopup=function(t){return n((function(n,r){var s=[t.host];t.port&&80!=t.port&&s.push(t.port),e.popupData.newNode=s.join(":"),e.popupData.useSsl=angular.isDefined(t.useSsl)?t.useSsl:443==t.port,e.popupForm&&e.popupForm.$setPristine(),i(["ES_SETTINGS.POPUP_PEER.TITLE","ES_SETTINGS.POPUP_PEER.HELP","COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(t){a.show({templateUrl:"templates/settings/popup_node.html",title:t["ES_SETTINGS.POPUP_PEER.TITLE"],subTitle:t["ES_SETTINGS.POPUP_PEER.HELP"],scope:e,buttons:[{text:t["COMMON.BTN_CANCEL"]},{text:t["COMMON.BTN_OK"],type:"button-positive",onTap:function(t){if(e.popupForm.$submitted=!0,e.popupForm.$valid&&e.popupForm.newNode)return e.popupData.newNode;t.preventDefault()}}]}).then((function(t){if(t){var i=t.split(":"),a=e.popupData.useSsl||443==i[1];n({host:i[0],port:i[1]||(a?443:80),useSsl:a})}else o.loading.hide()}))}))}))},e.showNodeList=function(){var n=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol);return a._popupStack[0].responseDeferred.promise.close(),r.showNetworkLookup({enableFilter:!0,endpoint:u.constants.ES_USER_API_ENDPOINT,ssl:!!n||void 0}).then((function(e){if(e){var t=e.getEndpoints().reduce((function(e,t){var n=u.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(t.length){var n=t[0];return{host:n.dns?n.dns:e.hasValid4(n)?n.ipv4:n.ipv6,port:n.port||80,useSsl:n.useSsl||443==n.port}}}})).then((function(t){e.changeEsNode(t)}))},e.onFormChanged=function(){e.loading||(e.hasWindowNotification&&e.formData.notifications.emitHtml5!==("granted"===window.Notification.permission)?window.Notification.requestPermission((function(t){e.formData.notifications.emitHtml5="granted"===t,e.onFormChanged()})):(e.loading=!0,c.data.plugins=c.data.plugins||{},c.data.plugins.es=c.data.plugins.es?angular.merge(c.data.plugins.es,e.formData):e.formData,delete c.data.plugins.es.newNode,c.store().then((function(){e.loading=!1}))))},e.$watch("formData",e.onFormChanged,!0),e.getServer=function(t){if((t=t||e.formData).host)return s.getServer(t.host,t.port)}}function pe(e,t,n,i,a){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.showProfileHelp=!1,e.showNewPageModal=function(){var e=n.params&&n.params.id?a.children.get(n.params.id):a;if(e)return i.showNewPage({wallet:e});UIUtils.alert.error("ERROR.UNKNOWN_WALLET_ID")}}function me(e,t,n){angular.extend(this,t("ESExtensionCtrl",{$scope:e})),e.openRegistryLookup=function(){var t=e.search.text&&e.search.text.trim()||"",i=e.search.location&&e.search.location.trim()||"",a={q:t.length?t:void 0,location:i.length?i:void 0};n.go("app.wot_lookup.tab_registry",a)}}function Ee(e,t,n,i,a,o,r,s,l,c){angular.extend(this,i("ESExtensionCtrl",{$scope:e})),e.canCertify=!1,e.showNewMessageModal=function(t){return r.login({minData:!0,method:"default"}).then((function(){return a.loading.hide(),!(!t&&!e.formData.profile)||a.alert.confirm("MESSAGE.CONFIRM.USER_HAS_NO_PROFILE").then((function(e){if(e)return!0}))})).then((function(t){return!!t&&s.showMessageCompose({destPub:e.formData.pubkey,destUid:e.formData.name||e.formData.uid}).then((function(e){e&&a.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showSuggestCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),r.auth({minData:!0}).then((function(i){if(a.loading.hide(),i)return i.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"WOT.SUGGEST_CERTIFICATIONS_MODAL.TITLE",help:"WOT.SUGGEST_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(o){if(o&&o.length)return t=o,n.all([l.box.getKeypair(i.keypair),a.alert.confirm("WOT.CONFIRM.SUGGEST_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(a){if(a){var o=a[0];if(a[1]){var r=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(c.send({issuer:i.pubkey,recipient:e.formData.pubkey,time:r,content:[n.uid,n.pubkey].join("-")},o,"certification"))}),[]))}}})).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.showAskCertificationModal=function(){var t;return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){return e.auth({minData:!0})})).then((function(e){if(a.loading.hide(),e)return e.isMember?o.showWotLookup({allowMultiple:!0,enableFilter:!1,title:"WOT.ASK_CERTIFICATIONS_MODAL.TITLE",help:"WOT.ASK_CERTIFICATIONS_MODAL.HELP",okText:"COMMON.BTN_NEXT",okType:"button-positive"}).then((function(i){if(i&&i.length)return t=i,n.all([l.box.getKeypair(e.keypair),a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATIONS",void 0,{okText:"COMMON.BTN_SEND"})]).then((function(i){var o=i&&i[0],r=i&&i[1];if(o&&r){var s=moment().utc().unix();return n.all(t.reduce((function(t,n){return t.concat(c.send({issuer:e.pubkey,recipient:n.pubkey,time:s,content:[e.uid,e.pubkey].join("-")},o,"certification"))}),[])).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))}}))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.askCertification=function(){return e.hideCertificationActionsPopover(),(r.children.count()?o.showSelectWallet({displayBalance:!1}):n.when(r)).then((function(e){return e.auth({minData:!0})})).then((function(t){if(a.loading.hide(),t)return t.isMember?a.alert.confirm("WOT.CONFIRM.ASK_CERTIFICATION",void 0,{okText:"COMMON.BTN_SEND"}).then((function(n){if(n)return c.send({issuer:t.pubkey,recipient:e.formData.pubkey,content:[t.uid,t.pubkey].join("-")},{type:"certification",keypair:t.keypair}).then((function(){a.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(a.onError("INVITATION.ERROR.SEND_INVITATION_FAILED"))})):a.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},e.showCertificationActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/wot/popover_certification_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.certificationActionsPopover=t}})},e.hideCertificationActionsPopover=function(){e.certificationActionsPopover&&(e.certificationActionsPopover.hide(),e.certificationActionsPopover=null)},"buttons-top-fab"===e.extensionPoint&&e.$on("$csExtension.motion",(function(t){e.formData.profile&&e.showFab("fab-compose-"+e.formData.pubkey)}))}function be(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g){angular.extend(this,a("ESLookupPositionCtrl",{$scope:e})),e.search={text:"",results:[],loading:!0,lastRecords:!0,type:null,category:null,location:null,advanced:null,issuer:null,geoDistance:isNaN(p.data.plugins.es.geoDistance)?20:p.data.plugins.es.geoDistance},e.searchTextId="registrySearchText",e.enableFilter=!0,e.smallscreen=angular.isDefined(e.smallscreen)?e.smallscreen:c.screen.isSmall(),e.options=angular.merge(e.options||{},{location:{show:!0,help:"REGISTRY.SEARCH.LOCATION_HELP"}}),e.enter=function(n,i){if(!e.entered||!e.search.results||0===e.search.results.length){if(!e.geoUnit)return r("LOCATION.DISTANCE_UNIT").then((function(t){return e.geoUnit=t,e.enter(n,i)}));var a=function(){e.searchTextId&&t(e.searchTextId),e.entered=!0,e.doSearch()};if(i.stateParams&&i.stateParams.q&&"string"==typeof i.stateParams.q&&(e.search.text=i.stateParams.q),i.stateParams&&i.stateParams.hash&&(e.search.text="#"+i.stateParams.hash),i.stateParams&&i.stateParams.location)e.search.location=i.stateParams.location,i.stateParams.lat&&i.stateParams.lon&&(e.search.geoPoint={lat:parseFloat(i.stateParams.lat),lon:parseFloat(i.stateParams.lon)}),i.stateParams.d&&(e.search.geoDistance=i.stateParams.d);else{var o=p.data.plugins.es.registry&&p.data.plugins.es.registry.defaultSearch;if(o&&(o.location?angular.merge(e.search,p.data.plugins.es.registry.defaultSearch):o=void 0),!o&&m.isLogin()&&m.data.profile){if(!m.isDataLoaded())return c.loading.show(),m.loadData().then((function(){return c.loading.hide(),e.enter(n,i)}));e.search.geoPoint=m.data.profile.geoPoint,e.search.location=m.data.profile.city||(m.data.profile.geoPoint?r.instant("LOCATION.PROFILE_POSITION"):void 0)}}i.stateParams&&(i.stateParams.type||i.stateParams.last)?i.stateParams.last||"last"==i.stateParams.type?(e.search.lastRecords=!0,e.search.type=void 0):e.search.type=i.stateParams.type:e.search.lastRecords=!1,i.stateParams&&i.stateParams.issuer&&(e.search.issuer=i.stateParams.issuer),i.stateParams&&i.stateParams.category?b.category.get({id:i.stateParams.category}).then((function(t){e.search.category=t,a()})).catch(c.onError("REGISTRY.ERROR.LOAD_CATEGORY_FAILED")):a()}e.showFab("fab-add-registry-record")},e.$on("$ionicView.enter",(function(t,n){return e.enter(t,n)})),e.leave=function(){var t=!1;p.data.plugins.es.registry=p.data.plugins.es.registry||{},p.data.plugins.es.registry.defaultSearch=p.data.plugins.es.registry.defaultSearch||{};var i=e.search.location&&e.search.location.trim(),a=p.data.plugins.es.registry.defaultSearch.location;a&&a===i||(p.data.plugins.es.registry.defaultSearch={location:i,geoPoint:i&&e.search.geoPoint?angular.copy(e.search.geoPoint):void 0},t=!0);var o=p.data.plugins.es.geoDistance;o&&o===e.search.geoDistance||(p.data.plugins.es.geoDistance=e.search.geoDistance,t=!0),t&&n((function(){p.store()}))},e.$on("$ionicView.leave",(function(){return e.leave()})),e.onGeoPointChanged=function(){e.search.loading||e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon&&!e.search.geoPoint.exact&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.geoPoint",e.onGeoPointChanged,!0),e.resolveLocationPosition=function(){if(!e.search.loadingPosition)return e.search.loadingPosition=!0,e.searchPosition(e.search.location).then((function(t){if(!t)throw e.search.loading=!1,e.search.results=void 0,e.search.total=0,e.search.loadingPosition=!1,e.search.geoPoint=void 0,"CANCELLED";e.search.geoPoint=t,t.shortName&&!t.exact&&(e.search.location=t.shortName),e.search.loadingPosition=!1}))},e.doGetLastRecords=function(t){return e.hidePopovers(),e.search.text=void 0,e.doSearch(t)},e.doSearchText=function(){e.doSearch(),l.keyboard.close()},e.doSearch=function(t){if(e.search.loading=!t,e.search.location&&e.search.location.length>=3&&!e.search.geoPoint)return e.resolveLocationPosition().then((function(){return e.doSearch(t)}));var n=e.search.text&&e.search.text.trim()||"";e.search.lastRecords=!n||!n.length;var i=[],a=[];if(n&&n.length)if(d.regexp.PUBKEY.test(n))a.push({term:{pubkey:n}});else{var o=(n=n.toLowerCase())?g.util.parseTags(n):void 0;i.push({multi_match:{query:n,fields:["title","description","city","address"],type:"phrase_prefix"}}),i.push({match:{title:{query:n,boost:2}}}),i.push({prefix:{title:n}}),i.push({match:{description:n}}),i.push({nested:{path:"category",query:{bool:{filter:{match:{"category.name":n}}}}}}),o&&o.length&&a.push({terms:{tags:o}})}else e.search.issuer&&a.push({term:{issuer:e.search.issuer}});e.search.type&&a.push({term:{type:e.search.type}}),e.search.category&&a.push({nested:{path:"category",query:{bool:{filter:{term:{"category.id":e.search.category.id}}}}}});var r=e.search.location&&e.search.location.trim().toLowerCase();if(e.search.geoPoint&&e.search.geoPoint.lat&&e.search.geoPoint.lon)if(r&&r.length){var s=r.split(",")[0];a.push({or:[{and:[{not:{exists:{field:"geoPoint"}}},{match_phrase:{city:s}}]},{geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}}]})}else a.push({geo_distance:{distance:e.search.geoDistance+e.geoUnit,geoPoint:{lat:e.search.geoPoint.lat,lon:e.search.geoPoint.lon}}});var l={highlight:{fields:{title:{},description:{},tags:{}}},from:t};return i.length>0&&(l.query=l.query||{bool:{}},l.query.bool.should=i,l.query.bool.minimum_should_match=1),a.length>0&&(l.query=l.query||{bool:{}},l.query.bool.filter=a),e.search.lastRecords&&(l.sort={creationTime:"desc"}),e.updateLocationHref(),e.doRequest(l)},e.doRequest=function(t){(t=t||{}).from=t.from||0,t.size=t.size||10,t.size<10&&(t.size=10),e.search.loading=0===t.from;var n=e.requestId&&e.requestId+1||1;return e.requestId=n,b.record.search(t).then((function(a){if(e.requestId==n){if(!a||!a.hits||!a.hits.length)return e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.loading=!1,void(e.search.hasMore=!1);var o=i("formatSlug");_.forEach(a.hits,(function(e){e.urlTitle=o(e.title)})),t.from?e.search.results=e.search.results.concat(a.hits):(e.search.results=a.hits,e.search.total=a.total),e.search.hasMore=e.search.results.length<a.total,e.search.loading=!1,e.motion.show({selector:".list .item",ink:!0})}})).catch((function(n){e.search.loading=!1,e.search.results=t.from>0?e.search.results:[],e.search.total=t.from>0?e.search.total:0,e.search.hasMore=!1,c.onError("REGISTRY.ERROR.LOOKUP_RECORDS_FAILED")(n)}))},e.showMore=function(){var t=e.search.results?e.search.results.length:0;return e.search.loadingMore=!0,(e.search.lastRecords?e.doGetLastRecords:e.doSearch)(t).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})).catch((function(t){console.error(t),e.search.loadingMore=!1,e.search.hasMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.removeType=function(){e.search.type=null,e.doSearch(),e.updateLocationHref()},e.removeCategory=function(){e.search.category=null,e.category=null,e.doSearch(),e.updateLocationHref()},e.removeLocation=function(){e.search.location=null,e.search.geoPoint=null,e.doSearch(),e.updateLocationHref()},e.updateLocationHref=function(t){t||n((function(){var t=e.search.text&&e.search.text.trim(),n=e.search.location&&e.search.location.trim(),i={location:n&&n.length?n:void 0,category:e.search.category?e.search.category.id:void 0,last:!!e.search.lastRecords||void 0,type:e.search.type?e.search.type:void 0,lat:e.search.geoPoint&&e.search.geoPoint.lat||void 0,lon:e.search.geoPoint&&e.search.geoPoint.lon||void 0,d:e.search.geoPoint&&e.search.geoDistance||void 0};t&&t.match(/^#\w+$/)?i.hash=t.substr(1):t&&t.length&&(i.q=t),o.search(i).replace()}))},e.onToggleAdvanced=function(){e.search.entered&&!e.search.lastRecords&&(e.doSearch(),e.updateLocationHref())},e.$watch("search.advanced",e.onToggleAdvanced,!0),e.toggleAdvanced=function(){e.search.advanced=!e.search.advanced,n(e.hidePopovers,200)},e.showRecordTypeModal=function(t){e.hidePopovers(),n((function(){t.isDefaultPrevented()||u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.search.type=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showCategoryModal=function(t){n((function(){t.isDefaultPrevented()||b.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.search.category=t,e.doSearch(),e.updateLocationHref())}))}),350)},e.showNewPageModal=function(){return e.hidePopovers(),E.showNewPage()},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.filtersPopover=null)},e.showFiltersPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/registry/lookup_popover_filters.html",scope:e,autoremove:!0,afterShow:function(t){e.filtersPopover=t}})},e.hideFiltersPopover=function(){e.filtersPopover&&(e.filtersPopover.hide(),e.filtersPopover=null)},e.hidePopovers=function(){e.hideActionsPopover(),e.hideFiltersPopover()}}function ge(e,t,n,i,a,o){var r;angular.extend(this,t("ESRegistryLookupCtrl",{$scope:e})),e.searchTextId=void 0,e.enter=function(t,a){return e.entered?a.stateParams&&a.stateParams.refresh?n(e.doSearch,2e3):void 0:(r=a.stateParams&&a.stateParams.id?o.children.get(a.stateParams.id):o)?r.login({minData:!0}).then((function(t){i.loading.hide(),e.search.issuer=t.pubkey,e.search.advanced=!0,n(e.doSearch,100),e.showFab("fab-wallet-add-registry-record")})):(i.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.doUpdate=function(){if(r&&r.isLogin())return e.search.issuer=o.data.pubkey,e.search.advanced=!0,e.doSearch()},e.showNewPageModal=function(){return e.hidePopovers(),a.showNewPage({wallet:r})}}function fe(e,t,n,i,a,o,r,s,l,c,u,d,p,m){e.formData={},e.id=null,e.category={},e.pictures=[],e.canEdit=!1,e.showTransfer=!1,e.loading=!0,e.motion=p.motion.fadeSlideIn,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!p.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),e.$broadcast("$recordView.enter",i)):n.go("app.wot_lookup.tab_registry")})),e.$on("$ionicView.beforeLeave",(function(t,n){e.$broadcast("$recordView.beforeLeave",n)})),e.load=function(t,o){return t=t||e.id,e.loading=!0,i.all([d.record.load(t).then((function(t){e.id=t.id,e.formData=t.record,e.canEdit=u.isUserPubkey(e.formData.issuer)||u.children.hasPubkey(e.formData.issuer),e.showTransfer=!e.canEdit&&e.formData.pubkey,e.issuer=t.issuer,e.avatar=e.formData.avatar,e.avatarStyle=e.formData.avatar&&{"background-image":'url("'+e.avatar.src+'")'},p.loading.hide(),e.loading=!1,e.motion.show({selector:".list > .item, .list > ng-if > .item"})})).catch((function(a){e.secondTry?(e.loading=!1,a&&404===a.ucode?(p.toast.show("REGISTRY.ERROR.RECORD_NOT_EXISTS"),n.go("app.wot_lookup.tab_registry")):p.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(a)):(e.secondTry=!0,i((function(){e.load(t)}),100))})),d.record.picture.all({id:t}).then((function(t){e.pictures=t._source.pictures&&t._source.pictures.reduce((function(e,t){return e.concat(m.image.fromAttachment(t.file))}),[]),e.pictures.length>0&&e.motion.show({selector:".lazy-load .item.card-gallery",startVelocity:3e3})})).catch((function(){e.pictures=[]})),a((function(){return e.$broadcast("$recordView.load",t,d.record.comment)}))]).then((function(){e.motion.show({selector:".lazy-load .item",startVelocity:3e3}),o&&a((function(){l(o)}),1e3)}))},e.edit=function(){var t=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);if(t)return p.loading.show(),n.go("app.registry_edit_record",{id:e.id,wallet:t.id})},e.delete=function(){e.hideActionsPopover();var t,i=u.isUserPubkey(e.formData.issuer)?u:u.children.getByPubkey(e.formData.issuer);i&&s(["REGISTRY.VIEW.REMOVE_CONFIRMATION","REGISTRY.INFO.RECORD_REMOVED"]).then((function(e){return t=e,p.alert.confirm(e["REGISTRY.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&d.record.remove(e.id,{wallet:i}).then((function(){i.data.pages&&i.data.pages.count&&i.data.pages.count--,r.nextViewOptions({historyRoot:!0}),i.isDefault()?n.go("app.wallet_pages",{refresh:!0}):n.go("app.wallet_pages_by_id",{refresh:!0,id:i.id}),p.toast.show(t["REGISTRY.INFO.RECORD_REMOVED"])})).catch(p.onError("REGISTRY.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){p.popover.show(t,{templateUrl:"plugins/es/templates/registry/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(i){e.hideActionsPopover();var a=e.formData.title,o=(c.shareBaseUrl||t.rootPath)+n.href("app.view_page",{title:a,id:e.id});p.screen.isSmall()&&(i=angular.element(document.querySelector("#registry-share-anchor-"+e.id))||i),p.popover.share(i,{bindings:{url:o,titleKey:"REGISTRY.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:a},time:e.formData.time,postMessage:a}})}}function _e(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E;angular.extend(this,s("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.id=null,e.avatar=null,e.pictures=[],e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,n){if(e.loading)return(E=n.stateParams&&n.stateParams.wallet&&"default"!=n.stateParams.wallet?d.children.get(n.stateParams.wallet):d)?E.login({minData:!0}).then((function(t){e.walletData=t,n.stateParams&&n.stateParams.id?e.load(n.stateParams.id):n.stateParams&&n.stateParams.type&&e.updateView({record:{type:n.stateParams.type}}),o("registry-record-title")})):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())})),e.$on("$stateChangeStart",(function(t,i,o,r){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(a.nextViewOptions({historyRoot:!0}),n.go(i.name,o))})).catch((function(e){}))})),e.load=function(t){e.loading=!0,m.record.load(t,{raw:!0}).then((function(t){t&&t.record?e.updateView(t):e.updateView({record:{}})})).catch((function(t){c.loading.hide(10),e.loading=!1,c.onError("REGISTRY.ERROR.LOAD_RECORD_FAILED")(t)}))},e.updateView=function(n){e.formData=n.record||{},e.id=n.id,e.avatar=e.formData.avatar,e.avatar?(e.avatarStyle=e.avatar&&{"background-image":'url("'+e.avatar.src+'")'},e.avatarClass={}):(e.avatarStyle=void 0,e.avatarClass={},e.avatarClass["cion-page-"+e.formData.type]=!e.avatar),e.pictures=n.record&&n.record.pictures||[],delete n.record.pictures,e.motion.show({selector:".animate-ripple .item, .card-gallery",startVelocity:3e3}),c.loading.hide(),t((function(){e.loading=!1}),1e3)},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.needCategory=function(){return e.formData.type&&("company"==e.formData.type||"shop"==e.formData.type)},e.save=function(o,s){if(e.form.$submitted=!0,e.saving||!e.form.$valid||("shop"===e.formData.type||"company"===e.formData.type)&&(!e.formData.category||!e.formData.category.id))return i.reject();if(!s)return console.debug("[ES] [page] Waiting debounce end, before saving..."),t((function(){return e.save(o,!0)}),650);e.saving=!0,console.debug("[ES] [page] Saving record...");var l=i.when();return o||(l=c.loading.show()),l.then((function(){var t=e.formData;return e.needCategory()||delete t.category,t.time=moment().utc().unix(),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.picturesCount=e.pictures.length,t.picturesCount>0?t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:p.image.toAttachment(t)})}),[]):t.pictures=[],e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(e){return t.avatar=p.image.toAttachment({src:e}),t})):(t.avatar={_content:"",_content_type:""},t)})).then((function(t){return e.id?m.record.update(t,{id:e.id,wallet:E}):m.record.add(t,{wallet:E})})).then((function(t){return console.info("[ES] [page] Record successfully saved."),!e.id&&E.data.pages&&E.data.pages.count&&d.data.pages.count++,e.id=e.id||t,e.saving=!1,e.dirty=!1,o||(c.loading.hide(),r("REGISTRY.INFO.RECORD_SAVED").then((function(e){c.toast.show(e)}))),a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),n.go("app.view_page",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,c.onError("REGISTRY.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){l.camera.getPicture().then((function(t){t&&e.pictures.push({src:"data:image/png;base64,"+t})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED"))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.fileChanged=function(t){return c.loading.show(),i((function(n,i){var a=t.target.files[0];c.image.resizeFile(a).then((function(t){e.pictures.push({src:t}),c.loading.hide(),n()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){a.goBack()},e.showAvatarModal=function(){return l.camera.enable?l.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):u.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.avatarClass={})}))},e.showRecordTypeModal=function(){u.show("plugins/es/templates/registry/modal_record_type.html").then((function(t){t&&(e.formData.type=t,e.avatar||(e.avatarClass["cion-page-"+t]=!0),e.doSearch(),e.updateLocationHref())}))},e.showCategoryModal=function(t){m.category.all().then((function(e){return u.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(t){t&&t.parent&&(e.formData.category=t,e.doSearch(),e.updateLocationHref())}))}}function Te(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b;angular.extend(this,r("ESPositionEditCtrl",{$scope:e})),e.formData={title:null,description:null,socials:[],geoPoint:null},e.loading=!0,e.dirty=!1,e.walletData=null,e.avatar=null,e.existing=!1,e.socialData={url:null},e.socialReorder=!0,e.enter=function(t,n){return(b=n.stateParams&&n.stateParams.id?u.children.get(n.stateParams.id):u)?(e.walletId=b.id,b.auth({minData:!0}).then(e.load).catch((function(t){if("CANCELLED"==t)return c.loading.hide(10),void e.cancel();c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))):(c.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome())},e.$on("$ionicView.enter",e.enter),e.$on("$stateChangeStart",(function(t,n,a,o){if(e.dirty&&!e.saving&&(t.preventDefault(),!e.loading))return e.loading=!0,c.alert.confirm("CONFIRM.SAVE_BEFORE_LEAVE","CONFIRM.SAVE_BEFORE_LEAVE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES_SAVE"}).then((function(t){return e.loading=!1,t?(e.form.$submitted=!0,e.save(!1,!0).then((function(t){return t&&(e.dirty=!1),t}))):(e.dirty=!1,!0)})).then((function(e){e&&(s.nextViewOptions({historyRoot:!0}),i.go(n.name,a))})).catch((function(e){}))})),e.load=function(t){return e.loading=!0,p.get(t.pubkey,{raw:!0}).then((function(i){return i?(e.avatar=d.image.fromAttachment(i.source.avatar),e.existing=!0,e.updateView(t,i.source)):(e.avatar=void 0,e.existing=!1,e.updateView(t,{})),c.loading.hide(),n((function(){e.loading=!1}),1e3)})).then((function(){a("profile-name")})).catch(c.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED"))},e.setForm=function(t){e.form=t},e.updateView=function(t,n){e.walletData=t,e.formData=n,n.avatar&&(e.avatarStyle={"background-image":'url("'+e.avatar.src+'")'}),e.motion.show()},e.onFormDataChanged=function(){e.loading||(e.dirty=!0)},e.$watch("formData",e.onFormDataChanged,!0),e.save=function(i,a){if(e.form.$invalid||!e.walletData||e.saving&&!a)return t.reject();if(!a)return e.saving=!0,n((function(){return e.save(i,!0)}),650);console.debug("[ES] [profile] Saving user profile..."),i||c.loading.show();var r=function(t){return function(n){e.saving=!1,c.onError(t)(n)}},s=function(t){t&&(e.walletData.name=t.title,e.avatar?e.walletData.avatar=e.avatar:delete e.walletData.avatar,e.walletData.profile=angular.copy(t),e.walletData.profile.description=d.util.parseAsHtml(t.description))},l=function(){if(!i)return c.loading.hide(),o("PROFILE.INFO.PROFILE_SAVED").then((function(e){c.toast.show(e)}))},u=function(t){return t.socials&&t.socials.length&&(t.socials=_.uniq(t.socials,!1,(function(e){return e.url}))),t.position&&(t.position=null),t.geoPoint&&t.geoPoint.lat&&t.geoPoint.lon?(t.geoPoint.lat=parseFloat(t.geoPoint.lat),t.geoPoint.lon=parseFloat(t.geoPoint.lon)):t.geoPoint=null,e.existing?p.update(t,{id:e.walletData.pubkey,wallet:b}).then((function(){return console.info("[ES] Profile successfully updated."),e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED")):p.add(t,{wallet:b}).then((function(){return console.info("[ES] [profile] Successfully created."),e.existing=!0,e.saving=!1,e.dirty=!1,s(t),l(),!0})).catch(r("PROFILE.ERROR.SAVE_PROFILE_FAILED"))};return e.avatar&&e.avatar.src?c.image.resizeSrc(e.avatar.src,!0).then((function(t){return e.formData.avatar=d.image.toAttachment({src:t}),u(e.formData)})):(delete e.formData.avatar,u(e.formData))},e.saveAndClose=function(){return e.save().then((function(t){t&&e.close()}))},e.submitAndSaveAndClose=function(){e.form.$submitted=!0,e.saveAndClose()},e.cancel=function(){return e.dirty=!1,b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet")):i.go("app.view_wallet_by_id",{id:b.id})},e.close=function(){return b.isDefault()?(s.nextViewOptions({historyRoot:!0}),i.go("app.view_wallet",{refresh:!0})):i.go("app.view_wallet_by_id",{refresh:!0,id:b.id})},e.showAvatarModal=function(){return E.camera.enable?E.camera.getPicture().then((function(t){t&&(e.avatar={src:"data:image/png;base64,"+t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)})).catch(c.onError("ERROR.TAKE_PICTURE_FAILED")):m.show("plugins/es/templates/common/modal_edit_avatar.html","ESAvatarModalCtrl",{}).then((function(t){t&&(e.avatar={src:t},e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0)}))},e.rotateAvatar=function(){if(e.avatar&&e.avatar.src&&!e.rotating)return e.rotating=!0,c.image.rotateSrc(e.avatar.src).then((function(t){e.avatar.src=t,e.avatarStyle={"background-image":'url("'+t+'")'},e.dirty=!0,e.rotating=!1})).catch((function(t){console.error(t),e.rotating=!1}))},e.removeProfile=function(){return e.hideActionsPopover(),e.existing&&b.auth({minData:!0}).then((function(t){c.loading.hide(),c.alert.confirm("PROFILE.CONFIRM.DELETE",void 0,{okText:"COMMON.BTN_DELETE"}).then((function(i){if(i)return console.debug("[ES] [profile] Deleting user profile..."),c.loading.show(),p.remove(t.pubkey,{wallet:b}).then((function(){return b.isDefault()&&(t.name=null),t.profile=null,t.avatar=null,console.debug("[ES] [profile] Successfully deleted"),e.dirty=!1,e.close()})).then((function(){return n((function(){c.toast.show("PROFILE.INFO.PROFILE_REMOVED")}),750)})).catch(c.onError("PROFILE.ERROR.REMOVE_PROFILE_FAILED"))}))}))},e.showActionsPopover=function(t){c.popover.show(t,{templateUrl:"plugins/es/templates/user/edit_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function he(e,t,n,i,a,o,r,s,l,c){var u,d=!1;e.search={loading:!0,results:[],hasMore:!1,loadingMore:!1,limit:40,type:"last",text:null,options:{}},e.fabButtonNewMessageId=void 0,e.enter=function(t,n){if(e.search.loading){if(!(u=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return l.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id,u.auth({minData:!0}).then((function(){e.entered||(e.entered=!0,e.type=e.type||n.stateParams&&n.stateParams.type||"inbox",e.load()),e.fabButtonNewMessageId&&e.showFab(e.fabButtonNewMessageId)})).catch((function(t){"CANCELLED"===t&&(i.nextViewOptions({historyRoot:!0}),e.showHome())}))}else e.updateView()},e.$on("$ionicView.enter",e.enter),e.load=function(t,n,i){var a=angular.copy(e.search.options);return a.from=a.from||t||0,a.size=a.size||n||40,a.type=e.type,a.summary=!1,a.filter="text"==e.search.type&&e.search.text&&e.search.text.trim().length>0?e.search.text:void 0,a.wallet=u,e.search.loading=!i,c.load(a).then((function(t){a.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],l.loading.hide(),e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,a.from||(e.search.results=[]),e.search.hasMore=!1,l.onError("MESSAGE.ERROR.LOAD_MESSAGES_FAILED")(t)}))},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-messages .list .item"}),e.$broadcast("$$rebind::rebind")},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.markAllAsRead=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.MARK_ALL_AS_READ").then((function(t){t&&c.markAllAsRead().then((function(){_.forEach(e.search.results,(function(e){e.read=!0}))})).catch(l.onError("MESSAGE.ERROR.MARK_ALL_AS_READ_FAILED"))}))},e.delete=function(t){var n=e.search.results[t];n&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(i){i&&c.remove(n.id,e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(t,1),e.updateView(),l.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.deleteAll=function(){e.hideActionsPopover(),e.search.results&&e.search.results.length&&l.alert.confirm("MESSAGE.CONFIRM.REMOVE_ALL").then((function(t){t&&c.removeAll(e.type,{walletId:e.walletId}).then((function(){e.search.results.splice(0,e.search.results.length),e.updateView(),l.toast.show("MESSAGE.INFO.All_MESSAGE_REMOVED")})).catch(l.onError("MESSAGE.ERROR.REMOVE_All_MESSAGES_FAILED"))}))},e.doSearchLast=function(){return e.search.type="last",e.search.loadingMore=!1,e.search.limit=40,e.load()},e.doSearch=function(){if(e.search.text&&!(e.search.text.length<3))return e.search.type="text",e.search.loadingMore=!1,e.search.results=[],e.search.limit=40,console.debug("[message] [{0}] Searching for: {1}".format(e.type,e.search.text)),e.load()},e.refresh=function(t){return d=!0,e.load(void 0,void 0,t).then((function(){d=!1})).catch((function(){d=!1}))},e.select=function(n,i){if(!(i.isDefaultPrevented()||e.search.loading||d))return o((function(){if(!d&&!i.isDefaultPrevented())return i.preventDefault(),"default"===e.walletId?t.go("app.user_view_message",{type:e.type,messageId:n.id}):t.go("app.user_view_message_by_id",{type:e.type,messageId:n.id,id:e.walletId})}),200)},e.showNewMessageModal=function(t){return u.login({minData:!0}).then((function(){return l.loading.hide(),(t=t||{}).wallet=e.walletId,s.showMessageCompose(t).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}))},e.showReplyModal=function(t){var i=e.search.results[t];i&&n("MESSAGE.REPLY_TITLE_PREFIX").then((function(t){var n=i.content?i.content.replace(/^/g," > "):null;return n=(n=n?n.replace(/\n/g,"\n > "):null)?n+"\n":null,s.showMessageCompose({destPub:i.issuer,destUid:i.name||i.uid,title:t+i.title,content:n,isReply:!0,wallet:e.walletId})})).then((function(e){e&&l.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/es/templates/message/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.onMessageDelete=function(t){var n=_.findIndex(e.search.results,(function(e){return e.id==t}));n&&e.search.results.splice(n,1),e.updateView()},c.api.data.on.delete(e,e.onMessageDelete),e.onNewOutboxMessage=function(t){if("outbox"===e.type)return e.search.loading=!0,o((function(){return c.get(t,e.type,{summary:!0,wallet:u})}),500).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.loading=!1}))},c.api.data.on.sent(e,e.onNewOutboxMessage),e.onNewInboxMessage=function(t){if("inbox"===e.type&&e.entered&&u.isUserPubkey(t.issuer))return e.search.loading=!0,c.get(t.id,e.type,{summary:!0,wallet:u}).then((function(t){e.search.results.splice(0,0,t),e.search.loading=!1,e.updateView()})).catch((function(){e.search.loading=!1}))},c.api.data.on.new(e,e.onNewInboxMessage),e.onUnauth=function(){e.search.results=void 0,e.search.loading=!1,e.entered=!1},r.api.data.on.unauth(e,e.onUnauth)}function ve(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="inbox",e.fabButtonNewMessageId="fab-add-message-record-inbox"}function Ie(e,t){angular.extend(this,t("ESMessageAbstractListCtrl",{$scope:e})),e.type="outbox",e.fabButtonNewMessageId="fab-add-message-record-outbox"}function Ne(e,t){angular.extend(this,t("ESMessageComposeModalCtrl",{$scope:e,parameters:{}})),e.enter=function(t,n){return n&&n.stateParams&&e.setParameters(n.stateParams),e.load().then(UIUtils.loading.hide)},e.$on("$ionicView.enter",e.enter),e.cancel=function(){e.sending=!1,e.showHome()},e.setForm=function(t){e.form=t},e.closeModal=function(){e.sending=!1,e.showHome()}}function Oe(e,t,n,i,a,o,r){var s;e.formData={title:null,content:null,destPub:null,walletId:null},e.destUid=null,e.destPub=null,e.isReply=!1,e.enableSelectWallet=!0,e.sending=!1,e.setParameters=function(t){t&&((t.pubkey||t.destPub)&&(e.formData.destPub=t.pubkey||t.destPub,t.uid||t.destUid?(e.destUid=t.uid||t.destUid,e.destPub=""):(e.destUid="",e.destPub=e.formData.destPub)),t.title&&(e.formData.title=t.title),t.content&&(e.formData.content=t.content),e.isReply=t.isReply||!1,t.wallet&&(e.formData.walletId=t.wallet))},e.setParameters(r),e.load=function(){return e.enableSelectWallet=i.children.count()>0,(s=e.enableSelectWallet&&(e.formData.walletId?i.children.get(e.formData.walletId):i)||i).isDefault()?console.debug("[message] Using default wallet"):console.debug("[message] Using {"+s.id+"} wallet"),s.login({minData:!0,silent:!0}).then((function(t){e.walletData=t})).catch((function(t){"CANCELLED"===t&&e.cancel()}))},e.$on("modal.shown",e.load),e.doSend=function(t){if(e.form.$submitted=!0,e.form.$valid){if(!(t||e.formData.content&&e.formData.content.trim().length))return n.alert.confirm("MESSAGE.COMPOSE.CONTENT_CONFIRMATION").then((function(t){t&&e.doSend(!0)}));e.sending=!0,n.loading.show();var i={issuer:s.data.pubkey,recipient:e.formData.destPub,title:e.formData.title,content:e.formData.content,time:moment().utc().unix()};o.send(i,{wallet:s}).then((function(t){e.id=t,n.loading.hide(),e.closeModal(t)})).catch((function(t){e.sending=!1,"CANCELLED"!==t?n.onError("MESSAGE.ERROR.SEND_MSG_FAILED")(t):n.loading.hide()}))}},e.cancel=function(){e.closeModal()},e.showWotLookupModal=function(){t.showWotLookup().then((function(t){t&&(t.uid?(e.destUid=t.uid,e.destPub=""):(e.destUid="",e.destPub=t.pubkey),e.destName=t.name||t.uid,e.formData.destPub=t.pubkey)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return t.showSelectWallet({showDefault:!0,showBalance:!1}).then((function(t){!t||s&&s.id===t.id||(s=t,e.walletData=s.data,console.debug("[message] Using {"+s.id+"} wallet"))}))}}function Re(e,t,n,i,a,o,r,s,l,c){var u;e.formData={},e.id=null,e.loading=!0,e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!r.screen.isSmall()||t.enableBack})),e.enter=function(t,i){if(e.loading){if(!(u=i.stateParams&&i.stateParams.id?c.children.get(i.stateParams.id):c))return r.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.isDefaultWallet=u.isDefault(),e.walletId=u.id;var a=i.stateParams&&i.stateParams.messageId;if(e.type=i.stateParams.type||"inbox",angular.isUndefined(a))return void e.goBack();u.auth({minData:!0}).then((function(){return e.load(a,e.type)})).then((function(t){r.loading.hide(),t&&(e.updateView(t),e.showFab("fab-view-message-reply"),t.read||n((function(){e.id===t.id&&l.markAsRead(t,{type:e.type,wallet:u}).then((function(){console.debug("[message] marked as read")})).catch(r.onError("MESSAGE.ERROR.MARK_AS_READ_FAILED"))}),2e3))}))}},e.$on("$ionicView.enter",e.enter),e.load=function(t,n){return n=n||"inbox",l.get(t,n,{wallet:u}).catch(r.onError("MESSAGE.ERROR.LOAD_MESSAGE_FAILED")).then((function(t){return t.valid?t:r.alert.error(e.isUserPubkey(t.recipient)?"MESSAGE.ERROR.NOT_AUTHENTICATED_MESSAGE":"MESSAGE.ERROR.USER_NOT_RECIPIENT","MESSAGE.ERROR.MESSAGE_NOT_READABLE").then((function(){e.goBack(!0)}))}))},e.updateView=function(t){e.loading=!1,e.id=t.id,e.formData=t,e.canDelete=!0,e.motion.show({selector:".view-message .list .item"})},e.delete=function(){e.actionsPopover&&e.actionsPopover.hide(),r.alert.confirm("MESSAGE.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(e.id,e.type,{wallet:u}).then((function(){e.goBack(!0),r.toast.show("MESSAGE.INFO.MESSAGE_REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_MESSAGE_FAILED"))}))},e.goBack=function(n){n&&a.clearCache(a.currentView().stateId),a.nextViewOptions({historyRoot:!0}),e.isDefaultWallet?e.type&&t.go("app.user_message.tab_"+e.type,{type:e.type}):e.type&&t.go("app.user_messages_by_id.tab_"+e.type,{type:e.type,id:e.walletId})},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/message/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showReplyModal=function(){var t="inbox"===e.type?"issuer":"recipient";i("MESSAGE.REPLY_TITLE_PREFIX").then((function(n){var i=e.formData.content?e.formData.content.replace(/^/g," > "):null;return i=(i=i?i.replace(/\n/g,"\n > "):null)?i+"\n":null,s.showMessageCompose({destPub:e.formData[t],destUid:e.formData.name||e.formData.uid,title:n+e.formData.title,content:i,isReply:!0,walletId:u.id})})).then((function(e){e&&r.toast.show("MESSAGE.INFO.MESSAGE_SENT").then((function(){a.goBack()}))}))}}function Ae(e,t,n,i,a,o,r,s){var l;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40},e.$on("popover.shown",(function(){e.search.loading&&((l=e.walletId&&i.children.get(e.walletId)||i).isDefault()&&(l.api.data.on.logout(e,e.resetData),o.api.data.on.new(e,e.onNewMessageNotification)),e.load())})),e.load=function(n,i){var a={};return a.from=n||0,a.size=i||40,o.notifications.load(a).then((function(t){e.search.results=n?e.search.results.concat(t):t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("MESSAGE.ERROR.LOAD_NOTIFICATIONS_FAILED")(i)}))},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".popover-notification .item"})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit=2*e.search.limit,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewMessageNotification=function(t){e.search.loading||e.search.loadingMore||l.isUserPubkey(t.issuer)&&(e.search.results.splice(0,0,t),e.updateView())},e.select=function(t){t.read||(t.read=!0),"default"===e.walletId?n.go("app.user_view_message",{messageId:t.id}):n.go("app.user_view_message_by_id",{messageId:t.id,id:e.walletId}),e.closePopover(t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [messages] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showNewMessageModal=function(n){e.closePopover(),s((function(){(n=n||{}).walletId=l.id,r.showMessageCompose(n).then((function(e){e&&t.toast.show("MESSAGE.INFO.MESSAGE_SENT")}))}),500)},a.api.node.on.stop(e,e.resetData),a.api.node.on.start(e,e.load)}function Se(e,t,n,i,a,o,r,s){var l;e.preventSelect=!1,e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:40,options:{codes:{excludes:s.constants.EXCLUDED_CODES}}},e.listeners=[],e.setWallet=function(e){l=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(l=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return a.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.login({minData:!0}).then((function(){return e.load(),a.loading.hide(),e.addListeners(),i((function(){e.resetUnreadCount()}),1e3)}))}})),e.refresh=function(t){return e.load(void 0,void 0,t)},e.load=function(t,n,i){if((l=l||r).data.pubkey){e.search.preventSelect=!0;var o=angular.copy(e.search.options);return o.from=o.from||t||0,o.size=o.size||n||40,o.pubkey=l.data.pubkey,e.search.loading=!i,s.load(o).then((function(t){o.from?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.preventSelect=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(t){e.search.loading=!1,o.from||(e.search.results=[]),e.search.preventSelect=!1,e.search.hasMore=!1,a.onError("COMMON.NOTIFICATIONS.LOAD_NOTIFICATIONS_FAILED")(t)}))}e.search.loading=!0},e.updateView=function(){e.motion&&e.motion.ionListClass&&e.search.results.length&&e.motion.show({selector:".view-notification .item"})},e.markAllAsRead=function(){if(e.hideActionsPopover(),!l.isAuth())return l.auth().then((function(){return a.loading.hide(),e.markAllAsRead()}));e.search.results.length&&a.loading.show().then((function(){l.data.notifications.unreadCount=0;var t=e.search.results[0];return l.data.notifications.time=t?t.time:0,_.forEach(e.search.results,(function(e){e.markAsRead&&"function"==typeof e.markAsRead&&e.markAsRead()})),a.loading.hide()}))},e.resetUnreadCount=function(){if(e.search.loading||!l.data.notifications)return i(e.resetUnreadCount,2e3);if(l.data.notifications.unreadCount&&e.search.results&&e.search.results.length){l.data.notifications.unreadCount=0;var t=e.search.results[0],n=t.time?t.time:0;!n||l.data.notifications.time&&l.data.notifications.time==n||(l.data.notifications.time=n,l.storeData())}},e.select=function(t,a){e.search.loading||t.preventDefault()||e.search.preventSelect||(a.markAsRead&&"function"==typeof a.markAsRead&&i(a.markAsRead),a.state&&n.go(a.state,a.stateParams))},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewNotification=function(t){if(!e.search.loading&&!e.search.loadingMore){var n=_.findIndex(e.search.results,(function(e){return t.time>e.time}));n<0&&(n=0),e.search.results.splice(n,0,t),e.updateView()}},e.resetData=function(){e.search.loading||(console.debug("[ES] [notifications] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/notification/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!l)throw"Controller wallet not set !";e.listeners=[o.api.node.on.stop(e,e.resetData),o.api.node.on.start(e,e.load),l.api.data.on.logout(e,e.resetData)],l.isDefault()&&e.listeners.push(s.api.data.on.new(e,e.onNewNotification))},e.removeListeners=function(){_.forEach(e.listeners,(function(e){e()})),e.listeners=[]}}function Ce(e,t,n,i,a,o){angular.extend(this,n("NotificationsCtrl",{$scope:e})),e.motion=null,e.setWallet(o),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){e.search.results.length&&t((function(){a.ink({selector:".popover-notification .item.ink"})}),100)},e.$on("popover.hidden",e.resetUnreadCount),e.select=function(t,n){!t.preventDefault()&&n&&(n.markAsRead&&"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&i.go(n.state,n.stateParams),e.closePopover(n))}}function Le(e,t,n,i,a,o){angular.extend(this,t("BlockLookupCtrl",{$scope:e})),e.search.text=null,e.search.type="last",e.search.sort=void 0,e.search.asc=!0,e.searchTextId="blockchainSearchText",e.compactMode=!0,e.enableFilter=!0,e.doSearchText=function(){if(!(e.search.text&&e.search.text.trim().length||e.search.filters&&e.search.filters.length))return e.doSearchLast();e.search.type="text",e.doSearch(),i.search({q:e.search.query}).replace()},e.doSearchLast=function(){e.hideActionsPopover(),e.search.type="last",e.search.sort=void 0,e.doSearch(),i.search({q:void 0}).replace()},e.doSearch=function(t){if(!e.search.error){var n;t=angular.isDefined(t)?t:0;var i={};if(e.search.loading=0===t,i.size=e.defaultSizeLimit,"last"==e.search.type)i.from=0===t?0:t+1,e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={number:"desc"},i.excludeCurrent=0===t,n=o.block.search(e.currency,i);else if("text"==e.search.type){var r=o.block.parseSearchText(e.search.text,e.search.filters);e.search.filters=r.filters;var s=e.search.filters.reduce((function(e,t){return e+" AND "+t.text}),"");r.text.length&&(s+=" AND "+r.text),e.search.query=s.substr(5),e.search.text=r.text,i.from=t,e.search.sort?i.sort=e.search.sort+":"+(e.search.asc?"asc":"desc"):i.sort="number:desc",i.excludeCurrent=!0,n=o.block.searchText(e.currency,e.search.query,i)}var l=Date.now();return n.then((function(t){return e.doPrepareResult(t.hits).then((function(){return t}))})).then((function(n){e.showPubkey="issuer"==e.search.sort,e.search.took=0===t?Date.now()-l:e.search.took;var i=0===t?n.total:e.search.total;e.doDisplayResult(n.hits,t,i),e.search.loading=!1})).catch((function(t){e.search.error=!0,e.search.loading=!1,a.onError("BLOCKCHAIN.ERROR.SEARCH_BLOCKS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.doSearch()},e.showHelpTip=function(){},e.showActionsPopover=function(t){a.popover.show(t,{templateUrl:"plugins/es/templates/blockchain/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.itemRemove=function(t){e.search.filters.splice(t,1),e.doSearchText()},e.toggleShowQuery=function(){e.showQuery=!e.showQuery}}function De(e,t,n,i,a,o,r,s,l,c,u,d,p){e.networkStarted=!1,e.ionItemClass="",e.expertMode=c.data.expertMode&&!s.screen.isSmall(),e.isHttps="https:"===a.location.protocol,e.search={text:"",loading:!0,online:!0,results:[],endpointFilter:r.constants.ES_USER_API,sort:void 0,asc:!0},e.listeners=[],e.helptipPrefix="helptip-network",e.enableLocationHref=!0,e.removeListeners=function(){e.listeners.length&&(console.debug("[ES] [network] Closing listeners"),_.forEach(e.listeners,(function(e){e()})),e.listeners=[])},e.enter=function(t,n){e.networkStarted||(e.networkStarted=!0,e.search.loading=!0,u.get().then((function(t){t&&(e.node=r.node.same(t.node.host,t.node.port)?r:r.instance(t.node.host,t.node.port),n&&n.stateParams&&("true"==n.stateParams.online&&(e.search.online=!0),n.stateParams.expert&&(e.expertMode="true"==n.stateParams.expert)),e.load())})).catch((function(t){s.onError("ERROR.GET_CURRENCY_FAILED")(t),e.networkStarted=!1})))},e.$on("$ionicParentView.enter",e.enter),e.leave=function(){e.networkStarted&&(e.removeListeners(),d.close(),e.networkStarted=!1,e.search.loading=!0)},e.$on("$ionicView.beforeLeave",e.leave),e.$on("$ionicParentView.beforeLeave",e.leave),e.$on("$destroy",e.leave),e.computeOptions=function(){return{filter:{member:!e.search.type||"member"===e.search.type,mirror:!e.search.type||"mirror"===e.search.type,endpointFilter:angular.isDefined(e.search.endpointFilter)?e.search.endpointFilter:null,online:e.search.online&&!0},sort:{type:e.search.sort,asc:e.search.asc},expertMode:e.expertMode,timeout:l.timeout&&(e.expertMode?l.timeout/10:l.timeout/100)}},e.load=function(){e.search.loading&&(d.start(e.node,e.computeOptions()),e.refreshing=!1,e.listeners.push(d.api.data.on.changed(e,(function(t){e.refreshing||(e.refreshing=!0,p.extendAll(t.peers).then((function(){e.networkStarted&&e.updateView(t),e.refreshing=!1})))})))),e.showHelpTip()},e.updateView=function(t){console.debug("[peers] Updating UI"),e.$broadcast("$$rebind::rebind"),e.search.results=t.peers,e.search.memberPeersCount=t.memberPeersCount,e.search.loading=!e.networkStarted||d.isBusy(),e.motion&&e.search.results&&e.search.results.length>0&&e.motion.show({selector:".item-peer"}),e.loading||e.$broadcast("$$rebind::rebind")},e.refresh=function(){e.search.loading=!0,d.loadPeers()},e.sort=function(){e.search.loading=!0,e.refreshing=!0,d.sort(e.computeOptions()),e.updateView(d.data)},e.toggleOnline=function(t){e.hideActionsPopover(),e.search.online=!1!==t,d.close(),e.search.loading=!0,e.load(),e.enableLocationHref&&n.search({online:e.search.online}).replace()},e.toggleSearchEndpoint=function(t){e.hideActionsPopover(),e.search.endpointFilter===t||null===t?e.search.endpointFilter=null:e.search.endpointFilter=t,e.sort()},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.sort()},e.selectPeer=function(e){if(e.online){var n={server:e.getServer()};e.isSsl()&&(n.ssl=!0),e.isTor()&&(n.tor=!0),t.go("app.view_es_peer",n)}},e.$on("csView.action.refresh",(function(t,n){"peers"===n&&e.refresh()})),e.$on("csView.action.showActionsPopover",(function(t,n){e.showActionsPopover(n)})),e.showActionsPopover=function(t){e.actionsPopover?e.actionsPopover.show(t):i.fromTemplateUrl("templates/network/lookup_popover_actions.html",{scope:e}).then((function(n){e.actionsPopover=n,e.$on("$destroy",(function(){e.actionsPopover.remove()})),e.actionsPopover.show(t)}))},e.hideActionsPopover=function(){e.actionsPopover&&e.actionsPopover.hide()},e.showEndpointsPopover=function(e,t,n){var i=t.getEndpoints(n);(i=(i||[]).reduce((function(e,n){var i=r.node.parseEndPoint(n);return e.concat({label:"NETWORK.VIEW.NODE_ADDRESS",value:t.getServer()+(i.path||"")})}),[])).length&&(s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS."+n,items:i}}),e.stopPropagation())},e.showWs2pPopover=function(e,t){return e.stopPropagation(),o("NETWORK.VIEW.PRIVATE_ACCESS").then((function(n){s.popover.show(e,{templateUrl:"templates/network/popover_endpoints.html",bindings:{titleKey:"NETWORK.VIEW.ENDPOINTS.WS2P",valueKey:"NETWORK.VIEW.NODE_ADDRESS",items:[{label:"NETWORK.VIEW.NODE_ADDRESS",value:t.bma.private?n:t.getServer()+(t.bma.path||"")},{label:"NETWORK.VIEW.WS2PID",value:t.bma.ws2pid},{label:"NETWORK.VIEW.POW_PREFIX",value:t.powPrefix}]}})}))},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:c.data.helptip.network,n=!!angular.isDefined(n)&&n,!(t<0)){var i=e.createHelptipScope();if(i)return i.tour=n,i.startNetworkTour(t,!1).then((function(e){i.$destroy(),n||(c.data.helptip.network=e,c.store())}))}}}function ye(e,t,n){angular.extend(this,t("NetworkLookupCtrl",{$scope:e})),n=n||{},e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.enableLocationHref=!1,e.helptipPrefix="",e.selectPeer=function(t){e.closeModal(t)},e.$on("modal.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function Pe(e,t){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var n=n||{};e.enableFilter=!angular.isDefined(n.enableFilter)||n.enableFilter,e.search.type=angular.isDefined(n.type)?n.type:e.search.type,e.search.endpointFilter=angular.isDefined(n.endpointFilter)?n.endpointFilter:e.search.endpointFilter,e.expertMode=angular.isDefined(n.expertMode)?n.expertMode:e.expertMode,e.ionItemClass=n.ionItemClass||"item-border-large",e.helptipPrefix="",e.selectPeer=function(t){e.closePopover(t)},e.$on("popover.hidden",(function(){e.leave()})),e.showHelpTip=function(){},e.enter()}function ke(e,t,n,i,a,o){e.loading=!0,e.formData={},e.load=function(){return e.loading=!0,e.formData={},t.all([i.blockchain.current().then((function(t){e.formData.number=t.number,e.formData.medianTime=t.medianTime,e.formData.powMin=t.powMin,e.formData.useSsl=o.useSsl})).catch((function(){delete e.formData.number,delete e.formData.medianTime,delete e.formData.powMin,delete e.formData.useSsl})),o.node.summary().then((function(t){e.formData.version=t&&t.duniter&&t.duniter.version,e.formData.software=t&&t.duniter&&t.duniter.software})).catch((function(){delete e.formData.version,delete e.formData.software})),o.version.latest().then((function(t){e.formData.latestRelease=t})).catch((function(){delete e.formData.latestRelease}))]).then((function(){if(e.formData.latestRelease&&"duniter"==e.formData.software){var t=a.version.compare(e.formData.version,e.formData.latestRelease.version);e.formData.isPreRelease=t>0,e.formData.hasNewRelease=t<0}else e.formData.isPreRelease=!1,e.formData.hasNewRelease=!1;e.loading=!1,e.$broadcast("$$rebind::rebind")}))},i.api.data.on.newBlock(e,(function(t){e.loading||(console.debug("[peer info] Received new block. Reload content"),e.load())})),n.api.data.on.changed(e,(function(t){e.loading||(console.debug("[peer info] Peer settings changed. Reload content"),e.load())})),e.load()}function Me(e,t,n,i,a,o,r,s,l){e.node={},e.loading=!0,e.isHttps="https:"===n.location.protocol,e.isReachable=!0,e.options={document:{index:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.index||"user",type:l.data.plugins.es&&l.data.plugins.es.document&&l.data.plugins.es.document.type||"profile"}},e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!a.screen.isSmall()||t.enableBack})),e.$on("$ionicView.enter",(function(t,n){var i=!n.stateParams||!n.stateParams.server,a=n.stateParams&&n.stateParams.server||r.server,o=n.stateParams&&"true"==n.stateParams.ssl||!!i&&r.useSsl,s="true"==n.stateParams.tor||!!i&&r.useTor;return e.load(a,o,s).then((function(){return e.$broadcast("$csExtension.enter",t,n)})).then((function(){e.loading=!1}))})),e.load=function(n,i,l){var c={server:n,host:n,useSsl:i,useTor:l},u=n.split(":");return 2==u.length&&(c.host=u[0],c.port=u[1]),c.url=s.getUrl(c.host,c.port,void 0,c.useSsl),angular.merge(e.node,l?r.lightInstance(c.host+".to",443,443,!0,6e4):r.lightInstance(c.host,c.port,c.useSsl),c),e.isReachable=!e.isHttps||i,e.isReachable?t.all([e.node.network.peering.self().then((function(t){e.node.pubkey=t.pubkey,e.node.currency=t.currency})),e.node.record.count(e.options.document.index,e.options.document.type).then((function(t){e.node.docCount=t})),e.node.network.peers().then((function(t){var n=t.peers.reduce((function(e,t){var n=new X(t);return n.hasEndpoint("GCHANGE_API")?(n.online="UP"===t.status,n.blockNumber=n.block.replace(/-.+$/,""),n.ep=r.node.parseEndPoint(n.getEndpoints("GCHANGE_API")[0]),n.dns=n.getDns(),n.id=n.keyID(),n.server=n.getServer(),e.concat(n)):e}),[]);return o.extendAll([e.node].concat(n)).then((function(){e.peers=_.sortBy(n,(function(e){var t=1;return t+=1e4*(e.online?1:0),t+=1e3*(e.hasMainConsensusBlock?1:0),-(t+=100*(e.name?1:0))})),e.motion.show({selector:".item-peer"})}))})),e.node.blockchain.current().then((function(t){e.current=t}))]).catch(a.onError(l?"PEER.VIEW.ERROR.LOADING_TOR_NODE_ERROR":"PEER.VIEW.ERROR.LOADING_NODE_ERROR")):r.network.peers().then((function(t){var n=(t&&t.peers||[]).reduce((function(e,t){var n=new X(t);if(!n.hasEndpoint("GCHANGE_API"))return e;var i=r.node.parseEndPoint(n.getEndpoints("GCHANGE_API")[0]);return i.dns!=c.host&&i.ipv4!=c.host&&i.ipv6!=c.host||i.port!=c.port?e:(n.ep=i,e.concat(n))}),[]),i=n.length&&n[0];if(i)return e.node.pubkey=i.pubkey,e.node.currency=i.currency,o.extend(e.node);console.warn("Could not get peer from /network/peers")}))},e.selectPeer=function(e){if(e.online){var t={server:e.getServer()};e.isSsl()&&(t.ssl=!0),e.isTor()&&(t.tor=!0),i.go("app.view_es_peer",t)}},e.openRawPeering=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")},e.openRawCurrentBlock=function(t){return e.openLink(t,e.node.url+"/network/peering?pretty")}}function we(e,t,n,i,a,o){e.search={loading:!0,results:null,type:"last",hasMore:!1,loadingMore:!1,limit:40},e.enableFilter=!t.screen.isSmall(),e.ionItemClass="item-border-large",e.$on("$ionicView.enter",(function(){e.search.loading&&e.doSearch()})),e.doSearchText=function(){var t=e.search.text&&e.search.text.trim();return t&&t.length?(e.search.type="text",e.doSearch()):e.doSearchLast()},e.doSearchLast=function(){return e.search.type="last",e.doSearch()},e.doSearch=function(n,i){var o={};return o.from=n||0,o.size=i||40,o.text="text"==e.search.type&&e.search.text&&e.search.text.trim(),e.search.loading=!0,a.record.search(o).then((function(t){n?t&&(e.search.results=e.search.results.concat(t)):e.search.results=t||[],e.search.loading=!1,e.search.hasMore=e.search.results.length>=e.search.limit,e.updateView()})).catch((function(i){e.search.loading=!1,n||(e.search.results=[]),e.search.hasMore=!1,t.onError("GROUP.ERROR.SEARCH_GROUPS_FAILED")(i)}))},e.updateView=function(){e.$broadcast("$$rebind::rebind"),e.motion.show({selector:".list.{0} .item".format(e.motion.ionListClass)})},e.select=function(e){e&&e.id&&n.go("app.view_group",{id:e.id})},e.showMore=function(){e.search.limit=e.search.limit||40,e.search.limit+=40,e.search.limit<40&&(e.search.limit=40),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.resetData=function(){e.search.loading||(console.debug("[ES] [group] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},i.api.data.on.logout(e,e.resetData),e.showNewRecordModal=function(){e.loadWallet({minData:!0}).then((function(i){t.loading.hide(),e.walletData=i,o.show("plugins/es/templates/group/modal_record_type.html").then((function(e){e&&n.go("app.add_group",{type:e})}))}))}}function Ue(e,t,n,i,a,o,r,s,l){e.formData={},e.id=null,e.pictures=[],e.canEdit=!1,e.loading=!0,e.motion=o.motion.fadeSlideIn,e.$on("$ionicView.enter",(function(n,i){i.stateParams&&i.stateParams.id?((e.loading||i.stateParams.refresh)&&e.load(i.stateParams.id,i.stateParams.anchor),o.loading.hide(),e.$broadcast("$recordView.enter",i)):t.go("app.groups")})),e.load=function(t){s.record.load(t,{fetchPictures:!0}).then((function(n){e.id=n.id,e.formData=n.record,e.issuer=n.issuer,e.canEdit=l.isUserPubkey(e.formData.issuer)||l.children.hasPubkey(e.formData.issuer),e.pictures=n.record.pictures||[],delete n.record.pictures,e.$broadcast("$recordView.load",t,s.record.comment),e.loading=!1,o.loading.hide(),e.updateView()})).catch(o.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show()},e.edit=function(){o.loading.show(),t.go("app.edit_group",{id:e.id})},e.delete=function(){var n;e.hideActionsPopover(),a(["GROUP.VIEW.REMOVE_CONFIRMATION","GROUP.INFO.RECORD_REMOVED"]).then((function(e){return n=e,o.alert.confirm(e["GROUP.VIEW.REMOVE_CONFIRMATION"])})).then((function(a){a&&s.record.remove(e.id).then((function(){i.nextViewOptions({historyRoot:!0}),t.go("app.groups"),o.toast.show(n["GROUP.INFO.RECORD_REMOVED"])})).catch(o.onError("GROUP.ERROR.REMOVE_RECORD_FAILED"))}))},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/group/view_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.showSharePopover=function(n){e.hideActionsPopover();var i=e.formData.title,a=(r.shareBaseUrl||$rootScope.rootPath)+t.href("app.view_group",{id:e.id});o.screen.isSmall()&&(n=angular.element(document.querySelector("#group-share-anchor-"+e.id))||n),o.popover.share(n,{bindings:{url:a,titleKey:"GROUP.VIEW.POPOVER_SHARE_TITLE",titleValues:{title:i},time:e.formData.time,postMessage:i}})}}function Be(e,t,n,i,a,o,r,s,l,c){e.walletData={},e.formData={},e.id=null,e.pictures=[],e.loading=!0,e.setForm=function(t){e.form=t},e.$on("$ionicView.enter",(function(t,i){e.loadWallet({minData:!0}).then((function(t){e.walletData=t,i.stateParams&&i.stateParams.id?e.load(i.stateParams.id):(i.stateParams&&i.stateParams.type&&(e.formData.type=i.stateParams.type),e.loading=!1,n.loading.hide(),e.updateView()),l("group-record-title")}))})),e.load=function(i){t.record.load(i,{fetchPictures:!0,html:!1}).then((function(t){e.formData=t.record,e.issuer=t.issuer,e.id=t.id,e.pictures=t.record.pictures||[],delete t.record.pictures,e.loading=!1,n.loading.hide(),e.updateView()})).catch(n.onError("GROUP.ERROR.LOAD_RECORD_FAILED"))},e.updateView=function(){e.motion.show({selector:".list.{0} .item, .card-gallery".format(e.motion.ionListClass)})},e.save=function(){if(e.form.$submitted=!0,!e.saving&&e.form.$valid&&("managed"===e.formData.type||"open"===e.formData.type))return e.saving=!0,n.loading.show().then((function(){var t=e.formData;return t.time=moment().utc().unix(),t.picturesCount=e.pictures.length,t.picturesCount>0?(t.pictures=e.pictures.reduce((function(e,t){return e.concat({file:c.image.toAttachment(t)})}),[]),n.image.resizeSrc(e.pictures[0].src,!0).then((function(e){return t.avatar=c.image.toAttachment({src:e}),t}))):(t.avatar&&(t.avatar={_content:"",_content_type:""}),t.pictures=[],t)})).then((function(n){return e.id?t.record.update(n,{id:e.id}):(n.creationTime=moment().utc().unix(),t.record.add(n))})).then((function(t){return e.id=e.id||t,e.saving=!1,r.clearCache(r.currentView().stateId),r.nextViewOptions({historyRoot:!0}),i.go("app.view_group",{id:e.id,refresh:!0})})).catch((function(t){e.saving=!1,n.onError("GROUP.ERROR.SAVE_RECORD_FAILED")(t)}))},e.openPicturePopup=function(){o.camera.getPicture().then((function(t){e.pictures.push({src:"data:image/png;base64,"+t})})).catch(n.onError("ERROR.TAKE_PICTURE_FAILED"))},e.fileChanged=function(t){return n.loading.show(),a((function(i,a){var o=t.target.files[0];n.image.resizeFile(o).then((function(t){e.pictures.push({src:t}),n.loading.hide(),i()}))}))},e.removePicture=function(t){e.pictures.splice(t,1)},e.favoritePicture=function(t){if(t>0){var n=e.pictures[t];e.pictures.splice(t,1),e.pictures.splice(0,0,n)}},e.cancel=function(){r.goBack()},e.showRecordTypeModal=function(){s.show("plugins/es/templates/group/modal_record_type.html").then((function(t){t&&(e.formData.type=t)}))}}function xe(e,t,n,i,a,o,r,s,l,c,u){var d,p=u.constants.DEFAULT_LOAD_SIZE;e.search={loading:!0,results:null,hasMore:!1,loadingMore:!1,limit:p,options:{codes:{includes:c.constants.INVITATION_CODES}}},e.setWallet=function(e){d=e},e.$on("$ionicView.enter",(function(t,n){if(e.search.loading){if(!(d=n.stateParams&&n.stateParams.id?r.children.get(n.stateParams.id):r))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();e.loadWallet({wallet:d,minData:!0}).then((function(){e.addListeners(),s.isAlive()&&(e.load(),e.resetUnreadCount(),e.showFab("fab-new-invitation"))}))}})),e.load=function(t,n){var i=angular.copy(e.search.options);return i.from=i.from||t||0,i.size=i.size||n||p,d=d||r,u.load(i,d.data.keypair).then((function(t){e.search.results=t,e.search.loading=!1,e.search.hasMore=e.search.results&&e.search.results.length>=e.search.limit,e.updateView(),o.loading.hide()})).catch((function(n){if("CANCELLED"==n)return e.cancel();e.search.loading=!1,t||(e.search.results=[]),e.search.hasMore=!1,o.onError("INVITATION.ERROR.LOAD_INVITATIONS_FAILED")(n)}))},e.cancel=function(){},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".view-invitation .item"})},e.$watchCollection("search.results",e.updateView),e.showMore=function(){e.search.limit=e.search.limit||p,e.search.limit=2*e.search.limit,e.search.limit<p&&(e.search.limit=p),e.search.loadingMore=!0,e.load(e.search.results.length,e.search.limit).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")}))},e.onNewInvitation=function(t){e.search.loading||e.search.loadingMore||e.search.results[0]&&e.search.results[0]===t||e.search.results.splice(0,0,t)},e.resetData=function(){e.search.loading||(console.debug("[ES] [invitation] Resetting data (settings or account may have changed)"),e.search.hasMore=!1,e.search.results=[],e.search.loading=!0,delete e.search.limit)},e.resetUnreadCount=function(){if(e.search.loading||!d.data.invitations)return a(e.resetUnreadCount,2e3);if(d.data.invitations.unreadCount&&(console.debug("[ES] [invitation] Resetting unread count"),d.data.invitations.unreadCount=0,e.search.results&&e.search.results.length)){var t=e.search.results[0],n=t.time?t.time:0;!n||d.data.invitations.readTime&&d.data.invitations.readTime==n||(d.data.invitations.readTime=n,d.storeData())}},e.deleteAll=function(n){if(e.hideActionsPopover(),e.search.results.length)return n?t.all([o.loading.show(),u.deleteAll(d.data.pubkey)]).then((function(){return e.search.results.splice(0,e.search.results.length),o.loading.hide()})).catch(o.onError("INVITATION.ERROR.REMOVE_ALL_INVITATIONS_FAILED")):o.alert.confirm("INVITATION.CONFIRM.DELETE_ALL_CONFIRMATION").then((function(t){if(t)return e.deleteAll(t)}))},e.delete=function(t){var n=e.search.results[t];if(n)return u.delete(n).then((function(){e.search.results[t]&&e.search.results[t]===n&&e.search.results.splice(t,1)})).catch(o.onError("INVITATION.ERROR.REMOVE_INVITATION_FAILED"))},e.accept=function(t){e.hideActionsPopover(),t.state&&i.go(t.state,t.stateParams||{})},e.showNewInvitationModal=function(){return e.hideActionsPopover(),l.showNewInvitation({})},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/es/templates/invitation/popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.addListeners=function(){if(!d)throw"Controller wallet not set !";e.listeners=[s.api.node.on.stop(e,e.resetData),s.api.node.on.start(e,e.load),d.api.data.on.logout(e,e.resetData)],d.isDefault()&&e.listeners.push(u.api.data.on.new(e,e.onNewInvitation))}}function Fe(e,t,n){angular.extend(this,t("InvitationsCtrl",{$scope:e})),e.motion=null,e.setWallet(n),e.$on("popover.shown",(function(){e.search.loading&&(e.addListeners(),e.load())})),e.updateView=function(){},e.$on("popover.hidden",e.resetUnreadCount),e.hideActionsPopover=function(){e.closePopover()},e.cancel=function(){e.closePopover()}}function He(e,t,n,i,a,o,r,s,l){var c;e.recipients=[],e.suggestions=[],e.formData={useComment:!1,walletId:null},e.enableSelectWallet=!0,e.setParameters=function(t){t&&(t.wallet&&"default"!==t.wallet?e.formData.walletId=t.wallet:e.formData.walletId=a.id)},e.setParameters(l),e.load=function(){return e.enableSelectWallet=a.children.count()>0,c=e.enableSelectWallet&&(e.formData.walletId?a.children.get(e.formData.walletId):a)||a,e.formData.walletId=c.id,c.isDefault()||console.debug("[transfer] Using {"+c.id+"} wallet"),c.login({sources:!0,silent:!0}).then((function(t){if(e.walletData=t,i.ink({selector:".modal-invitation .ink"}),e.destPub&&!e.destUid)return csWot.extend({pubkey:e.destPub}).then((function(t){e.destUid=t&&(t.name||t.uid),e.destUid&&(e.destPub=""),e.loading=!1}));e.loading=!1})).catch((function(t){if("CANCELLED"==t)return e.cancel();i.onError("ERROR.LOGIN_FAILED")(t)}))},e.$on("modal.shown",e.load),e.onUseCommentChanged=function(){e.formData.useComment||(e.formData.comment=null)},e.$watch("formData.useComment",e.onUseCommentChanged,!0),e.removeRecipient=function(t,n){e.recipients.splice(t,1),n.preventDefault()},e.removeSuggestion=function(t,n){e.suggestions.splice(t,1),n.preventDefault()},e.cancel=function(){e.closeModal()},e.doSend=function(){if(e.form.$submitted=!0,e.form.$valid&&e.recipients.length&&e.suggestions.length)return c.isLogin()?c.auth({silent:!0}).then((function(){return t.all([r.box.getKeypair(c.data.keypair),i.alert.confirm("INVITATION.CONFIRM.SEND_INVITATIONS_TO_CERTIFY",void 0,{okText:"COMMON.BTN_SEND"})])})).then((function(n){var a=n&&n[0],o=n&&n[1];if(a&&o){i.loading.show();var r=moment().utc().unix(),l=e.formData.useComment&&e.formData.comment&&e.formData.comment.trim();return t.all(e.recipients.reduce((function(t,n){return t.concat(e.suggestions.reduce((function(e,t){if(!t.uid||!t.pubkey)return console.error("Unable to send suggestion for this identity (no uid or pubkey)",t),e;var i={issuer:c.data.pubkey,recipient:n.pubkey,time:r,content:[t.uid,t.pubkey].join("-"),comment:l};return e.concat(s.send(i,{wallet:c,type:"certification"}))}),[]))}),[])).then((function(){return e.closeModal(),i.loading.hide()})).then((function(){i.toast.show("INVITATION.INFO.INVITATION_SENT")})).catch(i.onError("INVITATION.ERROR.SUGGEST_CERTIFICATIONS_FAILED"))}})):e.closeModal()},e.showSelectRecipientModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.RECIPIENTS_MODAL_TITLE",help:"INVITATION.NEW.RECIPIENTS_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.recipients)}).then((function(t){t&&(e.recipients=t)}))},e.showSelectSuggestionModal=function(t){if(!t.isDefaultPrevented())return n.showWotLookup({allowMultiple:!0,enableFilter:!0,title:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_TITLE",help:"INVITATION.NEW.SUGGESTION_IDENTITIES_MODAL_HELP",okText:"COMMON.BTN_OK",okType:"button-positive",selection:angular.copy(e.suggestions)}).then((function(t){t&&(e.suggestions=t)}))},e.showSelectWalletModal=function(){if(e.enableSelectWallet)return n.showSelectWallet().then((function(t){t&&e.formData.walletId!==t.id&&(console.debug("[transfer] Using {"+t.id+"} wallet"),e.wallet=t,e.walletData=t.data,e.formData.walletId=t.id,e.onAmountChanged())}))}}function We(e,t,n,i,a,o,r,s){var l;e.loading=!0,e.popupData={},e.search={results:[],loading:!0},e.emailFrequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.enter=function(t,i){if(e.loading){if(!(l=i.stateParams&&i.stateParams.id?a.children.get(i.stateParams.id):a))return o.alert.error("ERROR.UNKNOWN_WALLET_ID"),e.showHome();l.auth({minData:!0}).then((function(){return o.loading.hide(),e.load()})).then((function(){e.showFab("fab-add-subscription-record")})).catch((function(t){if("CANCELLED"===t)return o.loading.hide(10),e.loading=!0,void n.goBack();o.onError("SUBSCRIPTION.ERROR.LOAD_SUBSCRIPTIONS_FAILED")(t)}))}},e.$on("$ionicView.enter",e.enter),e.load=function(){return e.loading=!0,s.record.load(l.data.pubkey,l.data.keypair).then((function(e){var t=_.groupBy(e||[],(function(e){return[e.type,e.recipient].join("|")}));return _.keys(t).reduce((function(e,n){var i=n.split("|");return e.concat({type:i[0],recipient:i[1],items:t[n]})}),[])})).then((function(e){return i.extendAll(e,"recipient")})).then(e.updateView).catch((function(t){o.loading.hide(10),t&&404==t.ucode?(e.updateView([]),e.existing=!1):o.onError("PROFILE.ERROR.LOAD_PROFILE_FAILED")(t)}))},e.updateView=function(t){t&&(e.search.results=t),e.search.results&&e.search.results.length&&e.motion.show(),e.search.loading=!1},e.addSubscription=function(){e.showCategoryModal().then((function(t){if(t){if("email"===t.id)return e.showEmailModal();o.alert.notImplemented()}})).then((function(t){t&&(o.loading.show(),s.record.add(t,{wallet:l}).then(e.addToUI).then((function(){l.data.subscriptions=l.data.subscriptions||{count:0},l.data.subscriptions.count++,o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.ADD_SUBSCRIPTION_FAILED")))}))},e.editSubscription=function(t){var n,i=angular.copy(t);if("email"===t.type&&(n=e.showEmailModal(t)),n)return n.then((function(n){if(n)return o.loading.show(),t.id=i.id,s.record.update(t,l).then((function(){if(i.type!==t.type||i.recipient!==t.recipient)return e.removeFromUI(i),e.addToUI(t)})).then((function(){o.loading.hide(),e.updateView()})).catch(o.onError("SUBSCRIPTION.ERROR.UPDATE_SUBSCRIPTION_FAILED"))}))},e.deleteSubscription=function(t,n){if(t&&t.id){if(!n)return o.alert.confirm("SUBSCRIPTION.CONFIRM.DELETE_SUBSCRIPTION").then((function(n){if(n)return e.deleteSubscription(t,n)}));o.loading.show(),s.record.remove(t.id,{wallet:l}).then((function(){l.data.subscriptions=l.data.subscriptions||{count:1},l.data.subscriptions.count--,e.removeFromUI(t),o.loading.hide()})).catch(o.onError("SUBSCRIPTION.ERROR.DELETE_SUBSCRIPTION_FAILED"))}},e.removeFromUI=function(t){var n=_.findWhere(e.search.results,{type:t.type,recipient:t.recipient}),i=_.findIndex(n.items,t);i>=0&&n.items.splice(i,1),n.items.length||(i=_.findIndex(e.search.results,n),e.search.results.splice(i,1))},e.addToUI=function(n){e.search.results=e.search.results||[];var a=_.findWhere(e.search.results,{type:n.type,recipient:n.recipient});return a?(a.items.push(n),t.when(n)):(a={type:n.type,recipient:n.recipient,items:[]},i.extendAll([a],"recipient").then((function(){return a.items.push(n),e.search.results.push(a),n})))},e.showCategoryModal=function(){return s.category.all().then((function(e){return r.show("plugins/es/templates/common/modal_category.html","ESCategoryModalCtrl as ctrl",{categories:e},{focusFirstInput:!0})})).then((function(e){if(e&&e.parent)return e}))},e.showEmailModal=function(e){return r.show("plugins/es/templates/subscription/modal_email.html","ModalEmailSubscriptionsCtrl",e,{focusFirstInput:!0})}}function Ve(e,t,n,i,a,o,r){e.frequencies=[{id:"daily",label:"daily"},{id:"weekly",label:"weekly"}],e.formData=r||{},e.formData.content=e.formData.content||{},e.formData.content.frequency=e.formData.content.frequency||e.frequencies[0].id,e.recipient={},e.$on("modal.shown",(function(){return e.formData.recipient?(e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])):i.network.peering.self().then((function(t){if(t)return e.formData.recipient=t.pubkey,e.recipient={pubkey:e.formData.recipient},a.extendAll([e.recipient])}))})),e.doSubmit=function(){if(e.form.$submitted=!0,e.form.$valid&&e.formData.content.email&&e.formData.content.frequency){var t={type:"email",recipient:e.formData.recipient,content:{email:e.formData.content.email,locale:n.data.locale.id,frequency:e.formData.content.frequency}};e.closeModal(t)}},e.cancel=function(){e.closeModal()},e.subscriptionForm&&e.subscriptionForm.$setPristine(),e.showNetworkLookup=function(){return o.showNetworkLookup({enableFilter:!0,endpointFilter:i.constants.ES_SUBSCRIPTION_API}).then((function(t){t&&(e.recipient=t,e.formData.recipient=t.pubkey)}))}}function Ge(e,t,n,i,a,o,r,s,l){e.search=e.search||{loading:!0,hasMore:!1,text:void 0,index:"invitation",type:"certification",results:[],sort:"time",asc:!1,loadingMore:!1},e.entered=!1,e.searchTextId="documentSearchText",e.ionItemClass="item-border-large",e.defaultSizeLimit=e.defaultSizeLimit||(r.screen.isSmall()?50:100),e.helptipPrefix="helptip-document",e.compactMode=!angular.isDefined(e.compactMode)||e.compactMode,e._source=e._source||["issuer","hash","time","creationTime","title","message"],e.showHeaders=!angular.isDefined(e.showHeaders)||e.showHeaders,e.enter=function(t,n){e.entered||(e.entered=!0,e.search.index=n.stateParams&&n.stateParams.index||e.search.index,e.search.type=n.stateParams&&n.stateParams.type||e.search.type,e.search.text=n.stateParams&&n.stateParams.q||e.search.text,e.search.last=!e.search.text,e.load()),e.expertMode=angular.isDefined(e.expertMode)?e.expertMode:!r.screen.isSmall()&&a.data.expertMode},e.$on("$ionicView.enter",e.enter),e.computeOptions=function(t,n){var i={index:e.search.index,type:e.search.type,from:t||0,size:n||e.defaultSizeLimit};return e.search.sort?(i.sort={},i.sort[e.search.sort]=e.search.asc?"asc":"desc"):i.sort={time:"desc"},i._source=i._source||e._source,i},e.load=function(t,n,i){if(!e.search.error){var a=e.computeOptions(t,n);return e.search.loading=!i,(e.search.last?l.search(a):l.searchText(e.search.text||"",a)).then((function(n){t?e.search.results=e.search.results.concat(n.hits):(e.search.results=n.hits,e.search.took=n.took),e.search.total=n.total,r.loading.hide(),e.search.loading=!1,e.search.hasMore=n.hits&&n.hits.length>0&&n.total>e.search.results.length,e.updateView()})).catch((function(t){e.search.results=[],e.search.loading=!1,e.search.error=!0,e.search.hasMore=!1,r.onError("DOCUMENT.ERROR.LOAD_DOCUMENTS_FAILED")(t).then((function(){e.search.error=!1}))}))}},e.updateView=function(){e.motion&&e.search.results&&e.search.results.length&&e.motion.show({selector:".list .item.item-document"}),e.$broadcast("$$rebind::rebind")},e.doSearchText=function(){return e.search.last=!e.search.text,e.load().then((function(){n.search({q:e.search.text}).replace()}))},e.doSearchLast=function(){return e.search.last=!0,e.search.text=void 0,e.load()},e.removeAll=function(){if(e.hideActionsPopover(),e.search.results&&e.search.results.length)return r.alert.confirm("DOCUMENT.CONFIRM.REMOVE_ALL").then((function(t){if(t)return r.loading.show(),l.removeAll(e.search.results).then((function(){return e.search.loading=!1,i((function(){return r.toast.show("DOCUMENT.INFO.REMOVED"),e.load()}),1e3)})).catch(r.onError("DOCUMENT.ERROR.REMOVE_ALL_FAILED"))}))},e.remove=function(t,n){var i=e.search.results[n];i&&!t.defaultPrevented&&(t.stopPropagation(),r.alert.confirm("DOCUMENT.CONFIRM.REMOVE").then((function(t){if(t)return l.remove(i).then((function(){e.search.results.splice(n,1),e.$broadcast("$$rebind::rebind"),r.toast.show("DOCUMENT.INFO.REMOVED")})).catch(r.onError("MESSAGE.ERROR.REMOVE_FAILED"))})))},e.selectDocument=function(t,n){console.debug("Selected document: ",n,s);var i=s.getUrl("/{0}/{1}/_search?pretty&q=_id:{2}".format(n.index,n.type,n.id));return e.openLink(t,i)},e.toggleCompactMode=function(){e.compactMode=!e.compactMode,e.updateView(),!e.search.hasMore&&e.search.results.length&&"last"==e.search.type&&i((function(){e.search.hasMore=!0}),500)},e.toggleSort=function(t){e.search.sort!==t||e.search.asc?(e.search.asc=e.search.sort!==t||!e.search.asc,e.search.sort=t):(e.search.asc=void 0,e.search.sort=void 0),e.load()},e.showMore=function(){e.search.loading||(e.search.loadingMore=!0,e.load(e.search.results.length,e.defaultSizeLimit,!0).then((function(){e.search.loadingMore=!1,e.$broadcast("scroll.infiniteScrollComplete")})))},e.startListenChanges=function(){var t=Date.now(),n=e.search.index+"/"+e.search.type,i=s.websocket.changes(n);return i.open().then((function(){console.debug("[ES] [document] Websocket opened in {0} ms".format(Date.now()-t)),i.on((function(t){e.search.last&&t&&l.fromHit(t).then((function(n){"DELETE"===t._operation?e.onDeleteDocument(n):e.onNewDocument(n)}))}))}))},e.onNewDocument=function(t){if(e.search.last&&!e.search.loading){console.debug("[ES] [document] Detected new document: ",t);var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0?(e.search.total++,e.search.results.splice(0,0,t)):(t.updated=!0,i((function(){t.updated=!1}),2e3),e.search.results.splice(n,1,t)),e.updateView()}},e.onDeleteDocument=function(t){e.search.last&&!e.search.loading&&i((function(){var n=_.findIndex(e.search.results,{id:t.id,index:t.index,type:t.type});n<0||(console.debug("[ES] [document] Detected document deletion: ",t),e.search.results.splice(n,1),e.search.total--,e.updateView())}),750)},e.showActionsPopover=function(t){r.popover.show(t,{templateUrl:"plugins/es/templates/document/lookup_popover_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)},e.resetData=function(){e.search.loading||(console.debug("[ES] [document] Resetting data (settings or account may have changed)"),e.search.results=[],e.search.loading=!1,e.search.total=void 0,e.search.loadingMore=!1,e.entered=!1,delete e.search.limit)},o.api.data.on.unauth(e,e.resetData)}function Ye(e,t,n,i){e.search={loading:!0,hasMore:!0,text:void 0,index:"user,page,group",type:"profile,record,comment",results:void 0,sort:"time",asc:!1},e.expertMode=!1,e.defaultSizeLimit=20,e._source=["issuer","hash","time","creationTime","title","avatar._content_type","city","message","record"],e.showHeaders=!1,angular.extend(this,t("ESDocumentLookupCtrl",{$scope:e})),e.$on("$ionicParentView.enter",e.enter),e.selectDocument=function(e,t){if(t&&e&&!e.defaultPrevented){if(e.stopPropagation(),"user"===t.index&&"profile"===t.type)i.go("app.wot_identity",{pubkey:t.pubkey,uid:t.name});else{if("page"===t.index&&"record"===t.type)return void i.go("app.view_page",{title:t.title,id:t.id});if("group"===t.index&&"record"===t.type)return void i.go("app.view_group",{title:t.title,id:t.id})}console.warn("Click on this kind of document not implement yet!",t)}};var a=e.computeOptions;e.computeOptions=function(t,n){var i=a(t,n);if(!i.sort||i.sort.time){var o=i.sort&&i.sort.time||o;i.sort=[{time:o}]}return i._source=i._source||e._source,i.getTimeFunction=function(e){return e.time=e.creationTime||e.time,e.time},i},n((function(){e.startListenChanges()}),1e3)}function je(e,t,n,i,a,o,r,s,l){function c(t){return moment.unix(t).utc().startOf(e.formData.rangeDuration).unix()}e.loading=!0,e.formData=e.formData||{useRelative:o.data.useRelative,timePct:100,rangeDuration:"day",firstBlockTime:0,scale:"linear",hide:[],beginAtZero:!0},e.formData.useRelative=!1,e.scale="linear",e.height=void 0,e.width=void 0,e.maintainAspectRatio=!0,e.times=[],e.enter=function(t,n){if(e.loading){if(n&&n.stateParams&&(e.stateName=n&&n.stateName,e.stateParams=angular.copy(n&&n.stateParams||{}),!e.formData.currency&&n&&n.stateParams&&n.stateParams.currency&&(e.formData.currency=n.stateParams.currency),n.stateParams.t?e.formData.timePct=n.stateParams.t:n.stateParams.timePct&&(e.formData.timePct=n.stateParams.timePct),n.stateParams.stepUnit&&(e.formData.rangeDuration=n.stateParams.stepUnit),n.stateParams.scale&&(e.formData.scale=n.stateParams.scale),n.stateParams.hide&&(e.formData.hide=n.stateParams.hide.split(",").reduce((function(e,t){return e.concat(parseInt(t))}),[]))),e.init(t,n),!e.formData.currency)return r.get().then((function(i){return e.formData.currency=i?i.name:null,e.formData.firstBlockTime=i?c(i.firstBlockTime):0,e.formData.firstBlockTime||console.warn("[graph] currency.firstBlockTime not loaded ! Should have been loaded by currrency service!"),e.formData.currencyAge=c(moment().utc().unix())-e.formData.firstBlockTime,e.enter(t,n)}));e.load().then((function(){e.setScale(e.formData.scale),e.updateHiddenDataset(),e.loading=!1}))}},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.updateLocation=function(){e.stateName&&(i.nextViewOptions({disableAnimate:!0,disableBack:!0,historyRoot:!0}),e.stateParams=e.stateParams||{},e.stateParams.t=e.formData.timePct>=0&&e.formData.timePct<100?e.formData.timePct:void 0,e.stateParams.stepUnit="day"!=e.formData.rangeDuration?e.formData.rangeDuration:void 0,e.stateParams.hide=e.formData.hide&&e.formData.hide.length?e.formData.hide.join(","):void 0,e.stateParams.scale="linear"!=e.formData.scale?e.formData.scale:void 0,a.go(e.stateName,e.stateParams,{reload:!1,inherit:!0,notify:!1}))},e.setSize=function(t,n,i){e.height=t,e.width=n,e.maintainAspectRatio=angular.isDefined(i)?i:e.maintainAspectRatio},e.$on("csView.action.refresh",(function(t,n){if(!n||"currency"==n)return e.load()})),e.init=function(e,t){},e.load=function(){},e.toggleScale=function(){e.setScale("linear"===e.formData.scale?"logarithmic":"linear"),e.updateLocation()},e.setScale=function(n){if(e.hideActionsPopover(),e.formData.scale=n,e.options&&e.options.scales&&e.options.scales.yAxes){var i=t("formatInteger");_.forEach(e.options.scales.yAxes,(function(t,a){t.type=n,t.ticks=t.ticks||{},"linear"==n?(t.ticks.beginAtZero=!angular.isDefined(e.formData.beginAtZero)||e.formData.beginAtZero,delete t.ticks.min,t.ticks.callback=function(e){return i(e)}):(delete t.ticks.beginAtZero,delete t.ticks.callback,t.ticks.callback=function(e,t){if(e)return Math.log10(e)%1==0||Math.log10(e/3)%1==0?i(e):""})}))}},e.setRangeDuration=function(t){e.hideActionsPopover(),e.formData&&t==e.formData.rangeDuration||(e.formData.rangeDuration=t,delete e.formData.startTime,delete e.formData.endTime,delete e.formData.rangeDurationSec,e.load(),e.updateLocation())},e.updateHiddenDataset=function(t){t=t||e.datasetOverride||{},_.forEach(e.formData.hide||[],(function(n){if(t[n]){t[n].hidden=!0;var i=t[n].yAxisID,a=i&&e.options&&e.options.scales&&_.findWhere(e.options.scales.yAxes||[],{id:i});i&&a&&1==_.filter(t,(function(e){return e.yAxisID===i})).length&&(a.display=!1)}}))},e.onLegendClick=function(t,n){var i=n.datasetIndex,a=this.chart,o=a.getDatasetMeta(i);o.hidden=null===o.hidden?!a.data.datasets[i].hidden:null,a.config&&a.config.data&&a.config.data.datasets&&1===_.filter(a.config.data.datasets,(function(e){return e.yAxisID&&e.yAxisID===o.yAxisID})).length&&(a.scales[o.yAxisID].options.display=!(!0===o.hidden)),a.update(),e.formData.hide=e.formData.hide||[],e.formData.hide=o.hidden?_.union(e.formData.hide,[i]):_.difference(e.formData.hide,[i]),e.updateLocation()},e.goPreviousRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime-=e.times.length*e.formData.rangeDurationSec,e.formData.startTime<e.formData.firstBlockTime&&(e.formData.startTime=e.formData.firstBlockTime),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.goNextRange=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime+=e.times.length*e.formData.rangeDurationSec,e.formData.startTime>e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow&&(e.formData.startTime=e.formData.firstBlockTime+e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.onRangeChanged=function(){e.loadingRange||(e.loadingRange=!0,e.formData.startTime=e.formData.firstBlockTime+parseFloat(e.formData.timePct)/100*(e.formData.currencyAge-e.formData.timeWindow),e.formData.endTime=e.formData.startTime+e.times.length*e.formData.rangeDurationSec,e.load().then((function(){e.updateLocation(),e.loadingRange=!1})))},e.updateRange=function(t,n,i){i=!angular.isDefined(i)||i,e.formData.startTime=t,e.formData.endTime=n,e.formData.timeWindow=e.formData.timeWindow||e.formData.endTime-e.formData.startTime,e.formData.rangeDurationSec=e.formData.rangeDurationSec||e.formData.timeWindow/(e.times.length-1),i&&(e.formData.timePct=Math.ceil(100*(e.formData.startTime-e.formData.firstBlockTime)/(e.formData.currencyAge-e.formData.timeWindow)))},e.showActionsPopover=function(t){l.popover.show(t,{templateUrl:"plugins/graph/templates/common/popover_range_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Ke(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.displayRightAxis=!0,e.init=function(t,n){n&&n.stateParams&&!e.formData.issuer&&n&&n.stateParams&&n.stateParams.pubkey&&(e.formData.issuer=n.stateParams.pubkey)},e.load=function(t){var i=e.formData
+;return n.all([o(e.formData.issuer?"GRAPH.BLOCKCHAIN.TX_AMOUNT_PUBKEY_TITLE":"GRAPH.BLOCKCHAIN.TX_AMOUNT_TITLE",i),o(["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL","GRAPH.BLOCKCHAIN.TX_COUNT_LABEL","GRAPH.BLOCKCHAIN.TX_AVG_BY_BLOCK","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.blockchain.txCount(e.formData.currency,i)]).then((function(n){var i=n[0],o=n[1],r={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[2])&&n.times){e.times=n.times,a("formatInteger");var l=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.formData.rangeDuration,e.data=[n.amount,n.count];var c=r[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-amount",position:"left"},{id:"y-axis-count",display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},legend:{display:e.displayRightAxis,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return 0===t.datasetIndex?n.datasets[t.datasetIndex].label+": "+l(t.yLabel)+" "+e.currencySymbol:n.datasets[t.datasetIndex].label+": "+t.yLabel}}}},e.datasetOverride=[{yAxisID:"y-axis-amount",type:"bar",label:o["GRAPH.BLOCKCHAIN.TX_AMOUNT_LABEL"],hoverBackgroundColor:s.rgba.calm(.6)},{yAxisID:"y-axis-count",type:"line",label:o["GRAPH.BLOCKCHAIN.TX_COUNT_LABEL"],fill:!1,borderColor:s.rgba.gray(.5),borderWidth:2,backgroundColor:s.rgba.gray(.5),pointBackgroundColor:s.rgba.gray(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.gray(1),pointHoverBorderColor:s.rgba.translucent(),pointRadius:3}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.issuer&&(s+=" AND issuer:"+e.formData.issuer),i.go("app.blockchain_search",{q:s})}}}function $e(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(){return n.all([a(["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE","GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_LABEL"]),r.blockchain.countByIssuer(e.formData.currency)]).then((function(t){var n=t[0];(t=t[1])&&t.data&&(e.data=t.data,e.labels=t.labels,e.blockCount=t.blockCount,e.issuers=t.issuers,e.barOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_TITLE"]},scales:{yAxes:[{type:"linear",ticks:{beginAtZero:!0}}]}},e.colors=o.scale.custom(t.data.length))}))},e.onChartClick=function(t,n,a){if(a){var o=e.issuers[a._index];i.go("app.wot_identity",o)}}}function ze(e,t,n){e.extensionPoint=t.extensions.points.current.get(),e.enable=n.isEnable(),n.api.state.on.changed(e,(function(t){e.enable=t}))}function qe(e,t,n,i,a,o){e.extensionPoint=n.extensions.points.current.get(),e.enable=i.isEnable(),e.loading=!0,e.node=e.node||{},i.api.state.on.changed(e,(function(t){e.enable=t})),e.enter=function(n,i){return!e.node.currency&&i&&i.stateParams&&i.stateParams.currency&&(e.node.currency=i.stateParams.currency),e.node.currency?e.node.pubkey?e.load():t((function(){return e.enter(n,i)}),500):a.get().then((function(t){return e.node.currency=t?t.name:null,e.enter(n,i)}))},e.$on("$csExtension.enter",e.enter),e.load=function(){if(e.node.currency||e.node.pubkey)return console.info("[Graph] [peer] Loading blocks count for [{0}]".format(e.node.pubkey.substr(0,8))),o.node.blockCount(e.node.currency,e.node.pubkey).then((function(t){e.blockCount=t,e.loading=!1}))}}function Xe(e,t,n,i){e.extensionPoint=t.extensions.points.current.get(),e.enable=i.isEnable(),e.smallscreen=n.screen.isSmall(),i.api.state.on.changed(e,(function(t){e.enable=t}))}function Qe(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.useRelative=angular.isDefined(e.formData.useRelative)?e.formData.useRelative:c.data.useRelative,e.displayShareAxis=!0,e.hiddenDatasets=[],e.init=function(e,t){},e.onUseRelativeChanged=function(){e.loading||e.load()},e.$watch("formData.useRelative",e.onUseRelativeChanged);var u=function(e){return Math.trunc(100*e)/100};e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MONETARY_MASS_TITLE","GRAPH.CURRENCY.MONETARY_MASS_LABEL","GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"]),s.blockchain.withDividend(e.formData.currency,{from:t,size:i})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.times.length-1]-t.times[0];i=l(a<31557600?"medianDateShort":"formatDateMonth");var o=l("formatDecimal");e.currencySymbol=l("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative);var s=[];e.formData.useRelative?(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend/t.membersCount))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.dividend))}),[]))):(s.push(t.blocks.reduce((function(e,t){return e.concat(u(t.monetaryMass/t.membersCount/100))}),[])),s.push(t.blocks.reduce((function(e,t){return e.concat(t.monetaryMass/100)}),[]))),e.data=s,e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=r.scale.fix(t.times.length),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MONETARY_MASS_TITLE"]},legend:{display:e.displayShareAxis,onClick:e.onLegendClick},scales:{yAxes:[{id:"y-axis-mn"},{id:"y-axis-mass",display:e.displayShareAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+o(t.yLabel)+" "+e.currencySymbol}}}},e.datasetOverride=[{yAxisID:"y-axis-mn",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_SHARE_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3},{yAxisID:"y-axis-mass",type:"line",label:n["GRAPH.CURRENCY.MONETARY_MASS_LABEL"],fill:!1,showLine:!0,borderColor:r.rgba.energized(),borderWidth:1,backgroundColor:r.rgba.energized(),pointBackgroundColor:r.rgba.energized(),pointBorderColor:r.rgba.energized(),pointHoverBackgroundColor:r.rgba.energized(),pointHoverBorderColor:r.rgba.energized(),pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.setScale(e.scale),e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.onChartClick=function(t,n,a){if(a){var o=e.blocks[a._index];i.go("app.view_block",{number:o})}},e.showActionsPopover=function(t){o.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Je(e,t,n,i,a,o,r,s){e.formData={scale:"linear",beginAtZero:!1},angular.extend(this,n("GpCurrencyMonetaryMassCtrl",{$scope:e})),e.load=function(n,s){return n=n||0,s=s||1e4,t.all([i(["GRAPH.CURRENCY.UD_TITLE","COMMON.UNIVERSAL_DIVIDEND"]),o.blockchain.withDividend(e.formData.currency,{from:n,size:s})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,o=t.times[t.times.length-1]-t.times[0];i=r(o<31557600?"medianDateShort":"formatDateMonth");var s=r("formatDecimal");e.currencySymbol=r("currencySymbolNoHtml")(e.formData.currency,!1),e.data=[t.blocks.reduce((function(e,t){return e.concat(t.dividend/100)}),[])],e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.colors=t.blocks.reduce((function(e){return e.concat(a.rgba.calm(.5))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.UD_TITLE"]},scales:{yAxes:[{id:"y-axis-ud",ticks:{beginAtZero:e.formData.beginAtZero}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+s(t.yLabel)+" "+e.currencySymbol}}}},e.setScale(e.scale),e.datasetOverride=[{yAxisID:"y-axis-ud",type:"line",label:n["COMMON.UNIVERSAL_DIVIDEND"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.blocks=t.blocks.reduce((function(e,t){return e.concat(t.number)}),[])}}))},e.showActionsPopover=function(t){s.popover.show(t,{templateUrl:"plugins/graph/templates/currency/popover_monetary_mass_actions.html",scope:e,autoremove:!0,afterShow:function(t){e.actionsPopover=t}})},e.hideActionsPopover=function(){e.actionsPopover&&(e.actionsPopover.hide(),e.actionsPopover=null)}}function Ze(e,t,n,i,a,o,r,s){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.load=function(t,i){return t=t||0,i=i||1e4,n.all([a(["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE","GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"]),r.blockchain.withDividend(e.formData.currency,{from:t,size:i,withCurrent:!0})]).then((function(t){var n=t[0];if((t=t[1])&&t.times){e.times=t.times;var i,a=t.times[t.blocks.length-1]-t.times[0];i=s(a<31557600?"medianDateShort":"formatDateMonth"),e.labels=t.times.reduce((function(e,t){return e.concat(i(t))}),[]),e.options={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0,text:n["GRAPH.CURRENCY.MEMBERS_COUNT_TITLE"]},scales:{xAxes:[{position:"bottom"}],yAxes:[{id:"y-axis-1",ticks:{beginAtZero:!1}}]}},e.datasetOverride=[{yAxisID:"y-axis-1",type:"line",label:n["GRAPH.CURRENCY.MEMBERS_COUNT_LABEL"],borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3}],e.data=[t.blocks.reduce((function(e,t){return e.concat(t.membersCount)}),[])],e.colors=o.scale.fix(t.blocks.length)}}))},e.onChartClick=function(t,n,a){if(a)if(a._index){var o=e.times[a._index-1],r=moment.unix(o).utc().add(1,"day").unix();i.go("app.blockchain_search",{q:"(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded) AND medianTime:>{0} AND medianTime:<={1}".format(o,r)})}else i.go("app.view_block",{number:0})}}function et(e,t,n,i,a){e.extensionPoint=t.extensions.points.current.get(),e.enable=n.isEnable(),n.api.state.on.changed(e,(function(t){e.enable=t})),e.showIdentityStats=function(){e.formData&&e.formData.pubkey&&i.go("app.wot_identity_stats",{pubkey:e.formData.pubkey})},e.showWalletStats=function(){a.isLogin()&&i.go("app.wot_identity_stats",{pubkey:a.data.pubkey})}}function tt(e,t,n,i,a,o,r,s,l,c){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:c.isLogin()&&(e.formData.pubkey=c.data.pubkey)};var u=e.setScale;e.setScale=function(t){e.data[e.data.length-2]="linear"===t?_.map(e.data[e.data.length-2],(function(e){return-1*Math.abs(e)})):_.map(e.data[e.data.length-2],(function(e){return Math.abs(e)})),u(t)},e.load=function(t){t=!angular.isDefined(t)||t;var i=!0;return r.load(e.formData.pubkey,null,{cache:!0}).then((function(t){return e.identity=t,i=e.identity.isMember||e.identity.wasMember,n.all([o("GRAPH.ACCOUNT.BALANCE_TITLE",e.formData),o(["GRAPH.ACCOUNT.UD_LABEL","GRAPH.ACCOUNT.TX_RECEIVED_LABEL","GRAPH.ACCOUNT.TX_SENT_LABEL","GRAPH.ACCOUNT.UD_ACCUMULATION_LABEL","GRAPH.ACCOUNT.TX_ACCUMULATION_LABEL","GRAPH.ACCOUNT.BALANCE_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),s.blockchain.movement(e.formData.currency,angular.copy(e.formData,{withUD:i}))])})).then((function(n){var o=n[0],r=n[1];if((n=n[2])&&n.times){e.times=n.times;var s=a("formatDecimal");e.currencySymbol=a("currencySymbolNoHtml")(e.formData.currency,e.formData.useRelative),e.data=[n.ud,n.received,n.sent,n.balance];var c={hour:r["COMMON.DATE_PATTERN"],day:r["COMMON.DATE_SHORT_PATTERN"],month:r["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(c))}),[]),e.colors=l.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:o},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis-left",type:"linear",position:"left",stacked:!0}]},legend:{display:!0,onClick:e.onLegendClick},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(t,n){return n.datasets[t.datasetIndex].label+": "+(t.yLabel?s(t.yLabel)+" "+e.currencySymbol:"0")}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.UD_LABEL"],backgroundColor:l.rgba.energized(.3),hoverBackgroundColor:l.rgba.energized(.5),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_RECEIVED_LABEL"],backgroundColor:l.rgba.positive(.4),hoverBackgroundColor:l.rgba.positive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"bar",label:r["GRAPH.ACCOUNT.TX_SENT_LABEL"],backgroundColor:l.rgba.assertive(.4),hoverBackgroundColor:l.rgba.assertive(.6),borderWidth:1},{yAxisID:"y-axis-left",type:"line",label:r["GRAPH.ACCOUNT.BALANCE_LABEL"],fill:"origin",borderColor:l.rgba.calm(.5),borderWidth:2,pointBackgroundColor:l.rgba.calm(.5),pointBorderColor:l.rgba.white(),pointHoverBackgroundColor:l.rgba.calm(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}],i||(e.data.splice(0,1),e.datasetOverride.splice(0,1))}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function nt(e,t,n,i,a,o){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){e.pubkey=n&&n.stateParams&&n.stateParams.pubkey},e.load=function(t,n){if(e.pubkey)return a.load(e.pubkey,-1).then((function(t){t&&t.tx&&t.tx.history&&(e.inputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount>0}))),e.outputChart=e.computeChartData(_.filter(t.tx.history,(function(e){return e.amount<0}))))}))},e.computeChartData=function(e){var t=n("formatPubkey"),i={};_.forEach(e,(function(e){i[e.pubkey]=i[e.pubkey]||{label:e.name||e.uid||t(e.pubkey),pubkey:e.pubkey,sum:0},i[e.pubkey].sum+=Math.abs(e.amount)}));var a=_.sortBy(_.values(i),"sum").reverse();return _.each(a,(function(e){e.sum=e.sum/100})),{data:_.pluck(a,"sum"),labels:_.pluck(a,"label"),pubkeys:_.pluck(a,"pubkey"),colors:o.scale.custom(Math.max(10,a.length))}},e.onInputChartClick=function(t,n,a){if(a){var o=e.inputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}},e.onOutputChartClick=function(t,n,a){if(a){var o=e.outputChart.pubkeys[a._index];i.go("app.wot_identity",{pubkey:o})}}}function it(e,t,n,i,a,o,r,s,l){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.init=function(t,n){n&&n.stateParams&&n.stateParams.pubkey?e.formData.pubkey=n.stateParams.pubkey:l.isLogin()&&(e.formData.pubkey=l.data.pubkey)},e.load=function(t){var i=e.formData;return n.all([o("GRAPH.ACCOUNT.CERTIFICATION_TITLE",i),o(["GRAPH.ACCOUNT.GIVEN_CERT_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_LABEL","GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL","GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL","COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"]),r.wot.certifications(i)]).then((function(n){var i=n[0],o=n[1];if((n=n[2])&&n.times){e.times=n.times;var r=a("formatInteger");e.data=[n.deltaReceived,n.received,n.deltaGiven,n.given],e.labels=n.labels;var l={hour:o["COMMON.DATE_PATTERN"],day:o["COMMON.DATE_SHORT_PATTERN"],month:o["COMMON.DATE_MONTH_YEAR_PATTERN"]}[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(l))}),[]),e.colors=s.scale.fix(n.times.length),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.options={responsive:!0,maintainAspectRatio:!0,title:{display:!0,text:i},scales:{yAxes:[{id:"y-axis-left",type:"linear",position:"left"},{id:"y-axis-hide",type:"linear",display:!1,position:"right"}]},legend:{display:!0},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){var n=(0===e.datasetIndex||2===e.datasetIndex)&&e.yLabel>0;return t.datasets[e.datasetIndex].label+": "+(n?"+":"")+!e.yLabel?"0":r(e.yLabel)}}}},e.datasetOverride=[{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_DELTA_LABEL"],borderColor:s.rgba.positive(.6),borderWidth:1,backgroundColor:s.rgba.positive(.4),hoverBackgroundColor:s.rgba.positive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.RECEIVED_CERT_LABEL"],fill:!1,borderColor:s.rgba.positive(.5),borderWidth:2,backgroundColor:s.rgba.positive(1),pointBackgroundColor:s.rgba.positive(.5),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.positive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3},{yAxisID:"y-axis-left",type:"bar",label:o["GRAPH.ACCOUNT.GIVEN_CERT_DELTA_LABEL"],borderColor:s.rgba.assertive(.6),borderWidth:1,backgroundColor:s.rgba.assertive(.4),hoverBackgroundColor:s.rgba.assertive(.6)},{yAxisID:"y-axis-left",type:"line",label:o["GRAPH.ACCOUNT.GIVEN_CERT_LABEL"],fill:!1,borderColor:s.rgba.assertive(.4),borderWidth:2,backgroundColor:s.rgba.assertive(1),pointBackgroundColor:s.rgba.assertive(.4),pointBorderColor:s.rgba.white(),pointHoverBackgroundColor:s.rgba.assertive(1),pointHoverBorderColor:"rgba(0,0,0,0)",pointRadius:3,lineTension:.1}]}}))},e.onChartClick=function(t,n,a){if(a){var o=e.times[a._index],r=moment.unix(o).utc().add(1,e.formData.rangeDuration).unix(),s="_exists_:transactions AND medianTime:>={0} AND medianTime:<{1}".format(o,r);e.formData.pubkey&&(s+=" AND (transactions.issuers:"+e.formData.pubkey+" OR transactions.outputs:*"+e.formData.pubkey+")"),i.go("app.blockchain_search",{q:s})}}}function at(e,t,n,i,a,o,r,s){angular.extend(this,n("GpCurrencyAbstractCtrl",{$scope:e})),e.formData.rangeDuration="month",e.displayRightAxis=!0,e.hiddenDatasets=[],e.chartIdPrefix="docstats-chart-",e.charts=[{id:"user",title:"GRAPH.DOC_STATS.USER.TITLE",series:[{key:"user_profile",label:"GRAPH.DOC_STATS.USER.USER_PROFILE",color:o.rgba.royal(.7),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"user",type:"profile"}}},{key:"user_settings",label:"GRAPH.DOC_STATS.USER.USER_SETTINGS",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"user",type:"settings"}}}]},{id:"user_delta",title:"GRAPH.DOC_STATS.USER_DELTA.TITLE",series:[{key:"user_profile_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_PROFILE",type:"line",yAxisID:"y-axis-delta",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal()},{key:"user_settings_delta",label:"GRAPH.DOC_STATS.USER_DELTA.USER_SETTINGS",type:"line",yAxisID:"y-axis-delta",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray()}]},{id:"message",title:"GRAPH.DOC_STATS.MESSAGE.TITLE",series:[{key:"message_inbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_INBOX",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"message",type:"inbox"}}},{key:"message_outbox",label:"GRAPH.DOC_STATS.MESSAGE.MESSAGE_OUTBOX",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"message",type:"outbox"}}},{key:"invitation_certification",label:"GRAPH.DOC_STATS.MESSAGE.INVITATION_CERTIFICATION",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"invitation",type:"certification"}}}]},{id:"social",title:"GRAPH.DOC_STATS.SOCIAL.TITLE",series:[{key:"page_record",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_RECORD",color:o.rgba.royal(),pointHoverBackgroundColor:o.rgba.royal(),clickState:{name:"app.document_search",params:{index:"page",type:"record"}}},{key:"group_record",label:"GRAPH.DOC_STATS.SOCIAL.GROUP_RECORD",color:o.rgba.calm(),pointHoverBackgroundColor:o.rgba.calm(),clickState:{name:"app.document_search",params:{index:"group",type:"record"}}},{key:"page_comment",label:"GRAPH.DOC_STATS.SOCIAL.PAGE_COMMENT",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"page",type:"comment"}}}]},{id:"other",title:"GRAPH.DOC_STATS.OTHER.TITLE",series:[{key:"history_delete",label:"GRAPH.DOC_STATS.OTHER.HISTORY_DELETE",color:o.rgba.gray(.5),pointHoverBackgroundColor:o.rgba.gray(),clickState:{name:"app.document_search",params:{index:"history",type:"delete"}}}]}];var l=s("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{id:"y-axis",stacked:!0},{id:"y-axis-delta",stacked:!1},{id:"y-axis-delta-right",stacked:!1,display:e.displayRightAxis,position:"right",gridLines:{drawOnChartArea:!1}}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+l(e.yLabel)}}}},e.init=function(e,t){t&&t.stateParams},e.load=function(t){return i.all([a(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),r.docstat.get(e.formData)]).then((function(n){var i=n[0],a={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=a[e.formData.rangeDuration];e.labels=_.map(n.times,(function(e){return moment.unix(e).local().format(r)})),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){var a={};t.data=_.map(t.series,(function(e){if(a[e.yAxisID||"y-axis"]=!0,e.key.endsWith("_delta")){var t=e.key.substring(0,e.key.length-"_delta".length);return((i=n[t])?_.map(i,(function(e){var t=void 0!==e&&void 0!==o?e-(o||e):void 0;return o=e,t})):void 0)||[]}var i,o;return n[e.key]||[]})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.options.scales.yAxes=t.options.scales.yAxes.reduce((function(e,t){return a[t.id]?e.concat(t):e}),[]),t.datasetOverride=_.map(t.series,(function(e){return{yAxisID:e.yAxisID||"y-axis",type:e.type||"line",label:i[e.label],fill:"line"!==e.type,borderWidth:2,pointRadius:"line"!==e.type?0:2,pointHitRadius:4,pointHoverRadius:3,borderColor:e.color,backgroundColor:e.color,pointBackgroundColor:e.color,pointBorderColor:e.color,pointHoverBackgroundColor:e.pointHoverBackgroundColor||e.color,pointHoverBorderColor:e.pointHoverBorderColor||o.rgba.white()}}))}))}}))},e.onChartClick=function(n,i,a){if(a){var o=_.find(e.charts,(function(t){return e.chartIdPrefix+t.id==a._chart.canvas.id})).series[a._datasetIndex];if(o&&o.clickState&&o.clickState.name){var r=o.clickState.params?angular.copy(o.clickState.params):{},s=e.times[a._index],l=moment.unix(s).utc().add(1,e.formData.rangeDuration).unix();return r.q="time:>={0} AND time:<{1}".format(s,l),t.go(o.clickState.name,r)}console.debug("Click on item index={0} on range [{1},{2}]".format(a._index,s,l))}}}function ot(e,t,n,i,a,o,r){angular.extend(this,t("GpCurrencyAbstractCtrl",{$scope:e})),e.hiddenDatasets=[],e.charts=[{id:"count",title:"GRAPH.SYNCHRO.COUNT.TITLE",series:[{key:"inserts",type:"bar",label:"GRAPH.SYNCHRO.COUNT.INSERTS",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"updates",type:"bar",label:"GRAPH.SYNCHRO.COUNT.UPDATES",color:a.rgba.calm(),pointHoverBackgroundColor:a.rgba.calm()},{key:"deletes",type:"bar",label:"GRAPH.SYNCHRO.COUNT.DELETES",color:a.rgba.assertive(.5),pointHoverBackgroundColor:a.rgba.assertive()}]},{id:"peer",title:"GRAPH.SYNCHRO.PEER.TITLE",series:[{key:"ES_USER_API",label:"GRAPH.SYNCHRO.PEER.ES_USER_API",color:a.rgba.royal(),pointHoverBackgroundColor:a.rgba.royal()},{key:"ES_SUBSCRIPTION_API",label:"GRAPH.SYNCHRO.PEER.ES_SUBSCRIPTION_API",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]},{id:"performance",title:"GRAPH.SYNCHRO.PERFORMANCE.TITLE",series:[{key:"duration",type:"bar",label:"GRAPH.SYNCHRO.PERFORMANCE.DURATION",color:a.rgba.gray(.5),pointHoverBackgroundColor:a.rgba.gray()}]}];var s=r("formatInteger");e.defaultChartOptions={responsive:!0,maintainAspectRatio:e.maintainAspectRatio,title:{display:!0},legend:{display:!0,onClick:e.onLegendClick},scales:{xAxes:[{stacked:!0}],yAxes:[{stacked:!0,id:"y-axis"}]},tooltips:{enabled:!0,mode:"index",callbacks:{label:function(e,t){return t.datasets[e.datasetIndex].label+": "+s(e.yLabel)}}}},e.init=function(e,t){t&&t.stateParams},e.load=function(t){return n.all([i(e.charts.reduce((function(e,t){return e.concat(t.series.reduce((function(e,t){return e.concat(t.label)}),[t.title]))}),["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.DATE_MONTH_YEAR_PATTERN"])),o.synchro.execution.get(e.formData)]).then((function(n){var i=n[0],o={hour:i["COMMON.DATE_PATTERN"],day:i["COMMON.DATE_SHORT_PATTERN"],month:i["COMMON.DATE_MONTH_YEAR_PATTERN"]};if((n=n[1])&&n.times){e.times=n.times;var r=o[e.formData.rangeDuration];e.labels=n.times.reduce((function(e,t){return e.concat(moment.unix(t).local().format(r))}),[]),e.updateRange(n.times[0],n.times[n.times.length-1],t),e.setScale(e.scale),_.forEach(e.charts,(function(t){t.data=[],_.forEach(t.series,(function(e){t.data.push(n[e.key]||[])})),t.options=angular.copy(e.defaultChartOptions),t.options.title.text=i[t.title],t.datasetOverride=t.series.reduce((function(e,t){return e.concat({yAxisID:"y-axis",type:t.type||"line",label:i[t.label],fill:!0,borderWidth:2,pointRadius:0,pointHitRadius:4,pointHoverRadius:3,borderColor:t.color,backgroundColor:t.color,pointBackgroundColor:t.color,pointBorderColor:t.color,pointHoverBackgroundColor:t.pointHoverBackgroundColor||t.color,pointHoverBorderColor:t.pointHoverBorderColor||a.rgba.white()})}),[])}))}}))}}function rt(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){angular.extend(this,l("WotIdentityAbstractCtrl",{$scope:e})),angular.extend(this,l("ESWotIdentityViewCtrl",{$scope:e}));var g,f={member:{type:"awesomeMarker",icon:"person",markerColor:"blue"},pending:{type:"awesomeMarker",icon:"clock",markerColor:"lightgreen",iconColor:"gray"},wallet:{type:"awesomeMarker",icon:"key",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-wot-"+e.$id,e.map=E.map({cache:"map-wot",layers:{overlays:{member:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.MEMBER",visible:!0},pending:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.PENDING",visible:!0},wallet:{type:"featureGroup",name:"MAP.WOT.VIEW.LAYER.WALLET",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.showDescription=!1,c().then((function(){e.enableDescription=!d.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!d.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(d.loading.show({noBackdrop:!0}),n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0);var o=Date.now();e.loadMap().then(e.load).then((function(){console.debug("[map] [wot] Loaded in "+(Date.now()-o)+"ms"),e.showHelpTip()}))}else e.updateLocationHref(),e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),u.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;d.screen.isSmall()||(L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"show-help-tour",onClick:e.startHelpTour,title:o["COMMON.BTN_HELP_TOUR_SCREEN"],icon:"icon ion-easel"}]}).addTo(r),L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r)),L.Control.loading({position:"topright",separate:!0}).addTo(r),E.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),g=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/wot/item_search_tooltip.html"));E.control.search({layer:g,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:E.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.member?"blue":t.pending?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return u.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var o={fields:{description:e.enableDescription}};return e.map.bounds,b.load(o).then((function(o){var r={};if(g.clearLayers(),o&&o.length){var s=t("formatPubkey"),l=n.get("plugins/map/templates/wot/popup_marker.html");_.forEach(o,(function(t){var n=t.pending?"pending":t.uid?"member":"wallet",i=s(t.pubkey),a=t.index+"_"+(t.id||(t.uid?t.uid+":"+t.pubkey:t.pubkey)).replace(/-/g,"_"),o={layer:n,icon:f[n],opacity:t.uid?1:.7,title:t.name+" | "+i,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){n.formData={pubkey:t.pubkey,uid:t.uid,name:t.name,profile:t},n.loadingMarker=!1})),n},focus:!1,message:l,id:a};r[a]=o;var c=t.name+(t.uid&&t.uid!=t.name?" | "+t.uid:"")+" | "+i,u=angular.merge({type:n,opacity:0,icon:L.divIcon({className:n+" ng-hide",iconSize:L.point(0,0)})},{title:c,pubkey:t.pubkey,uid:t.uid,name:t.name,pending:t.pending,popupMarkerId:a});g.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},u))}))}return e.map.markers=r,a((function(){e.loading=!1,i.fire("dataload"),d.loading.hide()}))})).catch((function(t){e.map.markers={},e.loading=!1,d.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&E.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if((n||m.isLogin())&&(t=angular.isDefined(t)?t:angular.isNumber(p.data.helptip.mapwot)?p.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2))){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),p.data.helptip.mapwot=angular.isNumber(p.data.helptip.mapwot)?Math.max(e,p.data.helptip.mapwot):e,p.store()}))}}}function st(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g={shop:{type:"awesomeMarker",icon:"page-shop",markerColor:"blue"},company:{type:"awesomeMarker",icon:"page-company",markerColor:"blue"},association:{type:"awesomeMarker",icon:"page-association",markerColor:"lightgreen",iconColor:"gray"},institution:{type:"awesomeMarker",icon:"page-institution",markerColor:"lightgray"}};e.loading=!0,e.loadingMarker=!0,e.mapId="map-registry-"+e.$id,e.map=m.map({cache:"map-registry",layers:{overlays:{shop:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.SHOP",visible:!0},company:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.COMPANY",visible:!0},association:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.ASSOCIATION",visible:!0},institution:{type:"featureGroup",name:"MAP.REGISTRY.VIEW.LAYER.INSTITUTION",visible:!0}}},bounds:{},markers:{},loading:!0},e.mapId),e.formData={},e.showDescription=!1,l().then((function(){e.enableDescription=!u.screen.isSmall()&&"a"===ionic.Platform.grade.toLowerCase(),e.enableDescription||console.debug("[map] [wot] Disable profile description.",ionic.Platform.grade)})),e.$on("$ionicView.beforeEnter",(function(e,t){t.enableBack=!!u.screen.isSmall()||t.enableBack})),e.enter=function(t,n){if(e.loading){if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.loading)return a((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(){return p.isLogin()&&e.showHelpTip(),e.load()}))}else e.updateLocationHref(),p.isLogin()&&e.showHelpTip()},e.$on("$ionicView.enter",e.enter),e.loadMap=function(){return s.all([r(["COMMON.BTN_HELP_TOUR_SCREEN","COMMON.BTN_REFRESH","MAP.COMMON.BTN_LOCALIZE_ME"]),c.getMap(e.mapId)]).then((function(t){var o=t[0],r=t[1];if(!e.map.loading)return r;u.screen.isSmall()||L.easyButton({position:"topright",type:"replace",leafletClasses:!0,states:[{stateName:"refresh",onClick:function(t,n){return e.load(n)},title:o["COMMON.BTN_REFRESH"],icon:"icon ion-refresh"}]}).addTo(r),L.Control.loading({position:"topright",separate:!0}).addTo(r),m.control.localizeMe({title:o["MAP.COMMON.BTN_LOCALIZE_ME"]}).addTo(r),b=L.layerGroup({visible:!1});var s=i(n.get("plugins/map/templates/registry/item_search_tooltip.html"));m.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return s(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;a((function(){var e=i&&_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(r);var l=function(e){return e.options&&e.options.layer},c=L.markerClusterGroup({disableClusteringAtZoom:m.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),l),n=t.shop||t.company?"blue":t.association?"lightgreen":"lightgray",i=e.getChildCount(),a="marker-cluster "+n+" marker-cluster-";return a+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:a,iconSize:new L.Point(40,40)})}});return r.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(c))})),c.addTo(r),e.map.loading=!1,r}))},e.load=function(i){if(!i)return c.getMap(e.mapId).then(e.load);e.loading=!0,i.fire("dataloading");var a={fields:{description:e.enableDescription}};return E.load(a).then((function(a){var o={};if(b.clearLayers(),a&&a.length){var r=t("formatPubkey"),s=n.get("plugins/map/templates/registry/popup_marker.html");_.forEach(a,(function(t){var n=r(t.pubkey),i=t.index+"_"+t.id.replace(/-/g,"_"),a={layer:t.type,icon:g[t.type],opacity:1,title:t.name+" | "+n,lat:t.geoPoint.lat,lng:t.geoPoint.lon,getMessageScope:function(){var n=e.$new();return n.loadingMarker=!0,n.formData={},n.$applyAsync((function(){angular.extend(n.formData,t),n.loadingMarker=!1})),n},focus:!1,message:s,id:i};o[i]=a;var l=t.name+" | "+n,c=angular.merge({type:t.type,opacity:0,icon:L.divIcon({className:t.type+" ng-hide",iconSize:L.point(0,0)})},{title:l,pubkey:t.pubkey,name:t.name,popupMarkerId:i});b.addLayer(new L.Marker({lat:t.geoPoint.lat,lng:t.geoPoint.lon},c))}))}e.map.markers=o,e.loading=!1,i.fire("dataload")})).catch((function(t){e.map.markers={},e.loading=!1,u.onError("MAP.WOT.ERROR.LOAD_POSITION_FAILED")(t)}))},e.updateLocationHref=function(t){(o.search()||{}).c&&m.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),o.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return a((function(){e.updateLocationHref(n)}),300)})),e.startHelpTour=function(){return e.showHelpTip(0,!0)},e.showHelpTip=function(t,n){if(t=angular.isDefined(t)?t:angular.isNumber(d.data.helptip.mapwot)?d.data.helptip.mapwot:0,n=!!angular.isDefined(n)&&n,!(t<0||t>2)){var i=e.createHelptipScope(n,"MapHelpTipCtrl");if(i)return i.tour=n,i.mapId=e.mapId,i.startMapWotTour(t,!1).then((function(e){i.$destroy(),d.data.helptip.mapwot=angular.isNumber(d.data.helptip.mapwot)?Math.max(e,d.data.helptip.mapwot):e,d.store()}))}}}function lt(e,t){angular.extend(this,t("HelpTipCtrl",{$scope:e})),e.mapId=void 0,e.startMapWotTour=function(t,n){var i=[function(){return e.showHelpTip("helptip-map-wot",{bindings:{content:"MAP.HELP.TIP.WOT",icon:{position:"center",glyph:"ion-information-circled"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-search".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_SEARCH",icon:{position:"center"}}})},function(){return e.showHelpTip(null,{selector:"#{0} .leaflet-control-layers".format(e.mapId),bindings:{content:"MAP.HELP.TIP.WOT_BTN_LAYERS",icon:{position:"right"},hasNext:n}})}];return e.executeStep("mapwot",i,t)}}if(angular.module("cesium.settings.services",["ngApi","cesium.config"]).factory("csSettings",["$rootScope","$q","$window","Api","localStorage","$translate","csConfig",function(e,t,n,i,a,o,r){var s=[{id:"en",label:"English",country:"us"},{id:"en-GB",label:"English (UK)",country:"gb"},{id:"eo-EO",label:"Esperanto"},{id:"fr-FR",label:"Français",country:"fr"},{id:"nl-NL",label:"Nederlands",country:"nl"},{id:"es-ES",label:"Spanish",country:"es"},{id:"it-IT",label:"Italiano",country:"it"}],l=r.fallbackLanguage?c(r.fallbackLanguage):"en";function c(e){if(!e)return l;if(_.findWhere(s,{id:e}))return e;var t=e.split("-");if(t.length>1)return c(t[0]);var n=_.find(s,(function(t){return String.prototype.startsWith.call(t.id,e)}));return n?n.id:l}var u,d,p,m,E={STORAGE_KEY:"settings",KEEP_AUTH_IDLE_SESSION:9999},b={timeout:4e3,cacheTimeMs:6e4,timeWarningExpireMembership:5184e3,timeWarningExpire:7776e3,minVersion:"1.1.0",newIssueUrl:"https://git.duniter.org/clients/cesium-grp/cesium/issues/new",userForumUrl:"https://forum.monnaie-libre.fr",latestReleaseUrl:"https://api.github.com/repos/duniter/cesium/releases/latest",duniterLatestReleaseUrl:"https://api.github.com/repos/duniter/duniter/releases/latest",httpsMode:!1},g=angular.merge({useRelative:!1,useLocalStorage:!!n.localStorage,useLocalStorageEncryption:!1,walletHistoryTimeSecond:2592e3,walletHistorySliceSecond:432e3,walletHistoryAutoRefresh:!0,rememberMe:!0,keepAuthIdle:600,showUDHistory:!0,expertMode:!1,decimalCount:4,uiEffects:!0,blockValidityWindow:6,helptip:{enable:!0,installDocUrl:"https://duniter.org/en/wiki/duniter/install/",currency:0,network:0,wotLookup:0,wot:0,wotCerts:0,wallet:0,walletCerts:0,header:0,settings:0},currency:{allRules:!1,allWotRules:!1},wallet:{showPubkey:!0,alertIfUnusedWallet:!0},locale:{id:(p=r.defaultLanguage||o.use(),m=c(p),p!==m&&console.debug("[settings] Fix locale [{0}] -> [{1}]".format(p,m)),m)},license:{en:"license/license_g1-en","fr-FR":"license/license_g1-fr-FR","es-ES":"license/license_g1-es-ES"}},b,r),f={},T=!1,h=new i(this,"csSettings");g.walletHistoryAutoRefresh=!1;var v=function(){if(angular.isUndefined(u)||!angular.equals(u,f))return u=angular.copy(f),h.data.raise.changed(f)},I=function(){return T?(f.useLocalStorage?!0===f.node.temporary?a.getObject(E.STORAGE_KEY).then((function(e){var t=angular.copy(f);return t.node=e&&e.node||{},delete t.temporary,a.setObject(E.STORAGE_KEY,t)})):a.setObject(E.STORAGE_KEY,f):a.setObject(E.STORAGE_KEY,null)).then((function(){return f.useLocalStorage&&console.debug("[setting] Saved locally"),h.data.raisePromise.store(f)})).then(v):(console.debug("[setting] Waiting start finished..."),(d||R()).then(I))},N=function(e){if(e){var t=!1;if(e.locale&&e.locale.id){var n=c(e.locale.id);e.locale=_.findWhere(s,{id:n}),t=!f.locale||e.locale.id!==f.locale.id||e.locale.id!==o.use()}_.keys(b).forEach((function(t){e[t]=g[t]})),angular.merge(f,e),(e&&e.node&&!e.node.temporary||!f.node.temporary)&&delete f.node.temporary,t&&o.use(f.locale.id)}},O=function(){var e=Date.now();return a.getObject(E.STORAGE_KEY).then((function(t){if(!t)return console.debug("[settings] No settings in local storage. Using defaults."),N(g),void v();N(t),console.debug("[settings] Loaded from local storage in "+(Date.now()-e)+"ms"),v()}))},R=function(){return console.debug("[settings] Starting..."),d=a.ready().then(O).then((function(){console.debug("[settings] Started"),T=!0,d=null,h.data.raise.ready(f)}))};return e.$on("$translateChangeSuccess",(function(){var e=o.use();console.debug("[settings] Locale ["+e+"]");try{moment.locale(e.toLowerCase())}catch(t){try{moment.locale(e.substr(0,2))}catch(e){moment.locale("en-gb"),console.warn("[settings] Unknown local for moment lib. Using default [en]")}}try{numeral.language(e.toLowerCase())}catch(t){try{numeral.language(e.substring(0,2))}catch(e){numeral.language("en-gb"),console.warn("[settings] Unknown local for numeral lib. Using default [en]")}}h.locale.raise.changed(e)})),h.registerEvent("data","reset"),h.registerEvent("data","changed"),h.registerEvent("data","store"),h.registerEvent("data","ready"),h.registerEvent("locale","changed"),N(g),{ready:function(){return T?t.when():d||R()},start:R,data:f,apply:N,getByPath:function(e,t){var n=f;return _.each(e.split("."),(function(e){n=n[e],angular.isUndefined(n)&&(n=t)})),n},reset:function(){return _.keys(f).forEach((function(e){delete f[e]})),N(g),h.data.raisePromise.reset(f).then(I)},store:I,restore:O,getLicenseUrl:function(){var e=f.locale&&f.locale.id||r.defaultLanguage||"en";return r.license?r.license[e]?r.license[e]:g.license[r.defaultLanguage||"en"]||r.license:void 0},defaultSettings:g,api:h,locales:s,constants:E}}]),angular.module("cesium.network.services",["ngApi","cesium.currency.services","cesium.http.services"]).factory("csNetwork",["$rootScope","$q","$interval","$timeout","$window","csConfig","BMA","csHttp","csCurrency","Api",function(t,i,a,o,r,s,l,c,u,d){function p(t){var c,p="https:"===r.location.protocol,m=new d(this,"csNetwork-"+t),E={bma:null,listeners:[],loading:!0,peers:[],filter:{member:!0,mirror:!0,endpoint:null,online:!1,bma:!1,ssl:void 0,tor:void 0},sort:{type:null,asc:!0,compact:!0},groupBy:"pubkey",expertMode:!1,knownBlocks:[],mainBlock:null,minOnlineBlockNumber:0,uidsByPubkeys:null,searchingPeersOnNetwork:!1,difficulties:null,ws2pHeads:null,timeout:s.timeout},b=function(e){return e&&[e.number,e.hash].join("-")},g=function(){return E.bma.network.ws2p.heads().then((function(e){E.ws2pHeads=e.heads?e.heads.reduce((function(e,t){if(t.message&&t.sig)try{var i=new n(t.message);e[[i.pubkey,i.ws2pid].join("-")]=i}catch(e){console.error("[network] Ignoring WS2P head.",e&&e.message||e)}return e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return g()}),3e3);console.error(e),E.ws2pHeads={}}))},f=function(){return E.bma.blockchain.stats.difficulties().then((function(e){E.difficulties=e.levels?e.levels.reduce((function(e,t){return t.uid&&t.level&&(e[t.uid]=t.level),e}),{}):{}})).catch((function(e){if(e&&e.ucode==l.errorCodes.HTTP_LIMITATION)return o((function(){return f()}),3e3);console.error(e),E.difficulties={}}))},T=function(){E.peers=[],E.searchingPeersOnNetwork=!0,E.loading=!0,E.bma=E.bma||l;var t=[];c&&a.cancel(c),c=a((function(){t.length?O(t):E.loading&&!E.searchingPeersOnNetwork&&(E.loading=!1,a.cancel(c),A(!0),console.debug("[network] Finish: {0} peers found.".format(E.peers.length)))}),1e3);var n=[E.bma.wot.member.uids().then((function(e){E.uidsByPubkeys=e})).catch((function(e){console.error(e),E.uidsByPubkeys={}})),g()];return E.expertMode&&n.push(f()),i.all(n).then((function(){return E.bma.network.peers()})).then((function(n){if(n&&n.peers&&n.peers.length){if(!E.filter.online)return i.all(_(n&&n.peers||[]).reduce((function(e,n){return e.concat(v(n,t))}),[]));var a=[];_.forEach(n.peers,(function(e){"UP"===e.status&&(e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.blockNumber&&e.blockNumber<E.minOnlineBlockNumber?console.debug("[network] Exclude a too old peer document, on pubkey {0}".format(e.pubkey.substring(0,6))):(a.push(v(e,t)),_.forEach(e.endpoints||[],(function(t){if(t.startsWith("WS2P")){var n=e.pubkey+"-"+t.split(" ")[1];E.ws2pHeads[n]&&(E.ws2pHeads[n].hasEndpoint=!0)}}))))}));var o=_.values(E.ws2pHeads);if(o&&o.length){var r=0;_.forEach(o,(function(n){if(!n.hasEndPoint){var i=n.buid&&parseInt(n.buid.split("-")[0]);if(i&&i<E.minOnlineBlockNumber)return void console.debug("[network] Exclude a too old WS2P message, on pubkey {0}".format(n.pubkey.substring(0,6)));var a=new e({buid:n.buid,currentNumber:i,pubkey:n.pubkey,version:n.version,powPrefix:n.powPrefix,online:!0,uid:E.uidsByPubkeys[n.pubkey],bma:{useWs2p:!0,private:!0,ws2pid:n.ws2pid},endpoints:["WS2P "+n.ws2pid]});a.id=a.keyID(),a.uid&&E.expertMode&&E.difficulties&&(a.difficulty=E.difficulties[a.uid]),h(a)&&(t.push(a),r++)}})),r&&console.debug("[http] Found {0} WS2P endpoints without endpoint (private ?)".format(r))}return a.length?i.all(a):void 0}})).then((function(){E.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),E.searchingPeersOnNetwork=!1}))},h=function(e){return!(E.filter&&(E.filter.member&&!E.filter.mirror&&!e.uid||E.filter.mirror&&!E.filter.member&&e.uid||E.filter.endpoint&&!e.hasEndpoint(E.filter.endpoint)||E.filter.online&&"UP"!==e.status&&e.oldBlock||!E.filter.online&&"UP"===e.status&&!e.oldBlock||angular.isDefined(E.filter.bma)&&e.isBma()!=E.filter.bma||angular.isDefined(E.filter.ws2p)&&e.isWs2p()!=E.filter.ws2p||angular.isDefined(E.filter.ssl)&&e.isSsl()!=E.filter.ssl||angular.isDefined(E.filter.tor)&&e.isTor()!=E.filter.tor))},v=function(e,t){t=t||E.newPeers,e.blockNumber=e.block&&parseInt(e.block.split("-")[0]),e.oldBlock="UP"===e.status&&e.blockNumber&&e.blockNumber<E.minOnlineBlockNumber;var n=I(e),a=!1,o=n.reduce((function(e,n){var i=_.findWhere(E.peers,{id:n.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(N(n).then((function(e){i?!e||e.online!==E.filter.online&&"all"!==E.filter.online?(console.debug("[network] Peer [{0}] removed (cause: {1})".format(n.server,e?e.online?"UP":"DOWN":"filtered")),E.peers.splice(E.peers.indexOf(i),1),a=!0):e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server)):!e||e.online!==E.filter.online&&"all"!==E.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.bma&&(e.bma.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),t.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:i.all(o)).then((function(){return a}))},I=function(t,n){if(!t)return[];var i=new e(t);if(!n){var a=i.getEndpoints();if(!a)return[];var o=a.reduce((function(e,t){var n=l.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(o.length>1)return o.reduce((function(e,n){return e.concat(I(t,n))}),[]);n=o[0]}return i.bma=n,i.server=i.getServer(),i.dns=i.getDns(),i.buid=i.buid||i.block,i.blockNumber=i.buid&&parseInt(i.buid.split("-")[0]),i.uid=i.pubkey&&E.uidsByPubkeys[i.pubkey],i.id=i.keyID(),[i]},N=function(e){if(!h(e))return i.when();if(!E.filter.online||!E.filter.online&&"DOWN"===e.status||!e.getHost())return e.online=!1,i.when(e);if(e.bma.useWs2p&&E.ws2pHeads){var t=[e.pubkey,e.bma.ws2pid].join("-"),n=E.ws2pHeads[t];return delete E.ws2pHeads[t],n&&(e.buid=n.buid,e.currentNumber=n.buid&&parseInt(n.buid.split("-")[0]),e.version=n.version,e.powPrefix=n.powPrefix),e.online=!!e.buid,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e)}return e.bma.useWs2p||!p||e.bma.useSsl?e.bma.useTor||e.bma.useWs2p?(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e)):(e.api=e.api||l.lightInstance(e.getHost(),e.getPort(),e.isSsl(),E.timeout),e.api.blockchain.current().then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=b(t),e.medianTime=t.medianTime,-1===E.knownBlocks.indexOf(e.buid)&&E.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==l.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=b({number:0,hash:l.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.bma||e.getBMA();if(n.dns&&-1===e.server.indexOf(n.dns))return e.secondTry=!0,e.api=l.lightInstance(n.dns,n.port,n.useSsl),N(e)}return e.buid=null,e.blockNumber=null,e.currentNumber=null,e.online=!1,e.uid=E.uidsByPubkeys[e.pubkey],e})).then((function(e){if(!(E.filter.online&&e&&e.online&&E.expertMode))return e;var t=[];return e.uid&&t.push(e.api.blockchain.stats.hardship({pubkey:e.pubkey}).then((function(t){e.difficulty=t?t.level:null})).catch((function(){e.difficulty=null}))),t.push(e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"}))),i.all(t).then((function(){return e}))}))):(e.online="UP"===e.status,e.buid=-1,delete e.version,e.uid&&E.expertMode&&E.difficulties&&(e.difficulty=E.difficulties[e.uid]),i.when(e))},O=function(e,t){if((e=e||E.newPeers).length){var n=_.map(E.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(E.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),A(t))}},R=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},A=function(e){var t={};E.memberPeersCount=0,_.forEach(E.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,medianTime:e.medianTime,count:0},t[e.buid]=n),-1!==n.buid&&n.count++}E.memberPeersCount+=e.uid?1:0}));var n,i=E.mainBlock;E.filter.online&&(_.forEach(_.values(t),(function(e){e.pct=100*e.count/E.peers.length})),i=_.max(t,(function(e){return e.count})),_.forEach(E.peers,(function(e){e.hasMainConsensusBlock=e.buid===i.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-i.medianTime)}))),E.peers=_.uniq(E.peers,!1,(function(e){return e.id})),E.peers=_.sortBy(E.peers,(function(e){var n=0;return E.sort.type&&(n+="uid"===E.sort.type?R(e.uid||e.pubkey,3,E.sort.asc):0,n+="api"===E.sort.type&&(e.isWs2p()&&(E.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(E.sort.asc?.01:-.01)||0)+(e.isSsl()&&(E.sort.asc?.75:-.75)||0)||0,n+="difficulty"===E.sort.type&&e.difficulty?E.sort.asc?1e4-e.difficulty:e.difficulty:0,n+="current_block"===E.sort.type&&e.currentNumber?E.sort.asc?1e9-e.currentNumber:e.currentNumber:0),n*=1e10,n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),E.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?R(e.uid,2,!0):0)):(n+=100*(e.uid?R(e.uid,2,!0):0),n+=1*(e.uid?0:R(e.pubkey,2,!0))),-(n+=e.isBma()?e.isSsl()?.01:.001:0)})),E.groupBy&&E.peers.forEach((function(e){e.compacted=n&&e[E.groupBy]&&e[E.groupBy]===n[E.groupBy],n=e})),!e||!i.buid||E.mainBlock&&E.mainBlock.buid===i.buid||(E.mainBlock=i,m.data.raise.mainBlockChanged(i)),m.data.raise.changed(E)},S=function(e,t){return t=t||{},l.ready().then((function(){if(C(),E.bma=e||l,E.filter=t.filter?angular.merge(E.filter,t.filter):E.filter,E.sort=t.sort?angular.merge(E.sort,t.sort):E.sort,E.expertMode=angular.isDefined(t.expertMode)?t.expertMode:E.expertMode,E.timeout=angular.isDefined(t.timeout)?t.timeout:s.timeout,E.minOnlineBlockNumber=E.mainBlock&&E.mainBlock.buid&&parseInt(E.mainBlock.buid.split("-")[0])-1e3||void 0,void 0===E.minOnlineBlockNumber)return u.blockchain.current(!0).then((function(e){E.minOnlineBlockNumber=e.number-1e3}))})).then((function(){console.info("[network] Starting network from [{0}]".format(e.server));var t=Date.now();return E.listeners=[E.bma.websocket.block().onListener((function(e){if(e&&!E.loading){var t=[e.number,e.hash].join("-");-1===E.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),E.knownBlocks.push(t),1===E.knownBlocks.length||(E.loading=!0,o((function(){console.debug("[network] new block received by WS: will refresh peers"),T()}),2e3,!1)))}})),E.bma.websocket.peer().onListener((function(e){if(e&&!E.loading){var t=[];v(e,t).then((function(e){e&&(t.length>0?O(t,!0):(console.debug("[network] [ws] Peers updated received"),A(!0)))}))}}))],T().then((function(e){return console.debug("[network] Started in "+(Date.now()-t)+"ms"),e}))}))},C=function(){E.bma&&(console.info("[network-service] Stopping..."),_.forEach(E.listeners,(function(e){e()})),E.listeners=[],E.bma=null,E.listeners=[],E.peers.splice(0),E.filter={member:!0,mirror:!0,endpoint:null,online:!0,bma:!1,ssl:void 0,tor:void 0},E.sort={type:null,asc:!0},E.groupBy="pubkey",E.expertMode=!1,E.memberPeersCount=0,E.knownBlocks=[],E.mainBlock=null,E.minOnlineBlockNumber=0,E.uidsByPubkeys={},E.loading=!0,E.searchingPeersOnNetwork=!1,E.difficulties=null,E.ws2pHeads=null,E.timeout=s.timeout)},L=function(e){return E.bma?S().then((function(){return i(e)})):i(e)};return m.registerEvent("data","changed"),m.registerEvent("data","mainBlockChanged"),m.registerEvent("data","rollback"),{id:t,data:E,start:S,close:C,hasPeers:function(){return E.peers&&E.peers.length>0},getPeers:function(){return E.peers},sort:function(e){e=e||{},E.filter=e.filter?angular.merge(E.filter,e.filter):E.filter,E.sort=e.sort?angular.merge(E.sort,e.sort):E.sort,A(!1)},getTrustedPeers:function(){return L((function(e,t){e(E.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return E.knownBlocks},getMainBlockUid:function(){return L((function(e,t){e(E.mainBuid)}))},loadPeers:T,isBusy:function(){return E.loading},api:m}}var m=new p("default");return m.instance=function(e){return new p(e)},m}]),angular.module("cesium.crypto.services",["cesium.utils.services"]).factory("CryptoUtils",["$q","$timeout","ionicReady",function(e,t,n){function i(){this.loaded=!1;var e=this;this.copy=function(t){_.forEach(_.keys(t),(function(n){e[n]=t[n]}))},this.isLoaded=function(){return this.loaded},this.util=this.util||{},this.util.array_to_string=function(e,t){var n=new Blob([new Uint8Array(e)]),i=new FileReader;i.onload=function(e){t(e.target.result)},i.readAsText(n)}}i.prototype.constants={crypto_sign_BYTES:64,crypto_secretbox_NONCEBYTES:24,crypto_box_MACBYTES:16,SEED_LENGTH:32,SCRYPT_PARAMS:{SIMPLE:{N:2048,r:8,p:1,memory:-1},DEFAULT:{N:4096,r:16,p:1,memory:-1},SECURE:{N:16384,r:32,p:2,memory:33554432},HARDEST:{N:65536,r:32,p:4,memory:134217728},EXTREME:{N:262144,r:64,p:8,memory:536870912}}},i.prototype.async_load_base58=function(e){var n=this;if(null!==Base58)return e(Base58);t((function(){n.async_load_base58(e)}),100)},i.prototype.async_load_scrypt=function(e,n){var i=this;null!==scrypt_module_factory?scrypt_module_factory(e,n):t((function(){i.async_load_scrypt(e,n)}),100)},i.prototype.async_load_nacl_js=function(e,n){var i=this;null!==nacl_factory?nacl_factory.instantiate(e,n):t((function(){i.async_load_nacl_js(e,n)}),100)},i.prototype.async_load_base64=function(e){var t=this;null!==Base64?e(Base64):$timetout((function(){t.async_load_base64(e)}),100)},i.prototype.async_load_sha256=function(e){var n=this;if(null!==sha256)return e(sha256);t((function(){n.async_load_sha256(e)}),100)},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t},i.prototype.seed_from_signSk=function(e){for(var t=new Uint8Array(that.constants.SEED_LENGTH),n=0;n<t.length;n++)t[n]=e[n];return t};var a=window.crypto||window.msCrypto||window.Crypto;function o(){this.id="FullJS",this.scrypt=null,this.nacl=null,this.base58=null,this.base64=null;var t=this;function n(e,t){if(0!==t)throw{message:"nacl_raw."+e+" signalled an error"}}function i(e,n,i,o,r){return function(e,t,n,i){if(n.length!==i)throw{message:"nacl."+e+" expected "+i+"-byte "+t+" but got length "+n.length}}(e,n,i,o),function(e,n){var i=n||0,o=a(e.length+i);t.nacl.nacl_raw.HEAPU8.set(e,o+i);for(var r=o;r<o+i;r++)t.nacl.nacl_raw.HEAPU8[r]=0;return o}(i,r)}function a(e){var n=t.nacl.nacl_raw._malloc(e);if(0===n)throw{message:"malloc() failed",nbytes:e};return n}function o(e){t.nacl.nacl_raw._free(e)}function r(e){this.length=e,this.address=a(e)}this.util=this.util||{},this.util.decode_utf8=function(e){var t,n=unescape(encodeURIComponent(e)),i=new Uint8Array(n.length);for(t=0;t<n.length;t++)i[t]=n.charCodeAt(t);return i},this.util.encode_utf8=function(e){return t.nacl.encode_utf8(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.base64.decode(e)},this.util.encode_base64=function(e){return t.base64.encode(e)},this.util.hash_sha256=function(n){return e((function(e){var i=t.util.decode_utf8(n);e(t.nacl.to_hex(t.nacl.crypto_hash_sha256(i)).toUpperCase())}))},this.util.random_nonce=function(){if(t.crypto&&t.crypto.getRandomValues){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)}return e.when(t.nacl.crypto_box_random_nonce())},this.util.crypto_hash_sha256=function(e){return t.nacl.crypto_hash_sha256(e)},this.util.crypto_scrypt=function(n,i,a,o,r,s){return e((function(e,l){try{e(t.scrypt.crypto_scrypt(n,i,a,o,r,s))}catch(e){l(e)}}))},this.box_keypair_from_sign=function(a){return a.boxSk&&a.boxPk?e.when(a):e((function(e,a){try{e((s=i("crypto_box_keypair_from_sign_sk","sk",signPk,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),l=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(l.address,s)),o(s),t.nacl.crypto_box_keypair_from_raw_sk(l.extractBytes())))}catch(e){a(e)}var s,l}))},this.box_pk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_pk_from_sign_pk","pk",a,t.nacl.nacl_raw._crypto_sign_publickeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_publickeybytes()),n("_crypto_sign_ed25519_pk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_pk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box_sk_from_sign=function(a){return e((function(e,s){try{e((l=i("crypto_box_sk_from_sign_sk","sk",a,t.nacl.nacl_raw._crypto_sign_secretkeybytes()),c=new r(t.nacl.nacl_raw._crypto_box_secretkeybytes()),n("_crypto_sign_ed25519_sk_to_curve25519",t.nacl.nacl_raw._crypto_sign_ed25519_sk_to_curve25519(c.address,l)),o(l),c.extractBytes()))}catch(e){s(e)}var l,c}))},this.box=function(n,i,a,o){return e((function(e,r){if(n){var s=t.nacl.encode_utf8(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box(s,i,a,o);e(t.util.encode_base64(l))}catch(e){r(e)}}else e(n)}))},this.box_open=function(n,i,a,o){return e((function(e,r){if(n){var s=t.util.decode_base64(n);"string"==typeof a&&(a=t.util.decode_base58(a));try{var l=t.nacl.crypto_box_open(s,i,a,o);e(t.nacl.decode_utf8(l))}catch(e){r(e)}}else e(n)}))},this.scryptKeypair=function(e,n,i){return t.util.crypto_scrypt(t.util.encode_utf8(n),t.util.encode_utf8(e),i&&i.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,i&&i.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,i&&i.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH).then((function(e){var n=t.nacl.crypto_sign_seed_keypair(e),i=t.nacl.crypto_box_seed_keypair(e);return{signPk:n.signPk,signSk:n.signSk,boxPk:i.boxPk,boxSk:i.boxSk}}))},this.seedKeypair=function(n){return e((function(e,i){var a=t.nacl.crypto_sign_seed_keypair(n),o=t.nacl.crypto_box_seed_keypair(n);e({signPk:a.signPk,signSk:a.signSk,boxPk:o.boxPk,boxSk:o.boxSk})}))},this.scryptSignPk=function(n,i,a){return e((function(e,o){try{var r=t.scrypt.crypto_scrypt(t.util.encode_utf8(i),t.util.encode_utf8(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH);e(t.nacl.crypto_sign_seed_keypair(r).signPk)}catch(e){o(e)}}))},this.verify=function(n,i,a){return e((function(e,o){var r,s=t.util.decode_utf8(n),l=t.util.decode_base64(i),c=t.util.decode_base58(a),u=new Uint8Array(t.constants.crypto_sign_BYTES+s.length);for(r=0;r<t.constants.crypto_sign_BYTES;r++)u[r]=l[r];for(r=0;r<s.length;r++)u[r+t.constants.crypto_sign_BYTES]=s[r];e(null!==t.nacl.crypto_sign_open(u,c))}))},this.sign=function(n,i){return e((function(e,a){for(var o=t.util.decode_utf8(n),r=i.signSk,s=t.nacl.crypto_sign(o,r),l=new Uint8Array(t.constants.crypto_sign_BYTES),c=0;c<l.length;c++)l[c]=s[c];e(t.base64.encode(l))}))},this.load=function(){var n=e.defer(),i={},a={};"a"!=ionic.Platform.grade.toLowerCase()&&(console.info("Reduce NaCl memory to 16mb,  because plateform grade is not [a] but [{0}]".format(ionic.Platform.grade)),i.requested_total_memory=16777216);var o=0,r=function(){4==++o&&(t.loaded=!0,n.resolve())};return this.async_load_nacl_js((function(e){t.nacl=e,r()}),i),this.async_load_scrypt((function(e){t.scrypt=e,t.scrypt.requested_total_memory=a.requested_total_memory,r()}),a),this.async_load_base58((function(e){t.base58=e,r()})),t.async_load_base64((function(e){t.base64=e,r()})),n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open},r.prototype.extractBytes=function(e){var n=function(e,n){var i=new Uint8Array(n);return i.set(t.nacl.nacl_raw.HEAPU8.subarray(e,e+n)),i}(this.address+(e||0),this.length-(e||0));return o(this.address),this.address=null,n}}function r(){this.id="MiniSodium",this.nacl=null,this.base58=null,this.sha256=null;var t=this;this.util=this.util||{},this.util.decode_utf8=function(e){return t.nacl.to_string(e)},this.util.encode_utf8=function(e){return t.nacl.from_string(e)},this.util.encode_base58=function(e){return t.base58.encode(e)},this.util.decode_base58=function(e){var n,i=t.base58.decode(e),a=new Uint8Array(i.length);for(n=0;n<i.length;n++)a[n]=i[n];return a},this.util.decode_base64=function(e){return t.nacl.from_base64(e)},this.util.encode_base64=function(e){return t.nacl.to_base64(e)},this.util.hash_sha256=function(n){return e.when(t.sha256(n).toUpperCase())},this.util.random_nonce=function(){var n=new Uint8Array(t.constants.crypto_secretbox_NONCEBYTES);return t.crypto.getRandomValues(n),e.when(n)},this.util.crypto_hash_sha256=function(e){return t.nacl.from_hex(t.sha256(e))},this.util.crypto_scrypt=function(n,i,a,o,r,s){var l=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(n,i,a,o,r,s,(function(e,t){e?l.reject(e):l.resolve(t)})),l.promise},this.scryptKeypair=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,n){if(e)o.reject(e);else{var i={signPk:n.pk,signSk:n.sk};t.box_keypair_from_sign(i).then((function(e){i.boxPk=e.pk,i.boxSk=e.sk,o.resolve(i)})).catch((function(e){o.reject(e)}))}}))})),o.promise},this.seedKeypair=function(n){var i=e.defer();return t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?i.reject(e):i.resolve({signPk:t.pk,signSk:t.sk})})),i.promise},this.scryptSignPk=function(n,i,a){var o=e.defer();return t.nacl.crypto_pwhash_scryptsalsa208sha256_ll(t.nacl.from_string(i),t.nacl.from_string(n),a&&a.N||t.constants.SCRYPT_PARAMS.DEFAULT.N,a&&a.r||t.constants.SCRYPT_PARAMS.DEFAULT.r,a&&a.p||t.constants.SCRYPT_PARAMS.DEFAULT.p,t.constants.SEED_LENGTH,(function(e,n){e?o.reject(e):t.nacl.crypto_sign_seed_keypair(n,(function(e,t){e?o.reject(e):o.resolve(t.pk)}))})),o.promise},this.verify=function(n,i,a){var o=e.defer();return t.nacl.crypto_sign_verify_detached(t.nacl.from_base64(i),t.nacl.from_string(n),t.nacl.from_base64(a),(function(e,t){e?o.reject(e):o.resolve(t)})),o.promise},this.sign=function(n,i){var a=e.defer();return t.nacl.crypto_sign(t.nacl.from_string(n),i.signSk,(function(e,n){if(e)a.reject(e);else{var i;if(n.length>t.constants.crypto_sign_BYTES){i=new Uint8Array(t.constants.crypto_sign_BYTES);for(var o=0;o<i.length;o++)i[o]=n[o]}else i=n;var r=t.nacl.to_base64(i);a.resolve(r)}})),a.promise},this.box_keypair_from_sign=function(n){if(n.boxSk&&n.boxPk)return e.when(n);var i=e.defer(),a={};return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n.signPk,(function(e,t){e?i.reject(e):(a.boxPk=t,a.boxSk&&i.resolve(a))})),t.nacl.crypto_sign_ed25519_sk_to_curve25519(n.signSk,(function(e,t){e?i.reject(e):(a.boxSk=t,a.boxPk&&i.resolve(a))})),i.promise},this.box_pk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_pk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box_sk_from_sign=function(n){var i=e.defer();return t.nacl.crypto_sign_ed25519_sk_to_curve25519(n,(function(e,t){e?i.reject(e):i.resolve(t)})),i.promise},this.box=function(n,i,a,o){if(!n)return e.reject("No message");var r=e.defer(),s=t.nacl.from_string(n);return"string"==typeof a&&(a=t.util.decode_base58(a)),t.nacl.crypto_box_easy(s,i,a,o,(function(e,n){if(e)r.reject(e);else{var i=t.util.encode_base64(n);r.resolve(i)}})),r.promise},this.box_open=function(n,i,a,o){if(!n)return e.reject("No cypherText");var r=e.defer(),s=t.nacl.from_base64(n);if("string"==typeof a&&(a=t.util.decode_base58(a)),!(s.length<t.constants.crypto_box_MACBYTES))return t.nacl.crypto_box_open_easy(s,i,a,o,(function(e,n){e?r.reject(e):t.util.array_to_string(n,(function(e){r.resolve(e)}))})),r.promise;r.reject("Invalid cypher content length")},this.load=function(){var n=e.defer();if(window.plugins&&window.plugins.MiniSodium){t.nacl=window.plugins.MiniSodium;var i=0,a=function(){2==++i&&(t.loaded=!0,n.resolve())};t.async_load_base58((function(e){t.base58=e,a()})),t.async_load_sha256((function(e){t.sha256=e,a()}))}else n.reject("Cordova plugin 'MiniSodium' not found. Please load Full JS implementation instead.");return n.promise},this.util.hash=t.util.hash_sha256,this.box={keypair:{fromSignKeypair:t.box_keypair_from_sign,skFromSignSk:t.box_sk_from_sign,pkFromSignPk:t.box_pk_from_sign},pack:t.box,open:t.box_open}}a&&a.getRandomValues&&(i.prototype.crypto=a,i.prototype.util={},i.prototype.util.random_nonce=function(){var t=new Uint8Array(crypto_secretbox_NONCEBYTES);return this.crypto.getRandomValues(t),e.when(t)}),o.prototype=new i,r.prototype=new i;var s=new i;return n().then((function(){console.debug("[crypto] Starting...");var e,t=Date.now();window.plugins&&window.plugins.MiniSodium&&a&&a.getRandomValues?(console.debug("[crypto] Loading 'MiniSodium' implementation..."),e=new r):(console.debug("[crypto] Loading 'FullJS' implementation..."),e=new o),e.load().catch((function(e){throw console.error(e),e})).then((function(){s.copy(e),console.debug("[crypto] Loaded '{0}' implementation in {1}ms".format(s.id,Date.now()-t))}))})),s}]).factory("csCrypto",["$q","$rootScope","$timeout","CryptoUtils","UIUtils","Modals",function(e,t,n,i,a,o){function r(e){return new RegExp(e)}function s(e,t){for(var n=Math.max(e.length,t.length),i=new Uint8Array(n),a=0;a<n;++a)i[a]=e[a]^t[a];return i}function l(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n}var c={WIF:{DATA_LENGTH:35},EWIF:{SALT_LENGTH:4,DERIVED_HALF_LENGTH:16,DATA_LENGTH:39,SCRYPT_PARAMS:{N:16384,r:8,p:8}},REGEXP:{PUBKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",SECKEY:"[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88}",FILE:{TYPE_LINE:"^Type: ([a-zA-Z0-9]+)\n",VERSION:"Version: ([0-9]+)\n",PUB:"[Pp]ub: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44})\n",SEC:"[Ss]ec: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{86,88})(\n|$)",DATA:"[Dd]ata: ([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+)(\n|$)"}}},u={FILE:{TYPE_LINE:r(c.REGEXP.FILE.TYPE_LINE),VERSION:r(c.REGEXP.FILE.VERSION),PUB:r(c.REGEXP.FILE.PUB),SEC:r(c.REGEXP.FILE.SEC),DATA:r(c.REGEXP.FILE.DATA)}},d={BAD_PASSWORD:3001,BAD_CHECKSUM:3002};function p(t,n){if(!t)return e.reject("Argument [content] is missing");var a;(n=n||{}).withSecret=!!angular.isDefined(n.withSecret)&&n.withSecret,n.defaultType=n.defaultType||"PubSec";var o=u.FILE.TYPE_LINE.exec(t),r=o&&o[1];if(!r&&n.defaultType)return p("Type: {0}\n{1}".format(n.defaultType,t),n);if("PubSec"==r){if(!(a=u.FILE.PUB.exec(t)))return e.reject("Missing [pub] field in file, or invalid public key value");var s={signPk:i.base58.decode(a[1])};return n.withSecret?(a=u.FILE.SEC.exec(t))?(s.signSk=i.base58.decode(a[1]),e.resolve(s)):e.reject("Missing [sec] field in file, or invalid secret key value"):e.resolve(s)}return"WIF"==r||"EWIF"==r?(a=u.FILE.DATA.exec(t))?m(a[1],{type:r,password:n.password}).then((function(e){return e&&!n.withSecret?{signPk:e.signPk}:e})):e.reject("Missing [Data] field in file. This is required for WIF or EWIF format"):n.defaultType?e.reject("Bad file format: missing Type field"):e.reject("Bad file format, unknown type ["+r+"]")}function m(t,n){n=n||{};var a=t&&i.base58.decode(t);return!a||a.length!=c.EWIF.DATA_LENGTH&&a.length!=c.WIF.DATA_LENGTH?e.reject("Invalid WIF or EWIF format (invalid bytes count)."):(n.type=n.type||1==a[0]&&"WIF"||2==a[0]&&"EWIF","WIF"==n.type?function(t){var n=i.util.decode_base58(t);if(1!=n[0])return e.reject({message:"Invalid WIF v1 format: expected [0x01] as first byte"});if(n.length!=c.WIF.DATA_LENGTH)return e.reject({message:"Invalid WIF v1 format: Data must be a "+c.WIF.DATA_LENGTH+" bytes array, encoded in base 58."});var a=n.slice(0,-2),o=n.slice(1,-2),r=n.slice(-2),s=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(a)).slice(0,2);return i.util.encode_base58(r)!=i.util.encode_base58(s)&&e.reject({message:"Invalid WIF format: bad checksum"}),i.seedKeypair(o)}(t):"EWIF"==n.type?"function"!=typeof n.password||(n.password=n.password(),n.password)?"object"==typeof n.password&&n.password.then?n.password.then((function(e){if(!e)throw"CANCELLED";return E(t,e)})):"string"==typeof n.password?E(t,n.password):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):e.reject({message:"Invalid WIF or EWIF format: unknown first byte identifier."}))}function E(t,n){var a=i.util.decode_base58(t);if(2!=a[0])return e.reject({message:"Invalid EWIF v1 format: Expected [0x02] as first byte"});if(a.length!=c.EWIF.DATA_LENGTH)return e.reject({message:"Invalid EWIF v1 format: Expected {0} bytes, encoded in base 58.".format(c.EWIF.DATA_LENGTH)});var o=a.slice(0,-2),r=a.slice(-2),u=a.slice(1,5),p=a.slice(5,21),m=a.slice(21,37);return i.util.crypto_scrypt(i.util.encode_utf8(n),u,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),i=new aesjs.ModeOfOperation.ecb(n),a=i.decrypt(p),o=i.decrypt(m);return a=new Uint8Array(a),o=new Uint8Array(o),l(s(a,t.slice(0,16)),s(o,t.slice(16,32)))})).then(i.seedKeypair).then((function(e){var t=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(e.signPk)).slice(0,4);if(i.util.encode_base58(u)!==i.util.encode_base58(t))throw{ucode:d.BAD_PASSWORD,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"};var n=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2);if(i.util.encode_base58(r)!=i.util.encode_base58(n))throw{ucode:d.BAD_CHECKSUM,message:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_CHECKSUM"};return e}))}function b(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([i.box.keypair.skFromSignSk(t.signSk),i.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{errorCodes:d,constants:c,util:angular.extend({pkChecksum:function(e){var t=i.util.decode_base58(e);return i.util.encode_base58(i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t))).substring(0,3)}},i.util),keyfile:{read:function(t,n){return t&&t.content?p(t.content,n):e((function(e,i){if(!t)return i("Argument [file] is missing");var a=new FileReader;a.onload=function(t){p(t.target.result,n).then(e).catch(i)},a.readAsText(t,"utf8")}))},parseData:function e(t,i){return(i=i||{}).withSecret=!angular.isDefined(i.withSecret)||i.withSecret,i.silent=!!angular.isDefined(i.withSecret)&&i.silent,i.password=function(){return a.loading.hide(100).then((function(){return o.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP",error:i.error,scope:i.scope})})).then((function(e){return n((function(){return e&&a.loading.show(),e}),150)}))},i.silent||a.loading.show(),m(t,i).then((function(e){return e})).catch((function(n){if(!n||"CANCELLED"!==n){if(n&&n.ucode==d.BAD_PASSWORD)return e(t,{withSecret:i.withSecret,error:"ACCOUNT.SECURITY.KEYFILE.ERROR.BAD_PASSWORD"});throw console.error("[crypto] Unable to parse as WIF or EWIF format: "+(n&&n.message||n)),n}}))},generateContent:function t(n,a){switch((a=a||{}).type=a.type||"PubSec",a.type){case"PubSec":return e.resolve("Type: PubSec\nVersion: 1\npub: "+i.base58.encode(n.signPk)+"\nsec: "+i.base58.encode(n.signSk)+"\n");case"WIF":return function(t){var n=i.seed_from_signSk(t.signSk);if(!n||n.byteLength!==i.constants.SEED_LENGTH)throw"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH);var a=new Uint8Array(1);a[0]=1;var o=l(a,n),r=l(o,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(o)).slice(0,2));return e.when(i.util.encode_base58(r))}(n).then((function(e){return"Type: WIF\nVersion: 1\nData: "+e+"\n"}));case"EWIF":return a.password?a.password&&"function"==typeof a.password&&(console.debug("[crypto] [EWIF] Executing 'options.password()' to resolve the password..."),a.password=a.password(),!a.password)?e.reject({message:"Invalid callback result for 'options.password()': must return a promise or a string."}):a.password&&"object"==typeof a.password&&a.password.then?a.password.then((function(e){if(!e)throw"CANCELLED";return t(n,angular.merge({},a,{password:e}))})):a.password&&"string"==typeof a.password?function(t,n){var a=i.seed_from_signSk(t.signSk);if(!a||a.byteLength!==i.constants.SEED_LENGTH)return e.reject({message:"Bad see format. Expected {0} bytes".format(i.constants.SEED_LENGTH)});var o=i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(t.signPk)).slice(0,4);return i.util.crypto_scrypt(i.util.encode_utf8(n),o,c.EWIF.SCRYPT_PARAMS.N,c.EWIF.SCRYPT_PARAMS.r,c.EWIF.SCRYPT_PARAMS.p,64).then((function(e){var t=e.slice(0,32),n=e.slice(32,64),r=s(a.slice(0,16),t.slice(0,16)),c=s(a.slice(16,32),t.slice(16,32)),u=new aesjs.ModeOfOperation.ecb(n),d=u.encrypt(r),p=u.encrypt(c);d=new Uint8Array(d),p=new Uint8Array(p);var m=new Uint8Array(1);return m[0]=2,m=l(m,o),m=l(m,d),m=l(m,p),m=l(m,i.util.crypto_hash_sha256(i.util.crypto_hash_sha256(m)).slice(0,2)),i.util.encode_base58(m)}))}(n,a.password).then((function(e){return"Type: EWIF\nVersion: 1\nData: "+e+"\n"})):e.reject({message:"Invalid EWIF options.password. Waiting a callback function, a promise or a string."}):e.reject({message:"Missing EWIF options.password."});default:return e.reject({message:"Unknown keyfile format: "+a.type})}}},box:{getKeypair:b,pack:function(t,n,a,o,r){if(!t[a=a||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(o=o||"content")&&(o=[o]),t=angular.copy(t);var s=i.util.decode_base58(t[a]);return e.all([b(n),i.box.keypair.pkFromSignPk(s),r?e.when(r):i.util.random_nonce()]).then((function(n){var a=n[0].boxSk,r=n[1],s=n[2];return e.all(o.reduce((function(e,n){return t[n]?e.concat(i.box.pack(t[n],s,r,a)):e}),[])).then((function(e){var n=0;return _.forEach(o,(function(i){t[i]?t[i]=e[n++]:t[i]=null})),t.nonce=i.util.encode_base58(s),t}))}))},open:function(t,n,a,o){a=a||"issuer","string"==typeof(o=o||"content")&&(o=[o]);var r=Date.now(),s={},l=[b(n)];return e.all(t.reduce((function(e,t){var n=t[a];if(!n)throw"Record has no "+a;return s[n]?res:e.concat(i.box.keypair.pkFromSignPk(i.util.decode_base58(n)).then((function(e){s[n]=e})))}),l)).then((function(n){var r=n[0];return e.all(t.reduce((function(e,t){var n=s[t[a]],l=i.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.reduce((function(e,a){return t[a]?e.concat(i.box.open(t[a],l,n,r.boxSk).then((function(e){t[a]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+a),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-r)+"ms"),t}))}}}}]),angular.module("cesium.utils.services",[]).factory("ionicReady",["$ionicPlatform",function(e){var t;return function(){return t||(t=e.ready()),t}}]).factory("UIUtils",["$ionicLoading","$ionicPopup","$ionicConfig","$ionicHistory","$translate","$q","ionicMaterialInk","ionicMaterialMotion","$window","$timeout","Fullscreen","$cordovaToast","$ionicPopover","$state","$rootScope","screenmatch",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){var g,f=null,T={MAX_HEIGHT:480,MAX_WIDTH:640,THUMB_MAX_HEIGHT:200,THUMB_MAX_WIDTH:200},h={smallscreen:b.bind("xs, sm",E)},v={};function I(e,n){return e?o((function(i){a([e,n,"ERROR.POPUP_TITLE","ERROR.UNKNOWN_ERROR","COMMON.BTN_OK"]).then((function(a){var o=e.message||a[e];return t.show({template:"<p>"+(o||a["ERROR.UNKNOWN_ERROR"])+"</p>",title:a["ERROR.POPUP_TITLE"],subTitle:a[n],buttons:[{text:"<b>"+a["COMMON.BTN_OK"]+"</b>",type:"button-assertive",onTap:function(e){i(e)}}]})}))})):o.when()}function N(e,n){return o((function(i){a([e,n,"INFO.POPUP_TITLE","COMMON.BTN_OK"]).then((function(a){t.show({template:"<p>"+a[e]+"</p>",title:a["INFO.POPUP_TITLE"],subTitle:a[n],buttons:[{text:a["COMMON.BTN_OK"],type:"button-positive",onTap:function(e){i(e)}}]})}))}))}function O(t){return t?c((function(){return e.hide()}),t):e.hide()}function R(t){return f?((t=t||{}).template=t.template||f,e.show(t)):a("COMMON.LOADING").then((function(e){return f=e,R(t)}))}function A(){return h.smallscreen.active}function S(e,t,n){return function(t){var i,a=t.target.width,o=t.target.height,r=n?T.THUMB_MAX_WIDTH:T.MAX_WIDTH,s=n?T.THUMB_MAX_HEIGHT:T.MAX_HEIGHT,l=document.createElement("canvas");if(n){a>o?(a*=s/o,o=s):(o*=r/a,a=r),l.width=r,l.height=s,i=l.getContext("2d");var c=Math.trunc((r-a)/2+.5),u=Math.trunc((s-o)/2+.5);i.drawImage(t.target,c,u,r+-2*c,s+-2*u)}else a>o?a>r&&(o*=r/a,a=r):o>s&&(a*=s/o,o=s),l.width=a,l.height=o,(i=l.getContext("2d")).drawImage(t.target,0,0,l.width,l.height);var d=l.toDataURL();l.remove(),e(d)}}function C(e,t){var n=o.defer();(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_copy.html",t.scope=t.scope||E,t.scope.popovers=t.scope.popovers||{},t.autoselect=t.autoselect||!1,t.autoremove=!angular.isDefined(t.autoremove)||t.autoremove,t.backdropClickToClose=!angular.isDefined(t.backdropClickToClose)||t.backdropClickToClose,t.focusFirstInput=!!angular.isDefined(t.focusFirstInput)&&t.focusFirstInput;var i=function(i){(i=i||t.scope.popovers[t.templateUrl]).isResolved=!1,i.deferred=n,i.options=t,t.bindings&&angular.merge(i.scope,t.bindings),c((function(){i.show(e).then((function(){var e;t.autoselect?(e=document.querySelectorAll(t.autoselect)[0])&&(l.getSelection&&!l.getSelection().toString()?(e.setSelectionRange(0,e.value.length),e.focus()):e.focus()):t.autofocus&&(e=document.querySelectorAll(t.autofocus)[0])&&e.focus(),i.scope.$parent.$emit("popover.shown"),t.afterShow&&t.afterShow(i)}))}))},a=function(e){(e=e||t.scope.popovers[t.templateUrl])&&(delete t.scope.popovers[t.templateUrl],e.remove().then((function(){angular.element(l.document.querySelectorAll("body")[0]).removeClass("popover-open")})))},r=t.scope.popovers[t.templateUrl];return r?i(r):p.fromTemplateUrl(t.templateUrl,{scope:t.scope,backdropClickToClose:t.backdropClickToClose}).then((function(e){e.isResolved=!1,e.scope.closePopover=function(t){var n=e.options&&e.options.autoremove;e.options&&delete e.options.autoremove,e.hide().then((function(){if(n)return a(e)})).then((function(){e.deferred&&e.deferred.resolve(t),delete e.deferred,delete e.options}))},e.scope.$on("popover.hidden",(function(){e.options&&e.options.afterHidden&&e.options.afterHidden(),e.options&&e.options.autoremove&&a(e)})),t.scope.$on("$remove",(function(){e.deferred&&e.deferred.resolve(),a()})),t.scope.popovers[t.templateUrl]=e,i(e)})),n.promise}function L(e,t){var n=A()?100:10,i=".list.{0} .item, .list .{0} .item".format(t,t);return{ionListClass:t,show:function(t){return(t=t||{}).selector=t.selector||i,t.ink=!angular.isDefined(t.ink)||t.ink,t.startVelocity=t.startVelocity||(A()?1100:3e3),c((function(){t.ink&&g.ink(),e(t)}),t.timeout||n)}}}function D(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOn selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!0)}))}),t||100)}function y(e,t){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.error("invalid toggleOff selector"),!1;c((function(){var t=document.querySelectorAll(e.selector);t&&_.forEach(t,(function(e){e.classList.toggle("on",!1)}))}),t||900)}return v.motion={enable:!0,default:L(s.ripple,"animate-ripple"),blinds:L(s.blinds,"animate-blinds"),fadeSlideIn:L(s.fadeSlideIn,"animate-fade-slide-in"),fadeSlideInRight:L(s.fadeSlideInRight,"animate-fade-slide-in-right"),panInLeft:L(s.panInLeft,"animate-pan-in-left"),pushDown:L(s.pushDown,"push-down"),ripple:L(s.ripple,"animate-ripple"),slideUp:L(s.slideUp,"slide-up"),fadeIn:L((function(e){D(e)}),"fade-in"),toggleOn:D,toggleOff:y},g={alert:{error:I,info:N,confirm:function(e,n,i){return n=n||"CONFIRM.POPUP_TITLE",(i=i||{}).cssClass=i.cssClass||"confirm",i.okText=i.okText||"COMMON.BTN_OK",i.cancelText=i.cancelText||"COMMON.BTN_CANCEL",a([e,n,i.cancelText,i.okText]).then((function(a){return t.confirm({template:a[e],cssClass:i.cssClass,title:a[n],cancelText:a[i.cancelText],cancelType:i.cancelType,okText:a[i.okText],okType:i.okType})}))},notImplemented:function(){return N("INFO.FEATURES_NOT_IMPLEMENTED")}},loading:{show:R,hide:O,update:function(t){return e._getLoader().then((function(e){if(e&&e.isShown)return t&&t.template?a(t&&t.template).then((function(n){return t.template=n,e})):void 0})).then((function(e){if(e&&e.isShown)return R(t)}))}},toast:{show:function(e,t,n){return t=t||"short",n=n||"bottom",a([e]).then((function(i){window.cordova&&d.show(i[e],t,n)}))}},onError:function(e,t){return function(n){var i,a=e;if(n&&n.message?(a=n.message,i=e):e||(a=n),!t)return"CANCELLED"==a?O(10):(O(10),I(a,i));t(a)}},screen:{isSmall:A,fullscreen:u},ink:r.displayEffect,motion:v.motion,setEffects:function(e){if(g.motion.enable!==e){if(console.debug("[UI] [effects] "+(e?"Enable":"Disable")),g.motion.enable=e,e)n.views.transition("platform"),angular.merge(g.motion,v.motion);else{n.views.transition("none");var t={class:void 0,show:function(){}};angular.merge(g.motion,{enable:!1,default:t,fadeSlideIn:t,fadeSlideInRight:t,panInLeft:t,pushDown:t,ripple:t,slideUp:t,fadeIn:t,toggleOn:D,toggleOff:y}),E.motion=t}i.clearCache()}},fab:{show:function(e,t){t||(t=900),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!0)}))}),t)},hide:function(e,t){t||(t=10),c((function(){var t=document.getElementsByClassName("button-fab");_.forEach(t,(function(t){t.id==e&&t.classList.toggle("on",!1)}))}),t)}},popover:{show:C,copy:function(e,t){var n=t&&t.indexOf("\n")>=0?t.split("\n").length:1;return C(e,{templateUrl:"templates/common/popover_copy.html",bindings:{value:t,rows:n},autoselect:".popover-copy "+(n<=1?"input":"textarea")})},share:function(e,t){return(t=t||{}).templateUrl=t.templateUrl?t.templateUrl:"templates/common/popover_share.html",t.autoselect=t.autoselect||".popover-share input",t.bindings=t.bindings||{},t.bindings.value=t.bindings.value||t.bindings.url||m.href(m.current,m.params,{absolute:!0}),t.bindings.postUrl=t.bindings.postUrl||t.bindings.value,t.bindings.postMessage=t.bindings.postMessage||"",t.bindings.titleKey=t.bindings.titleKey||"COMMON.POPOVER_SHARE.TITLE",C(e,t)},helptip:function e(t,n){var i="string"==typeof t&&t?l.document.getElementById(t):t;t||i||!n.selector||(i=l.document.querySelector(n.selector));var a=(n=n||{}).deferred||o.defer();if(i&&!n.timeout)n.preAction&&i[n.preAction](),n.templateUrl=n.templateUrl?n.templateUrl:"templates/common/popover_helptip.html",n.autofocus=n.autofocus||"#helptip-btn-ok",n.bindings=n.bindings||{},n.bindings.icon=n.bindings.icon||{},n.bindings.icon.position=n.bindings.icon.position||!1,n.bindings.icon.glyph=n.bindings.icon.glyph||(n.bindings.icon.position&&n.bindings.icon.position.startsWith("bottom-")?"ion-arrow-down-c":"ion-arrow-up-c"),n.bindings.icon.class=n.bindings.icon.class||"calm icon "+n.bindings.icon.glyph,n.bindings.tour=!!angular.isDefined(n.bindings.tour)&&n.bindings.tour,C(i,n).then((function(e){n.postAction&&i[n.postAction](),a.resolve(e)})).catch((function(e){n.postAction&&i[n.postAction](),a.reject(e)}));else if(n.timeout){var r=n.timeout;n.retryTimeout=n.retryTimeout||r,delete n.timeout,n.deferred=a,c((function(){e(t,n)}),r)}else angular.isDefined(n.retry)&&!n.retry?"continue"===n.onError?c((function(){a.resolve(!0)})):c((function(){a.reject("[helptip] element now found: "+t)})):(n.retry=angular.isUndefined(n.retry)?2:n.retry-1,n.deferred=a,c((function(){e(t,n)}),n.timeout||n.retryTimeout||100));return a.promise}},selection:{select:function e(t){if(t.value||"text"==t.type||"textarea"==t.type)l.getSelection&&!l.getSelection().toString()&&t.setSelectionRange(0,t.value.length);else if(t.childNodes&&t.childNodes.length>0)e(t.childNodes[0]);else{var n=l.document.createRange();n.selectNodeContents(t);var i=l.getSelection();i.removeAllRanges(),i.addRange(n)}},get:function(){var e="";return window.getSelection&&(e=l.getSelection().toString()),e}},image:{resizeFile:function(e,t){var n=document.createElement("img");return o((function(i,a){if(e){var o=new FileReader;o.onload=function(e){n.onload=S(i,0,t),n.src=e.target.result},o.readAsDataURL(e)}else a("no file to resize")})).then((function(e){return n.remove(),e}))},resizeSrc:function(e,t){var n=document.createElement("img");return o((function(i,a){n.onload=S(i,0,t),n.src=e})).then((function(e){return n.remove(),e}))},rotateSrc:function(e,t){var n=document.createElement("img");return o((function(t,i){n.onload=function(e,t){var n=Math.PI/180*90;return function(t){var i=t.target.width,a=t.target.height,o=T.MAX_WIDTH,r=T.MAX_HEIGHT;i>a?i>o&&(a*=o/i,i=o):a>r&&(i*=r/a,a=r);var s=document.createElement("canvas");s.width=a,s.height=i;var l=s.getContext("2d");l.rotate(n),l.drawImage(t.target,0,-1*s.width);var c=s.toDataURL();s.remove(),e(c)}}(t),n.src=e})).then((function(e){return n.remove(),e}))}},raw:v}}]).factory("$focus",["$timeout","$window",function(e,t){return function(n){e((function(){var e=t.document.getElementById(n);e&&e.focus()}))}}]),angular.module("cesium.cache.services",["angular-cache"]).factory("csCache",["$http","$window","csSettings","CacheFactory",function(e,t,n,i){var a={VERY_LONG:54e6,LONG:36e5,MEDIUM:3e5,SHORT:n.defaultSettings.cacheTimeMs},o=[];return{get:function(e,r,s){var l=(e=e||"csCache-")+(r=r||a.SHORT)/1e3,c=n.data.useLocalStorage&&t.localStorage?"localStorage":"memory";if(s){for(var u=1;i.get(l+u);)u++;return o[l+=u]||(o[l]=!0),console.debug("[cache] Creating cache {0} with 'onExpire' option...".format(l)),i.createCache(l,{maxAge:r,deleteOnExpire:"aggressive",recycleFreq:r,onExpire:s,storageMode:c})}return o[l]||(o[l]=!0,console.debug("[cache] Creating cache {0}...".format(l))),i.get(l)||i.createCache(l,{maxAge:r,deleteOnExpire:"passive",recycleFreq:Math.max(r-1e3,3e5),storageMode:c})},clear:function(e){_.forEach(_.keys(o),(function(t){if(t.startsWith(e)){var n=i.get(t);n&&n.removeAll()}}))},clearAll:function(){console.debug("[cache] cleaning all caches"),_.forEach(_.keys(o),(function(e){var t=i.get(e);t&&t.removeAll()}))},constants:a}}]),angular.module("cesium.modal.services",["cesium.utils.services"]).controller("EmptyModalCtrl",(function(){})).controller("AboutModalCtrl",["$scope","UIUtils","csHttp",function(e,t,n){e.openLink=function(e,i,a){return(a=a||{}).onError=function(){return t.popover.copy(e,i)},n.uri.open(i,a)}}]).factory("ModalUtils",["$ionicModal","$rootScope","$q","$injector","$controller","$timeout","Device",function(e,t,n,i,a,o,r){function s(e,t,i){e.deferred=t||n.defer(),e.resolved=!1,e.openModal=function(){return e.modal.show()},e.hideModal=function(){return e.modal.hide()},e.closeModal=function(t){return e.resolved=!0,r.enable&&r.keyboard.close(),e.modal.remove().then((function(){return document.body.classList.remove("modal-open"),e.deferred.resolve(t),t}))},e.setForm=function(t,n){n?e[n]=t:e.form=t},e.getParameters=function(){return i},e.$on("modal.hidden",(function(){e.resolved||(e.resolved=!0,o((function(){return e.deferred.resolve(),e.modal.remove().then((function(){document.body.classList.remove("modal-open")}))}),(e.modal.hideDelay||320)+20))}))}return{show:function(i,o,r,l){var c,u,d,p=n.defer();if((l=l||{}).animation=l.animation||"slide-in-up",l.focusFirstInput=!1,o){l.scope=l.scope?l.scope.$new():t.$new(),s.call({},l.scope,p,r);var m={$scope:l.scope,parameters:r},E=(u={isControllerAs:!1,controllerName:"",propName:""},d=((c=o)||"").trim().split(/\s+/),u.isControllerAs=3===d.length&&"as"===(d[1]||"").toLowerCase(),u.isControllerAs?(u.controllerName=d[0],u.propName=d[2]):u.controllerName=c,u),b=a(o,m);E.isControllerAs&&(b.openModal=l.scope.openModal,b.closeModal=l.scope.closeModal)}return e.fromTemplateUrl(i,l).then((function(e){if(o)e.scope.$parent.modal=e;else{var t=e.scope;s.call({},t,p,r),t.modal=e}return e.show()}),(function(e){p.reject(e)})),p.promise}}}]).factory("Modals",["$rootScope","$translate","$ionicPopup","$timeout","ModalUtils","UIUtils",function(e,t,n,i,a,o){function r(e){return a.show("templates/join/modal_join_member.html","JoinModalCtrl",e)}function s(e){return a.show("templates/join/modal_join_wallet.html","JoinModalCtrl",e)}return{showTransfer:function(e){var t=o.screen.isSmall();return a.show("templates/wallet/modal_transfer.html","TransferModalCtrl",e,{focusFirstInput:!t})},showLogin:function(e){return a.show("templates/login/modal_login.html","LoginModalCtrl",e,{focusFirstInput:!0,backdropClickToClose:!1})},showWotLookup:function(e){return a.show("templates/wot/modal_lookup.html","WotLookupModalCtrl",e||{},{focusFirstInput:!0})},showNetworkLookup:function(e){return a.show("templates/network/modal_network.html","NetworkLookupModalCtrl",e,{focusFirstInput:!0})},showAbout:function(e){return a.show("templates/modal_about.html","AboutModalCtrl",e)},showJoin:function(e){return a.show("templates/join/modal_choose_account_type.html","JoinChooseAccountTypeModalCtrl",e).then((function(e){if(e)return"member"==e.accountType?r(e):s(e)}))},showJoinMember:r,showJoinWallet:s,showHelp:function(e){return a.show("templates/help/modal_help.html","HelpModalCtrl",e)},showAccountSecurity:function(e){return a.show("templates/wallet/modal_security.html","WalletSecurityModalCtrl",e)},showLicense:function(e){return a.show("templates/currency/modal_license.html","CurrencyLicenseModalCtrl",e)},showSelectPubkeyIdentity:function(e){return a.show("templates/wot/modal_select_pubkey_identity.html","WotSelectPubkeyIdentityModalCtrl",e)},showSelectWallet:function(e){return a.show("templates/wallet/list/modal_wallets.html","WalletSelectModalCtrl",e)},showPassword:function(i){(i=i||{}).title=i.title||"COMMON.SET_PASSWORD_TITLE",i.subTitle=i.subTitle||"COMMON.SET_PASSWORD_SUBTITLE";var a=i.scope?i.scope.$new():e.$new();return a.formData={password:void 0},a.setForm=function(e){a.form=e},a.submit=function(e){a.form.$submitted=!0,e&&e.preventDefault&&e.preventDefault(),a.form.$valid&&a.formData.password&&i.popup.close(a.formData.password)},a.error=i.error||void 0,t([i.title,i.subTitle,"COMMON.BTN_OK","COMMON.BTN_CANCEL"]).then((function(e){return i.popup=n.show({templateUrl:"templates/common/popup_password.html",title:e[i.title],subTitle:e[i.subTitle],scope:a,buttons:[{text:e["COMMON.BTN_CANCEL"]},{text:e["COMMON.BTN_OK"],type:"button-positive",onTap:a.submit}]}),i.popup}))}}}]).factory("csPopovers",["$rootScope","$translate","$ionicPopup","$timeout","UIUtils","$controller",function(e,t,n,i,a,o){return{showSelectWallet:function(t,n){var i=(n=n||{}).parameters||{};delete n.parameters;var r=n.scope&&n.scope.$new()||e.$new(!0);n.scope=r,n.templateUrl="templates/wallet/list/popover_wallets.html",n.autoremove=!0,angular.extend(this,o("WalletSelectPopoverCtrl",{$scope:n.scope,parameters:i}));var s=n.afterShow;return n.afterShow=function(e){r.closePopover=function(t){e.scope.closePopover(t)},s&&s(e)},a.popover.show(t,n).then((function(e){return r.$destroy(),e}))}}}]),angular.module("cesium.http.services",["cesium.cache.services"]).factory("csHttp",["$http","$q","$timeout","$window","csSettings","csCache","Device",function(e,t,n,i,a,o,r){var s=a.data.timeout,l=[];function c(e,t){return e?e+(t&&80!=t&&443!=t?":"+t:""):null}function u(e,t,n,i){return(443==t||i?"https":"http")+"://"+c(e,t)+(n||"")}function d(e,t,n,i){t&&t.message?e(t):e(404==i?{ucode:404,message:"Resource not found"+(n?" ("+n+")":"")}:n?"Error while requesting ["+n+"]":"Unknown error from node")}function p(e,t,n,i){var a=[],o={},r=e;return"object"==typeof t&&(a=_.keys(t)),_.forEach(a,(function(e){r===(r=r.replace(":"+e,t[e]))&&(o[e]=t[e])})),n.params=o,i(r,n)}function m(e){var t;e.startsWith("duniter://")&&(t="duniter",e=e.replace("duniter://","http://"));var n=document.createElement("a");n.href=e;var i=n.pathname;i&&i.startsWith("/")&&(i=i.substring(1));var a={protocol:t||n.protocol,hostname:n.hostname,host:n.host,port:n.port,username:n.username,password:n.password,pathname:i,search:n.search,hash:n.hash};return n.remove(),a}function E(e,t){var n=e.split("."),i=t.split(".");function a(e){for(var t=0;t<e.length;++t)if(n=e[t],!/^\d+$/.test(n))return!1;var n;return!0}if(!a(n)||!a(i))return NaN;for(var o=0;o<n.length;++o){if(i.length===o)return 1;if(n[o]!==i[o])return n[o]>i[o]?1:-1}return n.length!=i.length?-1:0}s||(s=4e3);var b=angular.copy(o.constants);return b.clear=function(){console.debug("[http] Cleaning cache..."),o.clear("csHttp-")},{get:function(n,i,a,o,r){if(!n)return t.reject("[http] invalid URL from host: "+n);var l=u(n,i,a,o);return function(n){return t((function(t,i){p(l,n,{timeout:r||s,responseType:"json"},(function(n,a){e.get(n,a).success((function(e,n,i,a){t(e)})).error((function(e,t,a,o){d(i,e,n,t)}))}))}))}},getWithCache:function(n,i,a,r,l,c,m,E){var b=u(n,i,a,r);return l=l||o.constants.LONG,function(n){return t((function(t,i){var a={timeout:m||s,responseType:"json"};a.cache=c?o.get(E,l,(function(t,n,i){console.debug("[http] Refreshing cache for ["+t+"] "),e.get(t,a).success((function(e){a.cache.put(t,e),i&&i(t,e)}))})):o.get(E,l),p(b,n,a,(function(n,a){e.get(n,a).success((function(e){t(e)})).error((function(e,t){d(i,e,n,t)}))}))}))}},post:function(n,i,a,o,r){var l=u(n,i,a,o);return function(n,i){return t((function(t,a){p(l,i,{timeout:r||s,headers:{"Content-Type":"application/json;charset=UTF-8"}},(function(i,o){e.post(i,n,o).success((function(e){t(e)})).error((function(e,t){d(a,e,i,t)}))}))}))}},ws:function(e,i,o,r,s){if(!o)throw console.error("calling csHttp.ws without path argument"),"calling csHttp.ws without path argument";var u=function(e,t,n,i){return(443==t||i?"wss":"ws")+"://"+c(e,t)+(n||"")}(e,i,o,r);function d(e){if(!e.delegate)throw new Error("Websocket {0} was closed!".format(u));return 1==e.delegate.readyState?t.when(e.delegate):3==e.delegate.readyState?t.reject("Unable to connect to websocket ["+e.delegate.url+"]"):(e.waitDuration>=s?(e.waitRetryDelay=e.waitRetryDelay&&Math.min(e.waitRetryDelay+2e3,3e4)||2e3,console.debug("[http] Will retry websocket [{0}] in {1}s...".format(e.path,Math.round(e.waitRetryDelay/1e3)))):Math.round(e.waitDuration/1e3)%10==0&&console.debug("[http] Waiting websocket ["+e.path+"]..."),n((function(){return e.waitDuration+=e.waitRetryDelay,d(e)}),e.waitRetryDelay))}function m(e,t,n){return e.delegate||(e.path=o,e.callbacks=[],e.waitDuration=0,e.waitRetryDelay=200,p(u,n,{},(function(t){e.delegate=new WebSocket(t),e.delegate.onerror=function(t){e.delegate.readyState=3},e.delegate.onmessage=function(t){var n=JSON.parse(t.data);_.forEach(e.callbacks,(function(e){e(n)}))},e.delegate.onopen=function(t){console.debug("[http] Listening on websocket ["+e.path+"]..."),l.push(e),e.delegate.openTime=Date.now()},e.delegate.onclose=function(t){var i=_.findIndex(l,(function(t){return t.path===e.path}));i>=0&&l.splice(i,1),e.delegate.closing?e.delegate=null:e.delegate.openTime?(console.debug("[http] Unexpected close of websocket [{0}] (open {1} ms ago): re-opening...",o,Date.now()-e.delegate.openTime),e.delegate=null,m(e,null,n)):t&&(console.debug("[http] TODO -- Unexpected close of websocket [{0}]: error code: ".format(o),t),e.delegate=null,m(e,null,n))}}))),t&&e.callbacks.push(t),d(e)}function E(e){e.delegate&&(e.delegate.closing=!0,console.debug("[http] Closing websocket ["+e.path+"]..."),e.delegate.close(),e.callbacks=[],e.onclose&&e.onclose())}return s=s||a.data.timeout,{open:function(e){return m(this,null,e)},on:function(e,t){return m(this,e,t)},onListener:function(e,t){var n=this;return m(n,e,t),function(){!function(e,t){e.callbacks=_.reject(e.callbacks,(function(e){return e===t})),e.callbacks.length||E(e)}(n,e)}},send:function(e){var t=this;return d(t).then((function(){t.delegate&&t.delegate.send(e)}))},close:function(){E(this)},isClosed:function(){return!this.delegate||this.delegate.closing}}},closeAllWs:function(){l.length>0&&(console.debug("[http] Closing all websocket..."),_.forEach(l,(function(e){e.close()})),l=[])},getUrl:u,getServer:c,uri:{parse:m,open:function(e,t){if(t=t||{},!e.startsWith("http://")&&!e.startsWith("https://")){var n=m(e);if(!n.protocol&&t.type&&(n.protocol="email"==t.type?"mailto:":"phone"==t.type?"tel:":"",e=n.protocol+e),"mailto:"==n.protocol&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open 'mailto:' URI into external tool.")}if("mailto:"!=n.protocol&&"tel:"!=n.protocol||!r.enable)return void(t.onError&&"function"==typeof t.onError&&t.onError(e))}var a,o=t.target||(r.enable?"_system":"_blank");if("_blank"===o||"_system"===o&&r.isDesktop())try{return void nw.Shell.openExternal(e)}catch(e){console.error("[http] Failed not open URI into external browser.")}if("_blank"===o&&r.isDesktop()){if(nw&&nw.Shell)return nw.Shell.openExternal(e),!1;a="location=1,titlebar=1,status=1,menubar=1,toolbar=1,resizable=1,scrollbars=1",i.screen&&i.screen.width&&i.screen.height&&(a+=",width={0},height={1}".format(Math.trunc(i.screen.width/2),Math.trunc(i.screen.height/2)))}var s=i.open(e,o,a);a&&i.screen&&i.screen.width&&i.screen.height&&(s.moveTo(i.screen.width/2/2,i.screen.height/2/2),s.focus())}},date:{now:function(){return moment().utc().unix()}},version:{compare:E,isCompatible:function(e,t){return console.debug("[http] Checking actual version [{0}] is compatible with min expected version [{1}]".format(t,e)),E(e,t)<=0}},cache:b}}]),angular.module("cesium.storage.services",["cesium.config"]).factory("sessionStorage",["$window","$q",function(e,t){var n={storage:e.sessionStorage||{},put:function(e,i){return n.storage[e]=i,t.when()},get:function(e,i){return t.when(n.storage[e]||i)},setObject:function(e,i){return n.storage[e]=JSON.stringify(i),t.when()},getObject:function(e){return t.when(JSON.parse(n.storage[e]||"null"))}};return n}]).factory("localStorage",["$window","$q","$log","sessionStorage",function(e,t,n,i){var a,o="Cesium",r=!1,s=!0,l={standard:{storage:null},secure:{storage:null}};function c(){return e.localStorage?(console.debug("[storage] Starting {local} storage..."),l.standard.storage=e.localStorage,_.forEach(_.keys(l.standard),(function(e){l[e]=l.standard[e]}))):(console.debug("[storage] Starting {session} storage..."),_.forEach(_.keys(i),(function(e){l[e]=i[e]}))),t.when()}function u(){if(a)return a;var e=Date.now();return(a=s?function(){console.debug("[storage] Starting {secure} storage..."),_.forEach(_.keys(l.secure),(function(e){l[e]=l.secure[e]}));var e=t.defer();return cordova.plugins&&cordova.plugins.SecureStorage?l.secure.storage=new cordova.plugins.SecureStorage((function(){e.resolve()}),(function(t){console.error("[storage] Could not use secure storage. Will use standard.",t),c(),e.resolve()}),o):(c(),e.resolve()),e.promise}():c()).then((function(){console.debug("[storage] Started in "+(Date.now()-e)+"ms"),r=!0,a=null}))}return l.standard.put=function(e,n){return angular.isDefined(n)&&null!=n?l.standard.storage[e]=n:l.standard.storage.removeItem(e),t.when()},l.standard.remove=function(e,n){return l.standard.storage.removeItem(e),t.when()},l.standard.get=function(e,n){return t.when(l.standard.storage[e]||n)},l.standard.setObject=function(e,n){return l.standard.storage[e]=JSON.stringify(n),t.when()},l.standard.getObject=function(e){return t.when(JSON.parse(l.standard.storage[e]||"null"))},l.secure.put=function(e,i){return t((function(t,a){null!=i?l.secure.storage.set((function(e){t()}),(function(e){n.error(e),a(e)}),e,i):l.secure.storage.remove((function(){t()}),(function(e){n.error(e),t()}),e)}))},l.secure.get=function(e,i){return t((function(t,a){l.secure.storage.get((function(e){t(!e&&i?i:e)}),(function(e){n.error(e),t()}),e)}))},l.secure.setObject=function(e,i){return n.debug("[storage] Setting object into secure storage, using key="+e),t((function(t,n){l.secure.storage.set(t,n,e,i?JSON.stringify(i):void 0)}))},l.secure.getObject=function(e){return n.debug("[storage] Getting object from secure storage, using key="+e),t((function(t,i){l.secure.storage.get((function(e){t(JSON.parse(e||"null"))}),(function(e){n.error(e),t()}),e)}))},l.isStarted=function(){return r},l.ready=function(){return r?t.when():a||u()},u(),l}]),angular.module("cesium.device.services",["cesium.utils.services","cesium.settings.services"]).factory("Device",["$rootScope","$translate","$ionicPopup","$q","$cordovaClipboard","$cordovaBarcodeScanner","$cordovaCamera","ionicReady",function(e,t,n,i,a,o,r,s){var l,c=400,u=400,d={enable:!0},p={},m=!1;function E(e){if(!d.enable)return i.reject("Barcode scanner not enable. Please call 'ionicReady()' once before use (e.g in app.js).");var t=i.defer();return cordova.plugins.barcodeScanner.scan((function(e){e.cancelled?(console.debug("[device] barcode scanner scan: CANCELLED"),t.resolve()):(console.debug("[device] barcode scanner scan: "+e.text),t.resolve(e.text))}),(function(e){console.error("[device] Error while using barcode scanner: "+e),t.reject(e)}),e),t.promise}return d.clipboard={copy:function(e,t){if(!d.enable)return i.reject("Device disabled");var n=i.defer();return a.copy(e).then((function(){t&&t(),n.resolve()}),(function(){n.reject({message:"ERROR.COPY_CLIPBOARD"})})),n.promise}},d.camera={getPicture:function(e){return d.camera.enable?(e&&"string"==typeof e&&(e={sourceType:e}),e=e||{},angular.isUndefined(e.sourceType)?t(["SYSTEM.PICTURE_CHOOSE_TYPE","SYSTEM.BTN_PICTURE_GALLERY","SYSTEM.BTN_PICTURE_CAMERA"]).then((function(t){return n.show({title:t["SYSTEM.PICTURE_CHOOSE_TYPE"],buttons:[{text:t["SYSTEM.BTN_PICTURE_GALLERY"],type:"button",onTap:function(e){return navigator.camera.PictureSourceType.PHOTOLIBRARY}},{text:t["SYSTEM.BTN_PICTURE_CAMERA"],type:"button button-positive",onTap:function(e){return navigator.camera.PictureSourceType.CAMERA}}]}).then((function(t){return console.info("[camera] User select sourceType:"+t),e.sourceType=t,d.camera.getPicture(e)}))})):(e.quality=e.quality||50,e.destinationType=e.destinationType||navigator.camera.DestinationType.DATA_URL,e.encodingType=e.encodingType||navigator.camera.EncodingType.PNG,e.targetWidth=e.targetWidth||u,e.targetHeight=e.targetHeight||c,r.getPicture(e))):i.reject("Camera not enable. Please call 'ionicReady()' once before use (e.g in app.js).")},scan:function(e){return console.warn("Deprecated use of Device.camera.scan(). Use Device.barcode.scan() instead"),E(e)}},d.barcode={enable:!1,scan:E},d.keyboard={enable:!1,close:function(){d.keyboard.enable&&cordova.plugins.Keyboard.close()}},d.keyboard.digit={settings:{bindModel:function(t,n,i){t=t||e;var a=function(){return(n||"").split(".").reduce((function(e,t){return e?e[t]:void 0}),t)},o=function(e){var i=(n||"").split("."),a=i.length&&i[i.length-1];i.reduce((function(t,n){if(n!=a)return t[n];t[a]=e}),t)};return(i=i||{}).animation=i.animation||"pop",i.action=i.action||function(e){o((a()||"")+e)},i.decimal&&(i.decimalSeparator=i.decimalSeparator||".",i.leftButton={html:"<span>.</span>",action:function(){var e=a()||"";e.indexOf(i.decimalSeparator)>=0||(e.trim().length||(e="0"),o(e+i.decimalSeparator))}}),i.rightButton=i.rightButton||{html:'<i class="icon ion-backspace-outline"></i>',action:function(){var e=a();e&&e.length&&(e=e.slice(0,-1),o(e))}},i}}},d.isIOS=function(){return!!navigator.userAgent.match(/iPhone | iPad | iPod/i)||ionic.Platform.isIOS()},d.isOSX=function(){return!!navigator.userAgent.match(/Macintosh/i)||ionic.Platform.is("osx")},d.isDesktop=function(){if(!angular.isDefined(p.isDesktop))try{p.isDesktop=!(d.enable||!process||!nw||!nw.App)}catch(e){p.isDesktop=!1}return p.isDesktop},d.isWeb=function(){return!d.enable&&!d.isDesktop()},d.ready=function(){return m?i.when():l||d.start()},d.start=function(){return l=s().then((function(){d.enable=window.cordova&&cordova&&cordova.plugins,d.enable?(d.camera.enable=!!navigator.camera,d.keyboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.Keyboard,d.barcode.enable=cordova&&cordova.plugins&&!!cordova.plugins.barcodeScanner&&!d.isOSX(),d.clipboard.enable=cordova&&cordova.plugins&&!!cordova.plugins.clipboard,d.keyboard.enable&&angular.extend(d.keyboard,cordova.plugins.Keyboard),console.debug("[device] Ionic platform ready, with [camera: {0}] [barcode scanner: {1}] [keyboard: {2}] [clipboard: {3}]".format(d.camera.enable,d.barcode.enable,d.keyboard.enable,d.clipboard.enable)),cordova.InAppBrowser&&console.debug("[device] Enabling InAppBrowser")):console.debug("[device] Ionic platform ready - no device detected."),m=!0,l=null}))},d}]),angular.module("cesium.currency.services",["ngApi","cesium.bma.services"]).factory("csCurrency",["$rootScope","$q","$timeout","BMA","Api","csSettings",function(e,n,i,a,o,r){var s=a;function l(a,l){l=l||s;var c,u,d={WELL_KNOWN_CURRENCIES:{g1:{firstBlockTime:1488987127,medianTimeOffset:3600}}},p={},m=!1,E=new o(this,"csCurrency-"+a);function b(){p.name=null,p.parameters=null,p.firstBlockTime=null,p.membersCount=null,p.cache={},p.node=l,p.currentUD=null,p.medianTimeOffset=0,m=!1,c=void 0,E.data.raise.reset(p)}function g(){return n.all([l.blockchain.parameters().then((function(e){return p.name=e.currency,p.parameters=e,p.medianTimeOffset=e.avgGenTime*e.medianTimeBlocks/2,e})).then((function(e){return t=e.currency,d.WELL_KNOWN_CURRENCIES[t]?(angular.merge(p,d.WELL_KNOWN_CURRENCIES[t]),n.when()):l.blockchain.block({block:0}).then((function(e){p.firstBlockTime=e.medianTime})).catch((function(e){if(e&&e.ucode===l.errorCodes.BLOCK_NOT_FOUND)return p.firstBlockTime=0,p.initPhase=!0,void console.warn("[currency] Blockchain not launched: Enable init phase mode");throw e}));var t})),l.blockchain.stats.ud().then((function(e){return e.result.blocks.length?function e(t,n){if(!t.result.blocks.length||n<0)return p.currentUD=p.parameters?p.parameters.ud0:-1,p.currentUD;var i=t.result.blocks[n];return l.blockchain.block({block:i}).then((function(e){var t,n;return p.currentUD=(t=e.dividend,(n=e.unitbase)<=0?t:t*Math.pow(10,n)),p.currentUD})).catch((function(a){if(console.error("[currency] Unable to load last block with UD, with number {0}".format(i)),n>0)return console.error("[currency] Retrying to load UD from a previous block..."),e(t,n-1);throw p.currentUD=null,a}))}(e,e.result.blocks.length-1):(p.currentUD=p.parameters?p.parameters.ud0:-1,p.currentUD)})).catch((function(e){throw p.currentUD=null,e})),E.data.raisePromise.load(p)]).catch((function(e){throw b(),e}))}function f(){return m?n.when(p):c||N()}function T(e){return function(){return m?n.when(p[e]):c||N().then((function(){return p[e]}))}}function h(e){var n=new t(e);n.cleanData(),console.debug("[currency] Received new block {"+n.number+"-"+n.hash+"}"),p.currentBlock=n,p.currentBlock.receivedAt=moment().utc().unix(),p.medianTime=n.medianTime,p.membersCount=n.membersCount,n.dividend&&(p.currentUD=n.dividend),E.data.raise.newBlock(n)}function v(){console.debug("[currency] Stopping..."),_.forEach(u,(function(e){e()})),u=[],b()}function I(){return v(),i(N,200)}function N(){console.debug("[currency] Starting...");var t=Date.now();return c=l.ready().then(g).then((function(){!function(){u=[l.api.node.on.restart(e,I,this),l.websocket.block().onListener(h)]}(),console.debug("[currency] Started in "+(Date.now()-t)+"ms"),m=!0,c=null,E.data.raise.ready(p)})).then((function(){return p}))}var O=T("currentBlock");function R(e){return O().then((function(t){var n=moment().utc().unix();if(e){if(t&&t.receivedAt&&n-t.receivedAt<60)return t;t||console.warn("[currency] No current block in cache: get it from network. Websocket [/ws/block] may not be started ?")}return l.blockchain.current().catch((function(e){if(e&&e.ucode==l.errorCodes.NO_CURRENT_BLOCK)return{number:0,hash:l.constants.ROOT_BLOCK_HASH,medianTime:n};throw e})).then((function(e){return p.currentBlock=e,p.currentBlock.receivedAt=n,e}))}))}return E.registerEvent("data","ready"),E.registerEvent("data","load"),E.registerEvent("data","reset"),E.registerEvent("data","newBlock"),b(),{ready:function(){return m?n.when(p):c||N()},start:N,stop:v,data:p,get:f,name:T("name"),parameters:T("parameters"),currentUD:T("currentUD"),medianTimeOffset:T("medianTimeOffset"),blockchain:{current:R,lastValid:function(){return r.data.blockValidityWindow<=0?R(!0):R(!0).then((function(e){var t=e.number-r.data.blockValidityWindow;return t>0?l.blockchain.block({block:t}):e}))}},date:{now:function(){return moment().utc().unix()-(p.medianTimeOffset||d.WELL_KNOWN_CURRENCIES.g1.medianTimeOffset)}},api:E,default:function(){return console.warn("[currency] 'csCurrency.default()' has been DEPRECATED - Please use 'csCurrency.get()' instead."),f()}}}var c=new l("default");return c.instance=function(e,t){return new l(e,t)},c}]),angular.module("cesium.bma.services",["ngApi","cesium.http.services","cesium.settings.services"]).factory("BMA",["$q","$window","$rootScope","$timeout","csCrypto","Api","Device","UIUtils","csConfig","csSettings","csHttp",function(e,t,n,i,a,o,r,s,l,c,u){function d(r,d,p,m){var E,b="[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}",g="SIG\\(([0-9a-zA-Z]{43,44})\\)",f="OBJ\\(([0-9]+)\\)",T="( ([a-z_][a-z0-9-_.ğĞ]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))( (.+))?",h={BMA:"BASIC_MERKLED_API",BMAS:"BMAS",WS2P:"WS2P",BMATOR:"BMATOR",WS2PTOR:"WS2PTOR"},v={USER_ID:"[0-9a-zA-Z-_]+",CURRENCY:"[0-9a-zA-Z-_]+",PUBKEY:b,PUBKEY_WITH_CHECKSUM:"("+b+"):([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{3})",COMMENT:"[ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",INVALID_COMMENT_CHARS:"[^ a-zA-Z0-9-_:/;*\\[\\]()?!^\\+=@&~#{}|\\\\<>%.]*",URI_WITH_AT:"duniter://(?:([A-Za-z0-9_-]+):)?("+b+"@([a-zA-Z0-9-.]+.[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)",URI_WITH_PATH:"duniter://([a-zA-Z0-9-.]+.[a-zA-Z0-9-_:.]+)/("+b+")(?:/([A-Za-z0-9_-]+))?",BMA_ENDPOINT:h.BMA+T,BMAS_ENDPOINT:h.BMAS+T,WS2P_ENDPOINT:h.WS2P+" ([a-f0-9]{8})"+T,BMATOR_ENDPOINT:h.BMATOR+" ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?",WS2PTOR_ENDPOINT:h.WS2PTOR+" ([a-f0-9]{8}) ([a-z0-9-_.]*|[0-9.]+|[0-9a-f:]+.onion)(?: ([0-9]+))?(?: (.+))?"},I={PROTOCOL_VERSION:10,ROOT_BLOCK_HASH:"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",LIMIT_REQUEST_COUNT:5,LIMIT_REQUEST_DELAY:1e3,regexp:v,api:h},N=this;function O(e,t,n,i){N.started&&N.stop(),N.alive=!1,N.cache={getByPath:{},postByPath:{},wsByPath:{}},c.data&&c.data.node&&(e=e||c.data.node.host,t=t||c.data.node.port,n=angular.isDefined(n)?n:443==t||c.data.node.useSsl||N.forceUseSsl,i=!angular.isDefined(i)||i),e&&(N.host=e,N.port=t||80,N.useSsl=angular.isDefined(n)?n:443==N.port||N.forceUseSsl,N.useCache=!!angular.isDefined(i)&&i,N.server=u.getServer(e,t),N.url=u.getUrl(e,t,"",n))}function R(e){return new RegExp("^"+e+"$")}function A(e){return new RegExp(e)}function S(){N.cache&&(console.warn("[BMA] Closing all websockets..."),_.keys(N.cache.wsByPath||{}).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache.wsByPath={})}function C(e){u.getUrl(e.node.host,e.node.port,"",e.node.useSsl)!=N.url&&(O(e.node.host,e.node.port,e.node.useSsl,N.useCache),N.restart())}N.api=new o(this,"BMA-"+N.server),N.started=!1,N.init=O,N.forceUseSsl=!!("true"===l.httpsMode||!0===l.httpsMode||"force"===l.httpsMode||t.location&&"https:"===t.location.protocol),N.forceUseSsl&&console.debug("[BMA] Enable SSL (forced by config or detected in URL)"),r&&O(r,d,p,m),N.useCache=m,N.cleanCache=function(){console.debug("[BMA] Cleaning requests cache..."),S(),N.cache={getByPath:{},postByPath:{},wsByPath:{}}},get=function(e,t){t=N.useCache&&t;var n=e+(t?"#"+t:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[BMA] Trying to get [{0}] before start(). Waiting...".format(e)),N.ready().then((function(){return a(o)}));var r=N.cache.getByPath[n];r||(r=t?u.getWithCache(N.host,N.port,e,N.useSsl,t):u.get(N.host,N.port,e,N.useSsl),N.cache.getByPath[n]=r);var l=1;return r(o).catch((function(e){if(e&&e.ucode==L.errorCodes.HTTP_LIMITATION&&l<=L.constants.LIMIT_REQUEST_COUNT)return 1===l&&(console.warn("[BMA] Too many HTTP requests: Will wait then retry..."),s.loading.update({template:"COMMON.LOADING_WAIT"})),i((function(){return l++,r(o)}),L.constants.LIMIT_REQUEST_DELAY);throw e}))};return a},post=function(e){var t=function(n,i){if(!N.started)return N._startPromise||console.error("[BMA] Trying to post [{0}] before start()...".format(e)),N.ready().then((function(){return t(n,i)}));var a=N.cache.postByPath[e];return a||(a=u.post(N.host,N.port,e,N.useSsl),N.cache.postByPath[e]=a),a(n,i)};return t},ws=function(e){return function(){var t=N.cache.wsByPath[e];return t&&!t.isClosed()||((t=u.ws(N.host,N.port,e,N.useSsl)).onclose=function(){delete N.cache.wsByPath[e]},N.cache.wsByPath[e]=t),t}},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software,n=!0;return"duniter"===t&&e.duniter.version?n=u.version.isCompatible(c.data.minVersion,e.duniter.version):console.debug("[BMA] Unknown node software [{0} v{1}]: could not check compatibility.".format(t||"?",e.duniter.version||"?")),n||console.error("[BMA] Incompatible node [{0} v{1}]: expected at least v{2}".format(t,e.duniter.version,c.data.minVersion)),n})).catch((function(){return!1}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(){if(N._startPromise)return N._startPromise;if(N.started)return e.when(N.alive);if(!N.host)return c.ready().then((function(){return N.init(),N.useCache=!0,N.start()}));N.useSsl?console.debug("[BMA] Starting [{0}] (SSL on)...".format(N.server)):console.debug("[BMA] Starting [{0}]...".format(N.server));var t=Date.now();return N._startPromise=e.all([c.ready,N.isAlive()]).then((function(e){return N.alive=e[1],N.alive?(E&&0!==E.length||function(){E=[c.api.data.on.changed(n,C,this)]}(),console.debug("[BMA] Started in "+(Date.now()-t)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,!0):(console.error("[BMA] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,!1)})),N._startPromise},N.stop=function(){console.debug("[BMA] Stopping..."),_.forEach(E,(function(e){e()})),E=[],u.cache.clear(),N.cleanCache(),N.alive=!1,N.started=!1,delete N._startPromise,N.api.node.raise.stop()},N.restart=function(){return N.stop(),i(N.start,200).then((function(e){return e&&N.api.node.raise.restart(),e}))},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop"),N.api.registerEvent("node","restart");var L={errorCodes:{REVOCATION_ALREADY_REGISTERED:1002,HTTP_LIMITATION:1006,IDENTITY_SANDBOX_FULL:1007,NO_MATCHING_IDENTITY:2001,UID_ALREADY_USED:2003,NO_MATCHING_MEMBER:2004,NO_IDTY_MATCHING_PUB_OR_UID:2021,WRONG_SIGNATURE_MEMBERSHIP:2006,MEMBERSHIP_ALREADY_SEND:2007,NO_CURRENT_BLOCK:2010,BLOCK_NOT_FOUND:2011,SOURCE_ALREADY_CONSUMED:2015,TX_INPUTS_OUTPUTS_NOT_EQUAL:2024,TX_OUTPUT_SUM_NOT_EQUALS_PREV_DELTAS:2025,TX_ALREADY_PROCESSED:2030},constants:I,regexp:{USER_ID:R(v.USER_ID),COMMENT:R(v.COMMENT),PUBKEY:R(v.PUBKEY),PUBKEY_WITH_CHECKSUM:R(v.PUBKEY_WITH_CHECKSUM),CURRENCY:R(v.CURRENCY),URI:R(v.URI),BMA_ENDPOINT:R(v.BMA_ENDPOINT),BMAS_ENDPOINT:R(v.BMAS_ENDPOINT),WS2P_ENDPOINT:R(v.WS2P_ENDPOINT),BMATOR_ENDPOINT:R(v.BMATOR_ENDPOINT),WS2PTOR_ENDPOINT:R(v.WS2PTOR_ENDPOINT),TX_OUTPUT_SIG:R(g),TX_OUTPUT_FUNCTION:A("SIG\\(([0-9a-zA-Z]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)"),TX_OUTPUT_OBJ_OPERATOR_AND:A(f+"([ ]*&&[ ]*("+f+"))+"),TX_OUTPUT_OBJ_OPERATOR_OR:A(f+"([ ]*\\|\\|[ ]*("+f+"))+"),TX_OUTPUT_OBJ:A(f),TX_OUTPUT_OBJ_OPERATOR:A("OBJ\\(([0-9]+)\\)[ ]*(&&)|(\\|\\|)[ ]*OBJ\\(([0-9]+)\\)"),TX_OUTPUT_OBJ_PARENTHESIS:A("\\(("+f+")\\)"),TX_OUTPUT_FUNCTIONS:A("SIG\\(([0-9a-zA-Z]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\)([ ]*(&&)|(\\|\\|)[ ]*SIG\\(([0-9a-zA-Z]{43,44})\\)|XHX\\(([A-F0-9]{1,64})\\)|CSV\\(([0-9]{1,8})\\)|CLTV\\(([0-9]{1,10})\\))*")},node:{summary:get("/node/summary",u.cache.LONG),same:function(e,t){return e===N.host&&(!N.port&&!t||N.port==t||80)&&N.useSsl==(t&&443===t)},forceUseSsl:N.forceUseSsl},network:{peering:{self:get("/network/peering"),peers:get("/network/peering/peers")},peers:get("/network/peers"),ws2p:{info:get("/network/ws2p/info"),heads:get("/network/ws2p/heads")}},wot:{lookup:get("/wot/lookup/:search",u.cache.MEDIUM),certifiedBy:get("/wot/certified-by/:pubkey"),certifiersOf:get("/wot/certifiers-of/:pubkey"),member:{all:get("/wot/members",u.cache.LONG),pending:get("/wot/pending",u.cache.SHORT)},requirements:function(e,t){return!0!==t?L.raw.wot.requirements(e):L.raw.wot.requirementsWithCache(e)},add:post("/wot/add"),certify:post("/wot/certify"),revoke:post("/wot/revoke")},blockchain:{parameters:get("/blockchain/parameters",u.cache.VERY_LONG),block:get("/blockchain/block/:block",u.cache.SHORT),blocksSlice:get("/blockchain/blocks/:count/:from"),current:get("/blockchain/current",u.cache.SHORT),membership:post("/blockchain/membership"),stats:{ud:get("/blockchain/with/ud",u.cache.MEDIUM),tx:get("/blockchain/with/tx"),newcomers:get("/blockchain/with/newcomers",u.cache.MEDIUM),hardship:get("/blockchain/hardship/:pubkey"),difficulties:get("/blockchain/difficulties")}},tx:{sources:get("/tx/sources/:pubkey",u.cache.SHORT),process:post("/tx/process"),history:{all:function(e){return L.raw.tx.history.all(e).then((function(e){return e.history=e.history||{},e.history.sending=[],
+e.history.pendings=[],e}))},times:function(e,t){return(!0!==t?L.raw.tx.history.times(e):L.raw.tx.history.timesWithCache(e)).then((function(e){return e.history=e.history||{},e.history.sending=[],e.history.pendings=[],e}))},blocks:get("/tx/history/:pubkey/blocks/:from/:to",u.cache.LONG),pending:get("/tx/history/:pubkey/pending")}},ud:{history:get("/ud/history/:pubkey")},uri:{},version:{},raw:{wot:{requirementsWithCache:get("/wot/requirements/:pubkey",u.cache.LONG),requirements:get("/wot/requirements/:pubkey")},tx:{history:{timesWithCache:get("/tx/history/:pubkey/times/:from/:to",u.cache.LONG),times:get("/tx/history/:pubkey/times/:from/:to"),all:get("/tx/history/:pubkey")}}}};L.tx.parseUnlockCondition=function(e){for(var t,n,i,a,o=e,r=[],s={},l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);l;)t={},n="OBJ("+r.length+")",t.type=o.substr(l.index,l[0].indexOf("(")),t.value=l[1]||l[2]||l[3]||l[4],r.push(t),s[t.type]=s[t.type]++||1,o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_FUNCTION.exec(o);for(var c=!0;c;){for(c=!!(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o));l;){for(t={},n="OBJ("+r.length+")",t.type="AND",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(i)}for(l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_OR.exec(o),c=c||!!l;l;){for(t={},n="OBJ("+r.length+")",t.type="OR",t.children=[],r.push(t),i=l[0],a=L.regexp.TX_OUTPUT_OBJ.exec(i);a;)t.children.push(r[a[1]]),i=i.replace(a[0],""),a=L.regexp.TX_OUTPUT_OBJ.exec(i);o=o.replace(l[0],n),l=L.regexp.TX_OUTPUT_OBJ_OPERATOR_AND.exec(o)}for(l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o),c=c||!!l;l;)o=o.replace(l[0],l[1]),l=L.regexp.TX_OUTPUT_OBJ_PARENTHESIS.exec(o)}if(0!==(s=_.keys(s)).length)return console.debug("[BMA] Unlock conditions successfully parsed:",t),{unlockFunctions:s,unlockTree:t};console.error("[BMA] Unparseable unlock condition: ",output)},L.node.parseEndPoint=function(e,t){var n=L.regexp.BMA_ENDPOINT.exec(e);return n?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!0}:(n=L.regexp.BMAS_ENDPOINT.exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:!0,path:n[10],useBma:!0}:(n=L.regexp.BMATOR_ENDPOINT.exec(e))?{dns:n[1]||"",port:n[2]||80,useSsl:!1,useTor:!0,useBma:!0}:(n=L.regexp.WS2P_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[3]||"",ipv4:n[5]||"",ipv6:n[7]||"",port:n[9]||80,useSsl:n[9]&&443==n[9],path:n[11]||"",useWs2p:!0}:(n=L.regexp.WS2PTOR_ENDPOINT.exec(e))?{ws2pid:n[1]||"",dns:n[2]||"",port:n[3]||80,path:n[4]||"",useSsl:!1,useTor:!0,useWs2p:!0}:t&&(n=R(t+T).exec(e))?{dns:n[2]||"",ipv4:n[4]||"",ipv6:n[6]||"",port:n[8]||80,useSsl:n[8]&&443==n[8],path:n[10],useBma:!1}:void 0},L.copy=function(t){var n=N.started;if(u.getUrl(t.host,t.port,"",t.useSsl)!==N.url)return N.init(t.host,t.port,t.useSsl,N.useCache),n?N.restart():e.when()},L.wot.member.uids=function(){return L.wot.member.all().then((function(e){return e.results.reduce((function(e,t){return e[t.pubkey]=t.uid,e}),{})}))},L.wot.member.get=function(e){return L.wot.member.uids().then((function(t){var n=t[e];return{pubkey:e,uid:n||null}}))},L.wot.member.getByUid=function(e){return L.wot.member.all().then((function(t){return _.findWhere(t.results,{uid:e})}))},L.blockchain.blocks=function(e){return L.raw.getHttpRecursive(L.blockchain.block,"block",e)},L.network.peering.peersByLeaves=function(e){return L.raw.getHttpRecursive(L.network.peering.peers,"leaf",e,0,10)},L.raw.getHttpRecursive=function(t,n,a,o,r){return o=angular.isDefined(o)?o:0,r=r||L.constants.LIMIT_REQUEST_COUNT,e((function(s,l){var c=[],u=[];_.each(a.slice(o,o+r),(function(e){var i={};i[n]=e,u.push(t(i).then((function(e){e&&c.push(e)})))})),e.all(u).then((function(){o<a.length-1?i((function(){L.raw.getHttpRecursive(t,n,a,o+r,r).then((function(e){e&&e.length?s(c.concat(e)):s(c)})).catch((function(e){l(e)}))}),L.constants.LIMIT_REQUEST_DELAY):s(c)})).catch((function(e){e&&e.ucode===L.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},L.raw.getHttpWithRetryIfLimitation=function(e){return e().catch((function(t){if(t&&t.ucode==L.errorCodes.HTTP_LIMITATION)return i((function(){return L.raw.getHttpWithRetryIfLimitation(e)}),L.constants.LIMIT_REQUEST_DELAY)}))},L.blockchain.lastUd=function(){return L.blockchain.stats.ud().then((function(e){if(!e.result.blocks||!e.result.blocks.length)return null;var t=e.result.blocks[e.result.blocks.length-1];return L.blockchain.block({block:t}).then((function(e){return e.unitbase>0?e.dividend*Math.pow(10,e.unitbase):e.dividend}))}))},L.uri.parse=function(t){return e((function(e,n){var i;if(R(v.PUBKEY).test(t))e({pubkey:t});else if(R(v.PUBKEY_WITH_CHECKSUM).test(t)){console.debug("[BMA.parse] Detecting a pubkey with checksum: "+t);var o=L.regexp.PUBKEY_WITH_CHECKSUM.exec(t);i=o[1];var r=o[2];console.debug("[BMA.parse] Detecting a pubkey {"+i+"} with checksum {"+r+"}");var s=a.util.pkChecksum(i);console.debug("[BMA.parse] Expecting checksum for pubkey is {"+s+"}"),r!=s?n({message:"ERROR.PUBKEY_INVALID_CHECKSUM"}):e({pubkey:i})}else if(t.startsWith("duniter://")){var l,c=u.uri.parse(t),d=-1===c.host.indexOf(".")?c.host:null,p=-1!==c.host.indexOf(".")?c.host:null;if(c.username&&(c.password?(l=c.username,i=c.password):i=c.username),c.pathname){var m=c.pathname.split("/"),E=m?m.length:0,b=0;if(!d&&E>b&&(d=m[b++]),!i&&E>b&&(i=m[b++]),!l&&E>b&&(l=m[b++]),E>b)return void n({message:"Bad Duniter URI format. Invalid path (incomplete or redundant): "+c.pathname})}if(d)return p||e({uid:l,pubkey:i,currency:d}),u.get(p+"/blockchain/parameters")().then((function(t){t.currency===d?e({uid:l,pubkey:i,host:p,currency:d}):n({message:"Node's currency ["+t.currency+"] does not matched URI's currency ["+d+"]."})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}));if(!p)return void n({message:"Bad Duniter URI format. Missing currency name (or node address)."});u.get(p+"/blockchain/parameters")().then((function(t){e({uid:l,pubkey:i,host:p,currency:t.currency})})).catch((function(e){console.error(e),n({message:"Could not get node parameter. Currency could not be retrieve"})}))}else console.debug("[BMA.parse] Could not parse URI: "+t),n({message:"ERROR.UNKNOWN_URI_FORMAT"})})).then((function(e){if(e){if(e.pubkey&&!R(v.PUBKEY).test(e.pubkey))throw{message:"Invalid pubkey format ["+e.pubkey+"]"};if(e.uid&&!R(v.USER_ID).test(e.uid))throw{message:"Invalid uid format ["+e.uid+"]"};if(e.currency&&!R(v.CURRENCY).test(e.currency))throw{message:"Invalid currency format ["+e.currency+"]"};return e}}))};var D=c.data.duniterLatestReleaseUrl&&u.uri.parse(c.data.duniterLatestReleaseUrl);L.raw.getLatestRelease=D?u.getWithCache(D.host,D.port,"/"+D.pathname,443==+D.port||"https:"===D.protocol||N.forceUseSsl,u.cache.LONG):function(){return e.when()},L.version.latest=function(){return L.raw.getLatestRelease().then((function(e){if(e)return e.name&&e.html_url?{version:e.name,url:e.html_url}:e.tag_name&&e.html_url?{version:e.tag_name.substring(1),url:e.html_url}:void 0})).catch((function(e){console.error("[BMA] Failed to get Duniter latest version",e)}))},L.websocket={block:ws("/ws/block"),peer:ws("/ws/peer"),close:S},angular.merge(N,L)}var p=new d(void 0,void 0,void 0,!0);return p.instance=function(e,t,n,i){return new d(e,t,n,i)},p.lightInstance=function(e,t,n,i){return{host:e,port:t=t||80,useSsl:n=angular.isDefined(n)?n:443==t,url:u.getUrl(e,t,"",n),node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current",n,i),stats:{hardship:u.get(e,t,"/blockchain/hardship/:pubkey",n,i)}}}},p}]),angular.module("cesium.wot.services",["ngApi","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWot",["$rootScope","$q","$timeout","BMA","Api","CacheFactory","csConfig","csCurrency","csSettings","csCache",function(e,t,n,i,a,o,r,s,l,c){function u(o){var r=new a(this,"csWot-"+o),u=c.get("csWot-idty-",c.constants.MEDIUM),d=c.get("csWot-requirements-",c.constants.MEDIUM),p=function(e){var t={};return e.reduce((function(e,n){return n.id=n.id||n.uid+"-"+n.pubkey,t[n.id]?e:(t[n.id]=!0,e.concat(n))}),[])},m=function(e,t,n){return t=t||0,e=p(e),e=_.sortBy(e,(function(e){var t=1;return t+=1e6*e.block,-(t+=10*(900-e.uid.toLowerCase().charCodeAt(0)))})),angular.isDefined(n)&&e.length>n&&(e=e.slice(t,t+n)),e},E=function(e){e.requirements={loaded:!1,meta:{},hasSelf:!1,needSelf:!0,needMembership:!0,canMembershipOut:!1,needRenew:!1,pendingMembership:!1,isMember:!1,wasMember:!1,certificationCount:0,needCertifications:!1,needCertificationCount:0,willNeedCertificationCount:0,alternatives:void 0},e.blockUid=null,e.isMember=!1,e.sigDate=null,e.hasSelf=!1},b=function(e,t){if(e.hasSelf=!!e.meta.timestamp,e.needSelf=!e.hasSelf||e.meta.invalid,e.wasMember=!!angular.isDefined(e.wasMember)&&e.wasMember,e.needMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn<=0&&!e.wasMember,e.needRenew=!e.needMembership&&!e.revoked&&e.membershipExpiresIn<=l.data.timeWarningExpireMembership&&e.membershipPendingExpiresIn<=0||e.wasMember&&!e.revoked&&0===e.membershipExpiresIn&&0===e.membershipPendingExpiresIn,e.canMembershipOut=!e.revoked&&e.membershipExpiresIn>0,e.pendingMembership=!e.revoked&&e.membershipExpiresIn<=0&&e.membershipPendingExpiresIn>0,e.isMember=!e.revoked&&e.membershipExpiresIn>0,e.blockUid=e.meta.timestamp,e.certificationCount=(e.isMember||e.wasMember&&!e.expired)&&e.certifications?e.certifications.length:0,e.willExpireCertificationCount=e.certifications?e.certifications.reduce((function(e,t){return e+(t.expiresIn<=l.data.timeWarningExpire?1:0)}),0):0,e.willExpire=e.willExpireCertificationCount>0,e.pendingRevocation=!e.revoked&&!!e.revocation_sig,e.isMember||e.wasMember)e.pendingCertificationCount=angular.isDefined(e.pendingCerts)?e.pendingCerts.length:0;else{var n=_.union(_.pluck(e.pendingCerts||[],"from"),_.pluck(e.certifications||[],"from"));e.pendingCertificationCount=_.size(n)}return e.needCertificationCount=!e.needSelf&&e.certificationCount<t.sigQty?t.sigQty-e.certificationCount:0,e.willNeedCertificationCount=!e.needMembership&&!e.needCertificationCount&&e.certificationCount-e.willExpireCertificationCount<t.sigQty?t.sigQty-e.certificationCount+e.willExpireCertificationCount:0,e.loaded=!0,e},g=function(e){if(!e)return t.when(e);var n=[];return _.forEach(e,(function(e){var t=e.meta.timestamp.split("-",2);e.meta.number=parseInt(t[0]),e.meta.hash=t[1],e.meta.sig=e.meta.sig||e.sig,delete e.sig,n.push(e.meta.number)})),i.blockchain.blocks(_.uniq(n)).then((function(t){return _.forEach(e,(function(e){var n=_.findWhere(t,{number:e.meta.number});e.meta.time=n&&n.medianTime,n&&0!==e.meta.number&&e.meta.hash!==n.hash&&(e.meta.invalid=!0)})),e})).catch((function(t){if(t&&t.ucode==i.errorCodes.BLOCK_NOT_FOUND)return _.forEach(e,(function(e){0===e.number&&(e.meta.time=moment().utc().unix())})),e;throw t}))},f=function(e,n){if(!e||!e.pubkey&&!e.uid)return t.when(e);var a=e.pubkey||e.uid,o=!1!==n?d.get(a):null;if(o)return console.debug("[wot] Requirements "+a+" found in cache"),angular.merge(e,o),t.when(o);o={pubkey:e.pubkey,uid:e.uid};var r=Date.now();return t.all([s.get(),i.wot.requirements({pubkey:o.pubkey||o.uid},!1).then((function(e){return g(e&&e.identities)}))]).then((function(t){var n=t[0],i=t[1];if(i&&i.length)return i.length>1&&(i=_.sortBy(i,(function(e){var t=0;t+=1e12*(o.uid&&e.uid===o.uid?1:0),t+=1e11*(e.meta.invalid?0:1),t+=1e10*(o.blockUid&&e.meta.timestamp&&e.meta.timestamp===o.blockUid?1:0),t+=1e9*(e.membershipExpiresIn>0?1:0),t+=1e8*(e.membershipPendingExpiresIn>0?1:0),t+=1e7*(e.expired?0:1),t+=1e6*(e.outdistanced?0:1),t+=1e5*(e.wasMember?1:0);var n=!e.expired&&e.certifications?e.certifications.length:0;return t+=1*(n||0),-(t+=1*(!n&&e.membershipPendingExpiresIn>0?e.membershipPendingExpiresIn/1e3:0))})),console.debug("[wot] Found {0} identities (in requirements). Will selected the best one".format(i.length))),o.requirements=b(i[0],n.parameters),o.pubkey=o.requirements.pubkey,o.uid=o.requirements.uid,o.isMember=o.requirements.isMember,o.blockUid=o.requirements.meta&&o.requirements.meta.timestamp,o.hasSelf=o.requirements.hasSelf,o.sigDate=o.requirements.meta&&o.requirements.meta.time,!o.requirements.isMember&&!o.requirements.wasMember&&i.length>1&&(o.requirements.alternatives=i.splice(1),_.forEach(o.requirements.alternatives,(function(e){b(e,n.parameters)}))),d.put(a,o),angular.merge(e,o),console.debug("[wot] Requirements for '{0}' loaded in {1}ms".format(o.pubkey&&o.pubkey.substring(0,8)||o.uid,Date.now()-r)),e})).catch((function(t){if(E(e),t&&(t.ucode==i.errorCodes.NO_MATCHING_MEMBER||t.ucode==i.errorCodes.NO_IDTY_MATCHING_PUB_OR_UID))return e.requirements.loaded=!0,e;throw t}))},T=function(e,t){var n={pubkey:e,uid:t,hasSelf:!1};return i.wot.lookup({search:e||t}).then((function(e){var t=e.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,n){var i=n.meta.timestamp.split("-",2),a=parseInt(i[0]);return e.concat({uid:n.uid,pubkey:t.pubkey,meta:{timestamp:n.meta.timestamp,number:a,hash:i[1],sig:n.self},revoked:n.revoked,revoked_on:n.revoked_on})}),[]))}),[]);return g(t).then((function(t){return{identities:t,results:e.results}}))})).then((function(e){var t=e.identities;t.length>1&&(e.identities=_.sortBy(t,(function(e){var t=0;return t+=1e11*(n.uid&&e.uid===n.uid?1:0),t+=1e10*(e.meta.invalid?0:1),t+=1e9*(n.blockUid&&e.meta.timestamp&&e.meta.timestamp===n.blockUid?1:0),t+=1e8*(e.revoked?0:1),-(t+=1*(e.meta.number?e.meta.number:0)/1e3)})),console.debug("[wot] Found {0} identities (in lookup). Will selected the best one".format(t.length))),_.forEach(t,(function(e){e.hasSelf=!!(e.uid&&e.meta.timestamp&&e.meta.sig)})),n.requirements=t[0],n.pubkey=n.requirements.pubkey,n.uid=n.requirements.uid,n.blockUid=n.requirements.meta&&n.requirements.meta.timestamp,n.hasSelf=n.requirements.hasSelf,n.sigDate=n.requirements.meta&&n.requirements.meta.time,t.length>1&&(n.requirements.alternatives=t.splice(1)),n.lookup={};var i={};return n.lookup.certifications=(e.results||[]).reduce((function(e,t){return t.uids.reduce((function(e,t){var n=t.uid+"-"+(t.meta?t.meta.timestamp:"");return e[n]=(t.others||[]).reduce((function(e,t){var a=n+"-"+t.pubkey,o={pubkey:t.pubkey,uid:t.uids[0],cert_time:{block:t.meta&&t.meta.block_number?t.meta.block_number:0,block_hash:t.meta&&t.meta.block_hash?t.meta.block_hash:null},isMember:t.isMember,wasMember:t.wasMember};return i[a]?o.cert_time.block>i[a].cert_time.block?(i[a]=o,e.splice(_.findIndex(e,{pubkey:t.pubkey}),1,o),e):e:(i[a]=o,e.concat(o))}),[]),e}),e)}),{}),i={},n.lookup.givenCertifications=(e.results||[]).reduce((function(e,t){return(t.signed||[]).reduce((function(e,t){var n={pubkey:t.pubkey,uid:t.uid,cert_time:{block:t.cert_time&&t.cert_time.block?t.cert_time.block:0,block_hash:t.cert_time&&t.cert_time.block_hash?t.cert_time.block_hash:null},sigDate:t.meta?t.meta.timestamp:null,isMember:t.isMember,wasMember:t.wasMember};if(i[t.pubkey]){if(!(n.block>i[t.pubkey].block))return e;i[t.pubkey]=n}else i[t.pubkey]=n;return e.concat(n)}),e)}),[]),n})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return E(n),n;throw e}))},h=function(e,t,n,a,o,r){function c(e,t){return e+"-"+t}var u=!0,d=n?n.reduce((function(e,t){var n=c(t.pubkey,t.cert_time?t.cert_time.block:t.sigDate);return t.cert_time||(u=!1),e[n]=t,e}),{}):{};return e({pubkey:t}).then((function(e){return(e&&e.certifications||[]).reduce((function(e,t){var n=!t.written,i=t.cert_time?t.cert_time.medianTime:null,r=i?n?i+a.sigWindow-o:i+a.sigValidity-o:0;r=r<0?0:r;var s=c(t.pubkey,u&&t.cert_time?t.cert_time.block:t.sigDate);return delete d[s],e.concat({pubkey:t.pubkey,uid:t.uid,time:i,isMember:t.isMember,wasMember:t.wasMember,expiresIn:r,willExpire:r&&r<=l.data.timeWarningExpire,pending:n,block:null!==t.written?t.written.number:t.cert_time?t.cert_time.block:null,valid:r>0})}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_MEMBER)return[];if(e&&1002==e.ucode)return console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),[];throw e})).then((function(e){var t=_.values(d);if(!t.length)return e;if(s.data.initPhase)return t.reduce((function(e,t){return e.concat({pubkey:t.pubkey,uid:t.uid,isMember:t.isMember,wasMember:t.wasMember,time:null,expiresIn:a.sigWindow,willExpire:!1,pending:!0,block:0,valid:!0})}),e);var n=t.reduce((function(e,t){var n=u&&t.cert_time?t.cert_time.block:t.sigDate?t.sigDate.split("-")[0]:null;return angular.isDefined(n)&&(e[n]?e[n].push(t):e[n]=[t]),e}),{});return i.blockchain.blocks(_.keys(n)).then((function(t){return e=t.reduce((function(e,t){return e.concat(n[t.number].reduce((function(e,n){var i=t.medianTime,s=Math.max(0,i+a.sigWindow-o),c=!n.cert_time||!n.cert_time.block_hash||n.cert_time.block_hash==t.hash;c||console.debug("[wot] Invalid cert {0}: block hash changed".format(n.pubkey.substring(0,8)));var d=s>0&&(!r||n.isMember)&&c;return e.concat({pubkey:n.pubkey,uid:n.uid,isMember:n.isMember,wasMember:n.wasMember,time:i,expiresIn:s,willExpire:s&&s<=l.data.timeWarningExpire,pending:!0,block:u&&n.cert_time?n.cert_time.block:n.sigDate?n.sigDate.split("-")[0]:null,valid:d})}),[]))}),e)}))})).then((function(e){var t=e.reduce((function(e,t){return!t.pending&&t.valid&&t.expiresIn>=a.sigWindow&&(e[t.pubkey]=!0),e}),{});e=function(e){return _.sortBy(e,(function(e){var t=1;return t+=1e12*(e.expiresIn?e.expiresIn:0),t+=1e7*(e.isMember?1:0),-(t+=10*(e.block?e.block:0))}))}(e);var n=[],i=[];return{valid:e.reduce((function(e,a){return a.pending?(a.valid&&!t[a.pubkey]?n.push(a):a.valid||t[a.pubkey]||i.push(a),e):e.concat(a)}),[]),pending:n,error:i}}))},v=function(e,n,a){var o;if(a=a||{},!e&&n&&!a.force)return i.wot.member.getByUid(n).then((function(t){if(t)return v(t.pubkey,t.uid,i);var i=angular.copy(i||{});return i.force=!0,v(e,n,i)}));if(e){if((o=!1!==a.cache?u.get(e):null)&&(!n||o.uid===n)&&(!a.blockUid||o.blockUid===a.blockUid))return console.debug("[wot] Identity "+e.substring(0,8)+" found in cache"),t.when(o);console.debug("[wot] Loading identity "+e.substring(0,8)+"..."),o={pubkey:e,uid:n}}else console.debug("[wot] Loading identity from uid "+n),o={uid:n};a.blockUid&&(o.blockUid=a.blockUid);var l,c,d=Date.now();return t.all([s.parameters().then((function(e){l=e})),s.blockchain.current().then((function(e){c=e.medianTime})).catch((function(e){if(!e||e.ucode!=i.errorCodes.NO_CURRENT_BLOCK)throw e;c=moment.utc().unix()})),f(o,!1!==a.cache),T(e,n)]).then((function(e){var n=e[3];if(!o.requirements.uid)return console.debug("[wot] No requirements found: using data from lookup"),angular.merge(o,n),void delete o.lookup;var a=o.requirements.uid+"-"+o.requirements.meta.timestamp;return t.all([h(i.wot.certifiersOf,o.pubkey,n.lookup?n.lookup.certifications[a]:null,l,c,!0).then((function(e){o.received_cert=e.valid,o.received_cert_pending=e.pending,o.received_cert_error=e.error})),h(i.wot.certifiedBy,o.pubkey,n.lookup?n.lookup.givenCertifications:null,l,c,!1).then((function(e){o.given_cert=e.valid,o.given_cert_pending=e.pending,o.given_cert_error=e.error}))])})).then((function(){return o.requirements.pendingCertificationCount=o.received_cert_pending?o.received_cert_pending.length:o.requirements.pendingCertificationCount,o.requirements.revoked=angular.isDefined(o.requirements.revoked)?o.requirements.revoked:o.revoked,function(e){e.requirements.revoked?(delete e.requirements.meta.invalid,e.requirements.revoked_on?(A(e,{type:"error",message:"ERROR.IDENTITY_REVOKED_WITH_TIME",messageParams:{revocationTime:e.requirements.revoked_on}}),console.debug("[wot] Identity [{0}] has been revoked on {1}".format(e.uid,e.requirements.revoked_on))):(A(e,{type:"error",message:"ERROR.IDENTITY_REVOKED"}),console.debug("[wot] Identity [{0}] has been revoked".format(e.uid)))):e.requirements.pendingRevocation?(delete e.requirements.meta.invalid,A(e,{type:"error",message:"ERROR.IDENTITY_PENDING_REVOCATION"}),console.debug("[wot] Identity [{0}] has pending revocation".format(e.uid))):e.requirements.meta&&e.requirements.meta.invalid?e.isMember||(A(e,{type:"error",message:"ERROR.IDENTITY_INVALID_BLOCK_HASH"}),console.debug("[wot] Invalid membership for uid {0}: block hash changed".format(e.uid))):e.requirements.expired?(A(e,{type:"error",message:"ERROR.IDENTITY_EXPIRED"}),console.debug("[wot] Identity {0} expired (in sandbox)".format(e.uid))):e.requirements.willNeedCertificationCount>0?(A(e,{type:"error",message:"INFO.IDENTITY_WILL_MISSING_CERTIFICATIONS",messageParams:e.requirements}),console.debug("[wot] Identity {0} will need {1} certification(s)".format(e.uid,e.requirements.willNeedCertificationCount))):!e.requirements.needSelf&&e.requirements.needMembership&&(A(e,{type:"error",message:"INFO.IDENTITY_NEED_MEMBERSHIP"}),console.debug("[wot] Identity {0} has a self but no membership".format(e.uid))),!e.isMember&&e.requirements.alternatives&&A(e,{type:"info",message:"INFO.HAS_ALTERNATIVE_IDENTITIES"})}(o),r.data.raisePromise.load(o).catch((function(e){console.debug("Error while loading identity data, on extension point."),console.error(e)}))})).then((function(){if(o.pubkey)return u.put(o.pubkey,o),console.debug("[wot] Identity "+o.pubkey.substring(0,8)+" loaded in "+(Date.now()-d)+"ms"),o}))},I=function(e,n){if(!e||e.trim()!==e)return t.when(void 0);var a=e.replace(/(^|\s)#\w+/g,"");return a=(a=a.replace(/[^a-zA-Z0-9_-\s]+/g,"")).replace(/\s+/g," ").trim(),(n=n||{}).addUniqueId=!angular.isDefined(n.addUniqueId)||n.addUniqueId,n.allowExtension=!angular.isDefined(n.allowExtension)||n.allowExtension,n.excludeRevoked=!!angular.isDefined(n.excludeRevoked)&&n.excludeRevoked,(a?t.all(a.split(" ").reduce((function(e,t){return console.debug("[wot] Will search on: '"+t+"'"),e.concat(i.wot.lookup({search:t}))}),[])).then((function(e){return e.reduce((function(e,t){return e.concat(t.results.reduce((function(e,t){return e.concat(t.uids.reduce((function(e,i){var a=i.meta.timestamp.split("-",2),o=!i.revoked&&i.revocation_sig;return n.excludeRevoked&&o?e:e.concat({uid:i.uid,pubkey:t.pubkey,number:a[0],hash:a[1],revoked:o})}),[]))}),[]))}),[])})).catch((function(e){if(e&&e.ucode==i.errorCodes.NO_MATCHING_IDENTITY)return[];throw e})):t.when([])).then((function(t){if(!n.allowExtension)return n.addUniqueId?p(t):t;var a=t.length;return r.data.raisePromise.search(e,t,"pubkey").then((function(){if(t.length>a&&_.filter(t,(function(e){return!e.uid&&e.pubkey})).length)return i.wot.member.uids().then((function(e){_.forEach(t,(function(t){!t.uid&&t.pubkey&&(t.uid=e[t.pubkey])}))}))})).then((function(){return n.addUniqueId?p(t):t}))}))},N=function(e,a,o,r){return t((function(s,l){var c=[],u=[];_.each(e.slice(a,a+o),(function(e){u.push(i.blockchain.block({block:e}).then((function(e){e&&e.joiners&&_.each(e.joiners,(function(t){var n=t.split(":"),i=n[n.length-1]+"-"+n[0];c.push({id:i,uid:n[n.length-1],pubkey:n[0],memberDate:e.medianTime,block:e.number})}))})))})),t.all(u).then((function(){c.length<r&&a<e.length-1?n((function(){N(e,a+o,o,r-c.length).then((function(e){s(c.concat(e))})).catch((function(e){l(e)}))}),1e3):s(c)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?s(c):l(e)}))}))},O=function(e,a,o){return t((function(r,s){var l=[],c={},u=[];_.each(e.slice(a,a+o),(function(e){u.push(I(e,{addUniqueId:!1,allowExtension:!1}).then((function(e){e&&e.length&&(l=e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l))})))})),t.all(u).then((function(){a<e.length-1?n((function(){O(e,a+o,o).then((function(e){e&&e.length?r(e.reduce((function(e,t){return c[t.pubkey]?e:(c[t.pubkey]=!0,e.concat(t))}),l)):r(l)})).catch((function(e){s(e)}))}),i.constants.LIMIT_REQUEST_DELAY):r(l)})).catch((function(e){e&&e.ucode===i.errorCodes.HTTP_LIMITATION?r(l):s(e)}))}))},R=function(e,n,a){n=n||"pubkey";var o=[];return a||o.push(i.wot.member.uids()),o.push(r.data.raisePromise.search(null,e,n).catch((function(e){console.debug("Error while search identities, on extension point."),console.error(e)}))),t.all(o).then((function(t){if(!a){var i=t[0];_.forEach(e,(function(e){!e.uid&&e[n]&&(e.uid=i[e[n]],e.uid&&e.uid==e.name&&delete e.name)}))}return e}))},A=function(e,t){(t=t||{}).type=t.type||"info",t.message=t.message||"",t.messageParams=t.messageParams||{},e.events=e.events||[],e.events.push(t)};return r.registerEvent("data","load"),r.registerEvent("data","search"),i.api.node.on.stop(e,(function(){console.debug("[wot] Cleaning cache..."),c.clear("csWot-")}),this),{id:o,load:v,loadRequirements:f,search:I,newcomers:function(e,n){var a;return e=e||0,n=n||20,t.all([s.blockchain.current(!0).then((function(e){a=e.membersCount||0})),i.blockchain.stats.newcomers()]).then((function(t){if(!((t=t[1])&&t.result&&t.result.blocks&&t.result.blocks.length))return null;var i=_.sortBy(t.result.blocks,(function(e){return-e}));return N(i,0,5,e+n)})).then((function(t){return t&&t.length?(t=m(t,e,n),R(t,"pubkey",!0)):null})).then((function(e){return{hits:e,total:a}}))},pending:function(e,n){e=e||0,n=n||20;var a=Date.now();return t.all([i.wot.member.uids(),i.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:void 0}))]).then((function(o){var r=o[0],s=o[1];if(s){var l={},c={};_.forEach(s,(function(e){if("IN"==e.membership&&!r[e.pubkey]){var t={uid:e.uid,pubkey:e.pubkey,block:e.blockNumber,blockHash:e.blockHash},n=c[e.pubkey];if(n&&t.block>n.block)return;c[t.pubkey]=t,l[t.block]?l[t.block].push(t):l[t.block]=[t],n&&(l[n.block]=l[n.block].reduce((function(e,t){return t.pubkey==n.pubkey?e:(e||[]).concat(t)}),null),null===l[n.block]&&delete l[n.block])}}));var u=_.values(c),d=u.length,p=(u=m(u,e,n)).reduce((function(e,t){return e.concat(t.block)}),[]);return t.all([i.blockchain.blocks(_.uniq(p)).then((function(e){_.forEach(e,(function(e){_.forEach(l[e.number],(function(t){t.sigDate=e.medianTime,0!==e.number&&t.blockHash!==e.hash&&(A(t,{type:"error",message:"ERROR.WOT_PENDING_INVALID_BLOCK_HASH"}),console.debug("Invalid membership for uid={0}: block hash changed".format(t.uid)))}))}))})),R(u,"pubkey",!0)]).then((function(){return console.debug("[ES] [wot] Loaded {0}/{1} pending identities in {2} ms".format(u&&u.length||0,d,Date.now()-a)),{hits:u,total:d}}))}}))},all:function(){return O(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","u","v","w","x","y","z"],0,i.constants.LIMIT_REQUEST_COUNT).then((function(e){return R(e,"pubkey",!0)})).then(p).then((function(){return{hits:idties,total:idties.length}}))},extend:function(e,t,n){return R([e],t,n).then((function(e){return e[0]}))},extendAll:R,api:r}}var d=u("default");return d.instance=u,d}]),angular.module("cesium.tx.services",["ngApi","cesium.bma.services","cesium.settings.services","cesium.wot.services"]).factory("csTx",["$q","$timeout","$filter","$translate","FileSaver","UIUtils","BMA","Api","csConfig","csSettings","csWot","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d){var p=r;function m(t,r){r=r||p;var l=new s(this,"csTx-"+t),m=function(e,t,n,i,a){t&&t.length&&_.forEach(t,(function(t){if(null!==t.block_number||a){var o,s,l=!1,c=t.issuers.reduce((function(t,n){return l=l||n===e,t+(n!==e?", "+n:"")}),"");c.length>0&&(c=c.substring(2));var u,d=[],p=t.outputs.reduce((function(n,i,a){var p="string"==typeof i?i.split(":",3):[i.amount,i.base,i.conditions];s=parseInt(p[1]);var m=b(parseInt(p[0]),s),E=p[2],g=r.regexp.TX_OUTPUT_SIG.exec(E);if(g){var f=g[1];if(f===e){if(!l)return n+m;null===t.block_number&&d.push({amount:parseInt(p[0]),base:s,type:"T",identifier:t.hash,noffset:a,consumed:!1,conditions:E})}else if(""!==f&&f!=c&&(o=f),l)return n-m}else if(-1!==E.indexOf("SIG("+e+")")){var _=r.tx.parseUnlockCondition(E);if(_)return d.push(angular.merge({amount:parseInt(p[0]),base:s,type:"T",identifier:t.hash,noffset:a,conditions:E,consumed:!1},_)),_.amount=m,(u=u||[]).push(_),console.debug("[tx] has locked output:",_),n+m}return n}),0),m=p>0?c:o,E=t.time||t.blockstampTime,g=p+":"+t.hash+":"+E;if(!i[g]){i[g]=!0;var f={time:E,amount:p,pubkey:m,comment:t.comment,isUD:!1,hash:t.hash,locktime:t.locktime,block_number:t.block_number};l&&null===t.block_number&&(f.inputs=t.inputs,f.sources=d),u&&(f.lockedOutputs=u),n.push(f)}}}))},E=function(t,n){return e((function(i,a){var o=moment().utc().unix();n=n||o-c.data.walletHistoryTimeSecond;var s={pendings:[],validating:[],history:[],errors:[]},u={},p=[d.blockchain.current(!0),r.tx.history.pending({pubkey:t}).then((function(e){m(t,e.history.sending,s.pendings,u,!0),m(t,e.history.pending,s.pendings,u,!0)}))];if("pending"!==n){var E=function(e){m(t,e.history.sent,s.history,u,!1),m(t,e.history.received,s.history,u,!1)};if(n>0){for(var b=c.data.walletHistorySliceSecond,g=n-=n%b;g-b<o;g+=b)p.push(r.tx.history.times({pubkey:t,from:g,to:g+b-1},!0).then(E));p.push(r.tx.history.times({pubkey:t,from:o-o%b,to:o+999999999},!1).then(E))}else p.push(r.tx.history.all({pubkey:t}).then(E));c.data.showUDHistory&&n>0&&p.push(l.data.raisePromise.loadUDs({pubkey:t,fromTime:n}).then((function(e){e&&e.length&&_.forEach(e,(function(e){s.history.push(e)}))})).catch((function(e){console.debug("Error while loading UDs history, on extension point."),console.error(e)})))}e.all(p).then((function(e){var t=e[0];s.history.sort((function(e,t){return t.time-e.time}));var a=s.history.findIndex((function(e){return e.block_number<=t.number-c.data.blockValidityWindow}));s.validating=a>0?s.history.splice(0,a):[],s.fromTime="pending"!==n&&n||void 0,s.toTime=s.history.length?s.history[0].time:s.fromTime,i(s)})).catch(a)}))},b=function(e,t){return t<=0?e:e*Math.pow(10,t)},g=function(e,t){_(t).forEach((function(t){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(t.push(e),n[i]=t.length-1)}(t,e.sources,e.sourcesIndexByKey)}))},f=function(e){return r.tx.sources({pubkey:e}).then((function(e){var t={sources:[],sourcesIndexByKey:[],balance:0};return e.sources&&e.sources.length&&(_.forEach(e.sources,(function(e){e.consumed=!1,t.balance+=b(e.amount,e.base)})),g(t,e.sources)),t})).catch((function(e){throw console.warn("[tx] Error while getting sources...",e),e}))},T=function(t,n){var i=Date.now();return e.all([f(t),E(t,n)]).then((function(e){var t=e[0];t.tx=e[1];var n=[],a=[],o=t.balance,r=t.balance;function s(e){var i=[],o=!0;e.amount>0?o=!1:(_.find(e.inputs,(function(e){var n=e.split(":").slice(2).join(":"),a=t.sourcesIndexByKey[n];if(!angular.isDefined(a))return o=!1,!0;i.push(t.sources[a])})),e.sources&&g(t,e.sources),delete e.sources,delete e.inputs),o?(r+=e.amount,n.push(e),_.forEach(i,(function(e){e.consumed=!0}))):a.push(e)}for(var l=t.tx.pendings,c=!0;l&&l.length;)_.forEach(l,s),a.length>0&&n.length>0&&c?(l=a,a=[],c=!1):l=null;t.tx=t.tx||{},t.tx.pendings=n.sort((function(e,t){return t.time-e.time})),t.tx.errors=a.sort((function(e,t){return t.time-e.time})),t.balance=r<0?o:r;var d=(t.tx.history||[]).concat(t.tx.validating||[],t.tx.pendings||[],t.tx.errors||[]);return u.extendAll(d,"pubkey").then((function(){return console.debug("[tx] TX and sources loaded in "+(Date.now()-i)+"ms"),t}))})).catch((function(e){throw console.warn("[tx] Error while getting sources and tx...",e),e}))};return downloadHistoryFile=function(t,r){return(r=r||{}).fromTime=r.fromTime||-1,console.debug("[tx] Exporting TX history for pubkey [{0}]".format(t.substr(0,8))),e.all([i(["ACCOUNT.HEADERS.TIME","COMMON.UID","COMMON.PUBKEY","COMMON.UNIVERSAL_DIVIDEND","ACCOUNT.HEADERS.AMOUNT","ACCOUNT.HEADERS.COMMENT"]),d.blockchain.current(!0),T(t,r.fromTime)]).then((function(e){var r=e[0],s=e[1],l=s&&s.medianTime||moment().utc().unix(),c=s&&s.currency,u=e[2];return u&&u.tx&&u.tx.history?i("ACCOUNT.FILE_NAME",{currency:c,pubkey:t,currentTime:l}).then((function(e){var t=n("formatDecimal"),i=n("medianDate"),o=n("currencySymbolNoHtml"),s=[r["ACCOUNT.HEADERS.TIME"],r["COMMON.UID"],r["COMMON.PUBKEY"],r["ACCOUNT.HEADERS.AMOUNT"]+" ("+o(c)+")",r["ACCOUNT.HEADERS.COMMENT"]],l=u.tx.history.concat(u.tx.validating).reduce((function(e,n){return e.concat([i(n.time),n.uid,n.pubkey,t(n.amount/100),'"'+(n.isUD?r["COMMON.UNIVERSAL_DIVIDEND"]:n.comment)+'"'].join(";")+"\n")}),[s.join(";")+"\n"]),d=new Blob(l,{type:"text/plain; charset=utf-8"});a.saveAs(d,e)})):o.toast.show("INFO.EMPTY_TX_HISTORY")}))},l.registerEvent("data","loadUDs"),{id:t,load:T,loadSources:function(e){return console.debug("[tx] Loading sources for "+e.substring(0,8)),T(e,"pending")},downloadHistoryFile:downloadHistoryFile,api:l}}var E=new m("default");return E.instance=function(e,t){return new m(e,t)},E}]),angular.module("cesium.wallet.services",["ngApi","ngFileSaver","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.settings.services"]).factory("csWallet",["$q","$rootScope","$timeout","$translate","$filter","$ionicHistory","UIUtils","Api","Idle","localStorage","sessionStorage","Modals","CryptoUtils","csCrypto","BMA","csConfig","csSettings","FileSaver","Blob","csWot","csTx","csCurrency",function(e,t,n,a,o,r,s,l,c,u,d,p,m,E,b,g,f,T,h,v,I,N){var O,R=b;function A(b,A){var S,C,L,D,y,P,k=(A=A||R).constants.PROTOCOL_VERSION,M=A.constants.PROTOCOL_VERSION,w=A.constants.PROTOCOL_VERSION,U=A.constants.PROTOCOL_VERSION,B=A.constants.PROTOCOL_VERSION,x={},F=!1,H=new l(this,"csWallet-"+b),W=function(e){x.loaded=!1,x.pubkey=null,x.uid=null,x.localName=null,x.isNew=null,x.sourcesIndexByKey=null,x.medianTime=null,x.requirements={},x.blockUid=null,x.sigDate=null,x.sigStock=null,x.isMember=!1,x.events=[],x.children=[],x.encryptedData=null,V(),G(),D=!1,y=void 0,e?H.data.raise.init(x):(Y()&&C&&!C.useLocalStorage&&f.reset(),H.data.raise.reset(x))},V=function(){x.keypair={signSk:null,signPk:null}},G=function(){x.sources=void 0,x.sourcesIndexByKey=void 0,x.balance=0,x.tx=x.tx||{},x.tx.history=[],x.tx.pendings=[],x.tx.validating=[],x.tx.errors=[],delete x.tx.fromTime,delete x.tx.toTime},Y=function(){return"default"===b},j=function(){return x.encryptedData&&x.encryptedData.nonce&&x.encryptedData.content},K=function(e){x.sources=x.sources||[],x.sourcesIndexByKey=x.sourcesIndexByKey||{},_(e).forEach((function(e){!function(e,t,n){var i=e.type+":"+e.identifier+":"+e.noffset;angular.isUndefined(n[i])&&(e.conditions||console.warn("Trying to add a source without output condition !",e),t.push(e),n[i]=t.length-1)}(e,x.sources,x.sourcesIndexByKey)}))},$=function(t){if(!D)return(y||Ve()).then((function(){return $(t)}));var i=!q(),a=t&&(t.auth&&!J()||t.forceAuth);if(!i&&!a)return ee(t)?e.when(x):me(t);var o,r=f.data.keepAuthIdle>0;return(t&&t.authData&&e.when(t.authData)||p.showLogin(t)).then((function(e){if(!e||!e.pubkey||!i&&e.pubkey!==x.pubkey||a&&(!e.keypair||!e.keypair.signPk||!e.keypair.signSk))throw"CANCELLED";if(o=e,x.pubkey=o.pubkey,x.uid=o.uid||x.uid,x.isNew=t&&angular.isDefined(t.isNew)?t.isNew:x.isNew,r&&(x.keypair=o.keypair||{signSk:null,signPk:null}),i)return H.data.raisePromise.loginCheck(x).catch((function(e){throw W(),e})).then((function(){if(i)return H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)}))}))})).then((function(){return i?se():a?we():void 0})).then((function(){if(i&&ie(),a||J())return Ue(!0),H.data.raisePromise.auth(r?x:o)})).then((function(){var e=!i&&t&&t.minData?{minData:!0}:void 0;if(!ee(e))return me(e)})).then((function(){return t&&t.silent&&s.loading.hide(),r?x:angular.merge({},x,o)})).catch((function(e){if(!("RETRY"!=e||t&&t.authData))return n((function(){return $(t)}),300);throw e}))},z=function(){var t=J();return e((function(e,n){var i=x.pubkey;W(),ae(i),H.data.raise.logout(),t&&H.data.raise.unauth(),Ue(!1),r.clearCache(),e()}))},q=function(){return!!x.pubkey},X=function(t){return D?!J()||t&&t.forceAuth?((t=t||{}).expectedPubkey=q()&&x.pubkey,t.auth=!0,$(t)):e.when(x):(y||Ve()).then((function(){return X(t)}))},Q=function(){return e((function(e,t){V(),ie(),H.data.raise.unauth(),Ue(!1),r.clearCache(),e()}))},J=function(){return x.pubkey&&x.keypair&&x.keypair.signSk&&!0},Z=function(t){return D?J()?e.when(x.keypair):((t=t||{}).silent=!angular.isDefined(t.silent)||t.silent,X(t).then((function(){return x.keypair}))):(y||Ve()).then((function(){return Z(t)}))},ee=function(e){if(e){if(e.minData&&!e.sources)return x.loaded&&!0;if(e.requirements&&!x.requirements.loaded)return!1;if(e.tx&&e.tx.enable&&(!x.tx.fromTime||"pending"===x.tx.fromTime))return!1;if(e.sigStock&&!x.sigStock)return!1}return x.loaded&&x.sources&&!0},te=function(){if(x.loaded)return!x.pubkey||!(x.isMember||x.requirements.pendingMembership||x.requirements.revoked||!x.requirements.needSelf||x.requirements.wasMember||x.sources&&x.sources.length>0||x.tx.history.length>0||x.tx.validating.length>0||x.tx.pendings.length>0||x.localName||x.name||x.avatar)},ne=function(){return!!x.isNew},ie=function(t){if(t=t&&"string"==typeof t?t:x.pubkey,C.useLocalStorage){if(q()&&C.rememberMe){var n=Date.now();console.debug("[wallet] Storing...");var i=[];return C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION&&J()?i.push(d.put("seckey",m.util.encode_base58(x.keypair.signSk))):i.push(d.put("seckey",null)),i.push(u.put("pubkey",x.pubkey)),x.uid?i.push(u.put("uid",x.uid)):i.push(u.put("uid",null)),e.all(i).then((function(){console.debug("[wallet] Stored in "+(Date.now()-n)+"ms")}))}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when()])}return e.all([d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()])},ae=function(t){return console.debug("[wallet] Resetting stored pubkey (and uid) in local storage..."),d.put("seckey",null),u.put("pubkey",null),u.put("uid",null),C.useLocalStorage?t?d.put("data-"+t,null):e.when():(console.debug("[wallet] Resetting stored data in local storage..."),e.all([t?d.put("data-"+t,null):e.when(),t?u.put("data-"+t,null):e.when()]))},oe=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};var t,n,i=C.useLocalStorageEncryption,a="data-"+x.pubkey;x.notifications&&x.notifications.time&&((t=t||{}).notifications={time:x.notifications.time}),x.invitations&&x.invitations.time&&((t=t||{}).invitations={time:x.invitations.time}),x.children&&x.children.length&&((t=t||{}).childrenCount=x.children.length,(n=n||{}).children=_.map(x.children,(function(e){return{pubkey:e.data.pubkey,uid:e.data.uid,localName:e.data.localName}})));var o=(t||n)&&JSON.stringify(angular.merge({},t||{},n||{}));return i&&n?J()?e.all([m.util.random_nonce(),m.box.keypair.fromSignKeypair(x.keypair),d.put(a,o||null)]).then((function(e){var i=e[0],o=e[1];return m.box.pack(JSON.stringify(n),i,o.boxPk,o.boxSk).then((function(e){return t=angular.merge(t||{},{encryptedData:{nonce:m.util.encode_base58(i),content:e}}),u.put(a,JSON.stringify(t))}))})):d.put(a,o||null):e.all([d.put(a,null),u.put(a,o||null)])},re=function(){return e.all([d.get("seckey"),u.get("pubkey"),u.get("uid")]).then((function(e){var t=e[0],n=e[1],i=e[2];if(n&&"null"!=n){var a;if(console.debug("[wallet] Restore {"+n.substring(0,8)+"} from local storage"),t&&t.length&&"null"!=t)try{a={signPk:m.util.decode_base58(n),signSk:m.util.decode_base58(t)}}catch(e){console.warn("[wallet] Secret key restoration failed: ",e),a=void 0}return x.pubkey=n,x.uid=i&&"null"!=i?i:void 0,x.keypair=a||{signPk:void 0,signSk:void 0},se()}})).then((function(){return J()?e.all([H.data.raisePromise.login(x),Ue(!0),H.data.raisePromise.auth(x)]).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.auth]",e)})):q()?H.data.raisePromise.login(x).catch((function(e){console.warn("Error during extension call [wallet.api.data.on.login]",e)})):void 0})).then((function(){return x}))},se=function(){if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};return ne()?e.when(x):e.all([d.getObject("data-"+x.pubkey),u.getObject("data-"+x.pubkey)]).then((function(e){var t=e[0],n=e[1];return t&&t.children&&t.children.length===n.childrenCount?le(t).catch((function(e){return console.error("[wallet] Failed to restore from the session storage ! Retrying from the local storage...",e),le(n)})):le(n)}))},le=function(t){if(!t)return e.when();if(t.children){var n=x.childrenCount,i=De({stop:!1,store:!1});try{var a={};_.forEach(t.children,(function(e){if(!a[e.pubkey]){a[e.pubkey]=!0;var t=ke();t.data.pubkey=e.pubkey,t.data.localName=e.localName,t.data.uid=e.uid,Le(t,{store:!1})}})),delete t.children,delete x.childrenCount}catch(t){return console.error("[wallet] Failed to restore children wallet.",t),x.childrenCount=n,x.children=i,e.reject({message:"ERROR.RESTORE_WALLET_LIST_FAILED"})}_.forEach(i||[],(function(e){e.stop()}))}return delete t.pubkey,delete t.uid,angular.merge(x,t),j()&&J()?we({store:!1}).then((function(){return x})):e.when(x)},ce=function(e){return Ce("requirements"),v.loadRequirements(x,e)},ue=function(e){return I.load(x.pubkey,e).then((function(e){G(),angular.merge(x,e)})).catch((function(e){throw G(),e}))},de=function(){x.requirements.revoked?(delete x.requirements.meta.invalid,Re({type:"info",message:"ERROR.WALLET_REVOKED",context:"requirements"})):x.requirements.pendingRevocation?(delete x.requirements.meta.invalid,Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"})):(!x.isMember&&x.requirements.meta&&x.requirements.meta.invalid?(Re({type:"error",message:"ERROR.WALLET_INVALID_BLOCK_HASH",context:"requirements"}),console.debug("Invalid membership for uid={0}: block hash changed".format(x.uid))):!x.isMember&&x.requirements.expired?(Re({type:"error",message:"ERROR.WALLET_IDENTITY_EXPIRED",context:"requirements"}),console.debug("Identity expired for uid={0}.".format(x.uid))):x.requirements.pendingMembership?(Re({type:"pending",message:"ACCOUNT.WAITING_MEMBERSHIP",context:"requirements"}),!x.requirements.needCertificationCount&&x.requirements.outdistanced&&Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})):!x.requirements.needSelf&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NO_WAITING_MEMBERSHIP",context:"requirements"}),x.requirements.needRenew?x.isMember&&x.requirements.membershipExpiresIn>0?Re({type:"warn",message:"ACCOUNT.WILL_NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):!x.isMember&&x.requirements.membershipExpiresIn>0&&x.requirements.needCertificationCount>0?Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED",messageParams:x.requirements,context:"requirements"}):Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}):(x.requirements.needCertificationCount>0&&(Re({type:"info",message:"ACCOUNT.WAITING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember||Re({type:"help",message:"ACCOUNT.WAITING_CERTIFICATIONS_HELP",messageParams:x.requirements,context:"requirements"})),x.requirements.willNeedCertificationCount>0&&Re({type:"warn",message:"ACCOUNT.WILL_MISSING_CERTIFICATIONS",messageParams:x.requirements,context:"requirements"}),x.requirements.wasMember&&x.requirements.needMembership&&Re({type:"warn",message:"ACCOUNT.NEED_RENEW_MEMBERSHIP",messageParams:x.requirements,context:"requirements"}),x.requirements.needCertificationCount||x.requirements.willNeedCertificationCount||!x.requirements.outdistanced||Re({type:"warn",message:"ACCOUNT.OUT_DISTANCED",context:"requirements"})))},pe=function(){return A.wot.certifiedBy({pubkey:x.pubkey}).then((function(e){x.sigStock=e.certifications?e.certifications.reduce((function(e,t){return null===t.written?e:e+1}),0):0})).catch((function(e){if(e&&e.ucode==A.errorCodes.NO_MATCHING_MEMBER)x.sigStock=0;else{if(!e||1002!=e.ucode)throw e;console.warn("[wallet-service] Detecting Duniter issue #1309 ! Applying workaround... "),x.sigStock=0}}))},me=function(e){var t=!N.data.initPhase&&(!f.data.wallet||f.data.wallet.alertIfUnusedWallet)&&!x.loaded&&(!e||!e.minData||!e.silent);return P?P.then((function(){return ee(e)?x:ge(e)})):(P=e&&e.minData?be(e):e||x.loaded?ge(e):Ee()).then((function(){var e=te();return!(t&&!ne()&&!0===e)||s.loading.hide().then((function(){return s.alert.confirm("CONFIRM.LOGIN_UNUSED_WALLET","CONFIRM.LOGIN_UNUSED_WALLET_TITLE",{cancelText:"COMMON.BTN_CONTINUE",okText:"COMMON.BTN_RETRY"})})).then((function(e){return e?z().then((function(){throw"RETRY"})):(f.data.wallet.alertIfUnusedWallet&&(f.data.wallet.alertIfUnusedWallet=!1,f.store()),!0)}))})).then((function(e){if(P=null,e)return x;throw"CANCELLED"}))},Ee=function(t){return x.loaded=!1,e.all([ce(!0).then((function(e){if(e.requirements&&(e.requirements.isMember||e.requirements.wasMember))return pe();e.sigStock=0})),ue(t||"pending")]).then((function(){return de(),H.data.raisePromise.load(x).catch((function(e){console.error("[wallet] Error during load API extension point. Try to continue",e)}))})).then((function(){return x.loaded=!0,x})).catch((function(e){throw x.loaded=!1,e}))},be=function(t){return(t=t||{}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded||angular.isUndefined(x.requirements.needSelf),t.requirements?ge(t).then((function(e){return e.loaded=!0,e})):e.when(x)},ge=function(t){(t=t||{requirements:!0,sources:!0,tx:{enable:!0,fromTime:x.tx&&"pending"!==x.tx.fromTime?x.tx.fromTime:void 0},sigStock:!0,api:!0}).requirements=angular.isDefined(t.requirements)?t.requirements:!x.requirements.loaded,angular.isUndefined(t.sources)&&t.tx&&t.tx.enable&&(t.sources=!0);var n=[];return t.requirements&&(Ce("requirements"),n.push(ce(!0).then(de))),!t.sources||t.tx&&!t.tx.enable?t.sources&&t.tx&&!t.tx.enable&&n.push(ue("pending")):n.push(ue(t.tx?t.tx.fromTime:void 0)),t.sigStock&&n.push(pe()),(n.length?e.all(n):e.when()).then((function(){return angular.isDefined(t.api)&&!t.api?x:H.data.raisePromise.load(x).then((function(){return x.loaded||(x.loaded=x.requirements.loaded&&x.sources),x}))}))},fe=function(t,n){return x.uid!=t||n&&x.blockUid!=n?x.loaded?(x.uid=t,x.blockUid=n,ge({requirements:!0,sigStock:!0}).then((function(){return ie({skipData:!0})}))):P?P.then((function(){return fe(t,n)})):e.when():e.when()},_e=function(e,t){var n=Math.pow(10,t);return e<n?0:Math.trunc(e/n)*n},Te=function(e,t){return t<=0?e:e*Math.pow(10,t)},he=function(e,t,n){angular.isUndefined(n)&&(n=t);var i=0,a=[],o=n,r=n;if(_.find(x.sources||[],(function(t){return!t.consumed&&t.base===n&&A.regexp.TX_OUTPUT_SIG.exec(t.conditions)&&(i+=Te(t.amount,t.base),a.push(t)),i>=e})),i<e&&n>0){var s=he(e-i,t,n-=1);s.amount>0&&(o=s.minBase,i+=s.amount,[].push.apply(a,s.sources))}return{minBase:o,maxBase:r,amount:i,sources:a}},ve=function(t,i,r,l,c,u){return e.all([Z(),N.get(),u&&e.when(u)||N.blockchain.current()]).then((function(e){var d=e[0],p=e[1];if(u=e[2],!A.regexp.PUBKEY.test(t))throw{message:"ERROR.INVALID_PUBKEY"};if(!A.regexp.COMMENT.test(r))throw{message:"ERROR.INVALID_COMMENT"};if(!q())throw{message:"ERROR.NEED_LOGIN_FIRST"};if(t===x.pubkey)throw{message:"ERROR.SAME_TX_RECIPIENT"};if(!i)throw{message:"ERROR.AMOUNT_REQUIRED"};if(i<=0)throw{message:"ERROR.AMOUNT_NEGATIVE"};i=Math.floor(i);var m={amount:0,minBase:u.unitbase,maxBase:u.unitbase+1,sources:[]},E=[];E.push("[wallet] amount="+i);for(var b=0;m.amount<i&&b<=u.unitbase;)(m=he(i,u.unitbase)).amount<i&&++b<=u.unitbase&&(i=_e(i,b),E.push("[wallet] inputs not found. Retrying with amount ="+i+" be compatible with amountBase="+b));if(m.amount<i){if(x.balance<i)throw{message:"ERROR.NOT_ENOUGH_CREDIT"};if(0===m.amount)throw{message:"ERROR.ALL_SOURCES_USED"};return a("COMMON.UD").then((function(e){var t;return t=l?{amount:o("formatDecimal")(m.amount/p.currentUD),unit:e,subUnit:o("abbreviate")(p.name)}:{amount:o("formatDecimal")(m.amount/100),unit:o("abbreviate")(p.name),subUnit:""},a("ERROR.NOT_ENOUGH_SOURCES",t).then((function(e){throw{message:e}}))}))}return b<m.minBase&&!function(e,t){if(!t)return!0;if(e<Math.pow(10,t))return!1;var n="00000000"+e;return 0===parseInt(n.substring(n.length-t))}(i,m.minBase)?(i=function(e,t){var n=Math.pow(10,t);return e<n?n:Math.trunc(e/n)*n}(i,m.minBase),console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Amount has been truncate to "+i)):b>0&&(console.debug("[wallet] Amount has been truncate to "+i),E.push("[wallet] Will use amount truncated to "+i+" (amountBase="+b+")")),Ie(p,u,d,t,i,m,r,c||x.pubkey,E).then((function(e){x.balance-=e.amount,x.balance<0&&(x.balance=0),_.forEach(m.sources,(function(e){e.consumed=!0})),e&&e.sources.length&&(console.debug("[wallet-service] New sources to be add after the TX: ",e.sources),K(e.sources));var n={time:N.date.now(),amount:-i,pubkey:t,comment:r,isUD:!1,hash:e.hash,locktime:0,block_number:null};return v.extendAll([n],"pubkey").then((function(){return x.tx.pendings.unshift(n),H.data.raise.balanceChanged(x),H.data.raise.newTx(x),{hash:e.hash}}))})).catch((function(e){if(e&&e.ucode===A.errorCodes.SOURCE_ALREADY_CONSUMED)return console.debug("[wallet] TX rejected by node with error [{0}]. Reloading sources then retry...".format(e.message||"Source already consumed")),n(ue,500).then((function(){return ve(t,i,r,l,c,u)}));if(e&&e.ucode===A.errorCodes.TX_INPUTS_OUTPUTS_NOT_EQUAL&&f.data.plugins&&f.data.plugins.es&&f.data.plugins.es.enable)return s.loading.hide(),s.alert.confirm("CONFIRM.ISSUE_524_SEND_LOG","ERROR.POPUP_TITLE",{cssClass:"warning",okText:"COMMON.BTN_OK",cancelText:"COMMON.BTN_NO"}).then((function(e){if(e)return H.error.raise.send({title:"Issue #524 logs",content:"App version: "+g.version+"\nApp build: "+g.build+"\nLogs:\n\n"+E.join("\n")}),n((function(){throw{message:"ERROR.ISSUE_524_TX_FAILED"}}),1500);throw{message:"ERROR.SEND_TX_FAILED"}}));throw e}))}))},Ie=function(e,t,n,a,o,r,s,l,c){if(r.sources.length>40){console.debug("[Wallet] TX has to many sources. Will chain TX...");var u={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(0,40)};return _.forEach(u.sources,(function(e){e.base<u.minBase&&(u.minBase=e.base),e.base>u.maxBase&&(u.maxBase=e.base),u.amount+=Te(e.amount,e.base)})),Ie(e,t,n,x.pubkey,u.amount,u,void 0,x.pubkey,c).then((function(i){_.forEach(u.sources,(function(e){e.consumed=!0})),K(i.sources);var d={minBase:t.unitbase,maxBase:0,amount:0,sources:r.sources.slice(40).concat(i.sources)};return _.forEach(d.sources,(function(e){e.base<d.minBase&&(d.minBase=e.base),e.base>d.maxBase&&(d.maxBase=e.base),d.amount+=Te(e.amount,e.base)})),Ie(e,t,n,a,o,d,s,l,c)}))}var d="Version: "+k+"\nType: Transaction\nCurrency: "+e.name+"\nBlockstamp: "+t.number+"-"+t.hash+"\nLocktime: 0\nIssuers:\n"+x.pubkey+"\nInputs:\n";for(_.forEach(r.sources,(function(e){d+=[e.amount,e.base,e.type,e.identifier,e.noffset].join(":")+"\n"})),d+="Unlocks:\n",i=0;i<r.sources.length;i++)d+=i+":SIG(0)\n";d+="Outputs:\n";var p,E=o,b=r.maxBase,g=0,f=[];if(a!==x.pubkey){for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+a+")\n",g++),b--;E=r.amount-o,b=r.maxBase}for(;E>0;)E-=p=_e(E,b),p>0&&(p=0===b?p:p/Math.pow(10,b),d+=p+":"+b+":SIG("+l+")\n",x.pubkey===l&&f.push({type:"T",noffset:g,amount:p,base:b,conditions:"SIG("+l+")",consumed:!1}),g++),b--;return d+="Comment: "+(s||"")+"\n",c&&(a==x.pubkey?c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase):c.push("[wallet] Creating new TX, using inputs:\n - minBase: "+r.minBase+"\n - maxBase: "+r.maxBase+"\n - sources (=TX inputs):"),_.forEach(r.sources,(function(e){c.push([e.amount,e.base,e.type,e.identifier,e.noffset].join(":"))})),c.push("\n[wallet] generated TX document (without signature) :\n------ START ------\n"+d+"------ END ------\n")),m.sign(d,n).then((function(e){var t=d+e+"\n";return A.tx.process({transaction:t}).catch((function(e){if(!e||e.ucode!==A.errorCodes.TX_ALREADY_PROCESSED)throw e})).then((function(){return m.util.hash(t)})).then((function(e){return _.forEach(f,(function(t){t.identifier=e,t.consumed=!1,t.pending=!0})),{amount:x.pubkey===a?0:x.pubkey===l?o:r.amount,tx:t,hash:e,sources:f}}))}))},Ne=function(e,t,n,i){if(n=n||x.uid,i=i||x.blockUid,!n||!i)throw{message:"ERROR.WALLET_HAS_NO_SELF"};if(x.requirements.expired)throw{message:"ERROR.WALLET_IDENTITY_EXPIRED"};var a="Version: "+M+"\nType: Identity\nCurrency: "+e.name+"\nIssuer: "+x.pubkey+"\nUniqueID: "+n+"\nTimestamp: "+i+"\n";return m.sign(a,t).then((function(e){return a+=e+"\n",console.debug("Has generate an identity document:\n----\n"+a+"----"),a}))},Oe=function(t){return function(){var i;return e.all([Z(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i="Version: "+w+"\nType: Membership\nCurrency: "+a.currency+"\nIssuer: "+x.pubkey+"\nBlock: "+a.number+"-"+a.hash+"\nMembership: "+(t?"IN":"OUT")+"\nUserID: "+x.uid+"\nCertTS: "+x.blockUid+"\n",m.sign(i,n)})).then((function(e){var t=i+e+"\n";return A.blockchain.membership({membership:t})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de)}},Re=function(e,t){(e=e||{}).type=e.type||"info",e.message=e.message||"",e.messageParams=e.messageParams||{},e.context=e.context||"undefined",e.message.trim().length?t?x.events.splice(0,0,e):x.events.push(e):console.debug("Event without message. Skipping this event")},Ae=function(e){var t=Math.round(e.answer.length/2),n=e.answer.substr(0,t),i=e.answer.substr(t);return m.scryptKeypair(n,i).then((function(t){return e.pubkey=m.util.encode_base58(t.signPk),e.keypair=t,e}))},Se=function(){return e.all([Z(),N.get()]).then((function(e){var t=e[0],n=e[1];return Ne(n,t).then((function(e){var i=e.trim().split("\n"),a=i[i.length-1],o="Version: "+B+"\nType: Revocation\nCurrency: "+n.name+"\nIssuer: "+x.pubkey+"\nIdtyUniqueID: "+x.uid+"\nIdtyTimestamp: "+x.blockUid+"\nIdtySignature: "+a+"\n";return m.sign(o,t).then((function(e){return o+=e+"\n",console.debug("Has generate an revocation document:\n----\n"+o+"----"),o}))}))}))},Ce=function(e){x.events=x.events.reduce((function(t,n){return n.context&&n.context==e?t:t.concat(n)}),[])},Le=function(t,n){return t.children.setParent(S),x.children=x.children||[],x.children.push(t),!n||angular.isUndefined(n.store)||n.store?oe():e.when()},De=function(e){e&&!e.stop||_.forEach(x.children||[],(function(e){e.stop()}));var t=x.children.splice(0,x.children.length);return!e||angular.isUndefined(e.store)||e.store?oe():t},ye=function(e){return _.find(x.children||[],(function(t){return t.isUserPubkey(e)}))},Pe=function(){return angular.isDefined(x.childrenCount)?x.childrenCount:x.children&&x.children.length||0},ke=function(){var e=(x.children&&x.children.reduce((function(e,t){return Math.max(e,t.id)}),0)||x.childrenCount||0)+1;return O.instance(e,A)},Me=function(){return we().then((function(){return x.children}))},we=function(t){return j()?J()?m.box.keypair.fromSignKeypair(x.keypair).then((function(e){var t=m.util.decode_base58(x.encryptedData.nonce);return m.box.open(x.encryptedData.content,t,e.boxPk,e.boxSk)})).then((function(e){x.encryptedData=null;var n=le(JSON.parse(e));return(!t||angular.isUndefined(t.store)||t.store)&&n.then((function(){return oe()})),n})):X().then(we):e.when()},Ue=function(e){var t=(e=angular.isDefined(e)?e:J())&&C.keepAuthIdle>0&&C.keepAuthIdle!=f.constants.KEEP_AUTH_IDLE_SESSION,n=F!=t;n?(t?(console.debug("[wallet] Start idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle),c.watch()):F&&(console.debug("[wallet] Stop idle"),c.unwatch()),F=t):t&&c.getIdle()!==C.keepAuthIdle&&(console.debug("[idle] Updating auth idle (delay: {0}s)".format(C.keepAuthIdle)),c.setIdle(C.keepAuthIdle)),e&&C.keepAuthIdle==f.constants.KEEP_AUTH_IDLE_SESSION?d.put("seckey",m.util.encode_base58(x.keypair.signSk)):n&&d.put("seckey",null)};function Be(e){return{useLocalStorage:e.useLocalStorage,useLocalStorageEncryption:e.useLocalStorageEncryption,rememberMe:e.rememberMe,keepAuthIdle:e.keepAuthIdle}}function xe(e){var t=Be(e);if(!angular.equals(C,t)){var n=!angular.equals(C.useLocalStorageEncryption,t.useLocalStorageEncryption),i=!angular.equals(C.useLocalStorage,t.useLocalStorage)||n,a=!angular.equals(C.keepAuthIdle,t.keepAuthIdle);if(C=t,a&&Ue(),i){if(C.useLocalStorage)return ie().then((function(){if(x.childrenCount>0&&n&&C.useLocalStorageEncryption)return X({minData:!0,silent:!0}).catch((function(e){if("CANCELLED"===e)return f.apply({useLocalStorageEncryption:!1}),f.store();throw e}))})).then(oe);ae(x.pubkey)}}}function Fe(){_.forEach(L,(function(e){e()})),L=[]}function He(){console.debug("[wallet] Stopping..."),Fe(),W()}function We(){return He(),n(Ve,200)}function Ve(n){(n=n||{}).restore=angular.isDefined(n.restore)?n.restore:"default"===b,console.debug("[wallet] Starting...");var i=Date.now();return y=e.all([f.ready().then((function(){C=Be(f.data)})),N.ready(),A.ready()]),n.restore&&(y=y.then(re)),y.then((function(){!function(){L=[f.api.data.on.changed(t,xe,this),A.api.node.on.restart(t,We,this)],t.$on("IdleStart",Q)}(),console.debug("[wallet] Started in "+(Date.now()-i)+"ms"),D=!0,y=null})).then((function(){return x})),y}return H.registerEvent("data","init"),H.registerEvent("data","loginCheck"),H.registerEvent("data","login"),H.registerEvent("data","auth"),H.registerEvent("data","unauth"),H.registerEvent("data","load"),H.registerEvent("data","logout"),H.registerEvent("data","reset"),H.registerEvent("data","store"),H.registerEvent("error","send"),H.registerEvent("data","balanceChanged"),H.registerEvent("data","newTx"),H.registerEvent("action","certify"),W(!0),"default"!==b&&(ie=e.when,re=e.when,se=e.when),S={id:b,data:x,ready:function(){return D?e.when():y||Ve()},start:Ve,stop:He,login:$,logout:z,auth:X,unauth:Q,isLogin:q,isAuth:J,getKeypair:Z,hasSelf:function(){return!!x.pubkey&&!x.requirements.needSelf},setSelf:fe,isMember:function(){return x.isMember},isDataLoaded:ee,isDefault:Y,isNeverUsed:te,isNew:ne,isUserPubkey:function(e){return q()&&x.pubkey===e},getData:function(){return x},loadData:me,refreshData:ge,internal:{addListener:function(e){(L=L||[]).push(e)},removeListeners:Fe},store:ie,storeData:oe,transfer:ve,transferAll:function(t,n,i,a,o){return q()?o&&t!=o?N.blockchain.lastValid().then((function(e){return console.debug("[wallet] Using last valid block as TX reference (to avoid network fork): ",e),ve(t,n,i,a,o,e).then((function(){if(x.balance>0&&o)return console.debug("[wallet] Wallet has some more money: transfering fund to [{0}]".format(o.substring(0,8))),ve(o,x.balance,void 0,!1,o,e)}))})):e.reject({message:"Could not have same pubkey for 'destPub' and 'restPub'"}):e.reject({message:"ERROR.NEED_LOGIN_FIRST"})},self:function(t,n){return A.regexp.USER_ID.test(t)?e.all([Z(),N.get(),N.blockchain.lastValid()]).then((function(e){var n=e[0],a=e[1];return i=e[2],Ne(a,n,t,i.number+"-"+i.hash)})).then((function(e){return A.wot.add({identity:e})})).then((function(){if(n)return ce(!1).then(de);x.uid=t,x.blockUid=i.number+"-"+i.hash})).catch((function(e){if(e&&e.ucode===A.errorCodes.IDENTITY_SANDBOX_FULL)throw{ucode:A.errorCodes.IDENTITY_SANDBOX_FULL,message:"ERROR.IDENTITY_SANDBOX_FULL"};throw e})):e.reject({message:"ERROR.INVALID_USER_ID"});var i},revoke:function(){return Ce("revocation"),Se().then((function(e){return A.wot.revoke({revocation:e})})).then((function(){return n((function(){return ce(!1)}),1e3)})).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},revokeWithFile:function(t){return e.all([A.wot.revoke({revocation:t})]).then((function(e){if(q())return n((function(){return ce(!1)}),1e3).then(de).catch((function(e){if(!e||e.ucode!=A.errorCodes.REVOCATION_ALREADY_REGISTERED)throw e;Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}));Re({type:"pending",message:"INFO.REVOCATION_SENT_WAITING_PROCESS",context:"requirements"},!0)}))},certify:function(t,n,i,a,o,r){return e.all([Z(),N.get(),N.blockchain.current()]).then((function(e){var s=e[0],l=e[1],c=e[2],u="Version: "+U+"\nType: Certification\nCurrency: "+l.name+"\nIssuer: "+x.pubkey+"\nIdtyIssuer: "+n+"\nIdtyUniqueID: "+t+"\nIdtyTimestamp: "+i+"\nIdtySignature: "+a+"\nCertTimestamp: "+c.number+"-"+c.hash+"\n";return m.sign(u,s).then((function(e){var t=u+e+"\n";return A.wot.certify({cert:t})})).then((function(){var e={pubkey:n,uid:t,time:c.medianTime,isMember:o,wasMember:r,expiresIn:l.parameters.sigWindow,pending:!0,block:c.number,valid:!0};return H.action.raise.certify(e),e}))}))},downloadSaveId:function(e){return function(e){var t="Version: 10 \nType: SaveID\nQuestions: \n"+e.questions+"Issuer: "+x.pubkey+"\nCrypted-Nonce: "+e.nonce+"\nCrypted-Pubkey: "+e.pubkey+"\nCrypted-Salt: "+e.salt+"\nCrypted-Pwd: "+e.pwd+"\n";return m.sign(t,x.keypair).then((function(e){return t+=e+"\n",console.debug("Has generate an SaveID document:\n----\n"+t+"----"),t}))}(e).then((function(e){var t=new h([e],{type:"text/plain; charset=utf-8"});T.saveAs(t,"{0}-recover_ID.txt".format(x.pubkey.substring(0,8)))}))},getCryptedId:function(t){return Ae(t).then(m.util.random_nonce).then((function(n){return t.nonce=m.util.encode_base58(n),e.all([m.box.pack(t.salt,n,t.keypair.boxPk,t.keypair.boxSk),m.box.pack(t.pwd,n,t.keypair.boxPk,t.keypair.boxSk)])})).then((function(e){return t.salt=e[0],t.pwd=e[1],t}))},recoverId:function(e){var t=m.util.decode_base58(e.cypherNonce);return Ae(e).then((function(e){return m.box.open(e.cypherSalt,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(n){return e.salt=n,m.box.open(e.cypherPwd,t,e.keypair.boxPk,e.keypair.boxSk)})).then((function(t){return e.pwd=t,e})).catch((function(e){console.warn("Incorrect answers - Unable to recover passwords")}))},downloadRevocation:function(){return e.all([N.get(),Se()]).then((function(e){var t=e[0],n=e[1],i=new h([n],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.SECURITY.REVOCATION_FILENAME",{uid:x.uid,currency:t.name,pubkey:x.pubkey}).then((function(e){T.saveAs(i,e)}))}))},downloadKeyFile:function(t){return J()?e.all([N.get(),E.keyfile.generateContent(x.keypair,{type:t,password:function(){return s.loading.hide(),p.showPassword({title:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.TITLE",subTitle:"ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.HELP"}).then((function(e){return s.loading.show(10).then((function(){return e}))}))}})]).then((function(e){var n=e[0],i=e[1];return a("ACCOUNT.SECURITY.KEYFILE_FILENAME",{currency:n.name,pubkey:x.pubkey,format:t}).then((function(e){var t=new h([i],{type:"text/plain; charset=utf-8"});T.saveAs(t,e)}))})):e.reject("user not authenticated")},membership:{inside:Oe(!0),out:Oe(!1)},events:{add:Re,cleanByContext:Ce},children:{create:function(e){var t=Pe()+1,n=O.instance(t);return Le(n,e),n},add:Le,remove:function(e,t){x.children=x.children||[];var n=_.findIndex(x.children,(function(t){return t.id==e}));if(-1!==n)return x.children.splice(n,1)[0].stop(),!t||angular.isUndefined(t.store)||t.store?oe():void 0;console.warn("[wallet] Unable to remove child wallet {"+e+"} (not found)")},get:function(e){return"default"!==e&&_.find(x.children||[],(function(t){return t.id==e}))||void 0},getByPubkey:ye,all:Me,setParent:function(n){var i;L=L||[],_.forEach(["load","reset"],(function(a){i=H.data.on[a](t,(function(t,i){return i=i||e.defer(),n.api.data.raisePromise[a](t).then(i.resolve).catch(i.reject),i.promise}),this),L.push(i)})),i=n.api.data.on.unauth(t,(function(){J()&&Q()}),this),L.push(i)},count:Pe,hasPubkey:function(e){return!!ye(e)},instance:ke,downloadFile:function(){return e.all([Me(),N.get()]).then((function(e){var t=e[0],n=e[1],i=(t||[]).reduce((function(e,t){return e+[t.data.pubkey,t.data.uid,t.data.localName||t.data.name].join("\t")+"\n"}),""),o=new h([i],{type:"text/plain; charset=utf-8"});return a("ACCOUNT.WALLET_LIST.EXPORT_FILENAME",{pubkey:x.pubkey,currency:n.name}).then((function(e){T.saveAs(o,e)}))}))}},api:H}}return(O=A("default",b)).instance=A,O}]),angular.module("cesium.help.services",[]).constant("csHelpConstants",{wallet:{stepCount:4}}).factory("csHelp",["$rootScope","csSettings","UIUtils","csHelpConstants","$controller",function(e,t,n,i,a){function o(o,r){if(o=angular.isDefined(o)?o:t.data.helptip.wallet,r=!!angular.isDefined(r)&&r,!(o<0||o>=i.wallet.stepCount)){var s=function(i,o){if(i||!e.tour&&t.data.helptip.enable&&!n.screen.isSmall()){var r=e.$new();return a("HelpTipCtrl",{$scope:r}),r}}(r);if(s)return s.tour=r,s.startWalletTour(o,!1).then((function(e){s.$destroy(),r||(t.data.helptip.wallet=e,t.store())}))}}return{wallet:{tour:function(){return o(0,!0)},helptip:o}}}]),angular.module("cesium.plugin.services",[]).provider("PluginService",(function(){var e=[],t={};this.registerEagerLoadingService=function(t){return e.push(t),this},this.extendState=function(e,n){return angular.isDefined(e)&&angular.isDefined(n)&&(t[e]||(t[e]=[]),t[e].push(n)),this},this.extendStates=function(e,t){var n=this;return e.forEach((function(e){n.extendState(e,t)})),this},this.$get=["$injector","$state",function(n,i){var a;return{start:function(){e.length>0&&_.forEach(e,(function(e){n.get(e)}))},extensions:{points:{getActivesByName:function(e){return _.keys(t).reduce((function(e,n){return i.includes(n)?e.concat(t[n]):e}),[]).reduce((function(t,n){return n.points&&n.points[e]?t.concat(n.points[e]):t}),[])},current:{get:function(){return a},set:function(e){a=e}}}}}}]})),angular.module("cesium.services",["cesium.settings.services","cesium.http.services","cesium.network.services","cesium.bma.services","cesium.crypto.services","cesium.utils.services","cesium.modal.services","cesium.storage.services","cesium.device.services","cesium.currency.services","cesium.wot.services","cesium.tx.services","cesium.wallet.services","cesium.help.services","cesium.plugin.services"]),e.prototype.regexp={BMA:/^BASIC_MERKLED_API[ ]?/,BMAS:/^BMAS[ ]?/,WS2P:/^WS2P[ ]?/,BMA_REGEXP:/^BASIC_MERKLED_API([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,BMAS_REGEXP:/^BMAS([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))$/,WS2P_REGEXP:/^WS2P[ ]+([a-z0-9]+)([ ]+([a-z_][a-z0-9-_.ÄŸÄž]*))?([ ]+([0-9.]+))?([ ]+([0-9a-f:]+))?([ ]+([0-9]+))([ ]+([a-z0-9/.&#!]+))?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},e.prototype.regex=e.prototype.regexp,e.prototype.keyID=function(){var e=this.bma||this.getBMA();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},e.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},e.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},e.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},e.prototype.getBMA=function(){if(this.bma)return this.bma;var e=null,t=this.regexp.BMA_REGEXP,n=this.regexp.BMAS_REGEXP;return this.endpoints.forEach((function(i){var a=!e&&t.exec(i);a&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:443==a[8],useBma:!0}),(a=!e&&n.exec(i))&&(e={dns:a[2]||"",ipv4:a[4]||"",ipv6:a[6]||"",port:a[8]||80,useSsl:!0,useBma:!0})})),e||{}},e.prototype.getEndpoints=function(e){return e?this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[]):this.endpoints},e.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e);return!!this.getEndpoints(t).length},e.prototype.getDns=function(){var e=this.bma||this.getBMA();return e.dns?e.dns:null},e.prototype.getIPv4=function(){var e=this.bma||this.getBMA();return e.ipv4?e.ipv4:null},e.prototype.getIPv6=function(){var e=this.bma||this.getBMA();return e.ipv6?e.ipv6:null},e.prototype.getPort=function(){var e=this.bma||this.getBMA();return e.port?e.port:null},e.prototype.getHost=function(e){return bma=e||this.bma||this.getBMA(),(443==bma.port||bma.useSsl)&&bma.dns?bma.dns:this.hasValid4(bma)?bma.ipv4:bma.dns?bma.dns:bma.ipv6?"["+bma.ipv6+"]":""},e.prototype.getURL=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},e.prototype.getServer=function(e){e=e||this.bma||this.getBMA();var t=this.getHost(e);return t+(t&&e.port?":"+e.port:"")},e.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},e.prototype.isReachable=function(){return!!this.getServer()},e.prototype.isSsl=function(){return(this.bma||this.getBMA()).useSsl},e.prototype.isTor=function(){return(this.bma||this.getBMA()).useTor},e.prototype.isWs2p=function(){return(this.bma||this.getBMA()).useWs2p},e.prototype.isBma=function(){var e=this.bma||this.getBMA();return!e.useWs2p&&!e.useTor},e.prototype.hasBma=function(){return this.hasEndpoint("(BASIC_MERKLE_API|BMAS|BMATOR)")},t.prototype.isEmpty=function(){"use strict";return!(this.transactionsCount||this.certificationsCount||this.joinersCount||this.dividend||this.activesCount||this.identitiesCount||this.leaversCount||this.excludedCount||this.revokedCount)},t.prototype.parseData=function(){this.identities=this.parseArrayValues(this.identities,["pubkey","signature","buid","uid"]),this.joiners=this.parseArrayValues(this.joiners,["pubkey","signature","mBuid","iBuid","uid"]),this.actives=this.parseArrayValues(this.actives,["pubkey","signature","mBuid","iBuid","uid"]),this.leavers=this.parseArrayValues(this.leavers,["pubkey","signature","mBuid","iBuid","uid"]),this.revoked=this.parseArrayValues(this.revoked,["pubkey","signature"]),this.excluded=this.parseArrayValues(this.excluded,["pubkey"]),this.certifications=this.parseArrayValues(this.certifications,["from","to","block","signature"]),this.transactions=this.parseTransactions(this.transactions),delete this.raw},t.prototype.cleanData=function(){delete this.identities,delete this.joiners,delete this.actives,delete this.leavers,delete this.revoked,delete this.excluded,delete this.certifications,delete this.transactions,delete this.raw},t.prototype.parseArrayValues=function(e,t){return e&&e.length?e.reduce((function(e,n){var i=n.split(":");if(i.length!=t.length)return console.debug("[block] Bad format for '{0}': [{1}]. Expected {1} parts. Skipping".format(arrayProperty,n,t.length)),e;for(var a={},o=0;o<t.length;o++)a[t[o]]=i[o];return e.concat(a)}),[]):[]},t.prototype.regexp={TX_OUTPUT_SIG:("SIG\\(([0-9a-zA-Z]{43,44})\\)",new RegExp("^SIG\\(([0-9a-zA-Z]{43,44})\\)$"))},t.prototype.parseTransactions=function(e){return e&&e.length?e.reduce((function(e,n){var i={issuers:n.issuers,time:n.time};return i.outputs=n.outputs.reduce((function(e,i){var a=i.split(":");if(3!=a.length)return console.debug("[block] Bad format a 'transactions': [{0}]. Expected 3 parts. Skipping".format(i)),e;var o=a[0],r=a[1],s=a[2],l=t.prototype.regexp.TX_OUTPUT_SIG.exec(a[2]);if(l){var c=l[1];return n.issuers&&-1==n.issuers.indexOf(c)?e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,pubkey:c}):e}return e.concat({amount:r<=0?o:o*Math.pow(10,r),unitbase:r,unlockCondition:s})}),[]),i.error||i.outputs.length||(i.toHimself=!0),e.concat(i)}),[]):[]},n.prototype.regexp={WS2P_PREFIX:/^WS2P(?:O([CT][SAM]))?(?:I([CT]))?$/},o.$inject=["$scope","$rootScope","$state","$ionicSideMenuDelegate","$q","$timeout","$ionicHistory","$controller","$window","csPlatform","CryptoUtils","csCrypto","UIUtils","BMA","csWallet","Device","Modals","csConfig","csHttp"],r.$inject=["$scope","$state","$timeout","$ionicHistory","$translate","UIUtils","csPlatform","csCurrency","csSettings"],a.$inject=["$scope","PluginService"],angular.module("cesium.app.controllers",["cesium.platform","cesium.services"]).config(["$stateProvider","$urlRouterProvider",function(e,t){e.state("app",{url:"/app",abstract:!0,templateUrl:"templates/menu.html",controller:"AppCtrl",data:{large:!1}}).state("app.home",{url:"/home?error",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HomeCtrl"}}}).state("app.lock",{cache:!1,url:"/lock",views:{menuContent:{templateUrl:"templates/common/view_passcode.html",controller:"PassCodeCtrl"}}}),t.otherwise("/app/home")}]).controller("AppCtrl",o).controller("HomeCtrl",r).controller("PluginExtensionPointCtrl",a),s.$inject=["$scope","$timeout","$controller","Modals","csWallet"],l.$inject=["$scope","$state","Modals","UIUtils","csCurrency"],c.$inject=["$scope","$state","$interval","$q","$timeout","Device","UIUtils","CryptoUtils","csSettings","Modals","csWallet","BMA","parameters"],angular.module("cesium.join.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.join",{url:"/join",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"JoinCtrl"}}})}]).controller("JoinCtrl",s).controller("JoinChooseAccountTypeModalCtrl",l).controller("JoinModalCtrl",c),u.$inject=["$scope","$timeout","$controller","csWallet"],d.$inject=["$scope","$timeout","$q","$ionicPopover","CryptoUtils","csCrypto","ionicReady","UIUtils","BMA","Modals","csSettings","Device","parameters"],p.$inject=["$scope","$controller"],angular.module("cesium.login.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.login",{url:"/login",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"LoginCtrl"}}})}]).controller("LoginCtrl",u).controller("LoginModalCtrl",d).controller("AuthCtrl",p),m.$inject=["$scope","$state","$timeout","$anchorScroll","csSettings"],E.$inject=["$scope","$timeout","$anchorScroll","csSettings","parameters"],b.$inject=["$scope","$state","$window","$ionicSideMenuDelegate","$timeout","$q","$anchorScroll","UIUtils","csConfig","csSettings","csCurrency","csHelpConstants","Device","csWallet"],g.$inject=["$scope"],angular.module("cesium.help.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.help_tour",{url:"/tour",views:{menuContent:{templateUrl:"templates/home/home.html",controller:"HelpTourCtrl"}}}).state("app.help",{url:"/help?anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}}).state("app.help_anchor",{url:"/help/:anchor",views:{menuContent:{templateUrl:"templates/help/view_help.html",controller:"HelpCtrl"}}})}]).controller("HelpCtrl",m).controller("HelpModalCtrl",E).controller("HelpTipCtrl",b).controller("HelpTourCtrl",g),f.$inject=["$scope","$rootScope","$q","$ionicPopup","$timeout","$state","$translate","$ionicPopover","$location","UIUtils","ModalUtils","Modals","csPopovers","BMA","csConfig","csSettings","csWallet","csHelp"],T.$inject=["$scope","$ionicPopover","$state","$timeout","$location","UIUtils","Modals","csPopovers","BMA","csHttp","csSettings","csCurrency","csWallet","csTx"],h.$inject=["$scope","UIUtils","csSettings","csWallet"],v.$inject=["$scope","UIUtils","csWallet","$translate","parameters"],angular.module("cesium.wallet.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallet",{url:"/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx",{url:"/history/account?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors",{url:"/history/account/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletCtrl",f).controller("WalletTxCtrl",T).controller("WalletTxErrorCtrl",h).controller("WalletSecurityModalCtrl",v),I.$inject=["$scope","$q","$timeout","UIUtils","filterTranslations","csSettings","csCurrency","csWallet"],O.$inject=["$scope","$controller","$state","$timeout","$q","$translate","$ionicPopover","$ionicPopup","ModalUtils","UIUtils","Modals","csCurrency","csSettings","csWallet"],N.$inject=["$scope","$controller","parameters"],A.$inject=["$scope","$timeout","BMA","csWallet"],R.$inject=["$scope","$controller","UIUtils","parameters"],angular.module("cesium.wallets.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.view_wallets",{url:"/wallets",views:{menuContent:{templateUrl:"templates/wallet/list/view_wallets.html",controller:"WalletListViewCtrl"}},data:{login:!0}}).state("app.view_wallet_by_id",{url:"/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet.html",controller:"WalletCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_by_id",{url:"/history/wallets/:id?refresh",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx.html",controller:"WalletTxCtrl"}},data:{login:!0,silentLocationChange:!0}}).state("app.view_wallet_tx_errors_by_id",{url:"/history/wallets/:id/errors",views:{menuContent:{templateUrl:"templates/wallet/view_wallet_tx_error.html",controller:"WalletTxErrorCtrl"}},data:{login:!0}})}]).controller("WalletListAbstractCtrl",I).controller("WalletListViewCtrl",O).controller("WalletSelectModalCtrl",N).controller("WalletListImportModalCtrl",A).controller("WalletSelectPopoverCtrl",R),S.$inject=["$scope","$state","$q","$timeout","$focus","$location","$ionicPopover","$ionicHistory","UIUtils","csConfig","csCurrency","csSettings","Device","BMA","csWallet","csWot"],C.$inject=["$scope","$controller","$focus","csWallet","parameters"],D.$inject=["$scope","$rootScope","$state","$translate","$ionicHistory","$q","UIUtils","Modals","csConfig","csSettings","csCurrency","csWot","csWallet"],y.$inject=["$scope","$rootScope","$controller","$timeout","$state","UIUtils","Modals","csWallet"],P.$inject=["$scope","$timeout","$q","BMA","csSettings","csWot","csTx","UIUtils"],k.$inject=["$scope","$rootScope","$controller","csSettings","csWallet","UIUtils"],M.$inject=["$scope","$q","csWot","parameters"],angular.module("cesium.wot.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.wot_lookup",{url:"/wot",abstract:!0,enableBack:!1,views:{menuContent:{templateUrl:"templates/wot/lookup.html"}}}).state("app.wot_lookup.tab_search",{url:"/search?q&type&hash",views:{tab:{templateUrl:"templates/wot/tabs/tab_lookup.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0,large:"app.wot_lookup_lg"}}).state("app.wot_lookup_lg",{url:"/wot/lg?q&type&hash",views:{menuContent:{templateUrl:"templates/wot/lookup_lg.html",controller:"WotLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wot_identity",{url:"/wot/:pubkey/:uid?action&block",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_uid",{url:"/lookup/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity.html",controller:"WotIdentityViewCtrl"}}}).state("app.wot_identity_tx_uid",{url:"/wot/tx/:pubkey/:uid?action",views:{menuContent:{templateUrl:"templates/wot/view_identity_tx.html",controller:"WotIdentityTxViewCtrl"}}}).state("app.wot_cert",{url:"/wot/:pubkey/:uid/:type?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wot_cert_lg"}}).state("app.wot_cert_lg",{url:"/wot/cert/lg/:pubkey/:uid?block",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert",{url:"/account/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg"}}).state("app.wallet_cert_lg",{url:"/account/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}}).state("app.wallet_cert_by_id",{url:"/wallets/:id/cert/:type",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}},data:{large:"app.wallet_cert_lg_by_id"}}).state("app.wallet_cert_lg_by_id",{url:"/wallets/:id/cert/lg",views:{menuContent:{templateUrl:"templates/wot/view_certifications.html",controller:"WotCertificationsViewCtrl"}}})}]).controller("WotLookupCtrl",S).controller("WotLookupModalCtrl",C).controller("WotIdentityAbstractCtrl",D).controller("WotIdentityViewCtrl",y).controller("WotIdentityTxViewCtrl",P).controller("WotCertificationsViewCtrl",k).controller("WotSelectPubkeyIdentityModalCtrl",M),w.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","BMA","UIUtils","csConfig","csSettings","csCurrency","csNetwork","csWot"],F.$inject=["$scope","$q","$window","$state","UIUtils","csWot","BMA"],U.$inject=["$scope","$controller","parameters"],B.$inject=["$scope","$controller"],x.$inject=["$scope","$q","csSettings","csCurrency","csHttp","BMA"],angular.module("cesium.network.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.network",{url:"/network?type&expert",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_network.html",controller:"NetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_peer",{url:"/network/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"templates/network/view_peer.html",controller:"PeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("NetworkLookupCtrl",w).controller("PeerViewCtrl",F).controller("NetworkLookupModalCtrl",U).controller("NetworkLookupPopoverCtrl",B).controller("PeerInfoPopoverCtrl",x),H.$inject=["$scope","$q","$timeout","$ionicPopover","Modals","BMA","UIUtils","csSettings","csCurrency","csNetwork","ModalUtils"],W.$inject=["$scope","$http","UIUtils","csSettings","FileSaver"],angular.module("cesium.currency.controllers",["ngFileSaver","cesium.services"]).config(["$stateProvider",function(e){e.state("app.currency",{url:"/currency",views:{menuContent:{templateUrl:"templates/currency/view_currency.html",controller:"CurrencyViewCtrl"}},data:{large:"app.currency_lg"}}).state("app.currency.tab_parameters",{url:"/parameters",views:{"tab-parameters":{templateUrl:"templates/currency/tabs/tab_parameters.html"}}}).state("app.currency.tab_wot",{url:"/community",views:{"tab-wot":{templateUrl:"templates/currency/tabs/tab_wot.html"}}}).state("app.currency.tab_network",{url:"/network",views:{"tab-network":{templateUrl:"templates/currency/tabs/tab_network.html",controller:"NetworkLookupCtrl"}}}).state("app.currency.tab_blocks",{url:"/blocks",views:{"tab-blocks":{templateUrl:"templates/currency/tabs/tab_blocks.html",controller:"BlockLookupCtrl"}}}).state("app.currency_lg",{url:"/currency/lg",cache:!1,views:{menuContent:{templateUrl:"templates/currency/view_currency_lg.html",controller:"CurrencyViewCtrl"}}})}]).controller("CurrencyViewCtrl",H).controller("CurrencyLicenseModalCtrl",W),V.$inject=["$scope","$controller","UIUtils"],G.$inject=["$scope","$q","$translate","$timeout","$filter","$focus","Device","BMA","UIUtils","Modals","csWallet","csWot","csCurrency","csSettings","parameters"],angular.module("cesium.transfer.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.new_transfer",{cache:!1,url:"/transfer?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey_uid",{cache:!1,url:"/transfer/:pubkey/:uid?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}}).state("app.new_transfer_pubkey",{cache:!1,url:"/transfer/:pubkey?amount&udAmount&comment&restPub&all&wallet",views:{menuContent:{templateUrl:"templates/wallet/new_transfer.html",controller:"TransferCtrl"}}})}]).controller("TransferCtrl",V).controller("TransferModalCtrl",G),Y.$inject=["$scope","$q","$window","$ionicHistory","$ionicPopup","$timeout","$translate","$ionicPopover","UIUtils","Modals","BMA","csHttp","csConfig","csCurrency","csSettings","csPlatform"],angular.module("cesium.settings.controllers",["cesium.services","cesium.currency.controllers"]).config(["$stateProvider",function(e){e.state("app.settings",{url:"/settings",views:{menuContent:{templateUrl:"templates/settings/settings.html",controller:"SettingsCtrl"}}})}]).controller("SettingsCtrl",Y),j.$inject=["$scope","$timeout","$focus","$filter","$state","$anchorScroll","UIUtils","BMA","csCurrency","csWot","csSettings"],K.$inject=["$scope","$ionicPopover","$state","UIUtils","BMA","csCurrency","csWot"],angular.module("cesium.blockchain.controllers",["cesium.services"]).config(["$stateProvider",function(e){e.state("app.blockchain",{url:"/blockchain",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.blockchain_lg"}}).state("app.blockchain_lg",{url:"/blockchain/lg",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.server_blockchain",{url:"/network/peer/:server/blockchain?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup.html",controller:"BlockLookupCtrl"}},data:{large:"app.server_blockchain_lg"}}).state("app.server_blockchain_lg",{url:"/network/peer/:server/blockchain/lg?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/lookup_lg.html",controller:"BlockLookupCtrl"}}}).state("app.view_block",{url:"/block/:number",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_block_hash",{url:"/block/:number/:hash",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}}).state("app.view_server_block_hash",{url:"/network/peer/:server/block/:number/:hash?ssl&tor",views:{menuContent:{templateUrl:"templates/blockchain/view_block.html",controller:"BlockViewCtrl"}}})}]).controller("BlockLookupCtrl",j).controller("BlockViewCtrl",K),angular.module("cesium.controllers",["cesium.app.controllers","cesium.join.controllers","cesium.login.controllers","cesium.help.controllers","cesium.wallet.controllers","cesium.wallets.controllers","cesium.currency.controllers","cesium.wot.controllers","cesium.transfer.controllers","cesium.settings.controllers","cesium.network.controllers","cesium.blockchain.controllers"]),angular.module("cesium.templates",[]).run(["$templateCache",function(e){e.put("templates/menu.html",'<ion-side-menus enable-menu-with-back-views="true" bind-notifier="{locale:$root.settings.locale.id}"><ion-side-menu-content><ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"><button class="button button-icon button-clear icon ion-navicon visible-nomenu" menu-toggle="left"></button></ion-nav-buttons><ion-nav-buttons side="right"><cs-extension-point name="nav-buttons-right"></cs-extension-point></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view></ion-side-menu-content><ion-side-menu id="menu" side="left" expose-aside-when="large" enable-menu-with-back-views="false" width="225"><ion-header-bar class="bar-title"><div class="visible-sm visible-xs hero"><div class="content"><i class="avatar avatar-member hero-icon" ng-if="!walletData.avatar" ng-class="{\'royal-bg\': login, \'stable-bg\': !login}" ng-click="!login ? showHome() : loginAndGo()" menu-close=""></i> <a class="avatar hero-icon" ng-if="walletData.avatar" style="background-image: url(\'{{walletData.avatar.src}}\')" ui-sref="app.view_wallet" menu-close=""></a><h4 ng-if="login"><a class="light" ui-sref="app.view_wallet" menu-close="">{{walletData.name||walletData.uid}} <span ng-if="!walletData.name && !walletData.uid"><i class="icon ion-key"></i>&nbsp;{{walletData.pubkey|formatPubkey}}</span></a></h4><h4 ng-if="!login"><a class="light" ui-sref="app.login" menu-close="">{{\'COMMON.BTN_LOGIN\'|translate}} <i class="ion-arrow-right-b"></i></a></h4><cs-extension-point name="menu-profile-user"></cs-extension-point></div><a ng-if="login" class="button-icon" ng-click="logout({askConfirm: true})" style="position: absolute; top: 5px; left: 5px; z-index: 999"><i class="icon light ion-android-exit"></i></a></div></ion-header-bar><ion-content scroll="false" class="scroll-content ionic-scroll" ng-class="{\'overflow-scroll\': smallscreen, \'scroll-content-false\': !smallscreen}"><ion-list class="list" ng-class="{\'scroll\': smallscreen}"><ion-item menu-close="" class="item-icon-left hidden-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><ion-item menu-close="" ng-if="!login" class="item-icon-left visible-xs" ui-sref="app.home" active-link="active"><i class="icon ion-home"></i> {{:locale:\'MENU.HOME\'|translate}}</ion-item><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/account" ui-sref="app.view_wallet" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-person"></i> {{:locale:\'MENU.ACCOUNT\'|translate}} </a><a id="helptip-menu-btn-account"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/history" ui-sref="app.view_wallet_tx" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card"></i> {{:locale:\'MENU.TRANSACTIONS\'|translate}} </a><a id="helptip-menu-btn-tx"></a> <a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wallets" ui-sref="app.view_wallets" ng-class="{\'item-menu-disable\': !login}"><i class="icon ion-card" style="top: -5px; left: 22px; font-size: 18px"></i> <i class="icon-secondary ion-card" style="top: 22px; left: 19px; font-size: 20px; background-color: white; width:17px; height: 14px"></i> {{:locale:\'MENU.WALLETS\'|translate}}</a><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/wot" ui-sref="app.wot_lookup.tab_search"><i class="icon ion-person-stalker"></i> {{:locale:\'MENU.WOT\'|translate}} </a><a id="helptip-menu-btn-wot"></a><cs-extension-point name="menu-main"></cs-extension-point><div class="item item-divider"></div><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/currency" ui-sref="app.currency"><i class="icon ion-ios-world-outline"></i> {{:locale:\'MENU.CURRENCY\'|translate}} </a><a id="helptip-menu-btn-currency"></a> <a id="helptip-menu-btn-network"></a><cs-extension-point name="menu-discover"></cs-extension-point><div class="item item-divider visible-xs visible-sm"></div><cs-extension-point name="menu-user"></cs-extension-point><a menu-close="" class="item item-icon-left visible-xs visible-sm" active-link="active" active-link-path-prefix="#/app/settings" ui-sref="app.settings"><i class="icon ion-android-settings"></i> {{:locale:\'MENU.SETTINGS\'|translate}} </a><a id="helptip-menu-btn-settings"></a><div class="item item-divider" ng-if="login"></div><ion-item menu-close="" class="item item-button-right" ng-if="login" ng-class="::{\'item-button-left\': $root.device.barcode.enable}"><button class="button button-positive ink-dark" ng-click="showTransferModal()"><i class="icon ion-paper-airplane"></i></button> <button class="button button-stable ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCodeAndGo()"><i class="icon ion-qr-scanner"></i></button></ion-item><cs-extension-point name="menu-actions"></cs-extension-point></ion-list></ion-content></ion-side-menu></ion-side-menus>'),e.put("templates/modal_about.html",'<ion-modal-view class="about"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>ABOUT.TITLE</h1></ion-header-bar><ion-content class="text-center" scroll="true"><div class="list item-wrap-text"><ion-item class="item-icon-left item-text-wrap"><span>{{\'COMMON.APP_NAME\'|translate}}&nbsp;<b>{{\'COMMON.APP_VERSION\'|translate:$root.config}}</b> - <a ng-click="openLink($event, \'http://cesium.app\')">www.cesium.app</a></span> <i ng-if="$root.newRelease" class="assertive ion-alert-circled"></i><h3 ng-if="$root.config.build" class="gray">{{\'COMMON.APP_BUILD\'|translate:$root.config}}</h3><span translate>ABOUT.LICENSE</span></ion-item><ion-item class="item-icon-left" ng-if="$root.newRelease"><i class="item-image icon ion-alert-circled assertive"></i> <span ng-if="!$root.device.isWeb()" ng-bind-html="\'ABOUT.PLEASE_UPDATE\' | translate:$root.newRelease "></span> <span ng-if="$root.device.isWeb()" ng-bind-html="\'ABOUT.LATEST_RELEASE\' | translate:$root.newRelease "></span><h3 ng-if="!$root.device.enable"><a ng-click="openLink($event, $root.newRelease.url)" translate>{{::$root.newRelease.url}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-android-laptop"></i> <span translate>ABOUT.OFFICIAL_WEB_SITE</span><h3><a ng-click="openLink($event, \'https://www.cesium.app\')">https://www.cesium.app</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-chatbubbles"></i> {{\'ABOUT.FORUM\' | translate}}<h3><a ng-click="openLink($event, $root.settings.userForumUrl)">{{::$root.settings.userForumUrl}}</a></h3></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="item-image icon ion-bug"></i> <span translate>ABOUT.PLEASE_REPORT_ISSUE</span><h3><a ng-click="openLink($event, $root.settings.newIssueUrl)" translate>ABOUT.REPORT_ISSUE</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-network"></i> {{\'ABOUT.CODE\' | translate}}<h3><a ng-click="openLink($event, \'https://git.duniter.org/clients/cesium-grp/cesium\')">https://git.duniter.org/clients/cesium-grp/cesium</a></h3></ion-item><ion-item class="item-icon-left"><i class="item-image icon ion-person-stalker"></i> {{\'ABOUT.DEVELOPERS\' | translate}}<h3><a href="https://github.com/blavenie" target="_system">Benoit Lavenier</a>, <a href="https://github.com/bpresles" target="_system">bpresles</a>, <a href="https://github.com/c-geek" target="_system">cgeek</a>, <a href="https://github.com/devingfx" target="_system">DiG</a>, <a href="https://git.duniter.org/ji_emme" target="_system">Ji_emme</a></h3></ion-item><div class="padding hidden-xs text-center"><button class="button button-stable icon-left ink" type="submit" ng-click="closeModal()" ui-sref="app.help"><i class="icon ion-ios-help-outline"></i> {{\'HOME.BTN_HELP\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></div></ion-content></ion-modal-view>'),e.put("templates/api/doc.html",'<h2 class="padding" translate="">API.DOC.TRANSFER.TITLE</h2><div class="list padding no-padding-xs no-padding-top"><div class="item item-divider no-border"><p translate="">API.DOC.DESCRIPTION_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.DESCRIPTION</p></div><div class="item item-divider no-border"><p translate="">API.DOC.URL_DIVIDER</p></div><div class="item item-text-wrap"><p class="gray text-right">{{$root.rootPath}}#/v1/payment/:pubkey?amount=<span class="text-italic" translate="">API.DOC.TRANSFER.PARAM_AMOUNT</span></p></div><div class="item item-divider no-border"><p translate="">API.DOC.PARAMETERS_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.AVAILABLE_PARAMETERS</p><div class="row"><div class="col col-20 text-italic">pubkey</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PUBKEY_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">amount</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_AMOUNT_HELP</div></div><div class="row"><div class="col col-20 text-italic">comment</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_COMMENT_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">name</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_NAME_HELP</div></div><div class="row"><div class="col col-20 text-italic">preferred_node</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP</div></div><div class="row stable-bg"><div class="col col-20 text-italic dark">redirect_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_REDIRECT_URL_HELP</div></div><div class="row"><div class="col col-20 text-italic">cancel_url</div><div class="col gray" translate="">API.DOC.TRANSFER.PARAM_CANCEL_URL_HELP</div></div></div><div class="item item-divider no-border"><p translate="">API.DOC.DEMO_DIVIDER</p></div><div class="item item-button-right item-text-wrap padding-bottom"><p class="item-icon-right-padding" translate="">API.DOC.DEMO_HELP</p><span class="badge" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></span><a ng-if="!loading" href="{{transferDemoUrl}}" class="button button-raised button-positive icon ion-play"></a></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && !result.cancelled"><h2 class="text-right balanced" translate="">API.DOC.DEMO_SUCCEED</h2><h4 class="gray" translate="">API.DOC.DEMO_RESULT</h4><p class="balanced-100-bg padding dark text-keep-lines">{{result.content}}</p><h4 class="gray"><span translate="">API.DOC.DEMO_RESULT_PEER</span> <b>{{result.node}}</b></h4></div><div class="item item-text-wrap" ng-if="result.type === \'payment\' && result.cancelled"><h2 class="text-right assertive" translate="">API.DOC.DEMO_CANCELLED</h2></div><div class="item item-divider no-border"><p translate="">API.DOC.INTEGRATE_DIVIDER</p></div><div class="item item-text-wrap"><p translate="">API.DOC.TRANSFER.EXAMPLES_HELP</p><div class="row responsive-sm"><div class="col col-20 text-italic"><span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON</span></div><div class="col gray no-border"><p><i class="icon ion-code"></i> <span translate="">API.DOC.INTEGRATE_CODE</span></p><div class="item item-input"><textarea class="gray" select-on-click="" rows="5" ng-model="transferButton.html" ng-model-options="{ debounce: 650 }"></textarea></div><p class="padding-top"><i class="icon ion-eye"></i> <span translate="">API.DOC.INTEGRATE_RESULT</span></p><div class="padding-left" bind-notifier="{ notifierKey:watchedExpression }"><ng-bind-html ng-bind-html="transferButton.html|trustAsHtml"></ng-bind-html></div></div></div><div class="row responsive-sm"><div class="col gray no-border"><p class="padding-top"><a class="positive" ng-click="transferButton.showParameters=!transferButton.showParameters"><i class="icon ion-wrench"></i> <span translate="">API.DOC.INTEGRATE_PARAMETERS</span> <i class="icon" ng-class="{\'ion-arrow-down-b\': !transferButton.showParameters, \'ion-arrow-up-b\': transferButton.showParameters}"></i></a></p><div ng-if="transferButton.showParameters" class="padding-left"><form id="transferForm" class="stable-bg padding"><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PUBKEY\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.pubkey" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PUBKEY_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-pricetag"></i> {{\'API.DOC.TRANSFER.PARAM_AMOUNT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.amount" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_AMOUNT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-flag"></i> {{\'API.DOC.TRANSFER.PARAM_COMMENT\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.comment" placeholder="{{\'API.DOC.TRANSFER.PARAM_COMMENT\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-world-outline"></i> {{\'API.DOC.TRANSFER.PARAM_NAME\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.name" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_NAME\'|translate}}"></label><p class="padding-top"><i class="icon ion-key"></i> {{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.preferred_node" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_PREFERRED_NODE_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-arrow-return-left"></i> {{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.redirect_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_REDIRECT_URL\'|translate}}"></label><p class="padding-top"><i class="icon ion-backspace"></i> {{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferData.cancel_url" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.PARAM_CANCEL_URL\'|translate}}"></label><p class="padding-top"><a class="positive" ng-click="transferButton.style.enable=!transferButton.style.enable"><i class="icon" ng-class="{\'ion-android-checkbox-outline\': transferButton.style.enable, \'ion-android-checkbox-outline-blank\': !transferButton.style.enable}"></i> <span translate="">API.DOC.TRANSFER.EXAMPLE_BUTTON_DEFAULT_STYLE</span></a></p><div ng-if="transferButton.style.enable"><p class="padding-top"><i class="icon ion-image"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_ICON\' | translate}} :</p><label class="item item-input item-select"><select class="stable-bg dark" ng-model="transferButton.style.icon" style="width: 100%; max-width: 100%" ng-options="l as (l.label | translate) for l in transferButton.icons track by l.filename"></select></label><p class="padding-top"><i class="icon ion-quote"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.text" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbucket"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.bgColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_BG_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-paintbrush"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.fontColor" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_FONT_COLOR_HELP\'|translate}}"></label><p class="padding-top"><i class="icon ion-ios-crop-strong"></i> {{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH\' | translate}} :</p><label class="item item-input"><input type="text" ng-model="transferButton.style.width" ng-model-options="{ debounce: 650 }" placeholder="{{\'API.DOC.TRANSFER.EXAMPLE_BUTTON_TEXT_WIDTH_HELP\'|translate}}"></label></div></form></div></div></div></div></div>'),e.put("templates/api/home.html",'<ion-view class="circle-bg-dark"><ion-nav-title><span class="title visible-xs visible-sm" translate="">API.HOME.TITLE</span></ion-nav-title><ion-nav-buttons side="right"></ion-nav-buttons><ion-content class="has-header no-padding-xs no-padding-sm positive-900-bg"><br class="hidden-xs"><div class="light text-center"><h4 class="hidden-xs" translate="">API.HOME.MESSAGE</h4><h4 class="visible-xs padding" translate="">API.HOME.MESSAGE_SHORT</h4></div><br class="hidden-xs"><div class="row no-padding-xs"><div class="col"><div class="light-bg no-padding"><ng-include src="\'templates/api/doc.html\'"></ng-include></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} API - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/api/locales_popover.html",'<ion-popover-view class="fit popover-locales" style="height: {{locales.length*48}}px"><ion-content scroll="false"><div class="list item-text-wrap block"><a ng-repeat="l in locales track by l.id" class="item item-icon-left ink" ng-click="changeLanguage(l.id)"><i class="item-image avatar" style="border-radius: 0; background-image: url(https://www.countryflags.io/{{l.country}}/shiny/64.png)"></i> {{l.label | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/api/menu.html",'<ion-nav-bar class="bar-dark" title-align="left"><ion-nav-back-button class="no-text"></ion-nav-back-button><ion-nav-buttons side="left"></ion-nav-buttons><ion-nav-buttons side="right"></ion-nav-buttons></ion-nav-bar><ion-nav-view name="menuContent"></ion-nav-view>'),e.put("templates/api/transfer.html",'<ion-view class="circle-bg-dark"><ion-nav-buttons side="left"><button class="button button-clear visible-xs" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button></ion-nav-buttons><ion-nav-title><span class="title visible-xs" translate="">API.TRANSFER.TITLE_SHORT</span></ion-nav-title><ion-nav-buttons side="right"><button class="button button-positive button-icon button-clear icon ion-android-send visible-xs" ng-click="doLogin()"></button></ion-nav-buttons><ion-content class="has-header no-padding-xs positive-900-bg"><br class="hidden-xs"><div class="row no-padding-xs"><div class="col no-padding-xs"><div class="light-bg"><h2 class="padding-top text-center hidden-xs" translate="">API.TRANSFER.TITLE</h2><div class="no-padding energized-100-bg" ng-if="demo"><div class="item item-icon-left item-text-wrap no-border"><i class="icon ion-information-circled positive"></i><p translate="">API.TRANSFER.DEMO.HELP</p></div></div><ng-include src="\'templates/login/form_login.html\'"></ng-include></div><br class="hidden-xs"><br class="hidden-xs"><div class="list padding no-padding-xs light-bg"><div class="item"><p translate="">API.TRANSFER.SUMMARY</p></div><div class="item item-icon-left-padding item-tx no-border" ng-if="!transferData.amounts" style="min-height: 56px"><h2 translate="">API.TRANSFER.AMOUNT</h2><ion-spinner class="badge item-note" icon="android" ng-show="loading"></ion-spinner><div class="badge badge-calm ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: false, currency: currency.name}"></div><div class="badge badge-secondary ng-hide" ng-show="!loading" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></div></div><label ng-if="transferData.amounts" style="min-height: 58px" class="item item-icon-left-padding item-input item-select item-tx no-border" ng-class="{ \'item-input-error\': form.$submitted && !transferData.amount}"><div class="input-label"><span translate="">API.TRANSFER.AMOUNT</span></div><select ng-model="transferData.amount" required="true" ng-options="(amount |formatAmount:{useRelative: false, currency: currency.name}) for amount in transferData.amounts"></select><span class="badge badge-secondary ng-hide" ng-show="transferData.amount" ng-bind-html="transferData.amount|formatAmount:{useRelative: true, currency: currency.name, currentUD: currency.currentUD}"></span></label><div class="form-errors" ng-if="form.$submitted && !transferData.amount"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.NAME</h2><div class="badge item-note">{{transferData.name}}</div></div><div class="item item-icon-left-padding item-text-wrap"><h2 translate="">API.TRANSFER.PUBKEY</h2><div class="badge"><span class="hidden-xs"><br class="visible-sm visible-md"><i class="icon ion-key"></i>{{transferData.pubkey}}</span> <span class="visible-xs" copy-on-click="{{transferData.pubkey}}"><br class="visible-xs"><i class="icon ion-key"></i> {{transferData.pubkey|formatPubkey}}</span></div></div><div class="item item-icon-left-padding"><h2 translate="">API.TRANSFER.COMMENT</h2><div class="badge item-note"><span class="hidden-xs"><br class="visible-sm visible-md">{{::transferData.comment}}</span> <span class="visible-xs" copy-on-click="{{transferData.comment}}"><br>{{::transferData.comment}}</span></div></div><div class="item item-icon-left-padding" ng-hide="error"><h2 translate="">API.TRANSFER.NODE</h2><div class="badge item-note" ng-if="!loading"><br class="visible-sm visible-md"><i class="icon ion-locked" ng-if="node.useSsl"></i>&nbsp;{{node.server}}</div></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><i class="icon ion-android-alert assertive"></i> <span class="dark" trust-as-html="\'API.COMMON.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="start()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="padding-bottom visible-xs">&nbsp;</div></div></div></div><p class="visible-xs visible-sm light padding-top text-center">{{\'COMMON.APP_NAME\'|translate}} - <a href="#" ng-click="showAboutModal($event)">v{{$root.config.version}}</a></p></ion-content></ion-view>'),e.put("templates/blockchain/item_block.html",'<a name="block-{{:rebind:block.number}}"></a><ion-item id="block-{{:rebind:block.number}}" class="item item-icon-left item-block {{::ionItemClass}}" ng-class="{\'ink\': !block.empty||!block.compacted, \'item-block-empty\': block.empty, \'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:(!block.empty && !block.avatar)"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col" style="min-width: 110px; max-width: 130px"><h4 ng-class="{\'gray\': block.compacted, \'dark\': !block.compacted}"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h4><h4 ng-if="!block.empty"><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="dark ion-person"></i> <span class="dark" ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span class="dark" ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span></ng-if><span class="dark" ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> {{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.activesCount" class="gray"><i class="gray ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.dividend" class="gray"><i class="gray ion-arrow-up-c"></i> {{\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span class="dark" ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i></span></h4></div><div class="col positive hidden-md"><h4><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</h4></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index , \'badge-calm\': $index && !block.compacted && !block.empty}">{{:rebind:block.number|formatInteger}}</span></div></div></ion-item>'),e.put("templates/blockchain/item_block_empty_lg.html",'<a name="block-{{::block.number}}"></a><div id="block-{{::block.number}}" class="item item-block item-icon-left item-block-empty" ng-class="{\'compacted\': block.compacted && compactMode}" ng-click="selectBlock(block)"><div class="row no-padding" ng-if=":rebind:!block.compacted || !compactMode"><div class="col"><h3 class="gray"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\'}">{{block.number|formatInteger}}</span></div></div></div>'),e.put("templates/blockchain/item_block_lg.html",'<ion-item id="block-{{::block.number}}" class="item item-block item-icon-left ink {{::ionItemClass}}" ng-class="{{::ionItemClass}}" ng-click="selectBlock(block)"><i class="icon ion-cube stable" ng-if=":rebind:!block.avatar"></i> <i class="avatar" ng-if=":rebind:!block.empty && block.avatar" style="background-image: url(\'{{:rebind:block.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-clock"></i> {{:rebind:block.medianTime|medianDate}}</h3><h4 class="gray">{{:rebind:\'BLOCKCHAIN.HASH\'|translate}} {{:rebind:block.hash|formatHash}}</h4></div><div class="col"><h3><span class="gray" ng-if=":rebind:expertMode"><i class="ion-key"></i> {{:rebind:block.issuer|formatPubkey}} </span><span class="positive"><i class="ion-person"></i> {{:rebind:block.name||block.uid}}</span></h3></div><div class="col col-20"><small><ng-if ng-if=":rebind:block.joinersCount||(block.excludedCount-block.revokedCount)"><i class="ion-person"></i> <span ng-if=":rebind:block.joinersCount">+{{:rebind:block.joinersCount}}</span> <span ng-if=":rebind:block.excludedCount">-{{:rebind:block.excludedCount-block.revokedCount}}</span> &nbsp;&nbsp;</ng-if><span ng-if=":rebind:block.revokedCount" class="assertive"><i class="ion-minus-circled"></i> -{{:rebind:block.revokedCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.activesCount"><i class="ion-refresh"></i> {{:rebind:block.activesCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.certificationsCount"><i class="ion-ribbon-a"></i> {{:rebind:block.certificationsCount}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.dividend"><i class="gray ion-arrow-up-c"></i> {{:rebind:\'COMMON.UD\'|translate}}&nbsp;&nbsp;</span> <span ng-if=":rebind:block.transactionsCount"><i class="ion-card">{{:rebind:block.transactionsCount}}</i>&nbsp;&nbsp;</span></small></div><div class="col col-20"><span class="badge" ng-class="{\'badge-balanced\': !$index && search.type==\'last\', \'badge-calm\': ($index  || search.type!=\'last\')&& !block.compacted && !block.empty}">{{:rebind:block.number}}</span></div></div></ion-item>'),e.put("templates/blockchain/items_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="animate-ripple padding padding-xs"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" icon="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/link_identity.html",'<a ui-sref="app.wot_identity({pubkey: identity.pubkey, uid: identity.uid})"><span class="positive" ng-if="identity.uid"><i class="icon ion-person"></i> {{::identity.uid}}&nbsp;</span> <span class="gray" ng-class="{\'hidden-xs hidden-sm\': identity.uid}"><i class="icon ion-key"></i>&nbsp;{{::identity.pubkey|formatPubkey}}</span></a>'),e.put("templates/blockchain/list_blocks.html",'<div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/list_blocks_lg.html",'<div class="padding padding-xs" style="display: block; height: 100px"><h4 translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><div class="pull-right"><a class="button button-text button-small ink" ng-class="{\'button-text-positive\': compactMode, \'button-text-stable\': !compactMode}" ng-click="toggleCompactMode()"><i class="icon ion-navicon"></i> <b class="ion-arrow-down-b" style="position: absolute; top: -2px; left: 4px; font-size: 8px"></b> <b class="ion-arrow-up-b" style="position: absolute; top: 10px; left: 4px; font-size: 8px"></b> <span>{{\'BLOCKCHAIN.LOOKUP.BTN_COMPACT\'|translate}}</span></a></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ion-list class="padding padding-xs list-blocks {{::motion.ionListClass}}"><div class="padding gray" ng-if="!search.loading && !search.results.length" translate>BLOCKCHAIN.LOOKUP.NO_BLOCK</div><ng-repeat ng-repeat="block in search.results" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs" scroll="true"><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/lookup_lg.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'templates/blockchain/list_blocks_lg.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/blockchain/unlock_condition_popover.html",'<ion-popover-view class="fit"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.VIEW.TX_OUTPUT_UNLOCK_CONDITIONS</h1></ion-header-bar><ion-content scroll="true"><div class="row" ng-repeat="condition in popoverData.unlockConditions track by $index" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></ion-content></ion-popover-view>'),
+e.put("templates/blockchain/view_block.html",'<ion-view><ion-nav-title><span class="title visible-xs visible-sm" ng-if="number==\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE_CURRENT\'|translate}}</span> <span class="title visible-xs visible-sm" ng-if="number!=\'current\'">{{\'BLOCKCHAIN.VIEW.TITLE\'|translate:formData}}</span></ion-nav-title><ion-content class="no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list item-text-wrap no-padding-xs" ng-if="!loading"><div class="item item-text-wrap"><h3><span class="dark"><i class="icon ion-clock"></i> {{formData.medianTime | medianFromNowAndDate}}</span></h3><h3><span class="dark"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.COMPUTED_BY\'|translate}} </span><a class="positive" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.uid})"><i class="icon ion-person positive"></i> {{issuer.name||issuer.uid}} <span class="gray" ng-if="issuer.name">({{issuer.uid}})</span></a></h3><h3><a ng-click="openRawBlock($event)"><i class="icon ion-share"></i> {{\'BLOCKCHAIN.VIEW.SHOW_RAW\'|translate}}</a></h3></div><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.TECHNICAL_DIVIDER\' | translate}}</span><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode"><i class="icon ion-gear-b"></i> {{\'BLOCKCHAIN.VIEW.VERSION\'|translate}} <span class="badge badge-stable">{{::formData.version}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="!compactMode || $root.settings.expertMode" copy-on-click="{{::formData.powMin}}"><i class="icon ion-lock-combination"></i> {{\'BLOCKCHAIN.VIEW.POW_MIN\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.POW_MIN_HELP\'|translate}}</h4><span class="badge badge-stable">{{::formData.powMin}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" copy-on-click="{{::formData.hash}}"><i class="icon ion-pound"></i> {{\'BLOCKCHAIN.VIEW.HASH\'|translate}}<h5 class="visible-xs visible-sm dark">{{::formData.hash}}</h5></ion-item><span class="item item-divider">{{\'BLOCKCHAIN.VIEW.DATA_DIVIDER\' | translate}}</span><ion-item ng-if="compactMode && formData.empty" class="item-icon-left item-text-wrap">{{\'BLOCKCHAIN.VIEW.EMPTY\'|translate}}</ion-item><ion-item ng-if="!compactMode || formData.dividend" class="item-icon-left item-text-wrap" copy-on-click="{{::formData.dividend/100}}"><i class="icon ion-arrow-up-c"></i><div class="col col-60">{{\'COMMON.UNIVERSAL_DIVIDEND\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.UNIVERSAL_DIVIDEND_HELP\'|translate: {membersCount: formData.membersCount} }}</h4></div><span class="badge badge-balanced" ng-if="formData.dividend">+1 <span ng-bind-html="formData.currency|currencySymbol: {useRelative: true} "></span> / {{\'COMMON.MEMBER\'|translate|lowercase}} </span><span class="badge badge-stable" ng-if="!formData.dividend">0</span> <span class="badge badge-secondary" ng-if="formData.dividend">+ {{formData.dividend| formatAmount: {currency: formData.currency, useRelative: false} }} / {{\'COMMON.MEMBER\'|translate|lowercase}}</span></ion-item><ng-if ng-if="!compactMode || formData.identitiesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-clock" style="position: absolute; top: 16px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.IDENTITIES_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.identitiesCount">+{{::formData.identitiesCount}}</span> <span class="badge badge-stable" ng-if="!formData.identitiesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.identitiesCount"><ion-item ng-repeat="identity in ::formData.identities" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.joinersCount"><ion-item class="item-icon-left"><i class="icon ion-person-add"></i> {{\'BLOCKCHAIN.VIEW.JOINERS_COUNT\'|translate}} <span class="badge badge-balanced" ng-if="formData.joinersCount">+{{::formData.joinersCount}}</span> <span class="badge badge-stable" ng-if="!formData.joinersCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.joinersCount"><ion-item ng-repeat="identity in ::formData.joiners" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.activesCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-refresh" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.ACTIVES_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.activesCount">{{::formData.activesCount}}</span> <span class="badge badge-stable" ng-if="!formData.activesCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.activesCount"><ion-item ng-repeat="identity in ::formData.actives" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || (formData.excludedCount-formData.revokedCount)"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-close dark" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.EXCLUDED_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.excludedCount-formData.revokedCount">-{{::formData.excludedCount-formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!(formData.excludedCount-formData.revokedCount)">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.excludedCount"><ion-item ng-repeat="identity in ::formData.excluded" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.leaversCount"><ion-item class="item-icon-left" ng-if="!compactMode || formData.leaversCount"><i class="icon ion-person"></i> <b class="ion-minus" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.LEAVERS_COUNT_HELP\'|translate}}</h4><span class="badge badge-assertive" ng-if="formData.leaversCount">-{{::formData.leaversCount}}</span> <span class="badge badge-stable" ng-if="!formData.leaversCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.leaversCount"><ion-item ng-repeat="identity in ::formData.leavers" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.revokedCount"><ion-item class="item-icon-left"><i class="icon ion-person"></i> <b class="ion-minus-circled assertive" style="position: absolute; top: 25px; left: 39px; font-size: 12px"></b> {{\'BLOCKCHAIN.VIEW.REVOKED_COUNT\'|translate}}<h4 class="gray">{{\'BLOCKCHAIN.VIEW.REVOKED_COUNT_HELP\'|translate}}</h4><span class="badge badge-balanced" ng-if="formData.revokedCount">-{{::formData.revokedCount}}</span> <span class="badge badge-stable" ng-if="!formData.revokedCount">0</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding" ng-if="formData.revokedCount"><ion-item ng-repeat="identity in ::formData.revoked" class="item-border-large item-small-height" ng-include="\'templates/blockchain/link_identity.html\'"></ion-item></div></ng-if><ng-if ng-if="!compactMode || formData.certificationsCount"><ion-item class="item-icon-left"><i class="icon ion-ribbon-a"></i> {{\'BLOCKCHAIN.VIEW.CERT_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.certificationsCount}">{{::formData.certificationsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.certificationsCount"><div ng-repeat="(key, certs) in formData.certifications" class="item item-border-large item-small-height"><div class="row no-padding"><div class="col col-center no-padding"><ng-repeat ng-repeat="cert in certs"><ng-include src="\'templates/blockchain/link_identity.html\'" onload="identity=cert.from"></ng-include><br></ng-repeat></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col col-40 col-center no-padding" ng-include="\'templates/blockchain/link_identity.html\'" onload="identity=certs[0].to"></div></div></div></div></ng-if><ng-if ng-if="!compactMode || formData.transactionsCount"><ion-item class="item-icon-left"><i class="icon ion-card"></i> {{\'BLOCKCHAIN.VIEW.TX_COUNT\'|translate}} <span class="badge badge-stable" ng-class="{\'badge-positive\':formData.transactionsCount}">{{::formData.transactionsCount}}</span></ion-item><div class="padding-bottom item-icon-left-padding item-icon-right-padding no-padding-xs" ng-if="formData.transactionsCount"><div ng-repeat="tx in ::formData.transactions" class="item item-small-height item-border-large"><div class="row no-padding" style="padding-top: 3px"><div class="col col-40 col-center no-padding list no-margin"><div ng-repeat="identity in ::tx.issuers" class="item no-padding item-small-height"><ng-include src="\'templates/blockchain/link_identity.html\'"></ng-include></div></div><div class="col col-10 col-center gray text-center no-padding"><h2><i class="icon ion-arrow-right-a"></i></h2></div><div class="col no-padding padding-right no-padding-xs col-text-wrap list no-margin"><span class="gray" ng-if="tx.toHimself" translate="">BLOCKCHAIN.VIEW.TX_TO_HIMSELF</span><div ng-repeat="output in ::tx.outputs" class="item no-padding item-small-height"><ng-include ng-if="::output.pubkey" src="\'templates/blockchain/link_identity.html\'" onload="identity=output"></ng-include><span ng-if="::!output.pubkey && output.unlockFunctions"><i class="icon ion-locked"></i> (<a ng-click="showUnlockConditionPopover(output, $event)"> <i ng-repeat="unlockFunction in ::output.unlockFunctions" ng-class="::{\'ion-key\': (unlockFunction==\'SIG\'), \'ion-clock\': (unlockFunction==\'CSV\' || unlockFunction==\'CLTV\'), \'ion-lock-combination\': (unlockFunction==\'XHX\') }" class="icon"></i> </a>) </span><span class="badge badge-balanced" ng-bind-html="::output.amount | formatAmount:{currency: formData.currency, useRelative: false} "></span></div></div></div></div></div></ng-if></div></div></div></ion-content></ion-view>'),e.put("templates/currency/items_network.html",'<ion-item id="helptip-network-blockchain" class="item-icon-left item-text-wrap"><i class="icon ion-clock"></i> <span class="col col-60" translate="">CURRENCY.VIEW.MEDIAN_TIME</span> <span class="badge badge-stable">{{formData.medianTime | medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-lock-combination"></i> <span class="col col-75" translate="">CURRENCY.VIEW.POW_MIN</span> <span class="badge badge-stable">{{formData.difficulty | formatInteger}}</span></ion-item><cs-extension-point name="network-actual"></cs-extension-point><div class="item item-divider"><span translate="">CURRENCY.VIEW.NETWORK_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px; margin-top: 11px"></i> <b class="icon-secondary ion-lock-combination" style="left: 14px; margin-top: -4px"></b> <b class="icon-secondary ion-arrow-right-c" style="font-size: 12px; left: 28px; margin-top: -4px"></b> <b class="icon-secondary ion-lock-combination" style="left: 38px; margin-top: -4px"></b> <span class="col col-75" translate="">CURRENCY.VIEW.AVG_GEN_TIME</span> <span class="badge badge-stable">{{formData.avgGenTime | formatDuration}}</span></ion-item><div id="helptip-network-peers" class="item item-divider"><div class="pull-left"><span ng-if="search.type==\'member\'" translate="">PEER.MEMBERS</span> <span ng-if="search.type==\'mirror\'" translate="">PEER.MIRRORS</span> <span ng-if="search.type==\'offline\'" translate="">PEER.OFFLINE</span> <span ng-if="!search.type" translate="">PEER.PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></div><div class="buttons pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include>'),e.put("templates/currency/items_parameters.html",'<div bind-notifier="{ rebind:formData.useRelative }"><ion-item class="item-icon-left item-text-wrap visible-xs visible-sm"><i class="icon ion-android-bookmark"></i> <span translate>CURRENCY.VIEW.CURRENCY_NAME</span><div class="item-note dark" ng-if="!loading">{{formData.currency}} (<span ng-bind-html=":rebind:formData.currency | currencySymbol:formData.useRelative"></span>)</div></ion-item><ion-item id="helptip-currency-mass-member" class="item-icon-left item-text-wrap"><i class="icon ion-pie-graph"></i><div class="col col-60"><span translate>CURRENCY.VIEW.SHARE</span> <span class="gray">(M<sub>t</sub>/N<sub>t</sub>)</span></div><span id="helptip-currency-mass-member-unit" ng-if="!loading" class="badge badge-calm" ng-bind-html=":rebind:formData.MoverN | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-record"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MASS</span> <span class="gray">(M<sub>t</sub>)</span></div><span class="badge badge-energized" ng-if="!loading" ng-bind-html=":rebind:formData.M | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span></ion-item><cs-extension-point name="parameters-actual"></cs-extension-point><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_ACTUAL</span> <span class="gray">(c<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-stable">{{formData.cactual | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-load-c"></i><div class="col col-60"><span translate>CURRENCY.VIEW.UD</span> <span class="gray">({{\'COMMON.UD\'|translate}}<sub>t</sub>)</span></div><div class="badge badge-royal" ng-if="!loading"><span ng-if="formData.useRelative">1<ng-bind-html ng-bind-html=":rebind:formData.currency| currencySymbol:true"></ng-bind-html></span><span ng-if="!formData.useRelative" ng-bind-html=":rebind:formData.currentUD | formatAmount:{currency: formData.currency, useRelative: formData.useRelative, currentUD: formData.currentUD}"></span> &nbsp;/&nbsp;{{formData.dt | formatPeriod}}</div></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>COMMON.BTN_RELATIVE_UNIT</div><label class="toggle toggle-royal" id="helptip-currency-change-unit"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><a name="helptip-currency-rules-anchor"></a><div class="item item-divider" id="helptip-currency-rules"><span translate>CURRENCY.VIEW.MONEY_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-60"><span translate>CURRENCY.VIEW.C_RULE</span> <span class="gray">(c)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dt | formatPeriod}}</span><span class="badge badge-stable" ng-if="!loading && formData.udReevalTime0">{{formData.c*100 | formatNumeral: \'0,0.00\'}} %&nbsp;/&nbsp;{{formData.dtReeval | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.DT_REEVAL</span> <span class="gray">(dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading" translate="CURRENCY.VIEW.DT_REEVAL_VALUE" translate-values="formData"></span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.udReevalTime0 && formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_REEVAL_TIME0</span> <span class="gray">(t0<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading">{{formData.udReevalTime0|medianDate}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allRules"><i class="icon ion-load-c"></i> <b class="ion-calculator icon-secondary" style="font-size: 18px; left: 36px; top: -12px"></b><div class="col col-60"><span translate>CURRENCY.VIEW.UD_RULE</span> <span class="gray" ng-if="formData.udReevalTime0">- {{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)</span></div><span class="item-note dark" ng-if="!loading && !formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>t-1</sub> + c<sup>2</sup> * M<sub>t-1</sub>/N<sub>t-1</sub></span><span class="item-note dark" ng-if="!loading && formData.udReevalTime0">{{\'COMMON.UD\'|translate}}<sub>{{formData.dt|formatPeriod}}</sub>(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>)+ c<sup>2</sup> * (M/N)(t<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub> - dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub>) / dt<sub>{{\'CURRENCY.VIEW.REEVAL_SYMBOL\'|translate}}</sub></span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/items_wot.html",'<div bind-notifier="{ rebind:formData.useRelative }"><a name="helptip-currency-newcomers-anchor"></a><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person-stalker"></i><div class="col col-60"><span translate>CURRENCY.VIEW.MEMBERS</span> <span class="gray">(N<sub>{{\'CURRENCY.VIEW.CURRENT\'|translate}}</sub>)</span></div><span class="badge badge-calm" ng-if="!loading">{{formData.N | formatInteger}}</span></ion-item><ion-item id="helptip-currency-newcomers" class="item-icon-left item-text-wrap"><i class="icon ion-arrow-graph-up-right"></i><div class="col col-75"><span translate="CURRENCY.VIEW.MEMBERS_VARIATION" translate-values="{duration: formData.durationFromLastUD}"></span> <span class="gray">(&#916;N)</span></div><div class="badge" ng-if="!loading" ng-class="{\'badge-balanced\': (formData.N>formData.Nprev), \'badge-stable\': (formData.N==formData.Nprev) ,\'badge-assertive\': (formData.Nprev>formData.N)}">{{formData.N > formData.Nprev ? \'+\' : \'\'}}{{formData.N - formData.Nprev}}</div></ion-item><cs-extension-point name="wot-actual"></cs-extension-point><div class="item item-divider"><span translate>CURRENCY.VIEW.WOT_RULES_DIVIDER</span></div><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-ribbon-b"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_QTY_RULE</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigQty}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_WINDOW</span> <span class="badge badge-assertive" ng-if="!loading">{{formData.msWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap"><i class="icon ion-person"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.MS_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.msValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-clock icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_WINDOW</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigWindow | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-calendar icon-secondary" style="font-size: 18px; left: 33px; top: -12px"></b> <span class="col col-60" translate>CURRENCY.VIEW.SIG_VALIDITY</span> <span class="badge badge-balanced" ng-if="!loading">{{formData.sigValidity | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-a"></i> <span class="col col-75" translate>CURRENCY.VIEW.SIG_STOCK</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigStock}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-clock" style="position: absolute; font-size: 20px; left: 16px"></i> <b class="ion-ribbon-a icon-secondary" style="left: 16px; top: -15px"></b> <b class="ion-arrow-right-c icon-secondary" style="left: 28px; top: -15px"></b> <b class="ion-ribbon-a icon-secondary" style="left: 40px; top: -15px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SIG_PERIOD</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sigPeriod | formatDuration}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-steam"></i> <b class="ion-person icon-secondary" style="left: 38px; top: -17px"></b><div class="col col-75"><span ng-bind-html="\'CURRENCY.VIEW.STEP_MAX\'|translate"></span> <span class="gray">(stepMax)</span></div><span class="badge badge-assertive" ng-if="!loading">{{formData.stepMax}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES</span> <span class="badge badge-stable" ng-if="!loading">{{formData.sentries}}</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-ribbon-b"></i> <b class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span class="col col-75" translate>CURRENCY.VIEW.SENTRIES_FORMULA</span> <span class="item-note dark" ng-if="!loading">{{\'CURRENCY.VIEW.MATH_CEILING\'| translate}}( N<sub>t</sub><sup>^ (1 / stepMax)</sup>)</span></ion-item><ion-item class="item-icon-left item-text-wrap" ng-if="formData.allWotRules"><i class="icon ion-pull-request"></i> <span class="col col-75" translate>CURRENCY.VIEW.XPERCENT</span> <span class="badge badge-stable" ng-if="!loading">{{formData.xpercent*100| formatNumeral: \'0,0\'}} %</span></ion-item><div class="item item-toggle dark"><div class="item-label text-right gray" translate>CURRENCY.VIEW.DISPLAY_ALL_RULES</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.allWotRules"><div class="track"><div class="handle"></div></div></label></div></div>'),e.put("templates/currency/lookup.html",'<ion-view view-title="{{\'CURRENCY.SELECT.TITLE\' | translate}}"><ion-content class="padding no-padding-xs no-padding-sm"><h4 class="content double-padding-x" translate>CURRENCY.SELECT.CURRENCIES</h4><ng-include src="\'templates/currency/lookup_form.html\'"></ion-content></ion-view>'),e.put("templates/currency/lookup_form.html",'<ion-list><div class="item center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-repeat="currency in search.results" ng-class="{ selected: selectedCurrency == currency }"><a class="item card card-item stable-bg padding ink" ng-click="selectCurrency(currency)" ng-class="{ selected: selectedCurrency && selectedCurrency.name == currency.name }"><h2>{{currency.name}}</h2><h4 class="gray">{{currency.peer.server}}</h4><span class="badge badge-royal">{{\'CURRENCY.SELECT.MEMBERS_COUNT\'|translate:currency}}</span></a></div></ion-list>'),e.put("templates/currency/modal_license.html",'<ion-modal-view class="modal-full-height modal-license"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>CURRENCY.LICENSE.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content scroll="false" style="bottom: 0px"><p ng-if="!licenseUrl && !loading">translate>CURRENCY.LICENSE.NO_LICENSE_FILE</p><iframe ng-if="licenseUrl && !loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseUrlHtml||licenseUrl}}"></iframe><div class="padding hidden-xs text-center"><button class="button button-stable ink" ng-click="downloadFile()">{{\'CURRENCY.LICENSE.BTN_DOWNLOAD\' | translate}}</button> <button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/currency/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"></div></ion-content></ion-popover-view>'),e.put("templates/currency/view_currency.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'CURRENCY.VIEW.TAB_CURRENCY\'|translate}}" icon="ion-stats-bars" ui-sref="app.currency.tab_parameters"><ion-nav-view name="tab-parameters"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_WOT\'|translate}}" icon="ion-person-stalker" ui-sref="app.currency.tab_wot"><ion-nav-view name="tab-wot"></ion-nav-view></ion-tab><ion-tab id="helptip-currency-tab-peers" title="{{\'CURRENCY.VIEW.TAB_NETWORK\'|translate}}" icon="ion-cloud" ui-sref="app.currency.tab_network"><ion-nav-view name="tab-network"></ion-nav-view></ion-tab><ion-tab title="{{\'CURRENCY.VIEW.TAB_BLOCKS\'|translate}}" icon="ion-lock-combination" ui-sref="app.currency.tab_blocks"><ion-nav-view name="tab-blocks"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("templates/currency/view_currency_lg.html",'<ion-view left-buttons="leftButtons" cache-view="false"><ion-nav-title bind-notifier="{ rebind:formData.useRelative }"><span ng-if="!loading">{{\'CURRENCY.VIEW.TITLE\' | translate}} {{formData.currency|abbreviate}}</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refreshPeers()"></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-text-wrap no-border no-padding pull-left"><div class="item-icon-left card padding stable-900-bg"><ion-spinner class="icon" icon="android" ng-if="loading"></ion-spinner><i class="icon ion-help-circled calm" ng-if="!loading"></i><div class="item-icon-left-padding" style="min-height: 26px"><span ng-if="!loading" trust-as-html="\'CURRENCY.VIEW.CURRENCY_SHORT_DESCRIPTION\'|translate:formData"></span></div></div></div><div class="row responsive-sm"><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.MONEY_DIVIDER</span></div><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div><div class="col list"><div class="item item-divider"><span translate="">CURRENCY.VIEW.WOT_DIVIDER</span></div><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/common/badge_certification_count.html",'<span ng-attr-id="{{$ctrl.csId}}" class="badge badge-balanced" ng-class="{\'badge-energized\': $ctrl.requirements.willNeedCertificationCount || ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount >= $ctrl.parameters.sigQty),\n               \'badge-assertive\': ($ctrl.requirements.needCertificationCount + $ctrl.requirements.pendingCertificationCount < $ctrl.parameters.sigQty)}"><span ng-if="$ctrl.requirements.certificationCount || !$ctrl.requirements.pendingCertificationCount"><i ng-if="!$ctrl.requirements.needCertificationCount" class="ion-android-done"></i> {{$ctrl.requirements.certificationCount}} <i ng-if="$ctrl.requirements.willNeedCertificationCount" class="ion-android-warning"></i> </span><span ng-if="$ctrl.requirements.pendingCertificationCount"><ng-if ng-if="$ctrl.requirements.certificationCount">+</ng-if><i class="ion-clock"></i> {{$ctrl.requirements.pendingCertificationCount}}</span></span>'),e.put("templates/common/badge_given_certification_count.html",'<div ng-attr-id="{{$ctrl.csId}}" class="badge badge-calm" ng-class="{\'badge-assertive\': $ctrl.identity.given_cert.length >= $ctrl.parameters.sigStock}"><span><i ng-if="$ctrl.identity.given_cert.length" class="ion-android-done"></i> {{$ctrl.identity.given_cert.length}} </span><span ng-if="$ctrl.identity.given_cert_pending.length">(<ng-if ng-if="$ctrl.identity.given_cert.length">+</ng-if><i class="ion-clock"></i> {{$ctrl.identity.given_cert_pending.length}}) </span><small>/ {{$ctrl.parameters.sigStock}}</small></div>'),e.put("templates/common/form_error_messages.html",'<div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div>'),e.put("templates/common/popover_copy.html",'<ion-popover-view class="popover-copy" style="height: {{(!rows || rows &lt;= 1) ? 50 : rows*22}}px"><ion-content scroll="false"><div class="list"><div class="item item-input"><input type="text" ng-if="!rows || rows &lt;= 1" ng-model="value"><textarea ng-if="rows && rows > 1" ng-model="value" rows="{{rows}}" cols="10">\n      </textarea></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popover_helptip.html",'<ion-popover-view class="popover-helptip"><ion-content scroll="false" class="list"><p><i ng-if="icon.position && !icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs" style="{{icon.style}}"></i><a ng-click="closePopover()" class="pull-right button-close" ng-class="{\'pull-left\': icon.position === \'right\', \'pull-right\': icon.position !== \'right\'}"><i class="ion-close"></i> </a><span>&nbsp;</span></p><p class="padding light"><ng-bind-html ng-bind-html="content | translate:contentParams"></ng-bind-html><ng-bind-html ng-bind-html="trustContent"></ng-bind-html></p><div class="text-center" ng-if="!tour"><button class="button button-small button-stable" ng-if="!hasNext" ng-click="closePopover(true)" translate>COMMON.BTN_UNDERSTOOD</button> <button class="button button-small button-stable" id="helptip-btn-ok" ng-if="hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_UNDERSTOOD</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)"><i class="icon ion-chevron-right"></i></button></div><div class="text-center" ng-if="tour"><button class="button button-small button-positive" id="helptip-btn-ok" ng-if="!hasNext" ng-click="closePopover(false)" translate>COMMON.BTN_CLOSE</button> <button id="helptip-btn-ok" class="button button-small button-positive icon-right ink" ng-if="hasNext" ng-click="closePopover(true)">{{\'COMMON.BTN_CONTINUE\'|translate}} <i class="icon ion-chevron-right"></i></button></div><p><i ng-if="icon.position && icon.position.startsWith(\'bottom-\')" class="{{icon.class}} icon-{{icon.position}} hidden-xs"></i></p></ion-content></ion-popover-view>'),e.put("templates/common/popover_profile.html",""),e.put("templates/common/popover_share.html",'<ion-popover-view class="popover-share"><ion-content scroll="false"><div class="bar bar-header"><h1 class="title">{{titleKey|translate:titleValues}}</h1><span class="gray pull-right">{{time|formatDate}}</span></div><div class="list no-margin no-padding has-header has-footer block"><div class="item item-input"><input type="text" ng-model="value"></div></div><div class="bar bar-footer"><div class="button-bar"><a class="button button-icon positive icon ion-social-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{postUrl|formatEncodeURI}}&amp;title={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'facebook-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_FACEBOOK\'|translate}}"></a> <a class="button button-icon positive icon ion-social-twitter" href="https://twitter.com/intent/tweet?url={{postUrl|formatEncodeURI}}&amp;text={{postMessage|formatEncodeURI}}" onclick="window.open(this.href, \'twitter-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_TWITTER\'|translate}}"></a> <a class="button button-icon positive icon ion-social-googleplus" href="https://plus.google.com/share?url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'google-plus-share\', \'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=296,width=580\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_GOOGLEPLUS\'|translate}}"></a> <a class="button button-icon positive icon ion-social-diaspora" href="https://sharetodiaspora.github.io/?title={{postMessage|formatEncodeURI}}&amp;url={{postUrl|formatEncodeURI}}" onclick="window.open(this.href, \'diaspora-share\',\'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,width=580,height=296\');return false;" title="{{\'COMMON.POPOVER_SHARE.SHARE_ON_DIASPORA\'|translate}}"></a> <a class="button-close" title="{{\'COMMON.BTN_CLOSE\'|translate}}" ng-click="closePopover()"><i class="icon ion-close"></i></a></div></div></ion-content></ion-popover-view>'),e.put("templates/common/popup_password.html",'<form name="pwdForm" ng-submit="submit($event)"><div class="list" ng-init="setForm(pwdForm)"><label class="item item-input" ng-class="{\'item-input-error\': pwdForm.$submitted && pwdForm.password.$invalid}"><input name="password" type="password" placeholder="{{\'ACCOUNT.SECURITY.KEYFILE.PASSWORD_POPUP.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-minlength="1" required></label><div class="form-errors" ng-if="pwdForm.$submitted && pwdForm.pseudo.$error" ng-messages="pwdForm.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="form-errors" ng-if="error"><div class="form-error">{{error|translate}}</div></div></div></form>'),e.put("templates/common/view_passcode.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate>COMMON.PASSCODE.TITLE</span></ion-nav-title><ion-content scroll="false"></ion-content></ion-view>'),e.put("templates/help/help.html",'<a name="join"></a><h2 translate>HELP.JOIN.SECTION</h2><a name="join-salt"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-salt\']"><div class="col col-20" translate>LOGIN.SALT</div><div class="col" translate>HELP.JOIN.SALT</div></div><a name="join-password"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-password\']"><div class="col col-20" translate>LOGIN.PASSWORD</div><div class="col" translate>HELP.JOIN.PASSWORD</div></div><a name="join-pseudo"></a><div class="row responsive-sm" ng-class="itemsClass[\'join-pseudo\']"><div class="col col-20" translate>ACCOUNT.NEW.PSEUDO</div><div class="col" translate>HELP.JOIN.PSEUDO</div></div><a name="login"></a><h2 translate>HELP.LOGIN.SECTION</h2><a name="login-pubkey"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-pubkey\']"><div class="col col-20" translate>HELP.LOGIN.PUBKEY</div><div class="col" translate>HELP.LOGIN.PUBKEY_DEF</div></div><a name="login-method"></a><div class="row responsive-sm" ng-class="itemsClass[\'login-method\']"><div class="col col-20" translate>HELP.LOGIN.METHOD</div><div class="col" translate>HELP.LOGIN.METHOD_DEF</div></div><a name="glossary"></a><h2 translate>HELP.GLOSSARY.SECTION</h2><a name="pubkey"></a><div class="row responsive-sm" ng-class="itemsClass.pubkey"><div class="col col-20" translate>COMMON.PUBKEY</div><div class="col" translate>HELP.GLOSSARY.PUBKEY_DEF</div></div><a name="blockchain"></a><div class="row responsive-sm" ng-class="itemsClass.blockchain"><div class="col col-20" translate>HELP.GLOSSARY.BLOCKCHAIN</div><div class="col" translate>HELP.GLOSSARY.BLOCKCHAIN_DEF</div></div><a name="universal_dividend"></a> <a name="ud"></a><div class="row responsive-sm" ng-class="itemsClass.ud"><div class="col col-20" translate>COMMON.UNIVERSAL_DIVIDEND</div><div class="col" translate>HELP.GLOSSARY.UNIVERSAL_DIVIDEND_DEF</div></div><a name="member"></a><div class="row responsive-sm" ng-class="itemsClass.member"><div class="col col-20" translate>HELP.GLOSSARY.MEMBER</div><div class="col" translate>HELP.GLOSSARY.MEMBER_DEF</div></div><a name="wot"></a><div class="row responsive-sm" ng-class="itemsClass.wot"><div class="col col-20" translate>HELP.GLOSSARY.WOT</div><div class="col" translate>HELP.GLOSSARY.WOT_DEF</div></div><a name="currency_rules"></a><div class="row responsive-sm" ng-class="itemsClass.currency_rules"><div class="col col-20" translate>HELP.GLOSSARY.CURRENCY_RULES</div><div class="col" translate>HELP.GLOSSARY.CURRENCY_RULES_DEF</div></div><a name="distance_rule"></a><div class="row responsive-sm" ng-class="itemsClass.distance_rule"><div class="col col-20" translate>HELP.GLOSSARY.DISTANCE_RULE</div><div class="col" translate>HELP.GLOSSARY.DISTANCE_RULE_DEF</div></div>'),e.put("templates/help/modal_help.html",'<ion-modal-view class="modal-full-height modal-help"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CLOSE</button><h1 class="title" translate>HELP.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding no-padding-xs"><div ng-class="listClass"><ng-include src="\'templates/help/help.html\'"></ng-include></div><div class="padding hidden-xs text-center"><button class="button button-positive ink" type="submit" ng-click="closeModal()">{{\'COMMON.BTN_CLOSE\' | translate}}</button></div></ion-content></ion-modal-view>'),e.put("templates/help/view_help.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" translate="">HELP.TITLE</span></ion-nav-title><ion-content scroll="true" class="padding"><ng-include src="\'templates/help/help.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/home/home.html",'<ion-view id="home" class=""><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="has-header text-center no-padding-xs positive-900-bg circle-bg-dark"><div id="helptip-home-logo" class="logo"></div><h4><span class="hidden-xs" translate="">HOME.WELCOME</span> <b ng-show="!loading" translate-values=":currency:{currency: $root.currency.name}" translate="">HOME.MESSAGE</b></h4><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding animate-fade-in animate-show-hide ng-hide" ng-show="!loading && error"><div class="card card-item padding"><p class="item-content item-text-wrap"><span class="dark" trust-as-html="\'HOME.CONNECTION_ERROR\'|translate:node"></span></p><button type="button" class="button button-positive icon icon-left ion-refresh ink" ng-click="reload()">{{\'COMMON.BTN_REFRESH\'|translate}}</button></div></div><div class="center animate-fade-in animate-show-hide ng-hide" ng-show="!loading && !error"><button type="button" class="button button-block button-stable button-raised icon-left icon ion-easel ink-dark hidden-xs" ng-show="login" ng-click="startHelpTour()">{{\'COMMON.BTN_HELP_TOUR\'|translate}}</button> <button type="button" class="button button-block button-positive button-raised ink-dark" ng-click="showJoinModal()" ng-if="!login" translate="">LOGIN.CREATE_FREE_ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-person ink-dark" ui-sref="app.view_wallet" ng-show="login" translate="">MENU.ACCOUNT</button> <button type="button" class="item button button-block button-positive button-raised icon icon-left ion-card ink-dark visible-xs" ui-sref="app.view_wallet_tx" ng-if="login" translate="">MENU.TRANSACTIONS</button><br class="visible-xs visible-sm"><div class="text-center no-padding" ng-show="!login"><br class="visible-xs visible-sm">{{\'LOGIN.HAVE_ACCOUNT_QUESTION\'|translate}} <b></b></div><div class="text-center no-padding" ng-show="login"><br class="visible-xs visible-sm"><span ng-bind-html="\'HOME.NOT_YOUR_ACCOUNT_QUESTION\'|translate:{pubkey: walletData.pubkey}"></span><br><b></b></div><button type="button" class="button button-block button-stable button-raised ink visible-xs visible-sm" ui-sref="app.view_wallet" ng-if="!login" translate="">COMMON.BTN_LOGIN</button> <button type="button" class="button button-block button-assertive button-raised icon icon-left ion-wand ink-dark visible-xs visible-sm" ng-click="logout()" ng-if="login" translate="">COMMON.BTN_LOGOUT</button><div class="text-center no-padding visible-xs stable"><br>{{\'COMMON.APP_VERSION\'|translate:{version: config.version} }} | <a href="#" ng-click="showAboutModal()" translate="">HOME.BTN_ABOUT</a></div></div></ion-content></ion-view>'),e.put("templates/join/modal_choose_account_type.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title" translate="">ACCOUNT.NEW.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slides.slider.activeIndex === 0" ng-click="slideNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div ng-if="!loading"><p ng-bind-html="\'ACCOUNT.NEW.INTRO_WARNING_TIME\'|translate:currency"></p><div class="row responsive-sm"><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-android-warning assertive"></i><p class="item-content item-icon-left-padding"><span class="dark" translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY</span><br><small translate="">ACCOUNT.NEW.INTRO_WARNING_SECURITY_HELP</small></p></div></div><div class="col"><div class="item card item-icon-left padding item-text-wrap stable-bg"><i class="icon ion-information-circled positive"></i><p class="item-content item-icon-left-padding"><span class="dark" trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE\'|translate:currency.node"></span><br><small trust-as-html="\'ACCOUNT.NEW.REGISTRATION_NODE_HELP\'|translate:currency.node"></small></p></div></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-positive icon-right ion-chevron-right ink" ng-click="slideNext()" ng-disabled="loading" type="button" translate="">COMMON.BTN_START</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header padding"><p translate="">ACCOUNT.NEW.SELECT_ACCOUNT_TYPE</p><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'member\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-person"></i><h2 translate="">ACCOUNT.NEW.MEMBER_ACCOUNT</h2><h4 class="gray" ng-bind-html="\'ACCOUNT.NEW.MEMBER_ACCOUNT_HELP\'|translate:currency"></h4><i class="icon dark ion-ios-arrow-right"></i></div></div><cs-extension-point name="select-account-type"></cs-extension-point><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectAccountTypeAndClose(\'wallet\')"><div class="item-content item-text-wrap"><i class="item-image icon dark ion-card"></i><h2 translate="">ACCOUNT.NEW.WALLET_ACCOUNT</h2><h4 class="gray" translate="">ACCOUNT.NEW.WALLET_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_member.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="doPrev()" ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.MEMBER_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-class="{\'button-text-stable\': !isLicenseRead}" ng-if="slideBehavior.hasAcceptButton" ng-click="isLicenseRead ? doNext() : undefined"><span translate>ACCOUNT.NEW.BTN_ACCEPT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page ng-if="licenseFileUrl"><ion-content class="has-header" scroll="false"><div class="padding" translate>ACCOUNT.NEW.INFO_LICENSE</div><div class="center padding" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><iframe ng-if="!loading" class="padding-left padding-right no-padding-xs iframe-license" id="iframe-license" ng-src="{{licenseFileUrl}}"></iframe><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext(\'licenceForm\')" ng-disabled="!isLicenseRead" type="button" translate>ACCOUNT.NEW.BTN_ACCEPT_LICENSE</button></div></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><form name="pseudoForm" novalidate="" ng-submit="doNext(\'pseudoForm\')"><div class="item item-text-wrap text-center padding"><a class="pull-right icon-help hidden-xs" ng-click="showHelpModal(\'join-pseudo\')"></a> <span translate>ACCOUNT.NEW.PSEUDO_WARNING</span></div><div class="list" ng-init="setForm(pseudoForm, \'pseudoForm\')"><div class="item item-input" ng-class="{\'item-input-error\': (pseudoForm.$submitted && pseudoForm.pseudo.$invalid) || (uiAlreadyUsed && formData.pseudo)}"><span class="input-label" translate>ACCOUNT.NEW.PSEUDO</span> <input id="pseudo" name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.pseudo" autocomplete="off" ng-minlength="3" ng-maxlength="100" ng-pattern="userIdPattern" ng-model-options="{ debounce: 250 }" required></div><div class="form-errors" ng-show="pseudoForm.$submitted && pseudoForm.pseudo.$error" ng-messages="pseudoForm.pseudo.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 3}"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 100}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.INVALID_USER_ID"></span></div></div><div class="text-right" style="min-height: 18px"><div class="form-error gray" ng-if="formData.computing && formData.pseudo"><ion-spinner class="icon ion-spinner-small" icon="android" ng-if="formData.computing && formData.pseudo"></ion-spinner><span translate>ACCOUNT.NEW.CHECKING_PSEUDO</span></div><ng-if ng-if="!formData.computing && formData.pseudo"><div class="form-error balanced" ng-if="!uiAlreadyUsed "><i class="icon ion-checkmark balanced"></i> <span translate>ACCOUNT.NEW.PSEUDO_AVAILABLE</span></div><div class="form-error" ng-if="uiAlreadyUsed"><i class="icon ion-close-circled assertive"></i> <span translate>ACCOUNT.NEW.PSEUDO_NOT_AVAILABLE</span></div></ng-if></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-disabled="uiAlreadyUsed" translate>COMMON.BTN_NEXT</button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" autocomplete="off" ng-minlength="8" different-to="formData.pseudo" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_PSEUDO"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" autocomplete="off" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page ng-if="!formData.pubkey"><ion-content class="has-header" scroll="true"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" autocomplete="off" ng-change="formDataChanged()" ng-minlength="8" different-to="formData.username" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="differentTo"><span translate="ERROR.EQUALS_TO_SALT"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" autocomplete="off" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" ng-click="getRevocationDocument()" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="true"><div class="center padding" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!formData.computing"><div class="animate-fade-in animate-show-hide ng-hide" ng-show="accountAvailable"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item text-center item-text-wrap"><h3 class="gray" translate>LOGIN.ASSOCIATED_PUBKEY</h3><h3 class="dark bold">{{formData.pubkey}}</h3></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_SEND <i class="icon ion-android-send"></i></button></div></div><div class="animate-fade-in animate-show-hide ng-hide" ng-show="!accountAvailable"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-minus-circled assertive"></i> <span id="modal-license" trust-as-html="\'ERROR.EXISTING_ACCOUNT\'|translate"></span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="padding text-center"><span class="gray text-no-wrap">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ng-if></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/join/modal_join_wallet.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slideBehavior.hasPreviousButton"></button> <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" ng-if="slideBehavior.helpAnchor" ng-click="showHelpModal(slideBehavior.helpAnchor)"></button><h1 class="title" translate>ACCOUNT.NEW.WALLET_ACCOUNT_TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasNextButton" ng-click="doNext()"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-if="slideBehavior.hasSendButton" ng-click="doNewAccount()"><i class="icon ion-android-send"></i></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header" scroll="false"><form name="saltForm" novalidate="" ng-submit="doNext(\'saltForm\')"><div class="list" ng-init="setForm(saltForm, \'saltForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-salt\')"></a> <span translate>ACCOUNT.NEW.SALT_WARNING</span></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.username.$invalid}"><span class="input-label" translate>LOGIN.SALT</span> <input ng-if="!showUsername" name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required> <input ng-if="showUsername" name="username" type="text" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" ng-change="formDataChanged()" ng-model="formData.username" ng-minlength="8" required></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.username.$error" ng-messages="saltForm.username.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': saltForm.$submitted && saltForm.confirmSalt.$invalid}"><span class="input-label pull-right" translate>ACCOUNT.NEW.SALT_CONFIRM</span> <input ng-if="!showUsername" name="confirmUsername" type="password" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"> <input ng-if="showUsername" name="confirmUsername" type="text" placeholder="{{\'ACCOUNT.NEW.SALT_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmUsername" compare-to="formData.username"></div><div class="form-errors" ng-show="saltForm.$submitted && saltForm.confirmUsername.$error" ng-messages="saltForm.confirmUsername.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.SALT_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showUsername"><div class="track"><div class="handle"></div></div></label></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><form name="passwordForm" novalidate="" ng-submit="doNext(\'passwordForm\')"><div class="item item-text-wrap text-center padding hidden-xs"><a class="pull-right icon-help" ng-click="showHelpModal(\'join-password\')"></a> <span translate>ACCOUNT.NEW.PASSWORD_WARNING</span></div><div class="list" ng-init="setForm(passwordForm, \'passwordForm\')"><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.password.$invalid}"><span class="input-label" translate>LOGIN.PASSWORD</span> <input ng-if="!showPassword" name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required> <input ng-if="showPassword" name="text" type="text" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" ng-model="formData.password" ng-change="formDataChanged()" ng-minlength="8" required></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.password.$error" ng-messages="passwordForm.password.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT_WITH_LENGTH" translate-values="{minLength: 8}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input" ng-class="{ \'item-input-error\': passwordForm.$submitted && passwordForm.confirmPassword.$invalid}"><span class="input-label" translate>ACCOUNT.NEW.PASSWORD_CONFIRM</span> <input ng-if="!showPassword" name="confirmPassword" type="password" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"> <input ng-if="showPassword" name="confirmPassword" type="text" placeholder="{{\'ACCOUNT.NEW.PASSWORD_CONFIRM_HELP\' | translate}}" ng-model="formData.confirmPassword" compare-to="formData.password"></div><div class="form-errors" ng-show="passwordForm.$submitted && passwordForm.confirmPassword.$error" ng-messages="passwordForm.confirmPassword.$error"><div class="form-error" ng-message="compareTo"><span translate="ERROR.PASSWORD_NOT_CONFIRMED"></span></div></div><div class="item item-toggle dark"><span translate>COMMON.SHOW_VALUES</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="showPassword"><div class="track"><div class="handle"></div></div></label></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT</button></div><div class="padding hidden-xs"></div></form></ion-content></ion-slide-page><ion-slide-page><ion-content class="has-header" scroll="false"><div class="padding center" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><div ng-if="accountAvailable && !formData.computing"><div class="padding text-center" translate>ACCOUNT.NEW.LAST_SLIDE_CONGRATULATION</div><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="input-label" translate>COMMON.PUBKEY</span> <span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY </span><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></ion-item></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-click="doNewAccount()" translate>COMMON.BTN_CREATE</button></div></div><div ng-if="!accountAvailable && !formData.computing"><ion-item class="item-icon-left item-text-wrap text-center"><i class="icon ion-android-close active"></i> <span id="modal-license" translate>ERROR.EXISTING_ACCOUNT</span></ion-item><div class="list"><ion-item class="item item-text-wrap item-border"><div class="dark pull-right padding-right" ng-if="formData.computing"><ion-spinner icon="android"></ion-spinner></div><span class="gray text-no-wrap" ng-if="formData.computing" translate>ACCOUNT.NEW.COMPUTING_PUBKEY</span><div class="padding text-center"><span class="gray text-no-wrap" ng-if="formData.pubkey">{{formData.pubkey}}</span></div></ion-item><div class="padding text-center"><span translate>ERROR.EXISTING_ACCOUNT_REQUEST</span></div></div><div class="padding hidden-xs text-left"><button class="button button-assertive icon-left ion-chevron-left ink" ng-click="identifierRecovery()" translate>COMMON.BTN_MODIFY</button></div></div></ion-content></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/login/form_file_import.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.FILE_FORM_HELP</p></div><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i> <span class="positive" translate>LOGIN.FILE.HELP</span></div><div dropzone="onKeyFileDrop(file)"><div ng-if="!formData.file" onclick="angular.element(document.querySelector(\'#loginImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="loginImportFile" accept=".dunikey,.yml" style="visibility:hidden; position:absolute" onchange="angular.element(this).scope().fileChanged(event)"></div><div class="item item-icon-left item-icon-right stable-bg" ng-if="formData.file"><i class="icon ion-document-text dark"></i><div class="item-content row"><div class="col"><h2>{{formData.file.name}}</h2><h4 class="dark" ng-if="formData.file.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{formData.file.lastModified/1000|formatDate}}</h4><h5 class="dark"><span class="gray" translate>COMMON.FILE.SIZE</span> {{formData.file.size|formatInteger}} Ko</h5></div><div class="col"><h3><span class="gray" translate>COMMON.PUBKEY</span></h3><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="formData.file.pubkey">{{formData.file.pubkey}}</span> <span class="assertive animate-show-hide ng-hide" ng-show="!formData.file.valid"><br><i class="ion-close-circled assertive"></i> {{formData.file.pubkey ? \'ERROR.AUTH_INVALID_PUBKEY\' : \'ERROR.AUTH_INVALID_FILE\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeKeyFile()"></a></div></div><ion-checkbox ng-model="formData.keepAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>LOGIN.MEMORIZE_AUTH_FILE</div></ion-checkbox>'),e.put("templates/login/form_login.html",'<form name="loginForm" novalidate="" ng-submit="doLogin()" autocomplete="off"><div class="list padding no-padding-xs" ng-init="setForm(loginForm)" ng-switch on="formData.method"><div class="item hidden-xs no-padding" ng-if="showMethods"><div class="pull-right"><a class="button button-text button-small-padding icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-wrench"></i> {{\'LOGIN.BTN_METHODS\'| translate}} </a>&nbsp; <a class="button button-icon positive button-small-padding icon ion-ios-help-outline" style="right: 8px" ng-click="showHelpModal(\'login-method\')"></a></div></div><div class="item item-text-wrap" ng-if="::isAuth"><p ng-if="::expectedPubkey" ng-bind-html="::expectedUid ? \'AUTH.EXPECTED_UID_HELP\' : \'AUTH.EXPECTED_PUBKEY_HELP\' |translate: {uid: expectedUid, pubkey: expectedPubkey}"></p><p ng-if="::!expectedPubkey" ng-bind-html="::\'AUTH.GENERAL_HELP\'|translate"></p></div><div ng-switch-when="SCRYPT_DEFAULT"><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div><div ng-switch-when="SCRYPT_ADVANCED"><ng-include src="\'templates/login/form_scrypt_advanced.html\'"></ng-include></div><div ng-switch-when="PUBKEY"><ng-include src="\'templates/login/form_pubkey.html\'"></ng-include></div><div ng-switch-when="FILE"><ng-include src="\'templates/login/form_file_import.html\'"></ng-include></div><div ng-switch-when="SCAN"><ng-include src="\'templates/login/form_scan.html\'"></ng-include></div><div ng-switch-default><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-class="{\'button-assertive\': isAuth, \'button-positive\': !isAuth}" type="submit">{{okText || (isAuth ? \'AUTH.BTN_AUTH\' : \'COMMON.BTN_LOGIN\') | translate}}</button></div><div class="text-center no-padding visible-xs"><button type="button" class="button button-small icon-right ink" ng-click="showMethodsPopover($event)"><i class="icon ion-loop"></i> <span translate>LOGIN.BTN_METHODS_DOTS</span></button><br><br></div><ng-if ng-if="!isAuth && showNewAccountLink"><div class="text-center no-padding">{{\'LOGIN.NO_ACCOUNT_QUESTION\'|translate}}<br class="visible-xs"><a ng-click="showJoinModal()" translate>LOGIN.CREATE_ACCOUNT</a></div><br class="visible-xs"><div class="text-center no-padding"><a ng-click="showAccountSecurityModal()" translate>LOGIN.FORGOTTEN_ID</a></div></ng-if></form>'),e.put("templates/login/form_pubkey.html",'<div class="item"><p class="item-text-wrap" translate>LOGIN.PUBKEY_FORM_HELP</p></div><div class="item item-input item-button-right" ng-class="{ \'item-input-error\': form.$submitted && form.pubkey.$invalid}"><span class="input-label hidden-xs" translate>COMMON.PUBKEY</span> <input name="pubkey" type="text" placeholder="{{\'LOGIN.PUBKEY_HELP\' | translate}}" autocomplete="off" ng-model="formData.pubkey" ng-model-options="{ debounce: 650 }" required> <a class="button button-stable icon ion-android-search ink" ng-click="showWotLookupModal(form.pubkey.$viewValue)"></a></div><div class="form-errors" ng-show="form.$submitted && form.pubkey.$error" ng-messages="form.pubkey.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="checksum"><span translate="ERROR.INVALID_PUBKEY_CHECKSUM"></span></div></div>'),e.put("templates/login/form_scan.html",'<div class="item"><p class="item-text-wrap" ng-bind-html="::isAuth ? \'AUTH.SCAN_FORM_HELP\' : \'LOGIN.SCAN_FORM_HELP\' |translate"></p></div><div class="item item-icon-right item-text-wrap item-input" ng-class="{ \'item-input-error\': pubkeyError}"><span class="input-label" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><span class="gray animate-show-hide" ng-show="!computing && formData.pubkey">{{formData.pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner><input type="hidden" ng-model="formData.pubkey" required></div><a class="button button-icon positive button-small-padding icon ion-qr-scanner animate-show-hide" ng-show="!computing && (!expectedPubkey || pubkeyError)" ng-click="doScan()"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="!computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt.html",'<div class="item item-text-wrap" ng-if="!isAuth"><p ng-bind-html="\'LOGIN.SCRYPT_FORM_HELP\'|translate"></p></div><input type="password" name="fake-password" autocomplete="off" style="visibility:hidden; position:absolute"><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.username.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.SALT</span> <input name="username" type="password" placeholder="{{\'LOGIN.SALT_HELP\' | translate}}" autocomplete="off" ng-model="formData.username" ng-model-options="{ debounce: 650 }" class="highlight-light" required></label><div class="form-errors" ng-show="form.$submitted && form.username.$error" ng-messages="form.username.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><label class="item item-input" ng-class="{ \'item-input-error\': form.$submitted && form.password.$invalid}"><span class="input-label hidden-xs" translate>LOGIN.PASSWORD</span> <input name="password" type="password" placeholder="{{\'LOGIN.PASSWORD_HELP\' | translate}}" autocomplete="off" ng-model="formData.password" ng-model-options="{ debounce: 650 }" select-on-click required></label><div class="form-errors" ng-show="form.$submitted && form.password.$error" ng-messages="form.password.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-icon-right item-text-wrap" ng-class="{ \'item-input-error\': pubkeyError, \'item-input\': showPubkey}"><span class="input-label hidden-xs animate-show-hide ng-hide" ng-show="showPubkey" translate>COMMON.PUBKEY</span><div class="item-content text-wrap"><a class="positive ink animate-show-hide ng-hide" ng-show="showComputePubkeyButton && !pubkey" ng-click="computePubkey()"><i class="ion-eye"></i> {{\'COMMON.BTN_SHOW_PUBKEY\' | translate}} </a><span class="gray animate-show-hide" ng-show="!computing && pubkey">{{pubkey}}</span><ion-spinner class="ion-spinner-small" icon="android" ng-if="computing"></ion-spinner></div><a class="button button-icon positive button-small-padding icon ion-ios-help-outline animate-show-hide" ng-click="showHelpModal(\'login-pubkey\')" ng-if="!expectedPubkey" ng-show="showPubkey"></a> <span class="button button-icon balanced button-small-padding icon ion-checkmark animate-show-hide" ng-if="expectedPubkey" ng-show="showPubkey && !showComputePubkeyButton && !computing && !pubkeyError"></span></div><div class="form-errors" ng-if="expectedPubkey"><div class="form-error" ng-show="pubkeyError"><span trust-as-html="::\'ERROR.AUTH_INVALID_PUBKEY\'|translate:{pubkey: expectedPubkey}"></span></div></div>'),e.put("templates/login/form_scrypt_advanced.html",'<div class="row responsive-md responsive-sm padding-left"><div class="col col-33 no-padding"><label class="item item-input item-select"><select ng-model="formData.scrypt" style="max-width: 100%" ng-change="changeScrypt(formData.scrypt)" ng-options="l as (l.label | translate) for l in scryptParamsValues track by l.id"></select></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.N</span> <input class="no-padding-right" type="number" placeholder="N" autocomplete="off" ng-model="formData.scrypt.params.N" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.r</span> <input class="no-padding-right" type="number" placeholder="r" ng-model="formData.scrypt.params.r" autocomplete="off" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div><div class="col no-padding"><label class="item item-input"><span class="input-label" translate>LOGIN.SCRYPT.p</span> <input class="no-padding-right" type="number" placeholder="p" autocomplete="off" ng-model="formData.scrypt.params.p" ng-model-options="{ debounce: 650 }" ng-change="onScryptFormChanged()" required></label></div></div><p class="energized-100-bg padding dark"><i class="icon ion-android-warning"></i> <span translate>INFO.FEATURES_NOT_IMPLEMENTED</span></p><ng-include src="\'templates/login/form_scrypt.html\'"></ng-include>'),e.put("templates/login/item_remember_me.html",'<ion-checkbox ng-model="formData.rememberMe" ng-if="!isAuth" class="item ink item-text-wrap"><div class="item-content dark" translate>SETTINGS.REMEMBER_ME</div></ion-checkbox>'),e.put("templates/login/modal_login.html",'<ion-modal-view class="modal-full-height modal-login"><ion-header-bar class="" ng-class="{\'bar-positive\': !isAuth, \'bar-assertive\': isAuth}"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-bind-html="title | translate"></h1><div class="buttons buttons-right"><div class="secondary-buttons"><button class="button button-icon button-clear icon ion-android-done visible-xs" ng-class="{\'button-positive\': !isAuth}" style="color: #fff" ng-click="doLogin()"></button></div></div></ion-header-bar><ion-content scroll="true"><ng-include src="\'templates/login/form_login.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/login/popover_methods.html",'<ion-popover-view class="fit has-header popover-login-methods" ng-class="{\'auth\': isAuth}"><ion-header-bar><h1 class="title" translate="">LOGIN.METHOD_POPOVER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_DEFAULT\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> {{\'LOGIN.METHOD.SCRYPT_DEFAULT\' | translate}} </a><a class="item item-icon-left ink" ng-click="changeMethod(\'SCRYPT_ADVANCED\')"><i class="icon ion-shuffle" style="font-size: 22px"></i> <i class="icon-secondary ion-plus" style="font-size: 13px; left: 40px; margin-top: -4px"></i> {{\'LOGIN.METHOD.SCRYPT_ADVANCED\' | translate}} </a><a class="item item-icon-left ink hidden-xs" ng-click="changeMethod(\'FILE\')"><i class="icon ion-document-text"></i> {{\'LOGIN.METHOD.FILE\' | translate}} </a><a class="item item-icon-left ink" ng-if="$root.device.barcode.enable" ng-click="changeMethod(\'SCAN\')"><i class="icon ion-qr-scanner"></i> {{\'LOGIN.METHOD.SCAN\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isAuth" ng-click="changeMethod(\'PUBKEY\')"><i class="icon ion-key"></i> {{\'LOGIN.METHOD.PUBKEY\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark" ng-if=":rebind:!peer.bma.private">{{:rebind:peer.dns || peer.server}}</h3><h4 class="gray" ng-if=":rebind:peer.bma.private"><i class="ion-flash"></i> {{\'NETWORK.VIEW.PRIVATE_ACCESS\'|translate}}</h4><h4><span class="gray" ng-if=":rebind:!peer.uid"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.uid"><i class="ion-person"></i> {{:rebind:peer.name || peer.uid}} </span><span class="gray" ng-if=":rebind:!compactMode">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.bma.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center"><span id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}" class="badge" ng-class=":rebind:{\'badge-balanced\': peer.hasMainConsensusBlock, \'badge-energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber && !peer.blockNumber }">{{::!expertMode ? (\'COMMON.BLOCK\'|translate) : \'\' }} {{:rebind:(peer.currentNumber || peer.blockNumber) | formatInteger}}</span> <span class="badge badge-secondary" ng-if=":rebind:peer.consensusBlockDelta && expertMode"><i class="ion-clock"></i>&nbsp; {{:rebind:peer.consensusBlockDelta|formatDurationTime}}</span></div></div>'),e.put("templates/network/items_peers.html",'<div class="no-padding {{::motion.ionListClass}}"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-class=":rebind:{\'compacted\': peer.compacted && compactMode}" id="{{::helptipPrefix}}-peer-{{::$index}}" ng-click="selectPeer(peer)" ng-include="::\'templates/network/item_content_peer.html\'"></div></div>'),e.put("templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;<div class="pull-right">&nbsp;</div></div></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/network/popover_network.html",""),e.put("templates/network/popover_peer_info.html",""),e.put("templates/network/view_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && search.type==\'member\'" translate="">PEER.MEMBER_PEERS</span> <span ng-if="enableFilter && search.type==\'mirror\'" translate="">PEER.MIRROR_PEERS</span> <span ng-if="enableFilter && search.type==\'offline\'" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || !search.type" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter">&nbsp;<cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-blockchain" style="display: block"></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="BlockLookupCtrl"><div class="padding padding-xs" style="display: block; height: 100px"><h4 translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4></div><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("templates/network/view_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span></ion-nav-title><ion-content class="has-header" scroll="true"><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.bma.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i> </span><span class="assertive" ng-if="!loading && !node.uid">({{\'PEER.MIRROR\'|translate}})</span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.uid" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.uid})"><i class="ion-person"></i> {{node.name || node.uid}} <span class="gray" ng-if="node.name">({{node.uid}}) </span></a><span ng-if="!loading && !node.uid"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}} <span class="gray" ng-if="node.name">({{node.name}})</span></a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.view_server_block_hash({server: node.server, ssl: node.useSsl, tor: node.useTor, number: current.number, hash: current.hash})"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="isReachable" ui-sref="app.server_blockchain({server: node.server, ssl: node.useSsl, tor: node.useTor})"><i class="icon ion-cube" style="font-size: 25px"></i> <i class="icon-secondary ion-clock" style="font-size: 18px; left: 33px; top: -12px"></i> <span translate="">PEER.VIEW.LAST_BLOCKS</span> <i class="gray icon ion-ios-arrow-right"></i></a><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink {{::ionItemClass}}" ng-click="selectPeer(peer)" ng-include="\'templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("templates/settings/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="reset()"><i class="icon ion-refresh"></i> {{\'SETTINGS.BTN_RESET\' | translate}} </a><a class="item item-icon-left ink" ng-click="startSettingsTour()"><i class="icon ion-easel"></i> {{\'COMMON.BTN_HELP_TOUR_SCREEN\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/settings/popup_node.html",'<form name="popupForm" ng-submit=""><div class="list no-padding" ng-init="setPopupForm(popupForm)"><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': popupForm.$submitted && popupForm.newNode.$invalid}"><span class="input-label" ng-bind-html="\'SETTINGS.POPUP_PEER.HOST\'|translate"></span> <input name="newNode" type="text" placeholder="{{\'SETTINGS.POPUP_PEER.HOST_HELP\' | translate}}" ng-model="popupData.newNode" ng-minlength="3" required></div><div class="form-errors" ng-if="popupForm.$submitted && popupForm.newNode.$error" ng-messages="popupForm.newNode.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-toggle"><span class="input-label">{{\'SETTINGS.POPUP_PEER.USE_SSL\' | translate}}</span><h4><small class="gray" ng-bind-html="\'SETTINGS.POPUP_PEER.USE_SSL_HELP\' | translate"></small></h4><label class="toggle toggle-royal no-padding-right"><input type="checkbox" ng-model="popupData.useSsl"><div class="track"><div class="handle"></div></div></label></div><a class="button button-positive button-clear positive button-outline button-full button-small-padding icon-left ink no-padding" ng-click="showNodeList()"><i class="icon ion-search"></i> {{\'SETTINGS.POPUP_PEER.BTN_SHOW_LIST\' | translate}}</a></div><button type="submit" class="hide"></button></form>'),e.put("templates/settings/settings.html",'<ion-view left-buttons="leftButtons" cache-view="false" class="settings"><ion-nav-title translate="">SETTINGS.TITLE</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><div class="row no-padding responsive-sm responsive-md responsive-lg"><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm" style="margin-bottom: 2px"><span class="item item-divider" translate="">SETTINGS.DISPLAY_DIVIDER</span><label class="item item-input item-select"><div class="input-label" translate="">COMMON.LANGUAGE</div><select ng-model="formData.locale" ng-change="changeLanguage(formData.locale.id)" ng-options="l as l.label for l in locales track by l.id"></select></label><div class="item item-toggle dark"><div class="input-label">{{\'COMMON.BTN_RELATIVE_UNIT\' | translate}}</div><label class="toggle toggle-royal" id="helptip-settings-btn-unit-relative"><input type="checkbox" ng-model="formData.useRelative"><div class="track"><div class="handle"></div></div></label></div><div class="item item-toggle dark item-text-wrap"><div class="input-label" ng-bind-html="\'SETTINGS.ENABLE_HELPTIP\' | translate"></div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.helptip.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-text-wrap item-toggle dark"><div class="input-label">{{\'SETTINGS.USE_LOCAL_STORAGE\' | translate}}</div><h4 class="gray" ng-bind-html="\'SETTINGS.USE_LOCAL_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="common"></cs-extension-point><span class="item item-divider">{{\'SETTINGS.AUTHENTICATION_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap"><div class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}">{{\'SETTINGS.REMEMBER_ME\' | translate}}</div><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.REMEMBER_ME_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.rememberMe" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span class="hidden-xs" translate="">SETTINGS.KEEP_AUTH</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.KEEP_AUTH_HELP\' | translate"></h4></div><span class="visible-xs" translate="">SETTINGS.KEEP_AUTH_SHORT</span><select ng-model="formData.keepAuthIdle" ng-options="i as (keepAuthIdleLabels[i].labelKey | translate:keepAuthIdleLabels[i].labelParams ) for i in keepAuthIdles track by i"></select></label></div><div class="col col-50 list item-border-large padding-left padding-right no-padding-xs no-padding-sm no-margin-xs no-margin-sm"><span class="item item-divider">{{\'SETTINGS.WALLETS_SETTINGS\' | translate}}</span><div class="item item-toggle item-text-wrap dark"><span class="input-label" ng-class="{\'gray\': !formData.useLocalStorage}" translate="">SETTINGS.USE_WALLETS_ENCRYPTION</span><h4 class="gray text-wrap" ng-bind-html="\'SETTINGS.USE_WALLETS_ENCRYPTION_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useLocalStorageEncryption" ng-disabled="!formData.useLocalStorage"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.HISTORY_SETTINGS</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" translate="">SETTINGS.DISPLAY_UD_HISTORY</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.showUDHistory"><div class="track"><div class="handle"></div></div></label></div><cs-extension-point name="history"></cs-extension-point><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right visible-xs visible-sm" ng-click="changeNode()"><div class="input-label hidden-xs" translate="">SETTINGS.PEER</div><div class="input-label visible-xs" translate="">SETTINGS.PEER_SHORT</div><ng-if ng-if="formData.node.temporary"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{bma.server}}</div></ng-if><div class="badge badge-balanced" ng-if="!formData.node.temporary">{{bma.server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><label class="item item-input item-select item-text-wrap"><div class="input-label hidden-xs"><span translate="">SETTINGS.BLOCK_VALIDITY_WINDOW</span><h4 class="gray text-wrap hidden-xs" ng-bind-html="\'SETTINGS.BLOCK_VALIDITY_WINDOW_HELP\' | translate"></h4></div><div class="input-label visible-xs" translate="">SETTINGS.BLOCK_VALIDITY_WINDOW_SHORT</div><select ng-model="formData.blockValidityWindow" ng-options="i as (blockValidityWindowLabels[i].labelKey | translate:blockValidityWindowLabels[i].labelParams ) for i in blockValidityWindows track by i"></select></label><cs-extension-point name="network"></cs-extension-point><span class="item item-divider" ng-if="$root.config.plugins" translate="">SETTINGS.PLUGINS_SETTINGS</span><cs-extension-point name="plugins"></cs-extension-point></div></div></ion-content></ion-view>'),e.put("templates/wallet/item_tx.html",'<i class="icon item-image" ng-if="::!tx.avatar" ng-class="::{\'ion-person dark\': tx.uid, \'ion-card dark\': !tx.uid}"></i> <i class="avatar" ng-if="::tx.avatar" style="background-image: url({{::tx.avatar.src}})"></i><div class="row no-padding"><div class="col no-padding"><a class="" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::tx.uid">{{::tx.name||tx.uid}} </a><a class="gray" ui-sref="app.wot_identity({pubkey:tx.pubkey, uid:tx.uid})" ng-if="::!tx.uid && tx.pubkey"><i class="ion-key gray"></i> {{::tx.pubkey | formatPubkey}} <span ng-if="::tx.name">- {{::tx.name | truncText:40}}</span></a><p class="dark visible-xs width-cup text-italic" data-toggle="tooltip" ng-if="::tx.comment" title="{{::tx.comment}}"><i class="ion-ios-chatbubble-outline"></i> {{::tx.comment}}<br></p><h4><a ng-if="::!pending" class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate: false}} </a><span ng-if="::pending" class="gray">{{::tx.time | medianFromNowAndDate: false}}</span></h4></div><div class="col col-50 no-padding" ng-if="::tx.comment"><p class="vertical-center gray text-italic hidden-xs" data-toggle="tooltip" title="{{::tx.comment}}">{{::tx.comment}}</p></div><div class="col col-10 no-padding"><span ng-if="::!tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0, \'badge-white\': tx.amount <= 0}"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span> </span><a ng-if=":rebind:tx.lockedOutputs" class="badge item-note" ng-class="{\'badge-calm\': tx.amount > 0}" ng-click="showLockedOutputsPopover(tx, $event)"><b class="ion-locked"></b> <span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></a><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/item_ud.html",'<i class="icon item-image ion-arrow-up-c energized"></i><div class="row no-padding"><div class="col no-padding"><span class="energized" translate>COMMON.UNIVERSAL_DIVIDEND</span><h4><a class="gray underline" ui-sref="app.view_block({number: tx.block_number})">{{::tx.time | medianFromNowAndDate}}</a></h4></div><div class="col col-10 no-padding"><span class="badge item-note badge-energized"><span ng-bind-html=":rebind:tx.amount| formatAmount:{currency:$root.currency.name}"></span></span><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":rebind:tx.amount| formatAmount:{useRelative: !$root.settings.useRelative, currency:$root.currency.name}"></span>)</div></div></div>'),e.put("templates/wallet/modal_security.html",'<ion-modal-view class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-if="!slides.slider.activeIndex" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button> <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" ng-click="slidePrev()" ng-if="slides.slider.activeIndex"></button><h1 class="title hidden-xs" translate="">ACCOUNT.SECURITY.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-if="!isLastSlide && slides.slider.activeIndex > 0" ng-click="doNext()"><span translate="">COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-positive button-icon button-clear icon ion-android-done visible-xs" ng-click="doNext()" ng-if="isLastSlide && option === \'saveID\'"></button></ion-header-bar><ion-slides options="slides.options" slider="slides.slider"><ion-slide-page><ion-content class="has-header padding"><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'recoverID\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-undo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.RECOVER_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.RECOVER_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="selectOption(\'revocation\')" ng-if="!login"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-close icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WITH_FILE_DESCRIPTION</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'saveID\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-person"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 40px; font-size: 8px"></b><h2 translate="">ACCOUNT.SECURITY.SAVE_ID</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.SAVE_ID_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink hidden-xs" ng-click="selectOption(\'generateKeyfile\')" ng-if="login && !$root.device.enable"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-key icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.GENERATE_KEYFILE_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="self()" ng-if="needSelf"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-flag icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.SEND_IDENTITY</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.SEND_IDENTITY_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="membershipIn()" ng-if="needMembership"><div class="item-content item-text-wrap"><i class="item-image icon ion-person dark"></i> <b class="ion-plus icon-secondary dark" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.MEMBERSHIP_IN</h2><h4 class="gray" ng-bind-html="::\'ACCOUNT.SECURITY.MEMBERSHIP_IN_HELP\' | translate"></h4></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="revokeWalletIdentity()" ng-if="canRevoke"><div class="item-content item-text-wrap"><i class="item-image icon ion-person assertive-900"></i> <b class="ion-close icon-secondary assertive-900" style="top: -8px; left: 39px; font-size: 12px"></b><h2 translate="">ACCOUNT.SECURITY.REVOCATION_WALLET</h2><h4 class="gray" translate="">ACCOUNT.SECURITY.REVOCATION_WALLET_HELP</h4></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate="">COMMON.BTN_CANCEL</button></div></ion-content></ion-slide-page><ion-slide-page ng-if="option == \'revocation\'"><ng-include src="\'templates/wallet/slides/slides_revocation_file.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'saveID\'"><ng-include src="\'templates/wallet/slides/slides_saveID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_1.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_2.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="option == \'recoverID\'"><ng-include src="\'templates/wallet/slides/slides_recoverID_3.html\'"></ng-include></ion-slide-page><ion-slide-page ng-if="login && option == \'generateKeyfile\'"><ng-include src="\'templates/wallet/slides/slides_generate_keyfile.html\'"></ng-include></ion-slide-page></ion-slides></ion-modal-view>'),e.put("templates/wallet/modal_transfer.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>TRANSFER.MODAL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-header-bar><ion-content><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-modal-view>'),e.put("templates/wallet/new_transfer.html",'<ion-view left-buttons="leftButtons" id="transfer"><ion-nav-title><span class="visible-xs visible-sm" translate="">TRANSFER.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doTransfer()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding-xs"><div class="col no-padding-xs"><ng-include src="\'templates/wallet/transfer_form.html\'"></ng-include></div></div></ion-content><ion-digit-keyboard settings="digitKeyboardSettings" ng-if="digitKeyboardVisible"></ion-digit-keyboard></ion-view>'),e.put("templates/wallet/popover_actions.html",'<ion-popover-view class="fit has-header popover-wallet-actions"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink visible-xs visible-sm" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left ink" ng-if="walletData.requirements.alternatives" ng-click="showSelectIdentitiesModal()"><i class="icon ion-person"></i> <b class="icon-secondary ion-loop" style="margin-top: 4px; left: 15px"></b> {{\'ACCOUNT.BTN_SELECT_ALTERNATIVES_IDENTITIES\' | translate}} </a><a class="item item-icon-left ink visible-xs visible-sm" ng-if="!walletData.requirements.needSelf && walletData.requirements.needRenew" ng-click="renewMembership()"><i class="icon ion-loop"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_RENEW_DOTS\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="walletData.requirements.canMembershipOut" ng-click="membershipOut()"><i class="icon ion-log-out"></i> {{\'ACCOUNT.BTN_MEMBERSHIP_OUT_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-click="showSecurityModal()"><i class="icon ion-locked"></i> <span ng-bind-html="\'ACCOUNT.BTN_SECURITY_DOTS\' | translate"></span></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popover_unit.html",'<ion-popover-view class="popover-unit"><ion-content scroll="false"><div class="list"><a class="item item-icon-left" ng-class="{ \'selected\': !formData.useRelative}" ng-click="closePopover(false)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': !formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:false"></i> </a><a class="item item-icon-left" ng-class="{ \'selected\': formData.useRelative}" ng-click="closePopover(true)"><i class="icon" ng-class="{ \'ion-ios-checkmark-empty\': formData.useRelative}"></i> <i ng-bind-html="$root.currency.name | currencySymbol:true"></i></a></div></ion-content></ion-popover-view>'),e.put("templates/wallet/popup_register.html",'<form name="registerForm" ng-submit=""><div class="list" ng-init="setRegisterForm(registerForm)"><label class="item item-input" ng-class="{\'item-input-error\': registerForm.$submitted && registerForm.pseudo.$invalid}"><input name="pseudo" type="text" placeholder="{{\'ACCOUNT.NEW.PSEUDO_HELP\' | translate}}" ng-model="formData.newUid" ng-minlength="3" required></label><div class="form-errors" ng-if="registerForm.$submitted && registerForm.pseudo.$error" ng-messages="registerForm.pseudo.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/transfer_form.html",'<form name="transferForm" novalidate="" ng-submit="doTransfer()"><div class="list no-padding-xs" ng-init="setForm(transferForm)"><ion-item class="item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" tabindex="1" ng-click="showWotLookupModal()"><span class="gray" translate="">TRANSFER.TO</span> <span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="destUid"><i class="ion-person"></i> {{destUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!destUid && formData.destPub"><i class="ion-key"></i> {{formData.destPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></ion-item><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" tabindex="2" ng-click="showSelectWalletModal()"><span class="gray" translate="">TRANSFER.FROM</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-show="!loading" ng-class="{\'badge-assertive\': (convertedBalance <= 0 || form.amount.$error.max), \'badge-balanced\': (convertedBalance > 0 && (!form.amount.$error.max)) }"><ion-spinner icon="android" ng-show="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}}&nbsp;&nbsp; </span><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency:currency}"></span> </span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.amount.$invalid}"><div class="input-label"><span translate="">TRANSFER.AMOUNT</span> (<span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span>)</div><input type="text" tabindex="-1" autocomplete="off" class="hidden-no-device" name="amount" placeholder="{{::\'TRANSFER.AMOUNT_HELP\' | translate}}" ng-model="formData.amount" required number-float=""><div class="block hidden-no-device" style="position:absolute; opacity:0; z-index:100; top: 0; left: 0; height: 100%; width: 100%" tabindex="4" ng-click="showDigitKeyboard()"></div><a class="button button-clear button-stable dark ink" tabindex="-1" style="z-index:110; padding: 0px 16px" ng-click="showUnitPopover($event)"><span ng-bind-html="$root.currency.name | currencySymbol:formData.useRelative"></span> &nbsp;<b class="ion-arrow-down-b" style="font-size: 12pt"></b></a></ion-item><div class="form-errors" ng-show="form.$submitted && form.amount.$error" ng-messages="form.amount.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="numberFloat"><span translate="ERROR.FIELD_NOT_NUMBER"></span></div><div class="form-error" ng-message="numberInt"><span translate="ERROR.FIELD_NOT_INT"></span></div><div class="form-error" ng-message="min"><span translate="ERROR.FIELD_MIN" translate-values="{min: minAmount}"></span></div><div class="form-error" ng-message="max"><span translate="ERROR.NOT_ENOUGH_CREDIT"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal(\'restPub\')" tabindex="5" ng-if="formData.all && formData.restAmount"><span class="gray"><i translate="">TRANSFER.REST</i><ng-if ng-if="formData.restAmount">(<i ng-bind-html="formData.restAmount|formatAmount:{useRelative: formData.useRelative, currency:currency}"></i>)</ng-if><i translate="">TRANSFER.REST_TO</i> </span><span class="badge badge-royal animate-fade-in animate-show-hide ng-hide" ng-show="restUid"><i class="ion-person"></i> {{restUid}} </span>&nbsp; <span class="badge badge-royal" ng-show="!restUid && formData.restPub"><i class="ion-key"></i> {{formData.restPub | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && formData.all && !formData.restPub && formData.restAmount &gt; 0"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="pull-right visible-xs visible-sm" ng-if="!formData.useComment"><a class="button button-text button-small ink" tabindex="-1" ng-click="addComment()"><i class="icon ion-plus"></i> <span translate="">TRANSFER.BTN_ADD_COMMENT</span></a></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span> <input type="text" placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" id="{{commentInputId}}" tabindex="7" name="comment" autocomplete="off" ng-model="formData.comment" ng-model-options="{ debounce: 650 }" ng-maxlength="255" ng-pattern="commentPattern" ng-focus="hideDigitKeyboard()"></label><div class="form-errors" ng-show="form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div><div class="item item-icon-left item-text-wrap item-no-border visible-xs visible-sm" ng-if="formData.useComment"><i class="icon ion-android-alert positive"></i><h4 class="positive" translate="">TRANSFER.WARN_COMMENT_IS_PUBLIC</h4></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" tabindex="-1" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button ink" tabindex="8" ng-class="{\'button-assertive\': formData.all, \'button-positive\': !formData.all}" type="submit" translate="">TRANSFER.BTN_SEND</button></div></form>'),
+e.put("templates/wallet/tx_locked_outputs_popover.html",'<ion-popover-view class="fit popover-locked-outputs"><ion-header-bar><h1 class="title" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.TITLE</h1></ion-header-bar><ion-content scroll="true"><div ng-if="popoverData.lockedOuputs.length == 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION</h4></div><div ng-if="popoverData.lockedOuputs.length > 1" class="item item-text-wrap no-border"><h4 class="positive" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.DESCRIPTION_MANY</h4></div><div ng-repeat="output in popoverData.lockedOuputs track by $index" class="item"><h2 class="gray" ng-if="popoverData.lockedOuputs.length > 1" translate>ACCOUNT.LOCKED_OUTPUTS_POPOVER.LOCKED_AMOUNT</h2><div ng-if="popoverData.lockedOuputs.length > 1" class="badge item-note" ng-class="{\'badge-balanced\': output.amount > 0}"><i class="icon ion-locked"></i> <span ng-bind-html="::output.amount| formatAmount"></span> <span ng-bind-html="::unit"></span></div><div ng-repeat="condition in output.unlockConditions track by $index" class="row" ng-class="::{\'padding-top\': !$index && popoverData.lockedOuputs.length > 1}" ng-style="::condition.style"><span class="gray" ng-if="::condition.operator">{{::\'BLOCKCHAIN.VIEW.TX_OUTPUT_OPERATOR.\'+condition.operator|translate}}&nbsp;</span><div ng-if="::condition.type==\'SIG\'"><i class="icon ion-key dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.SIG\' | translate"></span> <a ng-click="goState(\'app.wot_identity\', {pubkey:condition.value})" style="text-decoration: none" class="positive">{{condition.value|formatPubkey}}</a></div><div ng-if="::condition.type==\'XHX\'"><i class="icon ion-lock-combination dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.XHX\' | translate"></span> <a copy-on-click="{{::condition.value}}" class="positive">{{::condition.value|formatPubkey}}...</a></div><div ng-if="condition.type==\'CSV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CSV\' | translate"></span> {{::condition.value|formatDuration}}</div><div ng-if="condition.type==\'CLTV\'"><i class="icon ion-clock dark"></i> <span class="dark" ng-bind-html="::\'BLOCKCHAIN.VIEW.TX_OUTPUT_FUNCTION.CLTV\' | translate"></span> {{::condition.value|medianDate}}</div></div></div></ion-content></ion-popover-view>'),e.put("templates/wallet/view_wallet.html",'<ion-view left-buttons="leftButtons" class="view-wallet" id="wallet"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" id="helptip-wallet-options-xs" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:$root.settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero" style="max-width: 100%; display: block" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading" style="max-width: 100%"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class=":rebind:{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{:rebind:formData.avatar.src}})"></i><h3 class="light" ng-if=":rebind:!enableSelectWallet"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></h3><h3 class="light" ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></h3><h4 class="assertive"><span ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember" translate="">WOT.NOT_MEMBER_PARENTHESIS</span></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><a ng-attr-id="{{ qrcodeId }}" class="qrcode spin pull-right" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></a><a id="wallet-share-anchor"></a><div class="visible-xs visible-sm padding text-center" ng-if="!loading"><button class="button button-assertive button-small-padding ink" ng-if="isDefaultWallet" ng-click="logout({askConfirm: true})"><i class="icon ion-log-out"></i> {{\'COMMON.BTN_LOGOUT\' | translate}}</button><div ng-if="formData.requirements.needRenew"><br><button class="button button-raised icon-left button-stable button-small-padding ink" ng-click="renewMembership()"><i class="icon ion-loop assertive"></i> <span class="assertive">{{:locale:\'ACCOUNT.BTN_MEMBERSHIP_RENEW\' | translate}}</span></button></div></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}" ng-hide="loading"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><div id="helptip-wallet-pubkey" class="item item-icon-left item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span>{{:locale:\'COMMON.PUBKEY\'|translate}}</span><h4 id="pubkey" class="dark">{{:rebind:formData.pubkey}}</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate"><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate | medianDate}}</h5><span class="badge badge-stable">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wallet-certifications" class="item item-icon-left item-icon-right item-text-wrap ink" ng-if="formData.isMember||formData.requirements.pendingMembership||!formData.requirements.needSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> {{:locale:\'ACCOUNT.CERTIFICATION_COUNT\'|translate}}<cs-badge-certification requirements="formData.requirements" parameters="::currency.parameters"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a id="helptip-wallet-given-certifications" class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if="formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="showTxHistory()"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i> </a><span class="item item-divider" ng-if="formData.events.length">{{:locale:\'ACCOUNT.EVENTS\' | translate}}</span><div class="item item-text-wrap item-icon-left item-wallet-event" ng-repeat="event in formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled assertive\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></div></ion-content></ion-view>'),e.put("templates/wallet/view_wallet_tx.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx"><ion-nav-title><span class="visible-xs visible-sm" translate="">MENU.TRANSACTIONS</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-positive-900-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><h1 class="light"><span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{currency: $root.currency.name}"></span></h1><h4><ng-if ng-if="!loading && $root.settings.expertMode" style="font-style: italic">(<span ng-bind-html=":balance:rebind:formData.balance | formatAmount:{useRelative:!$root.settings.useRelative, currency: $root.currency.name}"></span>)</ng-if><ng-if ng-if=":rebind:!enableSelectWallet" style="color: lightgray"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span></ng-if><ng-if ng-if=":rebind:enableSelectWallet"><a class="visible-xs visible-sm" style="color: lightgray" title="{{:locale:\'ACCOUNT.SELECT_WALLET_MODAL.TITLE\'|translate}}" ng-click="showSelectWalletModal($event)"><span ng-if=":rebind:formData.name">{{:rebind:formData.name}}</span> <span ng-if=":rebind:!formData.name && formData.uid">{{:rebind:formData.uid}}</span> <span ng-if=":rebind:!formData.name && !formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</span> <small><i class="ion-arrow-down-b"></i></small></a></ng-if></h4><div class="helptip-anchor-center"><a id="helptip-wallet-balance">&nbsp;</a></div></div><h2 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h2></div><div class="row no-padding"><div class="col"><div class="list {{::motion.ionListClass}}"><a class="item item-icon-left item-icon-right ink" ng-if="formData.tx.errors && formData.tx.errors.length" ng-click="showTxErrors()"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div><i class="gray icon ion-ios-arrow-right"></i></a><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider"><b class="icon ion-checkmark" style="font-size: 12px"></b> <b class="icon-secondary ion-help" style="font-size: 12px; top: 2px; left: 11px"></b> {{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading"><b class="icon ion-checkmark"></b> {{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a> </span><span class="item padding" ng-if="!loading && !formData.tx.history.length"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content><button id="fab-transfer" ng-show="!loading" class="button button-fab button-fab-bottom-right button-energized-900 hidden-md hidden-lg drop ng-hide" ng-click="showTransferModal()"><i class="icon ion-android-send"></i></button></ion-view>'),e.put("templates/wallet/view_wallet_tx_error.html",'<ion-view left-buttons="leftButtons" class="view-wallet-tx-error"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg" bind-notifier="{ rebind:settings.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="row no-padding"><div class="col list {{::motion.ionListClass}}"><div class="item item-divider"><span><b class="ion-clock"></b> {{:locale:\'ACCOUNT.PENDING_TX_RECEIVED\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasReceivedTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterReceivedTx" ng-init="pending=true;" ng-include="\'templates/wallet/item_tx.html\'"></div><div class="item item-divider"><span><b class="ion-close-circled"></b> {{:locale:\'ACCOUNT.ERROR_TX_SENT\'|translate}}</span><div class="badge item-note"><span ng-if="!$root.settings.useRelative">({{$root.currency.name | abbreviate}})</span> <span ng-if="$root.settings.useRelative">({{\'COMMON.UD\' | translate}}<sub>{{$root.currency.name | abbreviate}}</sub>)</span></div></div><span class="item padding" ng-if="!loading && !hasSentTx()"><span class="gray">{{:locale:\'ACCOUNT.NO_TX\'|translate}}</span></span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.errors | filter: filterSentTx" ng-init="error=true;" ng-include="\'templates/wallet/item_tx.html\'"></div></div></div></ion-content></ion-view>'),e.put("templates/wot/item_certification.html",'<i class="item-image" ng-if="!cert.avatar" ng-class="{\'ion-card\': !cert.isMember, \'ion-person\': cert.isMember}"></i> <i class="item-image avatar" ng-if="cert.avatar" style="background-image: url({{::cert.avatar.src}})"></i> <span ng-if="cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span class="positive">{{::cert.name||cert.uid}}</span></h3><h4 class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} <span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><span ng-if="!cert.isMember"><h3><i class="icon ion-clock" ng-if="cert.pending"></i> <span ng-if="cert.uid" class="dark">{{::cert.name||cert.uid}} </span><span ng-if="!cert.uid" class="gray"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}}</span></h3><h5 class="assertive">{{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}</h5><h4 class="gray"><span ng-if="cert.uid"><i class="ion-key"></i> {{::cert.pubkey | formatPubkey}} </span><span class="gray">| {{::cert.time|medianDate}}</span> <span class="gray" ng-if="$root.settings.expertMode">| {{::cert.pending ? \'WOT.SIGNED_ON_BLOCK\' : \'WOT.WRITTEN_ON_BLOCK\' | translate:cert}}</span></h4></span><div class="badge badge-stable" ng-class="{\'badge-energized\': cert.willExpire}" ng-if="cert.expiresIn">{{::cert.expiresIn | formatDurationTo}}</div><div class="badge badge-assertive" ng-if="!cert.expiresIn">{{::\'WOT.EXPIRED\' | translate}}</div>'),e.put("templates/wot/item_content_identity.html",'<i ng-if="::!item.avatar" class="item-image icon ion-person"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2><ng-if ng-if="::item.name||item.uid" ng-bind-html="::item.name||item.uid"></ng-if><ng-if ng-if="::!item.name && !item.uid">{{::item.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="::item.sigDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.REGISTERED\' | translate:item }}</h4><h4 class="gray" ng-class="{\'pull-right\': !smallscreen}" ng-if="item.memberDate"><i class="ion-clock"></i> {{::\'WOT.LOOKUP.MEMBER_FROM\' | translate:item}}</h4><h4 class="gray"><span class="positive" ng-if="::item.name && item.uid"><i class="ion-person"></i> {{::item.uid}}&nbsp; </span><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::(!item.uid && !item.revoked)" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked" class="assertive" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span></h4><h4 ng-if="::item.events||item.tags"><span ng-repeat="event in ::item.events" class="assertive"><i class="ion-alert-circled" ng-if="::!item.valid"></i> <span ng-bind-html="::event.message|translate:event.messageParams"></span> </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("templates/wot/items_given_certifications.html",'<div class="list given-certifications" ng-class="::motions.givenCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.GIVEN_CERTIFICATIONS.SUMMARY</span></span><div id="helptip-certs-stock" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-a"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.given_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.GIVEN_CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.given_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.given_cert_pending.length"><span translate>WOT.GIVEN_CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.GIVEN_CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.given_cert.length" translate>WOT.NO_GIVEN_CERTIFICATION </span><a class="item item-avatar ink" ng-repeat="cert in formData.given_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/items_received_certifications.html",'<div class="list certifications" ng-class="::motions.receivedCertifications.ionListClass"><span class="item item-divider hidden-xs"><span translate>WOT.CERTIFICATIONS.SUMMARY</span></span><div id="helptip-received-certs" class="item item-icon-left item-text-wrap ink"><i class="icon ion-ribbon-b"></i> <b ng-if="formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate>WOT.CERTIFICATIONS.RECEIVED</span><h4 class="gray" ng-if="formData.requirements.isSentry" translate>WOT.CERTIFICATIONS.SENTRY_MEMBER</h4><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="$root.currency.parameters"></cs-badge-certification></div><div class="item item-icon-left item-text-wrap ink" ng-if="formData.received_cert_error.length"><i class="icon ion-alert-circled"></i> <span translate>WOT.CERTIFICATIONS.ERROR</span> <span class="badge badge-assertive">{{formData.received_cert_error.length}}</span></div><span class="item item-divider" ng-if="formData.received_cert_pending.length"><span translate>WOT.CERTIFICATIONS.PENDING_LIST</span><div class="badge item-note" style="text-align: right !important" translate>WOT.NOT_WRITTEN_EXPIRE_IN</div></span><a class="item item-avatar ink" ng-repeat="cert in formData.received_cert_pending" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a><span class="item item-divider"><span translate>WOT.CERTIFICATIONS.LIST</span><div class="badge item-note" translate>WOT.EXPIRE_IN</div></span><span class="item gray" ng-if="!formData.received_cert.length" translate>WOT.NO_CERTIFICATION</span> <a class="item item-avatar ink" ng-repeat="cert in formData.received_cert" ui-sref="app.wot_identity({pubkey:cert.pubkey, uid:cert.uid})" ng-include="\'templates/wot/item_certification.html\'"></a></div>'),e.put("templates/wot/lookup.html",'<ion-view left-buttons="leftButtons"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'WOT.LOOKUP.TITLE\'|translate}}" icon="ion-person-stalker" ui-sref="app.wot_lookup.tab_search"><ion-nav-view name="tab"></ion-nav-view></ion-tab><cs-extension-point name="tabs"></cs-extension-point></ion-tabs></ion-view>'),e.put("templates/wot/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="double-padding-x padding-top-xs item-text-wrap" ng-if="::allowMultiple" style="height: 36px"><div class="gray padding-top" ng-if="!selection.length && parameters.help">{{::parameters.help|translate}}</div><div ng-repeat="identity in selection track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><span ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></span> <i class="icon ion-close" ng-click="removeSelection(identity, $event)">&nbsp;&nbsp;</i></div></div><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'WOT.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-wot-search-text"></a></div></div></div><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px" ng-class="::{\'hidden-xs hidden-sm\': !showResultLabel}"><div class="pull-left" ng-if="!search.loading && showResultLabel"><ng-if ng-if="search.type==\'newcomers\'"><h4 translate="">WOT.LOOKUP.NEWCOMERS</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.NEWCOMERS_COUNT\'|translate:{count: search.total} }}</small></ng-if><ng-if ng-if="search.type==\'pending\'"><h4 translate="">WOT.LOOKUP.PENDING</h4><small class="gray no-padding" ng-if="search.total">{{\'WOT.LOOKUP.PENDING_COUNT\'|translate:{count: search.total} }}</small></ng-if><h4 ng-if="search.type==\'text\'"><span translate="">COMMON.RESULTS_LIST</span> <small class="gray" ng-if="search.total">({{search.total}})</small></h4></div></div><div class="text-center padding-top" ng-if="search.loading"><p class="gray" ng-if="::$root.currency.initPhase" translate="">WOT.SEARCH_INIT_PHASE_WARNING</p><ion-spinner icon="android"></ion-spinner></div><ng-if ng-if="!search.loading"><div class="assertive padding" ng-if="!search.results.length"><span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span> <span ng-if="search.type==\'pending\'" translate="">WOT.LOOKUP.NO_PENDING</span> <span ng-if="search.type==\'newcomers\'" translate="">WOT.LOOKUP.NO_NEWCOMERS</span></div><ion-list ng-if="::!allowMultiple && $root.device.enable" class="{{::motion.ionListClass}}" can-swipe="true"><ng-repeat ng-repeat="item in search.results track by item.id"><div ng-if="::item.divider" class="item item-divider" id="helptip-wot-search-result-{{$index}}">{{::(\'WOT.SEARCH.DIVIDER_\' + item.index)|upper|translate}}</div><ion-item ng-if="::!item.divider" id="helptip-wot-search-result-{{$index}}" class="item item-border-large item-avatar item-icon-right ink" ng-click="::select(item)"><ng-include src="item.templateUrl || \'templates/wot/item_content_identity.html\'"></ng-include><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-positive" ng-click="showTransferModal({pubkey: item.pubkey, uid: item.name ||item.uid})" translate="">COMMON.BTN_SEND_MONEY_SHORT</ion-option-button></ion-item></ng-repeat></ion-list><div ng-if="::allowMultiple" class="list {{::motion.ionListClass}}"><ion-checkbox ng-repeat="item in search.results track by item.id" ng-model="item.checked" class="item item-border-large item-avatar ink" ng-click="toggleCheck($index, $event)"><ng-include src="\'templates/wot/item_content_identity.html\'"></ng-include></ion-checkbox></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="20%"></ion-infinite-scroll></ng-if></div>'),e.put("templates/wot/lookup_lg.html",'<ion-view><ion-nav-title>{{\'MENU.WOT\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-qr-scanner hidden-no-device" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"></button> <button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content class="padding no-padding-x no-padding-sm" scroll="true"><cs-extension-point name="top"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/lookup_popover_actions.html",'<ion-popover-view class="fit has-header visible-sm visible-xs"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="enableWallets" ng-click="doGetWallets()"><i class="icon ion-card"></i> {{\'MENU.WALLETS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetNewcomers()"><i class="icon ion-person"></i> {{\'WOT.LOOKUP.BTN_NEWCOMERS\' | translate}} </a><a class="item item-icon-left ink" ng-click="doGetPending()"><i class="icon ion-clock"></i> {{\'WOT.LOOKUP.BTN_PENDING\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("templates/wot/modal_lookup.html",'<ion-modal-view id="wotLookup" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title hidden-xs">{{::parameters.title?parameters.title:\'WOT.MODAL.TITLE\'|translate}}</h1><button class="button button-clear icon-right visible-xs ink" ng-if="allowMultiple && selection.length" ng-click="closeModal(selection)">{{::parameters.okText||\'COMMON.BTN_NEXT\' | translate}} <i ng-if="::!parameters.okText||parameters.okIcon" class="icon {{::parameters.okIcon||\'ion-ios-arrow-right\'}}"></i></button></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="visible-xs visible-sm text-right stable-bg stable"><button class="button button-icon button-small-padding dark hidden-no-device ink" ng-if="$root.device.barcode.enable" ng-click="scanQrCode()"><i class="icon ion-qr-scanner"></i></button> <button class="button button-icon button-small-padding dark ink" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></div><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("templates/wot/modal_select_pubkey_identity.html",'<ion-modal-view id="transfer" class="modal-full-height modal-transfer"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_IDENTITY_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="padding"><p trust-as-html="\'ACCOUNT.SELECT_IDENTITY_MODAL.HELP\'|translate:{pubkey: pubkey}"></p></div><ion-list><ion-item class="item-avatar item-icon-right" ng-repeat="item in identities" ng-click="closeModal(item)"><i class="item-image icon ion-person"></i><h2>{{item.uid}}</h2><h4 class="gray"><b class="ion-key"></b> {{::item.pubkey | formatPubkey}} <span ng-if="::!item.revoked && !item.pendingRevocation && !item.isMember" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span> <span ng-if="::item.revoked || item.pendingRevocation" class="assertive bold" translate>WOT.IDENTITY_REVOKED_PARENTHESIS</span> <span ng-if="::item.meta.invalid" class="assertive" translate>ERROR.WOT_PENDING_INVALID_BLOCK_HASH</span></h4><h4 class="dark" ng-if="::item.meta.time"><i class="ion-calendar"></i> <span translate>WOT.REGISTERED_SINCE</span> {{::item.meta.time|medianDate}}</h4><ng-if ng-if="::!item.revoked && !item.pendingRevocation && (item.certificationCount || item.pendingCertificationCount)"><cs-badge-certification requirements="item" parameters="$root.currency.parameters"></cs-badge-certification><div class="gray badge badge-secondary hidden-xs"><span translate>ACCOUNT.CERTIFICATION_COUNT</span></div></ng-if><i class="icon ion-ios-arrow-right"></i></ion-item></ion-list></ion-content></ion-modal-view>'),e.put("templates/wot/view_certifications.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm">{{::formData.name||formData.uid}}</span></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content class="certifications certifications-lg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="row responsive-sm responsive-md responsive-lg"><div class="col no-padding" ng-if="motions.receivedCertifications.enable"><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></div><div class="col no-padding" ng-if="motions.givenCertifications.enable"><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></div></div></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canCertify && !alreadyCertified" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button> <button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/view_identity.html",'<ion-view left-buttons="leftButtons" class="view-identity"><ion-nav-title></ion-nav-title><ion-content scroll="true" class="refresher-light" ng-class="{\'member refresher-positive-900-bg\': !loading && formData.isMember, \'refresher-dark-100-bg\': loading || !formData.isMember}"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="hero" ng-class="{\'hero-qrcode-active\': toggleQRCode}"><div class="content" ng-if="!loading"><i class="avatar" ng-if=":rebind:!formData.avatar" ng-class="{\'avatar-wallet\': !formData.isMember, \'avatar-member\': formData.isMember}"></i> <i class="avatar" ng-if=":rebind:formData.avatar" style="background-image: url({{::formData.avatar.src}})"></i><ng-if ng-if=":rebind:formData.name"><h3 class="light">{{::formData.name}}</h3></ng-if><ng-if ng-if=":rebind:!formData.name"><h3 class="light" ng-if=":rebind:formData.uid">{{:rebind:formData.uid}}</h3><h3 class="light" ng-if=":rebind:!formData.uid"><i class="ion-key"></i> {{:rebind:formData.pubkey | formatPubkey}}</h3></ng-if><h4 class="assertive"><ng-if ng-if=":rebind:(formData.name || formData.uid) && !formData.isMember && revoked" translate="">WOT.IDENTITY_REVOKED_PARENTHESIS</ng-if><ng-if ng-if=":rebind:(formData.name || formData.uid) && formData.isMember && revoked" translate="">WOT.MEMBER_PENDING_REVOCATION_PARENTHESIS</ng-if></h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div ng-attr-id="{{ qrcodeId }}" class="qrcode spin" ng-class="{\'active\': toggleQRCode}" ng-click="toggleQRCode = !toggleQRCode"></div><a id="wot-share-anchor-{{::formData.pubkey}}"></a><div class="visible-xs visible-sm"><button id="fab-certify-{{:rebind:formData.uid}}" class="button button-fab button-fab-top-left button-fab-hero button-calm spin" ng-if=":rebind:(canCertify && !alreadyCertified)" ng-click="certify()"><i class="icon ion-ribbon-b"></i></button><cs-extension-point name="buttons-top-fab"></cs-extension-point></div><div class="row no-padding"><div class="col list {{::motion.ionListClass}}" bind-notifier="{ rebind:loading}"><span class="item item-divider" translate="">WOT.GENERAL_DIVIDER</span><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{:rebind:formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 id="pubkey" class="dark text-left">{{:rebind:formData.pubkey}}</h4></ion-item><div class="item item-icon-left item-text-wrap" ng-if=":rebind:!formData.hasSelf"><i class="icon ion-ios-help-outline positive"></i> <span translate="">WOT.NOT_MEMBER_ACCOUNT</span><h4 class="gray" translate="">WOT.NOT_MEMBER_ACCOUNT_HELP</h4></div><ion-item class="item-icon-left" ng-if=":rebind:formData.sigDate||formData.uid"><i class="icon ion-calendar"></i> <span translate="">COMMON.UID</span><h5 class="dark" ng-if=":rebind:formData.sigDate "><span translate="">WOT.REGISTERED_SINCE</span> {{:rebind:formData.sigDate|medianDate}}</h5><span class="badge badge-energized">{{:rebind:formData.uid}}</span></ion-item><a id="helptip-wot-view-certifications" class="item item-icon-left item-text-wrap item-icon-right ink" ng-if=":rebind:formData.hasSelf" ng-click="showCertifications()"><i class="icon ion-ribbon-b"></i> <b ng-if=":rebind:formData.requirements.isSentry" class="ion-star icon-secondary" style="color: yellow; font-size: 16px; left: 25px; top: -7px"></b> <span translate="">ACCOUNT.CERTIFICATION_COUNT</span><cs-badge-certification cs-id="helptip-wot-view-certifications-count" requirements="formData.requirements" parameters="{sigQty: formData.sigQty}"></cs-badge-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink visible-xs visible-sm" ng-if=":rebind:formData.hasSelf && formData.isMember" ng-click="showGivenCertifications()"><i class="icon ion-ribbon-a"></i> <span translate="">WOT.GIVEN_CERTIFICATIONS.SENT</span><cs-badge-given-certification identity="formData" parameters="$root.currency.parameters"></cs-badge-given-certification><i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-icon-right ink" ng-if="!loading" ui-sref="app.wot_identity_tx_uid({uid:formData.uid,pubkey:formData.pubkey})"><i class="icon ion-card"></i> <span translate="">WOT.ACCOUNT_OPERATIONS</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-text-wrap item-icon-left item-wallet-event" ng-class="{\'assertive\': event.type==\'error\'}" ng-repeat="event in :rebind:formData.events"><i class="icon" ng-class="{\'ion-information-circled royal\': event.type==\'info\',\'ion-alert-circled\': event.type==\'warn\'||event.type==\'error\',\'assertive\': event.type==\'error\',\'ion-clock\': event.type==\'pending\'}"></i> <span trust-as-html="event.message | translate:event.messageParams"></span></div><cs-extension-point name="general"></cs-extension-point><cs-extension-point name="after-general"></cs-extension-point></div></div></ion-content><div class="visible-xs visible-sm" ng-hide="loading"><button id="fab-transfer" class="button button-fab button-fab-bottom-right button-assertive drop" ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.uid})"><i class="icon ion-android-send"></i></button></div></ion-view>'),e.put("templates/wot/view_identity_tx.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs visible-sm" ng-if="!loading"><span ng-if="formData.name || formData.uid">{{formData.name || formData.uid}} </span><span ng-if="!formData.name && !formData.uid"><i class="ion-key"></i> {{formData.pubkey|formatPubkey}}</span></span></ion-nav-title><ion-content scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true)"></ion-refresher><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list {{motion.ionListClass}}" ng-if="!loading"><div class="row"><div class="col"><div class="item item-tx item-divider">{{:locale:\'ACCOUNT.BALANCE_ACCOUNT\'|translate}}<div class="badge item-note" ng-class=":balance:{\'badge-assertive\': formData.balance <= 0, \'badge-balanced\': formData.balance > 0 }" ng-bind-html=":balance:formData.balance|formatAmount:{currency: $root.currency.name}"></div><div class="badge badge-secondary" ng-if="$root.settings.expertMode">(<span ng-bind-html=":balance:formData.balance| formatAmount: {useRelative: !$root.settings.useRelative, currency: $root.currency.name} "></span>)</div></div><div class="item item-icon-left" ng-if="formData.tx.errors.length"><i class="icon ion-alert-circled"></i> {{:locale:\'ACCOUNT.ERROR_TX\'|translate}}<div class="badge badge-assertive">{{formData.tx.errors.length}}</div></div><ng-if ng-if="formData.tx.pendings.length"><span class="item item-pending item-divider"><i class="ion-clock"></i> {{:locale:\'ACCOUNT.PENDING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.pendings" ng-init="pending=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><ng-if ng-if="formData.tx.validating.length"><span class="item item-pending item-divider">{{:locale:\'ACCOUNT.VALIDATING_TX\'|translate}}</span><div class="item item-pending item-tx item-icon-left" ng-repeat="tx in formData.tx.validating" ng-init="validating=true;" ng-include="::\'templates/wallet/item_tx.html\'"></div></ng-if><span class="item item-divider" ng-if="!loading">{{:locale:\'ACCOUNT.LAST_TX\'|translate}} <a id="helptip-wallet-tx" style="position: relative; bottom: 0; right: 0px">&nbsp;</a></span><div ng-repeat="tx in formData.tx.history" class="item item-tx item-icon-left" ng-include="::!tx.isUD ? \'templates/wallet/item_tx.html\' : \'templates/wallet/item_ud.html\'"></div><div class="item item-text-wrap text-center" ng-if="formData.tx.fromTime > 0"><p><a ng-click="showMoreTx()">{{:locale:\'ACCOUNT.SHOW_MORE_TX\'|translate}}</a> <span class="gray" translate="ACCOUNT.TX_FROM_DATE" translate-values="{fromTime: formData.tx.fromTime}"></span> <span class="gray">|</span> <a ng-click="showMoreTx(-1)" translate="">ACCOUNT.SHOW_ALL_TX</a></p></div></div></div></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_blocks.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><div class="item item-divider"><span translate>BLOCKCHAIN.LOOKUP.LAST_BLOCKS</span></div><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/blockchain/list_blocks.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_network.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear" ng-click="showExtendActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refreshPeers()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_network.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_parameters.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_parameters.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/currency/tabs/tab_wot.html",'<ion-view><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><div class="list"><ng-include src="\'templates/currency/items_wot.html\'"></ng-include></div></ion-content></ion-view>'),e.put("templates/wallet/list/item_wallet.html",'<div class="item item-avatar item-icon-right item-border-large item-wallet ink" id="wallet-{{::wallet.id}}" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if=":rebind:!walletData.avatar" class="item-image icon" ng-class=":rebind:{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if=":rebind:walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide=":rebind:wallet.isAuth()"></div><h2><span class="text-editable" ng-click="editWallet($event, wallet)" title="{{\'ACCOUNT.WALLET_LIST.BTN_RENAME\'|translate}}"><ng-if ng-if=":rebind:walletData.localName||walletData.name||walletData.uid" ng-bind-html="::walletData.localName||walletData.name||walletData.uid"></ng-if><ng-if ng-if=":rebind:!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></span></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><cs-extension-point name="item-wallet"></cs-extension-point><span class="badge" ng-if=":rebind:formData.showBalance && walletData.sources" ng-class=":rebind:{\'badge-calm\': (walletData.balance > 0) }"><ion-spinner class="ion-spinner-small" ng-if="formData.updatingWalletId==wallet.id" icon="android"></ion-spinner><span ng-bind-html=":rebind:walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span> </span><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/item_wallet_light.html",'<div class="item item-avatar item-icon-right item-border item-wallet" ng-click="select($event, wallet)" ng-init="walletData=wallet.data;"><i ng-if="::!walletData.avatar" class="item-image icon" ng-class="::{\'ion-card\': !walletData.isMember, \'ion-person\': walletData.isMember}"></i> <i ng-if="::walletData.avatar" class="item-image avatar" style="background-image: url({{::walletData.avatar.src}})"></i><div class="badge badge-button badge-avatar badge-assertive ion-locked" ng-hide="::wallet.isAuth()"></div><h2><ng-if ng-if="::walletData.localName||walletData.name||walletData.uid">{{::walletData.localName||walletData.name||walletData.uid}}</ng-if><ng-if ng-if="::!walletData.localName && !walletData.name && !walletData.uid">{{::walletData.pubkey|formatPubkey}}</ng-if></h2><h4 class="gray"><span class="positive" ng-if="::walletData.name && walletData.uid"><i class="ion-person"></i> {{::walletData.uid}}&nbsp; </span><b class="ion-key"></b> {{::walletData.pubkey | formatPubkey}} <span ng-if="::!walletData.uid" class="assertive" translate>WOT.NOT_MEMBER_PARENTHESIS</span></h4><div class="badge" ng-if="formData.showBalance" ng-class="{\'badge-calm\': (walletData.balance > 0) }"><span ng-bind-html="walletData.balance|formatAmount:{useRelative: formData.useRelative, currency: currency}"></span></div><i class="icon ion-ios-arrow-right"></i></div>'),e.put("templates/wallet/list/modal_import_file.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true" class="padding"><p translate>ACCOUNT.WALLET_LIST.IMPORT_MODAL.HELP</p><div dropzone="importFromFile(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#walletsImportFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="walletsImportFile" accept=".csv,.txt" style="visibility:hidden; position:absolute" on-read-file="importFromFile(file)"></div><div ng-if="hasContent" class="item item-icon-left item-icon-right stable-bg"><i class="icon ion-document-text gray"></i><div class="item-content row"><div class="col"><h2>{{fileData.name}}</h2><h4 ng-if="fileData.lastModified"><span class="gray" translate>COMMON.FILE.DATE</span> {{fileData.lastModified/1000|formatDate}}</h4><h5><span class="gray" translate>COMMON.FILE.SIZE</span> {{fileData.size|formatInteger}} Ko</h5></div><div class="col padding-left"><h3 ng-if="validatingFile" translate>COMMON.FILE.VALIDATING</h3><h3 ng-if="!validatingFile"><span class="dark animate-show-hide ng-hide" ng-show="isValidFile && content.length" ng-bind-html="\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.WALLET_COUNT\'|translate:{count: content.length}"></span> <span class="assertive animate-show-hide ng-hide" ng-show="isValidFile && !content.length"><br><i class="ion-close-circled assertive"></i> {{\'ACCOUNT.WALLET_LIST.IMPORT_MODAL.NO_NEW_WALLET\' |translate}} </span><span class="assertive animate-show-hide ng-hide" ng-show="!isValidFile"><br><i class="ion-close-circled assertive"></i> {{\'ERROR.INVALID_FILE_FORMAT\' |translate}}</span></h3></div></div><a class="ion-close-round gray pull-right" style="font-size: 10px; position: absolute; top: 6px; right: 6px" ng-click="removeFile()"></a></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" ng-disabled="loading || !content.length" ng-click="closeModal(content)" translate>COMMON.BTN_IMPORT</button></div></ion-content></ion-modal-view>'),e.put("templates/wallet/list/modal_wallets.html",'<ion-modal-view id="transfer" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</h1></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading" class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-repeat ng-repeat="wallet in wallets track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content></ion-modal-view>'),e.put("templates/wallet/list/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate="">COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><button class="item item-icon-left ink" ng-class="{\'gray\': loading || !wallets.length, \'assertive\': !loading && wallets.length}" ng-disabled="loading || !wallets.length" ng-click="selectAndRemoveWallet()"><i class="icon ion-trash-a"></i> {{\'ACCOUNT.WALLET_LIST.BTN_DELETE\' | translate}}</button></div></ion-content></ion-popover-view>'),e.put("templates/wallet/list/popover_wallets.html",'<ion-popover-view class="fit popover-wallets popover-light"><ion-header-bar class="stable-bg block"><div class="title" translate>ACCOUNT.SELECT_WALLET_MODAL.TITLE</div><div class="pull-right"><a class="positive" ng-click="showNewWalletModal()" translate>ACCOUNT.WALLET_LIST.BTN_NEW</a></div></ion-header-bar><ion-content scroll="true"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!loading && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list ng-if="!loading"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet_light.html\'"></ng-include><ng-repeat ng-repeat="wallet in :rebind:wallets | filter:filterFn(formData) track by wallet.id" ng-include="\'templates/wallet/list/item_wallet_light.html\'"></ng-repeat></ion-list></ion-content><ion-footer-bar class="stable-bg block"><div class="pull-right"><a class="positive" ui-sref="app.view_wallets" ng-click="closePopover()" translate>COMMON.NOTIFICATIONS.SHOW_ALL</a></div></ion-footer-bar></ion-popover-view>'),e.put("templates/wallet/list/popup_edit_name.html",'<form name="editForm" ng-submit=""><div class="list" ng-init="setEditForm(editForm)"><label class="item item-input" ng-class="{\'item-input-error\': editForm.$submitted && editForm.name.$invalid}"><input name="name" type="text" placeholder="{{\'ACCOUNT.WALLET_LIST.EDIT_POPOVER.NAME_HELP\' | translate}}" ng-model="formData.name" ng-minlength="3" required></label><div class="form-errors" ng-if="editForm.$submitted && editForm.name.$error" ng-messages="editForm.name.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div></div></form>'),e.put("templates/wallet/list/view_wallets.html",'<ion-view left-buttons="leftButtons" class="view-wallet-list"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="padding no-padding-xs no-padding-sm" bind-notifier="{ rebind:formData.useRelative, locale:settings.locale.id}"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate(true, $event)"></ion-refresher><div class="center padding gray" ng-if="!loading && wallets && !wallets.length && !defaultWallet">{{:locale:\'ACCOUNT.WALLET_LIST.NO_WALLET\'|translate}}</div><ion-list class="{{::motion.ionListClass}}"><ng-include ng-if="defaultWallet" ng-init="wallet = defaultWallet" src="\'templates/wallet/list/item_wallet.html\'"></ng-include><ng-include ng-repeat="wallet in wallets track by wallet.id" src="\'templates/wallet/list/item_wallet.html\'"></ng-include></ion-list><div class="center padding visible-xs visible-sm" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div></ion-content><button id="fab-add-wallet" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg drop ng-hide" ng-show="!loading" ng-click="showNewWalletModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("templates/wallet/slides/slides_generate_keyfile.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.GENERATE_KEYFILE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'PubSec\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.PUBSEC_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'WIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.WIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-click="downloadKeyFile(\'EWIF\')"><div class="item-content item-text-wrap"><i class="item-image dark icon ion-document-text"></i> <b class="ion-ios-redo icon-secondary dark" style="top: -8px; left: 42px; font-size: 12px"></b> <b class="ion-locked icon-secondary dark" style="top: 0px; left: 43px; font-size: 8px"></b><h2 translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT</h2><h4 class="gray" translate>ACCOUNT.SECURITY.KEYFILE.EWIF_FORMAT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#saveIdFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="saveIdFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doNext()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><form name="recoverForm" novalidate ng-submit="recoverId()"><div class="list" ng-init="setForm(recoverForm, \'recoverForm\')"><ng-repeat ng-repeat="question in recover.questions "><label class="item item-input {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="{{smallscreen ? \'white-space: normal\' : \'\'}}">{{question.value }}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value }}" ng-model="question.answer" required></label><div class="form-errors" ng-show="recoverForm.$submitted && recoverForm[\'question{{$index}}\'].$error" ng-messages="recoverForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-calm icon-right ion-chevron-right ink" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></div></form></ion-content>'),e.put("templates/wallet/slides/slides_recoverID_3.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.RECOVER_ID</h3><div class="item item-input"><span class="input-label">{{\'LOGIN.SALT\' | translate}} :</span> <span>{{recover.salt}}</span></div><div class="item item-input"><span class="input-label">{{\'LOGIN.PASSWORD\' | translate}} :</span> <span>{{recover.pwd}}</span></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CLOSE</button></div></ion-content>'),e.put("templates/wallet/slides/slides_revocation_file.html",'<ion-content class="has-header padding"><p translate>ACCOUNT.SECURITY.REVOCATION_WITH_FILE_HELP</p><div dropzone="recoverContent(file)"><div ng-if="!hasContent" onclick="angular.element(document.querySelector(\'#revocationFile\'))[0].click();"><h2 class="gray" translate>COMMON.CHOOSE_FILE</h2><input type="file" id="revocationFile" accept=".txt" style="visibility:hidden; position:absolute" on-read-file="recoverContent(file)"></div><div ng-if="hasContent" class="item row item-icon-left no-padding"><i class="icon ion-document-text gray"></i><div class="col"><span>{{fileData.name}}</span><br><small>{{fileData.size}} Ko</small></div><div class="col-10"><b ng-class="{\'ion-android-done balanced\': isValidFile,\'ion-close-circled assertive\': !isValidFile}" style="font-size: 28px; position: relative; top: 6px"></b> <button class="button-icon ion-close-round gray pull-right" style="font-size:10px" ng-click="restore()"></button></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="revokeWithFile()" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></ion-content>'),e.put("templates/wallet/slides/slides_saveID_1.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><label class="item item-input item-select"><div class="input-label" translate>ACCOUNT.SECURITY.LEVEL</div><select ng-model="formData.level"><option value="2" ng-bind-html="\'ACCOUNT.SECURITY.LOW_LEVEL\' | translate"></option><option value="4" translate>ACCOUNT.SECURITY.MEDIUM_LEVEL</option><option value="6" translate>ACCOUNT.SECURITY.STRONG_LEVEL</option></select></label><div class="padding-top" translate="ACCOUNT.SECURITY.HELP_LEVEL" translate-values="{nb: {{formData.level}}}"></div><form name="questionsForm" novalidate ng-submit="doNext(\'questionsForm\')"><div class="list" ng-init="setForm(questionsForm, \'questionsForm\')"><ion-checkbox ng-repeat="question in formData.questions" ng-model="question.checked" ng-required="isRequired()"><span style="white-space: normal">{{question.value | translate}}</span></ion-checkbox><div class="item item-icon-right no-padding-top"><a class="dark"><i class="icon ion-android-add" ng-click="addQuestion()"></i></a><div class="list list-inset"><label class="item item-input"><input type="text" placeholder="{{\'ACCOUNT.SECURITY.ADD_QUESTION\' | translate}}" ng-model="formData.addQuestion"></label></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_RESET</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-disabled="questionsForm.$invalid" type="submit" translate>COMMON.BTN_NEXT <i class="icon ion-arrow-right-a"></i></button></div></form></ion-content>'),e.put("templates/wallet/slides/slides_saveID_2.html",'<ion-content class="has-header padding"><h3 translate>ACCOUNT.SECURITY.SAVE_ID</h3><form name="answersForm" novalidate ng-submit="doNext(\'answersForm\')"><div class="list" ng-init="setForm(answersForm, \'answersForm\')"><ng-repeat ng-repeat="question in formData.questions |filter:true:checked"><label class="item item-input item-text-wrap {{smallscreen ? \'item-stacked-label\' : \'item-floating-label\'}}" ng-class="{\'item-input-error\': answersForm.$submitted && answersForm[\'question{{$index}}\'].$invalid}"><span class="input-label" style="width: 100%; max-width: inherit">{{question.value | translate}}</span> <input type="text" name="question{{$index}}" placeholder="{{smallscreen ? \'\' : question.value | translate}}" ng-model="question.answer" required></label><div class="form-errors" ng-show="answersForm.$submitted && answersForm[\'question{{$index}}\'].$error" ng-messages="answersForm[\'question{{$index}}\'].$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></ng-repeat><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-clear button-dark" ng-click="restore()" type="button" translate>ACCOUNT.SECURITY.BTN_CLEAN</button> <button class="button button-positive ink" type="submit" translate>COMMON.BTN_CONTINUE <i class="icon ion-android-archive"></i></button></div></div></form></ion-content>'),e.put("templates/wot/tabs/tab_given_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.receivedCertifications=false; motions.avatar=false"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_given_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-select-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-if="canSelectAndCertify || $root.tour" ng-click="selectAndCertify()"><i class="icon ion-plus"></i></button></div></ion-view>'),e.put("templates/wot/tabs/tab_lookup.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showActionsPopover($event)"><i class="icon ion-android-funnel"></i></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'templates/wot/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("templates/wot/tabs/tab_received_certifications.html",'<ion-view><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop" ng-click="doUpdate()"></button></ion-nav-buttons><ion-content ng-init="motions.givenCertifications=false; motions.avatar=false;" class="has-header"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'templates/wot/items_received_certifications.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button id="fab-certify" class="button button-fab button-fab-bottom-right button-energized-900 spin" ng-click="certify()" ng-if="(formData.hasSelf && canCertify && !alreadyCertified) || $root.tour"><i class="icon ion-ribbon-b"></i></button></div></ion-view>')}]),angular.module("cesium.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been cancelled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",
+DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("en",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Public key",MEMBER:"Member",BLOCK:"Block",BTN_OK:"OK",BTN_YES:"Yes",BTN_NO:"No",BTN_SEND:"Send",BTN_SEND_MONEY:"Transfer money",BTN_SEND_MONEY_SHORT:"Transfer",BTN_SAVE:"Save",BTN_YES_SAVE:"Yes, Save",BTN_YES_CONTINUE:"Yes, Continue",BTN_SHOW:"Show",BTN_SHOW_PUBKEY:"Show key",BTN_RELATIVE_UNIT:"Display amounts in UD?",BTN_BACK:"Back",BTN_NEXT:"Next",BTN_IMPORT:"Import",BTN_CANCEL:"Cancel",BTN_CLOSE:"Close",BTN_LATER:"Later",BTN_LOGIN:"Sign In",BTN_LOGOUT:"Logout",BTN_ADD_ACCOUNT:"New Account",BTN_SHARE:"Share",BTN_EDIT:"Edit",BTN_DELETE:"Delete",BTN_ADD:"Add",BTN_SEARCH:"Search",BTN_REFRESH:"Refresh",BTN_RETRY:"Retry",BTN_START:"Start",BTN_CONTINUE:"Continue",BTN_CREATE:"Create",BTN_UNDERSTOOD:"I understand",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Features tour",BTN_HELP_TOUR_SCREEN:"Discover this screen",BTN_DOWNLOAD:"Download",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Download account statement",BTN_MODIFY:"Modify",CHOOSE_FILE:"Drag your file<br/>or click to select",DAYS:"days",NO_ACCOUNT_QUESTION:"Not a member yet? Register now!",SEARCH_NO_RESULT:"No result found",LOADING:"Loading...",LOADING_WAIT:"Loading...<br/><small>(Waiting for node availability)</small>",SEARCHING:"Searching...",FROM:"From",TO:"To",COPY:"Copy",LANGUAGE:"Language",UNIVERSAL_DIVIDEND:"Universal dividend",UD:"UD",DATE_PATTERN:"MM/DD/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"MM/DD/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonym",ENABLE:"Enabled",DISABLE:"Disabled",RESULTS_LIST:"Results:",RESULTS_COUNT:"{{count}} results",EXECUTION_TIME:"executed in {{duration|formatDurationMs}}",SHOW_VALUES:"Display values openly?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit at {{limit}})",POPOVER_SHARE:{TITLE:"Share",SHARE_ON_TWITTER:"Share on Twitter",SHARE_ON_FACEBOOK:"Share on Facebook",SHARE_ON_DIASPORA:"Share on Diaspora*",SHARE_ON_GOOGLEPLUS:"Share on Google+"},FILE:{DATE:"Date:",TYPE:"Type:",SIZE:"Size:",VALIDATING:"Validating..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choose source:",BTN_PICTURE_GALLERY:"Gallery",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Registry",CURRENCY:"Currency",ACCOUNT:"My Account",WALLETS:"My wallets",TRANSFER:"Transfer",SCAN:"Scan",SETTINGS:"Settings",NETWORK:"Network",TRANSACTIONS:"My transactions"},ABOUT:{TITLE:"About",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",LATEST_RELEASE:"There is a <b>newer version</ b> of {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Please update {{'COMMON.APP_NAME' | translate}} (latest version: <b>v{{version}}</b>)",CODE:"Source code:",OFFICIAL_WEB_SITE:"Official web site:",DEVELOPERS:"Developers:",FORUM:"Forum:",PLEASE_REPORT_ISSUE:"Please report any issue to us!",REPORT_ISSUE:"Report an issue",BTN_OPEN_DEV_WINDOW:"Open the debug window"},HOME:{TITLE:"Cesium",WELCOME:"Welcome to the Cesium Application!",MESSAGE:"Follow your {{currency|abbreviate}} wallets easily",BTN_CURRENCY:"Explore currency",BTN_ABOUT:"about",BTN_HELP:"Help",REPORT_ISSUE:"Report an issue",NOT_YOUR_ACCOUNT_QUESTION:'You do not own the account <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconnect this account",CONNECTION_ERROR:'Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class="positive" ng-click="doQuickFix(\'settings\')">in the settings</a>.'},SETTINGS:{TITLE:"Settings",DISPLAY_DIVIDER:"Display",STORAGE_DIVIDER:"Storage",NETWORK_SETTINGS:"Network",PEER:"Duniter peer address",PEER_SHORT:"Peer address",PEER_CHANGED_TEMPORARY:"Address used temporarily",USE_LOCAL_STORAGE:"Enable local storage",USE_LOCAL_STORAGE_HELP:"Allows you to save your settings",WALLETS_SETTINGS:"My wallets",USE_WALLETS_ENCRYPTION:"Secure the list",USE_WALLETS_ENCRYPTION_HELP:"Enables you to encrypt the list of your wallets. Authentication required to access it.",ENABLE_HELPTIP:"Enable contextual help tips",ENABLE_UI_EFFECTS:"Enable visual effects",HISTORY_SETTINGS:"Account operations",DISPLAY_UD_HISTORY:"Display produced dividends?",TX_HISTORY_AUTO_REFRESH:"Enable automatic refresh?",TX_HISTORY_AUTO_REFRESH_HELP:"Updates the list of operations to each new block.",AUTHENTICATION_SETTINGS:"Authentication",KEEP_AUTH:"Expiration of authentication",KEEP_AUTH_SHORT:"Expiration",KEEP_AUTH_HELP:"Define when authentication is cleared from memory.",KEEP_AUTH_OPTION:{NEVER:"After each operation",SECONDS:"After {{value}}s of inactivity",MINUTE:"After {{value}}min of inactivity",MINUTES:"After {{value}}min of inactivity",HOUR:"After {{value}}h of inactivity",ALWAYS:"At the end of the session"},KEYRING_FILE:"Keyring file",KEYRING_FILE_HELP:'Allow auto-connect at startup, or to authenticate (only if "Expiration of authentication" is "at the end of the session"',REMEMBER_ME:"Remember me ?",REMEMBER_ME_HELP:"Allows to remain identified from one session to another, keeping the public key locally.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restore default values",EXPERT_MODE:"Enable expert mode",EXPERT_MODE_HELP:"Allow to see more details",BLOCK_VALIDITY_WINDOW:"Block uncertainty time",BLOCK_VALIDITY_WINDOW_SHORT:"Time of uncertainty",BLOCK_VALIDITY_WINDOW_HELP:"Time to wait before considering an information is validated",BLOCK_VALIDITY_OPTION:{NONE:"No delay",N:"{{time | formatDuration}} ({{count}} blocks)"},POPUP_PEER:{TITLE:"Duniter peer",HOST:"Address",HOST_HELP:"Address: server:port",USE_SSL:"Secured?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Peer's list"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Block #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Current block",TITLE:"Block #{{number|formatInteger}}",COMPUTED_BY:"Computed by",SHOW_RAW:"Show raw data",TECHNICAL_DIVIDER:"Technical informations",VERSION:"Format version",HASH:"Computed hash",UNIVERSAL_DIVIDEND_HELP:"Money co-produced by each of the {{membersCount}} members",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Minimal difficulty",POW_MIN_HELP:"Difficulty imposed in calculating hash",DATA_DIVIDER:"Data",IDENTITIES_COUNT:"New identities",JOINERS_COUNT:"Joiners",ACTIVES_COUNT:"Renewals",ACTIVES_COUNT_HELP:"Members having renewed their membership",LEAVERS_COUNT:"Leavers",LEAVERS_COUNT_HELP:"Members that now refused certification",EXCLUDED_COUNT:"Excluded members",EXCLUDED_COUNT_HELP:"Old members, excluded because missing membreship renewal or certifications",REVOKED_COUNT:"Revoked identities",REVOKED_COUNT_HELP:"These accounts may no longer be member",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Change",TX_OUTPUT_UNLOCK_CONDITIONS:"Unlock conditions",TX_OUTPUT_OPERATOR:{AND:"and",OR:"or"},TX_OUTPUT_FUNCTION:{SIG:"<b>Sign</b> of the public key",XHX:"<b>Password</b>, including SHA256 =",CSV:"Blocked during",CLTV:"Bloqué until"}},LOOKUP:{TITLE:"Blocks",NO_BLOCK:"No bloc",LAST_BLOCKS:"Last blocks:",BTN_COMPACT:"Compact"}},CURRENCY:{VIEW:{TITLE:"Currency",TAB_CURRENCY:"Currency",TAB_WOT:"Web of trust",TAB_NETWORK:"Network",TAB_BLOCKS:"Blocks",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} is a <b>libre money</b>, started {{firstBlockTime | formatFromNow}}. It currently counts <b>{{N}} members </b>, who produce and collect a <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a> (DU), each {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Network rules",CURRENCY_NAME:"Currency name",MEMBERS:"Members count",MEMBERS_VARIATION:"Variation since {{duration|formatDuration}} (since last UD)",MONEY_DIVIDER:"Money",MASS:"Monetary mass",SHARE:"Money share",UD:"Universal Dividend",C_ACTUAL:"Current growth",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Common difficulty",MONEY_RULES_DIVIDER:"Rules of currency",C_RULE:"Theoretical growth target",UD_RULE:"Universal dividend (formula)",DT_REEVAL:"Period between two re-evaluation of the UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Every <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date of first reevaluation of the UD",SIG_QTY_RULE:"Required number of certifications to become a member",SIG_STOCK:"Maximum number of certifications sent by a member",SIG_PERIOD:"Minimum delay between 2 certifications sent by one and the same issuer.",SIG_WINDOW:"Maximum delay before a certification will be treated",SIG_VALIDITY:"Lifetime of a certification that has been treated",MS_WINDOW:"Maximum delay before a pending membership will be treated",MS_VALIDITY:"Lifetime of a membership that has been treated",STEP_MAX:"Maximum distance between a newcomer and each referring members.",WOT_RULES_DIVIDER:"Rules for web of trust",SENTRIES:"Required number of certifications (given <b>and</b> received) to become a referring member",SENTRIES_FORMULA:"Required number of certifications to become a referring member (formula)",XPERCENT:"Minimum percent of referring member to reach to match the distance rule",AVG_GEN_TIME:"The average time between 2 blocks",CURRENT:"current",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Display all rules?",BTN_SHOW_LICENSE:"Show license",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Currency license",BTN_DOWNLOAD:"Download file",NO_LICENSE_FILE:"License file not found."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Loading peers...",NODE_ADDRESS:"Address:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"Pre-release (latest stable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> available",WS2PID:"Identifier:",PRIVATE_ACCESS:"Private access",POW_PREFIX:"Proof of work prefix:",ENDPOINTS:{BMAS:"Secure endpoint (SSL)",BMATOR:"TOR endpoint",WS2P:"WS2P endpoint",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."}},PEER:{PEERS:"Peers",SIGNED_ON_BLOCK:"Signed on block",MIRROR:"mirror",MIRRORS:"Mirrors",MIRROR_PEERS:"Mirror peers",PEER_LIST:"Peer's list",MEMBERS:"Members",MEMBER_PEERS:"Member peers",ALL_PEERS:"All peers",DIFFICULTY:"Difficulty",API:"API",CURRENT_BLOCK:"Block #",POPOVER_FILTER_TITLE:"Filter",OFFLINE:"Offline",OFFLINE_PEERS:"Offline peers",BTN_SHOW_PEER:"Show peer",VIEW:{TITLE:"Peer",OWNER:"Owned by ",SHOW_RAW_PEERING:"See peering document",SHOW_RAW_CURRENT_BLOCK:"See current block (raw format)",LAST_BLOCKS:"Last blocks",KNOWN_PEERS:"Known peers :",GENERAL_DIVIDER:"General information",ERROR:{LOADING_TOR_NODE_ERROR:"Could not get peer data, using the TOR network.",LOADING_NODE_ERROR:"Could not get peer data"}}},WOT:{SEARCH_HELP:"Search (member or public key)",SEARCH_INIT_PHASE_WARNING:"During the pre-registration phase, the search for pending registrations <b>may be long</b>. Please wait ...",REGISTERED_SINCE:"Registered on",REGISTERED_SINCE_BLOCK:"Registered since block #",NO_CERTIFICATION:"No validated certification",NO_GIVEN_CERTIFICATION:"No given certification",NOT_MEMBER_PARENTHESIS:"(non-member)",IDENTITY_REVOKED_PARENTHESIS:"(identity revoked)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(being revoked)",EXPIRE_IN:"Expires",NOT_WRITTEN_EXPIRE_IN:"Deadline<br/>treatment",EXPIRED:"Expired",PSEUDO:"Pseudonym",SIGNED_ON_BLOCK:"Emitted on block #{{block}}",WRITTEN_ON_BLOCK:"Written on block #{{block}}",GENERAL_DIVIDER:"General information",NOT_MEMBER_ACCOUNT:"Non-member account",NOT_MEMBER_ACCOUNT_HELP:"This is a simple wallet, with no pending membership application.",TECHNICAL_DIVIDER:"Technical data",BTN_CERTIFY:"Certify",BTN_YES_CERTIFY:"Yes, certify",BTN_SELECT_AND_CERTIFY:"New certification",ACCOUNT_OPERATIONS:"Account operations",VIEW:{POPOVER_SHARE_TITLE:"Identity {{title}}"},LOOKUP:{TITLE:"Registry",NEWCOMERS:"New members:",NEWCOMERS_COUNT:"{{count}} members",PENDING:"Pending registrations:",PENDING_COUNT:"{{count}} pending registrations",REGISTERED:"Registered {{sigDate | formatFromNow}}",MEMBER_FROM:"Member since {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Latest members",BTN_PENDING:"Pending registrations",SHOW_MORE:"Show more",SHOW_MORE_COUNT:"(current limit to {{limit}})",NO_PENDING:"No pending registrations.",NO_NEWCOMERS:"No members."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Search"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Received certifications",LIST:"Details of received certifications",PENDING_LIST:"Pending certifications",RECEIVED:"Received certifications",RECEIVED_BY:"Certifications received by {{uid}}",ERROR:"Received certifications in error",SENTRY_MEMBER:"Referring member"},OPERATIONS:{TITLE:"{{uid}} - Operations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications sent",SUMMARY:"Sent certifications",LIST:"Details of sent certifications",PENDING_LIST:"Pending certifications",SENT:"Sent certifications",SENT_BY:"Certifications sent by {{uid}}",ERROR:"Sent certifications with error"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Login',SCRYPT_FORM_HELP:"Please enter your credentials. <br> Remember to check the public key for your account.",PUBKEY_FORM_HELP:"Please enter a public account key:",FILE_FORM_HELP:"Choose the keychain file to use:",SCAN_FORM_HELP:"Scan the QR code of a wallet.",SALT:"Secret identifier",SALT_HELP:"Secret identifier",SHOW_SALT:"Display secret identifier?",PASSWORD:"Password",PASSWORD_HELP:"Password",PUBKEY_HELP:"Public key or pseudonym",NO_ACCOUNT_QUESTION:"Don't have an account yet?",HAVE_ACCOUNT_QUESTION:"Already have an account ?",CREATE_ACCOUNT:"Create an account",CREATE_FREE_ACCOUNT:"Create a free account",FORGOTTEN_ID:"Forgot password?",ASSOCIATED_PUBKEY:"Public key :",BTN_METHODS:"Other methods",BTN_METHODS_DOTS:"Change method...",METHOD_POPOVER_TITLE:"Methods",MEMORIZE_AUTH_FILE:"Memorize this keychain during the navigation session",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> You were <b>logout</ b> automatically, due to prolonged inactivity.',BTN_RELOGIN:"Sign In",IDLE_WARNING:"You will be logout... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Secret identifier and password",SCRYPT_ADVANCED:"Advanced salt",FILE:"Keychain file",PUBKEY:"Public key or pseudonym",SCAN:"Scan a QR code"},SCRYPT:{SIMPLE:"Light salt",DEFAULT:"Standard salt",SECURE:"Secure salt",HARDEST:"Hardest salt",EXTREME:"Extreme salt",USER:"Personal value",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Expected file format: <b>.dunikey</b> (type PubSec). Other formats are under development (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentication',BTN_AUTH:"Authenticate",GENERAL_HELP:"Please authenticate yourself:",EXPECTED_UID_HELP:'Please authenticate to the account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Please authenticate to the wallet <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scan the QR code of the <b>private key</b> of the wallet."},ACCOUNT:{TITLE:"My Account",BALANCE:"Balance",LAST_TX:"Latest validated transactions",BALANCE_ACCOUNT:"Account balance",NO_TX:"No transaction",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(current limit to {{fromTime|medianFromNowShort}})",PENDING_TX:"Pending transactions",VALIDATING_TX:"Transactions being validated",ERROR_TX:"Transaction not executed",ERROR_TX_SENT:"Sent transactions",PENDING_TX_RECEIVED:"Transactions awaiting receipt",EVENTS:"Events",OUT_DISTANCED:"Your current certifications come from a group too isolated from the <a ng-click=\"showHelpModal('wot')\"> Web of Trust</a> (WoT): the <a ng-click=\"showHelpModal('distance_rule')\">maximum distance rule</a> is violated.<br/>You must obtain certifications from another area of the Web of Trust, or wait for it to tighten.",WAITING_MEMBERSHIP:"Membership application sent. Waiting validation.",WAITING_CERTIFICATIONS:"You need {{needCertificationCount}} certification(s) to become a member and produce the <a ng-click=\"showHelpModal('ud')\">Universal Dividend</a>. Your account is however already operational, to receive and send payments.",WAITING_CERTIFICATIONS_HELP:'To get your certifications, only request members <b>who know you enough</b>, as required by <a ng-click="showLicenseModal()">the currency license</a> that you have accepted.<br/>If you do not know enough members, let them know on <a ng-click="openLink($event, $root.settings.userForumUrl)">the user forum</a>.',WILL_MISSING_CERTIFICATIONS:"You will <b>lack certifications</b> soon (at least {{willNeedCertificationCount}} more are needed)",WILL_NEED_RENEW_MEMBERSHIP:"Your membership <b>will expire {{membershipExpiresIn|formatDurationTo}}</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a> before then.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"You are no longer a member because your membership <b>has been canceled</b> for lack of certifications. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"No membership application pending. If you'd like to <b>become a member</ b>, please <a ng-click=\"doQuickFix('membership')\">send the membership application</a>.",CERTIFICATION_COUNT:"Received certifications",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Stock of certifications to give",BTN_RECEIVE_MONEY:"Receive",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Switch to another identity...",BTN_FIX_MEMBERSHIP:"Resubmit membership request...",BTN_MEMBERSHIP_RENEW:"Renew membership",BTN_MEMBERSHIP_RENEW_DOTS:"Renew membership...",BTN_MEMBERSHIP_OUT_DOTS:"Revoke membership...",BTN_SECURITY_DOTS:"Sign-in and security...",BTN_SHOW_DETAILS:"Display technical data",LOCKED_OUTPUTS_POPOVER:{TITLE:"Locked amount",DESCRIPTION:"Here are the conditions for unlocking this amount:",DESCRIPTION_MANY:"This transaction consists of several parts, of which the unlock conditions are:",LOCKED_AMOUNT:"Conditions for the amount:"},NEW:{TITLE:"Registration",INTRO_WARNING_TIME:"Creating an account on {{name|capitalize}} is very simple. Please take sufficient time to do this correctly (not to forget the usernames, passwords, etc.).",INTRO_WARNING_SECURITY:"Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",INTRO_WARNING_SECURITY_HELP:"Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",INTRO_HELP:"Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",REGISTRATION_NODE:"Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",REGISTRATION_NODE_HELP:"If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",SELECT_ACCOUNT_TYPE:"Choose the type of account to create:",MEMBER_ACCOUNT:"Member account",MEMBER_ACCOUNT_TITLE:"Create a member account",MEMBER_ACCOUNT_HELP:"If you are not yet registered as an individual (one account possible per individual).",WALLET_ACCOUNT:"Simple wallet",WALLET_ACCOUNT_TITLE:"Create a wallet",WALLET_ACCOUNT_HELP:"If you represent a company, association, etc. or simply need an additional wallet. No universal dividend will be created by this account.",SALT_WARNING:"Choose a secret identifier.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this identifier</b>.<br/>If lost, there are no means to retrieve it!",PASSWORD_WARNING:"Choose a password.<br/>You need it for each connection to this account.<br/><br/><b>Make sure to remember this password</b>.<br/>If lost, there are no means to retrieve it!",PSEUDO_WARNING:"Choose a pseudonym.<br/>It may be used by other people to find you more easily.<br/><br/>.Use of <b>commas, spaces and accents</b> is not allowed.<br/><div class='hidden-xs'><br/>Example: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonym",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confirm",SALT_CONFIRM_HELP:"Confirm the secret identifier",PASSWORD_CONFIRM:"Confirm",PASSWORD_CONFIRM_HELP:"Confirm the password",SLIDE_6_TITLE:"Confirmation:",COMPUTING_PUBKEY:"Computing...",LAST_SLIDE_CONGRATULATION:"You completed all required fields.<br/><b>You can send the account creation request</b>.<br/><br/>For information, the public key below identifies your future account.<br/>It can be communicated to third parties to receive their payment.<br/>Once your account has been approved, you can find this key under <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> your secret identifier, password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to send this account creation request?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> your password and pseudonym can not be changed.<br/><b>Make sure you always remember it!</b><br/><b>Are you sure</b> you want to continue?',CHECKING_PSEUDO:"Checking...",PSEUDO_AVAILABLE:"This pseudonym is available",PSEUDO_NOT_AVAILABLE:"This pseudonym is not available",INFO_LICENSE:"To be able to adhere to the currency, we ask you to kindly read and accept this license.",BTN_ACCEPT:"I accept",BTN_ACCEPT_LICENSE:"I accept the license"},POPUP_REGISTER:{TITLE:"Enter a pseudonym",HELP:"A pseudonym is needed to let other members find you."},SELECT_IDENTITY_MODAL:{TITLE:"Identity selection",HELP:'Several <b>different identities</b> have been sent, for the public key <span class="gray"> <i class="ion-key"></i> {{pubkey | formatPubkey}}</span>.<br/>Please select the identity to use:'},SELECT_WALLET_MODAL:{TITLE:"Wallet selection"},WALLET_LIST:{TITLE:"My wallets",BTN_NEW:"Add a wallet",BTN_DOWNLOAD:"Download the list",BTN_IMPORT_FILE_DOTS:"Import from a file...",NO_WALLET:"No secondary wallet",BTN_DELETE:"Remove a secondary wallet...",BTN_RENAME:"Rename the wallet",EXPORT_FILENAME:"my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total: ",EDIT_POPOVER:{TITLE:"Rename the wallet",HELP:"Fill in the new name",NAME_HELP:"Wallet name"},IMPORT_MODAL:{TITLE:"Import secondary wallets",HELP:"To <b>import secodnary wallets</b>, please drag the file in the box below, or click in the box to search for a file.",WALLET_COUNT:"<b>{{count}}</b> new wallet{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"No new wallet"}},SECURITY:{ADD_QUESTION:"Add custom question",BTN_CLEAN:"Clean",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Save a revocation file",DOWNLOAD_REVOKE_HELP:"Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",GENERATE_KEYFILE:"Generate my keychain file ...",GENERATE_KEYFILE_HELP:"Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",KEYFILE_FILENAME:"keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Register as member...",MEMBERSHIP_IN_HELP:"Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",SEND_IDENTITY:"Publish identity...",SEND_IDENTITY_HELP:"Allows you to associate a pseudonym to this account, but <b>without applying for membership</b> to become a member. This is not very useful because the validity of this pseudonym association is limited in time.",HELP_LEVEL:"Choose <strong> at least {{nb}} questions </strong> :",LEVEL:"Security level",LOW_LEVEL:'Low <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Medium <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"What was your best friend's name when you were a teen ?",QUESTION_2:"What was the name of your first pet ?",QUESTION_3:"What is the first meal you have learned to cook ?",QUESTION_4:"What is the first movie you saw in the cinema?",QUESTION_5:"Where did you go the first time you flew ?",QUESTION_6:"What was your favorite elementary school teacher's name  ?",QUESTION_7:"What would you consider the ideal job ?",QUESTION_8:"Which children's book do you prefer?",QUESTION_9:"What was the model of your first vehicle?",QUESTION_10:"What was your nickname when you were a child ?",QUESTION_11:"What was your favorite movie character or actor when you were a student ?",QUESTION_12:"What was your favorite singer or band when you were a student ?",QUESTION_13:"In which city did your parents meet ?",QUESTION_14:"What was the name of your first boss ?",QUESTION_15:"What is the name of the street where you grew up ?",QUESTION_16:"What is the name of the first beach where you go swim ?",QUESTION_17:"QWhat is the first album you bought ?",QUESTION_18:"What is the name of your favorite sport team ?",QUESTION_19:"What was your grand-father's job ?",RECOVER_ID:"Recover my password...",RECOVER_ID_HELP:"If you have a <b>backup file of your identifiers</b>, you can find them by answering your personal questions correctly.",REVOCATION_WITH_FILE:"Rekoke my member account...",REVOCATION_WITH_FILE_DESCRIPTION:"If you have <b>permanently lost your member account credentials (or if account security is compromised), you can use <b>the revocation file</b> of the account <b>to quit the Web Of Trust</b>.",REVOCATION_WITH_FILE_HELP:"To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",REVOCATION_WALLET:"Revoke this account immediately",REVOCATION_WALLET_HELP:"Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Save my credentials...",SAVE_ID_HELP:"Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",STRONG_LEVEL:'Strong <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Account and security",KEYFILE:{PUBSEC_FORMAT:"PubSec format.",PUBSEC_FORMAT_HELP:"This file format is compatible in particular with Cesium and Gannonce. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",WIF_FORMAT:"Wallet Import Format (WIF)",WIF_FORMAT_HELP:"This format is used in particular by paper wallets. Your keychain is stored <b>without encryption</b>: anyone with a copy of this file will be able to empty your account.",EWIF_FORMAT:"Encrypted Wallet Import Format (WIF)",EWIF_FORMAT_HELP:"This format is used in particular by paper wallets. However, <b>the keychain is encrypted</b> from a passphrase of your choice.",PASSWORD_POPUP:{TITLE:"Keychain file encrypted",HELP:"Please enter the passphrase:",PASSWORD_HELP:"Passphrase"},ERROR:{BAD_PASSWORD:"Bad passphrase",BAD_CHECKSUM:"Bad checksum"}}},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Transfer",SUB_TITLE:"Transfer money",SUB_TITLE_ALL:"Empty the account",FROM:"From",TO:"To",AMOUNT:"Amount",AMOUNT_HELP:"Amount",COMMENT:"Comment",COMMENT_HELP:"Comment (optional)",BTN_SEND:"Send",BTN_ADD_COMMENT:"Add a comment",REST:"Rest of account",REST_TO:"to",WARN_COMMENT_IS_PUBLIC:"Please note that <b>comments are public</b> (not encrypted).",MODAL:{TITLE:"Transfer"}},ERROR:{UNKNOWN_URI_FORMAT:"Unknown URI format",PUBKEY_INVALID_CHECKSUM:"Invalid public key (bad checksum).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",DOWNLOAD_KEYFILE_FAILED:"Failed to generate the keychain file.",EQUALS_TO_PSEUDO:"Must be different from pseudonym",EQUALS_TO_SALT:"Must be different from secret identifier",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"This field value is too short.",FIELD_TOO_SHORT_WITH_LENGTH:"Value is too short (min {{minLength]] characters).",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_MIN:"Minimum value: {{min}}",FIELD_MAX:"Maximal value: {{max}}",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",FIELD_NOT_EMAIL:"Email adress not valid",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous identifier.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency. Please retry later.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",INVALID_PUBKEY_CHECKSUM:"Invalid checksum.",IDENTITY_REVOKED:"This identity <b>has been revoked</b>. It can no longer become a member.",IDENTITY_REVOKED_WITH_TIME:"This identity <b>has been revoked {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). It can no longer become a member.",IDENTITY_PENDING_REVOCATION:"The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",IDENTITY_NOT_FOUND:"Identity not found",IDENTITY_TX_FAILED:"Error while getting identity's transactions",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_REVOKED:"Your identity has been <b>revoked</b>: neither your pseudonym nor your public key will be used in the future for a member account.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",AUTH_REQUIRED:"Authentication required.",AUTH_INVALID_PUBKEY:"The public key does not match the connected account.",AUTH_INVALID_SCRYPT:"Invalid username or password.",AUTH_INVALID_FILE:"Invalid keychain file.",AUTH_FILE_ERROR:"Failed to open keychain file",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member (or old member)</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",GET_BLOCK_FAILED:"Error while getting block",INVALID_BLOCK_HASH:"Block not found (incorrect hash)",DOWNLOAD_REVOCATION_FAILED:"Error while downloading revocation file.",REVOCATION_FAILED:"Error while trying to revoke the identity.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Wrong secret identifier or password ",RECOVER_ID_FAILED:"Could not recover password",LOAD_FILE_FAILED:"Unable to load file",NOT_VALID_REVOCATION_FILE:"Invalid revocation file (wrong file format)",NOT_VALID_SAVE_ID_FILE:"Invalid credentials backup file (wrong file format)",NOT_VALID_KEY_FILE:"Invalid keychain file (unrecognized format)",EXISTING_ACCOUNT:"Your identifiers correspond to an already existing account, whose <a ng-click=\"showHelpModal('pubkey')\">public key</a> is:",EXISTING_ACCOUNT_REQUEST:"Please modify your credentials so that they correspond to an unused account.",GET_LICENSE_FILE_FAILED:"Unable to get license file",CHECK_NETWORK_CONNECTION:"No peer appears to be accessible.<br/><br/>Please <b>check your Internet connection</b>.",ISSUE_524_TX_FAILED:"Failed to transfer.<br/><br/>A message has been sent to developers to help solve the problem.<b>Thank you for your help</b>.",ADD_SECONDARY_WALLET_FAILED:"Unable to add secondary wallet.",UPDATE_WALLET_LIST_FAILED:"Unable to refresh the list of wallets.",LOAD_WALLET_LIST_FAILED:"Unable to load the list of wallets.",SAVE_WALLET_LIST_FAILED:"Unable to save the list of wallets.",COULD_NOT_ADD_MAIN_WALLET:"This wallet <b>is the main account</b> with which you are connected. Unable to add it as a secondary wallet.",COULD_NOT_ADD_EXISTING_WALLET:"Wallet already existing in the list.",UNKNOWN_WALLET_ID:"Unknown secondary wallet.",RESTORE_WALLET_LIST_FAILED:"Unable to restore the list of wallets.",INVALID_FILE_FORMAT:"Invalid file format.",SAME_TX_RECIPIENT:"The recipient must be different from the issuer."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Identity successfully signed",NOT_ENOUGH_CREDIT:"Not enough credit",TRANSFER_SENT:"Transfer request successfully sent",COPY_TO_CLIPBOARD_DONE:"Copy succeeded",MEMBERSHIP_OUT_SENT:"Membership revocation sent",NOT_NEED_MEMBERSHIP:"Already a member.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"This identity will soon lack certification (at least {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"This identity did not send a membership request. She will have to if she wishes to become a member.",HAS_ALTERNATIVE_IDENTITIES:"There are <b>multiple identities</b> attached to this public key. <b>Before any certification</b>, please <a ng-click=\"doQuickFix('showSelectIdentities')\">check other identities</a> to choose the correct one, or contact the wallet owner.",REVOCATION_SENT:"Revocation sent successfully",REVOCATION_SENT_WAITING_PROCESS:"Revocation <b>has been sent successfully</b>. It is awaiting processing.",FEATURES_NOT_IMPLEMENTED:"This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",EMPTY_TX_HISTORY:"No operations to export"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Warning</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Security warning</b>',CERTIFY_RULES_TITLE_UID:"Certify {{uid}}",CERTIFY_RULES:'<b class="assertive">Don\'t certify an account</b> if you believe that: <ul><li>1.) the issuers identity might be faked.<li>2.) the issuer already has another certified account.<li>3.) the issuer purposely or carelessly violates rule 1 or 2 (he certifies faked or double accounts).</ul></small><br/>Are you sure you want to certify this identity?',FULLSCREEN:"View the application in full screen?",EXIT_APP:"Close the application ?",TRANSFER:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",TRANSFER_ALL:"<b>Transfer summary:</b><br/><br/><ul><li> - From: <b>{{from}}</b></li><li> - To: <b>{{to}}</b></li><li> - Amount: <b>{{amount}} {{unit}}</b></li><li> - Comment: <i>{{comment}}</i></li><br/><li> - Rest : <b>{{restAmount}} {{unit}}</b> to <b>{{restTo}}</b></li></ul><br/><b>Are-you sure you want to do this transfer?</b>",MEMBERSHIP_OUT:"This operation is <b>irreversible</b>.<br/></br/><b>Are you sure you want to terminate your membership?</b>",MEMBERSHIP_OUT_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>terminate your membership</b>?",LOGIN_UNUSED_WALLET_TITLE:"Typing error?",LOGIN_UNUSED_WALLET:"The account seems to be <b>inactive</b>.<br/><br/>It's probably a <b>typing error</b> when sign in. Please try again, checking that <b>public key is yours<b/>.",FIX_IDENTITY:"The pseudonym <b>{{uid}}</b> will be published again, replacing the old publication that has expired.<br/></br/><b>Are you sure</b> you want to continue?",FIX_MEMBERSHIP:"Your application for membership will be sent.<br/></br/><b>Are you sure?</b>",MEMBERSHIP:"Your membership request will be sent. <br/></br/><b>Are you sure?</b>",RENEW_MEMBERSHIP:"Your membership will be renewed.<br/></br/><b>Are you sure?</b>",REVOKE_IDENTITY:"You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated pseudonym <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to revoke this identity?",REVOKE_IDENTITY_2:"This operation is <b>irreversible</b>!<br/><br/>Are you sure you want to <b>revoke this identity</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Your membership does not need to be renewed (it will only expire in {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Are you sure you</b> want to renew your membership?",SAVE_BEFORE_LEAVE:"Do you want to <b>save your changes</b> before leaving the page?",SAVE_BEFORE_LEAVE_TITLE:"Changes not saved",LOGOUT:"Are you sure you want to logout?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",ISSUE_524_SEND_LOG:"The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"},DOWNLOAD:{POPUP_TITLE:"<b>Revocation file</b>",POPUP_REVOKE_MESSAGE:"To safeguard your account, please download the <b>account revocation document</b>. It will allow you to cancel your account (in case of account theft, ID, an incorrectly created account, etc.).<br/><br/><b>Please store it in a safe place.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The secret identifier is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it.<br/><b>Please remeber this identifier well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good secret identifier must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the secret identifier, it is use to calculate your account number (pblic key) and the private key to access it.<br/><b>Please remember it well</b>, because there is no way to recover it when lost.<br/>Furthermore, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>).<br/>It is published on the network so that other users may identify it, certify or send money to the account.<br/>A pseudonym must be unique among all members (current and past).'},LOGIN:{SECTION:"Log in",PUBKEY:"Account public key",PUBKEY_DEF:'The public key of the keychain is generated from the entered identifiers (any), but does not correspond to an account already used.<br/><b>Make sure your public key is the same as your account</b>. Otherwise, you will be logged into an account that is probably never used, as the risk of collision with an existing account is very small.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Learn more about cryptography</a> by public key.',METHOD:"Connection methods",METHOD_DEF:"Several options are available to connect to a portfolios: <br/> - The connection <b>with salt (simple or advanced)</b> mixes your password with the secret identifier, to limit the attempts of piracy<br/> - The connection <b>using public key</b> prevents you from entering your credentials, which you will be asked only when an operation need it.<br/> - The connection <b>using keychain file</b> will read the public and private keys of the account from a file without the need to enter credentials. Several file formats are possible."},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"A public key always identifies a wallet. It may identify a member. In Cesium it is calculated using the secret identifier and the password.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.',WOT:"Web of Trust (WoT)",WOT_DEF:"The Web of Trust is made up of all the members of the currency, and the links of certification which connect them.",DISTANCE_RULE:"Distance rule",DISTANCE_RULE_DEF:"The rule of distance defines <b>a maximum distance to meet</b> between an applicant and a minimum number of referring member. This distance is calculated using the certification links."},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"The option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> allows discovery of <b>network's state<b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> (in green) indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_RECEIVED_CERTIFICATIONS:"Click here to review the details of your <b>received certifications</b>.",WALLET_GIVEN_CERTIFICATIONS:"Click here to review the details of your <b>given certifications</b>.",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_PUBKEY:"This is your account public key. You can communicate it to a third party so that it more easily identifies your account.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> allow access to transactions history, and send new payments.",MENU_BTN_TX:"View the history of <b>your transactions</b> here and send new payments.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}},API:{COMMON:{LINK_DOC:"API documentation",LINK_DOC_HELP:"API documentation for developers",LINK_STANDARD_APP:"Standard version",LINK_STANDARD_APP_HELP:"Open standard version of {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or contact the web site administrator."},HOME:{TITLE:"{{'COMMON.APP_NAME'|translate}} API Documentation",MESSAGE:'Welcome to the {{\'COMMON.APP_NAME\'|translate}} <b>API documentation </b>.<br/>Connect your web site to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',MESSAGE_SHORT:'Connect your websites to <a href="http://duniter.org" target="_system">Duniter</a> very easily!',DOC_HEADER:"Available services:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Online payment",TITLE_SHORT:"Online payment",SUMMARY:"Order summary:",AMOUNT:"Amount:",AMOUNTS_HELP:"Please select the amount:",NAME:"Name:",PUBKEY:"Public key of the recipient:",COMMENT:"Order reference:",NODE:"Peer address:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstration mode</b>: No payment will actually be sent during this simulation.<br/>Please use credentials: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Invalid credentials.<br/>In demonstration mode, credentials should be: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Payment sent.<br/>Redirect to <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Payment sent.<br/>Redirect to the seller's website...",CANCEL_REDIRECTING_WITH_NAME:"Payment cancelled.<br/>Redirect to <b>{{name}}</b>...",CANCEL_REDIRECTING:"Payment cancelled.<br/>Redirect to the seller's website..."},ERROR:{TRANSFER_FAILED:"Payment failed"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Calling address",PARAMETERS_DIVIDER:"Parameters",AVAILABLE_PARAMETERS:"Here is the list of al available parameters:",DEMO_DIVIDER:"Try it !",DEMO_HELP:"To test this service, click on this button. The result content will be display below.",DEMO_RESULT:"Result returned by call:",DEMO_RESULT_PEER:"Peer address used:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Success!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Canceled by user',INTEGRATE_DIVIDER:"Website integration",INTEGRATE_CODE:"Code:",INTEGRATE_RESULT:"Result preview:",INTEGRATE_PARAMETERS:"Parameters",TRANSFER:{TITLE:"Payments",DESCRIPTION:"From a site (eg online marketplace) you can delegate payment in free currency to Cesium API. To do this, simply open a page at the following address:",PARAM_PUBKEY:"Recipient's public key",PARAM_PUBKEY_HELP:"Recipient's public key (required)",PARAM_AMOUNT:"Amount",PARAM_AMOUNT_HELP:"Transaction amount (required)",PARAM_COMMENT:"Reference (or comment)",PARAM_COMMENT_HELP:"Reference or comment. You will allow for example to identify the payment in the BlockChain.",PARAM_NAME:"Name (of recipient or website)",PARAM_NAME_HELP:'The name of your website. This can be a readable name (eg "My online site"), or a web address (eg "www.MySite.com").',PARAM_REDIRECT_URL:"URL redirection",PARAM_REDIRECT_URL_HELP:'URL redirection after sending payment, after the payment has been sent. Can contain the following strings, which will be replaced by the values of the transaction: "{tx}", "{hash}", "{comment}", "{amount}" and "{pubkey}".',PARAM_CANCEL_URL:"URL if cancelled",PARAM_CANCEL_URL_HELP:'URL in case of cancellation.  Can contain the following strings, which will be replaced: "{comment}", "{amount}" and "{pubkey}".',PARAM_PREFERRED_NODE:"Preferred Duniter peer",PARAM_PREFERRED_NODE_HELP:'Peer address (URL) to use preferably ("g1.domain.com:443" or "https://g1.domain.com")',EXAMPLES_HELP:"Examples of integration:",EXAMPLE_BUTTON:"HTML Button",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pay in {{currency|abbreviate}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Custom style",EXAMPLE_BUTTON_TEXT_HELP:"Button text",EXAMPLE_BUTTON_BG_COLOR:"Background color",EXAMPLE_BUTTON_BG_COLOR_HELP:"eg: #fbc14c, yellow, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Font color",EXAMPLE_BUTTON_FONT_COLOR_HELP:"eg: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icon",EXAMPLE_BUTTON_TEXT_WIDTH:"Width",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"eg: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"No icon",EXAMPLE_BUTTON_ICON_DUNITER:"Duniter logo",EXAMPLE_BUTTON_ICON_CESIUM:"Cesium logo",EXAMPLE_BUTTON_ICON_G1_COLOR:"Ğ1 logo",EXAMPLE_BUTTON_ICON_G1_BLACK:"Ğ1 logo (outline)"}}}}),e.translations("eo-EO",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Publika ŝlosilo",MEMBER:"Membro",BLOCK:"Bloko",BTN_OK:"OK",BTN_YES:"Jes",BTN_NO:"Ne",BTN_SEND:"Sendi",BTN_SEND_MONEY:"Fari elspezon",BTN_SEND_MONEY_SHORT:"Elspezo",BTN_SAVE:"Konservi",BTN_YES_SAVE:"Jes, Konservi",BTN_YES_CONTINUE:"Jes, Daŭrigi",BTN_SHOW:"Vidi",BTN_SHOW_PUBKEY:"Afiŝi la publikan ŝlosilon",BTN_RELATIVE_UNIT:"Afiŝi la sumojn en UD?",BTN_BACK:"Reiro",BTN_NEXT:"Sekva",BTN_IMPORT:"Enporti",BTN_CANCEL:"Nuligi",BTN_CLOSE:"Fermi",BTN_LATER:"Poste",BTN_LOGIN:"Konektiĝi",BTN_LOGOUT:"Malkonektiĝo",BTN_ADD_ACCOUNT:"Nova konto",BTN_SHARE:"Diskonigi",BTN_EDIT:"Modifi",BTN_DELETE:"Forigi",BTN_ADD:"Aldoni",BTN_SEARCH:"Serĉi",BTN_REFRESH:"Aktualigi",BTN_RETRY:"Rekomenci",BTN_START:"Komenci",BTN_CONTINUE:"Daŭrigi",BTN_CREATE:"Krei",BTN_UNDERSTOOD:"Mi komprenis",BTN_OPTIONS:"Kromeblecoj",BTN_HELP_TOUR:"Gvidata vizito",BTN_HELP_TOUR_SCREEN:"Malkovri tiun ĉi paĝon",BTN_DOWNLOAD:"Elŝuti",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Elŝuti la konto-tabelon",BTN_MODIFY:"Modifi",CHOOSE_FILE:"Almetu vian dosieron <br/>aŭ klaku por elekti ĝin",DAYS:"tagoj",NO_ACCOUNT_QUESTION:"Ankoraŭ sen konto? Kreu ĝin senpage!",SEARCH_NO_RESULT:"Neniu rezulto trovita",LOADING:"Bonvolu pacienci...",LOADING_WAIT:"Bonvolu pacienci...<br/><small>(Atendado pri disponebleco de la nodo)</small>",SEARCHING:"Serĉanta...",FROM:"De",TO:"Al",COPY:"Kopii",LANGUAGE:"Lingvo",UNIVERSAL_DIVIDEND:"Universala dividendo",UD:"UD",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(malplena)",UID:"Pseŭdonimo",ENABLE:"Aktiva",DISABLE:"Malaktiva",RESULTS_LIST:"Rezultoj",RESULTS_COUNT:"{{count}} rezultoj",EXECUTION_TIME:"Plenumita en {{duration|formatDurationMs}}",SHOW_VALUES:"Afiŝi la signojn klare?",POPOVER_ACTIONS_TITLE:"Kromeblecoj",POPOVER_FILTER_TITLE:"Filtriloj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",POPOVER_SHARE:{TITLE:"Diskonigi",SHARE_ON_TWITTER:"Diskonigi ĉe Twitter",SHARE_ON_FACEBOOK:"Diskonigi ĉe Facebook",SHARE_ON_DIASPORA:"Diskonigi ĉe Diaspora*",SHARE_ON_GOOGLEPLUS:"Diskonigi ĉe Google+"},FILE:{DATE:"Dato:",TYPE:"Tipo:",SIZE:"Pezo:",VALIDATING:"Validiĝanta..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elekti la fonton:",BTN_PICTURE_GALLERY:"Bildaro",BTN_PICTURE_CAMERA:"<b>Kamerao</b>"},MENU:{HOME:"Hejmpaĝo",WOT:"Kontaro",CURRENCY:"Mono",ACCOUNT:"Mia konto",WALLETS:"Miaj monujoj",TRANSFER:"Elspezo",SCAN:"Skani",SETTINGS:"Parametroj",NETWORK:"Reto",TRANSACTIONS:"Miaj spezoj"},ABOUT:{TITLE:"Prie",LICENSE:"Programo <b>libera</b> (Licenco GNU AGPLv3).",LATEST_RELEASE:"Ekzistas <b>pli freŝdata versio</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Bonvolu ĝisdatigi {{'COMMON.APP_NAME'|translate}} (lasta versio: <b>v{{version}}</b>)",CODE:"Fonto-kodo:",OFFICIAL_WEB_SITE:"Oficiala retejo:",DEVELOPERS:"Programita de:",FORUM:"Forumo:",PLEASE_REPORT_ISSUE:"Ne hezitu sciigi al ni la renkontitajn fuŝaĵojn",REPORT_ISSUE:"Sciigi problemon",BTN_OPEN_DEV_WINDOW:"Malfermi la fenestron pri malfuŝigado"},HOME:{TITLE:"Cesium",WELCOME:"Bonvenon ĉe la programo Cesium!",MESSAGE:"Ricevu kaj sendu liberan monon {{currency|abbreviate}}",BTN_CURRENCY:"Esploru la monon {{name|abbreviate}}",BTN_ABOUT:"prie",BTN_HELP:"Reta helpo",REPORT_ISSUE:"fuŝaĵo",NOT_YOUR_ACCOUNT_QUESTION:'Vi ne posedas la konton <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Malkonektu tiun ĉi konton",CONNECTION_ERROR:'Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian retkonekton, aŭ elektu alian nodon <a class="positive" ng-click="doQuickFix(\'settings\')">ĉe la parametroj</a>.'},SETTINGS:{TITLE:"Parametroj",DISPLAY_DIVIDER:"Afiŝado",STORAGE_DIVIDER:"Stokado",NETWORK_SETTINGS:"Reto",PEER:"Adreso de la nodo Duniter",PEER_SHORT:"Adreso de la nodo",PEER_CHANGED_TEMPORARY:"Adreso provizore uzata",USE_LOCAL_STORAGE:"Aktivigi lokan stokadon",USE_LOCAL_STORAGE_HELP:"Ebligas konservi viajn parametrojn",WALLETS_SETTINGS:"Miaj monujoj",USE_WALLETS_ENCRYPTION:"Sekurigi la liston?",USE_WALLETS_ENCRYPTION_HELP:"Ebligas sekurigi la liston de viaj monujoj (per ĉifrado), postulante aŭtentigado por aliri ilin.",ENABLE_HELPTIP:"Aktivigi la rilatigajn help-vezikojn",ENABLE_UI_EFFECTS:"Aktivigi la vid-efikojn",HISTORY_SETTINGS:"Miaj spezoj",DISPLAY_UD_HISTORY:"Afiŝi la produktitajn dividendojn?",TX_HISTORY_AUTO_REFRESH:"Aktualigi aŭtomate",TX_HISTORY_AUTO_REFRESH_HELP:"Aktualigas la saldon kaj la spezojn aŭtomate, por ĉiu nova bloko de la reto.",AUTHENTICATION_SETTINGS:"Aŭtentigado",KEEP_AUTH:"Aŭtomata malaŭtentigado",KEEP_AUTH_SHORT:"Malaŭtentigado",KEEP_AUTH_HELP:"Difinas la momenton, kiam la aŭtentigado estas forviŝita de la memoro.",KEEP_AUTH_OPTION:{NEVER:"Post ĉiu ago",SECONDS:"Post {{value}}s de neatktiveco",MINUTE:"Post {{value}}min de neatktiveco",MINUTES:"Post {{value}}min de neatktiveco",HOUR:"Post {{value}}h de neatktiveco",ALWAYS:"Fine de la sesio"},KEYRING_FILE:"Dosiero pri ŝlosilaro",KEYRING_FILE_HELP:'Ebligas <b>konektiĝi</b> aŭtomate por ĉiu ekuzo<br/>kaj eĉ <b>aŭtentiĝi</b> (nur se "Finiĝo de la aŭtentiĝo" estas agordita kiel "fine de la sesio").',REMEMBER_ME:"Memori min?",REMEMBER_ME_HELP:"Ebligas resti identigita de sesio al alia, loke konservante la publikan ŝlosilon.",PLUGINS_SETTINGS:"Krom-programoj",BTN_RESET:"Restarigi la originajn valorojn",EXPERT_MODE:"Aktivigi la spertan moduson",EXPERT_MODE_HELP:"Ebligas pli detalan afiŝadon.",BLOCK_VALIDITY_WINDOW:"Limtempo pri necerteco de la blokoj",BLOCK_VALIDITY_WINDOW_SHORT:"Limtempo pri necerteco",BLOCK_VALIDITY_WINDOW_HELP:"Limtempo antaŭ ol taksi, ke iu informo estas validigita",BLOCK_VALIDITY_OPTION:{NONE:"Neniu limtempo",N:"{{time | formatDuration}} ({{count}} blokoj)"},POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Adreso",HOST_HELP:"Adreso: servilo: konektujo",USE_SSL:"Sekurigita?",USE_SSL_HELP:"(SSL-ĉifrado)",BTN_SHOW_LIST:"Listo de la nodoj"}},BLOCKCHAIN:{HASH:"Haketo: {{hash}}",VIEW:{HEADER_TITLE:"Bloko #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Nuna bloko",TITLE:"Bloko #{{number|formatInteger}}",COMPUTED_BY:"Kalkulita de la nodo de",SHOW_RAW:"Vidi la kompletan dosieron",TECHNICAL_DIVIDER:"Teknikaj informoj",VERSION:"Versio de la daten-strukturo",HASH:"Kalkulita haketo",UNIVERSAL_DIVIDEND_HELP:"Mono kunproduktita de ĉiu el la {{membersCount}} membroj",EMPTY:"Neniu dateno en tiu ĉi bloko",POW_MIN:"Minimuma malfacileco",POW_MIN_HELP:"Malfacileco trudita por la haket-kalkulo",DATA_DIVIDER:"Datenoj",IDENTITIES_COUNT:"Novaj identecoj",JOINERS_COUNT:"Novaj membroj",ACTIVES_COUNT:"Revalidigoj",ACTIVES_COUNT_HELP:"Membroj revalidigintaj sian membrecon",LEAVERS_COUNT:"Membroj elirintaj",LEAVERS_COUNT_HELP:"Membroj ne plu dezirantaj atestaĵon",EXCLUDED_COUNT:"Membroj eksigitaj",EXCLUDED_COUNT_HELP:"Malnovaj membroj eksigitaj pro nerevalidiĝo aŭ manko de atestaĵoj",REVOKED_COUNT:"Nuligitaj identecoj",REVOKED_COUNT_HELP:"Tiuj kontoj ne plu povos esti membroj",TX_COUNT:"Spezoj",CERT_COUNT:"Atestaĵoj",TX_TO_HIMSELF:"Operacio pri monŝanĝo",TX_OUTPUT_UNLOCK_CONDITIONS:"Kondiĉoj por malblokado",TX_OUTPUT_OPERATOR:{AND:"kaj",OR:"aŭ"},TX_OUTPUT_FUNCTION:{SIG:"<b>Subskribo</b> de ",XHX:"<b>Pasvorto</b>, el kiu SHA256 =",CSV:"Blokita dum",CLTV:"Blokita ĝis"}},LOOKUP:{TITLE:"Blokoj",NO_BLOCK:"Neniu bloko",LAST_BLOCKS:"Lastaj blokoj:",BTN_COMPACT:"Densigi"}},CURRENCY:{VIEW:{TITLE:"Mono",TAB_CURRENCY:"Mono",TAB_WOT:"Reto de fido",TAB_NETWORK:"Reto",TAB_BLOCKS:"Blokoj",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} estas <b>libera mono</b>, kiu ekis {{firstBlockTime|formatFromNow}}. Ĝi nombras nun <b>{{N}} membrojn</b>, kiuj produktas kaj ricevas <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a> (UD), ĉiun {{dt|formatPeriod}}n.",NETWORK_RULES_DIVIDER:"Reguloj de la reto",CURRENCY_NAME:"Nomo de la mono",MEMBERS:"Nombro de membroj",MEMBERS_VARIATION:"Variado depost la lasta UD",MONEY_DIVIDER:"Mono",MASS:"Mona maso",SHARE:"Maso por membro",UD:"Universala Dividendo",C_ACTUAL:"Nuna kreskado",MEDIAN_TIME:"Horo de la blokĉeno",POW_MIN:"Minimuma nivelo pri malfacileco de kalkulo",MONEY_RULES_DIVIDER:"Reguloj de la mono",C_RULE:"Teoria kreskado celata",UD_RULE:"Kalkulo de la universala dividendo",DT_REEVAL:"Periodo de revalorigo de la UD",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Ĉiuj <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Dato de la unua revalorigo",SIG_QTY_RULE:"Nombro de necesaj atestaĵoj por fariĝi membro",SIG_STOCK:"Maksimuma nombro da senditaj atestaĵoj por membro",SIG_PERIOD:"Minimuma daŭro de atendado inter 2 sinsekvaj atestaĵoj senditaj de sama persono",SIG_WINDOW:"Limdaŭro por akcepti atestaĵon",SIG_VALIDITY:"Vivdaŭro de atestaĵo, kiu estis akceptita",MS_WINDOW:"Limdaŭro por akcepti aliĝ-peton kiel membron",MS_VALIDITY:"Vivdaŭro de aliĝo, kiu estis akceptita",STEP_MAX:"Maksimuma distanco, per la atestaĵoj, inter nova eniranto kaj la referencaj membroj",WOT_RULES_DIVIDER:"Reguloj de la reto de fido",SENTRIES:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro",SENTRIES_FORMULA:"Nombro de atestaĵoj (senditaj <b>kaj</b> ricevitaj) por fariĝi referenca membro (formulo)",XPERCENT:"Minimuma procento da referencaj membroj atingenda por konformiĝi al la regulo pri distanco",AVG_GEN_TIME:"Meza daŭro inter du blokoj",CURRENT:"nuna",MATH_CEILING:"PLAFONO",DISPLAY_ALL_RULES:"Afiŝi ĉiujn regulojn?",BTN_SHOW_LICENSE:"Vidi la licencon",WOT_DIVIDER:"Reto de fido"},LICENSE:{TITLE:"Licenco de la mono",BTN_DOWNLOAD:"Elŝuti la dosieron",NO_LICENSE_FILE:"Dosiero pri licenco ne trovita."}},NETWORK:{VIEW:{MEDIAN_TIME:"Horo de la blokĉeno",LOADING_PEERS:"Nodoj ŝarĝiĝantaj...",NODE_ADDRESS:"Adreso:",SOFTWARE:"Programo",WARN_PRE_RELEASE:"Antaŭ-versio (lasta stabila versio: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versio <b>{{version}}</b> disponebla",WS2PID:"Identigilo:",PRIVATE_ACCESS:"Privata aliro",POW_PREFIX:"Prefikso pri labor-pruvo:",ENDPOINTS:{BMAS:"Sekurigita interfaco (SSL)",BMATOR:"Reta interfaco TOR",WS2P:"Interfaco WS2P",ES_USER_API:"Nodo de datenoj Cesium+"}},INFO:{ONLY_SSL_PEERS:"La nodoj ne-SSL estas mis-afiŝitaj, ĉar Cesium funkcias laŭ moduso HTTPS."}},PEER:{PEERS:"Nodoj",SIGNED_ON_BLOCK:"Skribita en la bloko",MIRROR:"spegulo",MIRRORS:"Speguloj",MIRROR_PEERS:"Spegul-nodoj",PEER_LIST:"Listo de la nodoj",MEMBERS:"Membroj",MEMBER_PEERS:"Membro-nodoj",ALL_PEERS:"Ĉiuj nodoj",DIFFICULTY:"Malfacileco",API:"API",CURRENT_BLOCK:"Bloko #",POPOVER_FILTER_TITLE:"Filtrilo",OFFLINE:"Nekonektita",OFFLINE_PEERS:"Nekonektitaj nodoj",BTN_SHOW_PEER:"Vidi la nodon",VIEW:{TITLE:"Nodo",OWNER:"Apartenas al",SHOW_RAW_PEERING:"Vidi la samrangan dokumenton",SHOW_RAW_CURRENT_BLOCK:"Vidi la lastan blokon (kompleta strukturo)",LAST_BLOCKS:"Lastaj blokoj konataj",KNOWN_PEERS:"Konataj nodoj:",GENERAL_DIVIDER:"Ĝeneralaj informoj",ERROR:{LOADING_TOR_NODE_ERROR:"Neeblas ricevi la informojn de la nodo. La limdaŭro de atendado estas transpasita.",LOADING_NODE_ERROR:"Neeblas ricevi la informojn de la nodo"}}},WOT:{SEARCH_HELP:"Traserĉado (pseŭdo aŭ publika ŝlosilo)",SEARCH_INIT_PHASE_WARNING:"Dum la periodo de antaŭ-aliĝo, la traserĉado de la atendantaj aliĝoj <b>povas esti longa</b>. Bonvolu pacienci...",REGISTERED_SINCE:"Enskribita la",REGISTERED_SINCE_BLOCK:"Enskribita en la bloko #",NO_CERTIFICATION:"Neniu atestaĵo validigita",NO_GIVEN_CERTIFICATION:"Neniu atestaĵo sendita",NOT_MEMBER_PARENTHESIS:"(ne membro)",IDENTITY_REVOKED_PARENTHESIS:"(identeco nuligita)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(nuliĝanta)",EXPIRE_IN:"Finiĝo",NOT_WRITTEN_EXPIRE_IN:"Limdato<br/>de traktado",EXPIRED:"Finiĝinta",PSEUDO:"Pseŭdonimo",SIGNED_ON_BLOCK:"Sendita en la bloko #{{block}}",WRITTEN_ON_BLOCK:"Enskribita en la bloko #{{block}}",GENERAL_DIVIDER:"Ĝeneralaj informoj",NOT_MEMBER_ACCOUNT:"Simpla konto (ne membro)",NOT_MEMBER_ACCOUNT_HELP:"Temas pri simpla monujo, sen aliĝ-peto atendanta.",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_CERTIFY:"Atesti",BTN_YES_CERTIFY:"Jes, atesti",BTN_SELECT_AND_CERTIFY:"Nova atestaĵo",ACCOUNT_OPERATIONS:"Spezoj en la konto",VIEW:{POPOVER_SHARE_TITLE:"Identeco {{title}}"},LOOKUP:{TITLE:"Reto de fido",NEWCOMERS:"Novaj membroj",NEWCOMERS_COUNT:"{{count}} membroj",PENDING:"Atendantaj enskribiĝoj",PENDING_COUNT:"{{count}} atendantaj enskribiĝoj",REGISTERED:"Enskribita {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro depost {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Novaj membroj",BTN_PENDING:"Atendantaj enskribiĝoj",SHOW_MORE:"Afiŝi pli",SHOW_MORE_COUNT:"(nuna limo je {{limit}})",NO_PENDING:"Neniu enskribiĝo atendanta.",NO_NEWCOMERS:"Neniu membro."},CONTACTS:{TITLE:"Kontaktoj"},MODAL:{TITLE:"Traserĉado"},CERTIFICATIONS:{TITLE:"{{uid}} - Atestaĵoj",SUMMARY:"Ricevitaj atestaĵoj",LIST:"Detalo pri la ricevitaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",RECEIVED:"Ricevitaj atestaĵoj",RECEIVED_BY:"Atestaĵoj ricevitaj de {{uid}}",ERROR:"Atestaĵoj erare ricevitaj",SENTRY_MEMBER:"Referenca membro"},OPERATIONS:{TITLE:"{{uid}} - Spezoj"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Senditaj atestaĵoj",SUMMARY:"Senditaj atestaĵoj",LIST:"Detalo pri la senditaj atestaĵoj",PENDING_LIST:"Atestaĵoj atendantaj traktadon",SENT:"Senditaj atestaĵoj",SENT_BY:"Atestaĵoj senditaj de {{uid}}",ERROR:"Atestaĵoj erare senditaj"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Konektiĝo',SCRYPT_FORM_HELP:"Bonvolu tajpi viajn identigilojn.<br>Pensu kontroli, ke la publika ŝlosilo estas tiu de via konto.",PUBKEY_FORM_HELP:"Bonvolu tajpi publikan ŝlosilon de konto:",FILE_FORM_HELP:"Elektu la ŝlosilaro-dosieron uzotan:",SCAN_FORM_HELP:"Skani la QR-kodon de monujo.",SALT:"Sekreta identigilo",SALT_HELP:"Sekreta identigilo",SHOW_SALT:"Afiŝi la sekretan identigilon?",PASSWORD:"Pasvorto",PASSWORD_HELP:"Pasvorto",PUBKEY_HELP:"Publika ŝlosilo aŭ pseŭdonimo",NO_ACCOUNT_QUESTION:"Vi ankoraŭ ne havas konton?",HAVE_ACCOUNT_QUESTION:"Vi jam havas konton?",CREATE_ACCOUNT:"Krei konton...",CREATE_FREE_ACCOUNT:"Krei konton senpage",FORGOTTEN_ID:"Pasvorto forgesita?",ASSOCIATED_PUBKEY:"Publika ŝlosilo de la ŝlosilaro:",BTN_METHODS:"Aliaj metodoj",BTN_METHODS_DOTS:"Ŝanĝi metodon...",METHOD_POPOVER_TITLE:"Metodoj",MEMORIZE_AUTH_FILE:"Memorigi tiun ŝlosilaron por la daŭro de la sesio de retumado",SCRYPT_PARAMETERS:"Parametroj (Skripto):",AUTO_LOGOUT:{TITLE:"Informo",MESSAGE:'<i class="ion-android-time"></i> Vi estis <b>malkonektita</b> aŭtomate, pro tro longa senaktiveco.',BTN_RELOGIN:"Rekonektiĝi",IDLE_WARNING:"Vi estos malkonektita... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Sekreta identigilo kaj pasvorto",SCRYPT_ADVANCED:"Sperta salumado",FILE:"Dosiero pri ŝlosilaro",PUBKEY:"Publika ŝlosilo aŭ pseŭdonimo",SCAN:"Skani QR-kodon"},SCRYPT:{SIMPLE:"Malpeza salumado",DEFAULT:"Kutima salumado",SECURE:"Sekura salumado",HARDEST:"Plej sekura salumado",EXTREME:"Ekstrema salumado",USER:"Personigita salumado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Atendita strukturo de dosiero: <b>.yml</b> aŭ <b>.dunikey</b> (tipo PubSec, WIF aŭ EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Aŭtentigado',BTN_AUTH:"Aŭtentiĝi",GENERAL_HELP:"Bonvolu aŭtentiĝi:",EXPECTED_UID_HELP:'Bonvolu aŭtentiĝi ĉe la konto <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Bonvolu aŭtentiĝi ĉe la monujo <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Skani la QR-kodon de la <b>privata ŝlosilo</b> de la monujo."},ACCOUNT:{TITLE:"Mia konto",BALANCE:"Saldo",LAST_TX:"Lastaj spezoj validigitaj",BALANCE_ACCOUNT:"Konto-saldo",NO_TX:"Neniu spezo",SHOW_MORE_TX:"Afiŝi pli",SHOW_ALL_TX:"Afiŝi ĉion",TX_FROM_DATE:"(nuna limo je {{fromTime|medianFromNowShort}})",PENDING_TX:"Spezoj atendantaj traktadon",VALIDATING_TX:"Spezoj traktitaj, ne validigitaj",ERROR_TX:"Spezoj ne realigitaj",ERROR_TX_SENT:"Spezoj malsukcesintaj",PENDING_TX_RECEIVED:"Spezoj atendantaj ricevon",EVENTS:"Okazaĵoj",OUT_DISTANCED:"Viaj nunaj atestaĵoj venas de tro izolita grupo de la <a ng-click=\"showHelpModal('wot')\">Reto de Fido</a> (RdF): al la <a ng-click=\"showHelpModal('distance_rule')\">regulo de maksimuma distanco</a> vi ne konformiĝas.<br/>Vi devas akiri atestaĵojn venantajn de aliaj lokoj de la RdF, aŭ atendi ke tiu ĉi densiĝos.",WAITING_MEMBERSHIP:"Aliĝo-peto sendita. Atendanta akcepton.",WAITING_CERTIFICATIONS:"Vi devas <b>akiri {{needCertificationCount}} atestaĵo(j)n</b> por fariĝi membro kaj produkti la <a ng-click=\"showHelpModal('ud')\">Universalan Dividendon</a>. Via konto tamen estas jam funkcianta, por ricevi kaj efektivigi pagojn.",WAITING_CERTIFICATIONS_HELP:'Por akiri viajn atestaĵojn, petu nur membrojn <b>kiuj sufiĉe konas vin</b>, kiel postulas <a ng-click="showLicenseModal()">la licenco de la mono</a>, kiun vi akceptis.<br/>Se vi ne konas sufiĉe da membroj, sciigu tion ĉe <a ng-click="openLink($event, $root.settings.userForumUrl)">la forumo por uzantoj</a>.',WILL_MISSING_CERTIFICATIONS:"Baldaŭ <b>mankos al vi atestaĵoj</b> (almenaŭ {{willNeedCertificationCount}} estas necesaj)",WILL_NEED_RENEW_MEMBERSHIP:"Via aliĝo kiel membro <b>estas finiĝonta {{membershipExpiresIn|formatDurationTo}}</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a> ĝis tiam.",NEED_RENEW_MEMBERSHIP:"Vi ne plu estas membro de la mono, ĉar <b>via aliĝo finiĝis</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vi ne plu estas membro de la mono, <b>pro manko da atestaĵoj</b>. Pensu <a ng-click=\"doQuickFix('renew')\">revalidigi vian aliĝon</a>.",NO_WAITING_MEMBERSHIP:"Neniu aliĝo-peto atendanta. Se vi deziras <b>fariĝi membro</b>, pensu <a ng-click=\"doQuickFix('membership')\">sendi la aliĝo-peton</a>.",CERTIFICATION_COUNT:"Ricevitaj atestaĵoj",CERTIFICATION_COUNT_SHORT:"Atestaĵoj",SIG_STOCK:"Senditaj atestaĵoj",BTN_RECEIVE_MONEY:"Enkasigi",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Aliri alian identecon...",BTN_FIX_MEMBERSHIP:"Resendi la aliĝo-peton...",BTN_MEMBERSHIP_RENEW:"Revalidigi la aliĝon",BTN_MEMBERSHIP_RENEW_DOTS:"Revalidigi la aliĝon...",BTN_MEMBERSHIP_OUT_DOTS:"Ĉesigi la aliĝon...",BTN_SECURITY_DOTS:"Konto kaj sekureco...",BTN_SHOW_DETAILS:"Afiŝi la teknikajn informojn",LOCKED_OUTPUTS_POPOVER:{TITLE:"Sumo blokita",DESCRIPTION:"Jen la kondiĉoj de malblokado de tiu sumo:",DESCRIPTION_MANY:"Tiu spezo entenas plurajn partojn, pri kiuj la kondiĉoj de malblokado estas:",LOCKED_AMOUNT:"Kondiĉoj por la sumo:"},NEW:{TITLE:"Kreado de konto",INTRO_WARNING_TIME:"La kreado de konto ĉe {{name|capitalize}} estas tre simpla. Bonvolu tamen dediĉi sufiĉe da tempo por ĝuste efektivigi tiun proceduron (por ne forgesi la identigilojn, pasvortojn, ktp.).",INTRO_WARNING_SECURITY:"Kontrolu ke la aparatoj, kiujn vi nun uzas (komputilo, tabuleto, telefono), <b>estas sekurigitaj kaj fidindaj</b>.",INTRO_WARNING_SECURITY_HELP:"Senvirusigilo ĝisdata, fajroŝirmilo aktivigita, sesio protektita per pasvorto aŭ PIN-kodo, ktp.",INTRO_HELP:"Alklaku <b>{{'COMMON.BTN_START'|translate}}</b> por ekigi la kreadon de konto. Vi estos gvidata paŝon post paŝo.",REGISTRATION_NODE:"Via aliĝo estos registrita tra la nodo Duniter <b>{{server}}</b>, kiu dissendos ĝin poste al la cetero de la mon-reto.",REGISTRATION_NODE_HELP:"Se vi ne fidas tiun nodon, bonvolu ŝanĝi ĝin <a ng-click=\"doQuickFix('settings')\">en la parametroj</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elektu la tipon de konto kreota:",MEMBER_ACCOUNT:"Membro-konto",MEMBER_ACCOUNT_TITLE:"Kreado de membro-konto",MEMBER_ACCOUNT_HELP:"Se vi ankoraŭ ne enskribiĝis kiel individuo (nur unu konto eblas por unu individuo). Tia konto ebligas kunprodukti la monon, ricevante <b> universalan dividendon</b> ĉiun {{parameters.dt|formatPeriod}}n.",WALLET_ACCOUNT:"Simpla monujo",WALLET_ACCOUNT_TITLE:"Kreado de monujo",WALLET_ACCOUNT_HELP:"Por ĉiuj aliaj kazoj, ekzemple se vi bezonas plian konton.<br/>Neniu universala dividendo estos kreita per tia konto.",SALT_WARNING:"Elektu vian sekretan identigilon.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu ĝin</b>: kaze de perdo, neniu alia povos aliri vian konton!",PASSWORD_WARNING:"Elektu pasvorton.<br/>Oni petos ĝin de vi ĉiufoje, kiam vi konektiĝos al tiu konto.<br/><br/><b>Bone memorigu tiun pasvorton</b: kaze de perdo, neniu alia povos aliri vian konton!",PSEUDO_WARNING:"Elektu pseŭdonimon.<br/>Ĝi utilas al la aliaj membroj, por identigi vin pli facile.<div class='hidden-xs'><br/>Ĝi <b>ne povos esti modifita</b>, sen rekrei konton.</div><br/><br/>Ĝi entenu <b>nek spacon, nek diakritan literon (kun supersigno, ktp.)</b>.<div class='hidden-xs'><br/>Ekzemple: <span class='gray'>NataljaBelulino, JohanoStelaro, ktp.</span>",PSEUDO:"Pseŭdonimo",PSEUDO_HELP:"Pseŭdonimo",SALT_CONFIRM:"Konfirmo",SALT_CONFIRM_HELP:"Konfirmo de la sekreta identigilo",PASSWORD_CONFIRM:"Konfirmo",PASSWORD_CONFIRM_HELP:"Konfirmo de la pasvorto",SLIDE_6_TITLE:"Konfirmo:",COMPUTING_PUBKEY:"Kalkulanta...",LAST_SLIDE_CONGRATULATION:"Vi tajpis ĉiujn necesajn informojn: Gratulon!<br/>Vi nun povas <b>sendi la peton por kreado</b> de la konto.</b><br/><br/>Por informo, la publika ŝlosilo ĉi-sube identigos vian estontan konton.<br/>Ĝi povos estis sciigita al aliuloj por ricevi iliajn pagojn.<br/><b>Ne estas devige</b> noti ĝin nun, vi ankaŭ povos fari tion poste.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo, la pasvorto kaj la pseŭdonimo ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras sendi tiun ĉi aliĝo-peton?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Averto:</b> la sekreta identigilo kaj la pasvorto ne plu povos esti modifitaj.<br/><br/><b>Certiĝu, ke vi ĉiam rememorigos ĝin!</b><br/><br/><b>Ĉu vi certas</b>, ke vi deziras daŭrigi per tiuj ĉi identigiloj?',CHECKING_PSEUDO:"Kontrolo...",PSEUDO_AVAILABLE:"Pseŭdonimo disponebla",PSEUDO_NOT_AVAILABLE:"Pseŭdonimo ne disponebla",INFO_LICENSE:"Antaŭ ol krei membro-konton, <b>bonvolu legi kaj akcepti la licencon</b> pri uzado de la mono:",BTN_ACCEPT:"Mi akceptas",BTN_ACCEPT_LICENSE:"Mi akceptas la licencon"},POPUP_REGISTER:{TITLE:"Elektu pseŭdonimon",HELP:"Pseŭdonimo estas deviga por fariĝi membro."},SELECT_IDENTITY_MODAL:{TITLE:"Elekto de la identeco",HELP:'Pluraj <b>malsamaj identecoj</b> estis senditaj, por la publika ŝlosilo <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Bonvolu elekti la dosierujon uzotan:'},SELECT_WALLET_MODAL:{TITLE:"Elekto de la monujo"},WALLET_LIST:{TITLE:"Miaj monujoj",BTN_NEW:"Aldoni monujon",BTN_DOWNLOAD:"Elŝuti la liston",BTN_IMPORT_FILE_DOTS:"Enporti el dosiero...",NO_WALLET:"Neniu kroma monujo",BTN_DELETE:"Forigi kroman monujon...",BTN_RENAME:"Renomi la monujon",EXPORT_FILENAME:"miaj_monujoj-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Sumo: ",EDIT_POPOVER:{TITLE:"Renomi la monujon",HELP:"Sciigu la novan nomon",NAME_HELP:"Nomo de la monujo"},IMPORT_MODAL:{TITLE:"Enporti monujojn",HELP:"Por <b>enporti monujojn</b>, bonvolu glitigi en la ĉi-suban zonon la dosieron pri la listo de monujoj, aŭ alklaki la zonon por serĉadi dosieron.",WALLET_COUNT:"<b>{{count}}</b> nova{{count > 1 ? 'j' : ''}} monujo{{count > 1 ? 'j' : ''}}",NO_NEW_WALLET:"Neniu nova monujo"}},SECURITY:{ADD_QUESTION:"Aldoni personigitan demandon",BTN_CLEAN:"Malplenigi",BTN_RESET:"Restartigi",DOWNLOAD_REVOKE:"Konservi mian dosieron pri nuligo",DOWNLOAD_REVOKE_HELP:"Disponi dosieron pri nuligo estas grave, ekzemple kaze de perdo de viaj identigiloj. Ĝi ebligas al vi <b>elirigi tiun konton el la reto de fido</b>, tiel ke ĝi refariĝu simpla monujo.",GENERATE_KEYFILE:"Krei mian dosieron pri ŝlosilaro...",GENERATE_KEYFILE_HELP:"Kreas dosieron, kiu ebligas al vi aŭtentiĝi sen tajpi viajn identigilojn.<br/><b>Atenton:</b> tiu dosiero entenos vian konto-ŝlosilaron (publikan kaj sekretan ŝlosilojn); do tre gravas meti ĝin en sekuran lokon!",KEYFILE_FILENAME:"ŝlosilaro-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformi en membro-konton...",MEMBERSHIP_IN_HELP:"Ebligas <b>transformi</b> simplan monujo-konton <b>en membro-konton</b>, sendante aliĝo-peton. Utilas nur se vi ne havas jam alian membro-konton.",SEND_IDENTITY:"Publikigi sian identecon...",SEND_IDENTITY_HELP:"Ebligas kunligi pseŭdonimon kun tiu ĉi konto, sed <b>sen fari aliĝo-peton</b> por iĝi membro. Tiu kunligo kutime ne utilas, ĉar la valideco de tiu kunligo de pseŭdonimo estas limigita en la tempo.",HELP_LEVEL:"Por krei konserv-dosieron pri viaj identigiloj, elektu <strong> almenaŭ {{nb}} demandojn:</strong>",LEVEL:"Nivelo de sekureco",LOW_LEVEL:'Malforta <span class="hidden-xs">(2 demandoj minimume)</span>',MEDIUM_LEVEL:'Meza <span class="hidden-xs">(4 demandoj minimume)</span>',QUESTION_1:"Kiel nomiĝis via plej bona amik.in.o, kiam vi estis adoleskant.in.o?",QUESTION_2:"Kiel nomiĝis via unua hejm-besto?",QUESTION_3:"Kiun pladon vi unue lernis kuiradi?",QUESTION_4:"Kiun filmon vi unue spektis en kinejo?",QUESTION_5:"Kien vi iris la unuan fojon, kiam vi vojaĝis per aviadilo?",QUESTION_6:"Kiel nomiĝis via preferata instruist.i.no en bazlernejo?",QUESTION_7:"Kio estus laŭ vi la ideala profesio?",QUESTION_8:"Kiun libron por infanoj vi preferas?",QUESTION_9:"Kio estis la marko de via unua veturilo?",QUESTION_10:"Kio estis via kromnomo, kiam vi estis infano?",QUESTION_11:"Kiun rolant.in.on aŭ aktor.in.on vi preferis en kino, kiam vi estis student.in.o?",QUESTION_12:"Kiun kanzonist.ino.n aŭ muzikgrupon vi preferis, kiam vi estis student.in.o?",QUESTION_13:"En kiu urbo renkontiĝis viaj gepatroj?",QUESTION_14:"Kiel nomiĝis via unua ĉefo?",QUESTION_15:"Kiel nomiĝas la strato, kie vi kreskis?",QUESTION_16:"Kiel nomiĝas la marbordo, kie vi unuafoje baniĝis?",QUESTION_17:"Kiun muzik-albumon vi unuafoje aĉetis?",QUESTION_18:"Kiel nomiĝas via preferata sporto-teamo?",QUESTION_19:"Kio estis la profesio de via avo?",RECOVER_ID:"Retrovi mian pasvorton...",RECOVER_ID_HELP:"Se vi disponas <b>konserv-dosieron pri viaj identigiloj</b>, vi povas retrovi ilin respondante ĝuste viajn personajn demandojn.",REVOCATION_WITH_FILE:"Nuligi mian membro-konton...",REVOCATION_WITH_FILE_DESCRIPTION:"Se vi <b>definitive perdis viajn identigilojn</b> pri via membro-konto (aŭ ke la sekureco de la konto estas endanĝerigita), vi povas uzi <b>la dosieron pri nuligo</b> de la konto por <b>trudi ties definitivan eliradon el la reto de fido</b>.",REVOCATION_WITH_FILE_HELP:"Por <b>definitive nuligi</b> membro-konton, bonvolu glitigi en la ĉi-suban zonon vian dosieron pri nuligo, aŭ alklaki la zonon por serĉadi dosieron.",REVOCATION_WALLET:"Nuligi tiun ĉi konton tuj",REVOCATION_WALLET_HELP:"Peti la nuligon de via identeco estigas la <b>eliradon el la reto de fido</b> (definitivan por la pseŭdonimo kaj la publika ŝlosilo kunligitaj). La konto ne plu povos produkti Universalan Dividendon.<br/>Vi tamen daŭre povos konektiĝi al ĝi, kiel al simpla monujo.",REVOCATION_FILENAME:"nuligo-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Konservi miajn identigilojn...",SAVE_ID_HELP:"Kreado de konserv-dosiero, por <b>retrovi vian pasvorton</b> (kaj la sekretan identigilon) <b>kaze de forgeso</b>. La dosiero estas <b>sekurigita</b> (ĉifrita) dank'al personaj demandoj.",STRONG_LEVEL:'Forta <span class="hidden-xs ">(6 demandoj minimume)</span>',TITLE:"Konto kaj sekureco",KEYFILE:{PUBSEC_FORMAT:"Strukturo PubSec.",PUBSEC_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron laŭ tre simpla maniero. Ĝi kongruas aparte kun Cesium, ğannonce kaj Duniter.<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",WIF_FORMAT:"Strukturo WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron inkluzivante en ĝin kontrol-sumon por kontroli la sendifektecon de la dosiero. Ĝi kongruas aparte kun la paper-monujoj (Duniter paper wallet).<br/><b>Atenton:</b>La dosiero <b>ne estas ĉifrita</b> (la sekreta ŝlosilo klare aperas en ĝi); bonvolu do stoki ĝin en sekura loko!",EWIF_FORMAT:"Strukturo EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Tiu strukturo stokas vian ŝlosilaron <b>laŭ ĉifrita maniero</b> dank'al sekreta frazo elektita de vi. Ĝi ankaŭ inkluzivas kontrol-sumon por kontroli la sendifektecon de la dosiero.<br/><b>Atenton:</b> Zorgu, ke vi ĉiam rememoru vian sekretan frazon!",PASSWORD_POPUP:{TITLE:"Ĉifrita dosiero pri ŝlosilaro",HELP:"Bonvolu indiki la la sekretan frazon:",PASSWORD_HELP:"Sekreta frazo"},ERROR:{BAD_PASSWORD:"Sekreta frazo malĝusta",BAD_CHECKSUM:"Kontrol-sumo malĝusta"}}},FILE_NAME:"{{currency}} - Konto-tabelo {{pubkey|formatPubkey}} je {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Dato",AMOUNT:"Sumo",COMMENT:"Komento"}},TRANSFER:{TITLE:"Elspezo",SUB_TITLE:"Fari elspezon",SUB_TITLE_ALL:"Malplenigi la konton",FROM:"De",TO:"Al",AMOUNT:"Sumo",AMOUNT_HELP:"Sumo",COMMENT:"Komento",COMMENT_HELP:"Komento",BTN_SEND:"Sendi",BTN_ADD_COMMENT:"Aldoni komenton",REST:"Resto de la konto",REST_TO:"al",WARN_COMMENT_IS_PUBLIC:"Bonvolu noti, ke <b>la komentoj estas publikaj</b> (ne ĉifritaj).",MODAL:{TITLE:"Elspezo"}},ERROR:{UNKNOWN_URI_FORMAT:"URI-strukturo nekonata",PUBKEY_INVALID_CHECKSUM:"Publika ŝlosilo nevalida (bad checksum).",POPUP_TITLE:"Eraro",UNKNOWN_ERROR:"Eraro nekonata",CRYPTO_UNKNOWN_ERROR:"Via retumilo ŝajnas ne kongrua kun la kriptografiaj funkcioj.",DOWNLOAD_KEYFILE_FAILED:"Malsukceso por la kreado de la dosiero pri ŝlosilaro.",EQUALS_TO_PSEUDO:"Devas esti malsama ol la pseŭdonimo",EQUALS_TO_SALT:"Devas esti malsama ol la sekreta identigilo",FIELD_REQUIRED:"Deviga kampo",FIELD_TOO_SHORT:"Signaro tro mallonga",FIELD_TOO_SHORT_WITH_LENGTH:"Signaro tro mallonga ({{minLength}} signoj minimume)",FIELD_TOO_LONG:"Signaro tro longa",FIELD_TOO_LONG_WITH_LENGTH:"Signaro tro longa ({{maxLength}} signoj maksimume)",FIELD_MIN:"Minimuma longeco: {{min}}",FIELD_MAX:"Maksimuma longeco: {{max}}",FIELD_ACCENT:"Diakritaj literoj kaj komoj ne permesataj",FIELD_NOT_NUMBER:"Nombra valoro atendata",FIELD_NOT_INT:"Entjera nombro atendata",FIELD_NOT_EMAIL:"Retadreso nevalida",PASSWORD_NOT_CONFIRMED:"Ne kongruas kun la pasvorto",SALT_NOT_CONFIRMED:"Ne kongruas kun la sekreta identigilo",SEND_IDENTITY_FAILED:"Aliĝo malsukcesa",SEND_CERTIFICATION_FAILED:"Atestado malsukcesa",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vi ne povas efektivigi atestadon, ĉar via konto <b>ne estas membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vi ne povas efektivigi atestadon, ĉar via konto ankoraŭ ne estas membro.<br/><br/>Ankoraŭ mankas al vi atestaĵoj, aŭ tiuj ĉi ankoraŭ ne estis validigitaj.",NOT_MEMBER_FOR_CERTIFICATION:"Via konto ankoraŭ ne estas membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Konto ne atestebla. Neniu aliĝo-peto estis farita, aŭ la aliĝo ne estis revalidigita.",LOGIN_FAILED:"Eraro dum konektiĝo.",LOAD_IDENTITY_FAILED:"Eraro por ŝarĝi la identecon.",LOAD_REQUIREMENTS_FAILED:"Eraro por ŝarĝi la antaŭ-necesaĵoj de la identeco.",SEND_MEMBERSHIP_IN_FAILED:"Malsukceso pri la provado eniri la komunumon.",SEND_MEMBERSHIP_OUT_FAILED:"Malsukceso pri la ĉesigo de la aliĝo.",REFRESH_WALLET_DATA:"Malsukceso pri la ĝisdatigo de la monujo.",GET_CURRENCY_PARAMETER:"Malsukceso por ricevi la regulojn de la mono.",GET_CURRENCY_FAILED:"Ne eblis ŝarĝi la monon. Bonvolu reprovi pli poste.",SEND_TX_FAILED:"Elspezado malsukcesa.",ALL_SOURCES_USED:"Bonvolu atendi la kalkulon de la venonta bloko (ĉiuj viaj monfontoj estis uzitaj).",NOT_ENOUGH_SOURCES:"Ne sufiĉe da mono por sendi tiun ĉi sumon per ununura spezo.<br/>Maksimuma sumo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Malsukceso por krei la membro-konton.",RESTORE_WALLET_DATA_ERROR:"Malsukceso por reŝarĝi la parametrojn de la loka stokaĵo",LOAD_WALLET_DATA_ERROR:"Malsukceso por ŝarĝi la datenojn de la monujo.",COPY_CLIPBOARD_FAILED:"Ne eblis kopii la valoron.",TAKE_PICTURE_FAILED:"Malsukceso por ricevi la foton.",SCAN_FAILED:"Malsukceso por skani la QR-kodon.",SCAN_UNKNOWN_FORMAT:"Kodo nerekonata.",WOT_LOOKUP_FAILED:"Serĉado malsukcesa.",LOAD_PEER_DATA_FAILED:"Ne eblis legi la nodon Duniter. Bonvolu reprovi poste.",NEED_LOGIN_FIRST:"Bonvolu unue konektiĝi.",AMOUNT_REQUIRED:"La monsumo estas deviga.",AMOUNT_NEGATIVE:"Negativa sumo nepermesata.",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa.",INVALID_NODE_SUMMARY:"Nodo neatingebla aŭ adreso nevalida.",INVALID_USER_ID:"La pseŭdonimo devas enteni nek spacon nek signon specialan aŭ kun supersigno.",INVALID_COMMENT:"La kampo 'referenco' ne devas enteni literojn kun supersigno.",INVALID_PUBKEY:"La publika ŝlosilo ne havas la atenditan strukturon.",INVALID_PUBKEY_CHECKSUM:"Kontrol-sumo nevalida.",IDENTITY_REVOKED:"Tiu ĉi identeco <b>estis nuligita</b>. Ĝi ne plu povas fariĝi membro.",IDENTITY_REVOKED_WITH_TIME:"Tiu ĉi identeco <b>estis nuligita {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Ĝi ne plu povas fariĝi membro.",IDENTITY_PENDING_REVOCATION:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon. La atestado estas do malaktivigita.",IDENTITY_INVALID_BLOCK_HASH:"Tiu ĉi aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto): tiu persono devas refari sian aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_EXPIRED:"La publikigo de tiu ĉi identeco finiĝis: tiu persono devas fari novan aliĝo-peton <b>antaŭ ol</b> esti atestita.",IDENTITY_SANDBOX_FULL:"La nodo Duniter uzata de Cesium ne plu povas ricevi novajn identecojn, ĉar ĝia atendo-vico estas plena.<br/><br/>Bonvolu reprovi poste aŭ ŝanĝi la nodon (per la menuo <b>Parametroj</b>).",IDENTITY_NOT_FOUND:"Identeco ne trovita.",IDENTITY_TX_FAILED:"Malsukceso por ŝarĝi la spezojn.",WOT_PENDING_INVALID_BLOCK_HASH:"Aliĝo ne valida.",WALLET_INVALID_BLOCK_HASH:"Via aliĝo-peto ne plu validas (ĉar ĝi rilatas al bloko, kiun nuligis la nodoj de la reto).<br/>Vi devas <a ng-click=\"doQuickFix('fixMembership')\">sendi novan peton</a> por solvi tiun ĉi problemon.",WALLET_IDENTITY_EXPIRED:"La publikigo de <b>via identeco finiĝis</b>.<br/>Vi devas <a ng-click=\"doQuickFix('fixIdentity')\">publikigi denove vian identecon</a> por solvi tiun ĉi problemon.",WALLET_REVOKED:"Via identeco estis <b>nuligita</b>: nek via pseŭdonimo nek via publika ŝlosilo povos esti uzata en la estonteco por membro-konto.",WALLET_HAS_NO_SELF:"Via identeco devas unue esti publikigita, kaj ne esti finiĝinta.",AUTH_REQUIRED:"Aŭtentigado necesa.",AUTH_INVALID_PUBKEY:'La atendata ŝlosilo estas <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identigilo aŭ pasvorto nevalida.",AUTH_INVALID_FILE:"Dosiero pri ŝlosilaro nevalida.",AUTH_FILE_ERROR:"Malsukceso por malfermi la dosieron pri ŝlosilaro.",IDENTITY_ALREADY_CERTIFY:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado daŭre validas (finiĝo {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vi <b>jam atestis</b> tiun identecon.<br/><br/>Tiu atestado atendas traktadon (limdato de traktado {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Atestado neebla",LOAD_NEWCOMERS_FAILED:"Malsukceso por ŝarĝi la novajn membrojn.",LOAD_PENDING_FAILED:"Malsukceso por ŝarĝi la atendantajn aliĝojn.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro</b> por rajti efektivigi tiun ĉi agon.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vi devas <b>esti membro (aŭ eksa membro)</b> por rajti efektivigi tiun ĉi agon.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Via identeco devas <b>jam esti publikigita</b>, por ke vi rajtu efektivigi tiun ĉi agon.",GET_BLOCK_FAILED:"Malsukceso por ricevi la blokon.",INVALID_BLOCK_HASH:"Bloko ne trovita (haketo malsama)",DOWNLOAD_REVOCATION_FAILED:"Malsukceso por elŝuti la dosieron pri nuligo.",REVOCATION_FAILED:"Malsukceso pri nuligo.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Sekreta identigilo aŭ pasvorto malĝusta.",RECOVER_ID_FAILED:"Malsukceso por ricevi la identigilojn",LOAD_FILE_FAILED:"Malsukceso por ŝarĝi la dosieron",NOT_VALID_REVOCATION_FILE:"Dosiero pri nuligo ne valida (malĝusta strukturo de dosiero)",NOT_VALID_SAVE_ID_FILE:"Dosiero pri konservado ne valida (malĝusta strukturo de dosiero)",NOT_VALID_KEY_FILE:"Dosiero pri ŝlosilaro ne valida (strukturo ne rekonata)",EXISTING_ACCOUNT:"Viaj identigiloj rilatas al jam ekzistanta konto, kies <a ng-click=\"showHelpModal('pubkey')\">publika ŝlosilo</a> estas:",EXISTING_ACCOUNT_REQUEST:"Bonvolu modifi viajn identigilojn, por ke ili rilatu al ne uzata konto.",GET_LICENSE_FILE_FAILED:"La ricevo de la dosiero pri licenco ne eblis.",CHECK_NETWORK_CONNECTION:"Neniu nodo ŝajnas atingebla.<br/><br/>Bonvolu <b>kontroli vian retkonekton</b>.",ISSUE_524_TX_FAILED:"Malsukcesa elspezo.<br/><br/>Mesaĝo estis sendita al la programistoj por faciligi la solvadon de la problemo. <b>Dankon pro via helpo</b>.",ADD_SECONDARY_WALLET_FAILED:"Malsukceso por aldoni kroman monujon.",UPDATE_WALLET_LIST_FAILED:"Malsukceso por ĝisdatigi la kromajn monujojn.",LOAD_WALLET_LIST_FAILED:"Malsukceso por ŝarĝi la kromajn monujojn.",SAVE_WALLET_LIST_FAILED:"Malsukceso por konservi la kromajn monujojn.",COULD_NOT_ADD_MAIN_WALLET:"Tiu ĉi monujo <b>rilatas al la ĉefa konto</b>, kun kiu vi estas konektita.<br/>Ne eblas aldoni ĝin kiel kroman monujon.",COULD_NOT_ADD_EXISTING_WALLET:"Monujo jam ekzistanta en la listo.",UNKNOWN_WALLET_ID:"Kroma monujo nekonata.",RESTORE_WALLET_LIST_FAILED:"Malsukceso por restarigi la kromajn monujojn.",INVALID_FILE_FORMAT:"Strukturo de dosiero nevalida."},INFO:{POPUP_TITLE:"Informo",CERTIFICATION_DONE:"Atestaĵo sendita",NOT_ENOUGH_CREDIT:"Saldo nesufiĉa",TRANSFER_SENT:"Elspezo sendita",COPY_TO_CLIPBOARD_DONE:"Kopiita en la memoreto",MEMBERSHIP_OUT_SENT:"Eksiĝo sendita",NOT_NEED_MEMBERSHIP:"Vi jam estas membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Al tiu ĉi identeco baldaŭ mankos atestaĵoj (almenaŭ {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Tiu ĉi identeco ne sendis aliĝo-peton. Tion ĝi devos fari, se ĝi deziras fariĝi membro.",HAS_ALTERNATIVE_IDENTITIES:"Ekzistas <b>pluraj identecoj</b> ligitaj kun tiu ĉi publika ŝlosilo. <b>Antaŭ ĉia atestado</b>, pensu <a ng-click=\"doQuickFix('showSelectIdentities')\">trarigardi la aliajn identecojn</a> por elekti la ĝustan, aŭ kontaktu la posedanton de la konto.",REVOCATION_SENT:"Nuligo sendita",REVOCATION_SENT_WAITING_PROCESS:"La <b>nuligo de tiu ĉi identeco</b> estis petita kaj atendas traktadon.",FEATURES_NOT_IMPLEMENTED:"Tiu ĉi funkciaro ankoraŭ estas programiĝanta.<br/>Kial ne <b>kontribui al Cesium</b>, por ekhavi ĝin pli rapide? ;)",EMPTY_TX_HISTORY:"Neniu spezo elportota"},CONFIRM:{POPUP_TITLE:"<b>Konfirmo</b>",POPUP_WARNING_TITLE:"<b>Averto</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Averto pri sekureco</b>',CERTIFY_RULES_TITLE_UID:"Atesti {{uid}}",CERTIFY_RULES:'<b class="assertive">NE atestu</b> konton, se vi pensas ke:<br/><br/><ul><li>1.) ĝi ne rilatas al persono <b>fizika kaj vivanta</b>.<li>2.) ĝia posedanto <b>havas alian konton</b> jam atestitan.<li>3.) ĝia posedanto malobservas (vole aŭ ne) la regulon 1 aŭ 2 (ekzemple atestante falsajn kontojn aŭ duoblajn).</ul><br/><b>Ĉu vi certas,</b> ke vi tamen volas atesti tiun ĉi identecon?',FULLSCREEN:"Afiŝi la programon plen-ekrane?",EXIT_APP:"Fermi la programon?",TRANSFER:"<b>Resumo de la elspezo</b> :<br/><br/><ul><li> - De: {{from}}</li><li> - Al: <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",TRANSFER_ALL:"<b>Resumo de la elspezo</b>:<br/><br/><ul><li> - De : {{from}}</li><li> - Al : <b>{{to}}</b></li><li> - Sumo: <b>{{amount}} {{unit}}</b></li><li> - Komento: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> al <b>{{restTo}}</b></li></ul><br/><b>Ĉu vi certas, ke vi volas efektivigi tiun ĉi elspezon?</b>",MEMBERSHIP_OUT:"Tiu ĉi ago estas <b>neinversigebla</b>.<br/></br/>Ĉu vi certas, ke vi volas <b>nuligi vian membro-konton</b>?",MEMBERSHIP_OUT_2:"Tiu ĉi ago estas <b>neinversigebla</b> !<br/><br/>Ĉu vi vere certas, ke vi volas <b>nuligi vian aliĝon</b> kiel membron?",LOGIN_UNUSED_WALLET_TITLE:"Tajperaro?",LOGIN_UNUSED_WALLET:"La konektita konto ŝajnas <b>neaktiva</b>.<br/><br/>Temas probable pri <b>tajperaro</b> en viaj konekto-identigiloj. Bonvolu rekomenci, kontrolante ke <b>la publika ŝlosilo estas tiu de via konto</b>.",FIX_IDENTITY:"La pseŭdonimo <b>{{uid}}</b> estos denove publikigita, anstataŭigante la malnovan publikigon, kiu finiĝis.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",FIX_MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos resendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",MEMBERSHIP:"Via aliĝo-peto kiel membro tuj estos sendita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",RENEW_MEMBERSHIP:"Via aliĝo kiel membro tuj estos revalidigita.<br/></br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",REVOKE_IDENTITY:"Vi estas <b>nuligonta definitive tiun ĉi identecon</b>.<br/><br/>La publika ŝlosilo kaj la ligita pseŭdonimo <b>neniam plu povos esti uzataj</b> (por membro-konto). <br/></br/><b>Ĉu vi certas</b>, ke vi volas definitive nuligi tiun ĉi konton?",REVOKE_IDENTITY_2:"Tiu ĉi ago estas <b>neinversigebla</b>!<br/><br/>Ĉu vi vere certas, ke vi volas <b>definitive nuligi</b> tiun ĉi konton?",NOT_NEED_RENEW_MEMBERSHIP:"Via aliĝo ne bezonas esti revalidigita (ĝi finiĝos nur post {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Ĉu vi certas</b>, ke vi volas revalidigi vian aliĝon?",SAVE_BEFORE_LEAVE:"Ĉu vi volas <b>konservi viajn modifojn</b> antaŭ ol eliri el la paĝo?",SAVE_BEFORE_LEAVE_TITLE:"Modifoj ne registritaj",LOGOUT:"Ĉu vi certas, ke vi volas malkonektiĝi?",USE_FALLBACK_NODE:"Nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la nodon <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La spezo estis forĵetita, pro konata anomalio (petslipo #524) sed <b>ne ripetita</b>.<br/><br/>Por helpi la programistojn korekti tiun eraron, <b>ĉu vi akceptas la sendadon de viaj protokolaj dosieroj</b> per mesaĝo?<br/><small>(neniu konfidenca dateno estas sendita)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Dosiero pri nuligo</b>",POPUP_REVOKE_MESSAGE:"Por sekurigi vian konton, bonvolu elŝuti la <b>dokumenton pri konto-nuligo</b>. Ĝi ebligos al vi eventuale nuligi vian konton (kaze de konto-ŝtelo, ŝanĝo de identigilo, konto erare kreita, ktp.).<br/><br/><b>Bonvolu stoki ĝin en sekura loko.</b>"},HELP:{TITLE:"Ret-helpo",JOIN:{SECTION:"Enskribiĝo",SALT:'La sekreta identigilo estas tre grava. Ĝi utilas por miksi la pasvorton, antaŭ ol ĝi servos por kalkuli la <span class="text-italic">publikan ŝlosilon</span> de via konto (ties numeron) kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas nuntempe planita por retrovi ĝin kaze de perdo.<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona sekreta identigilo devas esti sufiĉe longa (kun almenaŭ 8 signoj) kaj kiel eble plej originala.',PASSWORD:"La pasvorto estas tre grava. Kun la sekreta identigilo, ĝi servas por kalkuli la numeron (la publikan ŝlosilon) de via konto, kaj la sekretan ŝlosilon por aliri ĝin.<br/><b>Zorgu pri ĝia bona memorigado</b>, ĉar neniu rimedo estas planita por retrovi ĝin kaze de perdo (krom se oni generas konserv-dosieron).<br/>Krom tio, ĝi ne povas esti modifita sen devige krei novan konton.<br/><br/>Bona pasvorto entenas (ideale) almenaŭ 8 signojn, inter kiuj estas almenaŭ unu majusklo kaj unu cifero.",PSEUDO:'La pseŭdonimo estas utila nur kaze de enskribiĝo kiel <span class="text-italic">membro</span>. Ĝi ĉiam estas ligita kun monujo (tra ĝia <span class="text-italic">publika ŝlosilo</span>).<br/>Ĝi estas publikigita en la reto, tiel ke la aliaj uzantoj povu identigi ĝin, atesti ĝin aŭ sendi monon al ĝia konto.<br/>Pseŭdonimo devas esti unika ene de la membroj (<u>nunaj</u> kaj eksaj).'},LOGIN:{SECTION:"Konekto",PUBKEY:"Publika ŝlosilo de la ŝlosilaro",PUBKEY_DEF:'La publika ŝlosilo de la ŝlosilaro estas kreita per la tajpitaj identigiloj (iuj ajn), sen ke ili necese rilatu al konto jam uzata.<br/><b>Atente kontrolu, ke la publika ŝlosilo estas tiu de via konto</b>. Alikaze, vi estos konektita al konto probable neniam uzita, la risko de kolizio kun ekzistanta konto estante tre eta.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',METHOD:"Konekto-metodoj",METHOD_DEF:'Pluraj eblecoj disponeblas por konekti vin al monujo:<br/> - La konekto <b>per salumado (simpla aŭ sperta)</b> miksas vian pasvorton dank\'al la sekreta identigilo, por limigi la provojn de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">kodrompado per kruda forto</a> (ekzemple per konataj vortoj.<br/> - La konekto <b>per publika ŝlosilo</b> evitigas tajpi viajn identigilojn, kiuj estos petataj de vi, nur kiam venos la momento dum operacio ĉe la konto.<br/> - La konekto <b>per dosiero pri ŝlosilaro</b> legas la ŝlosilojn (publikan kaj privatan) de la konto, per dosiero, sen la bezono tajpi identigilojn. Pluraj strukturoj de dosiero eblas.'},GLOSSARY:{SECTION:"Glosaro",PUBKEY_DEF:'Publika ŝlosilo identigas monujon, kiu povas identigi membron aŭ rilati al anonima monujo. Ĉe Cesium la publika ŝlosilo estas kalkulita (implicite) dank\'al la sekreta identigilo kaj la pasvorto.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">Scii pli pri kriptografio</a> per publika ŝlosilo.',MEMBER:"Membro",MEMBER_DEF:'Membro estas homa persono fizika kaj vivanta, kiu deziras libere partopreni en la mona komunumo. Li/ŝi kunproduktas universalan dividendon, laŭ periodo kaj sumo tiel difinitaj kiel en la <span class="text-italic">reguloj de la mono</span>',CURRENCY_RULES:"Reguloj de la mono",CURRENCY_RULES_DEF:'La reguloj de la mono estas difinitaj definitive. Ili fiksas la funkciadon de la mono: la kalkulon de la universala dividendo, la nombron de necesaj atestaĵoj por esti membro, la maksimuman nombron da atestaĵoj, kiujn povas doni unu membro, ktp. <a href="#/app/currency">Vidi la nuntempajn regulojn</a>.<br/>La nemodifo de la reguloj tra la tempo eblas per uzado de <span class="text-italic">Blokĉeno</span>, kiu entenas kaj plenumas tiujn regulojn, kaj konstante kontrolas ties ĝustan aplikadon.',BLOCKCHAIN:'Ĉeno de blokoj (<span class="text-italic">Blokchain/Blokĉeno</span>)',BLOCKCHAIN_DEF:'La Blokĉeno estas malcentrigita sistemo, kiu, kaze de Duniter, servas por enteni kaj plenumi la <span class="text-italic">regulojn de la mono</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">Scii pli pri Duniter</a> kaj la funkciado de ties blokĉeno.',UNIVERSAL_DIVIDEND_DEF:'La Universala Dividendo (UD) estas la kvanto de mono kunkreita de ĉiu membro, laŭ la periodo kaj kalkulo difinitaj en la <span class="text-italic">reguloj de la mono</span>.<br/>Por ĉiu perioda dato, la membroj ricevas en sian konton la saman kvanton da nova mono.<br/><br/>La UD spertas regulan kreskon, por resti justa inter la membroj (nunaj kaj venontaj), kalkulitan depende de la meza vivespero, kiel estas demonstrite en la Teorio Relativa pri la Mono (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Scii pli pri la TRM</a> kaj la liberaj monoj.',WOT:"Reto de Fido (RdF)",WOT_DEF:"La Reto de Fido konsistas el la tuto de la membroj de la mono, kaj el la atesto-ligoj, kiuj kunligas ilin.",DISTANCE_RULE:"Regulo pri distanco",DISTANCE_RULE_DEF:"La regulo pri distanco de la Reto de Fido difinas <b>maksimuman distancon nepran</b> inter petanto kaj minimuma nombro da referencaj membroj (aŭ centraj membroj). Tiu distanco estas kalkulita uzante la ligojn inter atestaĵoj."},TIP:{MENU_BTN_CURRENCY:"La menuo <b>{{'MENU.CURRENCY'|translate}}</b> ebligas konsulti la <b>regulojn de la mono</b> kaj ties staton.",CURRENCY_WOT:"La <b>nombro de membroj</b> montras la gravecon de la komunumo kaj ebligas <b>sekvi ties evoluon</b>.",CURRENCY_MASS:"Sekvu ĉi tie la <b>ĉioman kvanton da mono</b> ekzistanta kaj ties <b>mezan distribuon</b> por membro.<br/><br/>Tio ĉi ebligas taksi la <b>gravecon de iu sumo</b>, kompare kun tio, kion <b>posedas la aliuloj</b> en sia konto (mezume).",CURRENCY_UNIT_RELATIVE:"La unuo uzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumoj en {{currency|capitalize}} estis dividitaj per la <b> Universala Dividendo</b> (UD).<br/><br/><small>Tiu relativa unuo estas <b>trafa</b>, ĉar stabila malgraŭ la kvanto de mono, kiu kreskas seninterrompe.</small>",CURRENCY_CHANGE_UNIT:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b> (prefere ol en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"La kromaĵo <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> ebligas <b>ŝanĝi la unuon</b>, por vidigi la sumojn en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, tio estas rilate al la Universala Dividendo (la sumo kunproduktita de ĉiu membro).",CURRENCY_RULES:"La <b>reguloj</b> de la mono fiksas ties funkciadon <b>ĝustan kaj antaŭvideblan</b>.<br/><br/>Vera DNA de la mono, ili igas sian monan kodon <b>legebla kaj travidebla</b>.",MENU_BTN_NETWORK:"La menuo <b>{{'MENU.NETWORK'|translate}}</b> ebligas konsulti la staton de la reto.",NETWORK_BLOCKCHAIN:"Ĉiuj operacioj pri la mono estas registritaj en granda konto-libro <b>publika kaj nefalsigebla</b>, ankaŭ nomata <b>blokĉeno</b> (<em>BlockChain</em> en la angla).",NETWORK_PEERS:"La <b>nodoj</b> videblaj ĉi tie rilatas al la <b>komputiloj, kiuj ĝisdatigas kaj kontrolas</b> la blokĉenon.<br/><br/>Ju pli estas nodoj, des pli la mono havas administradon <b>malcentrigitan</b> kaj fidindan.",NETWORK_PEERS_BLOCK_NUMBER:"Tiu ĉi <b>numero</b> (verda) indikas la <b>lastan blokon validigitan</b> por tiu ĉi nodo (lasta paĝo skribita en la granda konto-libro).<br/><br/>La verda koloro indikas, ke tiu ĉi bloko estas validigita ankaŭ de <b>la plej multaj el la aliaj nodoj</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ĉiu membro</b>, ekipita per komputilo kun interreto, <b>povas partopreni aldonante nodon</b>. Sufiĉas <b>instali la programon Duniter</b> (libera kaj senpaga). <a href="{{installDocUrl}}" target="_system">Vidi la gvidilon pri instalado &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"La menuo <b>{{'ACCOUNT.TITLE'|translate}}</b> ebligas aliri la administradon de via konto.",MENU_BTN_ACCOUNT_MEMBER:"Konsultu ĉi tie la staton de via konto kaj la informojn pri viaj atestaĵoj.",WALLET_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj atestaĵoj (ricevitaj kaj senditaj).",WALLET_RECEIVED_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>ricevitaj atestaĵoj</b>.",WALLET_GIVEN_CERTIFICATIONS:"Alklaku ĉi tien por konsulti la detalon pri viaj <b>senditaj atestaĵoj</b>.",WALLET_BALANCE:"La <b>saldo</b> de via konto afiŝiĝas tie ĉi.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La uzata unuo (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifas, ke la sumo en {{currency|capitalize}} estis dividita per la <b>Universala Dividendo</b> (UD) kunkreita de ĉiu membro.<br/><br/>Nuntempe 1 UD valoras {{currentUD|formatInteger}} {{currency|capitalize}}j.",WALLET_BALANCE_CHANGE_UNIT:"Vi povos <b>ŝanĝi la unuon</b> afiŝitan por la sumoj en la <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Ekzemple por vidigi la sumojn <b>rekte en {{currency|capitalize}}</b>, prefere ol en relativa unuo.",WALLET_PUBKEY:"Jen la publika ŝlosilo de via konto. Vi povas sciigi ĝin al aliulo, por ke li identigu pli simple vian konton.",WALLET_SEND:"Efektivigi pagon per kelkaj klakoj.",WALLET_SEND_NO_MONEY:"Efektivigi pagon per kelkaj klakoj.<br/>(Via saldo ankoraŭ ne permesas tion)",WALLET_OPTIONS:"Tiu ĉi butono ebligas aliri la <b>agojn pri aliĝo</b> kaj sekureco.<br/><br/>Ne forgesu okulumi al ĝi!",WALLET_RECEIVED_CERTS:"Afiŝiĝos ĉi tie la listo de la personoj, kiuj atestis vin.",WALLET_CERTIFY:"La butono <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> ebligas elekti identecon kaj atesti ĝin.<br/><br/>Nur uzantoj <b>jam membroj</b> povas atesti aliajn.",WALLET_CERT_STOCK:"Via stoko da atestaĵoj (senditaj) estas limigita je <b>{{sigStock}} atestaĵoj</b>.<br/><br/>Tiu stoko plu evoluas laŭ la tempo, samtempe kiam la atestaĵoj malvalidiĝas.",MENU_BTN_TX_MEMBER:"La menuo <b>{{'MENU.TRANSACTIONS'|translate}}</b> ebligas konsulti vian konton, la liston de viaj spezoj, kaj sendi pagon.",MENU_BTN_TX:"Konsultu ĉi tie <b>la liston de viaj spezoj</b> kaj efektivigu novajn operaciojn.",MENU_BTN_WOT:"La menuo <b>{{'MENU.WOT'|translate}}</b> ebligas traserĉi inter la <b>uzantoj</b> de la mono (membroj aŭ ne).",WOT_SEARCH_TEXT_XS:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de pseŭdonimo</b> (aŭ de publika ŝlosilo).<br/><br/>La serĉado ekos aŭtomate.",WOT_SEARCH_TEXT:"Por traserĉi en la kontaro, tajpu la <b>unuajn literojn de de pseŭdonimo</b> (aŭ de publika ŝlosilo). <br/><br/>Premu poste sur la klavon <b>Enigi</b> por ekigi la serĉadon.",WOT_SEARCH_RESULT:"Vidigu la detalan slipon simple <b>alklakante</b> linion.",WOT_VIEW_CERTIFICATIONS:"La linio <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montras kiom da membroj validigis tiun ĉi identecon.<br/><br/>Tiuj atestaĵoj pruvas, ke la konto apartenas al <b>persono homa kaj vivanta</b>, havanta <b>neniun alian membro-konton</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesas almenaŭ <b>{{sigQty}} atestaĵoj</b> por fariĝi membro kaj ricevi la <b>Universalan Dividendon</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Alklaki ĉi tien ebligas malfermi <b>la liston de ĉiuj atestaĵoj</b> de la identeco (ricevitaj kaj senditaj).",WOT_VIEW_CERTIFY:"La butono <b>{{'WOT.BTN_CERTIFY'|translate}}</b> ebligas aldoni vian atestaĵon al tiu identeco.",CERTIFY_RULES:"<b>Atenton:</b> Atestu nur <b>personojn fizikajn vivantajn</b>, posedantajn neniun alian membro-konton.<br/><br/>La sekureco de la mono dependas de ĉies atentego!",MENU_BTN_SETTINGS:"La <b>{{'MENU.SETTINGS'|translate}}</b> ebligos al vi agordi la programon.",HEADER_BAR_BTN_PROFILE:"Alklaku ĉi tien por aliri vian <b>uzanto-profilon.</b>",SETTINGS_CHANGE_UNIT:"Vi povos <b>ŝanĝi la afiŝ-unuon</b> de la sumoj alklakante ĉi-supren.<br/><br/>- Malaktivigu la kromaĵon por afiŝi sumojn en {{currency|capitalize}}.<br/>- Aktivigu la kromaĵon por relativa afiŝado en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (ĉiuj sumoj estos <b>dividitaj</b> per la Universala Dividendo aktuala).",END_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Bonan daŭrigon al vi, en la nova mondo de la<b>libera ekonomio</b>!",END_NOT_LOGIN:"Tiu ĉi gvidata vizito <b>finiĝis</b>!<br/><br/>Se vi deziras partopreni en la mono {{currency|capitalize}}, sufiĉos al vi alklaki <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ĉi-sube."}},API:{COMMON:{LINK_DOC:"Dokumentaro API",LINK_DOC_HELP:"Dokumentaro por la programistoj",LINK_STANDARD_APP:"Klasika versio",LINK_STANDARD_APP_HELP:"Malfermi la klasikan version de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Kontrolu vian interretan konekton, aŭ kontaktu la administranton de la retejo</a>."},HOME:{TITLE:"Dokumentaro API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bonvenon en la <b>dokumentaro de la API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',MESSAGE_SHORT:'Konektu viajn retejojn al <a href="http://duniter.org" target="_system">Duniter</a> tre simple!',DOC_HEADER:"Servoj disponeblaj:"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Reta pago",TITLE_SHORT:"Reta pago",SUMMARY:"Resumo de la pago:",AMOUNT:"Sumo:",AMOUNTS_HELP:"Bonvolu elekti la sumon:",NAME:"Nomo:",PUBKEY:"Publika ŝlosilo de la ricevonto:",COMMENT:"Referenco de la spezo:",NODE:"Adreso de la nodo:",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Demonstra moduso</b>: Neniu pago reale estos sendita dum tiu simulado.<br/>Bonvolu uzi la identigilojn: <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Kontrolu vian tajpaĵon.<br/>En demonstra moduso, la identigiloj estas: {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Pago sendita.<br/>Redirektiĝo al <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Pago sendita.<br/>Redirektiĝo al la retejo de la vendanto...",CANCEL_REDIRECTING_WITH_NAME:"Pago nuligita.<br/>Redirektiĝo al <b>{{name}}</b>...",CANCEL_REDIRECTING:"Pago nuligita.<br/>Redirektiĝo al la retejo de la vendanto..."},ERROR:{TRANSFER_FAILED:"Pago malsukcesa"}},DOC:{DESCRIPTION_DIVIDER:"Priskribo",URL_DIVIDER:"Adreso alvokita",PARAMETERS_DIVIDER:"Parametroj",AVAILABLE_PARAMETERS:"Jen la listo de la eblaj parametroj:",DEMO_DIVIDER:"Testi",DEMO_HELP:"Por testi tiun servon, alklaku la butonon ĉi-apude. La rezulto afiŝiĝos sube.",DEMO_RESULT:"Rezulto sendita de la alvoko:",DEMO_RESULT_PEER:"Adreso de la uzata nodo:",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Sukceso!',DEMO_CANCELLED:'<i class="icon ion-close"></i> Nuligita de la uzanto',INTEGRATE_DIVIDER:"Integri",INTEGRATE_CODE:"Kodo:",INTEGRATE_RESULT:"Antaŭvidigo de la rezulto:",INTEGRATE_PARAMETERS:"Parametroj",TRANSFER:{TITLE:"Pagoj",DESCRIPTION:"De retejo (ekz.: ret-vendado) vi povas komisii la pagon en libera mono al Cesium API. Por tio, sufiĉas al vi ekigi la malfermon de paĝo ĉe la sekvanta adreso:",PARAM_PUBKEY:"Publika ŝlosilo de la ricevonto",PARAM_PUBKEY_HELP:"Publika ŝlosilo de la ricevonto (devige)",PARAM_AMOUNT:"Sumo",PARAM_AMOUNT_HELP:"Sumo de la spezo (devige). Pluraj valoroj permesataj, uzante apartigilon (punkto-komo, vertikala streko aŭ spaco).",PARAM_COMMENT:"Referenco (aŭ komento)",PARAM_COMMENT_HELP:"Referenco aŭ komento. Tio ekzemple ebligos al vi identigi la pagon en la blokĉeno.",PARAM_NAME:"Nomo (de la ricevonto aŭ de la retejo)",PARAM_NAME_HELP:'La nomo de la ricevonto, aŭ de la retejo alvokanta. Tio povas estis legebla nomo ("Mia retejo"), aŭ alie pseŭdo-retadreso ("MiaRetejo.com").',PARAM_REDIRECT_URL:"Retadreso por redirektiĝo",PARAM_REDIRECT_URL_HELP:'Retadreso (URL) por redirektiĝo, alvokita kiam la pago estis sendita. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj per la valoroj de la spezo: "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" kaj "{node}".',PARAM_CANCEL_URL:"Retadreso por nuligo",PARAM_CANCEL_URL_HELP:'Retadreso (URL) kaze de nuligo de la pago, fare de la uzanto. Ĝi povas enteni la sekvantajn signojn, kiuj estos anstataŭigitaj lastmomente: "{comment}", "{amount}" kaj {pubkey}.',PARAM_PREFERRED_NODE:"Adreso de la preferata nodo",PARAM_PREFERRED_NODE_HELP:'Adreso (URL) de la nodo Duniter preferinde uzota ("g1.domaine.com:443" aŭ "https://g1.domaine.com").',EXAMPLES_HELP:"Jen ekzemploj pri integrado:",EXAMPLE_BUTTON:"Butono HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagi en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Personigita stilo",EXAMPLE_BUTTON_TEXT_HELP:"Buton-teksto",EXAMPLE_BUTTON_BG_COLOR:"Fon-koloro",EXAMPLE_BUTTON_BG_COLOR_HELP:"Ekzemplo: #fbc14c, nigra, helgriza, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Teksto-koloro",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Ekzemplo: nigra, oranĝa, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Ikono",EXAMPLE_BUTTON_TEXT_WIDTH:"Larĝeco",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Ekzemplo: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Neniu",EXAMPLE_BUTTON_ICON_DUNITER:"Insigno Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Insigno Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Insigno Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Insigno Ğ1 (nigra)"}}}}),e.translations("es-ES",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"fecha: {{build}}",
+PUBKEY:"Llave pública",MEMBER:"Miembro",BLOCK:"Bloque",BTN_OK:"OK",BTN_YES:"Sí",BTN_NO:"No",BTN_SEND:"Enviar",BTN_SEND_MONEY:"Hacer una transferencia",BTN_SEND_MONEY_SHORT:"Transferencia",BTN_SAVE:"Guardar",BTN_YES_SAVE:"Sí, guardar",BTN_YES_CONTINUE:"Sí, continuar",BTN_SHOW:"Ver",BTN_SHOW_PUBKEY:"Ver la llave",BTN_RELATIVE_UNIT:"¿Mostrar las importes en DU?",BTN_BACK:"Anterior",BTN_NEXT:"Siguiente",BTN_IMPORT:"Importar",BTN_CANCEL:"Cancelar",BTN_CLOSE:"Cerrar",BTN_LATER:"Más tarde",BTN_LOGIN:"Connectarse",BTN_LOGOUT:"Desconexión",BTN_ADD_ACCOUNT:"Nueva cuenta",BTN_SHARE:"Compartir",BTN_EDIT:"Modificar",BTN_DELETE:"Suprimir",BTN_ADD:"Añadir",BTN_SEARCH:"Buscar",BTN_REFRESH:"Actualizar",BTN_RETRY:"Empezar de nuevo",BTN_START:"Empezar",BTN_CONTINUE:"Continuar",BTN_CREATE:"Crear",BTN_UNDERSTOOD:"Entendido",BTN_OPTIONS:"Opciones",BTN_HELP_TOUR:"Visita guiada",BTN_HELP_TOUR_SCREEN:"Descubrir esta pantalla",BTN_DOWNLOAD:"Descargar",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Descargar el estado de cuenta",BTN_MODIFY:"Modificar",CHOOSE_FILE:"Deposite archivo<br/>o clique para seleccionarlo",DAYS:"Días",NO_ACCOUNT_QUESTION:"¿Todavía no es miembro? ¡Crear una cuenta!",SEARCH_NO_RESULT:"Ningún resultado encontrado",LOADING:"Espere por favor...",LOADING_WAIT:"Espere por favor...<br/><small>(Esperando disponibilidad de nodo)</small>",SEARCHING:"Búsqueda en proceso...",FROM:"De",TO:"A",COPY:"Copiar",LANGUAGE:"Idioma",UNIVERSAL_DIVIDEND:"Dividendo universal",UD:"DU",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vacío)",UID:"Seudónimo",ENABLE:"Activado",DISABLE:"Desactivado",RESULTS_LIST:"Resultados:",RESULTS_COUNT:"{{count}} resultados",EXECUTION_TIME:"ejecutado en {{duration|formatDurationMs}}",SHOW_VALUES:"¿Publicar los valores no codificados?",POPOVER_ACTIONS_TITLE:"Opciones",POPOVER_FILTER_TITLE:"Filtros",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual {{limit}})",POPOVER_SHARE:{TITLE:"Compartir",SHARE_ON_TWITTER:"Compartir en Twitter",SHARE_ON_FACEBOOK:"Compartir en Facebook",SHARE_ON_DIASPORA:"Compartir en Diaspora*",SHARE_ON_GOOGLEPLUS:"Compartir en Google+"},FILE:{DATE:"Fecha:",TYPE:"Tipo:",SIZE:"Tamaño:",VALIDATING:"Validación en progreso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Elegir la fuente:",BTN_PICTURE_GALLERY:"Galería",BTN_PICTURE_CAMERA:"<b>Cámara</b>"},MENU:{HOME:"Recepción",WOT:"Directorio",CURRENCY:"Moneda",ACCOUNT:"Mi cuenta",WALLETS:"Mis monederos",TRANSFER:"Transferencia",SCAN:"Escáner",SETTINGS:"Configuraciones",NETWORK:"Red",TRANSACTIONS:"Mis operaciones"},ABOUT:{TITLE:"A propósito ",LICENSE:"Aplicación <b>libre</b> (licencia GNU AGPLv3).",LATEST_RELEASE:"Hay una <b>versión más nueva</b> de {{'COMMON.APP_NAME' | translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Por favor actualice {{'COMMON.APP_NAME' | translate}} (última versión: <b>v{{version}}</b>)",CODE:"Código fuente:",DEVELOPERS:"Desarrollado por:",FORUM:"Foro:",PLEASE_REPORT_ISSUE:"No dude en informarnos de las anomalías encontradas",REPORT_ISSUE:"Reportar un problema"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenido(a) a la aplicación Cesium !",MESSAGE:"Seguir las cuentas de {{currency|abbreviate}} fácilmente",BTN_CURRENCY:"Explorar la moneda",BTN_ABOUT:"Acerca de:",BTN_HELP:"Ayuda en línea",REPORT_ISSUE:"anomalía",NOT_YOUR_ACCOUNT_QUESTION:'¿Usted no es dueño de la cuenta <<b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Desconectar esta cuenta",CONNECTION_ERROR:'Nodo <b>{{servidor}}</b> inalcanzable o dirección inválida.<br/><br/>Compruebe su conexión a Internet, o nodo de conmutación <a class="positive" ng-click="doQuickFix(\'settings\')">en la configuración</a>.'},SETTINGS:{TITLE:"Configuración",DISPLAY_DIVIDER:"Visualización",STORAGE_DIVIDER:"Almacenamiento",NETWORK_SETTINGS:"Red",PEER:"Dirección del nodo Duniter",PEER_CHANGED_TEMPORARY:"Dirección utilizada temporalmente",USE_LOCAL_STORAGE:"Activar el almacenamiento local",USE_LOCAL_STORAGE_HELP:"Permitir el ahorro de almacenamiento local",WALLETS_SETTINGS:"Mis monederos",USE_WALLETS_ENCRYPTION:"¿Asegurar la lista?",ENABLE_HELPTIP:"Activar las ayudas contextuales",ENABLE_UI_EFFECTS:"Activar los efectos visuales",HISTORY_SETTINGS:"Operaciones de cuentas",DISPLAY_UD_HISTORY:"¿Publicar los dividendos producidos?",TX_HISTORY_AUTO_REFRESH:"Activar actualización automática?",TX_HISTORY_AUTO_REFRESH_HELP:"Actualice el saldo y las operaciones automáticamente, en cada nuevo bloque.",AUTHENTICATION_SETTINGS:"Autenticación",KEEP_AUTH:"Caducidad de la autenticación",KEEP_AUTH_SHORT:"Caducidad",KEEP_AUTH_HELP:"Definir cuándo limpiar la memoria de autenticación.",KEEP_AUTH_OPTION:{NEVER:"Después de cada operación",SECONDS:"Después de {{value}} segundos de inactividad",MINUTE:"Después de {{value}}min de inactividad",MINUTES:"Después de {{value}}mins de inactividad",HOUR:"Después de {{value}}h de inactividad",ALWAYS:"Al finalizar la sesión"},KEYRING_FILE:"Archivo de llavero",REMEMBER_ME:"Recordarme",REMEMBER_ME_HELP:"Permite mantenerse siempre conectado (no recomendado), conservando localmente la llave pública.",PLUGINS_SETTINGS:"Extensiones",BTN_RESET:"Restaurar los valores por defecto",EXPERT_MODE:"Activar el modo experto",EXPERT_MODE_HELP:"Permite una visualización más detallada",POPUP_PEER:{TITLE:"Nodo Duniter",HOST:"Dirección",HOST_HELP:"Dirección: servidor:puerto",USE_SSL:"¿Segura?",USE_SSL_HELP:"(Cifrado SSL)",BTN_SHOW_LIST:"Lista de nodos"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Bloque #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloque corriente",TITLE:"Bloque #{{number|formatInteger}}",COMPUTED_BY:"Calculado por el nodo de",SHOW_RAW:"Ver el fichero en bruto",TECHNICAL_DIVIDER:"Informaciones técnicas",VERSION:"Versión del formato",HASH:"Hash calculado",UNIVERSAL_DIVIDEND_HELP:"Moneda co-producida por cada uno de los {{membersCount}} miembros",EMPTY:"Ningún dato en este bloque",POW_MIN:"Dificultad mínima",POW_MIN_HELP:"Dificultad impuesta por el cálculo del hash",DATA_DIVIDER:"Datos",IDENTITIES_COUNT:"Nuevas identidades",JOINERS_COUNT:"Nuevos miembros",ACTIVES_COUNT:"Renovaciones",ACTIVES_COUNT_HELP:"Miembros que han renovado sus adhesiones",LEAVERS_COUNT:"Miembros salientes",LEAVERS_COUNT_HELP:"Miembros salientes que ya no quieren estar certificados",EXCLUDED_COUNT:"Miembros excluidos",EXCLUDED_COUNT_HELP:"Antiguos miembros excluidos por no renovación o falta de certificaciones",REVOKED_COUNT:"Identidades revocadas",REVOKED_COUNT_HELP:"Estas cuentas no podrán ser miembros",TX_COUNT:"Transacciones",CERT_COUNT:"Certificaciones",TX_TO_HIMSELF:"Operación de cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Condiciones de desbloqueo",TX_OUTPUT_OPERATOR:{AND:"y",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> de ",XHX:"<b>Contraseña</b>, cuyo SHA256 =",CSV:"Bloqueado durante",CLTV:"Bloqueado hasta"}},LOOKUP:{TITLE:"Bloques",NO_BLOCK:"Ningún bloque",LAST_BLOCKS:"últimos bloques:",BTN_COMPACT:"Compactar"}},CURRENCY:{VIEW:{TITLE:"Moneda",TAB_CURRENCY:"Moneda",TAB_WOT:"Red de confianza",TAB_NETWORK:"Red",TAB_BLOCKS:"Bloques",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} es una <b>moneda libre</b>, originada el {{firstBlockTime|formatFromNow}}. Ella cuenta actualmente <b>{{N}} miembros</b>, que producen y recibir un <a ng-click=\"showHelpModal('ud')\">Dividendo universal</a> (DU), cada {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Reglas de la red",CURRENCY_NAME:"Nombre de la moneda",MEMBERS:"Cantidad de miembros",MEMBERS_VARIATION:"variaciones del último DU",MONEY_DIVIDER:"Moneda",MASS:"Masa monetaria",SHARE:"Masa por miembro",UD:"Dividendo universal",C_ACTUAL:"Crecimiento actual",MEDIAN_TIME:"Hora de la blockchain",POW_MIN:"Nivel mínimo de dificultad de cálculo",MONEY_RULES_DIVIDER:"Reglas de la moneda",C_RULE:"Crecimiento teórico objetivo",UD_RULE:"Cálculo del dividendo universal",DT_REEVAL:"Periodo de revalorización del DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Todos los <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Fecha de la primera revalorización",SIG_QTY_RULE:"Número de certificaciones requeridas para ser miembro",SIG_STOCK:"Número máximo de certificaciones emitidas por miembros",SIG_PERIOD:"Plazo mínimo de espera entre 2 certificaciones sucesivas emitidas por la misma persona",SIG_WINDOW:"Plazo límite para tomar en cuenta una certificación",SIG_VALIDITY:"Duración de una certificación que se ha tenido en cuenta.",MS_WINDOW:"Duración límite para toma en cuenta de una adhesión",MS_VALIDITY:"Duración de una certificación",STEP_MAX:"Distancia máxima entre un nuevo entrante y los miembros referentes",WOT_RULES_DIVIDER:"Reglas de la red de confianza",SENTRIES:"Cantidad de certificaciones necesarias para ser miembro referente",SENTRIES_FORMULA:"Cantidad de certificaciones necesarias para ser miembro referente (fórmula)",XPERCENT:"Porcentaje mínimo de miembros referentes necesario para respetar la regla de distancia",AVG_GEN_TIME:"Tiempo medio entre dos bloques",CURRENT:"actual",MATH_CEILING:"TECHO",DISPLAY_ALL_RULES:"¿Ver todas las reglas?",BTN_SHOW_LICENSE:"Ver la licencia",WOT_DIVIDER:"Red de confianza"},LICENSE:{TITLE:"Licencia de la moneda",BTN_DOWNLOAD:"Descagar el fichero",NO_LICENSE_FILE:"Fichero de licencia no encontrado."}},NETWORK:{VIEW:{MEDIAN_TIME:"Hora de la blockchain",LOADING_PEERS:"Cargando los nodos...",NODE_ADDRESS:"Dirección:",SOFTWARE:"Software:",WARN_PRE_RELEASE:"prelanzamiento (última versión estable: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versión <b>{{version}}</b> disponible",WS2PID:"ID:",PRIVATE_ACCESS:"Acceso privado",POW_PREFIX:"Prefijo de la prueba de trabajo:",ENDPOINTS:{BMAS:"Interfaz segura (SSL)",BMATOR:"Interfaz red TOR",WS2P:"Interfaz WS2P",ES_USER_API:"Nodo de datos Cesium+"}},INFO:{ONLY_SSL_PEERS:"La visualización de los nodos sin SSL está deteriorada porque Cesium funciona en modo HTTPS."}},PEER:{PEERS:"Nodos",SIGNED_ON_BLOCK:"Firmado sobre el bloque",MIRROR:"espejo",MIRRORS:"Espejo",MIRROR_PEERS:"Nodos espejo",PEER_LIST:"Lista de nodos",MEMBERS:"Miembro",MEMBER_PEERS:"Nodos miembro",ALL_PEERS:"Todos los nodos",DIFFICULTY:"Dificultad",API:"API",CURRENT_BLOCK:"Bloque #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Fuera de línea",OFFLINE_PEERS:"Nodos fuera de línea",BTN_SHOW_PEER:"Ver nodo",VIEW:{TITLE:"Nodo",OWNER:"Propiedad de",SHOW_RAW_PEERING:"Ver la mapa de red",SHOW_RAW_CURRENT_BLOCK:"Ver el último bloque (formato bruto)",LAST_BLOCKS:"Bloques recientes",KNOWN_PEERS:"Nodos conocidos:",GENERAL_DIVIDER:"Información general",ERROR:{LOADING_TOR_NODE_ERROR:"No se pudo obtener la información del nodo usando la red TOR.",LOADING_NODE_ERROR:"No se pudo obtener la información del nodo"}}},WOT:{SEARCH_HELP:"Buscar (seudónimo o llave pública)",SEARCH_INIT_PHASE_WARNING:"Durante la etapa de preinscripción, el tiempo de búsqueda de las inscripciones en espera <b>puede ser largo</b>. Gracias por su paciencia...",REGISTERED_SINCE:"Registrado en",REGISTERED_SINCE_BLOCK:"Registrado en el bloque #",NO_CERTIFICATION:"Ninguna certificación validada",NO_GIVEN_CERTIFICATION:"Ninguna certificación emitida",NOT_MEMBER_PARENTHESIS:"(no miembro)",IDENTITY_REVOKED_PARENTHESIS:"(identidad revocada)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(revocación en proceso)",EXPIRE_IN:"Expira el",NOT_WRITTEN_EXPIRE_IN:"Fecha límite<br/>de procesamiento",EXPIRED:"Expirado",PSEUDO:"Seudónimo",SIGNED_ON_BLOCK:"Emitida en el bloque #{{block}}",WRITTEN_ON_BLOCK:"Escrita en el bloque #{{block}}",GENERAL_DIVIDER:"Informaciones generales",NOT_MEMBER_ACCOUNT:"Cuenta no miembro",NOT_MEMBER_ACCOUNT_HELP:"Se trata de un simple monedero, sin solicitud de adhesión en espera.",TECHNICAL_DIVIDER:"Informaciones técnicas",BTN_CERTIFY:"Certificar",BTN_YES_CERTIFY:"Sí, certificar",BTN_SELECT_AND_CERTIFY:"Nueva certificación",ACCOUNT_OPERATIONS:"Operaciones de cuenta",VIEW:{POPOVER_SHARE_TITLE:"Identidad {{title}}"},LOOKUP:{TITLE:"Directorio",NEWCOMERS:"Nuevos miembros:",NEWCOMERS_COUNT:"{{count}} miembros",PENDING:"Inscripciones en espera:",PENDING_COUNT:"{{count}} inscripciones en espera",REGISTERED:"Inscrito {{sigDate | formatFromNow}}",MEMBER_FROM:"Miembro desde {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nuevos miembros",BTN_PENDING:"Inscripciones en espera",SHOW_MORE:"Mostrar más",SHOW_MORE_COUNT:"(límite actual a {{limit}})",NO_PENDING:"Ninguna inscripción en espera.",NO_NEWCOMERS:"Ningun miembro."},CONTACTS:{TITLE:"Contactos"},MODAL:{TITLE:"Buscar"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones",SUMMARY:"Certificaciones recibidas",LIST:"Detalle de las certificaciones recibidas",PENDING_LIST:"Certificaciones en espera de tratamiento",RECEIVED:"Certificaciones recibidas",RECEIVED_BY:"Certificaciones recibidas por {{uid}}",ERROR:"Certificaciones recibidas por error",SENTRY_MEMBER:"Miembro referente"},OPERATIONS:{TITLE:"{{uid}} - Operaciones"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificaciones emitidas",SUMMARY:"Certificaciones emitidas",LIST:"Detalle de las certificaciones emitidas",PENDING_LIST:"Certificaciones en espera a ser procesadas",SENT:"Certificaciones emitidas",SENT_BY:"Certificaciones emitidas por {{uid}}",ERROR:"Certificaciones emitidas por error"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Conexión',SCRYPT_FORM_HELP:"Ingrese sus credenciales.<br>Recuerde verificar que la clave pública es su cuenta.",PUBKEY_FORM_HELP:"Por favor ingrese una clave de cuenta pública:",FILE_FORM_HELP:"Elija el archivo de llavero para usar:",SCAN_FORM_HELP:"Escanee el código QR de la monedero.",SALT:"Identificador secreto",SALT_HELP:"Identificador secreto",SHOW_SALT:"¿Visualizar el identificador secreto?",PASSWORD:"Frase secreta",PASSWORD_HELP:"Frase secreta",PUBKEY_HELP:"llave pública",NO_ACCOUNT_QUESTION:"¿Aún no tiene cuenta?",HAVE_ACCOUNT_QUESTION:"¿Ya tienes una cuenta?",CREATE_ACCOUNT:"Crear una cuenta",CREATE_FREE_ACCOUNT:"Crear una cuenta gratis",FORGOTTEN_ID:"¿Olvidó su frase secreta?",ASSOCIATED_PUBKEY:"Clave pública del llavero:",BTN_METHODS:"Otros métodos",BTN_METHODS_DOTS:"Método de cambio...",METHOD_POPOVER_TITLE:"Métodos",MEMORIZE_AUTH_FILE:"Recuerda este llavero al momento de la sesión de navegación",SCRYPT_PARAMETERS:"Configuraciones (Scrypt) :",AUTO_LOGOUT:{TITLE:"Información",MESSAGE:'<i class="ion-android-time"></i> Se ha <b>desconectado</b> de forma automática, después de un periodo de inactividad prolongada.',BTN_RELOGIN:"Volver a conectarme",IDLE_WARNING:"Se desconectará en... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identificación predeterminada",SCRYPT_ADVANCED:"Sallaje avanzado",FILE:"Archivo llavero",PUBKEY:"Solo clave pública",SCAN:"Escanear un código QR"},SCRYPT:{SIMPLE:"Ligero",DEFAULT:"Predeterminado",SECURE:"Seguro",HARDEST:"El más seguro",EXTREME:"Extremo",USER:"Personalizado",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Formato de archivo esperado: <b>.yml</b> o <b>.dunikey</b> (tipo PubSec, WIF o EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> AAutenticación',BTN_AUTH:"Autenticar",GENERAL_HELP:"Por favor, autentíquese:",EXPECTED_UID_HELP:'Por favor inicie sesión en la cuenta de <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Por favor, autentifíquese en la monedero <i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Escanee el código QR de la <b>clave privada</b> de la monedero."},ACCOUNT:{TITLE:"Mi cuenta",BALANCE:"Saldo",LAST_TX:"última validadas transacción",BALANCE_ACCOUNT:"Saldo de la cuenta",NO_TX:"Ninguna transacción",SHOW_MORE_TX:"Mostrar más",SHOW_ALL_TX:"Mostrar todo",TX_FROM_DATE:"(límite actual a {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacciones en proceso de se procesadas",VALIDATING_TX:"Transacciones validadas",ERROR_TX:"Transacciones no ejecutadas",ERROR_TX_SENT:"Transacciones ejecutadas fallidas",PENDING_TX_RECEIVED:"Tansacciones en espera de recepción",EVENTS:"Eventos",WAITING_MEMBERSHIP:"Solicitud de adhesión emitida. En espera de aceptación.",WAITING_CERTIFICATIONS:"Debe obtener {{needCertificationCount}} certificación(es) para ser miembro.",WILL_MISSING_CERTIFICATIONS:"Pronto le van a <b>faltar certificaciones</b> (al menos {{willNeedCertificationCount}} son necesarias)",WILL_NEED_RENEW_MEMBERSHIP:"Su adhesión como miembro <b>va a expirar {{membershipExpiresIn|formatDurationTo}}</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a> mientras tanto.",NEED_RENEW_MEMBERSHIP:"No es miembro porque su adhesión <b>ha expirado</b>. Piense en <a ng-click=\"doQuickFix('renew')\">renovar su adhesión</a>.",NO_WAITING_MEMBERSHIP:"No hay adhesión miembro en espera. Si desea <b>convertirse en miembro</b>, por favor <a ng-click=\"doQuickFix('membership')\">envíe su adhesión como miembro</a>.",CERTIFICATION_COUNT:"Certificaciones recibidas",CERTIFICATION_COUNT_SHORT:"Certificaciones",SIG_STOCK:"Certificaciones emitidas",BTN_RECEIVE_MONEY:"Recibir",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Cambiar a otra identidad...",BTN_FIX_MEMBERSHIP:"Volver a enviar la adhesión...",BTN_MEMBERSHIP_RENEW:"Renovar la adhesión",BTN_MEMBERSHIP_RENEW_DOTS:"Renovar la adhesión...",BTN_MEMBERSHIP_OUT_DOTS:"Cancelar la adhesión...",BTN_SECURITY_DOTS:"Cuenta y securidad...",BTN_SHOW_DETAILS:"Publicar la información técnica",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importe bloqueado",DESCRIPTION:"Aquí están las condiciones para desbloquear este importe:",DESCRIPTION_MANY:"Esta transacción esta compuesta de varias partes, cuyas condiciones de desbloqueo son:",LOCKED_AMOUNT:"Condiciones del importe:"},NEW:{TITLE:"Inscripción",INTRO_WARNING_TIME:"Crear una cuenta en {{name|capitalize}} es muy simple. Sin embargo, por favor tome el tiempo suficiente para dar correctamente este paso (no olvidar los identificadores, frase secreta, etc.).",INTRO_WARNING_SECURITY:"Asegúrece de que el equipo que utiliza actualmente (ordenador, tableta, teléfono) <b>es seguro y digno de confianza</b>.",INTRO_WARNING_SECURITY_HELP:"Actualizaciones de antivirus, firewall activado, sesión protegidos por contraseña o código PIN, etc.",INTRO_HELP:"Haga clic en <b>{{'COMMON.BTN_START'|translate}}</b> para iniciar la creación de la cuenta. Se le guiará paso a paso.",REGISTRATION_NODE:"Su registro será grabado a través del nodo Duniter <b>{{server}}</b>, que luego se transmitirá al resto del sistema de la moneda.",REGISTRATION_NODE_HELP:"Si usted no confía en este nodo, <a ng-click=\"doQuickFix('settings')\">cambie la configuración</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Elegir el tipo de cuenta a crear:",MEMBER_ACCOUNT:"Cuenta miembro",MEMBER_ACCOUNT_TITLE:"Crear una cuenta miembro",MEMBER_ACCOUNT_HELP:"Si aún no está inscrito como un individuo (Solamente una cuenta posible por individuo).",WALLET_ACCOUNT:"Simple monedero",WALLET_ACCOUNT_TITLE:"Crear una cuenta simple",WALLET_ACCOUNT_HELP:"Monedero simple para todos los otros casos, por ejemplo si necesita una cuenta suplementaria.<br/>El Dividendo Universal no será producido para esta cuenta.",SALT_WARNING:"Elija su identificador secreto.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien este identificador secreto</b>.<br/>¡En caso de pérdida, nadie podrá acceder a su cuenta!",PASSWORD_WARNING:"Elija su frase secreta.<br/>Se solicitará cada vez que se conectará con esta cuenta.<br/><br/><b>Retenga bien esta frase secreta</b>.<br/>¡En caso de pérdida, nadie podrá acceder su cuenta!",PSEUDO_WARNING:"Elija un seudónimo.<br/>Sirve para que los otros miembros puedan encontrarlo más fácilmente.<br/><br/>No debe contener <b>ni espacios ni caracteres acentuados</b>.<div class='hidden-xs'><br/>Ejemplo: <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Seudónimo",PSEUDO_HELP:"Seudónimo",SALT_CONFIRM:"Confirmación",SALT_CONFIRM_HELP:"Confirmación del identificador secreto",PASSWORD_CONFIRM:"Confirmación",PASSWORD_CONFIRM_HELP:"Confirmación de la frase secreta",SLIDE_6_TITLE:"Confirmación:",COMPUTING_PUBKEY:"Cálculo en proceso...",LAST_SLIDE_CONGRATULATION:"<b>¡Bien!</b> Ha introducido todas los datos necesarias.<br/><b>Puede solicitar</b> la creación de su cuenta.</b><br/><br/>Para su información, la llave pública que se muestra más abajo identificará su futura cuenta.<br/>Esta podrá ser comunicada a terceros para recibir sus pagos.<br/>Sin embargo, <b>no es útil</b> anotarla aquí.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto, la frase secreta y el seudónimo no podrán estar modificados.<br/><b>¡Asegúrese siempre de recordarlos!</b><br/><br/><b>¿Está usted seguro</b> de querer solicitar la inscripción?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Advertencia:</b> el identificador secreto y la frase secreta no podrán estar modificados.<br/><b>¡Asegúrese de recordarlos siempre!</b><br/><br/><b>¿Está usted seguro</b> de querer continuar con estos identificadores?',CHECKING_PSEUDO:"Comprobar de disponibilidad...",PSEUDO_AVAILABLE:"Este nombre está disponible",PSEUDO_NOT_AVAILABLE:"Este nombre de usuario no está disponible",INFO_LICENSE:"Para unirse a la moneda, le pedimos leer y aceptar esta licencia.",BTN_ACCEPT:"Acepto",BTN_ACCEPT_LICENSE:"Acepto la licencia"},POPUP_REGISTER:{TITLE:"Elija un seudónimo",HELP:"Un seudónimo es obligatorio para ser miembro."},SELECT_IDENTITY_MODAL:{TITLE:"Selección de identidad",HELP:'Se han enviado varias <b>identidades diferentes</b> para la clave pública <span class="gray"><i class="ion-key"></i>{{pubkey | formatPubkey}}</span>.<br/>Por favor, selecciona la carpeta para usar:'},SELECT_WALLET_MODAL:{TITLE:"Selección de monedero"},WALLET_LIST:{TITLE:"Mis monederos",BTN_NEW:"Añadir un monedero",BTN_DOWNLOAD:"Descargue la lista",BTN_IMPORT_FILE_DOTS:"Importar desde un archivo...",NO_WALLET:"Sin monedero secundaria",BTN_DELETE:"Eliminar una monedero secundaria...",BTN_RENAME:"Renombrar el monedero",EXPORT_FILENAME:"monederos-{{pubkey|formatPubkey}}-{{currency}}.csv",EDIT_POPOVER:{TITLE:"Renombrar el monedero",HELP:"Completa el nuevo nombre",NAME_HELP:"Nombre de la monedero"}},SECURITY:{ADD_QUESTION:"Añadir una pregunta personalizada",BTN_CLEAN:"Limpiar",BTN_RESET:"Reinicializar",DOWNLOAD_REVOKE:"Grabar un fichero de revocación",HELP_LEVEL:"Para generar un fichero de respaldo de sus identificadores, elija <strong> al menos {{nb}} preguntas:</strong>",LEVEL:"Nivel de seguridad",LOW_LEVEL:'Bajo <span class="hidden-xs">(mínimo dos preguntas)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(mínimo cuatro preguntas)</span>',QUESTION_1:"¿Cómo se llamaba su mejor amigo de la adolescencia?",QUESTION_2:"¿Cómo se llamaba su primer animal de compañía?",QUESTION_3:"¿Cuál es el primer plato que aprendió a cocinar?",QUESTION_4:"¿Cuál es la primera película que vió en un cine?",QUESTION_5:"¿Cuál era el destino del primer avión que cogió?",QUESTION_6:"¿Cómo se llamaba su maestro favorito en la escuela primaria?",QUESTION_7:"¿Cuál sería para usted el mejor oficio?",QUESTION_8:"¿Cuál es su libro para niños preferido?",QUESTION_9:"¿Cuál fue el modelo de su primer vehículo?",QUESTION_10:"¿Cuál fue su sobrenombre cuando era niña(o)?",QUESTION_11:"¿Cuál fue su personaje o actor/actriz preferido/a cuando era estudiante?",QUESTION_12:"¿Cuál fue su cantante o grupo preferido/a cuando era estudiante?",QUESTION_13:"¿En qué ciudad sus padres se encontraron?",QUESTION_14:"¿Cómo se llamaba su primer jefe?",QUESTION_15:"¿Cómo se llama la calle donde creció?",QUESTION_16:"¿Cómo se llama la primera playa donde se bañó?",QUESTION_17:"¿Cuál es el primer álbum que compró?",QUESTION_18:"¿Cuál es el nombre de su equipo deportivo preferido?",QUESTION_19:"¿Cuál fue el oficio de su abuelo?",RECOVER_ID:"Recuperar sus identificadores",REVOCATION_WITH_FILE:"Revocar una identidad a partir de un fichero",REVOCATION_WITH_FILE_DESCRIPTION:"Si ha perdido las credenciales de su cuenta de miembro de forma permanente (o la seguridad de la cuenta se ve comprometida), puede usar <b>el archivo de revocación de la cuenta</b> para forzar publicación final de la web de confianza.",REVOCATION_WITH_FILE_HELP:"Para <b>revocar permanentemente</b> una cuenta de miembro, arrastre el archivo de revocación en el cuadro siguiente o haga clic en el cuadro para buscar un archivo.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",REVOCATION_WALLET:"Revocar esta identidad",SAVE_ID:"Grabar sus identificadores",STRONG_LEVEL:'Alto <span class="hidden-xs ">(6 preguntas mínimo)</span>',TITLE:"Cuenta y seguridad"},FILE_NAME:"{{currency}} - Estado de cuenta {{pubkey|formatPubkey}} a {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Fecha",AMOUNT:"Cantidad",COMMENT:"Comentario"}},TRANSFER:{TITLE:"Transferencia",SUB_TITLE:"Hacer una transferencia",FROM:"De",TO:"A",AMOUNT:"Importe",AMOUNT_HELP:"Importe",COMMENT:"Comentario",COMMENT_HELP:"Comentario",BTN_SEND:"Enviar",BTN_ADD_COMMENT:"Añadir un comentario",REST:"Resto de cuenta",REST_TO:"a",WARN_COMMENT_IS_PUBLIC:"Tenga en cuenta que los <b>comentarios son públicos</b> (sin encriptar).",MODAL:{TITLE:"Transferencia"}},ERROR:{UNKNOWN_URI_FORMAT:"Formato URI desconocido",PUBKEY_INVALID_CHECKSUM:"Clave pública no válida (suma de comprobación incorrecta).",POPUP_TITLE:"Error",UNKNOWN_ERROR:"Error desconocido",CRYPTO_UNKNOWN_ERROR:"Su navegador parece incompatible con las funcionalidades de cryptografía.",DOWNLOAD_KEYFILE_FAILED:"Error al generar el archivo de llavero.",EQUALS_TO_PSEUDO:"Debe ser diferente del seudónimo.",EQUALS_TO_SALT:"Debe ser diferente del identificador secreto.",FIELD_REQUIRED:"Campo obligatorio.",FIELD_TOO_SHORT:"Valor demasiado corta.",FIELD_TOO_SHORT_WITH_LENGTH:"Valor demasiado corta ({{minLength}} carácteres mín)",FIELD_TOO_LONG:"Valor demasiado largo",FIELD_TOO_LONG_WITH_LENGTH:"Valor demasiado largo, ({{maxLength}} carácteres máx)",FIELD_MIN:"Valor mínimo: {{min}}",FIELD_MAX:"Valor máximo: {{max}}",FIELD_ACCENT:"Caracteres acentuados y comas no autorizados",FIELD_NOT_NUMBER:"Valor numérico esperado",FIELD_NOT_INT:"Valor entero esperado",FIELD_NOT_EMAIL:"Email no válido",PASSWORD_NOT_CONFIRMED:"No corresponde a la frase secreta.",SALT_NOT_CONFIRMED:"No corresponde al identificador secreto.",SEND_IDENTITY_FAILED:"Error de la inscripción.",SEND_CERTIFICATION_FAILED:"Error de la certificación.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"No se puede certificar, porque su cuenta no <b>es miembro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"No se puede certificar, porque su cuenta ya no es miembro.<br/><br/>Todavía faltan certificaciones, o ahora no son validas.",NOT_MEMBER_FOR_CERTIFICATION:"Su cuenta todavía no es miembro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Cuenta no certificable. No se ha solicitado la adhesión, o no fue renovada.",LOGIN_FAILED:"Error durante la autentificación.",LOAD_IDENTITY_FAILED:"Error de carga de la identidad.",LOAD_REQUIREMENTS_FAILED:"Error de carga de las condiciones de la identidad.",SEND_MEMBERSHIP_IN_FAILED:"Error en el intento de entrada en la comunidad.",SEND_MEMBERSHIP_OUT_FAILED:"Error en la interrupción de adhesión.",REFRESH_WALLET_DATA:"Error en la actualización del monedero.",GET_CURRENCY_PARAMETER:"Error en la recuperación de las reglas de moneda.",GET_CURRENCY_FAILED:"Carga de la moneda imposible. Por favor, intente más tarde.",SEND_TX_FAILED:"Error en la transferencia.",ALL_SOURCES_USED:"Por favor, espera el cálculo del bloque siguiente (Todas sus fuentes de moneda fueron utilizada).",NOT_ENOUGH_SOURCES:"No lo bastante cambio para mandar este importe en una sola transacción.<br/>Importe máximo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error en la creación de la cuenta miembro.",RESTORE_WALLET_DATA_ERROR:"Error en la recarga de las configuración desde el almacenamiento local",LOAD_WALLET_DATA_ERROR:"Error en la carga de los datos del monedero.",COPY_CLIPBOARD_FAILED:"Copia de la valor imposible.",TAKE_PICTURE_FAILED:"Error en la recuperación de la foto.",SCAN_FAILED:"Error en el escán del Codigo QR",SCAN_UNKNOWN_FORMAT:"Codigo no reconocido.",WOT_LOOKUP_FAILED:"Error en la búsqueda",LOAD_PEER_DATA_FAILED:"Lectura del nodo Duniter imposible. Por favor, intente más tarde.",NEED_LOGIN_FIRST:"Por favor, conéctese en primer lugar.",AMOUNT_REQUIRED:"El importe es obligatorio.",AMOUNT_NEGATIVE:"Importe negativo no autorizado.",NOT_ENOUGH_CREDIT:"Crédito insuficiente.",INVALID_NODE_SUMMARY:"Nodo ilocalizable o dirección inválida.",INVALID_USER_ID:"El seudónimo no debe contener ni espacios ni caracteres especiales o acentuado.",INVALID_COMMENT:"El campo 'referencia’ no debe contener carácteres acentuados.",INVALID_PUBKEY:"La clave pública no tiene el formato esperado.",INVALID_PUBKEY_CHECKSUM:"Suma de comprobación inválida.",IDENTITY_REVOKED:"Esta identidad <b>fue revocada</b>. No puede estar miembro.",IDENTITY_REVOKED_WITH_TIME:"Esta identidad <b>fue revocada {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). No puede estar miembro.",IDENTITY_PENDING_REVOCATION:"La <b>revocación de esta identidad</b> fue solicitado y esta en espera de tratamiento. Por lo que, la certificación es desactivada.",IDENTITY_INVALID_BLOCK_HASH:"Esta solicitud de adhesión no es valida (porque denomina un bloque los nodos de la red han anulado): esta persona debe renovelar su solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_EXPIRED:"La publicación de esta identidad ha caducada: esta persona debe realizar una nueva solicitud de adhesión <b>antes que</b> estar certificada.",IDENTITY_SANDBOX_FULL:"EL nodo Duniter utilizado por Cesium ya no puede recibir más nuevas identidades, porque la fila de espera es llena.<br/><br/>Por favor, intenta ulteriormente o cambia de nodo (vía el menú <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identidad no encontrada",IDENTITY_TX_FAILED:"Las operaciones de carga fallidos",WOT_PENDING_INVALID_BLOCK_HASH:"Adhesión no validada.",WALLET_INVALID_BLOCK_HASH:"Su solicitud de adhesión ya no está validada (porque denomina un bloque los nodos de la red han anulado).<br/>Debe <a ng-click=\"doQuickFix('fixMembership')\">mandar una nueva solicitud</a> para resolver este problema.",WALLET_IDENTITY_EXPIRED:"La publicación de <b>su identidad ha caducada</b>.<br/>Debe <a ng-click=\"doQuickFix('fixIdentity')\">publicar une outra vez su identidad</a> para resolver este problema.",WALLET_REVOKED:"Su identidad fue <b>revocada</b>: ni su seudónimo ni su llave pública podrán estar utilizados en el futuro por una cuenta miembro.",WALLET_HAS_NO_SELF:"Su identidad debe en primer lugar haber estado publicado, y no estar caducada.",AUTH_REQUIRED:"Autenticación requerida.",AUTH_INVALID_PUBKEY:"La llave pública no se corresponde con la cuenta conectada",AUTH_INVALID_SCRYPT:"De usuario o contraseña no válidos.",AUTH_INVALID_FILE:"archivo de llave no válido.",AUTH_FILE_ERROR:"No se pudo abrir el archivo de llave",IDENTITY_ALREADY_CERTIFY:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación todavía es valida (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Ha <b>ya certificado</b> esta identidad.<br/><br/>Esta certificación está en espera de tratamiento (fecha límite de tratamiento {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certificación imposible",LOAD_NEWCOMERS_FAILED:"Error el la carga de los miembros nuevos.",LOAD_PENDING_FAILED:"Error el la carga de las inscripciones en espera.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Debe <b>estar miembro</b> para poder realizar esta acción.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Debe haber <b>publicado su identidad</b> para poder realizar esta acción.",GET_BLOCK_FAILED:"Error en la recuperación del bloque",INVALID_BLOCK_HASH:"Bloque no encontrado (hash diferente)",DOWNLOAD_REVOCATION_FAILED:"Debe seleccionar un fichero de texto",REVOCATION_FAILED:"Error en la revocación.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identificador secreto o contraseña incorrectos",RECOVER_ID_FAILED:"Error en la recuperación de los identificadores",LOAD_FILE_FAILED:"Error en la carga del fichero",NOT_VALID_REVOCATION_FILE:"Archivo de revocación no válido (formato de archivo erróneo)",NOT_VALID_SAVE_ID_FILE:"Archivo no válido (formato de archivo erróneo)",NOT_VALID_KEY_FILE:"Archivo no válido (formato de archivo erróneo)",EXISTING_ACCOUNT:"Su frase secreta corresponde a una cuenta existente, la <a ng-click=\"showHelpModal('pubkey')\">clave pública</a> es:",EXISTING_ACCOUNT_REQUEST:"Por favor, cambie su frase secreta para que coincida con una cuenta sin usar.",GET_LICENSE_FILE_FAILED:"Error al obtener el archivo de licencia",CHECK_NETWORK_CONNECTION:"Ningún nodo parece alcanzable.<br/><br/><b>Compruebe la conexión a Internet</b>.",INVALID_FILE_FORMAT:"Formato de archivo inválido.",SAME_TX_RECIPIENT:"El destinatario debe ser diferente del emisor."},INFO:{POPUP_TITLE:"Información",CERTIFICATION_DONE:"Certificación enviada",NOT_ENOUGH_CREDIT:"Crédito insuficiente",TRANSFER_SENT:"Transferencia enviada",COPY_TO_CLIPBOARD_DONE:"Copia realizada",MEMBERSHIP_OUT_SENT:"Anulación enviada",NOT_NEED_MEMBERSHIP:"Ya es miembro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Esta identidad pronto va a necesitar certificaciones (al menos {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Esta identidad no envió una solicitud de membresía. Ella tendrá que hacerlo si desea hacerse miembro.",HAS_ALTERNATIVE_IDENTITIES:"Hay <b>identidades múltiples</b> adjuntas a esta clave pública. <b>Antes de cualquier certificación</b>, <a ng-click=\"doQuickFix('showSelectIdentities')\">verifique otras identidades</a> para elegir la correcta o comuníquese con el propietario de la cuenta.",REVOCATION_SENT:"Revocación enviada",REVOCATION_SENT_WAITING_PROCESS:"La <b>revocación de esta identidad</b> fue solicitada y está en espera de ser procesada.",FEATURES_NOT_IMPLEMENTED:"Esta funcionalidad todavía está en proceso de desarrollo.<br/><br/>¿Por qué no <b>contribuir a Cesium</b>, para obtenerla más rápido? ;)",EMPTY_TX_HISTORY:"Ninguna operación a exportar"},CONFIRM:{POPUP_TITLE:"<b>Confirmación</b>",POPUP_WARNING_TITLE:"<b>Advertencia</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Advertencia de seguridad</b>',CERTIFY_RULES_TITLE_UID:"Certificar {{uid}}",CERTIFY_RULES:'<b class="assertive">NO CERTIFICAR</b> una cuenta si piense que :<br/><br/><ul><li>1.) no corresponde a una persona <b>física y viviente</b>.<li>2.) su propietario <b>posee una otra cuenta</b> ya certificada.<li>3.) su propietario viola (voluntariamente o no) la regla 1 o 2 (por ejemplo certificando cuentas falsas o duplicadas).</ul><br/><b>¿Está usted seguro</b> sin embargo querer certificar esta identidad?',TRANSFER:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",TRANSFER_ALL:"<b>Recapitulativo de la transferencia</b>:<br/><br/><ul><li> - De: {{from}}</li><li> - A: <b>{{to}}</b></li><li> - Importe: <b>{{amount}} {{unit}}</b></li><li> - Comentario: <i>{{comment}}</i></li><br/><li> - Resto: <b>{{restAmount}} {{unit}}</b> para <b>{{restTo}}</b></li></ul><br/><b>¿Está usted seguro de querer realizar esta transferencia?</b>",MEMBERSHIP_OUT:"Esta operación es <b>irreversible</b>.<br/></br/>¿Está usted seguro querer <b>anular su cuenta miembro</b>?",MEMBERSHIP_OUT_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro querer <b>anular su adhesión</b> como miembro?",LOGIN_UNUSED_WALLET_TITLE:"¿Error de introducción de datos?",LOGIN_UNUSED_WALLET:"Está usted conectado a une cuenta que parece <b>inactiva</b>.<br/><br/>Si esta cuenta no corresponde a la suya, se trata probablemente de un <b>error al introducir los datos</b> de sus identificadores de conexión.<br/></br/><b>¿Quiere usted sin embargo continuar con esta cuenta?</b>",FIX_IDENTITY:"El seudónimo <b>{{uid}}</b> va a ser publicado de nuevo, en reemplazo del antiguo que caducó.<br/></br/><b>¿Está usted seguro</b> de querer continuar?",FIX_MEMBERSHIP:"Su solicitud de adhesión como miembro va a ser enviada de nuevo.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",MEMBERSHIP:"Se enviará su solicitud de membresía como miembro.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",RENEW_MEMBERSHIP:"Su adhesión como miembro va a estar renovada.<br/></br/><b>¿Está usted seguro</b>de querer continuar?",REVOKE_IDENTITY:"Va a <b>revocar definitivamente esta identidad</b>.<br/><br/>La llave pública y el seudónimo asociados <b>jamás podrán ser utilizados</b> (para una cuenta miembro). <br/></br/><b>¿Está usted seguro</b> de querer revocar definitivamente esta cuenta?",REVOKE_IDENTITY_2:"¡Esta operación es <b>irreversible</b>!<br/><br/>¿Está usted seguro de querer <b>revocar definitivamente</b> esta cuenta?",NOT_NEED_RENEW_MEMBERSHIP:"Su adhesión no necesita ser renovada (solo va a caducar en {{membershipExpiresIn|formatDuration}}).<br/></br/><b>¿Está usted segura(o)</b> de querer renovar su adhesión?",SAVE_BEFORE_LEAVE:"¿Quiere usted <b>guardar sus cambios</b> antes dejar la página?",SAVE_BEFORE_LEAVE_TITLE:"Cambios no registrados",LOGOUT:"¿Está usted segura(o) de querer desconectarse?",USE_FALLBACK_NODE:"Nodo <b>{{edad}}</ b> inalcanzable o no válido.<br/><br/>¿Desea utilizar temporalmente el nodo <b>{{nuevo}}</b>?"},DOWNLOAD:{POPUP_TITLE:"<b>Revocación del archivo</b>",POPUP_REVOKE_MESSAGE:"Para proteger su cuenta, descargar el <b>documento de revocación de cuenta</b>. Si se necesita cancelar su cuenta (en caso de robo, cambio de identificador, una cuenta falsa creada, etc.).<br/><br/><b>Por favor, almacénelo en un lugar seguro.</b>"},HELP:{TITLE:"Ayuda en línea",JOIN:{SECTION:"Inscripción",SALT:'El identificador secreto es muy importante. Sirve para mezclar la frase secreta, antes de calcular la <span class="text-italic">llave pública</span> de su cuenta (su número) y la llave secreta para acceder a esta.<br/><b>Por favor, memorícelo muy bien</b> porque actualmente no existe ninguna manera para encontrarlo en caso de pérdida.<br/>Por otra parte, no puede ser modificado sin tener que crear una nueva cuenta.<br/><br/>Un buen identificador secreto debe ser suficientemente largo (al menos 8 carácteres) y lo más original posible.',PASSWORD:"La frase secreta es muy importante. Junto al identificador secreto, sirve a calcular el número (la llave pública) de su cuenta, y la llave secreta para acceder a ella.<br/><b>Por favor, memorícela muy bien</b> porque actualmente no existe ninguna manera para encontrarla en caso de pérdida (excepto el generar un fichero de respaldo).<br/>Por otra parte, no puede ser modificado sin deber creer una nueva cuenta.<br/><br/>Una buena frase secreta contiene (idealmente) al menos 8 carácteres, del que al menos una mayúscula y un número.",PSEUDO:'El seudónimo es solamente utilizado en caso de inscripción como <span class="text-italic">miembro</span>. Siempre es asociado a un monedero (vía su <span class="text-italic">llave pública</span>).<br/>El seudónimo se publica en la red para que los otros usuarios puedan identificarlo, certificarlo o enviar dinero a la cuenta.<br/>Un seudónimo debe ser único dentro de los miembros (<u>actuales</u> y antiguos).'},GLOSSARY:{SECTION:"Glosario",PUBKEY_DEF:"Una llave pública identifica un monedero. Puede identificar un miembro. En Cesium se calcula con el identificador y la frase secreta.",MEMBER:"Miembro",MEMBER_DEF:'Un miembro es una persona humana física y viviente, deseosa de participar libremente a la comunidad monetaria. Percibe un dividendo universal, dependiendo de un período y un importe definido en las <span class="text-italic">reglas de la moneda</span>',CURRENCY_RULES:"Reglas de la moneda",CURRENCY_RULES_DEF:'Las reglas de la moneda son definidas una sola vez por todas. Establecen el funcionamiento de la moneda: el cálculo del dividendo universal, la cantidad de certificaciones necesarias para ser miembro, la cantidad máxima de certificaciones que un miembro puede emitir, etc. <a href="#/app/currency">Ver las reglas actuales</a>.<br/> Una <span class="text-italic">BlockChain</span> que soporta y ejecuta estas reglas, y verifica continuamente su buena aplicación, hace posible que ellas no se modifiquen en el tiempo.',BLOCKCHAIN:'Cadena de bloques (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain es un sistema descentralizado, que, para el caso de Duniter, sirve a mantener y ejecutar las <span class="text-italic">reglas de la moneda</span>.<br/><a href="http://duniter.org" target="_system">Saber más a proposito de Duniter</a> y el funcionamiento de su blockchain.',UNIVERSAL_DIVIDEND_DEF:'El Dividendo Universal (DU) es la cantidad de moneda co-creada por cada miembro, dependiendo del periodo y del cálculo definidos en las <span class="text-italic">reglas de la moneda</span>.<br/>En cada periodo, los miembros reciben en sus cuentas la misma cantidad de dinero.<br/><br/>El DU crece regularmente, para ser justo entre los miembros (actuales y futuros), calculado en función de la esperanza de vida media, como demostrado en la Théorie Relative de la Monnaie (TRM) = Teoría Relativa de la Moneda, aún no está traducida en español, contáctenos para contribuir a su traducción.<br/><a href="http://trm.creationmonetaire.info">Saber más a propósito de la TRM</a> y las monedas libres.'},TIP:{MENU_BTN_CURRENCY:"El menú <b>{{'MENU.CURRENCY'|translate}}</b> permite consultar las <b>reglas de la moneda</b> y su estado.",CURRENCY_WOT:"El <b>número de miembros</b> demuestra la importancia de la comunidad y permite <b>seguir su evolución</b>.",CURRENCY_MASS:"Siga aquí la <b>cantidad total de moneda</b> existente y su <b>distribución media</b> por miembro.<br/><br/>Esto permite juzgar la <b>importancia de un importe</b>, en relación con lo que <b>poseen los otros</b> en sus cuentas (como media).",CURRENCY_UNIT_RELATIVE:"La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que los importes en {{currency|capitalize}} han sido divididos entre el valor del <b>Dividendo Universal</b> (DU).<br/><br/><small> Esta unidad relativa es <b>pertinente</b>, porque permanece estable, independiente de la cantidad de moneda que aumenta constantemente.</small>",CURRENCY_CHANGE_UNIT:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes <b>directamente en {{currency|capitalize}}</b> (en lugar de &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Este botón permite <b>cambiar la unidad</b>, para visualizar los importes en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, es decir, relativo al Dividendo Universal (el monto co-producido por cada miembro).",CURRENCY_RULES:"Las <b>reglas</b> de la moneda fijan su funcionamiento <b>exacto y previsible</b>.<br/><br/>Es el propio ADN de la moneda, que hace que su código monetario sea <b>legible y transparente</b>.",MENU_BTN_NETWORK:"El menú <b>{{'MENU.NETWORK'|translate}}</b> permite consultar el estado de la red.",NETWORK_BLOCKCHAIN:"Todas las operaciones de la moneda están registradas dentro de un grand libro de cuenta <b>público e infalsificable</b>, también llamado <b>cadena de bloques</b> (<em>BlockChain</em> en inglés).",NETWORK_PEERS:"Los <b>nodos</b> visibles aquí corresponden a los <b>ordenadores que actualizan y controlan</b> la cadena de bloques.<br/><br/>Entre más nodos estén conectados, la moneda tendrá una gestión más <b>descentralizada</b> y digna de confianza.",NETWORK_PEERS_BLOCK_NUMBER:"Este <b>número</b> (en verde) indica el <b>último bloque validado</b> por este nodo (última pagina escrita dentro del grand libro de cuentas).<br/><br/>El color verde indica que este bloque ha sido también validado por <b>la mayoría de los otros nodos</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Cada miembro</b>, equipado de un ordenador conectador a Internet, <b>puede participar añadiendo un nodo</b>.  Necesita <b>instalar el programa Duniter</b> (libre y gratis). <a href="{{installDocUrl}}" target="_system">Ver el manual de uso &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"El menú <b>{{'ACCOUNT.TITLE'|translate}}</b> permite acceder a la gestión de su cuenta.",MENU_BTN_ACCOUNT_MEMBER:"Consulte aquí el estado de su cuenta y la información sobre sus certificaciones.",WALLET_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus certificaciones (recibidas y emitidas).",WALLET_RECEIVED_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones recibidas</b>.",WALLET_GIVEN_CERTIFICATIONS:"Haga clic aquí para consultar el detalle de sus <b>certificaciones emitidas</b>.",WALLET_BALANCE:"El <b>saldo</b> de su cuenta se visualiza aquí.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>La unidad utilizada (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa que el importe en {{currency|capitalize}} fue dividido entre el <b>Dividendo Universal</b> (DU) co-producido por cada miembro.<br/><br/>Actualmente un DU vale {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Podrá <b>cambiar la unidad</b> de visualización de los importes en los <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Por ejemplo, para visualizar los importes <b>directamente en {{currency|capitalize}}</b>, en lugar de unidad relativa.",WALLET_PUBKEY:"Esta es la llave pública de su cuenta. Puede comunicarla a un tercero para que pueda identificar su cuenta de forma simple.",WALLET_SEND:"Realizar un pago en algunos clics",WALLET_SEND_NO_MONEY:"Realizar un pago en algunos clics.<br/>(Su saldo ya no lo permite)",WALLET_OPTIONS:"Este botón permite acceder a las <b>acciones de adhesión</b> y de seguridad.<br/><br/>¡No olvide echar un vistazo!",WALLET_RECEIVED_CERTS:"Se exhibirá aquí la lista de las personas que le han certificado.",WALLET_CERTIFY:"El botón <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permite seleccionar una identidad y certificarla.<br/><br/>Sólo usuarios <b>miembros</b> pueden certificar a otros.",WALLET_CERT_STOCK:"Su stock de certificaciones (emitidas) es limitado a <b>{{sigStock}} certificaciones</b>.<br/><br/>Este stock se renueva con el tiempo, a medida que las certificaciones caducan.",MENU_BTN_TX_MEMBER:"El menú <b>{{'MENU.TRANSACTIONS'|translate}}</b> permite consultar su saldo, el historial de sus transacciones y mandar un pago.",MENU_BTN_TX:"Consulte aquí <b>el historial de sus transacciones</b> y efectúe nuevas operaciones.",MENU_BTN_WOT:"El menú <b>{{'MENU.WOT'|translate}}</b> permite buscar <b>usuarios</b> de la moneda (miembro o no).",WOT_SEARCH_TEXT_XS:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública).<br/><br/>La búsqueda se iniciará automáticamente.",WOT_SEARCH_TEXT:"Para buscar en el directorio, escribe las <b>primeras letras de un seudónimo</b> (o de una llave pública). <br/><br/>Luego, pulsa en la tecla <b>Entrada</b> para iniciar la búsqueda.",WOT_SEARCH_RESULT:"Visualiza la ficha detallada simplemente <b>haciendo un clic</b> sobre una línea.",WOT_VIEW_CERTIFICATIONS:"La línea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> muestra cuántos miembros han validado esta identidad.<br/><br/>Estas certificaciones atestiguan que la cuenta pertenece a <b>una persona humana viviente</b> y que no tenga <b>ninguna otra cuenta miembro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Necesita al menos <b>{{sigQty}} certificaciones</b> para ser miembro y recibir el <b>Dividendo Universal</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic aquí permite abrir <b>la lista de todas las certificaciones</b> de la identidad (recibidas y emitidas).",WOT_VIEW_CERTIFY:"El botón <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permite añadir su certificación a esta identidad.",CERTIFY_RULES:"<b>Atención:</b> Certificar solamente <b>personas físicas vivas</b>, que no posean ninguna otra cuenta miembro.<br/><br/>¡La seguridad de la moneda depende de la vigilancia de cada uno!",MENU_BTN_SETTINGS:"Los <b>{{'MENU.SETTINGS'|translate}}</b> le permitirán configurar la aplicación.",HEADER_BAR_BTN_PROFILE:"Haga un clic aquí para acceder a su <b>perfil de usuario</b>",SETTINGS_CHANGE_UNIT:"Podrá <b>cambiar la unidad de visualización</b> de los importes haciendo un clic más arriba.<br/><br/>- Desactive la opción para visualizar los importes en {{currency|capitalize}}.<br/>- Active la opción para visualizar los importes relativos al {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (todos los importes serán <b>dividido</b> entre el Dividendo Universal actual).",END_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>¡Buena suerte en este nuevo mundo de la <b>economía libre</b> !",END_NOT_LOGIN:"¡La visita guiada ha <b>terminado</b>!<br/><br/>Si quiere utilizar la moneda {{currency|capitalize}}, tiene que hacer un clic en <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> más abajo."}}}),e.translations("fr-FR",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"date : {{build}}",PUBKEY:"Clé publique",MEMBER:"Membre",BLOCK:"Bloc",BTN_OK:"OK",BTN_YES:"Oui",BTN_NO:"Non",BTN_SEND:"Envoyer",BTN_SEND_MONEY:"Faire un virement",BTN_SEND_MONEY_SHORT:"Virement",BTN_SAVE:"Enregistrer",BTN_YES_SAVE:"Oui, Enregistrer",BTN_YES_CONTINUE:"Oui, Continuer",BTN_SHOW:"Voir",BTN_SHOW_PUBKEY:"Afficher la clé publique",BTN_RELATIVE_UNIT:"Afficher les montants en DU ?",BTN_BACK:"Retour",BTN_NEXT:"Suivant",BTN_IMPORT:"Importer",BTN_CANCEL:"Annuler",BTN_CLOSE:"Fermer",BTN_LATER:"Plus tard",BTN_LOGIN:"Se connecter",BTN_LOGOUT:"Déconnexion",BTN_ADD_ACCOUNT:"Nouveau compte",BTN_SHARE:"Partager",BTN_EDIT:"Modifier",BTN_DELETE:"Supprimer",BTN_ADD:"Ajouter",BTN_SEARCH:"Rechercher",BTN_REFRESH:"Actualiser",BTN_RETRY:"Recommencer",BTN_START:"Commencer",BTN_CONTINUE:"Continuer",BTN_CREATE:"Créer",BTN_UNDERSTOOD:"J'ai compris",BTN_OPTIONS:"Options",BTN_HELP_TOUR:"Visite guidée",BTN_HELP_TOUR_SCREEN:"Découvrir cet écran",BTN_DOWNLOAD:"Télécharger",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Télécharger le relevé du compte",BTN_MODIFY:"Modifier",CHOOSE_FILE:"Déposez votre fichier <br/>ou cliquez pour le sélectionner",DAYS:"jours",NO_ACCOUNT_QUESTION:"Pas encore de compte ? Créez-en un gratuitement !",SEARCH_NO_RESULT:"Aucun résultat trouvé",LOADING:"Veuillez patienter...",LOADING_WAIT:"Veuillez patienter...<br/><small>(Attente de disponibilité du noeud)</small>",SEARCHING:"Recherche en cours...",FROM:"De",TO:"À",COPY:"Copier",LANGUAGE:"Langue",UNIVERSAL_DIVIDEND:"Dividende universel",UD:"DU",DATE_PATTERN:"DD/MM/YY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(vide)",UID:"Pseudonyme",ENABLE:"Activé",DISABLE:"Désactivé",RESULTS_LIST:"Résultats",RESULTS_COUNT:"{{count}} résultats",EXECUTION_TIME:"exécuté en {{duration|formatDurationMs}}",SHOW_VALUES:"Afficher les valeurs en clair ?",POPOVER_ACTIONS_TITLE:"Options",POPOVER_FILTER_TITLE:"Filtres",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",POPOVER_SHARE:{TITLE:"Partager",SHARE_ON_TWITTER:"Partager sur Twitter",SHARE_ON_FACEBOOK:"Partager sur Facebook",SHARE_ON_DIASPORA:"Partager sur Diaspora*",SHARE_ON_GOOGLEPLUS:"Partager sur Google+"},FILE:{DATE:"Date :",TYPE:"Type :",SIZE:"Taille :",VALIDATING:"Validation en cours..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Choisir la source :",BTN_PICTURE_GALLERY:"Galerie",BTN_PICTURE_CAMERA:"<b>Caméra</b>"},MENU:{HOME:"Accueil",WOT:"Annuaire",CURRENCY:"Monnaie",ACCOUNT:"Mon compte",WALLETS:"Mes portefeuilles",TRANSFER:"Virement",SCAN:"Scanner",SETTINGS:"Paramètres",NETWORK:"Réseau",TRANSACTIONS:"Mes opérations"},ABOUT:{TITLE:"À propos",LICENSE:"Application <b>libre</b> (Licence GNU AGPLv3).",LATEST_RELEASE:"Il existe une <b>version plus récente</b> de {{'COMMON.APP_NAME'|translate}} (<b>v{{version}}</b>)",PLEASE_UPDATE:"Veuillez mettre à jour {{'COMMON.APP_NAME'|translate}} (dernière version : <b>v{{version}}</b>)",CODE:"Code source :",OFFICIAL_WEB_SITE:"Site web officiel :",DEVELOPERS:"Développé par :",FORUM:"Forum :",PLEASE_REPORT_ISSUE:"N'hésitez pas à nous remonter les anomalies rencontrées",REPORT_ISSUE:"Remonter un problème",BTN_OPEN_DEV_WINDOW:"Ouvrir la fenêtre de debuggage"},HOME:{TITLE:"Cesium",WELCOME:"Bienvenue dans l'application Cesium !",MESSAGE:"Recevez et envoyez de la monnaie libre {{currency|abbreviate}}",BTN_CURRENCY:"Explorer la monnaie {{name|abbreviate}}",BTN_ABOUT:"à propos",BTN_HELP:"Aide en ligne",REPORT_ISSUE:"anomalie",NOT_YOUR_ACCOUNT_QUESTION:'Vous n\'êtes pas propriétaire du compte <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> ?',BTN_CHANGE_ACCOUNT:"Déconnecter ce compte",CONNECTION_ERROR:'Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou changer de nœud <a class="positive" ng-click="doQuickFix(\'settings\')">dans les paramètres</a>.'},SETTINGS:{TITLE:"Paramètres",DISPLAY_DIVIDER:"Affichage",STORAGE_DIVIDER:"Stockage",NETWORK_SETTINGS:"Réseau",PEER:"Adresse du nœud Duniter",PEER_SHORT:"Adresse du nœud",PEER_CHANGED_TEMPORARY:"Adresse utilisée temporairement",USE_LOCAL_STORAGE:"Activer le stockage local",USE_LOCAL_STORAGE_HELP:"Permet de sauvegarder vos paramètres",WALLETS_SETTINGS:"Mes portefeuilles",USE_WALLETS_ENCRYPTION:"Sécuriser la liste ?",USE_WALLETS_ENCRYPTION_HELP:"Permet de sécuriser la liste de vos portefeuilles (par chiffrement), en exigeant une authentification pour y accéder.",ENABLE_HELPTIP:"Activer les bulles d'aide contextuelles",ENABLE_UI_EFFECTS:"Activer les effets visuels",HISTORY_SETTINGS:"Mes opérations",DISPLAY_UD_HISTORY:"Afficher les dividendes produits ?",TX_HISTORY_AUTO_REFRESH:"Rafraîchir automatiquement",TX_HISTORY_AUTO_REFRESH_HELP:"Rafraîchit le solde et les opérations automatiquement, à chaque nouveau bloc du réseau.",AUTHENTICATION_SETTINGS:"Authentification",KEEP_AUTH:"Désauthentification automatique",KEEP_AUTH_SHORT:"Désauthentification",KEEP_AUTH_HELP:"Définit le moment où l'authentification est nettoyée de la mémoire.",KEEP_AUTH_OPTION:{NEVER:"Après chaque opération",SECONDS:"Après {{value}}s d'inactivité",MINUTE:"Après {{value}}min d'inactivité",MINUTES:"Après {{value}}min d'inactivité",HOUR:"Après {{value}}h d'inactivité",ALWAYS:"A la fin de la session"},KEYRING_FILE:"Fichier de trousseau",KEYRING_FILE_HELP:'Permet de vous <b>connecter</b> automatiquement à chaque lancement<br/>et même de vous <b>authentifier</b> (seulement si "Expiration de l\'authentification" est configurée "à la fin de la session").',REMEMBER_ME:"Se souvenir de moi ?",REMEMBER_ME_HELP:"Permet de rester identifié d'une session à l'autre, en conservant localement la clé publique.",PLUGINS_SETTINGS:"Extensions",BTN_RESET:"Restaurer les valeurs par défaut",EXPERT_MODE:"Activer le mode expert",EXPERT_MODE_HELP:"Permet un affichage plus détaillé.",BLOCK_VALIDITY_WINDOW:"Délai d'incertitude des blocs",BLOCK_VALIDITY_WINDOW_SHORT:"Délai d'incertitude",BLOCK_VALIDITY_WINDOW_HELP:"Délai avant de considérer qu'une information est validée",BLOCK_VALIDITY_OPTION:{NONE:"Aucun délai",N:"{{time | formatDuration}} ({{count}} blocs)"},POPUP_PEER:{TITLE:"Nœud Duniter",HOST:"Adresse",HOST_HELP:"Adresse : serveur:port",USE_SSL:"Sécurisé ?",USE_SSL_HELP:"(Chiffrement SSL)",BTN_SHOW_LIST:"Liste des noeuds"}},BLOCKCHAIN:{HASH:"Hash : {{hash}}",VIEW:{HEADER_TITLE:"Bloc #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Bloc courant",TITLE:"Bloc #{{number|formatInteger}}",COMPUTED_BY:"Calculé par le noeud de",SHOW_RAW:"Voir le fichier brut",TECHNICAL_DIVIDER:"Informations techniques",VERSION:"Version du format",HASH:"Hash calculé",UNIVERSAL_DIVIDEND_HELP:"Monnaie co-produite par chacun des {{membersCount}} membres",EMPTY:"Aucune donnée dans ce bloc",POW_MIN:"Difficulté minimale",POW_MIN_HELP:"Difficulté imposée pour le calcul du hash",DATA_DIVIDER:"Données",IDENTITIES_COUNT:"Nouvelles identités",JOINERS_COUNT:"Nouveaux membres",ACTIVES_COUNT:"Renouvellements",ACTIVES_COUNT_HELP:"Membres ayant renouvelé leur adhésion",LEAVERS_COUNT:"Membres sortants",LEAVERS_COUNT_HELP:"Membres ne souhaitant plus de certification",EXCLUDED_COUNT:"Membres exclus",EXCLUDED_COUNT_HELP:"Anciens membres exclus par non renouvellement ou manque de certifications",REVOKED_COUNT:"Identités révoquées",REVOKED_COUNT_HELP:"Ces comptes ne pourront plus être membres",TX_COUNT:"Transactions",CERT_COUNT:"Certifications",TX_TO_HIMSELF:"Opération de change",TX_OUTPUT_UNLOCK_CONDITIONS:"Conditions de déblocage",TX_OUTPUT_OPERATOR:{AND:"et",OR:"ou"},TX_OUTPUT_FUNCTION:{SIG:"<b>Signature</b> de ",XHX:"<b>Mot de passe</b>, dont SHA256 =",CSV:"Bloqué pendant",CLTV:"Bloqué jusqu'à"}},LOOKUP:{TITLE:"Blocs",NO_BLOCK:"Aucun bloc",LAST_BLOCKS:"Derniers blocs :",BTN_COMPACT:"Compacter"}},CURRENCY:{VIEW:{TITLE:"Monnaie",TAB_CURRENCY:"Monnaie",TAB_WOT:"Toile de confiance",TAB_NETWORK:"Réseau",TAB_BLOCKS:"Blocs",CURRENCY_SHORT_DESCRIPTION:"{{currency|abbreviate}} est une <b>monnaie libre</b>, démarrée {{firstBlockTime|formatFromNow}}. Elle compte actuellement <b>{{N}} membres</b>, qui produisent et perçoivent un <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a> (DU), chaque {{dt|formatPeriod}}.",NETWORK_RULES_DIVIDER:"Règles du réseau",CURRENCY_NAME:"Nom de la monnaie",MEMBERS:"Nombre de membres",MEMBERS_VARIATION:"Variation depuis le dernier DU",MONEY_DIVIDER:"Monnaie",MASS:"Masse monétaire",SHARE:"Masse par membre",UD:"Dividende universel",C_ACTUAL:"Croissance actuelle",MEDIAN_TIME:"Heure de la blockchain",POW_MIN:"Niveau minimal de difficulté de calcul",MONEY_RULES_DIVIDER:"Règles de la monnaie",C_RULE:"Croissance théorique cible",UD_RULE:"Calcul du dividende universel",DT_REEVAL:"Période de revalorisation du DU",REEVAL_SYMBOL:"reval",DT_REEVAL_VALUE:"Tous les <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Date de la 1ère revalorisation",SIG_QTY_RULE:"Nombre de certifications requises pour devenir membre",SIG_STOCK:"Nombre maximal de certifications émises par membre",SIG_PERIOD:"Délai minimal d'attente entre 2 certifications successives émises par une même personne",SIG_WINDOW:"Délai limite de prise en compte d'une certification",SIG_VALIDITY:"Durée de vie d'une certification qui a été prise en compte",MS_WINDOW:"Délai limite de prise en compte d'une demande d'adhésion comme membre",MS_VALIDITY:"Durée de vie d'une adhésion qui a été prise en compte",STEP_MAX:"Distance maximale, par les certifications, entre un nouvel entrant et les membres référents",WOT_RULES_DIVIDER:"Règles de la toile de confiance",SENTRIES:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent",SENTRIES_FORMULA:"Nombre de certifications (émises <b>et</b> reçues) pour devenir membre référent (formule)",XPERCENT:"Pourcentage minimum de membres référents à atteindre pour respecter la règle de distance",AVG_GEN_TIME:"Temps moyen entre deux blocs",CURRENT:"actuel",MATH_CEILING:"PLAFOND",DISPLAY_ALL_RULES:"Afficher toutes les règles ?",BTN_SHOW_LICENSE:"Voir la licence",WOT_DIVIDER:"Toile de confiance"},LICENSE:{TITLE:"Licence de la monnaie",BTN_DOWNLOAD:"Télécharger le fichier",NO_LICENSE_FILE:"Fichier de licence non trouvé."}},NETWORK:{VIEW:{MEDIAN_TIME:"Heure de la blockchain",LOADING_PEERS:"Chargement des noeuds...",NODE_ADDRESS:"Adresse :",SOFTWARE:"Logiciel",WARN_PRE_RELEASE:"Pré-version (dernière version stable : <b>{{version}}</b>)",WARN_NEW_RELEASE:"Version <b>{{version}}</b> disponible",WS2PID:"Identifiant :",PRIVATE_ACCESS:"Accès privé",POW_PREFIX:"Préfixe de preuve de travail :",ENDPOINTS:{BMAS:"Interface sécurisée (SSL)",BMATOR:"Interface réseau TOR",WS2P:"Interface WS2P",ES_USER_API:"Noeud de données Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Nœuds",SIGNED_ON_BLOCK:"Signé sur le bloc",MIRROR:"miroir",MIRRORS:"Miroirs",MIRROR_PEERS:"Nœuds miroirs",PEER_LIST:"Liste des nœuds",MEMBERS:"Membres",MEMBER_PEERS:"Nœuds membres",ALL_PEERS:"Tous les nœuds",DIFFICULTY:"Difficulté",API:"API",CURRENT_BLOCK:"Bloc #",POPOVER_FILTER_TITLE:"Filtre",OFFLINE:"Hors ligne",OFFLINE_PEERS:"Nœuds hors ligne",BTN_SHOW_PEER:"Voir le nœud",VIEW:{TITLE:"Nœud",OWNER:"Appartient à",SHOW_RAW_PEERING:"Voir la fiche de pair",SHOW_RAW_CURRENT_BLOCK:"Voir le dernier bloc (format brut)",LAST_BLOCKS:"Derniers blocs connus",KNOWN_PEERS:"Nœuds connus :",GENERAL_DIVIDER:"Informations générales",ERROR:{LOADING_TOR_NODE_ERROR:"Récupération des informations du noeud impossible. Le délai d'attente est dépassé.",LOADING_NODE_ERROR:"Récupération des informations du noeud impossible"}}},WOT:{SEARCH_HELP:"Recherche (pseudo ou clé publique)",SEARCH_INIT_PHASE_WARNING:"Durant la phase de pré-inscription, la recherche des inscriptions en attente <b>peut être longue</b>. Merci de patienter...",REGISTERED_SINCE:"Inscrit le",REGISTERED_SINCE_BLOCK:"Inscrit au bloc #",NO_CERTIFICATION:"Aucune certification validée",NO_GIVEN_CERTIFICATION:"Aucune certification émise",NOT_MEMBER_PARENTHESIS:"(non membre)",IDENTITY_REVOKED_PARENTHESIS:"(identité révoquée)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(en cours de révocation)",EXPIRE_IN:"Expiration",NOT_WRITTEN_EXPIRE_IN:"Date limite<br/>de traitement",EXPIRED:"Expiré",PSEUDO:"Pseudonyme",SIGNED_ON_BLOCK:"Emise au bloc #{{block}}",WRITTEN_ON_BLOCK:"Ecrite au bloc #{{block}}",GENERAL_DIVIDER:"Informations générales",NOT_MEMBER_ACCOUNT:"Compte simple (non membre)",NOT_MEMBER_ACCOUNT_HELP:"Il s'agit d'un simple portefeuille, sans demande d'adhésion en attente.",TECHNICAL_DIVIDER:"Informations techniques",BTN_CERTIFY:"Certifier",BTN_YES_CERTIFY:"Oui, certifier",BTN_SELECT_AND_CERTIFY:"Nouvelle certification",ACCOUNT_OPERATIONS:"Opérations sur le compte",VIEW:{POPOVER_SHARE_TITLE:"Identité {{title}}"},LOOKUP:{TITLE:"Toile de confiance",NEWCOMERS:"Nouveaux membres",NEWCOMERS_COUNT:"{{count}} membres",PENDING:"Inscriptions en attente",PENDING_COUNT:"{{count}} inscriptions en attente",REGISTERED:"Inscrit {{sigDate | formatFromNow}}",MEMBER_FROM:"Membre depuis {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nouveaux membres",BTN_PENDING:"Inscriptions en attente",SHOW_MORE:"Afficher plus",SHOW_MORE_COUNT:"(limite actuelle à {{limit}})",NO_PENDING:"Aucune inscription en attente.",NO_NEWCOMERS:"Aucun membre."},CONTACTS:{TITLE:"Contacts"},MODAL:{TITLE:"Recherche"},CERTIFICATIONS:{TITLE:"{{uid}} - Certifications",SUMMARY:"Certifications reçues",LIST:"Détail des certifications reçues",PENDING_LIST:"Certifications en attente de traitement",RECEIVED:"Certifications reçues",RECEIVED_BY:"Certifications reçues par {{uid}}",ERROR:"Certifications reçues en erreur",SENTRY_MEMBER:"Membre référent"},OPERATIONS:{TITLE:"{{uid}} - Opérations"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certifications émises",SUMMARY:"Certifications émises",LIST:"Détail des certifications émises",PENDING_LIST:"Certifications en attente de traitement",SENT:"Certifications émises",SENT_BY:"Certifications émises par {{uid}}",ERROR:"Certifications émises en erreur"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Connexion',SCRYPT_FORM_HELP:"Veuillez saisir vos identifiants.<br>Pensez à vérifier que la clé publique est celle de votre compte.",PUBKEY_FORM_HELP:"Veuillez saisir une clé publique de compte :",FILE_FORM_HELP:"Choisissez le fichier de trousseau à utiliser :",SCAN_FORM_HELP:"Scanner le QR code d'un portefeuille.",SALT:"Identifiant secret",SALT_HELP:"Identifiant secret",SHOW_SALT:"Afficher l'identifiant secret ?",PASSWORD:"Mot de passe",PASSWORD_HELP:"Mot de passe",PUBKEY_HELP:"Clé publique ou pseudonyme",NO_ACCOUNT_QUESTION:"Vous n'avez pas encore de compte ?",HAVE_ACCOUNT_QUESTION:"Vous avez déjà un compte ?",CREATE_ACCOUNT:"Créer un compte...",CREATE_FREE_ACCOUNT:"Créer un compte gratuitement",FORGOTTEN_ID:"Mot de passe oublié ?",ASSOCIATED_PUBKEY:"Clé publique du trousseau :",BTN_METHODS:"Autres méthodes",BTN_METHODS_DOTS:"Changer de méthode...",METHOD_POPOVER_TITLE:"Méthodes",MEMORIZE_AUTH_FILE:"Mémoriser ce trousseau le temps de la session de navigation",SCRYPT_PARAMETERS:"Paramètres (Scrypt) :",AUTO_LOGOUT:{TITLE:"Information",MESSAGE:'<i class="ion-android-time"></i> Vous avez été <b>déconnecté</b> automatiquement, suite à une inactivité prolongée.',BTN_RELOGIN:"Me reconnecter",IDLE_WARNING:"Vous allez être déconnecté... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Identifiant secret et mot de passe",SCRYPT_ADVANCED:"Salage avancé",FILE:"Fichier de trousseau",PUBKEY:"Clé publique ou pseudonyme",SCAN:"Scanner un QR code"},SCRYPT:{SIMPLE:"Salage léger",DEFAULT:"Salage standard",SECURE:"Salage sûr",HARDEST:"Salage le plus sûr",EXTREME:"Salage extrême",USER:"Salage personnalisé",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format de fichier attendu : <b>.yml</b> ou <b>.dunikey</b> (type PubSec, WIF ou EWIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Authentification',BTN_AUTH:"S'authentifier",GENERAL_HELP:"Veuillez vous authentifier :",EXPECTED_UID_HELP:'Veuillez vous authentifier sur le compte <i class="ion-person"></i> {{uid}} :',EXPECTED_PUBKEY_HELP:'Veuillez vous authentifier sur le portefeuille <br class="visible-xs"/><i class="ion-key"></i> {{pubkey|formatPubkey}} :',SCAN_FORM_HELP:"Scanner le QR code de la <b>clef privée</b> du portefeuille."},ACCOUNT:{TITLE:"Mon compte",BALANCE:"Solde",LAST_TX:"Dernières transactions validées",BALANCE_ACCOUNT:"Solde du compte",NO_TX:"Aucune transaction",SHOW_MORE_TX:"Afficher plus",SHOW_ALL_TX:"Afficher tout",TX_FROM_DATE:"(limite actuelle à {{fromTime|medianFromNowShort}})",PENDING_TX:"Transactions en attente de traitement",VALIDATING_TX:"Transactions traitées, non validées",ERROR_TX:"Transactions non executées",ERROR_TX_SENT:"Transactions envoyées en échec",PENDING_TX_RECEIVED:"Transactions en attente de réception",EVENTS:"Evénements",OUT_DISTANCED:"Vos certifications actuelles proviennent d'un groupe trop isolé de la <a ng-click=\"showHelpModal('wot')\">Toile de Confiance</a> (TdC) : la <a ng-click=\"showHelpModal('distance_rule')\">règle de distance maximale</a> n'est pas respectée.<br/>Vous devez obtenir des certifications provenant d'autres secteurs de la TdC, ou bien attendre que celle-ci se resserre.",WAITING_MEMBERSHIP:"Demande d'adhésion envoyée. En attente d'acceptation.",WAITING_CERTIFICATIONS:"Vous devez <b>obtenir {{needCertificationCount}} certification(s)</b> pour devenir membre et produire le <a ng-click=\"showHelpModal('ud')\">Dividende Universel</a>. Votre compte est cependant déjà opérationnel, pour recevoir et effectuer des paiements.",WAITING_CERTIFICATIONS_HELP:'Pour obtenir vos certifications, sollicitez uniquement des membres <b>qui vous connaissent suffisamment</b>, comme l\'exige <a ng-click="showLicenseModal()">la licence de la monnaie</a> que vous avez acceptée.<br/>Si vous ne connaissez pas suffisamment de membres, faites-le savoir sur <a ng-click="openLink($event, $root.settings.userForumUrl)">le forum utilisateur</a>.',WILL_MISSING_CERTIFICATIONS:"Vous allez bientôt <b>manquer de certifications</b> (au moins {{willNeedCertificationCount}} sont requises)",WILL_NEED_RENEW_MEMBERSHIP:"Votre adhésion comme membre <b>va expirer {{membershipExpiresIn|formatDurationTo}}</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a> d'ici là.",NEED_RENEW_MEMBERSHIP:"Vous n'êtes plus membre de la monnaie, car <b>votre adhésion a expiré</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NEED_RENEW_MEMBERSHIP_AFTER_CANCELLED:"Vous n'êtes plus membre de la monnaie, <b>pour manque de certifications</b>. Pensez à <a ng-click=\"doQuickFix('renew')\">renouveler votre adhésion</a>.",NO_WAITING_MEMBERSHIP:"Aucune demande d'adhésion en attente. Si vous souhaitez <b>devenir membre</b>, pensez à <a ng-click=\"doQuickFix('membership')\">envoyer la demande d'adhésion</a>.",CERTIFICATION_COUNT:"Certifications reçues",CERTIFICATION_COUNT_SHORT:"Certifications",SIG_STOCK:"Certifications envoyées",BTN_RECEIVE_MONEY:"Encaisser",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Basculer vers une autre identité...",BTN_FIX_MEMBERSHIP:"Renvoyer la demande d'adhésion...",BTN_MEMBERSHIP_RENEW:"Renouveler l'adhésion",BTN_MEMBERSHIP_RENEW_DOTS:"Renouveler l'adhésion...",BTN_MEMBERSHIP_OUT_DOTS:"Arrêter l'adhésion...",BTN_SECURITY_DOTS:"Compte et sécurité...",BTN_SHOW_DETAILS:"Afficher les infos techniques",LOCKED_OUTPUTS_POPOVER:{TITLE:"Montant verrouillé",DESCRIPTION:"Voici les conditions de déverrouillage de ce montant :",DESCRIPTION_MANY:"Cette transaction est composé de plusieurs parties, dont voici les conditions de déverrouillage :",LOCKED_AMOUNT:"Conditions pour le montant :"},NEW:{TITLE:"Création de compte",INTRO_WARNING_TIME:"La création d'un compte sur {{name|capitalize}} est très simple. Veuillez néanmoins prendre suffisament de temps pour faire correctement cette formalité (pour ne pas oublier les identifiants, mots de passe, etc.).",INTRO_WARNING_SECURITY:"Vérifiez que le matériel que vous utilisez actuellement (ordinateur, tablette, téléphone) <b>est sécurisé et digne de confiance</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus à jour, pare-feu activé, session protégée par mot de passe ou code pin, etc.",INTRO_HELP:"Cliquez sur <b>{{'COMMON.BTN_START'|translate}}</b> pour débuter la création de compte. Vous serez guidé étape par étape.",REGISTRATION_NODE:"Votre inscription sera enregistrée via le noeud Duniter <b>{{server}}</b>, qui le diffusera ensuite au reste du réseau de la monnaie.",REGISTRATION_NODE_HELP:"Si vous ne faites pas confiance en ce noeud, veuillez en changer <a ng-click=\"doQuickFix('settings')\">dans les paramètres</a> de Cesium.",SELECT_ACCOUNT_TYPE:"Choisissez le type de compte à créer :",MEMBER_ACCOUNT:"Compte membre",MEMBER_ACCOUNT_TITLE:"Création d'un compte membre",MEMBER_ACCOUNT_HELP:"Si vous n'êtes pas encore inscrit en tant qu'individu (un seul compte possible par individu). Ce compte permet de co-produire la monnaie, en recevant un <b>dividende universel</b> chaque {{parameters.dt|formatPeriod}}.",WALLET_ACCOUNT:"Simple portefeuille",WALLET_ACCOUNT_TITLE:"Création d'un portefeuille",WALLET_ACCOUNT_HELP:"Pour tous les autres cas, par exemple si vous avez besoin d'un compte supplémentaire.<br/>Aucun dividende universel ne sera créé par ce compte.",SALT_WARNING:"Choisissez votre identifiant secret.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez le bien</b> : en cas de perte, plus personne ne pourra accéder à votre compte !",PASSWORD_WARNING:"Choisissez un mot de passe.<br/>Il vous sera demandé à chaque connexion sur ce compte.<br/><br/><b>Retenez bien ce mot de passe</b : en cas de perte, plus personne ne pourra accéder à votre compte !",PSEUDO_WARNING:"Choisissez un pseudonyme.<br/>Il sert aux autres membres, pour vous identifier plus facilement.<div class='hidden-xs'><br/>Il <b>ne pourra pas être modifié</b>, sans refaire un compte.</div><br/><br/>Il ne doit contenir <b>ni espace, ni de caractère accentué</b>.<div class='hidden-xs'><br/>Exemple : <span class='gray'>SophieDupond, MarcelChemin, etc.</span>",PSEUDO:"Pseudonyme",PSEUDO_HELP:"Pseudonyme",SALT_CONFIRM:"Confirmation",SALT_CONFIRM_HELP:"Confirmation de l'identifiant secret",PASSWORD_CONFIRM:"Confirmation",PASSWORD_CONFIRM_HELP:"Confirmation du mot de passe",SLIDE_6_TITLE:"Confirmation :",COMPUTING_PUBKEY:"Calcul en cours...",LAST_SLIDE_CONGRATULATION:"Vous avez saisi toutes les informations nécessaires : Bravo !<br/>Vous pouvez maintenant <b>envoyer la demande de création</b> de compte.</b><br/><br/>Pour information, la clé publique ci-dessous identifiera votre futur compte.<br/>Elle pourra être communiquée à des tiers pour recevoir leurs paiements.<br/><b>Il n'est pas obligatoire</b> de la noter ici, vous pourrez également le faire plus tard.",CONFIRMATION_MEMBER_ACCOUNT:"<b class=\"assertive\">Avertissement :</b> l'identifiant secret, le mot de passe et le pseudonyme ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir envoyer cette demande d'inscription ?",CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Avertissement :</b> l\'identifiant secret et le mot de passe ne pourront plus être modifiés.<br/><br/><b>Assurez-vous de toujours vous en rappeler !</b><br/><br/><b>Êtes-vous sûr</b> de vouloir continuer avec ces identifiants ?',CHECKING_PSEUDO:"Vérification...",PSEUDO_AVAILABLE:"Pseudonyme disponible",PSEUDO_NOT_AVAILABLE:"Pseudonyme non disponible",INFO_LICENSE:"Avant de créer un compte membre, <b>veuillez lire et accepter la licence</b> d'usage de la monnaie :",BTN_ACCEPT:"J'accepte",BTN_ACCEPT_LICENSE:"J'accepte la licence"},POPUP_REGISTER:{TITLE:"Choisissez un pseudonyme",HELP:"Un pseudonyme est obligatoire pour devenir membre."},SELECT_IDENTITY_MODAL:{TITLE:"Sélection de l'identité",HELP:'Plusieurs <b>identités différentes</b> ont été envoyées, pour la clé publique <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Veuillez sélectionner le dossier à utiliser :'},SELECT_WALLET_MODAL:{TITLE:"Sélection du portefeuille"},WALLET_LIST:{TITLE:"Mes portefeuilles",BTN_NEW:"Ajouter un portefeuille",BTN_DOWNLOAD:"Télécharger la liste",BTN_IMPORT_FILE_DOTS:"Importer depuis un fichier...",NO_WALLET:"Aucun portefeuille secondaire",BTN_DELETE:"Retirer un portefeuille secondaire...",BTN_RENAME:"Renommer le portefeuille",EXPORT_FILENAME:"mes_portefeuilles-{{pubkey|formatPubkey}}-{{currency}}.csv",TOTAL_DOTS:"Total : ",EDIT_POPOVER:{TITLE:"Renommer le portefeuille",HELP:"Renseignez le nouveau nom",NAME_HELP:"Nom du portefeuille"},IMPORT_MODAL:{TITLE:"Importer des portefeuilles",HELP:"Pour <b>importer des porftefeuilles</b>, veuillez glisser dans la zone ci-dessous le fichier de la liste des portefeuilles, ou bien cliquer dans la zone pour rechercher un fichier.",WALLET_COUNT:"<b>{{count}}</b> nouveau{{count > 1 ? 'x' : ''}} portefeuille{{count > 1 ? 's' : ''}}",NO_NEW_WALLET:"Aucun nouveau portefeuille"}},SECURITY:{ADD_QUESTION:"Ajouter une question personnalisée",BTN_CLEAN:"Vider",BTN_RESET:"Réinitialiser",DOWNLOAD_REVOKE:"Sauvegarder mon fichier de révocation",DOWNLOAD_REVOKE_HELP:"Disposer d'un fichier de révocation est important, par exemple en cas de perte de vos identifiants. Il vous permet de <b>sortir ce compte de la toile de confiance</b>, en redevenant ainsi un simple portefeuille.",GENERATE_KEYFILE:"Générer mon fichier de trousseau...",GENERATE_KEYFILE_HELP:"Génère un fichier permettant de vous authentifier sans saisir vos identifiants.<br/><b>Attention :</b> ce fichier contiendra votre trousseau de compte (clefs publique et secrète) ; il est donc très important de le mettre en lieu sûr !",KEYFILE_FILENAME:"trousseau-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",MEMBERSHIP_IN:"Transformer en compte membre...",MEMBERSHIP_IN_HELP:"Permet de <b>transformer</b> un compte simple portefeuille <b>en compte membre</b>, en envoyant une demande d'adhésion. Utile uniquement si vous n'avez pas déjà un autre compte membre.",SEND_IDENTITY:"Publier son identité...",SEND_IDENTITY_HELP:"Permet d'associer un pseudonyme à ce compte, mais <b>sans faire de demande d'adhésion</b> pour devenir membre. Cette association n'est généralement pas utile, car la validité de cette association de pseudonyme est limitée dans le temps.",HELP_LEVEL:"Pour générer un fichier de sauvegarde de vos identifiants, choisissez <strong> au moins {{nb}} questions :</strong>",LEVEL:"Niveau de sécurité",LOW_LEVEL:'Faible <span class="hidden-xs">(2 questions minimum)</span>',MEDIUM_LEVEL:'Moyen <span class="hidden-xs">(4 questions minimum)</span>',QUESTION_1:"Comment s'appelait votre meilleur ami lorsque vous étiez adolescent ?",QUESTION_2:"Comment s'appelait votre premier animal de compagnie ?",QUESTION_3:"Quel est le premier plat que vous avez appris à cuisiner ?",QUESTION_4:"Quel est le premier film que vous avez vu au cinéma ?",QUESTION_5:"Où êtes-vous allé la première fois que vous avez pris l'avion ?",QUESTION_6:"Comment s'appelait votre instituteur préféré à l'école primaire ?",QUESTION_7:"Quel serait selon vous le métier idéal ?",QUESTION_8:"Quel est le livre pour enfants que vous préférez ?",QUESTION_9:"Quel était le modèle de votre premier véhicule ?",QUESTION_10:"Quel était votre surnom lorsque vous étiez enfant ?",QUESTION_11:"Quel était votre personnage ou acteur de cinéma préféré lorsque vous étiez étudiant ?",QUESTION_12:"Quel était votre chanteur ou groupe préféré lorsque vous étiez étudiant ?",QUESTION_13:"Dans quelle ville vos parents se sont-ils rencontrés ?",QUESTION_14:"Comment s'appelait votre premier patron ?",QUESTION_15:"Quel est le nom de la rue où vous avez grandi ?",QUESTION_16:"Quel est le nom de la première plage où vous vous êtes baigné ?",QUESTION_17:"Quel est le premier album que vous avez acheté ?",QUESTION_18:"Quel est le nom de votre équipe de sport préférée ?",QUESTION_19:"Quel était le métier de votre grand-père ?",RECOVER_ID:"Retrouver mon mot de passe...",RECOVER_ID_HELP:"Si vous disposez d'un <b>fichier de sauvegarde de vos identifiants</b>, vous pouvez les retrouver en répondant correctement à vos questions personnelles.",REVOCATION_WITH_FILE:"Révoquer mon compte membre...",REVOCATION_WITH_FILE_DESCRIPTION:"Si vous avez <b>définitivement perdus vos identifiants</b> de compte membre (ou que la sécurité du compte est compromise), vous pouvez utiliser <b>le fichier de révocation</b> du compte pour <b>forcer sa sortie définitive de la toile de confiance</b>.",REVOCATION_WITH_FILE_HELP:"Pour <b>révoquer définitivement</b> un compte membre, veuillez glisser dans la zone ci-dessous votre fichier de révocation, ou bien cliquer dans la zone pour rechercher un fichier.",REVOCATION_WALLET:"Révoquer immédiatement ce compte",REVOCATION_WALLET_HELP:"Demander la révocation de votre identité entraîne la <b>sortie de la toile de confiance</b> (définitive pour le pseudonyme et la clé publique associés). Le compte ne pourra plus produire de Dividende Universel.<br/>Vous pourrez toutefois encore vous y connecter, comme à un simple portefeuille.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Sauvegarder mes identifiants...",SAVE_ID_HELP:"Création d'un fichier de sauvegarde, pour <b>retrouver votre mot de passe</b> (et l'identifiant secret) <b>en cas de d'oubli</b>. Le fichier est <b>sécurisé</b> (chiffré) à l'aide de questions personnelles.",STRONG_LEVEL:'Fort <span class="hidden-xs ">(6 questions minimum)</span>',TITLE:"Compte et sécurité",KEYFILE:{PUBSEC_FORMAT:"Format PubSec.",PUBSEC_FORMAT_HELP:"Ce format stocke votre trousseau de manière très simple. Il est compatible notamment avec Cesium, ğannonce et Duniter.<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",WIF_FORMAT:"Format WIF (Wallet Import Format) - v1",WIF_FORMAT_HELP:"Ce format stocke votre trousseau en y intégrant une somme de contrôle pour vérifier l'intégrité du fichier. Il est compatible notamment avec les portefeuilles papier (Duniter paper wallet).<br/><b>Attention :</b>Le fichier <b>n'est pas chiffré</b> (la clef secrète y apparaît en clair) ; veuillez donc le stocker en lieu sûr !",EWIF_FORMAT:"Format EWIF (Encrypted Wallet Import Format) - v1",EWIF_FORMAT_HELP:"Ce format stocke votre trousseau <b>de manière chiffrée</b> à partir d'une phrase secrète de votre choix. Il intègre aussi une somme de contrôle pour vérifier l'intégrité du fichier.<br/><b>Attention :</b> Veillez à toujours vous souvenir de votre phrase secrète !",PASSWORD_POPUP:{TITLE:"Fichier de trousseau chiffré",HELP:"Veuillez indiquer la phrase secrète :",PASSWORD_HELP:"Phrase secrète"},ERROR:{BAD_PASSWORD:"Phrase secrète incorrecte",BAD_CHECKSUM:"Somme de contrôle incorrecte"}}},FILE_NAME:"{{currency}} - Relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"}},TRANSFER:{TITLE:"Virement",SUB_TITLE:"Faire un virement",SUB_TITLE_ALL:"Vider le compte",FROM:"De",TO:"À",AMOUNT:"Montant",AMOUNT_HELP:"Montant",COMMENT:"Commentaire",COMMENT_HELP:"Commentaire",BTN_SEND:"Envoyer",BTN_ADD_COMMENT:"Ajouter un commentaire",REST:"Reste du compte",REST_TO:"à",WARN_COMMENT_IS_PUBLIC:"Veuillez noter que <b>les commentaires sont publics</b> (non chiffrés).",MODAL:{TITLE:"Virement"}},ERROR:{UNKNOWN_URI_FORMAT:"Format d'URI inconnu",PUBKEY_INVALID_CHECKSUM:"Clé publique invalide (bad checksum).",POPUP_TITLE:"Erreur",UNKNOWN_ERROR:"Erreur inconnue",CRYPTO_UNKNOWN_ERROR:"Votre navigateur ne semble pas compatible avec les fonctionnalités de cryptographie.",DOWNLOAD_KEYFILE_FAILED:"Échec de la génération du fichier de trousseau.",EQUALS_TO_PSEUDO:"Doit être différent du pseudonyme",EQUALS_TO_SALT:"Doit être différent de l'identifiant secret",FIELD_REQUIRED:"Champ obligatoire",FIELD_TOO_SHORT:"Valeur trop courte",FIELD_TOO_SHORT_WITH_LENGTH:"Valeur trop courte ({{minLength}} caractères min)",FIELD_TOO_LONG:"Valeur trop longue",FIELD_TOO_LONG_WITH_LENGTH:"Valeur trop longue ({{maxLength}} caractères max)",FIELD_MIN:"Valeur minimale : {{min}}",FIELD_MAX:"Valeur maximale : {{max}}",FIELD_ACCENT:"Caractères accentués et virgules non autorisés",FIELD_NOT_NUMBER:"Valeur numérique attendue",FIELD_NOT_INT:"Valeur entière attendue",FIELD_NOT_EMAIL:"Adresse email non valide",PASSWORD_NOT_CONFIRMED:"Ne correspond pas au mot de passe",SALT_NOT_CONFIRMED:"Ne correspond pas à l'identifiant secret",SEND_IDENTITY_FAILED:"Échec de l'inscription",SEND_CERTIFICATION_FAILED:"Échec de la certification",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Vous ne pouvez pas effectuer de certification, car votre compte n'est <b>pas membre</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Vous ne pouvez pas effectuer de certification, car votre compte n'est pas encore membre.<br/><br/>Il vous manque encore des certifications, ou bien celles-ci n'ont pas encore été validées.",NOT_MEMBER_FOR_CERTIFICATION:"Votre compte n'est pas encore membre.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Compte non certifiable. Aucune demande d'adhésion n'a été faite, ou bien elle n'a pas été renouvelée.",LOGIN_FAILED:"Erreur lors de la connexion.",LOAD_IDENTITY_FAILED:"Erreur de chargement de l'identité.",LOAD_REQUIREMENTS_FAILED:"Erreur de chargement des prérequis de l'identité.",SEND_MEMBERSHIP_IN_FAILED:"Échec de la tentative d'entrée dans la communauté.",SEND_MEMBERSHIP_OUT_FAILED:"Échec de l'arrêt de l'adhésion.",REFRESH_WALLET_DATA:"Échec du rafraîchissement du portefeuille.",GET_CURRENCY_PARAMETER:"Échec de la récupération des règles de la monnaie.",GET_CURRENCY_FAILED:"Chargement de la monnaie impossible. Veuillez réessayer plus tard.",SEND_TX_FAILED:"Échec du virement.",ALL_SOURCES_USED:"Veuillez attendre le calcul du prochain bloc (toutes vos sources de monnaie ont été utilisées).",NOT_ENOUGH_SOURCES:"Pas assez de change pour envoyer ce montant en une seule transaction.<br/>Montant maximum : {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Échec de la création du compte membre.",RESTORE_WALLET_DATA_ERROR:"Échec du rechargement des paramètres depuis le stockage local",LOAD_WALLET_DATA_ERROR:"Échec du chargement des données du portefeuille.",COPY_CLIPBOARD_FAILED:"Copie de la valeur impossible.",TAKE_PICTURE_FAILED:"Échec de la récupération de la photo.",SCAN_FAILED:"Échec du scan de QR-code.",SCAN_UNKNOWN_FORMAT:"Code non reconnu.",WOT_LOOKUP_FAILED:"Échec de la recherche.",LOAD_PEER_DATA_FAILED:"Lecture du nœud Duniter impossible. Veuillez réessayer ultérieurement.",NEED_LOGIN_FIRST:"Veuillez d'abord vous connecter.",AMOUNT_REQUIRED:"Le montant est obligatoire.",AMOUNT_NEGATIVE:"Montant négatif non autorisé.",NOT_ENOUGH_CREDIT:"Crédit insuffisant.",INVALID_NODE_SUMMARY:"Nœud injoignable ou adresse invalide.",INVALID_USER_ID:"Le pseudonyme ne doit contenir ni espace ni caractère spécial ou accentué.",INVALID_COMMENT:"Le champ 'référence' ne doit pas contenir de caractères accentués.",INVALID_PUBKEY:"La clé publique n'a pas le format attendu.",INVALID_PUBKEY_CHECKSUM:"Somme de contrôle invalide.",IDENTITY_REVOKED:"Cette identité <b>a été révoquée</b>. Elle ne peut plus devenir membre.",IDENTITY_REVOKED_WITH_TIME:"Cette identité <b>a été révoquée {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Elle ne peut plus devenir membre.",IDENTITY_PENDING_REVOCATION:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement. La certification est donc désactivée.",IDENTITY_INVALID_BLOCK_HASH:"Cette demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé) : cette personne doit renouveler sa demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_EXPIRED:"La publication de cette identité a expiré : cette personne doit effectuer une nouvelle demande d'adhésion <b>avant</b> d'être certifiée.",IDENTITY_SANDBOX_FULL:"Le nœud Duniter utilisé par Cesium ne peut plus recevoir de nouvelles identités, car sa file d'attente est pleine.<br/><br/>Veuillez réessayer ultérieurement ou changer de nœud (via le menu <b>Paramètres</b>).",IDENTITY_NOT_FOUND:"Identité non trouvée.",IDENTITY_TX_FAILED:"Échec du chargement des opérations.",WOT_PENDING_INVALID_BLOCK_HASH:"Adhésion non valide.",WALLET_INVALID_BLOCK_HASH:"Votre demande d'adhésion n'est plus valide (car elle référence un bloc que les nœuds du réseau ont annulé).<br/>Vous devez <a ng-click=\"doQuickFix('fixMembership')\">envoyer une nouvelle demande</a> pour résoudre ce problème.",WALLET_IDENTITY_EXPIRED:"La publication de <b>votre identité a expirée</b>.<br/>Vous devez <a ng-click=\"doQuickFix('fixIdentity')\">publier à nouveau votre identité</a> pour résoudre ce problème.",WALLET_REVOKED:"Votre identité a été <b>révoquée</b> : ni votre pseudonyme ni votre clef publique ne pourra être utilisé à l'avenir pour un compte membre.",WALLET_HAS_NO_SELF:"Votre identité doit d'abord avoir été publiée, et ne pas être expirée.",AUTH_REQUIRED:"Authentification requise.",AUTH_INVALID_PUBKEY:'La clef attendue est <i class="ion-key"></i> {{pubkey|formatPubkey}}...',AUTH_INVALID_SCRYPT:"Identifiant ou mot de passe invalide.",AUTH_INVALID_FILE:"Fichier de trousseau invalide.",AUTH_FILE_ERROR:"Échec de l'ouverture du fichier de trousseau.",IDENTITY_ALREADY_CERTIFY:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est encore valide (expiration {{expiresIn|formatDurationTo}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Vous avez <b>déjà certifié</b> cette identité.<br/><br/>Cette certification est en attente de traitement (date limite de traitement {{expiresIn|formatDurationTo}}).",UNABLE_TO_CERTIFY_TITLE:"Certification impossible",LOAD_NEWCOMERS_FAILED:"Échec du chargement des nouveaux membres.",LOAD_PENDING_FAILED:"Échec du chargement des inscriptions en attente.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre</b> pour pouvoir effectuer cette action.",ONLY_MEMBER_OR_WAS_MEMBER_CAN_EXECUTE_THIS_ACTION:"Vous devez <b>être membre (ou ancien membre)</b> pour pouvoir effectuer cette action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Vous devez avoir <b>publié votre identité</b> pour pouvoir effectuer cette action.",GET_BLOCK_FAILED:"Échec de la récupération du bloc.",INVALID_BLOCK_HASH:"Bloc non trouvé (hash différent).",DOWNLOAD_REVOCATION_FAILED:"Échec du téléchargement du fichier de révocation.",REVOCATION_FAILED:"Échec de la révocation.",SALT_OR_PASSWORD_NOT_CONFIRMED:"Identifiant secret ou mot de passe incorrect.",RECOVER_ID_FAILED:"Échec de la récupération des identifiants",LOAD_FILE_FAILED:"Échec du chargement du fichier",NOT_VALID_REVOCATION_FILE:"Fichier de révocation non valide (mauvais format de fichier)",NOT_VALID_SAVE_ID_FILE:"Fichier de récupération non valide (mauvais format de fichier)",NOT_VALID_KEY_FILE:"Fichier de trousseau non valide (format non reconnu)",EXISTING_ACCOUNT:"Vos identifiants correspondent à un compte déjà existant, dont la <a ng-click=\"showHelpModal('pubkey')\">clef publique</a> est :",EXISTING_ACCOUNT_REQUEST:"Veuillez modifier vos identifiants afin qu'ils correspondent à un compte non utilisé.",GET_LICENSE_FILE_FAILED:"Récupération du fichier de licence impossible.",CHECK_NETWORK_CONNECTION:"Aucun nœud ne semble accessible.<br/><br/>Veuillez <b>vérifier votre connexion Internet</b>.",ISSUE_524_TX_FAILED:"Échec du virement.<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>.",ADD_SECONDARY_WALLET_FAILED:"Échec de l'ajout du portefeuille secondaire.",UPDATE_WALLET_LIST_FAILED:"Échec du rafraîchissement des portefeuilles secondaires.",LOAD_WALLET_LIST_FAILED:"Échec du chargement des portefeuilles secondaires.",SAVE_WALLET_LIST_FAILED:"Échec de la sauvegarde des portefeuilles secondaires.",COULD_NOT_ADD_MAIN_WALLET:"Ce portefeuille <b>correspond au compte principal</b> avec lequel vous êtes connecté.<br/>Impossible de l'ajouter comme portefeuille secondaire.",COULD_NOT_ADD_EXISTING_WALLET:"Portefeuille déjà existant dans la liste.",UNKNOWN_WALLET_ID:"Portefeuille secondaire inconnu.",RESTORE_WALLET_LIST_FAILED:"Échec de la restauration des portefeuilles secondaires.",INVALID_FILE_FORMAT:"Format de fichier invalide.",SAME_TX_RECIPIENT:"Le destinataire doit être différent de l'émetteur."},INFO:{POPUP_TITLE:"Information",CERTIFICATION_DONE:"Certification envoyée",NOT_ENOUGH_CREDIT:"Crédit insuffisant",TRANSFER_SENT:"Virement envoyé",COPY_TO_CLIPBOARD_DONE:"Copié dans le presse-papier",MEMBERSHIP_OUT_SENT:"Résiliation envoyée",NOT_NEED_MEMBERSHIP:"Vous êtes déjà membre.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Cette identité va bientôt manquer de certifications (au moins {{willNeedCertificationCount}}).",IDENTITY_NEED_MEMBERSHIP:"Cette identité n'a pas envoyée de demande d'adhésion. Elle le devra si elle souhaite devenir membre.",HAS_ALTERNATIVE_IDENTITIES:"Il existe <b>plusieurs identités</b> rattachées à cette clé publique. <b>Avant toute certification</b>, pensez à <a ng-click=\"doQuickFix('showSelectIdentities')\">consulter les autres identités</a> pour choisir la bonne, ou bien contacter le propriétaire du compte.",REVOCATION_SENT:"Révocation envoyée",REVOCATION_SENT_WAITING_PROCESS:"La <b>révocation de cette identité</b> a été demandée et est en attente de traitement.",FEATURES_NOT_IMPLEMENTED:"Cette fonctionnalité est encore en cours de développement.<br/>Pourquoi ne pas <b>contribuer à Cesium</b>, pour l'obtenir plus rapidement ? ;)",EMPTY_TX_HISTORY:"Aucune opération à exporter"},CONFIRM:{POPUP_TITLE:"<b>Confirmation</b>",POPUP_WARNING_TITLE:"<b>Avertissement</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avertissement de sécurité</b>',CERTIFY_RULES_TITLE_UID:"Certifier {{uid}}",CERTIFY_RULES:'<b class="assertive">Ne PAS certifier</b> un compte si vous pensez que :<br/><br/><ul><li>1.) il ne correspond pas à une personne <b>physique et vivante</b>.<li>2.) son propriétaire <b>possède un autre compte</b> déjà certifié.<li>3.) son propriétaire viole (volontairement ou non) la règle 1 ou 2 (par exemple en certifiant des comptes factices ou en double).</ul><br/><b>Êtes-vous sûr</b> de vouloir néanmoins certifier cette identité ?',FULLSCREEN:"Afficher l'application en plein écran ?",EXIT_APP:"Fermer l'application ?",TRANSFER:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",TRANSFER_ALL:"<b>Récapitulatif du virement</b> :<br/><br/><ul><li> - De : {{from}}</li><li> - A : <b>{{to}}</b></li><li> - Montant : <b>{{amount}} {{unit}}</b></li><li> - Commentaire : <i>{{comment}}</i></li><br/><li> - Reste : <b>{{restAmount}} {{unit}}</b> à <b>{{restTo}}</b></li></ul><br/><b>Êtes-vous sûr de vouloir effectuer ce virement ?</b>",MEMBERSHIP_OUT:"Cette opération est <b>irréversible</b>.<br/></br/>Êtes-vous sûr de vouloir <b>résilier votre compte membre</b> ?",MEMBERSHIP_OUT_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>résilier votre adhésion</b> comme membre ?",LOGIN_UNUSED_WALLET_TITLE:"Erreur de saisie ?",LOGIN_UNUSED_WALLET:"Le compte connecté semble <b>inactif</b>.<br/><br/>Il s'agit probablement d'une <b>erreur de saisie</b> dans vos identifiants de connexion. Veuillez recommencer, en vérifiant que <b>la clé publique est celle de votre compte</b>.",FIX_IDENTITY:"Le pseudonyme <b>{{uid}}</b> va être publiée à nouveau, en remplacement de l'ancienne publication qui a expirée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",FIX_MEMBERSHIP:"Votre demande d'adhésion comme membre va être renvoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",MEMBERSHIP:"Votre demande d'adhésion comme membre va être envoyée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",RENEW_MEMBERSHIP:"Votre adhésion comme membre va être renouvelée.<br/></br/><b>Êtes-vous sûr</b> de vouloir continuer ?",REVOKE_IDENTITY:"Vous allez <b>revoquer définitivement cette identité</b>.<br/><br/>La clé publique et le pseudonyme associés <b>ne pourront plus jamais être utilisés</b> (pour un compte membre). <br/></br/><b>Êtes-vous sûr</b> de vouloir révoquer définitivement ce compte ?",REVOKE_IDENTITY_2:"Cette opération est <b>irreversible</b> !<br/><br/>Êtes-vous vraiment sûr de vouloir <b>révoquer définitivement</b> ce compte ?",NOT_NEED_RENEW_MEMBERSHIP:"Votre adhésion n'a pas besoin d'être renouvelée (elle n'expirera que dans {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Êtes-vous sûr</b> de vouloir renouveler votre adhésion ?",SAVE_BEFORE_LEAVE:"Voulez-vous <b>sauvegarder vos modifications</b> avant de quitter la page ?",SAVE_BEFORE_LEAVE_TITLE:"Modifications non enregistrées",LOGOUT:"Êtes-vous sûr de vouloir vous déconnecter ?",USE_FALLBACK_NODE:"Nœud <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud <b>{{new}}</b> ?",ISSUE_524_SEND_LOG:"La transaction a été rejetée, à cause d'une anomalie connue (ticket #524) mais <b>non reproduite</b>.<br/><br/>Pour aider les développeurs à corriger cette erreur, <b>acceptez-vous la transmission de vos logs</b> par message ?<br/><small>(aucune donnée confidentielle n'est envoyée)</small>."},DOWNLOAD:{POPUP_TITLE:"<b>Fichier de révocation</b>",POPUP_REVOKE_MESSAGE:"Pour sécuriser votre compte, veuillez télécharger le <b>document de révocation de compte</b>. Il vous permettra le cas échéant d'annuler votre compte (en cas d'un vol de compte, d'un changement d'identifiant, d'un compte créé à tort, etc.).<br/><br/><b>Veuillez le stocker en lieu sûr.</b>"},HELP:{TITLE:"Aide en ligne",JOIN:{SECTION:"Inscription",SALT:"L'identifiant secret est très important. Il sert à mélanger le mot de passe, avant qu'il ne serve à calculer la <span class=\"text-italic\">clé publique</span> de votre compte (son numéro) et la clé secrète pour y accéder.<br/><b>Veillez à bien la mémoriser</b>, car aucun moyen n'est actuellement prévu pour la retrouver en cas de perte.<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon identifiant secret doit être suffisamment long (au moins 8 caractères) et le plus original possible.",PASSWORD:"Le mot de passe est très important. Avec l'identifiant secret, il sert à calculer le numéro (la clé publique) de votre compte, et la clé secrète pour y accéder.<br/><b>Veillez à bien le mémoriser</b>, car aucun moyen n'est prévu de le retrouver en cas de perte (sauf à générer un fichier de sauvegarde).<br/>Par ailleurs, il ne peut pas être modifié sans devoir créer un nouveau compte.<br/><br/>Un bon mot de passe contient (idéalement) au moins 8 caractères, dont au moins une majuscule et un chiffre.",PSEUDO:'Le pseudonyme est utilisé uniquement dans le cas d\'inscription comme <span class="text-italic">membre</span>. Il est toujours associé à un portefeuille (via sa <span class="text-italic">clé publique</span>).<br/>Il est publié sur le réseau, afin que les autres utilisateurs puisse l\'identifier, le certifier ou envoyer de la monnaie sur le compte.<br/>Un pseudonyme doit être unique au sein des membres (<u>actuels</u> et anciens).'},LOGIN:{SECTION:"Connexion",PUBKEY:"Clé publique du trousseau",PUBKEY_DEF:'La clef publique du trousseau est générée à partir des identifiants saisis (n\'importe lesquels), sans pour autant qu\'ils correspondent à un compte déjà utilisé.<br/><b>Vérifiez attentivement que la clé publique est celle de votre compte</b>. Dans le cas contraire, vous serez connecté à un compte probablement jamais utilisé, le risque de collision avec un compte existant étant infime.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',METHOD:"Méthodes de connexion",METHOD_DEF:'Plusieurs options sont disponibles pour vous connecter à un portefeuille :<br/> - La connexion <b>par salage (simple ou avancé)</b> mélange votre mot de passe grâce à l\'identifiant secret, pour limiter les tentatives de <a href="https://fr.wikipedia.org/wiki/Attaque_par_force_brute" target="_system">piratage par force brute</a> (par exemple à partir de mots connus).<br/> - La connexion <b>par clé publique</b> évite de saisir vos identifiants, qui vous seront demandé seulement le moment venu lors d\'une opération sur le compte.<br/> - La connexion <b>par fichier de trousseau</b> va lire les clés (publique et privée) du compte, depuis un fichier, sans besoin de saisir d\'identifiants. Plusieurs formats de fichier sont possibles.'},GLOSSARY:{SECTION:"Glossaire",PUBKEY_DEF:'Une clé publique identifie un portefeuille de monnaie, qui peut identifier un membre ou correspondre à un portefeuille anonyme. Dans Cesium la clé publique est calculée (par défaut) grâce à l\'identifiant secret et au mot de passe.<br/><a href="https://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique" target="_system">En savoir plus sur la cryptographie</a> par clé publique.',MEMBER:"Membre",MEMBER_DEF:'Un membre est une personne humaine physique et vivante, désireuse de participer librement à la communauté monétaire. Elle co-produit un dividende universel, suivant une période et un montant tels que définis dans les <span class="text-italic">règles de la monnaie</span>',CURRENCY_RULES:"Règles de la monnaie",CURRENCY_RULES_DEF:'Les règles de la monnaie sont définies une fois pour toutes. Elle fixe le fonctionnement de la monnaie : le calcul du dividende universel, le nombre de certifications nécessaire pour être membre, le nombre de certification maximum qu\'un membre peut donner, etc. <a href="#/app/currency">Voir les règles actuelles</a>.<br/>La non modification des règles dans le temps est possible par l\'utilisation d\'une <span class="text-italic">BlockChain</span> qui porte et exécute ces règles, et en vérifie constamment la bonne application.',BLOCKCHAIN:'Chaîne de blocs (<span class="text-italic">Blockchain</span>)',BLOCKCHAIN_DEF:'La BlockChain est un système décentralisé, qui, dans le cas de Duniter, sert à porter et exécuter les <span class="text-italic">règles de la monnaie</span>.<br/><a href="https://duniter.org/fr/comprendre/" target="_system">En savoir plus sur Duniter</a> et le fonctionnement de sa blockchain.',UNIVERSAL_DIVIDEND_DEF:'Le Dividende Universel (DU) est la quantité de monnaie co-créée par chaque membre, suivant la période et le calcul définis dans les <span class="text-italic">règles de la monnaie</span>.<br/>A chaque échéance, les membres recoivent sur leur compte la meme quantité de nouvelle monnaie.<br/><br/>Le DU subit une croissance régulière, pour rester juste entre les membres (actuels et à venir), calculée en fonction de l\'espérance de vie moyenne, telle que démontré dans la Thérorie Relative de la Monnaie (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">En savoir plus sur la TRM</a> et les monnaies libres.',WOT:"Toile de Confiance (TdC)",WOT_DEF:"La Toile de Confiance est constituée de l'ensemble des membres de la monnaie, et des liens de certification qui les relient.",DISTANCE_RULE:"Règle de distance",DISTANCE_RULE_DEF:"La règle de distance de la Toile de Confiance définie <b>une distance maximale à respecter</b> entre un postulant et un nombre minimum de membres référents (ou membres centraux). Cette distance est calculée en utilisant les liens de certification."},TIP:{MENU_BTN_CURRENCY:"Le menu <b>{{'MENU.CURRENCY'|translate}}</b> permet la consultation des <b>règles de la monnaie</b> et de son état.",CURRENCY_WOT:"Le <b>nombre de membres</b> montre l'importance de la communauté et permet de <b>suivre son évolution</b>.",CURRENCY_MASS:"Suivez ici la <b>quantité totale de monnaie</b> existante et sa <b>répartition moyenne</b> par membre.<br/><br/>Ceci permet de juger de l'<b>importance d'un montant</b>, vis à vis de ce que <b>possède les autres</b> sur leur compte (en moyenne).",CURRENCY_UNIT_RELATIVE:"L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que les montants en {{currency|capitalize}} ont été divisés par le <b>Dividende Universel</b> (DU).<br/><br/><small>Cette unité relative est <b>pertinente</b>, car stable malgré la quantitié de monnaie qui augmente en permanence.</small>",CURRENCY_CHANGE_UNIT:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants <b>directement en {{currency|capitalize}}</b> (plutôt qu'en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"L'option <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permet de <b>changer d'unité</b>, pour visualiser les montants en &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, c'est-à-dire relativement au Dividende Universel (le montant co-produit par chaque membre).",CURRENCY_RULES:"Les <b>règles</b> de la monnaie fixent son fonctionnement <b>exact et prévisible</b>.<br/><br/>Véritable ADN de la monnaie, elles rendent son code monétaire <b>lisible et transparent</b>.",MENU_BTN_NETWORK:"Le menu <b>{{'MENU.NETWORK'|translate}}</b> permet la consultation de l'état du réseau.",NETWORK_BLOCKCHAIN:"Toutes les opérations de la monnaie sont enregistrées dans un grand livre de compte <b>public et infalsifiable</b>, appelé aussi <b>chaine de blocs</b> (<em>BlockChain</em> en anglais).",NETWORK_PEERS:"Les <b>nœuds</b> visibles ici correspondent aux <b>ordinateurs qui actualisent et contrôlent</b> la chaine de blocs.<br/><br/>Plus il y a de nœuds, plus la monnaie a une gestion <b>décentralisée</b> et digne de confiance.",NETWORK_PEERS_BLOCK_NUMBER:"Ce <b>numéro</b> (en vert) indique le <b>dernier bloc validé</b> pour ce nœud (dernière page écrite dans le grand livre de comptes).<br/><br/>La couleur verte indique que ce bloc est également validé par <b>la plupart des autres nœuds</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Chaque membre</b>, équipé d\'un ordinateur avec Internet, <b>peut participer en ajoutant un nœud</b>. Il suffit d\'<b>installer le logiciel Duniter</b> (libre et gratuit). <a href="{{installDocUrl}}" target="_system">Voir le manuel d\'installation &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"Le menu <b>{{'ACCOUNT.TITLE'|translate}}</b> permet d'accéder à la gestion de votre compte.",MENU_BTN_ACCOUNT_MEMBER:"Consultez ici l'état de votre compte et les informations sur vos certifications.",WALLET_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos certifications (reçues et émises).",WALLET_RECEIVED_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications reçues</b>.",WALLET_GIVEN_CERTIFICATIONS:"Cliquez ici pour consulter le détail de vos <b>certifications émises</b>.",WALLET_BALANCE:"Le <b>solde</b> de votre compte s'affiche ici.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unité utilisée (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifie que le montant en {{currency|capitalize}} a été divisé par le <b>Dividende Universel</b> (DU) co-créé par chaque membre.<br/><br/>Actuellement 1 DU vaut {{currentUD|formatInteger}} {{currency|capitalize}}s.",WALLET_BALANCE_CHANGE_UNIT:"Vous pourrez <b>changer l'unité</b> d'affichage des montants dans les <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Par exemple pour visualiser les montants <b>directement en {{currency|capitalize}}</b>, plutôt qu'en unité relative.",WALLET_PUBKEY:"Voici la clé publique de votre compte. Vous pouvez la communiquer à un tiers afin qu'il identifie plus simplement votre compte.",WALLET_SEND:"Effectuer un paiement en quelques clics.",WALLET_SEND_NO_MONEY:"Effectuer un paiement en quelques clics.<br/>(Votre solde ne le permet pas encore)",WALLET_OPTIONS:"Ce bouton permet l'accès aux <b>actions d'adhésion</b> et de sécurité.<br/><br/>N'oubliez pas d'y jeter un oeil !",WALLET_RECEIVED_CERTS:"S'affichera ici la liste des personnes qui vous ont certifié.",WALLET_CERTIFY:"Le bouton <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permet de sélectionner une identité et de la certifier.<br/><br/>Seuls des utilisateurs <b>déjà membres</b> peuvent en certifier d'autres.",WALLET_CERT_STOCK:"Votre stock de certifications (émises) est limité à <b>{{sigStock}} certifications</b>.<br/><br/>Ce stock se renouvelle avec le temps, au fur et à mesure que les certifications s'invalident.",MENU_BTN_TX_MEMBER:"Le menu <b>{{'MENU.TRANSACTIONS'|translate}}</b> permet de consulter votre solde, l'historique vos transactions et d'envoyer un paiement.",MENU_BTN_TX:"Consultez ici <b>l'historique de vos transactions</b> et effectuez de nouvelles opérations.",MENU_BTN_WOT:"Le menu <b>{{'MENU.WOT'|translate}}</b> permet de rechercher parmi les <b>utilisateurs</b> de la monnaie (membres ou non).",WOT_SEARCH_TEXT_XS:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique).<br/><br/>La recherche se lancera automatiquement.",WOT_SEARCH_TEXT:"Pour rechercher dans l'annuaire, tapez les <b>premières lettres d'un pseudonyme</b> (ou d'une clé publique). <br/><br/>Appuyer ensuite sur <b>Entrée</b> pour lancer la recherche.",WOT_SEARCH_RESULT:"Visualisez la fiche détaillée simplement en <b>cliquant</b> sur une ligne.",WOT_VIEW_CERTIFICATIONS:"La ligne <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> montre combien de membres ont validé cette identité.<br/><br/>Ces certifications attestent que le compte appartient à <b>une personne humaine vivante</b> n'ayant <b>aucun autre compte membre</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Il faut au moins <b>{{sigQty}} certifications</b> pour devenir membre et recevoir le <b>Dividende Universel</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Un clic ici permet d'ouvrir <b>la liste de toutes les certifications</b> de l'identité (reçues et émises).",WOT_VIEW_CERTIFY:"Le bouton <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permet d'ajouter votre certification à cette identité.",CERTIFY_RULES:"<b>Attention :</b> Ne certifiez que des <b>personnes physiques vivantes</b>, ne possédant aucun autre compte membre.<br/><br/>La sécurité de la monnaie dépend de la vigilance de chacun !",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> vous permettront de configurer l'application.",HEADER_BAR_BTN_PROFILE:"Cliquez ici pour accéder à votre <b>profil utilisateur.</b>",SETTINGS_CHANGE_UNIT:"Vous pourrez <b>changer d'unité d'affichage</b> des montants en cliquant ci-dessus.<br/><br/>- Désactivez l'option pour un affichage des montants en {{currency|capitalize}}.<br/>- Activez l'option pour un affichage relatif en {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (tous les montants seront <b>divisés</b> par le Dividende Universel courant).",END_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Bonne continuation à vous, dans le nouveau monde de l'<b>économie libre</b> !",END_NOT_LOGIN:"Cette visite guidée est <b>terminée</b> !<br/><br/>Si vous souhaitez rejoindre la monnaie {{currency|capitalize}}, il vous suffira de cliquer sur <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> ci-dessous."}},API:{COMMON:{LINK_DOC:"Documentation API",LINK_DOC_HELP:"Documentation pour les développeurs",LINK_STANDARD_APP:"Version classique",LINK_STANDARD_APP_HELP:"Ouvrir la version classique de {{'COMMON.APP_NAME'|translate}}",CONNECTION_ERROR:"Nœud <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Vérifiez votre connexion Internet, ou contactez l'administrateur du site</a>."},HOME:{TITLE:"Documentation API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connectez vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connectez vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Paiement en ligne",SUMMARY:"Récapitulatif du paiement :",AMOUNT:"Montant :",AMOUNTS_HELP:"Veuillez choisir le montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinataire :",COMMENT:"Référence de l'opération :",NODE:"Adresse du nœud :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Échec du paiement"}},DOC:{DESCRIPTION_DIVIDER:"Description",URL_DIVIDER:"Adresse d'appel",PARAMETERS_DIVIDER:"Paramètres",AVAILABLE_PARAMETERS:"Voici la liste des paramètres possibles :",DEMO_DIVIDER:"Tester",DEMO_HELP:"Pour tester ce service, cliquez sur le bouton ci-contre. Le résultat s'affichera en dessous.",DEMO_RESULT:"Résultat retourné par l'appel :",DEMO_RESULT_PEER:"Adresse du nœud utilisé :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Succès !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulé par l\'utilisateur',INTEGRATE_DIVIDER:"Intégrer",INTEGRATE_CODE:"Code :",INTEGRATE_RESULT:"Prévisualisation du résultat :",INTEGRATE_PARAMETERS:"Paramètres",TRANSFER:{TITLE:"Paiements",DESCRIPTION:"Depuis un site (ex: vente en ligne) vous pouvez déléguer le paiement en monnaie libre à Cesium API. Pour cela, il vous suffit de déclencher l'ouverture d'une page sur l'adresse suivante :",PARAM_PUBKEY:"Clé publique du destinataire",PARAM_PUBKEY_HELP:"Clé publique du destinataire (obligatoire)",PARAM_AMOUNT:"Montant",PARAM_AMOUNT_HELP:"Montant de la transaction (obligatoire). Valeurs multiples autorisées, en utilisant un séparateur (point-virgule, barre verticale ou espace).",PARAM_COMMENT:"Référence (ou commentaire)",PARAM_COMMENT_HELP:"Référence ou commentaire. Vous permettra par exemple d'identifier le paiement dans la BlockChain.",PARAM_NAME:"Nom (du destinataire ou du site web)",PARAM_NAME_HELP:'Le nom du destinataire, ou du site web appelant. Cela peut être un nom lisible ("Mon site en ligne"), ou encore une pseudo-adresse web ("MonSite.com").',PARAM_REDIRECT_URL:"Adresse web de redirection",PARAM_REDIRECT_URL_HELP:'Adresse web (URL) de redirection, appelé quand le paiement a été envoyé. Peut contenir les chaînes suivantes, qui seront remplacées par les valeurs de la transaction : "{tx}", "{hash}", "{comment}", "{amount}", "{pubkey}" et "{node}".',PARAM_CANCEL_URL:"Adresse web d'annulation",PARAM_CANCEL_URL_HELP:'Adresse web (URL) en cas d\'annulation du paiement, par l\'utilisateur. Peut contenir les chaînes suivantes, qui seront remplacées dynamiquement : "{comment}", "{amount}" et {pubkey}.',PARAM_PREFERRED_NODE:"Adresse du nœud préféré",PARAM_PREFERRED_NODE_HELP:'Adresse (URL) du nœud Duniter à utiliser de préférence ("g1.domaine.com:443" ou "https://g1.domaine.com").',EXAMPLES_HELP:"Voici des exemples d'intégration :",EXAMPLE_BUTTON:"Bouton HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Payer en {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Style personnalisé",EXAMPLE_BUTTON_TEXT_HELP:"Texte du bouton",EXAMPLE_BUTTON_BG_COLOR:"Couleur du fond",EXAMPLE_BUTTON_BG_COLOR_HELP:"Exemple : #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Couleur du texte",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Exemple : black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icône",EXAMPLE_BUTTON_TEXT_WIDTH:"Largeur",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Exemple : 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Aucune",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (noir)"}}}}),e.translations("it-IT",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Chiave privata",MEMBER:"Membro",BLOCK:"Blocco",BTN_OK:"OK",BTN_YES:"Si",BTN_NO:"No",BTN_SEND:"Inviare",BTN_SEND_MONEY:"Trasferire soldi",BTN_SEND_MONEY_SHORT:"Trasferire",BTN_SAVE:"Salvare",BTN_YES_SAVE:"Si, salvare",BTN_YES_CONTINUE:"Si, continuare",BTN_SHOW:"Mostrare",BTN_SHOW_PUBKEY:"Mostrare chiave pubblica",BTN_RELATIVE_UNIT:"Mostra importi in DU?",BTN_BACK:"Indietro",BTN_NEXT:"Avanti",BTN_CANCEL:"Cancellare",BTN_CLOSE:"Chiudere",BTN_LATER:"Più tardi",BTN_LOGIN:"Accedi",BTN_LOGOUT:"Log out",BTN_ADD_ACCOUNT:"Nuovo conto",BTN_SHARE:"Condividere",BTN_EDIT:"Modificare",BTN_DELETE:"Eliminare",BTN_ADD:"Aggiungere",BTN_SEARCH:"Cercare",BTN_REFRESH:"Aggiornare",BTN_RETRY:"Riprovare",BTN_START:"Iniziare",BTN_CONTINUE:"Continuare",BTN_CREATE:"Creare",BTN_UNDERSTOOD:"Ho capito",BTN_OPTIONS:"Opzioni",BTN_HELP_TOUR:"Mostrami le funzionalità",BTN_HELP_TOUR_SCREEN:"Scoprire questo schermo",BTN_DOWNLOAD:"Scaricare",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Scaricare estratto conto",BTN_MODIFY:"Modificare",CHOOSE_FILE:"Trascini un file <br/>o cliccare per selezionare",DAYS:"giorni",NO_ACCOUNT_QUESTION:"Non sei ancora membro? Registrati subito!",SEARCH_NO_RESULT:"Nessun risultato trovato",LOADING:"Caricando...",SEARCHING:"Cercando...",FROM:"Da",TO:"A",COPY:"Copiare",LANGUAGE:"Lingua",UNIVERSAL_DIVIDEND:"Dividendo universale",UD:"UD",DATE_PATTERN:"DD/MM/YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD/MM/YY",DATE_MONTH_YEAR_PATTERN:"MM/YYYY",EMPTY_PARENTHESIS:"(empty)",UID:"Pseudonimo",ENABLE:"Attivato",DISABLE:"Disattivato",RESULTS_LIST:"Risultati:",RESULTS_COUNT:"{{count}} risultati",EXECUTION_TIME:"eeseguit in {{duration|formatDurationMs}}",SHOW_VALUES:"Mostrare valori in modo trasparente?",POPOVER_ACTIONS_TITLE:"Opzioni",POPOVER_FILTER_TITLE:"Filtri",SHOW_MORE:"Mostrare di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",POPOVER_SHARE:{TITLE:"Condividere",SHARE_ON_TWITTER:"Condividere su Twitter",SHARE_ON_FACEBOOK:"Condividere su Facebook",SHARE_ON_DIASPORA:"Condividere su Diaspora*",SHARE_ON_GOOGLEPLUS:"Condividere su Google+"},FILE:{DATE:"Data:",TYPE:"Tipo:",SIZE:"Dimensioni del file:",VALIDATING:"Validazione in corso..."}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Scegliere un file:",BTN_PICTURE_GALLERY:"Galleria",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Home",WOT:"Annuario",CURRENCY:"Moneta",ACCOUNT:"Mio conto",WALLETS:"I miei portafogli",TRANSFER:"Trasferire",SCAN:"Scansionare",SETTINGS:"Impostazioni",NETWORK:"Rete",TRANSACTIONS:"Miei pagamenti"},ABOUT:{TITLE:"A proposito",LICENSE:"<b>Free/libre software</b> (License GNU AGPLv3).",CODE:"Codice sorgente:",DEVELOPERS:"Sviluppatori:",FORUM:"Forum:",DEV_WARNING:"Attenzione!",DEV_WARNING_MESSAGE:"Questa app è ancora in sviluppo attivo.<br/>Facci sapere se trovi dei bugs!",DEV_WARNING_MESSAGE_SHORT:"Questa app è tutt'ora instabile (in sviluppo)",REPORT_ISSUE:"Segnalare un bug"},HOME:{TITLE:"Cesium",WELCOME:"Benvenuti nell'{{'COMMON.APP_NAME'|translate}} App!",MESSAGE:"Scambiate in moneta libera. {{currency|abbreviate}}!",BTN_CURRENCY:"Esplorare la moneta",BTN_ABOUT:"a proposito",BTN_HELP:"Aiuto",REPORT_ISSUE:"Segnalare un bug",NOT_YOUR_ACCOUNT_QUESTION:'Non sei proprietario del conto <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b>?',BTN_CHANGE_ACCOUNT:"Disconettere questo conto",CONNECTION_ERROR:'Peer <b>{{server}}</b> irraggiungibile o indirizzo invalido. <br/><br/> Verifica tua connessione or cambia nodo. <a class="positive" ng-click="doQuickFix(\'settings\')">nell impostazioni. </a>.'},SETTINGS:{TITLE:"Impostazioni",NETWORK_SETTINGS:"Rete",PEER:"Indirizzo peer Duniter",PEER_CHANGED_TEMPORARY:"Indirizzo usato per un tempo determinato",USE_LOCAL_STORAGE:"Abilitare local storage",USE_LOCAL_STORAGE_HELP:"Permette di salvare tue impostazioni",ENABLE_HELPTIP:"Abilitare consigli dinamici",ENABLE_UI_EFFECTS:"Abilitare effetti visivi",HISTORY_SETTINGS:"Mio conto",DISPLAY_UD_HISTORY:"Mostrare dividendi prodotti?",AUTHENTICATION_SETTINGS:"Autenticazione",KEEP_AUTH:"Scadenza dell'autenticazione",KEEP_AUTH_SHORT:"Scadenza",KEEP_AUTH_HELP:"Definire quando l'autenticazione verrà eliminata dalla memoria.",KEEP_AUTH_OPTION:{NEVER:"Dopo ogni operazione",SECONDS:"Dopo {{value}}s d'inattività",MINUTE:"Dopo{{value}}min d'inattività",MINUTES:"Dopo {{value}}min d'inattività",HOUR:"Dopo {{value}}h d'inattività",ALWAYS:"Alla fine della sessione"},REMEMBER_ME:"Ricordarsi di me?",REMEMBER_ME_HELP:"Rimanere identificato/a da una sessione all'altra, conservando la chiave localmente.",PLUGINS_SETTINGS:"Estensioni",BTN_RESET:"Ripristini valori predefiniti",EXPERT_MODE:"Abilitare modlità eseperto",EXPERT_MODE_HELP:"Permette di vedere più dettagli",POPUP_PEER:{TITLE:"Peer Duniter",HOST:"Indirizzo",HOST_HELP:"Indirizzo: server:port",USE_SSL:"Securizzato?",USE_SSL_HELP:"(SSL Encryption)",BTN_SHOW_LIST:"Lista dei peers"}},BLOCKCHAIN:{HASH:"Hash: {{hash}}",VIEW:{HEADER_TITLE:"Blocco #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Blocco attuale",TITLE:"Blocco #{{number|formatInteger}}",COMPUTED_BY:"Calcolato da",SHOW_RAW:"Mostrare dati grezzi",TECHNICAL_DIVIDER:"Informazioni tecniche",VERSION:"Versione di formatto",HASH:"Hash calcolato",UNIVERSAL_DIVIDEND_HELP:"Moneta co-prodotta da ciasciun dei {{membersCount}} membri",EMPTY:"Nessun dati in questo blocco",POW_MIN:"Difficoltà minimale",POW_MIN_HELP:"Difficoltà imposta nel calcolo del hash",DATA_DIVIDER:"Dati",IDENTITIES_COUNT:"Nuove identità",JOINERS_COUNT:"Nuovi membri",ACTIVES_COUNT:"Rinnovi",ACTIVES_COUNT_HELP:"Membri che hanno rinnovato la loro presenza nella rete",LEAVERS_COUNT:"",LEAVERS_COUNT_HELP:"Membri che si sono fatti escludere dalla rete",EXCLUDED_COUNT:"Membri esclusi",EXCLUDED_COUNT_HELP:"Vecchi membri, esclusi per certificazione non rinnovata o soglia di certificazioni non raggiunta.",REVOKED_COUNT:"Identità revocate",REVOKED_COUNT_HELP:"Può essere che questi conti non siano più attivi",TX_COUNT:"Transazioni",CERT_COUNT:"Certificazioni",TX_TO_HIMSELF:"Cambio",TX_OUTPUT_UNLOCK_CONDITIONS:"Sbloccare condizioni",TX_OUTPUT_OPERATOR:{AND:"e",OR:"o"},TX_OUTPUT_FUNCTION:{SIG:"<b>Firma</b> della chive pubblica",XHX:"<b>Password</b>, incluso SHA256 =",CSV:"Bloccato per",CLTV:"Bloccato fino a"}},LOOKUP:{TITLE:"Blocchi",NO_BLOCK:"Nessun blocco",LAST_BLOCKS:"Ultimi blocchi:",BTN_COMPACT:"Compact"}},
+CURRENCY:{VIEW:{TITLE:"Moneta",TAB_CURRENCY:"Moneta",TAB_WOT:"Web of trust",TAB_NETWORK:"Rete",TAB_BLOCKS:"Blocchi",CURRENCY_SHORT_DESCRIPTION:"{{currency|capitalize}} è <b>una moneta libera</b>, {{firstBlockTime | formatFromNow}}. La rete comprende <b>{{N}} membri </b>, che produccono e ricevono un <a ng-click=\"showHelpModal('ud')\">Dividendo Universale</a> (DU), ogni {{dt | formatPeriod}}.",NETWORK_RULES_DIVIDER:"Regole della rete",CURRENCY_NAME:"Nome della moneta",MEMBERS:"Numero di membri",MEMBERS_VARIATION:"Variazione da {{duration|formatDuration}} (dall' ultimo UD)",MONEY_DIVIDER:"Moneta",MASS:"Massa monetaria",SHARE:"Quantità a testa",UD:"Dividendo universale",C_ACTUAL:"Crescita attuale",MEDIAN_TIME:"Current blockchain time",POW_MIN:"Difficoltà commune",MONEY_RULES_DIVIDER:"Regole della moneta",C_RULE:"Obbietivo teorico di crescità",UD_RULE:"Dividendo universale (formula)",DT_REEVAL:"Periodo tra due re-evaluazioni del UD",REEVAL_SYMBOL:"reeval",DT_REEVAL_VALUE:"Ogni <b>{{dtReeval|formatDuration}}</b> ({{dtReeval/86400}} {{'COMMON.DAYS'|translate}})",UD_REEVAL_TIME0:"Data della prima re-evaluzione del UD",SIG_QTY_RULE:"Numero di certificazioni requisiti per diventare membro",SIG_STOCK:"Numero massimo di certificazioni inviate da un membro",SIG_PERIOD:"Tempo minimo tra 2 certificazioni inviate da un unico membro.",SIG_WINDOW:"Periodo massimo prima che una certificazione venga studiata",SIG_VALIDITY:"Durata di vita di una certificazione che è state presa in conto",MS_WINDOW:"Periodo massimo prima che una certificazione pendente sia validata",MS_VALIDITY:"Durata di vita di un'adesione che è state presa in conto",STEP_MAX:"Distanza massima tra un nuovo membro e ogni membro referente.",WOT_RULES_DIVIDER:"Regole della Web of Trust",SENTRIES:"Numero di certificazioni (date <b>e</b> ricevute) per diventare membro referente ",SENTRIES_FORMULA:"Numero di certificazioni necessarie per diventare membro (formula)",XPERCENT:"Percentaggio minimino di membri referenti per rispettare la regola di distanza tra i membri",AVG_GEN_TIME:"Tempo medio tra due blocchi",CURRENT:"attuale",MATH_CEILING:"CEILING",DISPLAY_ALL_RULES:"Mostrare tutte le regole?",BTN_SHOW_LICENSE:"Mostrare licenza",WOT_DIVIDER:"Web of trust"},LICENSE:{TITLE:"Licensa attuale",BTN_DOWNLOAD:"Scaricare il file",NO_LICENSE_FILE:"File di licenza non trovato ."}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain time",LOADING_PEERS:"Caricando peers...",NODE_ADDRESS:"Indirizzo del peer",SOFTWARE:"Software",WARN_PRE_RELEASE:"Pre-versione (ultima versione stabile: <b>{{version}}</b>)",WARN_NEW_RELEASE:"Versione <b>{{version}}</b> disponibile",WS2PID:"Identificativo :",PRIVATE_ACCESS:"Accesso privato",POW_PREFIX:"Prefisso Prova di Lavoro :",ENDPOINTS:{BMAS:"Endpoint sicuro (SSL)",BMATOR:"Interfaccia rete TOR",WS2P:"Interfaccia WS2P",ES_USER_API:"Cesium+ data node"}},INFO:{ONLY_SSL_PEERS:"I nodi non-SSL hanno un display semplificato perche Cesium funziona in modalità HTTPS."}},PEER:{PEERS:"Peers-Nodi",SIGNED_ON_BLOCK:"Firmato nel blocco",MIRROR:"Specchio",MIRRORS:"Specchio",MIRROR_PEERS:"Peers specchio",PEER_LIST:"Lista dei peers",MEMBERS:"Membri",MEMBER_PEERS:"Peers membri",ALL_PEERS:"Tutti i peers",DIFFICULTY:"Difficoltà",API:"API",CURRENT_BLOCK:"Blocco #",POPOVER_FILTER_TITLE:"Filtro",OFFLINE:"Sconessi",OFFLINE_PEERS:"Peers sconessi",BTN_SHOW_PEER:"Mostrare peer",VIEW:{TITLE:"Peer",OWNER:"Proprietà di ",SHOW_RAW_PEERING:"Vedere il documento di peering",SHOW_RAW_CURRENT_BLOCK:"Vedere l'utimo blocco (formatto grezzo)",LAST_BLOCKS:"Ultimi blocchi",KNOWN_PEERS:"Peers conosciuti :",GENERAL_DIVIDER:"Informazioni generali",ERROR:{LOADING_TOR_NODE_ERROR:"Impossibile ottenere i dati del peer, periodo di attesa scaduto.",LOADING_NODE_ERROR:"Impossibile ottenere i dati del peer"}}},WOT:{SEARCH_HELP:"Cercare (membro o chiave pubblica)",SEARCH_INIT_PHASE_WARNING:"La ricerca per le certificazioni pendenti <b>può essere lunga</b> durante la fase di pre-certificazione. La preghiamo di attendere...",REGISTERED_SINCE:"Certificato/a dal",REGISTERED_SINCE_BLOCK:"Certificato/a dal blocco #",NO_CERTIFICATION:"Nessuna certificazione valida",NO_GIVEN_CERTIFICATION:"Nessuna certificazione data",NOT_MEMBER_PARENTHESIS:"(non-membro)",IDENTITY_REVOKED_PARENTHESIS:"(identità revocata)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(Cancellazione dell'identità pendente)",EXPIRE_IN:"Scade",NOT_WRITTEN_EXPIRE_IN:"Scadenza <br/> ",EXPIRED:"Scaduto",PSEUDO:"Pseudonimo",SIGNED_ON_BLOCK:"Emessa nel blocco #{{block}}",WRITTEN_ON_BLOCK:"Scritta nel blocco #{{block}}",GENERAL_DIVIDER:"Informazioni generali",NOT_MEMBER_ACCOUNT:"Conto non-membro",NOT_MEMBER_ACCOUNT_HELP:"Questo è un semplice portafoglio osservatore, senza richiesta di certificazione emessa.",TECHNICAL_DIVIDER:"Dati tecnici",BTN_CERTIFY:"Certificare",BTN_YES_CERTIFY:"Si, certificare",BTN_SELECT_AND_CERTIFY:"Nuova certificazione",ACCOUNT_OPERATIONS:"Operazioni sul conto",VIEW:{POPOVER_SHARE_TITLE:"Identità {{title}}"},LOOKUP:{TITLE:"Annuario",NEWCOMERS:"Nuovi membri:",NEWCOMERS_COUNT:"{{count}} membri",PENDING:"Registrazioni pendenti",PENDING_COUNT:"{{count}} inscrizioni pendenti",REGISTERED:"Registrato {{sigDate | formatFromNow}}",MEMBER_FROM:"Membro dal {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Ultimi membri",BTN_PENDING:"Registrazioni pendenti",SHOW_MORE:"Vedere di più",SHOW_MORE_COUNT:"(limite attuale di {{limit}})",NO_PENDING:"Nessuna certificazione pendente.",NO_NEWCOMERS:"Nessun membro."},CONTACTS:{TITLE:"Contatti"},MODAL:{TITLE:"Ricerca"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni",SUMMARY:"Certificazioni ricevute",LIST:"Dettagli delle certificazioni ricevute",PENDING_LIST:"Certificazioni pendenti",RECEIVED:"Certificazioni ricevute",RECEIVED_BY:"Certifications ricevute da {{uid}}",ERROR:"Certificazioni ricevute per errore",SENTRY_MEMBER:"Membro referente"},OPERATIONS:{TITLE:"{{uid}} - Operazioni"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Certificazioni inviate",SUMMARY:"Certificazioni inviate",LIST:"Dettagli delle certificazioni inviate",PENDING_LIST:"Certificazioni ",SENT:"Certificazioni inviate",SENT_BY:"Certificazioni inviate da {{uid}}",ERROR:"Certificazioni inviate per errore"}},LOGIN:{TITLE:'<i class="icon ion-log-in"></i> Accedi',SCRYPT_FORM_HELP:"Accedi con tuoi dati <br> Ricordati di verificare che stai utilizzando la chiave del tuo conto.",PUBKEY_FORM_HELP:"Scrivi qui la tua chiave privata:",FILE_FORM_HELP:"Scegliere un portachiavi da utilizzare:",SCAN_FORM_HELP:"Scansiona il codice QR di un portafoglio.",SALT:"Identificativo segreto",SALT_HELP:"Identificativo segreto",SHOW_SALT:"Mostrare identificativo segreto?",PASSWORD:"Passsord",PASSWORD_HELP:"Password",PUBKEY_HELP:"Chiave pubblica, pseudonimo",NO_ACCOUNT_QUESTION:"Ancora non hai un conto?",HAVE_ACCOUNT_QUESTION:"Hai già un account?",CREATE_ACCOUNT:"Creare un conto",CREATE_FREE_ACCOUNT:"Crea un conto gratuito",FORGOTTEN_ID:"Non ricordi la password?",ASSOCIATED_PUBKEY:"Chiave pubblica:",BTN_METHODS:"Altri metodi",BTN_METHODS_DOTS:"Cambiare metodo...",METHOD_POPOVER_TITLE:"Metodi",MEMORIZE_AUTH_FILE:"Memorizzare questo portachiavi per la durata di questa sessione",SCRYPT_PARAMETERS:"Parametri (Scrypt) :",AUTO_LOGOUT:{TITLE:"Informazioni",MESSAGE:'<i class="ion-android-time"></i> Sei stato <b>sconesso/ b> automaticamente, per un periodo di inattività prolongata',BTN_RELOGIN:"Accedi",IDLE_WARNING:"Sarai disconesso in... {{countdown}}"},METHOD:{SCRYPT_DEFAULT:"Salatura standard (imp. predefinita)",SCRYPT_ADVANCED:"Salatura avanzata",FILE:"File del portachiavi",PUBKEY:"Chiave pubblica soltanto",SCAN:"Scansiona un codice QR"},SCRYPT:{SIMPLE:"Salatura leggera",DEFAULT:"Salatura standard",SECURE:"Salatura sicura",HARDEST:"Salatura più sicura",EXTREME:"Salatura estrema",USER:"Salatura personalizzata",N:"N (Loop):",r:"r (RAM):",p:"p (CPU):"},FILE:{HELP:"Format del file atteso: <b>.dunikey</b> (type PubSec). Altri formati in sviluppo (EWIF, WIF)."}},AUTH:{TITLE:'<i class="icon ion-locked"></i> Autenticazione',BTN_AUTH:"Autenticarsi",GENERAL_HELP:"Autenticati :",EXPECTED_UID_HELP:'Effettua il login nell\'account <i class="ion-person"></i> {{uid}}:',EXPECTED_PUBKEY_HELP:'Si prega di autenticarsi sul portafoglio <i class="ion-key"></i> {{pubkey|formatPubkey}}:',SCAN_FORM_HELP:"Scansiona il codice QR della <b>chiave privata</b> del portafoglio."},ACCOUNT:{TITLE:"Mio conto",BALANCE:"Saldo",LAST_TX:"Ultime transazioni",BALANCE_ACCOUNT:"Saldo del conto",NO_TX:"Nessuna transazione",SHOW_MORE_TX:"Mostrare di più",SHOW_ALL_TX:"Mostrare tutte",TX_FROM_DATE:"(limite attuale del {{fromTime|medianFromNowShort}})",PENDING_TX:"Transazioni pendenti",VALIDATING_TX:"Transazioni in corso di convalida",ERROR_TX:"Transaction non eseguite",ERROR_TX_SENT:"Transazioni inviate",PENDING_TX_RECEIVED:"Transazioni in attesa di recezione",EVENTS:"Eventi",WAITING_MEMBERSHIP:"Richiesta di certificazione inviata. In attesa di validazione.",WAITING_CERTIFICATIONS:"Hai bisogno di {{needCertificationCount}} certificazione(i) per diventare membro.",WILL_MISSING_CERTIFICATIONS:"Mancherai a breve <b>di certificazioni</b> (occorrono almeno {{willNeedCertificationCount}} altre certificazioni)",WILL_NEED_RENEW_MEMBERSHIP:"Tua certificazione <b>scaderà{{membershipExpiresIn|formatDurationTo}}</b>. Ricordati di <a ng-click=\"doQuickFix('renew')\">rinnovarla</a> prima.",NEED_RENEW_MEMBERSHIP:"You are no longer a member because your membership <b>has expired</b>. Remember to <a ng-click=\"doQuickFix('renew')\">renew your membership</a>.",NO_WAITING_MEMBERSHIP:"Nessuna domanda di adesione pendente. Se desideri <b>diventare membro</b>, ricordati di <a ng-click=\"doQuickFix('membership')\">inviare tua domanda di adesione</a>.",CERTIFICATION_COUNT:"Certificazioni ricevute",CERTIFICATION_COUNT_SHORT:"Certificazioni",SIG_STOCK:"Stock di certificazioni da inviare",BTN_RECEIVE_MONEY:"Ricevere",BTN_SELECT_ALTERNATIVES_IDENTITIES:"Usare un'altra identità..",BTN_FIX_MEMBERSHIP:"Invia nuovamente di adesione...",BTN_MEMBERSHIP_RENEW:"Rinnovare adesione",BTN_MEMBERSHIP_RENEW_DOTS:"Rinnovare adesione ...",BTN_MEMBERSHIP_OUT_DOTS:"Revocare adesione...",BTN_SECURITY_DOTS:"Login e securità...",BTN_SHOW_DETAILS:"Visualizzare dati tecnici",LOCKED_OUTPUTS_POPOVER:{TITLE:"Importo bloccata",DESCRIPTION:"Ecco le condizioni per sbloccare questo importo:",DESCRIPTION_MANY:"Questa transazione è fatta da diverse parti, di cui queste sono le condizioni di sblocco:",LOCKED_AMOUNT:"Condizioni per l'importo:"},NEW:{TITLE:"Registrazione",INTRO_WARNING_TIME:"Crearsi un conto su {{name|capitalize}} è molto semplice. E consigliato prendere il giusto tempo per farlo correttamente (per evitare di dimenticare passwords, pseudonimi etc.).",INTRO_WARNING_SECURITY:"Occorre verificare che il hardware che stai utilizzando (computer, tablet, cellulare) <b>è sicuro e affidabile</b>.",INTRO_WARNING_SECURITY_HELP:"Anti-virus aggiornato, firewall abilitato, session protteta da un password o codice PIN...",INTRO_HELP:"Cliccare <b> {{'COMMON.BTN_START'|translate}}</b> per avviare la creazione del conto. Ti accompagniamo passo alla volta.",REGISTRATION_NODE:"Tua iscrizione verrà salvata dal nodo peer Duniter <b>{{server}}</b>, è verrà poi condivisa nella rete della moneta.",REGISTRATION_NODE_HELP:"Se non ti fidi di questo peer, per favore cambialo <a ng-click=\"doQuickFix('settings')\">nelle impostazioni/a> di Cesium.",SELECT_ACCOUNT_TYPE:"Scegliere un tipo di conto:",MEMBER_ACCOUNT:"Conto membro",MEMBER_ACCOUNT_TITLE:"Creare un conto membro",MEMBER_ACCOUNT_HELP:"Se non sei ancora registrato come individuo (un conto a persona soltanto).",WALLET_ACCOUNT:"Semplice portafoglio",WALLET_ACCOUNT_TITLE:"Creare un portafoglio",WALLET_ACCOUNT_HELP:"Se rappresenti un'azienda, associazione, altra ente o hai necessita di un altro portafoglio. Nessun Dividendo Universale sarà prodotto da questo conto.",SALT_WARNING:"Scegliere un identificativo segreto.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarlo!</b>.<br/>Se lo dimentichi non ti potrà aiutare nessuno!",PASSWORD_WARNING:"Scegliere una password.<br/>E necessario per ogni connessione a questo conto.<br/><br/><b>Accertati di ricordarla!</b>.<br/>Se la dimentichi non ti potrà aiutare nessuno!",PSEUDO_WARNING:"Segliere uno pseudonimo.<br/>Puo essere utile per chi ti cerca nella rete.<br/><br/>.L'utilizzo delle<b>virgole, spazi e accenti</b> è vietato.<br/><div class='hidden-xs'><br/>Esempio: <span class='gray'>JohnDalton, JackieChan, etc.</span>",PSEUDO:"Pseudonimo",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Confermare",SALT_CONFIRM_HELP:"Confermare l'identificativo segreto",PASSWORD_CONFIRM:"Confermare",PASSWORD_CONFIRM_HELP:"Confermare la password",SLIDE_6_TITLE:"Conferma:",COMPUTING_PUBKEY:"Calcolando...",LAST_SLIDE_CONGRATULATION:"Hai riempito tutti i campi richiesti.<br/><b>Puoi inviare la richiesta di creazione del conto</b>.<br/><br/>Per tua informazione, la chiave pubblica qui sotto identifica il tuo futuro conto.<br/>Puo essere communicata a chi ti deve pagare per esempio.<br/>Quando tuo conto verrà approvato potrai trovare la chiave qui <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare.<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b>di voler inviare questa richiesta di creazione di conto?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Warning:</b> tuo identificare segreto, tua password e tuo pseudonimo non si possono cambiare..<br/><b>Ricordali per sempre!</b><br/><b>Sei sicuro/a</b> di voler continuare?',CHECKING_PSEUDO:"Verificazione in corso...",PSEUDO_AVAILABLE:"Pseudonimo disponibile",PSEUDO_NOT_AVAILABLE:"Pseudonimo indisponibile",INFO_LICENSE:"TPer aderire alla moneta, ti chiediamo di leggere e accetare le condizioni della licenza.",BTN_ACCEPT:"Accetto",BTN_ACCEPT_LICENSE:"Accetto la licenza"},POPUP_REGISTER:{TITLE:"Pseudonimo",HELP:"Un pseudonimo è necessario per che gli altri ti possino trovare."},SELECT_IDENTITY_MODAL:{TITLE:"Selezionare una identità",HELP:'Più <b>identità diverse</b> sono state inviate per la chiave pubblica <span class="gray"><i class="ion-key"></i> {{pubkey|formatPubkey}}</span>.<br/>Seleziona un dossier da usare :'},SELECT_WALLET_MODAL:{TITLE:"Selezione del portafoglio"},WALLET_LIST:{TITLE:"Portafoglio secondario",BTN_NEW:"Aggiungi un portfolio",NO_WALLET:"Nessun portafoglio secondario",BTN_DELETE:"Rimuovi un portafoglio secondario ...",BTN_RENAME:"Rinominare il portafoglio",EDIT_POPOVER:{TITLE:"Rinominare il portafoglio",HELP:"Compila il nuovo nome",NAME_HELP:"Nome del portafoglio"}},SECURITY:{ADD_QUESTION:"Aggiungere domanda personalizzata",BTN_CLEAN:"Svuotare",BTN_RESET:"Reset",DOWNLOAD_REVOKE:"Salvare un file di revoca",DOWNLOAD_REVOKE_HELP:"Avere une file di revoca è necessario in caso di smarrimento dei tuoi credenziali. Ti permette <b> di rimuovere tuo conto dalla Web Of Trust</b>, per farlo tornare ad essere un semplice portafoglio.",HELP_LEVEL:"Scegliere <strong> almeno{{nb}} domande </strong> :",LEVEL:"Livello di sicurezza",LOW_LEVEL:'Basso <span class="hidden-xs">(minimo di 2 domande)</span>',MEDIUM_LEVEL:'Medio <span class="hidden-xs">(minimo di 4 domande)</span>',QUESTION_1:"Qual'era il nome del tuo miglior amico quando eri adolescente ?",QUESTION_2:"Qual'era il nome del tuo primo animale domestico?",QUESTION_3:"Qual'è il primo piatto che imparasti a cucinare?",QUESTION_4:"Qual'è il primo film che hai visto al cinema?",QUESTION_5:"Qual'era la destinazione del tuo primo volo?",QUESTION_6:"Qual'era il nome del tuo professore preferito in scuola ?",QUESTION_7:"Quale sarebbe il tuo lavoro preferito?",QUESTION_8:"Qual'è il tuo libro per bimbi preferito?",QUESTION_9:"Qual'era il marchio della tua prima macchina?",QUESTION_10:"Qual'era il tuo nomignolo da ragazzino/a ?",QUESTION_11:"Qual'era il tuo personaggio di film o attore preferito quand eri studente?",QUESTION_12:"Qual'era il tuo musicista/cantante/grupo preferito quand eri studente ?",QUESTION_13:"In che città si sono conosciuti tuoi genitori ?",QUESTION_14:"Qual'era il nome del tuo primo capo ?",QUESTION_15:"Qual'è il nome della strada dove sei cresciuto/a ?",QUESTION_16:"Qual'è il nome della tua spiaggia preferita ?",QUESTION_17:"Qual'è il primo album che ti sei comprato ?",QUESTION_18:"Qual'è il nome della squadra di sport preferita ?",QUESTION_19:"Cosa faceva tuo nonno ?",RECOVER_ID:"Ricuperare mia password...",RECOVER_ID_HELP:"Se hai un<b<file di backup dei tuoi credenziali</b>, li puoi trovare rispondendo correttamente alle tue domande personalizzate.",REVOCATION_WITH_FILE:"Revocare il mio conto membro...",REVOCATION_WITH_FILE_DESCRIPTION:"Se pensi di aver perso <b>definitivamente tuoi credenziali</b> di conto membro (o che la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per forzare la sua uscita permanente dalla Tela di Fiducia</b>.",REVOCATION_WITH_FILE_HELP:"Se hai <b>definitivamente perso tuoi credenziali (o se la sicurezza del tuo conto è compromessa), puoi usare <b>il file di revoca</b> del conto <b>per uscire dalla Web Of Trust</b>.",REVOCATION_WALLET:"Revocare questo conto subito",REVOCATION_WALLET_HELP:"Richiedere la cancellazione dell'identità <b>revocherà la tua adesione alla tua rete</ b> (con certezza per il pseudonimo e la chiave pubblica associata). Il conto non potrà più produrre il Dividendo Universale.<br/>Nonostante ciò, puoi ancora usare il conto come semplice portafoglio.",REVOCATION_FILENAME:"revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",SAVE_ID:"Salvare miei credenziali...",SAVE_ID_HELP:"Creare un file di backup, per <b>ricuperare vostra password</b> (e l'identificativo segreto) <b> in caso di smarrimento</b>. Il file è <b>sicuro</ b> (cryptato) utilizzando le domande personalizzate.",STRONG_LEVEL:'Alto <span class="hidden-xs ">(minimo di 6 domande)</span>',TITLE:"Conto e sicurezza"},FILE_NAME:"{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Amount",COMMENT:"Comment"}},TRANSFER:{TITLE:"Bonifico",SUB_TITLE:"Fare un bonifico",FROM:"Da",TO:"A",AMOUNT:"Importo",AMOUNT_HELP:"Importo",COMMENT:"Commenti",COMMENT_HELP:"Commenti",BTN_SEND:"Inviare",BTN_ADD_COMMENT:"Scrivere un comento ?",WARN_COMMENT_IS_PUBLIC:"Ti avvertiamo <b>che i commenti sono pubblici</b> (non cifrati).",MODAL:{TITLE:"Bonifico"}},ERROR:{POPUP_TITLE:"Errore",UNKNOWN_ERROR:"Errore",CRYPTO_UNKNOWN_ERROR:"Suo navigatore non sembra compatibile con le funzionalità di cryptografia.",EQUALS_TO_PSEUDO:"Deve essere diverso dal pseudonimo",EQUALS_TO_SALT:"Deve essere diverso dal identificativo segreto",FIELD_REQUIRED:"Campo obbligatorio.",FIELD_TOO_SHORT:"Valore troppo corto.",FIELD_TOO_SHORT_WITH_LENGTH:"Valore troppo corto ({{minLength}} caratteri min)",FIELD_TOO_LONG:"Valore troppo lungo",FIELD_TOO_LONG_WITH_LENGTH:"Valore troppo lungo ({{maxLength}} caractteri max)",FIELD_MIN:"Valore minimo : {{min}}",FIELD_MAX:"Valore massimo : {{max}}",FIELD_ACCENT:"Virgole e caratteri accentati vietati",FIELD_NOT_NUMBER:"Valore numerico atteso",FIELD_NOT_INT:"Valore intero atteso",FIELD_NOT_EMAIL:"Indirizzo mail non valido",PASSWORD_NOT_CONFIRMED:"Non corrisponde alla password.",SALT_NOT_CONFIRMED:"Non corrisponde al identificativo segreto.",SEND_IDENTITY_FAILED:"Iscrizione fallita.",SEND_CERTIFICATION_FAILED:"Certificazione fallita.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"Non puoi inviare certificazioni perche tuo conto <b>non è ancora un conto membro</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"Non puoi inviare certificazioni adesso perche <b>non sei ancora membro</b>.<br/><br/>Devi ancora entrare nella WOT.",NOT_MEMBER_FOR_CERTIFICATION:"Tuo conto non è ancora un conto membro.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"Impossibile certificare questo conto. Nessuna richiesta di certificazione trovata o bisogna rinnovarla.",LOGIN_FAILED:"Errore di login.",LOAD_IDENTITY_FAILED:"Impossibile caricare la tua identità.",LOAD_REQUIREMENTS_FAILED:"Impossibile caricare i prerequisiti dell'identità.",SEND_MEMBERSHIP_IN_FAILED:"Ingresso nella WOT fallito.",SEND_MEMBERSHIP_OUT_FAILED:"Errore nel invio della revocazione.",REFRESH_WALLET_DATA:"Impossibile aggiornare il portafoglio.",GET_CURRENCY_PARAMETER:"Impossibile ricuperare i parametri della moneta.",GET_CURRENCY_FAILED:"Impossibile caricare la moneta. Riprovare più tardi.",SEND_TX_FAILED:"Impossibile eseguire la transazione.",ALL_SOURCES_USED:"Per favore aspetta il calcolo del prossimo blocco (Tutte le tue fonti di moneta sono state utilizzate).",NOT_ENOUGH_SOURCES:"Non hai abbastanza cambio per inviare questo importo in una sola transazione.<br/>Importo massimo: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Errore nella creazione del tuo conto membro.",RESTORE_WALLET_DATA_ERROR:"Errore nel aggiornamento delle impostazioni definite in local storage.",LOAD_WALLET_DATA_ERROR:"Errore nel caricamento dei dati del portafoglio.",COPY_CLIPBOARD_FAILED:"Impossibile copiare al clipboard",TAKE_PICTURE_FAILED:"Impossibile ricuperare foto.",SCAN_FAILED:"Impossibile scansionare il codice QR.",SCAN_UNKNOWN_FORMAT:"Codice non riconosciuto.",WOT_LOOKUP_FAILED:"Ricerca fallita.",LOAD_PEER_DATA_FAILED:"Peer Duniter non accessibile. Riprovare più tardi.",NEED_LOGIN_FIRST:"Accedi al tuo conto prima.",AMOUNT_REQUIRED:"Importo necessario.",AMOUNT_NEGATIVE:"Importo negativo non consentito.",NOT_ENOUGH_CREDIT:"Saldo insufficiente",INVALID_NODE_SUMMARY:"Impossibile comunicare col peer o indirizzo non valido",INVALID_USER_ID:"Il campo del 'pseudonimo' non deve avere spazi vuoti o caratteri speciali.",INVALID_COMMENT:"Il formato del campo 'reference' è errato.",INVALID_PUBKEY:"If formato della chiave pubblica è errato.",IDENTITY_REVOKED:"Questa identità <b>è stata revocata</b>. Non puo più diventare membro.",IDENTITY_REVOKED_WITH_TIME:"Questa identità <b>è stata revocata {{revocationTime|medianFromNow}}</b> ({{revocationTime|medianDate}}). Non puo più diventare membro.",IDENTITY_PENDING_REVOCATION:"L'<b>annulamento di questa identità</b> è stata richiesta ed è in corso di evaluazione. Capacità ad inviare certificazioni disabilitata",IDENTITY_INVALID_BLOCK_HASH:"Questa richiesta di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers): la persona deve rinnovare la sua domanda di certificazione <b>prima</b> di essere certificata.",IDENTITY_EXPIRED:"Questa identità è scaduta: la persona deve fare una nuova domanda di certificazione <b>prima di</b> essere certificata.",IDENTITY_SANDBOX_FULL:"Il nodo Duniter utilizzato da Cesium non puo ricevere altre domande di certificazione per ora, la lista d'attesa è piena.<br/><br/>Riprova più tardi o scegli un'altro peer Duniter (nelle <b>Impostazioni</b>).",IDENTITY_NOT_FOUND:"Identità non trovata",IDENTITY_TX_FAILED:"Impossibile caricare le operazioni",WOT_PENDING_INVALID_BLOCK_HASH:"Adesione non valida.",WALLET_INVALID_BLOCK_HASH:"Tua domanda di certificazione non è più valida (perche si riferisce ad un blocco che è stato eliminato dai peers).<br/>Devi <a ng-click=\"doQuickFix('renew')\">rinnvoare la tua richiesta di adesione alla WOT</a> per risolvere il problema.",WALLET_IDENTITY_EXPIRED:"La pubblicazione della tua identità <b>è scaduta</b>.<br/>Devi <a ng-click=\"doQuickFix('fixIdentity')\">ripubblicare la tua identità</a> per risolvere il problema.",WALLET_REVOKED:"La tua identità è stata <b>revocata</b>: ne tuo pseudonimo ne tua chiave pubblica sarano utilizzati in futuro.",WALLET_HAS_NO_SELF:"La tua identità deve prima essere stata pubblicata e non essere ancora scaduta.",AUTH_REQUIRED:"Autenticazione necessaria.",AUTH_INVALID_PUBKEY:"La chiave pubblica non corrisponde al conto conesso.",AUTH_INVALID_SCRYPT:"Password o nome di utente non valido.",AUTH_INVALID_FILE:"File di portachiavi non valido.",AUTH_FILE_ERROR:"Impossibile aprire il file di portachiavi",IDENTITY_ALREADY_CERTIFY:"Hai <b>già certificato</b> questa identità.<br/><br/>Tuo certificato è ancora valido (scade {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"Hai <b>già certificato</b> questa identità.<br/><br/>Tua certificazione è ancora pendente (Scadenza del periodo di  treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Impossibile certificare",LOAD_NEWCOMERS_FAILED:"Impossibile caricare i nuovi membri.",LOAD_PENDING_FAILED:"Impossibile caricare le certificazioni pendenti.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"Devi <b>essere membro</b> per poter fare questo.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"Devi aver <b>publiccato tua identità</b> per poter fare questo.",GET_BLOCK_FAILED:"Impossibile caricare il blocco",INVALID_BLOCK_HASH:"Blocco non trovato (hash errato)",DOWNLOAD_REVOCATION_FAILED:"Errore avvenuto nel download del file di cancellazione d'identità.",REVOCATION_FAILED:"Errore avvenuto durante la richiesta di cancellazione dell'identità.",SALT_OR_PASSWORD_NOT_CONFIRMED:"identificativo segreto o password sbagliati",RECOVER_ID_FAILED:"Impossibile ricuperare la password",LOAD_FILE_FAILED:"Impossibile caricare il file",NOT_VALID_REVOCATION_FILE:"File di cancellazione dell'identità errato (formato di file incorreto)",NOT_VALID_SAVE_ID_FILE:"File di backup dei credenziali errato (formato di file incorreto)",NOT_VALID_KEY_FILE:"File di portachiavi non valido (formato non riconosciuto)",EXISTING_ACCOUNT:"Tuoi credenziali corrispondono a quelli di un conto già esistente,di cui <a ng-click=\"showHelpModal('pubkey')\">la chiave pubblica</a> è:",EXISTING_ACCOUNT_REQUEST:"Per favore cambi tuoi credenziali in modo che corrispondino ad un conto non utilizzato.",GET_LICENSE_FILE_FAILED:"Impossibile caricare il file della licenza",CHECK_NETWORK_CONNECTION:"Nessun peer sembra disponibile.<br/><br/>Per favore <b>verifica la tua connessione Internet</b>.",ISSUE_524_TX_FAILED:"Bonifico .<br/><br/>Un message a été envoyé aux développeurs pour faciliter la résolution du problème. <b>Merci de votre aide</b>."},INFO:{POPUP_TITLE:"Informazioni",CERTIFICATION_DONE:"Identità firmata con successo",NOT_ENOUGH_CREDIT:"Saldo insufficiente",TRANSFER_SENT:"Transazione inviata con successo",COPY_TO_CLIPBOARD_DONE:"Copiato con successo",MEMBERSHIP_OUT_SENT:"Revoca dell'identità inviata",NOT_NEED_MEMBERSHIP:"Già un membro.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Questa identità mancherà a breve di certificazioni (almeno {{willNeedCertificationCount}}).",REVOCATION_SENT:"Revoca dell'identità inviata",REVOCATION_SENT_WAITING_PROCESS:"Cancellazione dell'identità <b>inviata con successo</b>. In attesa di validazione.",FEATURES_NOT_IMPLEMENTED:"Questa funzionalità non è ancora disponibile.<br/><br/>Vuoi contribuire per velocizzarne la disponibilità? ;)",EMPTY_TX_HISTORY:"Nessuna operazione da esportare"},CONFIRM:{POPUP_TITLE:"<b>Conferma</b>",POPUP_WARNING_TITLE:"<b>Avviso</b>",POPUP_SECURITY_WARNING_TITLE:'<i class="icon ion-alert-circled"></i> <b>Avvertimento di sicurezza</b>',CERTIFY_RULES_TITLE_UID:"Certificare {{uid}}",CERTIFY_RULES:'<b class="assertive">Non certificare un conto</b> se credi che: <ul><li>1.) l\'identità della persona potrebbe essere finta.<li>2.) la oersona ha già un conto certicato.<li>3.) la persona trasgredisce la regola 1 o 2 o entrambe. (Certifica conti finti o gemelli).</ul></small><br/>Sei sicuro/a di voler certificare questa identità?',TRANSFER:"<b>Resoconto del bonifico:</b><br/><br/><ul><li> - Inviato da: <b>{{from}}</b></li><li> - A: <b>{{to}}</b></li><li> - Importo: <b>{{amount}} {{unit}}</b></li><li> - Comento: <i>{{comment}}</i></li></ul><br/><b>Sei sicuro di voler procedere con questo bonifico?</b>",MEMBERSHIP_OUT:"Questa operazione è <b>irreversibile</b>.<br/></br/><b>Sei sicuro/a di voler cancellare la tua presenza nella WOT?</b>",MEMBERSHIP_OUT_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a <b>di voler revocare la tua identità</b>?",LOGIN_UNUSED_WALLET_TITLE:"Errore di battitura?",LOGIN_UNUSED_WALLET:"Il conto sembra <b>inattivo</b>.<br/><br/>Probabilmente è un<b>errore di battitura</b> mientre digitavi i tuoi credenziali. Per favore riprova, verificando che la <b>chiave pubblica sia tua<b/>.",FIX_IDENTITY:"Lo pseudonimo <b>{{uid}}</b> verrà pubblicato nuovamente. Si sostituirà alla precedente pubblicazione che è scaduta.<br/></br/><b>Sei sicuro/a</b> di voler procedere?",FIX_MEMBERSHIP:"Tua domanda di certificazione sarà inviata alla rete.<br/></br/><b>Sei sicuro/a?</b>",MEMBERSHIP:"Tua domanda per diventare membro sta per essere inviata alla rete.<br/></br/><b>Sei sicuro/a/b> di voler continuare ?",RENEW_MEMBERSHIP:"Tua adesione verrà rinnovata.<br/></br/><b>Sei sicuro/a?</b>",REVOKE_IDENTITY:"Stai per <b>revocare definitivamente questa identità</b>.<br/><br/>La chiave pubblica e lo pseudonimo associato <b>non saranno mai più utilizzati</b> (per un conto membro).<br/></br/><b>Sei sicuro/a</b> di voler revocare questa identità?",REVOKE_IDENTITY_2:"Questa operazione è <b>irreversibile</b>!<br/><br/>Sei sicuro/a di volern<b>revocare questa identità</b>?",NOT_NEED_RENEW_MEMBERSHIP:"Tua presenza nella rete non deve ancora essere rinnovata (scaderà tra {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Sei sicuro/a</b> di voler rinnovare la tua presenza?",SAVE_BEFORE_LEAVE:"Vuoi <b>salvare tue modifiche</b> prima di uscira dalla pagina?",SAVE_BEFORE_LEAVE_TITLE:"Modifiche non salvate",LOGOUT:"Sei sicuro/a di voler chiudere la sessione?",USE_FALLBACK_NODE:"Peer <b>{{old}}</b> indisponibile o indirizzo errato.<br/><br/>Vuoi utilizzare temporanemante il <b>{{new}}</b> nodo?",INVALID_FILE_FORMAT:"Formato file non valido.",SAME_TX_RECIPIENT:"Il destinatario deve essere diverso dall'emittente."},DOWNLOAD:{POPUP_TITLE:"<b>File di cancellazione dell'identità/b>",POPUP_REVOKE_MESSAGE:"Per migliorare la sicurezza del tuo conto, scarica <b>il documento di revoca del conto</b>. Ti consentirà di revocare tuo conto (nel caso di violazione del conto, della tua identità, conto creato con errori, etc.).<br/><br/><b>Tiene questo document al sicuro.</b>"},HELP:{TITLE:"Aiuto online",JOIN:{SECTION:"Entrare nella rete",SALT:"Il tuo identificativo segreto è molto importante. E utilizzato per cryptare tua password che permette poi di calcolare tua <span class=\"text-italic\">chiave pubblica</span> (suo numero) è la chiave privata che ne consenta l'accesso.<br/><b>Ricordati bene di questo identificativo</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiato senza dover creare un conto nuovo.<br/><br/>Raccomandiamo che sia abbastanza lungo (8 caratteri almeno) è il più originale possibile. (buona entropia)",PASSWORD:"La password è molto importante, è utilizzata per calcolare tuo numero di conto (tua chiave pubblica) e la chiave privata che ne consento l'accesso.<br/><b>Ricordatila bene</b>, perche non ti potrà aiutare nessuno se lo perdi.<br/>Tra l'altro, non puo essere cambiata senza dover creare un conto nuovo.<br/><br/>Una buona password (preferibilmente) è composta da almeno 8 caratteri, con almeno una maiuscola e un numero.",PSEUDO:'Un pseudonimo è utilizzato quando ti iscrivi come <span class="text-italic">membro</span>. E sempre associato ad un portafoglio (con sua <span class="text-italic">chiave pubblica</span>).<br/>E pubblicato sulla rete perche gli altri membri possino identificarla, certificarla o invarle soldi. <br/> Lo pseudonimo deve essere unico nella rete (tra quelli utilizzati adesso e in passato).'},LOGIN:{SECTION:"Accedi",PUBKEY:"Chiave pubblica del conto",PUBKEY_DEF:'La chiave pubblica del portachiavi è generata dai credenziali, ma non corrispode ad un conto già utilizzato.<br/><b>Accertati che tua chiave pubblica corrisponda al tuo conto</b>. Nel caso contrario, sarai conesso/a ad un conto probabilmente mai usato, datto che il rischio di collisione con un conto esistente è molto ridotto.<br/><a href="https://en.wikipedia.org/wiki/Elliptic_curve_cryptography" target="_ system">Saperne di più sulla cryptografia </a> con chiave pubblica.',METHOD:"Metodi di connessione",METHOD_DEF:"Hai diverse opzioni per accedere ad un portafoglio:<br/> - Accedendo con <b>salatura (leggera o sicura)</b> tua password sarà cryptata dal tuo identificativo segreto per scoraggiare tentativi di attachi di 'brute force' (per esempio con passwords conosciute).<br/> - Accedendo con la <b>chiave pubblica</b> ti evita di dover digitare tuoi credenziali che ti saranno chiesti solo quando vorrai fare una operazione col conto.<br/> - Accedendo <b>con un portachiavi</b> che leggerà tue chiave pubbliche e private da un file esterno, senza che tu li debba entrare."},GLOSSARY:{SECTION:"Glossario",PUBKEY_DEF:"Una chiave pubblica permette di identificare un portafoglio. Puo anche identificare un membro. In Cesium  è calcolata con la password e lo pseudonimo.",MEMBER:"Membro",MEMBER_DEF:'Un membro è una persona reale e viva, che desidera participare liberamente alla communità monetaria. Questo membro riceverà un Dividendo Universale, a secondo delle regole definite <span class="text-italic">nei parametri della moneta</span>.',CURRENCY_RULES:"Regole della moneta",CURRENCY_RULES_DEF:'I parametri delle moneta sono state definite per sempre e per tutti. I parametri con i quali la moneta si comporta: il calcolo del Dividendo Universale, il numero di certificazioni necessarie per diventare membro, il numero massimo di certificazioni che un membro puo inviare, etc.<br/><br/>I parametri non possono essere modificati perche c\'è una<span class="text-italic">Blockchain</span> che implementa e esegue queste regole e verifica costantemente la loro applicazione. <a href="#/app/currency">Vedere i parametri </a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'La Blockchain è un sistema decentralizzato che, nel caso di Duniter, permette di rispettare e implementare <span class="text-italic">le regole della moneta</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Saperne di più su Duniter</a> e il funzionamento della blockchain.',UNIVERSAL_DIVIDEND_DEF:'Il Dividendo Universale (UD) è la quantità di moneta co-creata da ogni membro, seguendo le formule mathematiche definite nelle <span class="text-italic">regole della moneta</span>.<br/>Al inizio di ogni periodo, il conto di ogni membro riceve una quantità uguale della nuova moneta creata. <br/><br/>Il DU conosce una crescita costante per rimanere equo nei confronti dei membri (attuali e passati). Viene calcolato tenendo in conto la speranza di vità media, cosi come dimostrato nella Teoria Relativa della Moneta (TRM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Saperne di più sulla TRM</a> e la moneta libera.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> permette la scoperta dei <b>parametri della moneta</b> e la sua condizione presente.",CURRENCY_WOT:"Il <b>numero di membri</b> mostra <b>le dimensioni della WoT e la sua evoluzione </b>.",CURRENCY_MASS:"In evidenza qui è <b>l'importo totale</b> attualmente in circolazione e la sua <b> ripartizione media </b> a testa.<br/><br/>Questa cifra permette di avere un'idea <b>del valore di qualsiasi importo</b>, in base a quello <b>hanno gli altri</b> sul loro conto (in media).",CURRENCY_UNIT_RELATIVE:"L'unità usata qui (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che gli importi in {{currency|capitalize}} sono stati divisi dal <b>Dividendo Universale</b> (DU).<br/><br/><small>Questa unità relativa <b>ha senso</b> perche è stabile in contrasto con la massa monetaria che cresce costantemente.</small>",CURRENCY_CHANGE_UNIT:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette di <b>permutare unità</b> per vedere gli importi in <b>{{currency|capitalize}}</b>, non divisi dal Dividendo Universale (piuttosto che in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"Questa opzione <b>{{'COMMON.BTN_RELATIVE_UNIT'|translate}}</b> permette <b>di permutare unità</b> per vedere gli importi in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, che è relativo al Dividendo Universale (l'importo co-prodotto da ogni membro).",CURRENCY_RULES:"Le<b>regole</b> della moneta determinano il suo <b>esatto e previdibile</b> comportamento.<br/><br/> Considerate come il proprio DNA della moneta, queste regole rendono il codice monetario <b>trasparente e comprensibile</b>.",MENU_BTN_NETWORK:"Menu <b>{{'MENU.NETWORK'|translate}}</b> permette la scopertà dello <b>stato della rete<b>.",NETWORK_BLOCKCHAIN:"Tutte le transazioni monetarie sono registrate in <b>registro sicuro e a prova di manomissione</b>, spesso chiamato <b>blockchain</b>.",NETWORK_PEERS:"I<b>peers</b> mostrati qui corrispondono a <b>dei computers che aggiornano e monitorano</b> la blockchain.<br/><br/>Più peers ci sono, più <b>decentralizzata</b> e più affidabile diventa la moneta.",NETWORK_PEERS_BLOCK_NUMBER:"Questo <b>numero</b> (in verda) indica <b>l'ultimo blocco validato</b> dal peer (ultima pagina scritta nel regitro).<br/><br/>Il verda indica che il blocco è stato validato anche dalla <b>maggioranza degli altri peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Ogni membro</b>, che dispone di un computer connesso a Internet <b>puo partecipare, aggiungendosi come peer installando il software Duniter</b> (free/libre). <a target="_new" href="{{installDocUrl}}" target="_system">Leggi il manuale d\'installazione &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> permette l'accesso al saldo del conto e la cronologia delle transazioni.",MENU_BTN_ACCOUNT_MEMBER:"Qui puoi consultare lo stato del tuo conto, la cronologia delle transazioni e le tue certificazioni.",WALLET_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle tue certificazioni (date o ricevute).",WALLET_RECEIVED_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai ricevuto</b>.",WALLET_GIVEN_CERTIFICATIONS:"Clicca qui per vedere i dettagli delle <b>certificazioni che hai date</b>.",WALLET_BALANCE:"Il <b>soldo</b> del tuo conto è visibile qui.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>L'unità utilizzata (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) significa che questo importo in {{currency|capitalize}} è stato diviso dal <b>Dividendo Universale</b> (DU) co-creato da ogni membro.<br/>Ad oggi, 1 DU equivale a {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"Puoi <b>cambiare l'unità</b> in cui sono mostrati gli importi in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>Per esempio, per mostrare gli importi <b>direttamente in {{currency|capitalize}}</b> piuttosto che in unità relativa.",WALLET_PUBKEY:"Questa è la chiave pubblica del tuo conto. La puoi dare ad un terzo perche possa identificare tuo conto.",WALLET_SEND:"Paghi in pochi clics.",WALLET_SEND_NO_MONEY:"Paghi in pochi clics.<br/>(Tuo saldo ancora non lo permette)",WALLET_OPTIONS:"Questo bottone permette di fare <b>altre, meno frequenti azioni</b>.<br/><br/> Non dimenticarti di fare il tour guidato di Cesium quando hai un attimo!",WALLET_RECEIVED_CERTS:"Questo mostra l'elenco delle persone che ti hanno fatto entrare nella WoT.",WALLET_CERTIFY:"Questo bottone <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> permette di selezionare e certificare una identità.<br/><br/>Solo gli utenti <b>che sono già membri</b> possono certificare gli altri.",WALLET_CERT_STOCK:"Tuo stock di certificazioni da dare è limitato a <b>{{sigStock}} certificazioni</b>.<br/><br/>Questo stock si rifornisce col tempo, man mano che le certificazioni inviate scadono.",MENU_BTN_TX_MEMBER:"<b>{{'MENU.TRANSACTIONS'|translate}}</b> permette l'accesso alla cronologia delle transazioni, e permette di fare nuovi bonifici.",MENU_BTN_TX:"Visualizza la cronologia <b>delle tue transazioni</b> qui e fai nuovi bonifici.",MENU_BTN_WOT:"Il menu<b>{{'MENU.WOT'|translate}}</b> permette di cercare <b>utenti</b> della moneta (membri o non).",WOT_SEARCH_TEXT_XS:"Per fare una ricerca nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>La ricerca inizierà automaticamente.",WOT_SEARCH_TEXT:"Per cercare nel annuario, digita <b>le prime lettere dello pseudonimo o della chiave pubblica di un utente</b>.<br/><br/>Dopodichè calca <b>Enter</b> per avviare la ricerca.",WOT_SEARCH_RESULT:"Visualizza la scheda dettagliata di un utente con un semplice click sulla linea.",WOT_VIEW_CERTIFICATIONS:"La linea <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> mostra quanti membri hanno certificato questa identità.<br/><br/>Queste certificazioni dimostrano che il conto appartiene ad <b>una persona viva</b> e che questa persona non ha <b>nessun altro conto membro</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"Ci vogliono almeno <b>{{sigQty}} certificazioni</b> per diventare membro e co-produrre il <b>Dividendo Universale</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Clicca qui per aprire <b>una lista di tutte le certificazioni</b> ricevute e date da questa identità.",WOT_VIEW_CERTIFY:"Il bottone <b>{{'WOT.BTN_CERTIFY'|translate}}</b> permette di aggiungere tua certificazione a questa identità.",CERTIFY_RULES:"<b>Attenzione:</b> Certifichi <b> solo persone reali e vive</b> che non hanno nessun altro conto membro.<br/><br/>L'affidabilità della moneta dipende della vigilanza di ciascuno.",MENU_BTN_SETTINGS:"Les <b>{{'MENU.SETTINGS'|translate}}</b> ti permettono di configurare Cesium.<br/><br/>Per esempio, puoi <b>cambiare l'unità</b> in cui visualizzi la moneta.",HEADER_BAR_BTN_PROFILE:"Clicca qui per entrare nel <b>tuo profilo utente</b>",SETTINGS_CHANGE_UNIT:"Puoi cambiare <b>l'unità</b> della moneta cliccando qui.<br/><br/>- Disabilita questa opzione per vedere gli importi in {{currency|capitalize}}.<br/>- Abilita l'opzione per importi relativi in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divisi</b> dal attuale Dividendo Universale).",END_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Benvenuto nel <b>economia libera</b>!",END_NOT_LOGIN:"Il tour guidato <b>è finito</b>.<br/><br/>Se desideri entrare nella Web of Trust {{currency|capitalize}}, basta cliccare <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> qui sotto."}},API:{COMMON:{LINK_DOC:"documentazione API",LINK_DOC_HELP:"Documentazione dello sviluppatore",LINK_STANDARD_APP:"versione classica",LINK_STANDARD_APP_HELP:"Apri la versione classica di {{'COMMON.APP_NAME'|translate}}"},HOME:{TITLE:"Documentazione API {{'COMMON.APP_NAME'|translate}}",MESSAGE:'Bienvenue dans la <b>documentation de l\'API</b> {{\'COMMON.APP_NAME\'|translate}}.<br/>Connecter vos sites web à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',MESSAGE_SHORT:'Connecter vos sites à <a href="http://duniter.org" target="_system">Duniter</a> très simplement !',DOC_HEADER:"Services disponibles :"},TRANSFER:{TITLE:"{{'COMMON.APP_NAME'|translate}} - Paiement en ligne",TITLE_SHORT:"Pagamento online",SUMMARY:"Récapitulatif de la commande :",AMOUNT:"Montant :",NAME:"Nom :",PUBKEY:"Clé publique du destinaire :",COMMENT:"Référence de la commande :",DEMO:{SALT:"demo",PASSWORD:"demo",PUBKEY:"3G28bL6deXQBYpPBpLFuECo46d3kfYMJwst7uhdVBnD1",HELP:"<b>Mode démonstration</b> : Aucun paiement ne sera réellement envoyé pendant cette simulation.<br/>Veuillez utiliser les identifiants : <b>{{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}</b>",BAD_CREDENTIALS:"Vérifiez votre saisie.<br/>En mode démonstration, les identifiants sont : {{'API.TRANSFER.DEMO.SALT'|translate}} / {{'API.TRANSFER.DEMO.PASSWORD'|translate}}"},INFO:{SUCCESS_REDIRECTING_WITH_NAME:"Paiement envoyé.<br/>Redirection vers <b>{{name}}</b>...",SUCCESS_REDIRECTING:"Paiement envoyé.<br/>Redirection vers le site du vendeur...",CANCEL_REDIRECTING_WITH_NAME:"Paiement annulé.<br/>Redirection vers <b>{{name}}</b>...",CANCEL_REDIRECTING:"Paiement annulé.<br/>Redirection vers le site du vendeur..."},ERROR:{TRANSFER_FAILED:"Mancato pagamento"}},DOC:{DESCRIPTION_DIVIDER:"Descrizione",URL_DIVIDER:"Indirizzo chiamata",PARAMETERS_DIVIDER:"Impostazioni",AVAILABLE_PARAMETERS:"Ecco l'elenco dei parametri disponibili :",DEMO_DIVIDER:"Provare",DEMO_HELP:"Per provare questo servizio, clicca sul bottone qui a fianco. Il risultato apparirà qui sotto .",DEMO_RESULT:"Risultato della chiamata :",DEMO_SUCCEED:'<i class="icon ion-checkmark"></i> Successo !',DEMO_CANCELLED:'<i class="icon ion-close"></i> Annulato dal utente',INTEGRATE_DIVIDER:"Integrare",INTEGRATE_CODE:"Codice :",INTEGRATE_RESULT:"Previsualizzare il risultato :",INTEGRATE_PARAMETERS:"Parametri",TRANSFER:{TITLE:"Pagamenti",DESCRIPTION:"Da un sito (per es. : un sito e-commerce) si può delegare il pagamento in moneta libera a Cesium API. Per invocare l'API, basta innescare l'apertura di una pagina con questo indirizzo:",PARAM_PUBKEY:"Chiave pubblica del destinatario",PARAM_PUBKEY_HELP:"Chiave pubblica del destinatario (obliggatoria)",PARAM_AMOUNT:"Importo",PARAM_AMOUNT_HELP:"Importo della transazione (obligatorio)",PARAM_COMMENT:"Riferimento (o commento)",PARAM_COMMENT_HELP:"Riferimento o commento. Ti può aiutare per esempio a trovare tuo pagamento nella blockchain.",PARAM_NAME:"Nome (de destinatario o del sito web)",PARAM_NAME_HELP:'Nom del sito web o del destinatario chiamando l\'API. Può essere un nome leggibile ("Mio sito"), oppure l\'indirizzo http del sito ("MioSito.com").',PARAM_REDIRECT_URL:"Indirizzo web di redirezione",PARAM_REDIRECT_URL_HELP:'Indirizzo web (URL) di redirezione, chiamato dopo aver inviato il pagamento. Può includere le seguenti stringe, che saranno sostituite con i valori della transazione : "{tx}", "{hash}", "{comment}", "{amount}" e {pubkey}.',PARAM_CANCEL_URL:"Indirizzo web della cancellazione",PARAM_CANCEL_URL_HELP:'Indirizzo web (URL) in caso dell\'annullamento del pagamento dall\'utente. Può includere le seguenti stringe, che saranno sostituite dinamicamente : "{comment}", "{amount}" e {pubkey}.',EXAMPLES_HELP:"Ecco esempi di integrazione :",EXAMPLE_BUTTON:"Bottone HTML",EXAMPLE_BUTTON_DEFAULT_TEXT:"Pagare in {{currency|currencySymbol}}",EXAMPLE_BUTTON_DEFAULT_STYLE:"Stile personnalizzato",EXAMPLE_BUTTON_TEXT_HELP:"Testo del bottone",EXAMPLE_BUTTON_BG_COLOR:"Colore del fondo",EXAMPLE_BUTTON_BG_COLOR_HELP:"Per esempio: #fbc14c, black, lightgrey, rgb(180,180,180)",EXAMPLE_BUTTON_FONT_COLOR:"Colore del testo",EXAMPLE_BUTTON_FONT_COLOR_HELP:"Esempio: black, orange, rgb(180,180,180)",EXAMPLE_BUTTON_TEXT_ICON:"Icona",EXAMPLE_BUTTON_TEXT_WIDTH:"Larghezza",EXAMPLE_BUTTON_TEXT_WIDTH_HELP:"Esempio: 200px, 50%",EXAMPLE_BUTTON_ICON_NONE:"Nessuna",EXAMPLE_BUTTON_ICON_DUNITER:"Logo Duniter",EXAMPLE_BUTTON_ICON_CESIUM:"Logo Cesium",EXAMPLE_BUTTON_ICON_G1_COLOR:"Logo Ğ1",EXAMPLE_BUTTON_ICON_G1_BLACK:"Logo Ğ1 (nero)"}}}}),e.translations("nl-NL",{COMMON:{APP_NAME:"Cesium",APP_VERSION:"v{{version}}",APP_BUILD:"build {{build}}",PUBKEY:"Publieke sleutel",MEMBER:"Lid",BLOCK:"Blok",BTN_OK:"OK",BTN_YES:"Ja",BTN_NO:"Nee",BTN_SEND:"Verzenden",BTN_SEND_MONEY:"Verstuur geld",BTN_SEND_MONEY_SHORT:"Versturen",BTN_SAVE:"Opslaan",BTN_YES_SAVE:"Ja, opslaan",BTN_YES_CONTINUE:"Ja, doorgaan",BTN_SHOW:"Tonen",BTN_SHOW_PUBKEY:"Toon sleutel",BTN_RELATIVE_UNIT:"Gebruik relatieve eenheid",BTN_BACK:"Terug",BTN_NEXT:"Volgende",BTN_CANCEL:"Annuleer",BTN_CLOSE:"Sluit",BTN_LATER:"Later",BTN_LOGIN:"Aanmelden",BTN_LOGOUT:"Uitloggen",BTN_ADD_ACCOUNT:"Nieuwe Rekening",BTN_SHARE:"Delen",BTN_EDIT:"Bewerken",BTN_DELETE:"Wissen",BTN_ADD:"Toevoegen",BTN_SEARCH:"Zoeken",BTN_REFRESH:"Verwezenlijken",BTN_START:"Beginnen",BTN_CONTINUE:"Doorgaan",BTN_UNDERSTOOD:"Ik heb het begrepen",BTN_OPTIONS:"Opties",BTN_HELP_TOUR:"Rondleiding",BTN_HELP_TOUR_SCREEN:"Ontdek dit scherm",BTN_DOWNLOAD:"Downloaden",BTN_DOWNLOAD_ACCOUNT_STATEMENT:"Downloaden het rekeningoverzicht",BTN_MODIFY:"Bewerken",DAYS:"dagen",NO_ACCOUNT_QUESTION:"Nog geen lid? Registreer nu!",SEARCH_NO_RESULT:"Geen resultaten",LOADING:"Even geduld...",SEARCHING:"Zoeken...",FROM:"Van",TO:"Aan",COPY:"Kopieren",LANGUAGE:"Taal",UNIVERSAL_DIVIDEND:"Universeel dividend",UD:"UD",DATE_PATTERN:"DD-MM-YYYY HH:mm",DATE_FILE_PATTERN:"YYYY-MM-DD",DATE_SHORT_PATTERN:"DD-MM-YY",DATE_MONTH_YEAR_PATTERN:"MM-YYYY",EMPTY_PARENTHESIS:"(leeg)",UID:"Pseudoniem",ENABLE:"Geactiveerd",DISABLE:"Gedeactiveerd",RESULTS_LIST:"Resultaten:",RESULTS_COUNT:"{{count}} uitslagen",EXECUTION_TIME:"uitgevoerd in {{duration|formatDurationMs}}",SHOW_VALUES:"Toon waarden openlijk?",POPOVER_ACTIONS_TITLE:"Opties",POPOVER_FILTER_TITLE:"Filters",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidig limiet op {{limit}})",POPOVER_SHARE:{TITLE:"Delen",SHARE_ON_TWITTER:"Deel op Twitter",SHARE_ON_FACEBOOK:"Deel op Facebook",SHARE_ON_DIASPORA:"Deel op Diaspora*",SHARE_ON_GOOGLEPLUS:"Deel op Google+"}},SYSTEM:{PICTURE_CHOOSE_TYPE:"Selecteer bron:",BTN_PICTURE_GALLERY:"Gallerij",BTN_PICTURE_CAMERA:"<b>Camera</b>"},MENU:{HOME:"Welkom",WOT:"Register",CURRENCY:"Valuta",CURRENCIES:"Valuta's",ACCOUNT:"Mijn rekening",TRANSFER:"Overmaken",SCAN:"Scannen",SETTINGS:"Instellingen",NETWORK:"Netwerk",TRANSACTIONS:"Mijn transacties"},ABOUT:{TITLE:"Over",LICENSE:"<b>Vrije</b> software (GNU AGPLv3 licentie).",CODE:"Broncode:",DEVELOPERS:"Ontwikkelaars:",FORUM:"Forum:",DEV_WARNING:"Waarschuwing",DEV_WARNING_MESSAGE:"Deze applicatie is nog in actieve onwikkeling.<br/>Meld ons elk pobleem!",DEV_WARNING_MESSAGE_SHORT:"Deze App is nog instabiel (in ontwikkeling).",REPORT_ISSUE:"Meld een probleem"},HOME:{TITLE:"Cesium",WELCOME:"Welkom bij de Cesium Applicatie!",MESSAGE:"Bekijk je {{currency|abbreviate}} portefeilles in real time.",BTN_REGISTRY:"Register",BTN_CURRENCY:"Verken valuta",BTN_ABOUT:"over",BTN_HELP:"Help",REPORT_ISSUE:"Meld een probleem",NOT_YOUR_ACCOUNT_QUESTION:'Is rekening <b><i class="ion-key"></i> {{pubkey|formatPubkey}}</b> niet van jou?',BTN_CHANGE_ACCOUNT:"Dze rekening ontkoppelen",CONNECTION_ERROR:'Node <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Controleer de internetverbinding, of schakel knooppunt <a class="positive" ng-click="doQuickFix(\'settings\')">in parameters</a>.'},SETTINGS:{TITLE:"Instellingen",NETWORK_SETTINGS:"Netwerk",PEER:"Duniter knooppunt adres",PEER_CHANGED_TEMPORARY:"Adres tijdelijk worden gebruikt",USE_LOCAL_STORAGE:"Lokale opslag inschakelen",USE_LOCAL_STORAGE_HELP:"Laat je instellingen opslaan",ENABLE_HELPTIP:"Contextgebonden hulp inschakelen",ENABLE_UI_EFFECTS:"Schakel visuele effecten",HISTORY_SETTINGS:"Mijn rekening",DISPLAY_UD_HISTORY:"Toon geproduceerde dividenden?",AUTHENTICATION_SETTINGS:"Authentificatie",REMEMBER_ME:"Onthoud mij",REMEMBER_ME_HELP:"Hiermee kunt u blijven altijd aangesloten (niet aanbevolen).",PLUGINS_SETTINGS:"Uitbreidingen",BTN_RESET:"Herstel standaardinstellingen",EXPERT_MODE:"Geavanceerde modus inschakelen",EXPERT_MODE_HELP:"Toon meer details",POPUP_PEER:{TITLE:"Duniter Knooppunt",HOST:"Adres",HOST_HELP:"Aadres: server:poort",USE_SSL:"Secure?",USE_SSL_HELP:"(SSL-encryptie)",BTN_SHOW_LIST:"Lijst van knooppunten"}},BLOCKCHAIN:{HASH:"Hachee : {{hash}}",VIEW:{HEADER_TITLE:"Blok #{{number}}-{{hash|formatHash}}",TITLE_CURRENT:"Huidige blok",TITLE:"Blok #{{number|formatInteger}}",COMPUTED_BY:"Berekend door het knooppunt",SHOW_RAW:"Bekijk RAW-bestand",TECHNICAL_DIVIDER:"Technische informatie",VERSION:"Format versie",HASH:"Hash berekend",UNIVERSAL_DIVIDEND_HELP:"Munt gecoproduceerd door elk van de {{membersCount}} ledental",EMPTY:"Er zijn geen gegevens in dit blok",POW_MIN:"Mminimum moeilijkheid",POW_MIN_HELP:"Moeilijkheid opgelegd hash te berekenen",DATA_DIVIDER:"Gegevens",IDENTITIES_COUNT:"Nieuwe identiteiten",JOINERS_COUNT:"Nieuwe leden",ACTIVES_COUNT:"Verlengingen",ACTIVES_COUNT_HELP:"Leden die hun lidmaatschap te vernieuwen",LEAVERS_COUNT:"Verlaters",LEAVERS_COUNT_HELP:"Leden die niet langer wenst certificering",EXCLUDED_COUNT:"Uitgesloten leden",EXCLUDED_COUNT_HELP:"Oud-leden uitgesloten door niet-verlenging of gebrek aan certificeringen",REVOKED_COUNT:"Identiteiten ingetrokken",REVOKED_COUNT_HELP:"Deze rekeningen zullen niet langer leden",TX_COUNT:"Transacties",CERT_COUNT:"Certificeringen",TX_TO_HIMSELF:"Ruil deal",TX_OUTPUT_UNLOCK_CONDITIONS:"Omstandigheden van de introductie",TX_OUTPUT_OPERATOR:{AND:"en",OR:"of"},TX_OUTPUT_FUNCTION:{SIG:"<b>handtekening</b> ",XHX:"<b>Wachtwoord</b>, wiens SHA256 =",CSV:"Geblokkeerd",CLTV:"Opgesloten"}},LOOKUP:{TITLE:"Blokken",NO_BLOCK:"Geen blok",LAST_BLOCKS:"Recente blokken :",BTN_COMPACT:"Compact"}},CURRENCY:{SELECT:{TITLE:"Valuta's",CURRENCIES:"Bekende valuta's",MEMBERS_COUNT:"{{membersCount}} leden"},VIEW:{TITLE:"Valuta",TAB_CURRENCY:"Valuta",TAB_WOT:"Gemeenschap",TAB_NETWORK:"Netwerk",CURRENCY_NAME:"Valuta naam",MEMBERS:"Ledental",MEMBERS_VARIATION:"Variatie since {{duration | formatDuration}}",MONEY_DIVIDER:"Geld",MASS:"Monetaire massa",SHARE:"Aandeel per lid",UD:"Universeel Dividend",C_ACTUAL:"Huidige toename",MEDIAN_TIME:"Blockchain tijd",POW_MIN:"Algemene moeilijkheidsgraad",MONEY_RULES_DIVIDER:"Monetaire regels",C_RULE:"Toename",UD_RULE:"Universeel dividend (formule)",SIG_QTY_RULE:"Benodigd aantal certificaties om lid te worden",SIG_STOCK:"Maximum aantal certificaties te versturen per lid",SIG_PERIOD:"Minimum vertraging tussen 2 certificaties verzonden door één en dezelfde persoon.",SIG_WINDOW:"Maximum vertraging voor een certificatie in behandeling wordt genomen",STEP_MAX:"Maximum afstand tussen elk WoT lid en een nieuw lid.",WOT_RULES_DIVIDER:"Lidmaatschapseisen",XPERCENT:"Minimum percentage schildwachten te bereiken om de afstandsregel te respecteren"}},NETWORK:{VIEW:{MEDIAN_TIME:"Blockchain tijd",LOADING_PEERS:"Even geduld...",NODE_ADDRESS:"Adres :",ENDPOINTS:{BMAS:"Endpoint (SSL)",BMATOR:"Endpoint TOR",ES_USER_API:"Knoop Cesium+"}},INFO:{ONLY_SSL_PEERS:"Les noeuds non SSL ont un affichage dégradé, car Cesium fonctionne en mode HTTPS."}},PEER:{PEERS:"Knopen",SIGNED_ON_BLOCK:"Getekend op blok",MIRROR:"spiegel",CURRENT_BLOCK:"Blok #",VIEW:{TITLE:"Knoop",OWNER:"Maakt deel uit van",SHOW_RAW_PEERING:"Zie netwerkdocument",KNOWN_PEERS:"Bekende knopen :",GENERAL_DIVIDER:"Algemene informatie",ERROR:{LOADING_TOR_NODE_ERROR:"Kan knooppunt niet worden opgehaald. De wachttijd wordt overschreden.",LOADING_NODE_ERROR:"Kan knooppunt niet worden opgehaald"}}},WOT:{SEARCH_HELP:"Zoeken (lid of publieke sleutel)",SEARCH_INIT_PHASE_WARNING:"Tijdens de pre-registratiefase, het zoeken van lopende registraties <b>kan lang</b> zijn. Dank je wel geduld...",REGISTERED_SINCE:"Registratie",REGISTERED_SINCE_BLOCK:"Geregistreerd op blok #",NO_CERTIFICATION:"Geen gevalideerde certificaties",NO_GIVEN_CERTIFICATION:"Geen uitgegeven certificaties",NOT_MEMBER_PARENTHESIS:"(niet-lid)",IDENTITY_REVOKED_PARENTHESIS:"(ingetrokken identiteit)",MEMBER_PENDING_REVOCATION_PARENTHESIS:"(intrekking in behandeling)",EXPIRE_IN:"Verloopt",NOT_WRITTEN_EXPIRE_IN:"Uiterlijke<br/>behandeling",EXPIRED:"Verlopen",PSEUDO:"Pseudoniem",SIGNED_ON_BLOCK:"Uitgegeven op block #{{block}}",WRITTEN_ON_BLOCK:"Geschreven op block #{{block}}",GENERAL_DIVIDER:"Algemene informatie",NOT_MEMBER_ACCOUNT:"Simpele rekening (geen lid)",NOT_MEMBER_ACCOUNT_HELP:"Dit is een eenvoudige rekening, zonder dat er een aanvraag voor lidmaatschap in de wacht wordt gezet.",TECHNICAL_DIVIDER:"Technische informatie",BTN_CERTIFY:"Certificeren",BTN_YES_CERTIFY:"Ja, Certificeren",BTN_SELECT_AND_CERTIFY:"Nieuwe certificatie",ACCOUNT_OPERATIONS:"Operaties op de rekening",VIEW:{POPOVER_SHARE_TITLE:"Identiteit {{title}}"},LOOKUP:{TITLE:"Register",NEWCOMERS:"Nieuwe leden:",PENDING:"Aspirant leden:",REGISTERED:"Geregistreerd {{sigDate | formatFromNow}}",MEMBER_FROM:"Lid sinds {{memberDate|medianFromNowShort}}",BTN_NEWCOMERS:"Nieuwste leden",BTN_PENDING:"Registraties in afwachting",SHOW_MORE:"Toon meer",SHOW_MORE_COUNT:"(huidige limiet op {{limit}})",NO_PENDING:"Er zijn geen registraties in afwachting gevonden.",NO_NEWCOMERS:"Er zijn geen nieuwe leden gevonden."},MODAL:{TITLE:"Zoeken"},CERTIFICATIONS:{TITLE:"{{uid}} - Certificaties",SUMMARY:"Ontvangen certificaties",LIST:"Details van ontvangen certificaties",PENDING_LIST:"Certificaties in afwachting",RECEIVED:"Ontvangen certificaties",RECEIVED_BY:"Certificaties ontvanged door {{uid}}",ERROR:"Ontvangen vertificaties met fout",SENTRY_MEMBER:"Referent lid"},GIVEN_CERTIFICATIONS:{TITLE:"{{uid}} - Verzonden certificaties",SUMMARY:"Verzonden certificaties",LIST:"Details van verzonden certificaties",PENDING_LIST:"Certificaties in afwachting",SENT:"Verzonden certificaties",SENT_BY:"Certificaties verzonden door {{uid}}",ERROR:"Verzonden certificaties met fout"}},LOGIN:{TITLE:'<i class="icon ion-locked"></i> Inloggen',SALT:"Beveiligingszin",SALT_HELP:"Zin ter beveiliging van je rekening",SHOW_SALT:"Toon de beveiligingszin",PASSWORD:"Wachtwoord",PASSWORD_HELP:"Wachtwoord ter beveiliging van je rekening",NO_ACCOUNT_QUESTION:"Nog geen rekening?",CREATE_ACCOUNT:"Open een rekening",FORGOTTEN_ID:"Wachtwoord vergeten?"},ACCOUNT:{TITLE:"Mijn rekening",BALANCE:"Saldo",LAST_TX:"Recente transacties",BALANCE_ACCOUNT:"Rekeningsaldo",NO_TX:"Geen transacties",SHOW_MORE_TX:"Show more",SHOW_ALL_TX:"Show all",TX_FROM_DATE:"(huidige limiet op {{fromTime|medianFromNowShort}})",PENDING_TX:"Transacties in afwachting",ERROR_TX:"Niet uitgevoerde transacties",ERROR_TX_SENT:"Verzonden transacties",ERROR_TX_RECEIVED:"Ontvangen transacties",EVENTS:"Gebeurtenissen",WAITING_MEMBERSHIP:"Lidmaatschapsverzoek verzonden. In afwachting van validatie.",WAITING_CERTIFICATIONS:"Je hebt {{needCertificationCount}} certificatie(s) nodig om lid te worden",WILL_MISSING_CERTIFICATIONS:"Je heeft binnenkort <b>onvoldoende certificaties</b> (ten minste {{willNeedCertificationCount}} benodigd)",WILL_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap <b>gaat verlopen op {{membershipExpiresIn|formatDurationTo}}</b>. Vergeet niet <a ng-click=\"doQuickFix('renew')\">je lidmaatschap te vernieuwen</a> voor die tijd.",CERTIFICATION_COUNT:"Aantal certificaties",CERTIFICATION_COUNT_SHORT:"Certificaties",SIG_STOCK:"Voorraad uit te geven certificaties",BTN_RECEIVE_MONEY:"Ontvangen",BTN_MEMBERSHIP_IN_DOTS:"Lidmaatschap aanvragen...",BTN_MEMBERSHIP_RENEW:"Lidmaatschap verlengen",BTN_MEMBERSHIP_RENEW_DOTS:"Lidmaatschap verlengen...",BTN_MEMBERSHIP_OUT_DOTS:"Lidmaatschap opzeggen...",BTN_SEND_IDENTITY_DOTS:"Identiteit publiceren...",BTN_SECURITY_DOTS:"Rekening en veiligheid...",BTN_SHOW_DETAILS:"Tonen technische informatie",BTN_REVOKE:"Deze identiteit<span class='hidden-xs hidden-sm'> definitief</span> opzeggen...",NEW:{TITLE:"Registratie",SLIDE_1_TITLE:"Selecteer een valuta:",SLIDE_2_TITLE:"Soort rekening:",MEMBER_ACCOUNT:"Persoonlijke rekening (lidmaatschap)",MEMBER_ACCOUNT_HELP:"Als je nog niet als individu geregistreerd bent (één rekening per individu mogelijk).",WALLET_ACCOUNT:"Eenvoudige portefeille",WALLET_ACCOUNT_HELP:"Als je een onderneming, stichting etc. vertegenwoordigd of eenvoudigweg een additionele portefeille nodig hebt. Geen individueel universeel dividend zal door deze rekening gecréeerd worden.",SALT_WARNING:"Kies een beveiligingszin.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je deze zin goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PASSWORD_WARNING:"Kies een wachtwoord.<br/>Deze heb je nodig voor ieder verbinding met je rekening.<br/><br/><b>Zorg dat je dit woord goed onthoud</b>.<br/>Eenmaal verloren, is er geen mogelijkheid om hem te achterhalen!",PSEUDO_WARNING:"Kies een pseudoniem.<br/>Het dient om makkelijker gevonden te worden door anderen.<br/><br/>.Gebruik van spaties, komma's en accenten is niet toegestaan.<br/><div class='hidden-xs'><br/>Voorbeeld: <span class='gray'>JulesDeelder, JohanVermeer, etc.</span>",PSEUDO:"Pseudoniem",PSEUDO_HELP:"joe123",SALT_CONFIRM:"Bevestig",SALT_CONFIRM_HELP:"Bevestig de beveiligingszin",PASSWORD_CONFIRM:"Bevestig",PASSWORD_CONFIRM_HELP:"Bevestig het wachtwoord",SLIDE_6_TITLE:"Bevestiging:",COMPUTING_PUBKEY:"Berekening...",LAST_SLIDE_CONGRATULATION:"Bravo! Je hebt alle verplichte velden ingevuld.<br/>Je kunt je <b>rekeningaanvraag verzenden</b>.<br/><br/>Ter informatie, de publieke sleutel hieronder identificeert je toekomstige rekening.<br/>Je kunt deze aan derde partijen communiceren om geld te ontvangen. Zodra je rekening geopend is, kun je de sleutel terugvinden onder <b>{{'ACCOUNT.TITLE'|translate}}</b>.",CONFIRMATION_MEMBER_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je beveiligingszin, wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je je persoonlijke rekeningaanvraag wil verzenden?',CONFIRMATION_WALLET_ACCOUNT:'<b class="assertive">Waarschuwing:</b> je wachtwoord en pseudoniem kunnen hierna niet gewijzigd worden.<br/><b>Zorg dat ze goed onthoudt!</b><br/><b>Weet je zeker</b> dat je deze portefeilleaanvraag wil verzenden?',PSEUDO_AVAILABLE:"Deze naam is beschikbaar",PSEUDO_NOT_AVAILABLE:"Deze gebruikersnaam is niet beschikbaar",INFO_LICENSE:"Om de valuta te sluiten, vragen wij u om te lezen en deze licentie te accepteren.",BTN_ACCEPT:"Ik accepteer",BTN_ACCEPT_LICENSE:"Ik ga akkoord met de licentie"},POPUP_REGISTER:{TITLE:"Voer een pseudoniem in",HELP:"Een pseudoniem is nodig voor anderen om je te kunnen vinden."},FILE_NAME:"{{currency}} - Rekeningafschrift {{pubkey|formatPubkey}} {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Datum",AMOUNT:"Bedrag",COMMENT:"Commentaar"}},TRANSFER:{TITLE:"Overboeken",SUB_TITLE:"Geld overboeken",FROM:"Van",TO:"Aan",AMOUNT:"Bedrag",AMOUNT_HELP:"Bedrag",COMMENT:"Opmerking",COMMENT_HELP:"Opmerking (optioneel)",BTN_SEND:"Verzenden",BTN_ADD_COMMENT:"Opmerking toevoegen",WARN_COMMENT_IS_PUBLIC:"Houd er rekening mee dat <b>reacties openbaar zijn </b> (niet-versleuteld).",MODAL:{TITLE:"Overboeking"}},ERROR:{POPUP_TITLE:"Error",UNKNOWN_ERROR:"Unknown error",CRYPTO_UNKNOWN_ERROR:"Your browser is not compatible with cryptographic features.",FIELD_REQUIRED:"This field is required.",FIELD_TOO_SHORT:"Value is too short (min {{minLength]] characters).",FIELD_TOO_SHORT_WITH_LENGTH:"This field value is too short.",FIELD_TOO_LONG:"Value is exceeding max length.",FIELD_TOO_LONG_WITH_LENGTH:"Value is too long (max {{maxLength}} characters).",FIELD_ACCENT:"Commas and accent characters not allowed",FIELD_NOT_NUMBER:"Value is not a number",FIELD_NOT_INT:"Value is not an integer",PASSWORD_NOT_CONFIRMED:"Must match previous password.",SALT_NOT_CONFIRMED:"Must match previous phrase.",SEND_IDENTITY_FAILED:"Error while trying to register.",SEND_CERTIFICATION_FAILED:"Could not certify identity.",NEED_MEMBER_ACCOUNT_TO_CERTIFY:"You could not send certification, because your account is <b>not a member account</b>.",NEED_MEMBER_ACCOUNT_TO_CERTIFY_HAS_SELF:"You could not send certification now, because your are <b>not a member</b> yet.<br/><br/>You still need certification to become a member.",NOT_MEMBER_FOR_CERTIFICATION:"Your account is not a member account yet.",IDENTITY_TO_CERTIFY_HAS_NO_SELF:"This account could not be certified. No registration found, or need to renew.",LOGIN_FAILED:"Error while sign in.",LOAD_IDENTITY_FAILED:"Could not load identity.",LOAD_REQUIREMENTS_FAILED:"Could not load identity requirements.",SEND_MEMBERSHIP_IN_FAILED:"Error while sending registration as member.",SEND_MEMBERSHIP_OUT_FAILED:"Error while sending membership revocation.",REFRESH_WALLET_DATA:"Could not refresh wallet.",GET_CURRENCY_PARAMETER:"Could not get currency parameters.",GET_CURRENCY_FAILED:"Could not load currency.",SEND_TX_FAILED:"Could not send transaction.",ALL_SOURCES_USED:"Please wait the next block computation (All transaction sources has been used).",NOT_ENOUGH_SOURCES:"Not enough changes to send this amount in one time.<br/>Maximum amount: {{amount}} {{unit}}<sub>{{subUnit}}</sub>.",ACCOUNT_CREATION_FAILED:"Error while creating your member account.",RESTORE_WALLET_DATA_ERROR:"Error while reloading settings from local storage",LOAD_WALLET_DATA_ERROR:"Error while loading wallet data.",COPY_CLIPBOARD_FAILED:"Could not copy to clipboard",TAKE_PICTURE_FAILED:"Could not get picture.",SCAN_FAILED:"Could not scan QR code.",SCAN_UNKNOWN_FORMAT:"Code not recognized.",WOT_LOOKUP_FAILED:"Search failed.",LOAD_PEER_DATA_FAILED:"Duniter peer not accessible. Please retry later.",NEED_LOGIN_FIRST:"Please sign in first.",AMOUNT_REQUIRED:"Amount is required.",AMOUNT_NEGATIVE:"Negative amount not allowed.",NOT_ENOUGH_CREDIT:"Not enough credit.",INVALID_NODE_SUMMARY:"Unreachable peer or invalid address",INVALID_USER_ID:"Field 'pseudonym' must not contains spaces or special characters.",INVALID_COMMENT:"Field 'reference' has a bad format.",INVALID_PUBKEY:"Public key has a bad format.",IDENTITY_INVALID_BLOCK_HASH:"This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",IDENTITY_EXPIRED:"This identity has expired: this person must re-apply <b>before</b> being certified.",IDENTITY_SANDBOX_FULL:"Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",WOT_PENDING_INVALID_BLOCK_HASH:"Membership not valid.",WALLET_INVALID_BLOCK_HASH:"Your membership application is no longer valid (because it references a block that network peers are cancelled).<br/>You must <a ng-click=\"doQuickFix('renew')\">renew your application for membership</a> to fix this issue.",WALLET_IDENTITY_EXPIRED:"The publication of your identity <b>has expired</b>.<br/>You must <a ng-click=\"doQuickFix('fixIdentity')\">re-issue your identity</a> to resolve this issue.",WALLET_HAS_NO_SELF:"Your identity must first have been published, and not expired.",IDENTITY_ALREADY_CERTIFY:"You have <b>already certified</b> that identity.<br/><br/>Your certificate is still valid (expires {{expiresIn|formatDuration}}).",IDENTITY_ALREADY_CERTIFY_PENDING:"You have <b>already certified</b> that identity.<br/><br/>Your certification is still pending (Deadline for treatment {{expiresIn|formatDuration}}).",UNABLE_TO_CERTIFY_TITLE:"Unable to certify",LOAD_NEWCOMERS_FAILED:"Unable to load new members.",LOAD_PENDING_FAILED:"Unable to load pending registrations.",ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION:"You must <b>be a member</b> in order to perform this action.",ONLY_SELF_CAN_EXECUTE_THIS_ACTION:"You must have <b>published your identity</b> in order to perform this action.",EXISTING_ACCOUNT:"Je gegevens komen overeen met een bestaande rekening, met de <a ng-click=\"showHelpModal('pubkey')\">publieke sleutel</a>:",EXISTING_ACCOUNT_REQUEST:"Gelieve je gegevens te wijzigen zodat ze met een niet gebruikte rekening overeenkomen."},INFO:{POPUP_TITLE:"Informatie",CERTIFICATION_DONE:"Identiteit succesvol getekend",NOT_ENOUGH_CREDIT:"Niet genoeg krediet",TRANSFER_SENT:"Verzoek tot overboeken succesvol verzonden",COPY_TO_CLIPBOARD_DONE:"Kopie geslaagd",MEMBERSHIP_OUT_SENT:"Opzegging lidmaatschap succesvol verzonden",NOT_NEED_MEMBERSHIP:"Je bent al lid.",IDENTITY_WILL_MISSING_CERTIFICATIONS:"Deze identiteit heeft binnenkort onvoldoende certificaties (ten minste {{willNeedCertificationCount}} nodig)."},CONFIRM:{POPUP_TITLE:"<b>Bevestiging</b>",POPUP_WARNING_TITLE:"<b>Waarschuwing</b>",CERTIFY_RULES_TITLE_UID:"Certificeer {{uid}}",CERTIFY_RULES:'<b>Beveiligingswaarschuwing:</b><br/><br/><b class="assertive">Certificeer een rekening niet</b> als je gelooft dat: <ul><li>1.) de aanvrager niet echt is.<li>2.) de aanvrager al een andere gecertificeerde rekening heeft.<li>3.) de aanvrager opzettelijk of door onzorgvuldigheid regel 1 of 2 overtreedt bij het verzenden van certificaten.</ul></small><br/>Weet je zeker dat je deze identieit wilt certificeren?',TRANSFER:"<b>Samenvatting van de overboeking:</b><br/><br/><ul><li> - Van: <b>{{from}}</b></li><li> - Aan: <b>{{to}}</b></li><li> - Bedrag: <b>{{amount}} {{unit}}</b></li><li> - Opmerking: <i>{{comment}}</i></li></ul><br/><b>Weet je zeker dat je deze overboeking wil doen?</b>",MEMBERSHIP_OUT:"<b>Waarschuwing</b>:<br/>Je staat op het punt je lidmaatschap te beëindigen. Dit kan <b>niet ongedaan</b> worden gemaakt.<br/></br/><b>Weet je zeker dat je door wil gaan?</b>",LOGIN_UNUSED_WALLET_TITLE:"Typefout?",LOGIN_UNUSED_WALLET:"Je bent ingelogged op een rekening die <b>inactief</b> lijkt te zijn.<br/><br/>Als deze rekening niet met de jouwe overeenkomt, komt dat waarschijnlijk door een <b>typefout</b> bij het inloggen.<br/><br/><b>Wilt u toch doorgaan met deze rekening?</b>",FIX_IDENTITY:"De pseudoniem <b>{{uid}}</b> zal opnieuw gepubliceerd worden, waarmee de oude verlopen publicatie wordt vervangen.<br/></br/><bWeet je zeker</b> dat je door wil gaan?",FIX_MEMBERSHIP:"Je verzoek to lidmaatschap zal verstuurd worden.<br/></br/><b>Weet je het zeker?</b>",RENEW_MEMBERSHIP:"Je lidmaatschap zal verlengd worden.<br/></br/><b>Weet je het zeker?</b>",REVOKE_IDENTITY:"<b>Beveiligingswaarschuwing:</b><br/>You will <b>definitely revoke this identity</b>.<br/><br/>The public key and the associated nickname <b>will never be used again</b> (for a member account).<br/></br/><b>Are you sure</b> you want to continue?",REVOKE_IDENTITY_2:"Deze handeling is <b>niet terug te draaien</b>!<br/><br/><b>Weet je zeker</b> dat je door wil gaan?",NOT_NEED_RENEW_MEMBERSHIP:"Je lidmaatschap hoeft niet verlengd te worden (het zal pas verlopen na {{membershipExpiresIn|formatDuration}}).<br/></br/><b>Weet je zeker</b> dat je een verlengingsaanvraag wil versturen?",SAVE_BEFORE_LEAVE:"Wil je <b>je wijzigingen opslaan</b> voor je de pagina verlaat?",SAVE_BEFORE_LEAVE_TITLE:"Wijzigingen niet opgeslagen",LICENCE:"Ik heb gelezen en geaccepteerd de voorwaarden van de vergunning G1"},DOWNLOAD:{POPUP_TITLE:"<b>Intrekkingsdocument</b>",POPUP_REVOKE_MESSAGE:"Om je rekening te beveiligen, download het <b>rekening intrekkingsdocument</b>. Dit heb je nodig om je rekening op te heffen (in het geval van diefstal, een verandering van ID, een ten onrechte gemaakte rekening, etc.).<br/><br/><b>Bewaar deze op een veilige plaats.</b>"},HELP:{TITLE:"Online help",JOIN:{SECTION:"Join",SALT:'The protection phrase is very important. It is used to hash you password, which in turn is used to calculate your <span class="text-italic">public account key</span> (its number) and the private key to access it. <b>Please remeber this phrase well</b>, because there is no way to recover it when lost. What\'s more, it cannot be changed without having to create a new account.<br/><br/>A good protection phrase must be sufficiently long (8 characters at the very least) and as original as possible.',PASSWORD:"The password is very important. Together with the protection phrase, it is use to calculate your account number (public key) and the private key to access it. <b>Please remember it well</b>, because there is no way to recover it when lost. What's more, it cannot be changed without having to create a new account.<br/><br/>A good password is made (ideally) of at least 8 characters, with at least one capital and one number.",PSEUDO:'A pseudonym is used only when joining as <span class="text-italic">member</span>. It is always associated with a wallet (by its <span class="text-italic">public key</span>). It is published on the network so that other users may identify it, certify or send money to the account. A pseudonym must be unique among all members (current and past).'},GLOSSARY:{SECTION:"Glossary",PUBKEY_DEF:"Een publieke sleutel identificeert altijd een portemonnee. Het kan een lid identificeren. In Cesium wordt berekend met de geheime ID en wachtwoord.",MEMBER:"Member",MEMBER_DEF:'A member is a real and living human, wishing to participate freely to the monitary community. The member will receive universal dividend, according to the period and amount as defined in the <span class="text-italic">currency parameters</span>.',CURRENCY_RULES:"Currency rules",CURRENCY_RULES_DEF:'The currency rules are defined only once, and for all. They set the parameters under which the currency will perform: universal dividend calculation, the amount of certifications needed to become a member, the maximum amount of certifications a member can send, etc.<br/><br/>The parameters cannot be modified because of the use of a <span class="text-italic">Blockchain</span> which carries and executes these rules, and constantly verifies their correct application. <a href="#/app/currency">See current parameters</a>.',BLOCKCHAIN:"Blockchain",BLOCKCHAIN_DEF:'The Blockchain is a decentralised system which, in case of Duniter, serves to carry and execute the <span class="text-italic">currency rules</span>.<br/><a href="http://en.duniter.org/presentation/" target="_blank">Read more about Duniter</a> and the working of its blockchain.',UNIVERSAL_DIVIDEND_DEF:'The Universal Dividend (UD) is the quantity of money co-created by each member, according to the period and the calculation defined in the <span class="text-italic">currency rules</span>.<br/>Every term, the members receive an equal amount of new money on their account.<br/><br/>The UD undergoes a steady growth, to remain fair under its members (current and future), calculated by an average life expectancy, as demonstrated in the Relative Theory of Money (RTM).<br/><a href="http://trm.creationmonetaire.info" target="_system">Read more about RTM</a> and open money.'},TIP:{MENU_BTN_CURRENCY:"Menu <b>{{'MENU.CURRENCY'|translate}}</b> allows discovery of <b>currency parameters</b> and its state.",CURRENCY_WOT:"The <b>member count</b> shows the <b>community's weight and evolution</b>.",CURRENCY_MASS:"Shown here is the <b>total amount</b> currently in circulation and its <b>average distribution</b> per member.<br/><br/>This allows to estimate the <b>worth of any amount</b>, in respect to what <b>others own</b> on their account (on average).",CURRENCY_UNIT_RELATIVE:"The unit used here (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amounts in {{currency|capitalize}} have been devided by the <b>Universal Dividend</b> (UD).<br/><br/><small>This relative unit is <b>relevant</b> because it is stable in contrast to the permanently growing monitary mass.</small>",CURRENCY_CHANGE_UNIT:"This button allows to <b>switch the unit</b> to show amounts in <b>{{currency|capitalize}}</b>, undevided by the Universal Dividend (instead of in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;).",CURRENCY_CHANGE_UNIT_TO_RELATIVE:"This button allows to <b>switch the unit</b> to show amounts in &ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;, which is relative to the Universal Dividend (the amount co-produced by each member).",CURRENCY_RULES:"The <b>rules</b> of the currency determine its <b>exact and predictible</b> performance.<br/><br/>As a true DNA of the currency these rules make the monetary code <b>transparent and understandable</b>.",NETWORK_BLOCKCHAIN:"All monetary transactions are recoded in a <b>public and tamper proof</b> ledger, generally referred to as the <b>blockchain</b>.",NETWORK_PEERS:"The <b>peers</b> shown here correspond to <b>computers that update and check</b> the blockchain.<br/><br/>The more active peers there are, the more <b>decentralised</b> and therefore trustworhty the currency becomes.",NETWORK_PEERS_BLOCK_NUMBER:"This <b>number</b> indicates the peer's <b>latest validated block</b> (last page written in the ledger).<br/><br/>Green indicates that the block was equally validated by the <b>majority of other peers</b>.",NETWORK_PEERS_PARTICIPATE:'<b>Each member</b>, equiped with a computer with Internet, <b>can participate, adding a peer</b> simply by <b>installing the Duniter software</b> (free/libre and open source). <a href="{{installDocUrl}}" target="_system">Read the installation manual &gt;&gt;</a>.',MENU_BTN_ACCOUNT:"<b>{{'ACCOUNT.TITLE'|translate}}</b> allows access to your account balance and transaction history.",MENU_BTN_ACCOUNT_MEMBER:"Here you can consult your account status, transaction history and your certifications.",WALLET_CERTIFICATIONS:"Click here to reveiw the details of your certifications (given and received).",WALLET_BALANCE:"Your account <b>balance</b> is shown here.",WALLET_BALANCE_RELATIVE:"{{'HELP.TIP.WALLET_BALANCE'|translate}}<br/><br/>The used unit (&ldquo;<b>{{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub></b>&rdquo;) signifies that the amount in {{currency|capitalize}} has been divided by the <b>Universal Dividend</b> (UD) co-created by each member.<br/>At this moment, 1 UD equals {{currentUD}} {{currency|capitalize}}.",WALLET_BALANCE_CHANGE_UNIT:"You can <b>change the unit</b> in which amounts are shown in <b><i class=\"icon ion-android-settings\"></i>&nbsp;{{'MENU.SETTINGS'|translate}}</b>.<br/><br/>For example, to display amounts <b>directly in {{currency|capitalize}}</b> instead of relative amounts.",WALLET_SEND:"Issue a payment in just a few clicks.",WALLET_SEND_NO_MONEY:"Issue a payment in just a few clicks.<br/>(Your balance does not allow this yet)",WALLET_OPTIONS:"Please note that this button allows access to <b>other, less used actions</b>.<br/><br/>Don't forget to take a quick look, when you have a moment!",WALLET_RECEIVED_CERTS:"This shows the list of persons that certified you.",WALLET_CERTIFY:"The button <b>{{'WOT.BTN_SELECT_AND_CERTIFY'|translate}}</b> allows selecting an identity and certifying it.<br/><br/>Only users that are <b>already member</b> may certify others.",WALLET_CERT_STOCK:"Your supply of certifications (to send) is limited to <b>{{sigStock}} certifications</b>.<br/><br/>This supply will replete itself over time, as and when earlier certifications expire.",MENU_BTN_WOT:"The menu <b>{{'MENU.WOT'|translate}}</b> allows searching <b>users</b> of the currency (member or not).",WOT_SEARCH_TEXT_XS:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>The search will start automatically.",WOT_SEARCH_TEXT:"To search in the registry, type the <b>first letters of a users pseudonym or public key</b>.<br/><br/>Then hit <b>Enter</b> to start the search.",WOT_SEARCH_RESULT:"Simply click a user row to view the details sheet.",WOT_VIEW_CERTIFICATIONS:"The row <b>{{'ACCOUNT.CERTIFICATION_COUNT'|translate}}</b> shows how many members members validated this identity.<br/><br/>These certifications testify that the account belongs to <b>a living human</b> and this person has <b>no other member account</b>.",WOT_VIEW_CERTIFICATIONS_COUNT:"There are at least <b>{{sigQty}} certifications</b> needed to become a member and receive the <b>Universal Dividend</b>.",WOT_VIEW_CERTIFICATIONS_CLICK:"Click here to open <b>a list of all certifications</b> given to and by this identity.",WOT_VIEW_CERTIFY:"The button <b>{{'WOT.BTN_CERTIFY'|translate}}</b> allows to add your certification to this identity.",CERTIFY_RULES:"<b>Attention:</b> Only certify <b>real and living persons</b> that do not own any other certified account.<br/><br/>The trust carried by the currency depends on each member's vigilance!",MENU_BTN_SETTINGS:"The <b>{{'MENU.SETTINGS'|translate}}</b> allow you to configure the Cesium application.<br/><br/>For example, you can <b>change the unit</b> in which the currency will be shown.",HEADER_BAR_BTN_PROFILE:"Click here to access your <b>user profile</b>",SETTINGS_CHANGE_UNIT:"You can <b>change the display unit</b> of amounts by clicking here.<br/><br/>- Deactivate the option to show amounts in {{currency|capitalize}}.<br/>- Activate the option for relative amounts in {{'COMMON.UD'|translate}}<sub>{{currency|abbreviate}}</sub> (<b>divided</b> by the current Universal Dividend).",END_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>Welcome to the <b>free economy</b>!",END_NOT_LOGIN:"This guided visit has <b>ended</b>.<br/><br/>If you wish to join the currency {{currency|capitalize}}, simply click <b>{{'LOGIN.CREATE_ACCOUNT'|translate}}</b> below."}}})}]),angular.module("cesium.plugins",["cesium.plugins.translations","cesium.plugins.templates","cesium.graph.plugin","cesium.es.plugin","cesium.map.plugin"]),angular.module("cesium.plugins.translations",[]).config(["$translateProvider",function(e){e.translations("en-GB",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_REGISTERED:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("en",{COMMON:{CATEGORY:"Category",CATEGORIES:"Categories",CATEGORY_SEARCH_HELP:"Search",LAST_MODIFICATION_DATE:"Updated on ",SUBMIT_BY:"Submitted by",BTN_PUBLISH:"Publish",BTN_PICTURE_DELETE:"Delete",BTN_PICTURE_FAVORISE:"Default",BTN_PICTURE_ROTATE:"Rotate",BTN_ADD_PICTURE:"Add picture",NOTIFICATION:{TITLE:"New notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"You have {{count}} unread notification{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Mark all as read",NO_RESULT:"No notification",SHOW_ALL:"Show all",LOAD_NOTIFICATIONS_FAILED:"Could not load notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"My Profile",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Account for an organization",ORGANIZATION_ACCOUNT_HELP:"If you represent a company, association, etc.<br/>No universal dividend will be created by this account."},EVENT:{MEMBER_WITHOUT_PROFILE:'You can <a ui-sref="app.edit_profile">fill your Cesium+ profile</a> (optional) to provide better visibility of your account. This profile will be stored in <b>a directory independent</b> of the currency, but decentralized.'},ERROR:{WS_CONNECTION_FAILED:"Cesium can not receive notifications because of a technical error (connection to the Cesium + data node).<br/><br/>If the problem persists, please <b>choose another data node</b> in Cesium+ settings."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggest identities to certify...",BTN_ASK_CERTIFICATIONS_DOTS:"Ask members to certify me...",BTN_ASK_CERTIFICATION:"Ask a certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggest certifications",HELP:"Select your suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Ask certifications",HELP:"Select recipients"},SEARCH:{DIVIDER_PROFILE:"Accounts",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groups"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Are you sure you want <b>to send these certification suggestions</b>?",ASK_CERTIFICATION:"Are you sure you want to <b>send a certification request</b>?",ASK_CERTIFICATIONS:"Are you sure you want to <b>send a certification request</b> to these people?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"No invitation received",BTN_DELETE_ALL:"Delete all invitations",BTN_DELETE:"Delete invitation",BTN_NEW_INVITATION:"New invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> asks for your certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> is suggested for certification',SUGGESTED_BY:'Suggestion sent by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"New invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Recipients of the invitation",RECIPIENTS_MODAL_TITLE:"Recipients",RECIPIENTS_MODAL_HELP:"Please choose recipients:",SUGGESTION_IDENTITIES:"Suggestions for certification",SUGGESTION_IDENTITIES_HELP:"Certifications to suggest",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Please choose your suggestions:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Removing invitations is <b>an irreversible operation</b>.<br/><br/><b>Are you sure</b> you want to continue",SEND_INVITATIONS_TO_CERTIFY:"<b>Are you sure</b> you want <b>to sent this invitation to certify</b> ?"},INFO:{INVITATION_SENT:"Invitation sent"},ERROR:{LOAD_INVITATIONS_FAILED:"Error while loading invitations",REMOVE_INVITATION_FAILED:"Error while deleting the invitation",REMOVE_ALL_INVITATIONS_FAILED:"Error while deleting invitations",SEND_INVITATION_FAILED:"Error while sending invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation unreadable (format unknown)</span> - sent by <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comments",SHOW_MORE_COMMENTS:"Show previous comments",COMMENT_HELP:"Your comment, question...",COMMENT_HELP_REPLY_TO:"Your answer...",BTN_SEND:"Send",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Reply",REPLY_TO:"Respond to:",REPLY_TO_LINK:"In response to ",REPLY_TO_DELETED_COMMENT:"In response to a deleted comment",REPLY_COUNT:"{{replyCount}} responses",DELETED_COMMENT:"Comment deleted",ERROR:{FAILED_SAVE_COMMENT:"Saving comment failed",FAILED_REMOVE_COMMENT:"Deleting comment failed"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Reply",BTN_COMPOSE:"New message",BTN_WRITE:"Write",NO_MESSAGE_INBOX:"No message received",NO_MESSAGE_OUTBOX:"No message sent",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"You <b>received a message</b><br/>from"},LIST:{INBOX:"Inbox",OUTBOX:"Outbox",LAST_INBOX:"New messages",LAST_OUTBOX:"Sent messages",BTN_LAST_MESSAGES:"Recent messages",TITLE:"Private messages",SEARCH_HELP:"Search in messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Delete all messages"}},COMPOSE:{TITLE:"New message",TITLE_REPLY:"Reply",SUB_TITLE:"New message",TO:"To",OBJECT:"Object",OBJECT_HELP:"Object",ENCRYPTED_HELP:"Please note this message will be encrypted before sending so that only the recipient can read it and be sure you are the author.",MESSAGE:"Message",MESSAGE_HELP:"Message content",CONTENT_CONFIRMATION:"No message content.<br/><br/>Are your sure you want to send this message?"},VIEW:{TITLE:"Message",SENDER:"Sent by",RECIPIENT:"Sent to",NO_CONTENT:"Empty message",DELETE:"Delete the message"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this message</b>?<br/><br/> This operation is irreversible.",REMOVE_ALL:"Are you sure you want to <b>delete all messages</b>?<br/><br/> This operation is irreversible.",MARK_ALL_AS_READ:"Are you sure you want to <b>mark all message as read</b>?",USER_HAS_NO_PROFILE:"This identity has no Cesium + profile. It may not use the Cesium + extension, so it <b>will not read your message</b>.<br/><br/>Are you sure you want <b>to continue</b>?"},INFO:{MESSAGE_REMOVED:"Message successfully deleted",All_MESSAGE_REMOVED:"Messages successfully deleted",MESSAGE_SENT:"Message sent"},ERROR:{SEND_MSG_FAILED:"Error while sending message.",LOAD_MESSAGES_FAILED:"Error while loading messages.",LOAD_MESSAGE_FAILED:"Error while loading message.",MESSAGE_NOT_READABLE:"Unable to read message.",USER_NOT_RECIPIENT:"You are not the recipient of this message: unable to read it.",NOT_AUTHENTICATED_MESSAGE:"The authenticity of the message is not certain or its content is corrupted.",REMOVE_MESSAGE_FAILED:"Error while deleting message",MESSAGE_CONTENT_TOO_LONG:"Value too long ({{maxLength}} characters max).",MARK_AS_READ_FAILED:"Unable to mark the message as 'read'.",LOAD_NOTIFICATIONS_FAILED:"Error while loading messages notifications.",REMOVE_All_MESSAGES_FAILED:"Error while removing all messages.",MARK_ALL_AS_READ_FAILED:"Error while marking messages as read.",RECIPIENT_IS_MANDATORY:"Recipient is mandatory."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Block number, hash...",POPOVER_FILTER_TITLE:"Filter",HEADER_MEDIAN_TIME:"Date / Time",HEADER_BLOCK:"Block #",HEADER_ISSUER:"Peer owner",BTN_LAST:"Last blocks",DISPLAY_QUERY:"View query",HIDE_QUERY:"Hide query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Members input/output',EXISTING_TRANSACTION:'<b class="ion-card"></b> Having transactions',PERIOD:'<b class="ion-clock"></b> Between <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) and <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Computed by {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concerning <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Error while searching blocks."}},REGISTRY:{CATEGORY:"Main activity",GENERAL_DIVIDER:"Basic information",LOCATION_DIVIDER:"Address",SOCIAL_NETWORKS_DIVIDER:"Social networks, web sites",TECHNICAL_DIVIDER:"Technical data",BTN_SHOW_WOT:"People",BTN_SHOW_WOT_HELP:"Search for people",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Search for pages",BTN_NEW:"New page",MY_PAGES:"My pages",NO_PAGE:"No page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"What, Who: hairdresser, Lili's restaurant, ...",BTN_ADD:"New",BTN_LAST_RECORDS:"Recent pages",BTN_ADVANCED_SEARCH:"Advanced search",BTN_OPTIONS:"Advanced search",TYPE:"Kind of organization",LOCATION_HELP:"Where: City, Country",RESULTS:"Results",RESULT_COUNT_LOCATION:"{{count}} result{{count>0?'s':''}}, near {{location}}",RESULT_COUNT:"{{count}} result{{count>0?'s':''}}",LAST_RECORDS:"Recent pages",LAST_RECORD_COUNT_LOCATION:"{{count}} recent page{{count>0?'s':''}}, near {{location}}",LAST_RECORD_COUNT:"{{count}} recent page{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Advanced options?"}},VIEW:{TITLE:"Registry",CATEGORY:"Main activity:",LOCATION:"Address:",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Are you sure you want to delete this reference?<br/><br/>This is irreversible."},TYPE:{TITLE:"New page",SELECT_TYPE:"Kind of organization:",ENUM:{SHOP:"Local shops",COMPANY:"Company",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edit",TITLE_NEW:"New page",RECORD_TYPE:"Kind of organization",RECORD_TITLE:"Name",RECORD_TITLE_HELP:"Name",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Describe activity",RECORD_ADDRESS:"Street",RECORD_ADDRESS_HELP:"Street, building...",RECORD_CITY:"City",RECORD_CITY_HELP:"City, Country",RECORD_SOCIAL_NETWORKS:"Social networks and web site",RECORD_PUBKEY:"Public key",RECORD_PUBKEY_HELP:"Public key to receive payments"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Pages refer to activities accepting money or promoting it: local shops, companies, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Loading main activities failed",LOAD_RECORD_FAILED:"Loading failed",LOOKUP_RECORDS_FAILED:"Error while loading records.",REMOVE_RECORD_FAILED:"Deleting failed",SAVE_RECORD_FAILED:"Saving failed",RECORD_NOT_EXISTS:"Record not found",GEO_LOCATION_NOT_FOUND:"City or zip code not found"},INFO:{RECORD_REMOVED:"Page successfully deleted",RECORD_SAVED:"Page successfully saved"}},PROFILE:{PROFILE_DIVIDER:"Cesium+ profile",PROFILE_DIVIDER_HELP:"These are ancillary data, stored outside the currency network.",NO_PROFILE_DEFINED:"No Cesium+ profile",BTN_ADD:"Create my profile",BTN_EDIT:"Edit my profile",BTN_DELETE:"Delete my profile",BTN_REORDER:"Reorder",UID:"Pseudonym",TITLE:"Lastname, FirstName",TITLE_HELP:"Name",DESCRIPTION:"About me",DESCRIPTION_HELP:"About me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"General data",SOCIAL_NETWORKS_DIVIDER:"Social networks and web site",TECHNICAL_DIVIDER:"Technical data",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Choose an image file</b>, by clicking on the button below:",BTN_SELECT_FILE:"Choose an image",RESIZE_HELP:"<b>Re-crop the image</b> if necessary. A click on the image allows to move it. Click on the area at the bottom left to zoom in.",RESULT_HELP:"<b>Here is the result</b> as seen on your profile:"},CONFIRM:{DELETE:"Are you sure you want to <b>delete your Cesium+ profile ?</b><br/><br/>This operation is irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Deleting profile failed",LOAD_PROFILE_FAILED:"Could not load user profile.",SAVE_PROFILE_FAILED:"Saving profile failed",INVALID_SOCIAL_NETWORK_FORMAT:"Invalid format: please fill a valid Internet address.<br/><br/>Examples :<ul><li>- A Facebook page (https://www.facebook.com/user)</li><li>- A web page (http://www.domain.com)</li><li>- An email address (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Error while resizing picture"},INFO:{PROFILE_REMOVED:"Profile deleted",PROFILE_SAVED:"Profile saved"},HELP:{WARNING_PUBLIC_DATA:"Please note that the information published here <b>is public</b>: visible including by <b>not logged in people</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Find my address on the map",USE_GEO_POINT:"Appear on {{'COMMON.APP_NAME'|translate}} maps?",LOADING_LOCATION:"Searching address...",LOCATION_DIVIDER:"Localisation",ADDRESS:"Address",ADDRESS_HELP:"Address (optional)",CITY:"City",CITY_HELP:"City, Country",DISTANCE:"Maximum distance around the city",DISTANCE_UNIT:"mi",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"City, Country",PROFILE_POSITION:"Profile position",MODAL:{TITLE:"Search address",SEARCH_HELP:"City, Country",ALTERNATIVE_RESULT_DIVIDER:"Alternative results for <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Required if a street has been filled",REQUIRED_FOR_LOCATION:"Required field to appear on the map",INVALID_FOR_LOCATION:"Unknown address",GEO_LOCATION_FAILED:"Unable to retrieve your current position. Please use the search button.",ADDRESS_LOCATION_FAILED:"Unable to retrieve the address position"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Online services",SUBSCRIPTION_DIVIDER_HELP:"Online services offer optional additional services, delegated to a third party.",BTN_ADD:"Add a service",BTN_EDIT:"Manage my services",NO_SUBSCRIPTION:"No service defined",SUBSCRIPTION_COUNT:"Services / Subscription",EDIT:{TITLE:"Online services",HELP_TEXT:"Manage your subscriptions and other online services here",PROVIDER:"Provider:"},TYPE:{ENUM:{EMAIL:"Receive email notifications"}},CONFIRM:{DELETE_SUBSCRIPTION:"Are you sur you want to <b>delete this subscription</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error while loading online services",ADD_SUBSCRIPTION_FAILED:"Error while adding subscription",UPDATE_SUBSCRIPTION_FAILED:"Error during subscription update",DELETE_SUBSCRIPTION_FAILED:"Error while deleting subscription"},MODAL_EMAIL:{TITLE:"Notification by email",HELP:"Fill out this form to <b>be notified by email</ b> of your account's events. <br/>Your email address will be encrypted only to be visible to the service provider.",EMAIL_LABEL:"Your email:",EMAIL_HELP:"john@domain.com",FREQUENCY_LABEL:"Frequency of notifications:",FREQUENCY_DAILY:"Daily",FREQUENCY_WEEKLY:"Weekly",PROVIDER:"Service Provider:"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Document search",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Last documents:",LAST_DOCUMENTS:"Last documents",SHOW_QUERY:"Show query",HIDE_QUERY:"Hide query",HEADER_TIME:"Time/Hour",HEADER_ISSUER:"Issuer",HEADER_RECIPIENT:"Recipient",READ:"Read",BTN_REMOVE:"Delete this document",BTN_COMPACT:"Compact",HAS_REGISTERED:"create or edit his profile",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Delete these documents..."}},INFO:{REMOVED:"Deleted document"},CONFIRM:{REMOVE:"Are you sure you want to <b>delete this document</b>?",REMOVE_ALL:"Are you sure you want to <b>delete these documents</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Error searching documents",REMOVE_FAILED:"Error deleting the document",REMOVE_ALL_FAILED:"Error deleting documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"User profiles, notifications, private messages",ENABLE_TOGGLE:"Enable extension?",ENABLE_REMOTE_STORAGE:"Enable remote storage for settings?",ENABLE_REMOTE_STORAGE_HELP:"Enables (encrypted) storage of your settings on Cesium + nodes",ENABLE_MESSAGE_TOGGLE:"Enable private messages?",PEER:"Data peer address",POPUP_PEER:{TITLE:"Data peer",HELP:"Set the address of the peer to use:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Enable the types of notifications you want to receive:",ENABLE_TX_SENT:"Notify the validation of <b>sent payments</b>?",ENABLE_TX_RECEIVED:"Notify the validation of <b>received payments</b>?",ENABLE_CERT_SENT:"Notify the validation of <b>sent certifications</b>?",ENABLE_CERT_RECEIVED:"Notify the validation of <b>received certifications</b>?",ENABLE_HTML5_NOTIFICATION:"Warn with each new notification?",ENABLE_HTML5_NOTIFICATION_HELP:"Opens a small popup window with each new notification."},CONFIRM:{ASK_ENABLE_TITLE:"Optional features",ASK_ENABLE:'Cesium+ extension is <b>disabled</b> in your settings, making some features inactive: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> user profiles</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Private messages</b>.</ul><br/><br/><b>Do you want to enable</b> the extension?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"A recipient is required for encryption."},ES_PEER:{NAME:"Name",DOCUMENTS:"Documents",SOFTWARE:"Software",DOCUMENT_COUNT:"Number of documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} subscribers to email notification"}},EVENT:{NODE_STARTED:"Your node ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Node <b>{{params[0]}}:{{params[1]}}</b> (used by your ES API) is <b>unreachable</b>.",NODE_BMA_UP:"Node <b>{{params[0]}}:{{params[1]}}</b> is reachable again.",MEMBER_JOIN:"You are now a <b>member</b> of currency <b>{{params[0]}}</b>!",MEMBER_LEAVE:"You are <b>not a member anymore</b> of currency <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"You are <b>not more member</b> of the currency <b>{{params[0]}}</b>, for lack of renewal or lack of certifications.",MEMBER_REVOKE:"Your account has been revoked. It will no longer be a member of the currency <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Your membership to <b>{{params[0]}}</b> has been <b>renewed successfully</b>.",TX_SENT:"Your payment to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",TX_SENT_MULTI:"Your payment to <b>{{params[1]}}</b> was executed.",TX_RECEIVED:"You received a payment from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"You received a payment from <b>{{params[1]}}</b>.",CERT_SENT:"Your <b>certification</b> to <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> was executed.",CERT_RECEIVED:"You  have <b>received a certification</b> from <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has commented on your referencing: <b>{{params[2]}}</b>",
+UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his comment on your referencing: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has replied to your comment on the referencing: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> has modified his answer to your comment, on the referencing: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Data node <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the data node <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Data node <b>{{server}}</b> unreachable or invalid address.<br/><br/>Cesium will continue to work, <b>without the Cesium+</b> extension (user profiles, private messages, maps and graphics).<br/><br/>Check your Internet connection, or change data node in <a class="positive" ng-click="doQuickFix(\'settings\')">extension settings</a>.',ES_MAX_UPLOAD_BODY_SIZE:"The volume of data to be sent exceeds the limit set by the server.<br/><br/>Please try again after, for example, deleting photos."}}),e.translations("eo-EO",{COMMON:{CATEGORY:"Kategorio",CATEGORIES:"Kategorioj",CATEGORY_SEARCH_HELP:"Serĉado",LAST_MODIFICATION_DATE:"Ĝisdatigita la",SUBMIT_BY:"Submetita de",BTN_PUBLISH:"Publikigi",BTN_PICTURE_DELETE:"Forigi",BTN_PICTURE_FAVORISE:"Precipa",BTN_PICTURE_ROTATE:"Turni",BTN_ADD_PICTURE:"Aldoni foton",NOTIFICATION:{TITLE:"Nova avizo | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vi havas {{count}} avizo{{count>0?'j':''}}n ne legita{{count>0?'j':''}}n"},NOTIFICATIONS:{TITLE:"Avizoj",MARK_ALL_AS_READ:"Ĉion marki legita",NO_RESULT:"Neniu avizo",SHOW_ALL:"Vidi ĉion",LOAD_NOTIFICATIONS_FAILED:"Malsukceso por ŝarĝi la avizojn"}},MENU:{REGISTRY:"Paĝoj",USER_PROFILE:"Mia profilo",MESSAGES:"Mesaĝoj",NOTIFICATIONS:"Avizoj",INVITATIONS:"Invitoj"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Konto por organizaĵo",ORGANIZATION_ACCOUNT_HELP:"Se vi reprezentas entreprenon, asocion, ktp.<br/>Neniu universala dividendo estos kreita per tiu ĉi konto."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vi povas <a ui-sref="app.edit_profile">tajpi vian profilon Cesium+</a> (kromebleco) por disponi pli bonan videblecon por via konto.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne povas ricevi la avizojn pro teknika eraro (konekto al la daten-nodo Cesium+).<br/><br/>Se la problemo daŭradas, bonvolu <b>elekti alian daten-nodon</b> ĉe la parametroj Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugesti identecojn atestotajn...",BTN_ASK_CERTIFICATIONS_DOTS:"Peti membrojn atesti min...",BTN_ASK_CERTIFICATION:"Peti atestaĵon",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugesti atestadojn",HELP:"Elekti viajn sugestojn"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Peti atestaĵojn",HELP:"Elekti la ricevontojn"},SEARCH:{DIVIDER_PROFILE:"Kontoj",DIVIDER_PAGE:"Paĝoj",DIVIDER_GROUP:"Grupoj"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi tiujn sugestojn por atestado</b>?",ASK_CERTIFICATION:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b>?",ASK_CERTIFICATIONS:"Ĉu vi certas, ke vi volas <b>sendi atesto-peton</b> al tiuj personoj?"}},INVITATION:{TITLE:"Invitoj",NO_RESULT:"Neniu invito atendanta",BTN_DELETE_ALL:"Forigi ĉiujn invitojn",BTN_DELETE:"Forigi la inviton",BTN_NEW_INVITATION:"Nova invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> petas vian atestadon',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> estas sugestita al vi por atestado',SUGGESTED_BY:'Sugesto sendita de <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitoj"},LIST:{TITLE:"Invitoj"},NEW:{TITLE:"Nova invito",RECIPIENTS:"Al",RECIPIENTS_HELP:"Ricevontoj de la invito",RECIPIENTS_MODAL_TITLE:"Ricevontoj",RECIPIENTS_MODAL_HELP:"Bonvolu elekti la ricevontojn:",SUGGESTION_IDENTITIES:"Sugestoj por atestado",SUGGESTION_IDENTITIES_HELP:"Atestadoj sugestotaj",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugestoj",SUGGESTION_IDENTITIES_MODAL_HELP:"Bonvolu elekti viajn sugestojn:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La forigo de la invitoj estas <b>neinversigebla ago</b>.<br/><br/><b>Ĉu vi certas</b>, ke vi volas daŭrigi?",SEND_INVITATIONS_TO_CERTIFY:"Ĉu vi certas, ke vi volas <b>sendi tiun inviton atestotan</b>?"},INFO:{INVITATION_SENT:"Invito sendita"},ERROR:{LOAD_INVITATIONS_FAILED:"Malsukceso por ŝarĝi la invitojn",REMOVE_INVITATION_FAILED:"Eraro dum la forigo de la invito",REMOVE_ALL_INVITATIONS_FAILED:"Eraro dum la forigo de la invitoj",SEND_INVITATION_FAILED:"Eraro dum la sendo de la invito",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito nelegebla (strukturo nekonata)</span> - sendita de <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Komentoj",SHOW_MORE_COMMENTS:"Afiŝi la antaŭajn komentojn",COMMENT_HELP:"Via komento, demando, ktp.",COMMENT_HELP_REPLY_TO:"Via respondo...",BTN_SEND:"Sendi",POPOVER_SHARE_TITLE:"Mesaĝo #{{number}}",REPLY:"Respondi",REPLY_TO:"Respondo al:",REPLY_TO_LINK:"Responde al ",REPLY_TO_DELETED_COMMENT:"Responde al forigita komento",REPLY_COUNT:"{{replyCount}} respondoj",DELETED_COMMENT:"Komento forigita",ERROR:{FAILED_SAVE_COMMENT:"Eraro dum la konservo de la komento",FAILED_REMOVE_COMMENT:"Eraro dum la forigo de la komento"}},MESSAGE:{REPLY_TITLE_PREFIX:"Resp: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Respondi",BTN_COMPOSE:"Nova mesaĝo",BTN_WRITE:"Skribi",NO_MESSAGE_INBOX:"Neniu mesaĝo ricevita",NO_MESSAGE_OUTBOX:"Neniu mesaĝo sendita",NOTIFICATIONS:{TITLE:"Mesaĝoj",MESSAGE_RECEIVED:"Vi <b>ricevis mesaĝon</b><br/>de"},LIST:{INBOX:"Ricevujo",OUTBOX:"Senditaj mesaĝoj",LAST_INBOX:"Novaj mesaĝoj",LAST_OUTBOX:"Senditaj mesaĝoj",BTN_LAST_MESSAGES:"Freŝdataj mesaĝoj",TITLE:"Mesaĝoj",SEARCH_HELP:"Serĉado en la mesaĝoj",POPOVER_ACTIONS:{TITLE:"Kromaĵoj",DELETE_ALL:"Forigi ĉiujn mesaĝojn"}},COMPOSE:{TITLE:"Nova mesaĝo",TITLE_REPLY:"Respondi",SUB_TITLE:"Nova mesaĝo",TO:"Al",OBJECT:"Temo",OBJECT_HELP:"Temo",ENCRYPTED_HELP:"Bonvolu noti, ke tiu ĉi mesaĝo estos ĉifrita antaŭ sendo, tiel ke nur la adresato povos legi ĝin, kaj ke li estos certa, ke vi ja estas ties aŭtoro.",MESSAGE:"Mesaĝo",MESSAGE_HELP:"Enhavo de la mesaĝo",CONTENT_CONFIRMATION:"La enhavo de la mesaĝo estas malplena.<br/><br/>Ĉu vi volas tamen sendi la mesaĝon?"},VIEW:{TITLE:"Mesaĝo",SENDER:"Sendita de",RECIPIENT:"Sendita al",NO_CONTENT:"Mesaĝo malplena",DELETE:"Forigi la mesaĝon"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi mesaĝon</b>?<br/><br/>Tiu ago estas neinversigebla.",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi ĉiujn mesaĝojn</b>?<br/><br/>Tiu ago estas neinversigebla.",MARK_ALL_AS_READ:"Ĉu vi certas, ke vi volas <b>marki ĉiujn mesaĝojn legitaj</b>?",USER_HAS_NO_PROFILE:"Tiu identeco havas neniun profilon Cesium+. Eblas ke ĝi ne uzas la krom-programon Cesium+, kaj <b>do ne legos vian mesaĝon</b>.<br/><br/>Ĉu vi certas, ke vi volas tamen <b>daŭrigi</b>?"},INFO:{MESSAGE_REMOVED:"Mesaĝo forigita",All_MESSAGE_REMOVED:"Ĉiuj mesaĝoj estis forigitaj",MESSAGE_SENT:"Mesaĝo sendita"},ERROR:{SEND_MSG_FAILED:"Eraro dum la sendo de la mesaĝo.",LOAD_MESSAGES_FAILED:"Eraro dum la ricevo de la mesaĝoj.",LOAD_MESSAGE_FAILED:"Eraro dum la ricevo de la mesaĝo.",MESSAGE_NOT_READABLE:"Legado de la mesaĝo neebla.",USER_NOT_RECIPIENT:"Vi ne estas la adresato de tiu ĉi mesaĝo: malĉifrado neebla.",NOT_AUTHENTICATED_MESSAGE:"La aŭtenteco de la mesaĝo estas dubinda aŭ ties enhavo estas difektita.",REMOVE_MESSAGE_FAILED:"Malsukceso por forigi la mesaĝon",MESSAGE_CONTENT_TOO_LONG:"Signaro tro longa ({{maxLength}} signoj maksimume).",MARK_AS_READ_FAILED:"Neeblas marki la mesaĝon 'legita'.",LOAD_NOTIFICATIONS_FAILED:"Eraro dum la ricevo de la mesaĝo-avizoj.",REMOVE_All_MESSAGES_FAILED:"Eraro dum la forigo de ĉiuj mesaĝoj.",MARK_ALL_AS_READ_FAILED:"Eraro por marki la mesaĝojn legitaj.",RECIPIENT_IS_MANDATORY:"La adresato estas deviga."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero de bloko, haketo, publika ŝlosilo, ktp.",POPOVER_FILTER_TITLE:"Filtriloj",HEADER_MEDIAN_TIME:"Dato / Horo",HEADER_BLOCK:"Bloko #",HEADER_ISSUER:"Nodo elsendinta",BTN_LAST:"Lastaj blokoj",DISPLAY_QUERY:"Afiŝi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Eniroj/eliroj de membroj',EXISTING_TRANSACTION:'<b class="ion-card"></b> Kun spezoj',PERIOD:'<b class="ion-clock"></b> Inter <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) kaj <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Kalkulita de <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Spezoj koncernantaj <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Eraro dum la serĉado de la blokoj."}},GROUP:{GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",CREATED_TIME:"Kreita {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitoj"},LOOKUP:{TITLE:"Grupoj",SEARCH_HELP:"Nomo de grupo, vortoj, loko, ktp.",LAST_RESULTS_LIST:"Novaj grupoj:",OPEN_RESULTS_LIST:"Malfermitaj grupoj:",MANAGED_RESULTS_LIST:"Fermitaj grupoj:",BTN_LAST:"Novaj grupoj",BTN_NEW:"Mi aldonas grupon"},TYPE:{TITLE:"Nova grupo",SELECT_TYPE:"Tipo de grupo:",OPEN_GROUP:"Malfermita grupo",OPEN_GROUP_HELP:"Malfermita grupo estas alirebla de iu ajn membro de la mono.",MANAGED_GROUP:"Administrita grupo",MANAGED_GROUP_HELP:"Administrita grupo estas mastrumata de administrantoj kaj moderigantoj, kiuj povas akcepti, rifuzi aŭ eksigi membron.",ENUM:{OPEN:"Malfermita grupo",MANAGED:"Administrita grupo"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Kromaĵoj",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi grupon?<br/><br/>Tiu ago estas neinversigebla."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nova grupo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo"},ERROR:{SEARCH_GROUPS_FAILED:"Malsukceso por traserĉi grupojn",REMOVE_RECORD_FAILED:"Malsukceso por forigi la grupon"},INFO:{RECORD_REMOVED:"Grupo forigita"}},REGISTRY:{CATEGORY:"Ĉefa agado",GENERAL_DIVIDER:"Ĝeneralaj informoj",LOCATION_DIVIDER:"Adreso",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj kaj retejo",TECHNICAL_DIVIDER:"Teknikaj informoj",BTN_SHOW_WOT:"Personoj",BTN_SHOW_WOT_HELP:"Traserĉi personojn",BTN_SHOW_PAGES:"Paĝoj",BTN_SHOW_PAGES_HELP:"Traserĉi paĝojn",BTN_NEW:"Krei paĝon",MY_PAGES:"Miaj paĝoj",NO_PAGE:"Neniu paĝo",SEARCH:{TITLE:"Paĝoj",SEARCH_HELP:"Kio, Kiu: restoracio, Ĉe Marcelo, ...",BTN_ADD:"Nova",BTN_LAST_RECORDS:"Freŝdataj paĝoj",BTN_ADVANCED_SEARCH:"Sperta serĉado",BTN_OPTIONS:"Sperta serĉado",TYPE:"Tipo de paĝo",LOCATION_HELP:"Kie: Poŝto-kodo, Urbo",RESULTS:"Rezultoj",RESULT_COUNT_LOCATION:"{{count}} rezulto{{count>0?'j':''}}, proksime de {{location}}",RESULT_COUNT:"{{count}} rezulto{{count>0?'j':''}}",LAST_RECORDS:"Freŝdataj paĝoj",LAST_RECORD_COUNT_LOCATION:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}, proksime de {{location}}",LAST_RECORD_COUNT:"{{count}} paĝo{{count>0?'j':''}} freŝdata{{count>0?'j':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Spertaj kromaĵoj?"}},VIEW:{TITLE:"Adresaro",CATEGORY:"Ĉefa agado:",LOCATION:"Adreso:",MENU_TITLE:"Kromaĵoj",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Ĉu vi certas, ke vi volas forigi tiun ĉi paĝon?<br/><br/>Tiu ago estas neinversigebla."},TYPE:{TITLE:"Tipoj",SELECT_TYPE:"Tipo de paĝo:",ENUM:{SHOP:"Loka komerco",COMPANY:"Entrepreno",ASSOCIATION:"Asocio",INSTITUTION:"Institucio"}},EDIT:{TITLE:"Redaktado",TITLE_NEW:"Nova paĝo",RECORD_TYPE:"Tipo de paĝo",RECORD_TITLE:"Nomo",RECORD_TITLE_HELP:"Nomo",RECORD_DESCRIPTION:"Priskribo",RECORD_DESCRIPTION_HELP:"Priskribo de la agado",RECORD_ADDRESS:"Strato",RECORD_ADDRESS_HELP:"Strato, konstruaĵo...",RECORD_CITY:"Urbo",RECORD_CITY_HELP:"Urbo",RECORD_SOCIAL_NETWORKS:"Sociaj retoj kaj retejo",RECORD_PUBKEY:"Publika ŝlosilo",RECORD_PUBKEY_HELP:"Publika ŝlosilo por ricevi la pagojn"},WALLET:{REGISTRY_DIVIDER:"Paĝoj",REGISTRY_HELP:"La paĝoj listigas agadojn, kiuj akceptas la liberan monon aŭ helpas ĝin: komercoj, entreprenoj, asocioj, institucioj."},ERROR:{LOAD_CATEGORY_FAILED:"Malsukceso por ŝarĝi la liston de la agadoj",LOAD_RECORD_FAILED:"Eraro dum la ŝarĝado de la paĝo",LOOKUP_RECORDS_FAILED:"Eraro dum la serĉado",REMOVE_RECORD_FAILED:"Malsukceso por forigi la paĝon",SAVE_RECORD_FAILED:"Eraro dum la konservado",RECORD_NOT_EXISTS:"Paĝo neekzistanta",GEO_LOCATION_NOT_FOUND:"Urbo aŭ poŝto-kodo ne trovita"},INFO:{RECORD_REMOVED:"Paĝo forigita",RECORD_SAVED:"Paĝo konservita"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Temas pri kromaj datenoj, stokitaj ekster la mon-reto.",NO_PROFILE_DEFINED:"Neniu profilo tajpita",BTN_ADD:"Tajpi mian profilon",BTN_EDIT:"Redakti mian profilon",BTN_DELETE:"Forigi mian profilon",BTN_REORDER:"Reordigi",UID:"Pseŭdonimo",TITLE:"Familia nomo, Persona nomo",TITLE_HELP:"Familia nomo, Persona nomo",DESCRIPTION:"Pri mi",DESCRIPTION_HELP:"Pri mi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Ĝeneralaj informoj",SOCIAL_NETWORKS_DIVIDER:"Sociaj retoj, retejoj",TECHNICAL_DIVIDER:"Teknikaj informoj",MODAL_AVATAR:{TITLE:"Profil-foto",SELECT_FILE_HELP:"Bonvolu <b>elekti bildo-dosieron</b>, alklakante la ĉi-suban butonon:",BTN_SELECT_FILE:"Elekti foton",RESIZE_HELP:"<b>Rekadri la bildon</b>, laŭbezone. Pluigi klakon sur la bildo ebligas movi ĝin. Alklaku la zonon malsupre maldekstre por zomi.",RESULT_HELP:"<b>Jen la rezulto</b> tiel videbla ĉe via profilo:"},CONFIRM:{DELETE:"Ĉu vi certas, ke vi volas <b>forigi vian profilon Cesium+ ?</b><br/><br/>Tiu ago estas neinversigebla."},ERROR:{REMOVE_PROFILE_FAILED:"Malsukceso por forigi la profilon",LOAD_PROFILE_FAILED:"Malsukceso por ŝarĝi la profilon de la uzanto.",SAVE_PROFILE_FAILED:"Eraro dum la konservado",INVALID_SOCIAL_NETWORK_FORMAT:"Strukturo ne rekonata: bonvolu tajpi validan adreson.<br/><br/>Ezemploj:<ul><li>- Facebook-paĝo (https://www.facebook.com/uzanto)</li><li>- Retpaĝo (http://www.miaretejo.net)</li><li>- Retadreso (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Eraro dum la reformatigo de la bildo"},INFO:{PROFILE_REMOVED:"Profilo forigita",PROFILE_SAVED:"Profilo konservita"},HELP:{WARNING_PUBLIC_DATA:"La informoj afiŝitaj en via profilo <b>estas publikaj</b>: videblaj inkluzive de la personoj <b>ne konektitaj</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovi mian adreson surmape",USE_GEO_POINT:"Aperi sur la mapoj {{'COMMON.APP_NAME'|translate}}?",LOADING_LOCATION:"Serĉado de la adreso...",LOCATION_DIVIDER:"Adreso",ADDRESS:"Strato",ADDRESS_HELP:"Strato, adres-aldonaĵo...",CITY:"Urbo",CITY_HELP:"Poŝto-kodo, Urbo, Lando",DISTANCE:"Maksimuma distanco ĉirkaŭ la urbo",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Poŝto-kodo, Urbo",PROFILE_POSITION:"Loko de la profilo",MODAL:{TITLE:"Serĉado de la adreso",SEARCH_HELP:"Urbo, Poŝto-kodo, Lando",ALTERNATIVE_RESULT_DIVIDER:"Alternativaj rezultoj por <b>{{address}}</b>:",POSITION:"Lat/Lon: {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Deviga kampo (ĉar strato estas tajpita)",REQUIRED_FOR_LOCATION:"Deviga kampo por aperi sur la mapo",INVALID_FOR_LOCATION:"Adreso nekonata",GEO_LOCATION_FAILED:"Neeblas ricevi vian lokiĝon. Bonvolu uzi la serĉo-butonon.",ADDRESS_LOCATION_FAILED:"Neeblas ricevi la lokon per la adreso"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Retaj servoj",SUBSCRIPTION_DIVIDER_HELP:"La retaj servoj proponas pliajn nedevigajn servojn, delegitajn al aliulo.",BTN_ADD:"Aldoni servon",BTN_EDIT:"Mastrumi miajn servojn",NO_SUBSCRIPTION:"Neniu servo uzata",SUBSCRIPTION_COUNT:"Servoj / Abonoj",EDIT:{TITLE:"Retaj servoj",HELP_TEXT:"Mastrumu ĉi tie viajn abonojn kaj aliajn retajn servojn",PROVIDER:"Provizanto:"},TYPE:{ENUM:{EMAIL:"Ricevi la avizojn per retmesaĝo"}},CONFIRM:{DELETE_SUBSCRIPTION:"Ĉu vi certas, ke vi volas <b>forigi tiun abonon</b>?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Eraro dum la ŝarĝo de la retaj servoj",ADD_SUBSCRIPTION_FAILED:"Malsukceso por sendi la abonon",UPDATE_SUBSCRIPTION_FAILED:"Malsukceso por ĝisdatigi la abonon",DELETE_SUBSCRIPTION_FAILED:"Eraro dum la forigo de la abono"},MODAL_EMAIL:{TITLE:"Avizo per retmesaĝo",HELP:"Plenigu tiun ĉi formularon por <b>esti avizita per retmesaĝo</b> pri la okazaĵoj ĉe via konto.<br/>Via retadreso estos ĉifrita por esti videbla nur de la servo-provizanto.",EMAIL_LABEL:"Via retadreso:",EMAIL_HELP:"johano.stelaro@esperanto.org",FREQUENCY_LABEL:"Periodo de la avizoj:",FREQUENCY_DAILY:"Ĉiutaga",FREQUENCY_WEEKLY:"Ĉiusemajna",PROVIDER:"Servo-provizanto:"}},DOCUMENT:{HASH:"Haketo: ",LOOKUP:{TITLE:"Serĉado de dokumentoj",BTN_ACTIONS:"Agoj",SEARCH_HELP:"Sendanto:AAA*, tempo:1508406169",LAST_DOCUMENTS:"Lastaj dokumentoj",SHOW_QUERY:"Vidi la informpeton",HIDE_QUERY:"Kaŝi la informpeton",HEADER_TIME:"Dato/Horo",HEADER_ISSUER:"Sendanto",HEADER_RECIPIENT:"Ricevonto",READ:"Legita",BTN_REMOVE:"Forigi tiun ĉi dokumenton",POPOVER_ACTIONS:{TITLE:"Agoj",REMOVE_ALL:"Forigi tiujn ĉi dokumentojn..."}},INFO:{REMOVED:"Dokumento forigita"},CONFIRM:{REMOVE:"Ĉu vi certas, ke vi volas <b>forigi tiun ĉi dokumenton</b>?",REMOVE_ALL:"Ĉu vi certas, ke vi volas <b>forigi tiujn ĉi dokumentojn</b>?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Eraro dum la serĉado de dokumentoj",REMOVE_FAILED:"Eraro dum la forigo de la dokumento",REMOVE_ALL_FAILED:"Eraro dum la forigo de la dokumentoj"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profiloj, avizoj, privataj mesaĝoj",ENABLE_TOGGLE:"Aktivigi la krom-programon?",ENABLE_REMOTE_STORAGE:"Aktivigi la foran stokadon?",ENABLE_REMOTE_STORAGE_HELP:"Ebligas stoki (ĉifrite) viajn parametrojn ĉe la nodoj Cesium+",ENABLE_MESSAGE_TOGGLE:"Aktivigi la privatajn mesaĝojn?",PEER:"Adreso de la daten-nodo",POPUP_PEER:{TITLE:"Daten-nodo",HELP:"Tajpu la adreson de la nodo, kiun vi volas uzi:",PEER_HELP:"servo.domajno.com:port"},NOTIFICATIONS:{DIVIDER:"Avizoj",HELP_TEXT:"Aktivigu la avizo-tipojn, kiujn vi deziras ricevi:",ENABLE_TX_SENT:"Avizi pri la <b>senditaj pagoj</b>?",ENABLE_TX_RECEIVED:"Avizi pri la <b>ricevitaj pagoj</b>?",ENABLE_CERT_SENT:"Avizi pri la <b>senditaj atestaĵoj</b>?",ENABLE_CERT_RECEIVED:"Avizi pri <b>la ricevitaj atestaĵoj</b>?",ENABLE_HTML5_NOTIFICATION:"Anonci ĉiun novan avizon?",ENABLE_HTML5_NOTIFICATION_HELP:"Malfermas fenestreton por ĉiu nova avizo."},CONFIRM:{ASK_ENABLE_TITLE:"Kromaj funkcioj",ASK_ENABLE:'La krom-programo Cesium+ estas <b>malaktivigita</b> ĉe viaj parametroj, kio senaktivigas la funkciojn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profiloj Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Avizoj</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privataj mesaĝoj</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Mapoj, ktp.</b>.</ul><br/><b>Ĉu vi deziras reaktivigi</b> la krom-programon?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Adresito estas deviga por la ĉifrado."}},EVENT:{NODE_STARTED:"Via nodo ES API <b>{{params[0]}}</b> ekis",NODE_BMA_DOWN:"La nodo <b>{{params[0]}}:{{params[1]}}</b> (uzata de via nodo ES API) estas <b>neatingebla</b>.",NODE_BMA_UP:"La nodo <b>{{params[0]}}:{{params[1]}}</b> estas denove alirebla.",MEMBER_JOIN:"Vi estas nun <b>membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Vi <b>ne plu estas membro</b> de la mono <b>{{params[0]}}</b>, pro ne revalidiĝo aŭ pro manko da atestaĵoj.",MEMBER_REVOKE:"La nuligo de via konto efektiviĝis. Ĝi ne plu povos esti membro-konto de la mono <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La revalidiĝo de via aliĝo al la mono <b>{{params[0]}}</b> estis <b>ricevita</b>.",TX_SENT:"Via <b>pago</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",TX_SENT_MULTI:"Via <b>pago</b> al <b>{{params[1]}}</b> efektiviĝis.",TX_RECEIVED:"Vi <b>ricevis pagon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vi <b>ricevis pagon</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Via <b>atestado</b> al <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> efektiviĝis.",CERT_RECEIVED:"Vi <b>ricevis atestaĵon</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> komentis vian anoncon: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian komenton pri via anonco: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> respondis al via komento pri la anonco: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> modifis sian respondon al via komento pri la anonco: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Daten-nodo <b>{{old}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Ĉu vi volas provizore uzi la daten-nodon <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:'Daten-nodo <b>{{server}}</b> neatingebla aŭ adreso nevalida.<br/><br/>Cesium daŭrigos funkcii, <b>sen la krom-programo Cesium+</b> (uzanto-profiloj, privataj mesaĝoj, mapoj kaj grafikoj)<br/><br/>Kontrolu vian ret-konekton, aŭ ŝanĝu daten-nodon ĉe la <a class="positive" ng-click="doQuickFix(\'settings\')">parametroj de la krom-programo</a>.',ES_MAX_UPLOAD_BODY_SIZE:"La kvanto de datenoj sendotaj superas la limon fiksitan de la servilo.<br/>Bonvolu reprovi post, ekzemple, forigo de fotoj."}}),e.translations("es-ES",{COMMON:{CATEGORY:"Categoría",CATEGORIES:"Categorías",CATEGORY_SEARCH_HELP:"Búsqueda",LAST_MODIFICATION_DATE:"Actualización el",SUBMIT_BY:"Sometido por",BTN_PUBLISH:"Publicar",BTN_PICTURE_DELETE:"Suprimir",BTN_PICTURE_FAVORISE:"Principal",BTN_PICTURE_ROTATE:"Girar",BTN_ADD_PICTURE:"Añadir una foto",NOTIFICATIONS:{TITLE:"Notificaciónes",MARK_ALL_AS_READ:"Marcar todo como leído",NO_RESULT:"Ningúna notificación",SHOW_ALL:"Ver todo",LOAD_NOTIFICATIONS_FAILED:"Fracaso en la carga de las notificaciónes"}},MENU:{REGISTRY:"Profesionales",USER_PROFILE:"Mi perfil",MESSAGES:"Mensajes",NOTIFICATIONS:"Notificaciónes",INVITATIONS:"Invitaciónes"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Cuenta para una organización",ORGANIZATION_ACCOUNT_HELP:"Si representa una empresa, una asociación, etc.<br/>Ningún dividendo universal será creído por esta cuenta."},EVENT:{MEMBER_WITHOUT_PROFILE:'Para obtener sus certificaciónes más rapidamente, completa <a ui-sref="app.edit_profile">su perfil usuario</a>. Los miembros concederán más fácilmente su confianza a una identidad verificable.'},ERROR:{WS_CONNECTION_FAILED:"Cesium no puede recibir las notificaciónes, a causa de un error técnico (conexión al nodo de datos Cesium+).<br/><br/>Si el problema persiste, por favor <b>elige un otro nodo de datos</b> en las configuraciónes Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Sugerir identidad a certificar...",BTN_ASK_CERTIFICATIONS_DOTS:"Solicitar otros miembros a certificarme…",BTN_ASK_CERTIFICATION:"Solicitar una certificación",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Sugerir certificaciónes",HELP:"Selectionar sus sugerencias"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Solicitar certificaciónes",HELP:"Selectionar los destinatarios"},SEARCH:{DIVIDER_PROFILE:"Cuentas",DIVIDER_PAGE:"Páginas",DIVIDER_GROUP:"Grupos"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Está usted segura/o querer <b>mandar estas sugerencia de certificatión</b> ?",ASK_CERTIFICATION:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> ?",ASK_CERTIFICATIONS:"Está usted segura/o querer <b>mandar una solicitud de certificación</b> a estas personas ?"}},INVITATION:{TITLE:"Invitaciónes",NO_RESULT:"Ningúna invitación en espera",BTN_DELETE_ALL:"Suprimir todas las invitaciónes",BTN_DELETE:"Suprimir la invitación",BTN_NEW_INVITATION:"Nueva invitación",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> solicita su certificación',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> él es sugerido por certificación',SUGGESTED_BY:'Sugerencia mandada por <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitaciónes"},LIST:{TITLE:"Invitaciónes"},NEW:{TITLE:"Nueva invitación",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinatarios de la invitación",RECIPIENTS_MODAL_TITLE:"Destinatarios",RECIPIENTS_MODAL_HELP:"Por favor, elige los destinatarios :",SUGGESTION_IDENTITIES:"Sugerencia de certificación",SUGGESTION_IDENTITIES_HELP:"Certificaciónes a sugerir",SUGGESTION_IDENTITIES_MODAL_TITLE:"Sugerencias",SUGGESTION_IDENTITIES_MODAL_HELP:"Por favor, elige sus sugerencias :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La supresión de las invitaciónes es una <b>operación ireversible</b>.<br/><br/><b>Está usted segura/o </b> querer continuar ?",SEND_INVITATIONS_TO_CERTIFY:"Está usted segura/o querer <b>mandar esta invitación a certificar</b> ?"},INFO:{INVITATION_SENT:"Invitación mandada"},ERROR:{LOAD_INVITATIONS_FAILED:"Fracaso en la carga de las invitaciónes",REMOVE_INVITATION_FAILED:"Fracaso durante la supresión de la invitación",REMOVE_ALL_INVITATIONS_FAILED:"Fracaso durante la supresión de las invitaciónes",SEND_INVITATION_FAILED:"Fracaso durante el envío de la invitación",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitación ilegible (formato desconocido)</span> - mandada por <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Comentarios",SHOW_MORE_COMMENTS:"Visualizar los comentarios anteriores",COMMENT_HELP:"Su comentario, preguntas, etc.",COMMENT_HELP_REPLY_TO:"Su repuesta…",BTN_SEND:"Mandar",POPOVER_SHARE_TITLE:"Mensaje #{{number}}",REPLY:"Responder",REPLY_TO:"Repuesta a :",REPLY_TO_LINK:"En repuesta a ",REPLY_TO_DELETED_COMMENT:"En repuesta a un comentario suprimido",REPLY_COUNT:"{{replyCount}} repuestas",DELETED_COMMENT:"Comentario suprimido",ERROR:{FAILED_SAVE_COMMENT:"Fracaso durante el respaldo del comentario",FAILED_REMOVE_COMMENT:"Fracaso durante la supresión del comentario"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Responder",BTN_COMPOSE:"Nuevo mensaje",BTN_WRITE:"Escribir",NO_MESSAGE_INBOX:"Ningun mensaje recibido",NO_MESSAGE_OUTBOX:"Ningun mensaje mandado",NOTIFICATIONS:{TITLE:"Mensajes",MESSAGE_RECEIVED:"Ha <b>recibido un mensaje</b><br/>de"},LIST:{INBOX:"Bandeja de entrada",OUTBOX:"Mensajes mandados",LAST_INBOX:"Nuevos mensajes",LAST_OUTBOX:"Mensajes enviados",BTN_LAST_MESSAGES:"Mensajes recientes",TITLE:"Mensajes",SEARCH_HELP:"Buscar en mensajes",POPOVER_ACTIONS:{TITLE:"Opciónes",DELETE_ALL:"Suprimir todos los mensajes"}},COMPOSE:{TITLE:"Nuevo mensaje",TITLE_REPLY:"Responder",SUB_TITLE:"Nuevo mensaje",TO:"A",OBJECT:"Objeto",OBJECT_HELP:"Objeto",ENCRYPTED_HELP:"Por favor, nota que este mensaje será cifrado antes envío, a fin que solo el destinatario pueda leerlo, y que esté asegurado que usted esté bien su autor.",MESSAGE:"Mensaje",MESSAGE_HELP:"Contenido del mensaje",CONTENT_CONFIRMATION:"El contenido del mensaje es vacío.<br/><br/>Sin embargo, quiere mandar el mensaje ?"},VIEW:{TITLE:"Mensaje",SENDER:"Mandado por",RECIPIENT:"Mandado a",NO_CONTENT:"Mensaje vacío",DELETE:"Eliminar el mensaje"},CONFIRM:{REMOVE:"Está usted segura/o querer <b>suprimir este mensaje</b> ?<br/><br/>Esta operación es ireversible.",REMOVE_ALL:"Está usted segura/o querer <b>suprimir todos los mensajes</b> ?<br/><br/>Esta operación es ireversible.",MARK_ALL_AS_READ:"Está usted segura/o querer <b>marcar todos los mensajes como leído</b> ?",USER_HAS_NO_PROFILE:"Esta identidad no tiene ningún perfil Cesium+. Se puede que no utilice la extensión Cesium+, y <b>así no consultará su mensaje</b>.<br/><br/>Está usted segura/o querer <b>continuar</b> a pesar de todo ?"},INFO:{MESSAGE_REMOVED:"Mensaje suprimido",All_MESSAGE_REMOVED:"Todos los mensajes fueron suprimido",MESSAGE_SENT:"Mensaje mandado"},ERROR:{SEND_MSG_FAILED:"Fracaso durante el envío del mensaje.",LOAD_MESSAGES_FAILED:"Fracaso durante la recuperación de los mensajes.",LOAD_MESSAGE_FAILED:"Fracaso durante la recuperación del mensaje.",MESSAGE_NOT_READABLE:"Lectura del mensaje imposible.",USER_NOT_RECIPIENT:"No esta el destinatario de este mensaje : deciframiento imposible.",NOT_AUTHENTICATED_MESSAGE:"La autenticidad del mensaje es dudosa o su contenido es corrupto.",REMOVE_MESSAGE_FAILED:"Fracaso en la supresión del mensaje",MESSAGE_CONTENT_TOO_LONG:"Valor demasiado largo ({{maxLength}} carácteres max).",MARK_AS_READ_FAILED:"Imposible marcar el mensaje como 'leído'.",LOAD_NOTIFICATIONS_FAILED:"Fracaso durante la recuperación de las notificaciónes de mensajes.",REMOVE_All_MESSAGES_FAILED:"Fracaso durante la supresión de todos los mensajes.",MARK_ALL_AS_READ_FAILED:"Fracaso durante el marcaje de los mensajes como leído.",RECIPIENT_IS_MANDATORY:"El destinatario es obligatorio."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Número de bloque, hash, llave pública, etc.",POPOVER_FILTER_TITLE:"Filtros",HEADER_MEDIAN_TIME:"Fecha / Hora",HEADER_BLOCK:"Bloque #",HEADER_ISSUER:"Nodo emisor",BTN_LAST:"últimos bloques",DISPLAY_QUERY:"Mostrar la consulta",HIDE_QUERY:"Ocultar la consulta",TX_SEARCH_FILTER:{MEMBER_FLOWS:"Entradas/salidas de miembros",EXISTING_TRANSACTION:"Con transacciones",PERIOD:'<b class="ion-clock"></b> Entre el <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) y el <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculado por <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transacciones que implican <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Fracaso en la búsqueda de los bloques."}},GROUP:{GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",CREATED_TIME:"Creada {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitaciónes"},LOOKUP:{TITLE:"Grupos",SEARCH_HELP:"Nombre de grupo, palabras , lugar, etc.",LAST_RESULTS_LIST:"Nuevos grupos :",OPEN_RESULTS_LIST:"Grupos abiertos :",MANAGED_RESULTS_LIST:"Grupos cerrados :",BTN_LAST:"Nuevos grupos",BTN_NEW:"Añado un grupo"},TYPE:{TITLE:"Nuevo grupo",SELECT_TYPE:"Tipo de grupo :",OPEN_GROUP:"Grupo abierto",OPEN_GROUP_HELP:"Un grupo abierto es accesible por cualquier miembro de la moneda.",MANAGED_GROUP:"Grupo administrado",MANAGED_GROUP_HELP:"un grupo administrado es gestionado por administradores y moderadores, que pueden aceptar, rechazar o excluir un miembro en su seno.",ENUM:{OPEN:"Grupo abierto",MANAGED:"Grupo administrado"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opciones",REMOVE_CONFIRMATION:"Seguro que quieres eliminar este grupo?<br/><br/>Esta operación es irreversible."},EDIT:{TITLE:"Grupo",TITLE_NEW:"Nuevo grupo",RECORD_TITLE:"Título",RECORD_TITLE_HELP:"Título",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción"},ERROR:{SEARCH_GROUPS_FAILED:"Fracaso en la búsqueda de grupos",REMOVE_RECORD_FAILED:"Error al eliminar el grupo"},INFO:{RECORD_REMOVED:"Grupo eliminado"}},REGISTRY:{CATEGORY:"Actividad principal",GENERAL_DIVIDER:"Informaciónes generales",LOCATION_DIVIDER:"Dirección",SOCIAL_NETWORKS_DIVIDER:"Redes sociales y sitio web",TECHNICAL_DIVIDER:"Informaciónes técnicas",BTN_SHOW_WOT:"Personas",BTN_SHOW_WOT_HELP:"Buscar personas",BTN_SHOW_PAGES:"Páginas",BTN_SHOW_PAGES_HELP:"Búsqueda de páginas",BTN_NEW:"Creer una página",MY_PAGES:"Mis páginas",NO_PAGE:"Sin página",SEARCH:{TITLE:"Páginas",SEARCH_HELP:"Qué, Quién : restaurante, Con Marcel, ...",BTN_ADD:"Nuevo",BTN_LAST_RECORDS:"Páginas recientes",BTN_ADVANCED_SEARCH:"búsqueda avanzada",BTN_OPTIONS:"Búsqueda avanzada",TYPE:"Tipo de página",LOCATION_HELP:"Ciudad",RESULTS:"Resultados",RESULT_COUNT_LOCATION:"{{count}} Resultado{{count>0?'s':''}}, cerca de {{location}}",RESULT_COUNT:"{{count}} resultado{{count>0?'s':''}}",LAST_RECORDS:"Páginas recientes",LAST_RECORD_COUNT_LOCATION:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}, cerca de {{location}}",LAST_RECORD_COUNT:"{{count}} página{{count>0?'s':''}} reciente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opciones avanzadas?"}},VIEW:{TITLE:"Anuario",CATEGORY:"Actividad principal :",LOCATION:"Dirección :",MENU_TITLE:"Opciónes",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Está usted segura/o querer suprimir esta página ?<br/><br/>Esta operación es ireversible."},TYPE:{TITLE:"Nueva página",SELECT_TYPE:"Tipo de página :",ENUM:{SHOP:"Comercio local",COMPANY:"Empresa",ASSOCIATION:"Asociación",INSTITUTION:"Institución"}},EDIT:{TITLE:"Edición",TITLE_NEW:"Nueva página",RECORD_TYPE:"Tipo de página",RECORD_TITLE:"Nombre",RECORD_TITLE_HELP:"Nombre",RECORD_DESCRIPTION:"Descripción",RECORD_DESCRIPTION_HELP:"Descripción de la actividad",RECORD_ADDRESS:"Calle",RECORD_ADDRESS_HELP:"Calle, edificio...",RECORD_CITY:"Ciudad",RECORD_CITY_HELP:"Ciudad",RECORD_SOCIAL_NETWORKS:"Redes sociales y sitio web",RECORD_PUBKEY:"Llave pública",RECORD_PUBKEY_HELP:"Llave pública de recepción de los pagos"},WALLET:{REGISTRY_DIVIDER:"Páginas",REGISTRY_HELP:"Las páginas se refieren a actividades que aceptan dinero o lo favorecen: empresas, negocios, asociaciones, instituciones."},ERROR:{LOAD_CATEGORY_FAILED:"Fracaso en la carga de la lista de actividades",LOAD_RECORD_FAILED:"Fracaso durante la carga de la página",LOOKUP_RECORDS_FAILED:"Fracaso durante la ejecución de la búsqueda.",REMOVE_RECORD_FAILED:"Fracaso en la supresión de la página",SAVE_RECORD_FAILED:"Fracaso durante el respaldo",RECORD_NOT_EXISTS:"Página inexistente",GEO_LOCATION_NOT_FOUND:"Ciudad o código postal no encontrado"},INFO:{RECORD_REMOVED:"Página suprimida",RECORD_SAVED:"Página guardada"}},PROFILE:{PROFILE_DIVIDER:"Perfil Cesium+",PROFILE_DIVIDER_HELP:"Estos son datos auxiliares, almacenados fuera de la red monetaria.",NO_PROFILE_DEFINED:"Ningún perfil Cesium+",BTN_ADD:"Ingresar mi perfil",BTN_EDIT:"Editar mi perfil",BTN_DELETE:"Eliminar mi perfil",BTN_REORDER:"Reordenar",UID:"Seudónimo",TITLE:"Nombre, Apellido",TITLE_HELP:"Nombre, Apellido",DESCRIPTION:"A propósito de yo",DESCRIPTION_HELP:"A propósito de yo...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informaciónes generales",SOCIAL_NETWORKS_DIVIDER:"Redes sociales, sitios web",TECHNICAL_DIVIDER:"Informaciónes técnicas",MODAL_AVATAR:{TITLE:"Foto de perfil",SELECT_FILE_HELP:"Por favor, <b>elige un fichero imagen</b>, haciendo un clic sobre el botón por debajo :",BTN_SELECT_FILE:"Eligir una foto",RESIZE_HELP:"<b>Encuadra la imagen</b>, si es necesario. Un clic mantenido sobre la imagen permite desplazarla. Hace un clic sobre la zona abajo a la izquierda para hacer zoom.",RESULT_HELP:"<b>Aquí está el resultado</b> tal como está visible sobre su perfil :"},CONFIRM:{DELETE:"¿Estás seguro de que quieres <b>eliminar tu perfil Cesium+?</b><br/><br/>Esta operación es irreversible."},ERROR:{REMOVE_PROFILE_FAILED:"Error de eliminación de perfil",LOAD_PROFILE_FAILED:"Fracaso en la carga del perfil usuario.",SAVE_PROFILE_FAILED:"Fracaso durante el respaldo",INVALID_SOCIAL_NETWORK_FORMAT:"Formato no tomado en cuenta : por favor, indica una dirección válida.<br/><br/>Ejemplos :<ul><li>- Una página Facebook (https://www.facebook.com/user)</li><li>- Una página web (http://www.misitio.es)</li><li>- Una dirección email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fracaso durante el redimensionamiento de la imagen"},INFO:{PROFILE_REMOVED:"Perfil eliminado",PROFILE_SAVED:"Perfil respaldado"},HELP:{WARNING_PUBLIC_DATA:"Las informaciónes informadas en su perfil <b>están públicas</b> : visibles también por personas <b>no conectadas</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Actualizar desde la dirección",USE_GEO_POINT:"Aparecer en la tarjeta {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Encontrar la dirección ...",LOCATION_DIVIDER:"Dirección",ADDRESS:"Calle",ADDRESS_HELP:"Calle, complemento de dirección...",CITY:"Ciudad",CITY_HELP:"Ciudad, País",DISTANCE:"Distancia máxima alrededor de la ciudad",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Ciudad, País",PROFILE_POSITION:"Posición del perfil",MODAL:{TITLE:"Búsqueda de dirección",SEARCH_HELP:"Ciudad, País",ALTERNATIVE_RESULT_DIVIDER:"Resultados alternativos para <b>{{address}}</b> :",POSITION:"Latitud/Longitud : {{lat}} / {{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Requerido si una calle ha sido llenada",REQUIRED_FOR_LOCATION:"Campo obligatorio para aparecer en el mapa",INVALID_FOR_LOCATION:"Dirección desconocida",GEO_LOCATION_FAILED:"No se puede recuperar su ubicación Por favor usa el botón de búsqueda.",ADDRESS_LOCATION_FAILED:"No se puede recuperar la posición de la dirección."}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servicios en línea",SUBSCRIPTION_DIVIDER_HELP:"Los servicios en línea ofrecen servicios adicionales opcionales, delegados a un tercero.",BTN_ADD:"Agregar un servicio",BTN_EDIT:"Administrar mis servicios",NO_SUBSCRIPTION:"Ningún servicio definido",SUBSCRIPTION_COUNT:"Servicios / Suscripción",EDIT:{TITLE:"Servicios en línea",HELP_TEXT:"Gestione sus suscripciones y otros servicios en línea aquí",PROVIDER:"Proveedor:"},TYPE:{ENUM:{EMAIL:"Recibir notificaciones por correo electrónico"}},CONFIRM:{DELETE_SUBSCRIPTION:"Deseas <b>eliminar</b> esta suscripción ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Error al cargar servicios en línea",ADD_SUBSCRIPTION_FAILED:"Error al agregar suscripción",UPDATE_SUBSCRIPTION_FAILED:"Error durante la actualización de la suscripción",DELETE_SUBSCRIPTION_FAILED:"Error al eliminar la suscripción"},MODAL_EMAIL:{TITLE:"Notificación por correo electrónico",HELP:"Rellene este formulario para <b>ser notificado por correo electrónico</b> de los eventos de su cuenta. <br/> Su dirección de correo electrónico se cifrará únicamente para que sea visible para el proveedor de servicios.",EMAIL_LABEL:"Tu correo electrónico :",EMAIL_HELP:"carlos@dominio.com",FREQUENCY_LABEL:"Frecuencia de las notificaciones :",FREQUENCY_DAILY:"Diariamente",FREQUENCY_WEEKLY:"Semanal",PROVIDER:"Proveedor de servicio :"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Perfiles, notificaciónes, mensajes privados",ENABLE_TOGGLE:"Activar la extensión ?",ENABLE_MESSAGE_TOGGLE:"Activar los mensajes privados ?",ENABLE_SETTINGS_TOGGLE:"Activar el almacenamiento a distancia de las configuraciónes ?",PEER:"Dirección del nodo de datos",POPUP_PEER:{TITLE:"Nodo de datos",HELP:"Ingresa la dirección del nodo que quiere utilizar :",PEER_HELP:"servidor.dominio.com:puerto"},NOTIFICATIONS:{DIVIDER:"Notificaciónes",HELP_TEXT:"Activa los tipos de notificaciónes que usted desea recibir :",ENABLE_TX_SENT:"Notificar la validación de los <b>pagos emitidos</b> ?",ENABLE_TX_RECEIVED:"Notificar la validación de los <b>pagos recibidos</b> ?",ENABLE_CERT_SENT:"Notificar la validación de las <b>certificaciónes emitidas</b> ?",ENABLE_CERT_RECEIVED:"Notificar la validación de las <b>certificaciónes recibidas</b> ?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuevas funcionalidades",ASK_ENABLE:'Nuevas funcionalidades son disponibles : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Perfiles Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notificaciónes</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Mensajes privados</b>.</ul><br/>Fueron <b>desactivadas</b> en sus configuraciones.<br/><br/><b>Quiere usted activarlas</b> ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario es obligatorio para el cifrado."}},EVENT:{NODE_STARTED:"Su nodo ES API <b>{{params[0]}}</b> es comenzado",NODE_BMA_DOWN:"El nodo <b>{{params[0]}}:{{params[1]}}</b> (utilizado por su nodo ES API) <b>no es localizable</b>.",NODE_BMA_UP:"El nodo <b>{{params[0]}}:{{params[1]}}</b> es de nuevo accesible.",MEMBER_JOIN:"Ahora usted está <b>miembro</b> de la moneda <b>{{params[0]}}</b> !",MEMBER_LEAVE:"No está <b>miembro</b> de la moneda <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Usted ya no es un miembro de la moneda <b>{{params[0]}}</b>, la falta de no renovación o la falta de certificaciones.",MEMBER_REVOKE:"La revocación de su cuenta se ha hecho. Puede que no sea un miembro de la cuenta en moneda <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Su renovación de adhesión a la moneda <b>{{params[0]}}</b> fue <b>tomado en cuenta</b>.",TX_SENT:"Su <b>pago</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuado.",TX_SENT_MULTI:"Su <b>pago</b> a <b>{{params[1]}}</b> fue efectuado.",TX_RECEIVED:"Ha <b>recibido un pago</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha <b>recibido un pago</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Su <b>certificación</b> a <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> fue efectuada.",CERT_RECEIVED:"Ha <b>recibido una certificación</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha comentado su referencia : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado su comentario sobre su referencia : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha contestado a su comentario sobre el referencia : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificado la repuesta a su comentario sobre el referencia : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo de datos <b> {{old}} </ b> dirección inalcanzable o no válida.<br/><br/>¿Desea utilizar temporalmente el nodo de datos <b>{{new}}</b>?"},ERROR:{ES_CONNECTION_ERROR:'Nodo de datos <b>{{server}}</b> dirección inalcanzable o no válida.<br/><br/>Cesium continuará funcionando, <b>sin la extensión Cesium+</b> (perfiles de usuario, mensajes privados), mapas y gráficos).<br/><br/>Verifique su conexión a Internet, o cambie el nodo de datos en <a class="positive" ng-click="doQuickFix(\'settings\')"> configuración de extensión </a>.',ES_MAX_UPLOAD_BODY_SIZE:"El volumen de datos a enviar excede el límite establecido por el servidor.<br/><br/>Por favor, inténtelo de nuevo después, por ejemplo, borrando fotos."}}),e.translations("fr-FR",{COMMON:{CATEGORY:"Catégorie",CATEGORIES:"Catégories",CATEGORY_SEARCH_HELP:"Recherche",LAST_MODIFICATION_DATE:"Mise à jour le",SUBMIT_BY:"Soumis par",BTN_PUBLISH:"Publier",BTN_PICTURE_DELETE:"Supprimer",BTN_PICTURE_FAVORISE:"Principale",BTN_PICTURE_ROTATE:"Tourner",BTN_ADD_PICTURE:"Ajouter une photo",NOTIFICATION:{TITLE:"Nouvelle notification | {{'COMMON.APP_NAME'|translate}}",HAS_UNREAD:"Vous avez {{count}} notification{{count>0?'s':''}} non lue{{count>0?'s':''}}"},NOTIFICATIONS:{TITLE:"Notifications",MARK_ALL_AS_READ:"Tout marquer comme lu",NO_RESULT:"Aucune notification",SHOW_ALL:"Voir tout",LOAD_NOTIFICATIONS_FAILED:"Erreur de chargement des notifications"}},MENU:{REGISTRY:"Pages",USER_PROFILE:"Mon profil",MESSAGES:"Messages",NOTIFICATIONS:"Notifications",INVITATIONS:"Invitations"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Compte pour une organisation",ORGANIZATION_ACCOUNT_HELP:"Si vous représentez une entreprise, une association, etc.<br/>Aucun dividende universel ne sera créé par ce compte."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vous pouvez <a ui-sref="app.edit_profile">saisir votre profil Cesium+</a> (optionnel) pour offrir une meilleure visibilité de votre compte. Ce profil sera stocké dans <b>un annuaire indépendant</b> de la monnaie, mais décentralisé.'},ERROR:{WS_CONNECTION_FAILED:"Cesium ne peut pas recevoir les notifications, à cause d'une erreur technique (connexion au noeud de données Cesium+).<br/><br/>Si le problème persiste, veuillez <b>choisir un autre noeud de données</b> dans les paramètres Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggérer des identités à certifier...",BTN_ASK_CERTIFICATIONS_DOTS:"Demander à des membres de me certifier...",BTN_ASK_CERTIFICATION:"Demander une certification",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggérer des certifications",HELP:"Sélectionner vos suggestions"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Demander des certifications",HELP:"Sélectionner les destinataires"},SEARCH:{DIVIDER_PROFILE:"Comptes",DIVIDER_PAGE:"Pages",DIVIDER_GROUP:"Groupes"},CONFIRM:{SUGGEST_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer ces suggestions de certification</b> ?",ASK_CERTIFICATION:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> ?",ASK_CERTIFICATIONS:"Êtes-vous sûr de vouloir <b>envoyer une demande de certification</b> à ces personnes ?"}},INVITATION:{TITLE:"Invitations",NO_RESULT:"Aucune invitation en attente",BTN_DELETE_ALL:"Supprimer toutes les invitations",BTN_DELETE:"Supprimer l'invitation",BTN_NEW_INVITATION:"Nouvelle invitation",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> demande votre certification',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> vous est suggéré pour certification',SUGGESTED_BY:'Suggestion envoyée par <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Invitations"},LIST:{TITLE:"Invitations"},NEW:{TITLE:"Nouvelle invitation",RECIPIENTS:"A",RECIPIENTS_HELP:"Destinataires de l'invitation",RECIPIENTS_MODAL_TITLE:"Destinataires",RECIPIENTS_MODAL_HELP:"Veuillez choisir les destinataires :",SUGGESTION_IDENTITIES:"Suggestions de certification",SUGGESTION_IDENTITIES_HELP:"Certifications à suggérer",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggestions",SUGGESTION_IDENTITIES_MODAL_HELP:"Veuillez choisir vos suggestions :"},CONFIRM:{DELETE_ALL_CONFIRMATION:"La suppression des invitations est une <b>opération irréversible</b>.<br/><br/><b>Êtes-vous sûr</b> de vouloir continuer ?",SEND_INVITATIONS_TO_CERTIFY:"Êtes-vous sûr de vouloir <b>envoyer cette invitation à certifier</b> ?"},INFO:{INVITATION_SENT:"Invitation envoyée"},ERROR:{LOAD_INVITATIONS_FAILED:"Échec du chargement des invitations",REMOVE_INVITATION_FAILED:"Erreur lors de la suppression de l'invitation",REMOVE_ALL_INVITATIONS_FAILED:"Erreur lors de la suppression des invitations",SEND_INVITATION_FAILED:"Erreur lors de l'envoi de l'invitation",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invitation illisible (format inconnu)</span> - envoyée par <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commentaires",SHOW_MORE_COMMENTS:"Afficher les commentaires précédents",COMMENT_HELP:"Votre commentaire, question, etc.",COMMENT_HELP_REPLY_TO:"Votre réponse...",BTN_SEND:"Envoyer",POPOVER_SHARE_TITLE:"Message #{{number}}",REPLY:"Répondre",REPLY_TO:"Réponse à :",REPLY_TO_LINK:"En réponse à ",REPLY_TO_DELETED_COMMENT:"En réponse à un commentaire supprimé",REPLY_COUNT:"{{replyCount}} réponses",DELETED_COMMENT:"Commentaire supprimé",ERROR:{FAILED_SAVE_COMMENT:"Erreur lors de la sauvegarde du commentaire",FAILED_REMOVE_COMMENT:"Erreur lors de la suppression du commentaire"}},MESSAGE:{REPLY_TITLE_PREFIX:"Rep: ",FORWARD_TITLE_PREFIX:"Tr: ",BTN_REPLY:"Répondre",BTN_COMPOSE:"Nouveau message",BTN_WRITE:"Ecrire",NO_MESSAGE_INBOX:"Aucun message reçu",NO_MESSAGE_OUTBOX:"Aucun message envoyé",NOTIFICATIONS:{TITLE:"Messages",MESSAGE_RECEIVED:"Vous avez <b>reçu un message</b><br/>de"},LIST:{INBOX:"Boite de réception",OUTBOX:"Messages envoyés",LAST_INBOX:"Nouveaux messages",LAST_OUTBOX:"Messages envoyés",BTN_LAST_MESSAGES:"Messages récents",TITLE:"Messages",SEARCH_HELP:"Recherche dans les messages",POPOVER_ACTIONS:{TITLE:"Options",DELETE_ALL:"Supprimer tous les messages"}},COMPOSE:{TITLE:"Nouveau message",TITLE_REPLY:"Répondre",SUB_TITLE:"Nouveau message",TO:"A",OBJECT:"Objet",OBJECT_HELP:"Objet",ENCRYPTED_HELP:"Veuillez noter que ce message sera chiffré avant envoi, afin que seul le destinataire puisse le lire, et qu'il soit assuré que vous soyez bien son auteur.",MESSAGE:"Message",MESSAGE_HELP:"Contenu du message",CONTENT_CONFIRMATION:"Le contenu du message est vide.<br/><br/>Voulez-vous néanmoins envoyer le message ?"},VIEW:{TITLE:"Message",SENDER:"Envoyé par",RECIPIENT:"Envoyé à",NO_CONTENT:"Message vide",DELETE:"Supprimer le message"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce message</b> ?<br/><br/>Cette opération est irréversible.",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer tous les messages</b> ?<br/><br/>Cette opération est irréversible.",MARK_ALL_AS_READ:"Êtes-vous sûr de vouloir <b>marquer tous les messages comme lus</b> ?",USER_HAS_NO_PROFILE:"Cette identité n'a aucun profil Cesium+. Il se peut qu'elle n'utilise pas l'extension Cesium+, et <b>ne consultera donc pas votre message</b>.<br/><br/>Êtes-vous sûr de vouloir <b>continuer</b> malgré tout ?"},INFO:{MESSAGE_REMOVED:"Message supprimé",All_MESSAGE_REMOVED:"Tous les messages ont été supprimés",MESSAGE_SENT:"Message envoyé"},ERROR:{SEND_MSG_FAILED:"Erreur lors de l'envoi du message.",LOAD_MESSAGES_FAILED:"Erreur lors de la récupération des messages.",LOAD_MESSAGE_FAILED:"Erreur lors de la récupération du message.",MESSAGE_NOT_READABLE:"Lecture du message impossible.",USER_NOT_RECIPIENT:"Vous n'êtes pas le destinataire de ce message : déchiffrement impossible.",NOT_AUTHENTICATED_MESSAGE:"L'authenticité du message est douteuse ou son contenu est corrompu.",REMOVE_MESSAGE_FAILED:"Erreur de suppression du message",MESSAGE_CONTENT_TOO_LONG:"Valeur trop longue ({{maxLength}} caractères max).",MARK_AS_READ_FAILED:"Impossible de marquer le message comme 'lu'.",LOAD_NOTIFICATIONS_FAILED:"Erreur lors de la récupération des notifications de messages.",REMOVE_All_MESSAGES_FAILED:"Erreur lors de la suppression de tous les messages.",MARK_ALL_AS_READ_FAILED:"Erreur lors du marquage des messages comme lus.",RECIPIENT_IS_MANDATORY:"Le destinataire est obligatoire."}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numéro de bloc, hash, clé publique, etc.",POPOVER_FILTER_TITLE:"Filtres",HEADER_MEDIAN_TIME:"Date / Heure",HEADER_BLOCK:"Bloc #",HEADER_ISSUER:"Noeud émetteur",BTN_LAST:"Derniers blocs",DISPLAY_QUERY:"Afficher la requête",HIDE_QUERY:"Masquer la requête",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Entrées/sorties de membres',EXISTING_TRANSACTION:'<b class="ion-card"></b> Avec transactions',PERIOD:'<b class="ion-clock"></b> Entre <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) et <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calculé par <b class="ion-key"></b> {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transactions concernant <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Erreur de la recherche des blocs."}},GROUP:{GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",CREATED_TIME:"Créé {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Invitations"},LOOKUP:{TITLE:"Groupes",SEARCH_HELP:"Nom de groupe, mots, lieu, etc.",LAST_RESULTS_LIST:"Nouveaux groupes :",OPEN_RESULTS_LIST:"Groupes ouverts :",MANAGED_RESULTS_LIST:"Groupes fermés :",BTN_LAST:"Nouveaux groupes",BTN_NEW:"J'ajoute un groupe"},TYPE:{TITLE:"Nouveau groupe",SELECT_TYPE:"Type de groupe :",OPEN_GROUP:"Groupe ouvert",OPEN_GROUP_HELP:"Un groupe ouvert est accessible par n'importe quel membre de la monnaie.",MANAGED_GROUP:"Groupe administré",MANAGED_GROUP_HELP:"un groupe administré est géré par des administrateurs et des modérateurs, qui peuvent accepter, refuser ou exclure un membre en son sein.",ENUM:{OPEN:"Groupe ouvert",MANAGED:"Groupe administré"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Options",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer ce groupe ?<br/><br/>Cette opération est irréversible."},EDIT:{TITLE:"Groupe",TITLE_NEW:"Nouveau groupe",RECORD_TITLE:"Titre",RECORD_TITLE_HELP:"Titre",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description"},ERROR:{SEARCH_GROUPS_FAILED:"Échec de la recherche de groupes",REMOVE_RECORD_FAILED:"Erreur de la suppression du groupe"},INFO:{RECORD_REMOVED:"Groupe supprimé"}},REGISTRY:{CATEGORY:"Activité principale",GENERAL_DIVIDER:"Informations générales",LOCATION_DIVIDER:"Adresse",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux et site web",TECHNICAL_DIVIDER:"Informations techniques",BTN_SHOW_WOT:"Personnes",BTN_SHOW_WOT_HELP:"Rechercher des personnes",BTN_SHOW_PAGES:"Pages",BTN_SHOW_PAGES_HELP:"Rechercher des pages",BTN_NEW:"Créer une page",MY_PAGES:"Mes pages",NO_PAGE:"Aucune page",SEARCH:{TITLE:"Pages",SEARCH_HELP:"Quoi, Qui : restaurant, Chez Marcel, ...",BTN_ADD:"Nouveau",BTN_LAST_RECORDS:"Pages récentes",BTN_ADVANCED_SEARCH:"Recherche avancée",BTN_OPTIONS:"Recherche avancée",TYPE:"Type de page",LOCATION_HELP:"Où : Code postal, Ville",RESULTS:"Résultats",RESULT_COUNT_LOCATION:"{{count}} résultat{{count>0?'s':''}}, près de {{location}}",RESULT_COUNT:"{{count}} résultat{{count>0?'s':''}}",LAST_RECORDS:"Pages récentes",LAST_RECORD_COUNT_LOCATION:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}, près de {{location}}",LAST_RECORD_COUNT:"{{count}} page{{count>0?'s':''}} récente{{count>0?'s':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Options avancées ?"}},VIEW:{TITLE:"Annuaire",CATEGORY:"Activité principale :",LOCATION:"Adresse :",MENU_TITLE:"Options",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Êtes-vous sûr de vouloir supprimer cette page ?<br/><br/>Cette opération est irréversible."},TYPE:{TITLE:"Types",SELECT_TYPE:"Type de page :",ENUM:{SHOP:"Commerce local",COMPANY:"Entreprise",ASSOCIATION:"Association",INSTITUTION:"Institution"}},EDIT:{TITLE:"Edition",TITLE_NEW:"Nouvelle page",RECORD_TYPE:"Type de page",RECORD_TITLE:"Nom",RECORD_TITLE_HELP:"Nom",RECORD_DESCRIPTION:"Description",RECORD_DESCRIPTION_HELP:"Description de l'activité",RECORD_ADDRESS:"Rue",RECORD_ADDRESS_HELP:"Rue, bâtiment...",RECORD_CITY:"Ville",RECORD_CITY_HELP:"Ville",RECORD_SOCIAL_NETWORKS:"Réseaux sociaux et site web",RECORD_PUBKEY:"Clé publique",RECORD_PUBKEY_HELP:"Clé publique de réception des paiements"},WALLET:{REGISTRY_DIVIDER:"Pages",REGISTRY_HELP:"Les pages référencent des activités acceptant la monnaie ou la favorisant : commerces, entreprises, associations, institutions."},ERROR:{LOAD_CATEGORY_FAILED:"Erreur de chargement de la liste des activités",LOAD_RECORD_FAILED:"Erreur lors du chargement de la page",LOOKUP_RECORDS_FAILED:"Erreur lors de l'exécution de la recherche",REMOVE_RECORD_FAILED:"Erreur de la suppression de la page",SAVE_RECORD_FAILED:"Erreur lors de la sauvegarde",RECORD_NOT_EXISTS:"Page inexistante",GEO_LOCATION_NOT_FOUND:"Ville ou code postal non trouvé"},INFO:{RECORD_REMOVED:"Page supprimée",RECORD_SAVED:"Page sauvegardée"}},PROFILE:{PROFILE_DIVIDER:"Profil Cesium+",PROFILE_DIVIDER_HELP:"Il s'agit de données annexes, stockées en dehors du réseau de la monnaie.",NO_PROFILE_DEFINED:"Aucun profil saisi",BTN_ADD:"Saisir mon profil",BTN_EDIT:"Editer mon profil",BTN_DELETE:"Supprimer mon profil",BTN_REORDER:"Réordonner",UID:"Pseudonyme",TITLE:"Nom, Prénom",TITLE_HELP:"Nom, Prénom",DESCRIPTION:"A propos de moi",DESCRIPTION_HELP:"A propos de moi...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informations générales",SOCIAL_NETWORKS_DIVIDER:"Réseaux sociaux, sites web",TECHNICAL_DIVIDER:"Informations techniques",MODAL_AVATAR:{TITLE:"Photo de profil",SELECT_FILE_HELP:"Veuillez <b>choisir un fichier image</b>, en cliquant sur le bouton ci-dessous :",BTN_SELECT_FILE:"Choisir une photo",RESIZE_HELP:"<b>Recadrez l'image</b>, si besoin. Un clic maintenu sur l'image permet de la déplacer. Cliquez sur la zone en bas à gauche pour zoomer.",RESULT_HELP:"<b>Voici le résultat</b> tel que visible sur votre profil :"},CONFIRM:{DELETE:"Êtes-vous sûr de vouloir <b>supprimer votre profil Cesium+ ?</b><br/><br/>Cette opération est irréversible."},ERROR:{REMOVE_PROFILE_FAILED:"Erreur de suppression du profil",LOAD_PROFILE_FAILED:"Erreur de chargement du profil utilisateur",SAVE_PROFILE_FAILED:"Erreur lors de la sauvegarde",INVALID_SOCIAL_NETWORK_FORMAT:"Format non pris en compte : veuillez indiquer une adresse valide.<br/><br/>Exemples :<ul><li>- Une page Facebook (https://www.facebook.com/user)</li><li>- Une page web (http://www.monsite.fr)</li><li>- Une adresse email (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Erreur lors du redimensionnement de l'image"},INFO:{PROFILE_REMOVED:"Profil supprimé",PROFILE_SAVED:"Profil sauvegardé"},HELP:{WARNING_PUBLIC_DATA:"Les informations renseignées dans votre profil <b>sont publiques</b> : visibles y compris par des personnes <b>non connectées</b>.<br/>{{'PROFILE.PROFILE_DIVIDER_HELP'|translate}}"}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trouver mon adresse sur la carte",USE_GEO_POINT:"Apparaître sur les cartes {{'COMMON.APP_NAME'|translate}} ?",LOADING_LOCATION:"Recherche de l'adresse...",LOCATION_DIVIDER:"Adresse",ADDRESS:"Rue",ADDRESS_HELP:"Rue, complément d'adresse...",CITY:"Ville",CITY_HELP:"Code postal, Ville, Pays",DISTANCE:"Distance maximale autour de la ville",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Code postal, Ville",PROFILE_POSITION:"Position du profil",MODAL:{TITLE:"Recherche de l'adresse",SEARCH_HELP:"Ville, Code postal, Pays",ALTERNATIVE_RESULT_DIVIDER:"Résultats alternatifs pour <b>{{address}}</b> :",POSITION:"Lat/Lon : {{lat}}/{{lon}}"},ERROR:{CITY_REQUIRED_IF_STREET:"Champ obligatoire (car une rue est saisie)",REQUIRED_FOR_LOCATION:"Champ obligatoire pour apparaître sur la carte",INVALID_FOR_LOCATION:"Adresse inconnue",GEO_LOCATION_FAILED:"Impossible de récupérer votre position. Veuillez utiliser le bouton de recherche.",ADDRESS_LOCATION_FAILED:"Impossible de récupérer la position à partir de l'adresse"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Services en ligne",SUBSCRIPTION_DIVIDER_HELP:"Les services en ligne offrent des services supplémentaires optionnels, délégués à un tiers.",BTN_ADD:"Ajouter un service",BTN_EDIT:"Gérer mes services",NO_SUBSCRIPTION:"Aucun service utilisé",SUBSCRIPTION_COUNT:"Services / Abonnements",EDIT:{TITLE:"Services en ligne",HELP_TEXT:"Gérez ici vos abonnements et autres services en ligne",PROVIDER:"Prestataire :"},TYPE:{ENUM:{EMAIL:"Recevoir les notifications par email"}},CONFIRM:{DELETE_SUBSCRIPTION:"Êtes-vous sûr de vouloir <b>supprimer cet abonnement</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Erreur lors du chargement des services en ligne",ADD_SUBSCRIPTION_FAILED:"Erreur de l'envoi de l'abonnement",UPDATE_SUBSCRIPTION_FAILED:"Erreur de la mise à jour de l'abonnement",DELETE_SUBSCRIPTION_FAILED:"Erreur lors de la suppression de l'abonnement"},MODAL_EMAIL:{TITLE:"Notification par email",HELP:"Remplissez ce formulaire pour <b>être notifié par email</b> des événements de votre compte.<br/>Votre adresse email sera chiffrée pour n'être visible que par le prestataire de service.",EMAIL_LABEL:"Votre email :",EMAIL_HELP:"jean.dupond@domaine.com",FREQUENCY_LABEL:"Fréquence des notifications :",FREQUENCY_DAILY:"Journalier",FREQUENCY_WEEKLY:"Hebdomadaire",PROVIDER:"Prestataire du service :"}},DOCUMENT:{HASH:"Hash : ",LOOKUP:{TITLE:"Recherche de documents",BTN_ACTIONS:"Actions",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS_DOTS:"Derniers documents :",LAST_DOCUMENTS:"Derniers documents",SHOW_QUERY:"Voir la requête",HIDE_QUERY:"Masquer la requête",HEADER_TIME:"Date/Heure",HEADER_ISSUER:"Emetteur",HEADER_RECIPIENT:"Destinataire",READ:"Lu",BTN_REMOVE:"Supprimer ce document",BTN_COMPACT:"Compacter",HAS_REGISTERED:"a créé ou modifié son profil",POPOVER_ACTIONS:{TITLE:"Actions",REMOVE_ALL:"Supprimer ces documents..."}},INFO:{REMOVED:"Document supprimé"},CONFIRM:{REMOVE:"Êtes-vous sûr de vouloir <b>supprimer ce document</b> ?",REMOVE_ALL:"Êtes-vous sûr de vouloir <b>supprimer ces documents</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Erreur lors de la recherche de documents",REMOVE_FAILED:"Erreur lors de la suppression du document",REMOVE_ALL_FAILED:"Erreur lors de la suppression des documents"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profils, notifications, messages privés",ENABLE_TOGGLE:"Activer l'extension ?",ENABLE_REMOTE_STORAGE:"Activer le stockage distant ?",ENABLE_REMOTE_STORAGE_HELP:"Permet de stockage (chiffré) de vos paramètres sur les noeuds Cesium+",ENABLE_MESSAGE_TOGGLE:"Activer les messages privés ?",PEER:"Adresse du nœud de données",POPUP_PEER:{TITLE:"Nœud de données",HELP:"Saisissez l'adresse du nœud que vous voulez utiliser :",PEER_HELP:"serveur.domaine.com:port"},NOTIFICATIONS:{DIVIDER:"Notifications",HELP_TEXT:"Activez les types de notifications que vous souhaitez recevoir :",ENABLE_TX_SENT:"Notifier les <b>paiements émis</b> ?",ENABLE_TX_RECEIVED:"Notifier les <b>paiements reçus</b> ?",ENABLE_CERT_SENT:"Notifier les <b>certifications émises</b> ?",ENABLE_CERT_RECEIVED:"Notifier les <b>certifications reçues</b> ?",ENABLE_HTML5_NOTIFICATION:"Avertir à chaque nouvelle notification ?",ENABLE_HTML5_NOTIFICATION_HELP:"Ouvre une petite fenêtre à chaque nouvelle notification."},CONFIRM:{ASK_ENABLE_TITLE:"Fonctionnalités optionnelles",ASK_ENABLE:'L\'extension Cesium+ est <b>désactivée</b> dans vos paramètres, rendant inactives les fonctionnalités : <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Profils Cesium+</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messages privés</b>.<li>&nbsp;&nbsp;<b><i class="icon ion-location"></i> Cartes, etc.</b>.</ul><br/><b>Souhaitez-vous ré-activer</b> l\'extension ?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinataire est obligatoire pour le chiffrement."}},ES_PEER:{NAME:"Nom",DOCUMENTS:"Documents",SOFTWARE:"Logiciel",DOCUMENT_COUNT:"Nombre de documents",EMAIL_SUBSCRIPTION_COUNT:"{{emailSubscription}} abonnés aux notifications par email"},EVENT:{NODE_STARTED:"Votre noeud ES API <b>{{params[0]}}</b> est démarré",NODE_BMA_DOWN:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> (utilisé par votre noeud ES API) est <b>injoignable</b>.",NODE_BMA_UP:"Le noeud <b>{{params[0]}}:{{params[1]}}</b> est à nouveau accessible.",MEMBER_JOIN:"Vous êtes maintenant <b>membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_LEAVE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b> !",MEMBER_EXCLUDE:"Vous n'êtes <b>plus membre</b> de la monnaie <b>{{params[0]}}</b>, faute de non renouvellement ou par manque de certifications.",MEMBER_REVOKE:"La révocation de votre compte a été effectuée. Il ne pourra plus être un compte membre de la monnaie <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"Votre renouvellement d'adhésion à la monnaie <b>{{params[0]}}</b> a été <b>pris en compte</b>.",TX_SENT:"Votre <b>paiement</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectué.",TX_SENT_MULTI:"Votre <b>paiement</b> à <b>{{params[1]}}</b> a été effectué.",TX_RECEIVED:"Vous avez <b>reçu un paiement</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Vous avez <b>reçu un paiement</b> de <b>{{params[1]}}</b>.",CERT_SENT:"Votre <b>certification</b> à <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a été effectuée.",CERT_RECEIVED:"Vous avez <b>reçu une certification</b> de <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a commenté votre référencement : <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié son commentaire sur votre référencement : <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a répondu à votre commentaire sur le référencement : <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> a modifié sa réponse à votre commentaire sur le référencement : <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nœud de données <b>{{old}}</b> injoignable ou adresse invalide.<br/><br/>Voulez-vous temporairement utiliser le nœud de données <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nœud de données <b>{{server}}</b> injoignable ou adresse invalide.<br/><br/>Cesium va continuer à fonctionner, <b>sans l'extension Cesium+</b> (profils utilisateur, messages privés, cartes et graphiques)<br/><br/>Vérifiez votre connexion Internet, ou changez de nœud de données dans les <a class=\"positive\" ng-click=\"doQuickFix('settings')\">paramètres de l'extension</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Le volume des données à envoyer dépasse la limite fixée par le serveur.<br/>Veuillez ré-essayer après avoir, par exemple, supprimer des photos."}}),e.translations("it-IT",{COMMON:{CATEGORY:"Categoria",CATEGORIES:"Categorie",CATEGORY_SEARCH_HELP:"Ricerca",LAST_MODIFICATION_DATE:"Aggiornato il ",SUBMIT_BY:"Inviato da",BTN_PUBLISH:"Pubblicare",BTN_PICTURE_DELETE:"Eliminare",BTN_PICTURE_FAVORISE:"Predefinito",BTN_PICTURE_ROTATE:"Girare",BTN_ADD_PICTURE:"Aggiungere foto",NOTIFICATIONS:{TITLE:"Notifiche",MARK_ALL_AS_READ:"Segna tutte come lette",NO_RESULT:"Nessuna notifica",SHOW_ALL:"Mostrare tutte",LOAD_NOTIFICATIONS_FAILED:"Impossibile caricare le notifiche"}},MENU:{REGISTRY:"Pagine",USER_PROFILE:"Mio profilo",MESSAGES:"Messaggi",NOTIFICATIONS:"Notifiche",INVITATIONS:"Inviti"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Conto per enti",ORGANIZATION_ACCOUNT_HELP:"Se rappresenta un'azienda, un'associazione, etc.<br/>Questo conto non potrà creare il Dividendo Universale."},EVENT:{MEMBER_WITHOUT_PROFILE:'Per ottenere sue certificazioni più velocemente, riempire le informazioni<a ui-sref="app.edit_profile">del suo profilo</a>. I membri della rete si fidano più volontieri di profili verificabili.'},ERROR:{WS_CONNECTION_FAILED:"Cesium non può ricevere notifiche a causa di un problema tecnico (di conessione al data node Cesium+).<br/><br/>Se il problema persiste, le chiediamo di <b>scegliere un'altro data node</b> nelle impostazioni di Cesium+."}},WOT:{BTN_SUGGEST_CERTIFICATIONS_DOTS:"Suggerire delle identità da certificare..",BTN_ASK_CERTIFICATIONS_DOTS:"Chiedere una certificazione ai membri...",BTN_ASK_CERTIFICATION:"Chiedere una certificazione",SUGGEST_CERTIFICATIONS_MODAL:{TITLE:"Suggerire delle certificazioni",HELP:"Scegliere i suoi suggerimenti, aiuti"},ASK_CERTIFICATIONS_MODAL:{TITLE:"Chiedere delle certificazioni",HELP:"Selezionare un ricevente"},SEARCH:{DIVIDER_PROFILE:"Conti",DIVIDER_PAGE:"Pagine",DIVIDER_GROUP:"Gruppi"},CONFIRM:{SUGGEST_CERTIFICATIONS:"E’ sicuro(a) di voler <b>suggerire queste certificazioni</b> ?",ASK_CERTIFICATION:" E’ sicuro(a) di voler  <b>chiedere una certificazione</b> ?",ASK_CERTIFICATIONS:" E’ sicuro(a) di voler <b>chiedere una certificazione</b> a questi membri ?"}},INVITATION:{TITLE:"Invitazioni",NO_RESULT:"Nessun invito ricevuto",BTN_DELETE_ALL:"Cancellare tutti gli inviti",BTN_DELETE:"Cancellare l'invito",BTN_NEW_INVITATION:"Nuovo invito",ASK_CERTIFICATION:'<a href="#/app/wot/{{pubkey}}/{{::uid}}">{{::name||uid}}</a> ti ha chiesto una certificazione',SUGGESTION_CERTIFICATION:'<a href="#/app/wot/{{::pubkey}}/{{::uid}}">{{::name||uid}}</a> è proposto per ricevere una certificazione',SUGGESTED_BY:'Suggerimento inviato da by <a class="positive" href="#/app/wot/{{::issuer.pubkey}}/{{::issuer.uid}}">{{::issuer.name||issuer.uid}}</a>',NOTIFICATIONS:{TITLE:"Inviti"},LIST:{TITLE:"Inviti"},NEW:{TITLE:"Nuovo invito",RECIPIENTS:"A",RECIPIENTS_HELP:"Riceventi dell'invito",RECIPIENTS_MODAL_TITLE:"Riceventi",RECIPIENTS_MODAL_HELP:"Scegliere riceventi:",SUGGESTION_IDENTITIES:"Suggerimenti di identità da certificare",SUGGESTION_IDENTITIES_HELP:"Suggerimenti di certificazioni",SUGGESTION_IDENTITIES_MODAL_TITLE:"Suggerimenti",SUGGESTION_IDENTITIES_MODAL_HELP:"Scegli tuoi sugerimenti:"},CONFIRM:{DELETE_ALL_CONFIRMATION:"Cancellare degli inviti è <b>una operazione irreversibile</b>.<br/><br/><b>Sei sicuro/a</b> di voler proseguire",SEND_INVITATIONS_TO_CERTIFY:"<b>Sei sicuro/a</b> di voler <b>inviare questo suggerimento di certificazione</b> ?"},INFO:{INVITATION_SENT:"Invito inviato"},ERROR:{LOAD_INVITATIONS_FAILED:"Errore nel caricare gli inviti",REMOVE_INVITATION_FAILED:"Errore nel cancellare gli inviti",REMOVE_ALL_INVITATIONS_FAILED:"Errore nel cancellare inviti",SEND_INVITATION_FAILED:"Errore nel invio degli inviti",BAD_INVITATION_FORMAT:'<span class="assertive"><i class="ion-close-circled"></i> Invito illegibile (formatto sconosciuto)</span> - inviato da <a ui-sref="app.wot_identity({pubkey: \'{{::pubkey}}\', uid: \'{{::uid}}\' })">{{::name||uid}}</a>'}},COMMENTS:{DIVIDER:"Commenti",SHOW_MORE_COMMENTS:"Mostrare commenti precedenti",COMMENT_HELP:"Suo commento o domanda...",COMMENT_HELP_REPLY_TO:"Sua risposta...",BTN_SEND:"Inviare",POPOVER_SHARE_TITLE:"Messaggio #{{number}}",REPLY:"Rispondere",REPLY_TO:"Rispondere a:",REPLY_TO_LINK:"In risposta a",REPLY_TO_DELETED_COMMENT:"In risposta ad un commento cancellato",REPLY_COUNT:"{{replyCount}} risposte",DELETED_COMMENT:"Commento cancellato",ERROR:{FAILED_SAVE_COMMENT:"Salvare il commento cancellato",FAILED_REMOVE_COMMENT:"Cancellazione del commento fallita"}},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Rispondere",BTN_COMPOSE:"Nuovo messaggio",BTN_WRITE:"Scrivere",NO_MESSAGE_INBOX:"Nessun messaggio ricevuto",NO_MESSAGE_OUTBOX:"Nessun messaggio inviato",NOTIFICATIONS:{TITLE:"Messaggi",MESSAGE_RECEIVED:"Hai <b>ricevuto un messaggio/b><br/>da"},LIST:{INBOX:"In entrata",OUTBOX:"In uscita",TITLE:"Messaggi privati",POPOVER_ACTIONS:{TITLE:"Opzioni",DELETE_ALL:"Eliminare tutti i messaggi"}},COMPOSE:{TITLE:"Nuovo messaggio",TITLE_REPLY:"Rispondere",SUB_TITLE:"Nuovo messaggio",TO:"A",OBJECT:"Oggetto",OBJECT_HELP:"Oggetto",ENCRYPTED_HELP:"La informiamo che questo messaggio verrà criptato prima della sua spedizione in modo che solo il destinatario lo possa leggere e essere sicuro che ne sia Lei l'autore.",MESSAGE:"Messaggio",MESSAGE_HELP:"Contenuto del messaggio",CONTENT_CONFIRMATION:"Nessun contenuto. <br/><br/>E’ sicura di voler inviare questo messaggio?"},VIEW:{TITLE:"Messaggio",SENDER:"Inviato da",RECIPIENT:"Inviato a",NO_CONTENT:"Messaggio vuoto",DELETE:"Cancellare il messaggio"},CONFIRM:{REMOVE:"E’ sicuro/a di voler <b>eliminare il messaggio</b>?<br/><br/> Questa operazione è irreversibile.",REMOVE_ALL:"E’ sicuro/a di voler <b>eliminare tutti i messaggi</b>?<br/><br/> Questa operazione è irreversibile.",MARK_ALL_AS_READ:"E’ sicuro/a di voler <b>segnare tutti i messaggi come letti/b>?",USER_HAS_NO_PROFILE:"Questa identità non ha un profilo Cesium+. Pertanto non può <b>leggere il suo messaggio</b>.<br/><br/>E’ sicuro/a di voler <b>continuare</b>?"},INFO:{MESSAGE_REMOVED:"Messaggio eliminato correttamente",All_MESSAGE_REMOVED:"Messaggi eliminati correttamente",MESSAGE_SENT:"Messaggio inviato"},ERROR:{SEND_MSG_FAILED:"Errore nella spedizione del messaggio.",LOAD_MESSAGES_FAILED:"Errore durante il caricamento dei messaggi.",LOAD_MESSAGE_FAILED:"Errore durante il caricamento del messaggio.",MESSAGE_NOT_READABLE:"Impossibile leggere il messaggio.",USER_NOT_RECIPIENT:"Lei non è il destinatario del messaggio: impossibile leggerlo.",NOT_AUTHENTICATED_MESSAGE:"Impossibile verificare l'autenticità del messaggio o contenuto corrotto.",REMOVE_MESSAGE_FAILED:"Errore avvenuto durante l'eliminazione del messaggio",MESSAGE_CONTENT_TOO_LONG:"Il contenuto supera il limite ({{maxLength}} caratteri ammessi).",MARK_AS_READ_FAILED:"Impossibile segnare il messaggio come 'letto'.",LOAD_NOTIFICATIONS_FAILED:"Errore nel caricare le notifiche.",REMOVE_All_MESSAGES_FAILED:"Errore avvenuto durante l'eliminazione dei messaggi.",MARK_ALL_AS_READ_FAILED:"Errore avvenuto nel segnare i messaggi come 'letti",RECIPIENT_IS_MANDATORY:"Destinatario obbligatorio"}},BLOCKCHAIN:{LOOKUP:{SEARCH_HELP:"Numero di blocco, hash...",POPOVER_FILTER_TITLE:"Filtro",HEADER_MEDIAN_TIME:"Data / Ora",HEADER_BLOCK:"Blocco #",HEADER_ISSUER:"Peer proprietario",BTN_LAST:"Ultimi blocchi",DISPLAY_QUERY:"Visualizzare query",HIDE_QUERY:"Nascondere query",TX_SEARCH_FILTER:{MEMBER_FLOWS:'<b class="ion-person"></b> Input/output Membri',EXISTING_TRANSACTION:'<b class="ion-card"></b> hanno transazioni',PERIOD:'<b class="ion-clock"></b> Tra <b class="gray">{{params[1]|medianDateShort}}</b> ({{params[1]|medianTime}}) e <b class="gray">{{params[2]|medianDateShort}}</b> ({{params[2]|medianTime}})',ISSUER:'<b class="ion-android-desktop"></b> Calcolato da {{params[1]|formatPubkey}}',TX_PUBKEY:'<b class="ion-card"></b> Transazioni legate a  <b class="ion-key"></b> {{params[1]|formatPubkey}}'}},ERROR:{SEARCH_BLOCKS_FAILED:"Errore durante la ricerca dei blocchi."}},GROUP:{GENERAL_DIVIDER:"Informazioni generali",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e/o sito web",TECHNICAL_DIVIDER:"Dati tecnici",CREATED_TIME:"Creato {{creationTime|formatFromNow}}",NOTIFICATIONS:{TITLE:"Inviti"},LOOKUP:{TITLE:"Gruppi",SEARCH_HELP:"Nome del grupo, parole chiavi, luogo, etc.",LAST_RESULTS_LIST:"Nuovi gruppi :",OPEN_RESULTS_LIST:"Gruppi aperti :",MANAGED_RESULTS_LIST:"Gruppi chiusi :",BTN_LAST:"Nuovi gruppi",BTN_NEW:"Aggiungo un grupo!"},TYPE:{TITLE:"Nuovo gruppo",SELECT_TYPE:"Tipo di gruppo :",OPEN_GROUP:"Gruppo aperto",OPEN_GROUP_HELP:"Un gruppo aperto è accessibile da qualsiasi membro della moneta.",MANAGED_GROUP:"Gruppo amministrato",MANAGED_GROUP_HELP:"un gruppo amministrato è gestito da amministratori e moderatori, che possono accetare, rifiutare o escludere membri del gruppo.",ENUM:{OPEN:"Gruppo aperto",MANAGED:"Gruppo amministrato"}},VIEW:{POPOVER_SHARE_TITLE:"{{title}}",MENU_TITLE:"Opzioni",REMOVE_CONFIRMATION:"Sei sicuro/a di voler chiudere questo gruppo ?<br/><br/>Questa operazione è irreversibile."},EDIT:{TITLE:"Gruppo",TITLE_NEW:"Nuovo gruppo",RECORD_TITLE:"Titolo",RECORD_TITLE_HELP:"Titolo",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrizione"},ERROR:{SEARCH_GROUPS_FAILED:"Errore nella ricerca di gruppi",REMOVE_RECORD_FAILED:"Errore nel chiudere il gruppo"},INFO:{RECORD_REMOVED:"Gruppo eliminato"}},REGISTRY:{CATEGORY:"Attività principale",GENERAL_DIVIDER:"Informazioni di base",LOCATION_DIVIDER:"Indirizzo",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social, sito web",TECHNICAL_DIVIDER:"Dati tecnici",BTN_SHOW_WOT:"Persone",BTN_SHOW_WOT_HELP:"Cercare persone",BTN_SHOW_PAGES:"Pagine",BTN_SHOW_PAGES_HELP:"Cercare pagine",BTN_NEW:"Aggiungere",MY_PAGES:"Mie pagine",NO_PAGE:"Nessuna pagina",SEARCH:{TITLE:"Pagine",SEARCH_HELP:"Che, chi: parrucchiere, Pizza Efisio, ...",BTN_ADD:"Nuovo",BTN_LAST_RECORDS:"Pagine recenti",BTN_ADVANCED_SEARCH:"Ricerca avanzata",BTN_OPTIONS:"Ricerca avanzata",TYPE:"Tipo di ente",LOCATION_HELP:"Città",RESULTS:"Risultati",RESULT_COUNT_LOCATION:"{{count}} risultato{{count>0?'i':''}}, vicino a {{location}}",RESULT_COUNT:"{{count}} risultato{{count>0?'i':''}}",LAST_RECORDS:"Pagine recenti:",LAST_RECORD_COUNT_LOCATION:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}, vicino a{{location}}",LAST_RECORD_COUNT:"{{count}} pagina{{count>0?'e':''}} recente{{count>0?'i':''}}",POPOVER_FILTERS:{BTN_ADVANCED_SEARCH:"Opzioni avanzate ?"}},VIEW:{TITLE:"Annuario",CATEGORY:"Attività principale:",LOCATION:"Indirizzo:",MENU_TITLE:"Impostazioni",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"E’ sicuro/a di voler eliminare questo riferimento?<br/><br/>Questa operazione è irreversibile."},TYPE:{TITLE:"Nuovo riferimento",SELECT_TYPE:"Tipo di ente/organismo:",ENUM:{SHOP:"Negozi locali",COMPANY:"Azienda",ASSOCIATION:"Associazione",INSTITUTION:"Istituto"}},EDIT:{TITLE:"Modificare",TITLE_NEW:"Nuovo riferimento",RECORD_TYPE:"Tipo di ente",RECORD_TITLE:"Nome",RECORD_TITLE_HELP:"Nome",RECORD_DESCRIPTION:"Descrizione",RECORD_DESCRIPTION_HELP:"Descrivere l'attività",RECORD_ADDRESS:"Indirizzo",RECORD_ADDRESS_HELP:"Indirizzo: Strada, numero civico...",RECORD_CITY:"Città",RECORD_CITY_HELP:"Città, Paese",RECORD_SOCIAL_NETWORKS:"Presenza sui social e/o sito web",RECORD_PUBKEY:"Chiave pubblica",RECORD_PUBKEY_HELP:"Chiave pubblica per ricevere pagamenti"},WALLET:{REGISTRY_DIVIDER:"Pagine",REGISTRY_HELP:"Le pagine sono un elenco dei profesionisti che accettano o favoriscono: negozi, aziende, associazioni, istituti..."},ERROR:{LOAD_CATEGORY_FAILED:"Errore nel caricamento delle attività principali",LOAD_RECORD_FAILED:"Caricamento fallito",LOOKUP_RECORDS_FAILED:"Errore nel caricare i dati",REMOVE_RECORD_FAILED:"Errore nella cancellazione",SAVE_RECORD_FAILED:"Impossibile salvare",RECORD_NOT_EXISTS:"Inesistente",GEO_LOCATION_NOT_FOUND:"Città o CAP inesistente"},INFO:{RECORD_REMOVED:"Pagina eliminata con successo.",RECORD_SAVED:"Pagina salvata"}},PROFILE:{PROFILE_DIVIDER:"Profilo Cesium+",PROFILE_DIVIDER_HELP:"Si tratta qui di data esterni, salvati fuori della rete della moneta.",NO_PROFILE_DEFINED:"Nessun profilo Cesium+",BTN_ADD:"Creare mio profilo",BTN_EDIT:"Modificare mio profilo",UID:"Pseudonimo",TITLE:"Cognome, Nome",TITLE_HELP:"Nome",DESCRIPTION:"A proposito di me",DESCRIPTION_HELP:"A proposito di me...",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Informazioni generali",SOCIAL_NETWORKS_DIVIDER:"Presenza sui social e sito/i web",TECHNICAL_DIVIDER:"Dati tecnici",MODAL_AVATAR:{TITLE:"Avatar",SELECT_FILE_HELP:"<b>Scegliere un'immagine</b>, cliccando sul bottone qui sotto:",BTN_SELECT_FILE:"Scegliere un'immagine",RESIZE_HELP:"<b>Ritagliare l'immagine</b> se necessario. Cliccare sull'immagine permette di spostarla. Cliccando nella zona a basso sinistra permette di fare uno zoom-in.",RESULT_HELP:"<b>Questo è il risultato</b> come visibile sul suo profilo:"},ERROR:{LOAD_PROFILE_FAILED:"Impossibile caricare il profilo dell’utente.",SAVE_PROFILE_FAILED:"Impossibile salvare il profilo",INVALID_SOCIAL_NETWORK_FORMAT:"Formatto scorretto: URL sbagliato.<br/><br/>Esempi: :<ul><li>- Una pagina Facebook (https://www.facebook.com/user)</li><li>- Un sito: (http://www.domain.com)</li><li>- Un indirizzo mail: (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Errore nel ritagliare l'immagine"},INFO:{PROFILE_SAVED:"Profilo salvato"},HELP:{WARNING_PUBLIC_DATA:"La informiamo che le informazioni qui pubblicate <b>sono pubbliche</b>: sono anche visibili <b>da gente non registrata/b>."}},LOCATION:{BTN_GEOLOC_ADDRESS:"Trovare mio indirizzo sulla mappa",USE_GEO_POINT:"Geo-localizzare (raccomandato)?",LOADING_LOCATION:"Cercando indirizzo...",LOCATION_DIVIDER:"Posizione",ADDRESS:"Indirizzo",ADDRESS_HELP:"Indirizzo (opzionale)",CITY:"Città",CITY_HELP:"Città, Paese",DISTANCE:"Distanza massimale intorno alla città",DISTANCE_UNIT:"km",DISTANCE_OPTION:"{{value}} {{'LOCATION.DISTANCE_UNIT'|translate}}",SEARCH_HELP:"Città, CAP",MODAL:{TITLE:"Cercare indirizzo",SEARCH_HELP:"Città, Paese",ALTERNATIVE_RESULT_DIVIDER:"Risultati alternativi <b>{{address}}</b>:",POSITION:"lat/lon : {{lat}} {{lon}}"},ERROR:{REQUIRED_FOR_LOCATION:"Campo obbligatorio per apparire sulla mappa",INVALID_FOR_LOCATION:"Indirizzo sconosciuto",GEO_LOCATION_FAILED:"Impossibile trovare sua posizione. Utilizzi il bottone di ricerca.",ADDRESS_LOCATION_FAILED:"Indirizzo non trovato"}},SUBSCRIPTION:{SUBSCRIPTION_DIVIDER:"Servizi online",SUBSCRIPTION_DIVIDER_HELP:"I servizi online offrono servizi addizionali opzionali, delegati ad terzi.",BTN_ADD:"Aggiungere un servizio",BTN_EDIT:"Gestire miei servizi",NO_SUBSCRIPTION:"Nessun servizio utilizzato",SUBSCRIPTION_COUNT:"Servizi/ Abbonamenti",EDIT:{TITLE:"Servizi online",HELP_TEXT:"Qui si possono gestire gli abbonamenti e/o altri servizi online",PROVIDER:"Prestatore :"},TYPE:{ENUM:{EMAIL:"Ricevere notifiche per posta elettronica"}},CONFIRM:{DELETE_SUBSCRIPTION:"Sei sicuro/a di voler <b>cancellare questo abbonamento</b> ?"},ERROR:{LOAD_SUBSCRIPTIONS_FAILED:"Errore nel caricamento dei servizi online",ADD_SUBSCRIPTION_FAILED:"Errore nel invio dell' abbonamento",UPDATE_SUBSCRIPTION_FAILED:"Errore nel aggiornamento dell' abbonamento",DELETE_SUBSCRIPTION_FAILED:"Errore nella cancellazine dell' abbonamento"},MODAL_EMAIL:{TITLE:"Notifiche per posta elettronica",HELP:"Riempi questo formulario per <b>essere notificato/a per e-mail</b> degli eventi che avvengono sul tuo conto.<br/>Tuo indizzo mail sarà cifrato e solo il prestatore del servizio lo potrà vedere.",EMAIL_LABEL:"Tuo indirizzo mail :",EMAIL_HELP:"cristiana.leonardi@dominio.com",FREQUENCY_LABEL:"Frequenza delle notifiche :",FREQUENCY_DAILY:"Quotidiano",FREQUENCY_WEEKLY:"Settimanale",PROVIDER:"Prestatore del servizio :"}},DOCUMENT:{HASH:"Hash: ",LOOKUP:{TITLE:"Ricerca di documenti",BTN_ACTIONS:"Azioni",SEARCH_HELP:"issuer:AAA*, time:1508406169",LAST_DOCUMENTS:"Ultimi documenti",SHOW_QUERY:"Visualizzare la richiesta",HIDE_QUERY:"Nacondere la richiesta",HEADER_TIME:"Data/Ora",HEADER_ISSUER:"Emittente",HEADER_RECIPIENT:"Destinatario",READ:"Letto",BTN_REMOVE:"Eliminare questo documento",POPOVER_ACTIONS:{TITLE:"Azioni",REMOVE_ALL:"Eliminare questi documenti..."}},INFO:{REMOVED:"Documento eliminato"},CONFIRM:{REMOVE:"Sei sicuro/a di voler <b>eliminare questo documento</b> ?",REMOVE_ALL:"Si sicuro/a di voler <b>eliminare questi documenti</b> ?"},ERROR:{LOAD_DOCUMENTS_FAILED:"Errore nella ricerca dei documenti",REMOVE_FAILED:"Errore nell'eliminazione del documento",REMOVE_ALL_FAILED:"Errore nell'eliminazione dei documenti"}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",PLUGIN_NAME_HELP:"Profili di utenti, notifiche, messaggi privati",ENABLE_TOGGLE:"Abilitare l'estensione ?",ENABLE_MESSAGE_TOGGLE:"Abilitare i messaggi? privati",ENABLE_SETTINGS_TOGGLE:"Abilitare stoccaggio su dispositivi esterni per le impostazioni?",PEER:"Indirizzo di data peers",POPUP_PEER:{TITLE:"Data peer",HELP:"Definire l'indirizzo da usare per il peer:",PEER_HELP:"server.domain.com:port"},NOTIFICATIONS:{DIVIDER:"Notifiche",HELP_TEXT:"Scegliere le notifiche che accetta ricevere:",ENABLE_TX_SENT:"Notificarmi di <b>pagamenti inviati</b> con successo?",ENABLE_TX_RECEIVED:"Notificarmi di <b>pagamenti in entrata</b>?",ENABLE_CERT_SENT:"Notificarmi delle <b>certificazioni inviate</b>?",ENABLE_CERT_RECEIVED:"Notificarmi di <b>certificazioni ricevute</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Nuove funzionalità",ASK_ENABLE:'Sono disponibili nuove funzionalità: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i>Profili di utenti</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifications"></i> Notifications</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Messaggi privati/b>.</ul><br/>Sono state <b>disabilitate</b> nelle sue impostazioni.<br/><br/><b>Desidera abilitare</b> queste funzionalità?'}},ES_WALLET:{ERROR:{RECIPIENT_IS_MANDATORY:"Un destinatario è necessario per il criptaggio."}},EVENT:{NODE_STARTED:"Suo nodo ES API <b>{{params[0]}}</b> è UP",NODE_BMA_DOWN:"Nodo<b>{{params[0]}}:{{params[1]}}</b> (utilizzato dal suo ES API) è <b>indisponibile</b>.",NODE_BMA_UP:"Nodo <b>{{params[0]}}:{{params[1]}}</b> è di nuovo attivo.",MEMBER_JOIN:"E diventato <b>membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Non <b>è più membro/a</b> della WoT della moneta <b>{{params[0]}}</b>!",MEMBER_EXCLUDE:"Non è <b>più membro/a</b> della WoT della moneta<b>{{params[0]}}</b>, a causa di certificazioni non rinnovate o soglia di certificazioni non raggiunta.",MEMBER_REVOKE:"Il suo conto è stato revocato. Da ora in poi non farà più parte della WoT. <b>{{params[0]}}</b>.",MEMBER_ACTIVE:"La sua presenza nella WoT <b>{{params[0]}}</b> è stata <b>rinnovata correttamente</b>.",TX_SENT:"Il suo pagamento <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stato eseguito.",TX_SENT_MULTI:"Il suo pagamento <b>{{params[1]}}</b> è stato eseguito.",TX_RECEIVED:"Ha ricevuto un pagamento da <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Ha ricevuto un pagamento da <b>{{params[1]}}</b>.",CERT_SENT:"Sua <b>certificazione</b> a favore di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> è stata eseguita.",CERT_RECEIVED:"Ha ricevuto <b>una certificazione</b> da parte di <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha scritto un commento sul suo riferimento: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato il suo commento sul suo riferimento: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha risposto al suo commento sul riferimento: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> ha modificato sua risposta sul suo commento a proposito del riferimento: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Nodo<b>{{old}}</b> irraggiungibile o indirizzo sbagliato.<br/><br/>Vuoi utilizzare temporaneamente il nodo di dati <b>{{new}}</b> ?"},ERROR:{ES_CONNECTION_ERROR:"Nodo di dati<b>{{server}}</b>  irraggiungibile o indirizzo sbagliato.<br/><br/>Cesium continuerà a funzionare <b>senza l'estensione Cesium+</b> (profili utenti, messaggi privati, mappe e grafici)<br/><br/>Verifica tua connessione o cambia nodo <a class=\"positive\" ng-click=\"doQuickFix('settings')\">impostazioni dell'estensione</a>.",ES_MAX_UPLOAD_BODY_SIZE:"Il volume di data da inviare supera il limite imposto dal server.<br/><br/>Suggeriamo di riprovare dopo aver eliminato delle foto, per esempio."}}),e.translations("nl-NL",{COMMON:{CATEGORY:"Categorie",CATEGORIES:"Categorieën",CATEGORY_SEARCH_HELP:"Zoeken",LAST_MODIFICATION_DATE:"Vernieuwd op ",SUBMIT_BY:"Ingediend door",BTN_PUBLISH:"Publiceren",BTN_PICTURE_DELETE:"Wissen",BTN_PICTURE_FAVORISE:"Default",BTN_ADD_PICTURE:"Afbeelding toevoegen",NOTIFICATIONS:{TITLE:"Notificaties",MARK_ALL_AS_READ:"Markeer alles als gelezen",NO_RESULT:"Geen berichten",SHOW_ALL:"Toon alles",LOAD_NOTIFICATIONS_FAILED:"Kan berichten niet laden"}},MENU:{REGISTRY:"Pagina's",USER_PROFILE:"Mijn profiel",MESSAGES:"Berichten"},ACCOUNT:{NEW:{ORGANIZATION_ACCOUNT:"Ondernemingsrekening",ORGANIZATION_ACCOUNT_HELP:"Als je een onderneming, vereniging etc. vertegenwoordigt.<br/>Deze rekening zal geen dividend créeren."},EVENT:{MEMBER_WITHOUT_PROFILE:'Vul <a ui-sref="app.edit_profile"je gebruikersprofiel</a> in om sneller een certificering te verkrijgen. Leden zullen een verfifieerbare identiteit eerder vertrouwen.'}},COMMENTS:{DIVIDER:"Commentaren",SHOW_MORE_COMMENTS:"Toon eerdere commentaren",COMMENT_HELP:"Jouw commentaar, vraag...",COMMENT_HELP_REPLY_TO:"Jouw antwoord...",BTN_SEND:"Verzenden",POPOVER_SHARE_TITLE:"Bericht #{{number}}",REPLY:"Antwoord",REPLY_TO:"Antwoorden op:",REPLY_TO_LINK:"In antwoord op ",REPLY_TO_DELETED_COMMENT:"In antwoord op een gewist bericht",REPLY_COUNT:"{{replyCount}} antwoorden",DELETED_COMMENT:"Bericht gewist"},MESSAGE:{REPLY_TITLE_PREFIX:"Re: ",FORWARD_TITLE_PREFIX:"Fw: ",BTN_REPLY:"Antwoord",BTN_COMPOSE:"Nieuw bericht",BTN_WRITE:"Schrijven",NO_MESSAGE_INBOX:"Geen bericht ontvangen",NO_MESSAGE_OUTBOX:"Geen bericht verzonden",NOTIFICATIONS:{TITLE:"Berichten",MESSAGE_RECEIVED:"Je hebt een <b>bericht ontvangen</b><br/>van"},LIST:{INBOX:"Inbox",OUTBOX:"Verzonden",TITLE:"Privé",POPOVER_ACTIONS:{TITLE:"Opties",DELETE_ALL:"Alle berichten wissen"}},COMPOSE:{TITLE:"Nieuw bericht",TITLE_REPLY:"Antwoord",SUB_TITLE:"Nieuw bericht",TO:"Aan",OBJECT:"Onderwerp",OBJECT_HELP:"Onderwerp",ENCRYPTED_HELP:"Please note this message will by encrypt before sending zodat alleen de ontvanger het kan lezen en zeker kan zijn dat jij de auteur bent.",MESSAGE:"Bericht",MESSAGE_HELP:"Berichtinhoud",CONTENT_CONFIRMATION:"Geen berichtinhoud.<br/><br/>Weet je zeker dat je dit bericht wil verzenden?"},VIEW:{TITLE:"Bericht",SENDER:"Verzonden door",RECIPIENT:"Verzonden aan",NO_CONTENT:"Leeg bericht"},CONFIRM:{REMOVE:"Weet je zeker dat je <b>dit bericht wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",REMOVE_ALL:"Weet je zeker dat je <b>alle berichten wil wissen</b>?<br/><br/>Dit kan niet ongedaan gemaakt worden.",MARK_ALL_AS_READ:"Weet je zeker dat je <b>alle berichten als gelezen wil markeren</b>?"},INFO:{MESSAGE_REMOVED:"Bericht succesvol gewist",All_MESSAGE_REMOVED:"Berichten succesvol gewist",MESSAGE_SENT:"Bericht verzonden"},ERROR:{SEND_MSG_FAILED:"Fout tijdens verzending.",LOAD_MESSAGES_FAILED:"Kan berichten niet laden.",LOAD_MESSAGE_FAILED:"Kan bericht niet laden.",MESSAGE_NOT_READABLE:"Kan bericht niet lezen.",USER_NOT_RECIPIENT:"Je bent niet de geadresseerde van dit bericht: het kan niet gelezen worden.",NOT_AUTHENTICATED_MESSAGE:"De authenticiteit van het bericht is onduidelijk of de inhoud is gecorrumpeerd.",REMOVE_MESSAGE_FAILED:"Kan bericht niet wissen.",MESSAGE_CONTENT_TOO_LONG:"Waarde te lang (max {{maxLength}} characters).",MARK_AS_READ_FAILED:"Kan bericht niet als gelezen markeren.",LOAD_NOTIFICATIONS_FAILED:"Kan niet alle berichtnotificaties laden.",REMOVE_All_MESSAGES_FAILED:"Kan niet alle berichten wissen.",MARK_ALL_AS_READ_FAILED:"Kan berichten niet als gelezen markeren."}},REGISTRY:{CATEGORY:"Hoofdactiviteit",GENERAL_DIVIDER:"Basisinformatie",LOCATION_DIVIDER:"Adres",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",BTN_NEW:"Toevoegen",SEARCH:{TITLE:"Bedrijfsregister",TITLE_SMALL_DEVICE:"Bedrijfsregister",SEARCH_HELP:"Wie, Wat: kapper, Lili's restaurant, ...",BTN_ADD:"Nieuw",BTN_OPTIONS:"Geavanceerd zoeken",TYPE:"Soort organisatie",LOCATION:"Locatie",LOCATION_HELP:"Plaats",LAST_RECORDS:"Nieuwste referenties:",RESULTS:"Resultaten:"},VIEW:{TITLE:"Register",CATEGORY:"Hoofdactiviteit:",LOCATION:"Adres:",MENU_TITLE:"Opties",POPOVER_SHARE_TITLE:"{{title}}",REMOVE_CONFIRMATION:"Weet je zeker dat je deze referentie wil verwijderen?<br/><br/>Dit kan niet ongedaan worden gemaakt."},TYPE:{TITLE:"Nieuwe referentie",SELECT_TYPE:"Soort organizatie:",ENUM:{SHOP:"Locale winkel",COMPANY:"Onderneming",ASSOCIATION:"Stichting",INSTITUTION:"Instituut"}},EDIT:{TITLE:"Bewerk",TITLE_NEW:"Nieuwe referentie",RECORD_TYPE:"Soort organizatie",RECORD_TITLE:"Naam",RECORD_TITLE_HELP:"Naam",RECORD_DESCRIPTION:"Beschrijving",RECORD_DESCRIPTION_HELP:"Omschrijf activiteit",RECORD_ADDRESS:"Straat",RECORD_ADDRESS_HELP:"Straat, gebouw...",RECORD_CITY:"Plaats",RECORD_CITY_HELP:"Plaats",RECORD_SOCIAL_NETWORKS:"Sociale media en website",RECORD_PUBKEY:"Publieke sleutel",RECORD_PUBKEY_HELP:"Publieke sleutel om betalingen te ontvangen"},ERROR:{LOAD_CATEGORY_FAILED:"Laden hoofdactiveiten mislukt",LOAD_RECORD_FAILED:"Laden datasheet mislukt",LOOKUP_RECORDS_FAILED:"Opzoeken datasheets is mislukt.",REMOVE_RECORD_FAILED:"Verwijderen datasheet mislukt",SAVE_RECORD_FAILED:"Opslaan datasheet mislukt",RECORD_NOT_EXISTS:"Datasheet niet gevonden"},INFO:{RECORD_REMOVED:"Datasheet succesvol verwijderd"}},PROFILE:{UID:"Pseudoniem",TITLE:"Naam",TITLE_HELP:"Naam",DESCRIPTION:"Over mij",DESCRIPTION_HELP:"Over mij...",ADDRESS:"Adres",ADDRESS_HELP:"Adres (optioneel)",CITY:"Plaats",CITY_HELP:"Plaats (optioneel)",SOCIAL_HELP:"http://...",GENERAL_DIVIDER:"Algemene informatie",LOCATION_DIVIDER:"Localisatie",SOCIAL_NETWORKS_DIVIDER:"Sociale media en website",TECHNICAL_DIVIDER:"Technische informatie",ERROR:{LOAD_PROFILE_FAILED:"Kon gebruikersprofiel niet laden.",SAVE_PROFILE_FAILED:"Opslaan profiel mislukt",INVALID_SOCIAL_NETWORK_FORMAT:"Ongeldig formaat: vul een geldig internetadres in.<br/><br/>Voorbeelden:<ul><li>- Een Facebookpagina (https://www.facebook.com/user)</li><li>- Een webpagina (http://www.domain.com)</li><li>- Een emailadres (joe@dalton.com)</li></ul>",IMAGE_RESIZE_FAILED:"Fout tijdens afbeelding schalen"},INFO:{PROFILE_SAVED:"Profiel opgeslagen"},HELP:{WARNING_PUBLIC_DATA:"Let op, de informatie die hier is vastgelegd <b>is publiek</b>: zichtbaar ook voor <b>niet ingelogde gebruikers</b>."}},ES_SETTINGS:{PLUGIN_NAME:"Cesium+",ENABLE_TOGGLE:"Uitbreiding inschakelen?",ENABLE_MESSAGE_TOGGLE:"Berichten inschakelen?",ENABLE_SETTINGS_TOGGLE:"Globale opslag voor instellingen inschakelen?",PEER:"Adres dataknooppunt",POPUP_PEER:{TITLE:"Dataknoop",HELP:"Stel het te gebruiken adres in:",PEER_HELP:"server.domein.com:poort"},NOTIFICATIONS:{DIVIDER:"Notificaties",HELP_TEXT:"Schakel het type notificatie dat je wil ontvangen in:",ENABLE_TX_SENT:"Bericht bij validatie van <b>verzonden betalingen</b>?",ENABLE_TX_RECEIVED:"Bericht bij validatie van <b>ontvangen betalingen</b>?",ENABLE_CERT_SENT:"Bericht bij validatie van <b>verzonden certificaties</b>?",ENABLE_CERT_RECEIVED:"Bericht bij validatie van <b>ontvangen certificaties</b>?"},CONFIRM:{ASK_ENABLE_TITLE:"Optionele functies",ASK_ENABLE:'Cesium+ is <b>uitgeschakeld</b> waardoor deze functies niet beschikbaar zijn: <ul><li>&nbsp;&nbsp;<b><i class="icon ion-person"></i> Gebruikersprofielen</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-android-notifcaitions"></i> Notificaties</b>;<li>&nbsp;&nbsp;<b><i class="icon ion-email"></i> Privéberichten</b>.</ul><br/><br/>Wil je deze functies <b>inschakelen</b>?'}},EVENT:{NODE_STARTED:"Je knoop ES API <b>{{params[0]}}</b> is UP",NODE_BMA_DOWN:"Knooppunt <b>{{params[0]}}:{{params[1]}}</b> (gebruikt door je ES API) is <b>onbereikbaar</b>.",NODE_BMA_UP:"Knooppunt <b>{{p0}}:{{params[1]}}</b> is weer bereikbaar.",MEMBER_JOIN:"Je bent nu <b>lid</b> van valuta <b>{{params[0]}}</b>!",MEMBER_LEAVE:"Je bent <b>geen lid meer</b> van valuta <b>{{params[0]}}</b>!",MEMBER_ACTIVE:"Je lidmaatschap bij <b>{{params[0]}}</b> is met <b>succes verlengd</b>.",TX_SENT:"Je <b>betaling</b> aan <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",TX_SENT_MULTI:"Je <b>betaling</b> aan <b>{{params[1]}}</b> is uitgevoerd.",TX_RECEIVED:"Je hebt een <b>betaling ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",TX_RECEIVED_MULTI:"Je hebt een <b>betaling ontvangen</b> van <b>{{params[1]}}</b>.",CERT_SENT:"Je <b>certificatie</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\" ><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> is uitgevoerd.",CERT_RECEIVED:"Je hebt een <b>certificatie ontvangen</b> van <span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid}\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span>.",REGISTRY:{NEW_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft gereageerd op jouw referentie: <b>{{params[2]}}</b>",UPDATE_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/aar reactie op jouw referentie bewerkt: <b>{{params[2]}}</b>",NEW_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> hheeft gereageerd op jouw commentaar op referentie: <b>{{params[2]}}</b>",UPDATE_REPLY_COMMENT:"<span ng-class=\"{'gray': !notification.uid, 'positive':notification.uid }\"><i class=\"icon\" ng-class=\"{'ion-person': notification.uid, 'ion-key': !notification.uid}\"></i>&thinsp;{{name||uid||params[1]}}</span> heeft zijn/haar reactie op jouw commentaar bewerkt, op referentie: <b>{{params[2]}}</b>"}},CONFIRM:{ES_USE_FALLBACK_NODE:"Knooppunt <b>{{old}}</b> onbereikbaar of ongeldig adres.<br/><br/>Tijdelijk knooppunt <b>{{new}}</b> gebruiken?"},ERROR:{ES_CONNECTION_ERROR:'Knooppunt <b>{{server}}</b> onbereikbaar of ongeldig adres.<br/><br/>Cesium zal verder weken, <b>zonder de Cesium+ uitbreiding</b> (gebruikersprofielens, privéberichten, kaarten en grafieken).<br/><br/>Controleer je internetverbinding, of verander je knooppunt in <a class="positive" ng-click="doQuickFix(\'settings\')">instellingen</a>.',ES_MAX_UPLOAD_BODY_SIZE:"De hoveelheid te verzenden gegevens is overschrijdt de serverlimiet.<br/><br/>Probeer het nogmaals na, bijvoorbeeld, het wissen foto's."}}),e.translations("en-GB",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("en",{NETWORK:{VIEW:{BTN_GRAPH:"Statistics"}},GRAPH:{COMMON:{LINEAR_SCALE:"Linear scale",LOGARITHMIC_SCALE:"Logarithmic scale",BTN_SHOW_STATS:"See statistics",BTN_SHOW_DETAILED_STATS:"Detailed statistics",RANGE_DURATION_DIVIDER:"Step unit:",RANGE_DURATION:{HOUR:"Group by <b>hour</b>",DAY:"Group by <b>day</b>",MONTH:"Group by <b>month</b>"}},ACCOUNT:{TITLE:"Statistics",BTN_SHOW_STATS:"View account Statistics",BALANCE_DIVIDER:"Account status",BALANCE_TITLE:"Evolution of the account {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Receipts",TX_SENT_LABEL:"Spending",UD_LABEL:"UD",BALANCE_LABEL:"Balance",INPUT_CHART_TITLE:"Sum of incoming flows, per transmitter:",OUTPUT_CHART_TITLE:"Sum of outgoing flows, per recipient:"},BLOCKCHAIN:{TITLE:"Statistics",BLOCKS_ISSUERS_DIVIDER:"Written blocks by members",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> calculated <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Number of blocks calculated per member",BLOCKS_ISSUERS_LABEL:"Number of blocks",TX_DIVIDER:"Analysis of transactions",TX_AMOUNT_TITLE:"Transaction volume",TX_AMOUNT_PUBKEY_TITLE:"Volume of transactions calculated by {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Exchange volume",TX_COUNT_TITLE:"Number of written transactions",TX_COUNT_LABEL:"Number of transactions",TX_AVG_BY_BLOCK:"Average per block"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution of the monetary mass",MONETARY_MASS_LABEL:"Monetary mass",MONETARY_MASS_SHARE_LABEL:"Average per member",UD_TITLE:"Evolution of the universal dividend",MEMBERS_COUNT_TITLE:"Evolution of the number of members",MEMBERS_COUNT_LABEL:"Number of members"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Computed blocks count",BLOCK_COUNT:"{{count}} blocks",NO_BLOCK:"No block"}},DOC_STATS:{TITLE:"Data storage statistics (Cesium+)",USER:{TITLE:"Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},USER_DELTA:{TITLE:"Delta / Number of documents linked to an account",USER_PROFILE:"User profiles",USER_SETTINGS:"Saved settings"},MESSAGE:{TITLE:"Number of documents related to the communication",MESSAGE_INBOX:"Messages in inbox",MESSAGE_OUTBOX:"Messages in outbox",INVITATION_CERTIFICATION:"Invitations to certify"},SOCIAL:{TITLE:"Number of page or group",PAGE_COMMENT:"Comments",PAGE_RECORD:"Pages",GROUP_RECORD:"Groups"},OTHER:{TITLE:"Other documents",HISTORY_DELETE:"Deletion of documents"}}}}),e.translations("eo-EO",{NETWORK:{VIEW:{BTN_GRAPH:"Statistikoj"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineara skalo",LOGARITHMIC_SCALE:"Logaritma skalo",BTN_SHOW_STATS:"Vidi la statistikojn",BTN_SHOW_DETAILED_STATS:"Detalaj statistikoj",RANGE_DURATION_DIVIDER:"Tempo-unuo:",RANGE_DURATION:{HOUR:"Horo",DAY:"Tago",MONTH:"Monato"}},ACCOUNT:{TITLE:"Statistikoj",BTN_SHOW_STATS:"Vidi la statistikojn de la konto",BALANCE_DIVIDER:"Stato de la konto",BALANCE_TITLE:"Evoluo de la konto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Enspezoj",TX_SENT_LABEL:"Elspezoj",TX_ACCUMULATION_LABEL:"Bilanco de la spezoj",UD_LABEL:"UD",UD_ACCUMULATION_LABEL:"Bilanco de la UD",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Reto de fido",CERTIFICATION_TITLE:"Nombro de atestaĵoj - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Tuto pri la ricevitaj",RECEIVED_CERT_DELTA_LABEL:"Vario pri la ricevitaj",GIVEN_CERT_LABEL:"Tuto pri la senditaj",GIVEN_CERT_DELTA_LABEL:"Vario pri la senditaj",INPUT_CHART_TITLE:"Sumo de la enirantaj fluoj, por ĉiu sendinto:",OUTPUT_CHART_TITLE:"Sumo de la elirantaj fluoj, por ĉiu ricevinto:"},BLOCKCHAIN:{TITLE:"Statistikoj",BLOCKS_ISSUERS_DIVIDER:"Analizo de la kalkul-distribuo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membroj</b> kalkulis <b>{{blockCount|formatInteger}} blokojn</b>",BLOCKS_ISSUERS_TITLE:"Nombro de blokoj kalkulitaj por membro",BLOCKS_ISSUERS_LABEL:"Nombro de blokoj",TX_DIVIDER:"Analizo de la spezoj",TX_AMOUNT_TITLE:"Kvanto de la spezoj",TX_AMOUNT_PUBKEY_TITLE:"Kvanto de spezoj kalkulitaj de {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Kvanto interŝanĝita",TX_COUNT_TITLE:"Nombro de spezoj skribitaj",TX_COUNT_LABEL:"Nombro de spezoj",TX_AVG_BY_BLOCK:"Meza nombro de spezoj / bloko"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluo de la mona maso",MONETARY_MASS_LABEL:"Mona maso",MONETARY_MASS_SHARE_LABEL:"Mezumo por membro",UD_TITLE:"Evoluo de la universala dividendo",MEMBERS_COUNT_TITLE:"Evoluo de la nombro de membroj",MEMBERS_COUNT_LABEL:"Nombro de membroj"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombro de blokoj kalkulitaj",BLOCK_COUNT:"{{count}} blokoj",NO_BLOCK:"Neniu bloko"}},DOC_STATS:{TITLE:"Statistikoj pri stokado",USER:{TITLE:"Nombro de dokumentoj ligitaj al konto",USER_PROFILE:"Uzanto-profiloj",USER_SETTINGS:"Parametroj konservitaj"},MESSAGE:{TITLE:"Nombro de dokumentoj ligitaj al komunikado",MESSAGE_INBOX:"Mesaĝoj en ricevujo",MESSAGE_OUTBOX:"Senditaj mesaĝoj konservitaj",INVITATION_CERTIFICATION:"Invitoj atestotaj"},SOCIAL:{TITLE:"Nombro de paĝoj aŭ grupoj",PAGE_COMMENT:"Komentoj",PAGE_RECORD:"Paĝoj",GROUP_RECORD:"Grupoj"},OTHER:{TITLE:"Aliaj dokumentoj",HISTORY_DELETE:"Forigoj de dokumentoj"}},SYNCHRO:{TITLE:"Statistikoj pri sinkronigoj",COUNT:{TITLE:"Kvanto sinkronigita",INSERTS:"Enmetoj",UPDATES:"Ĝisdatigoj",DELETES:"Forigoj"},PEER:{TITLE:"Nodoj informpetitaj",ES_USER_API:"Nodoj pri datenoj de uzantoj",ES_SUBSCRIPTION_API:"Nodoj pri retaj servoj"},PERFORMANCE:{TITLE:"Efikecoj pri efektiviĝo",DURATION:"Tempo por efektiviĝo (ms)"}}}}),e.translations("es-ES",{NETWORK:{VIEW:{BTN_GRAPH:"Estadística"}},GRAPH:{COMMON:{LINEAR_SCALE:"Escala lineal",LOGARITHMIC_SCALE:"Escala logarítmica",BTN_SHOW_STATS:"Ver estadísticas",BTN_SHOW_DETAILED_STATS:"Estadísticas detalladas",RANGE_DURATION_DIVIDER:"Unidad de paso:",RANGE_DURATION:{HOUR:"Grupo por <b>hora</b>",DAY:"Grupo por <b>día</b>",MONTH:"Grupo por <b>mes</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Suma del flujo entrante, por el transmisor:",OUTPUT_CHART_TITLE:"Suma de las salidas por destino:"},BLOCKCHAIN:{TITLE:"Estadística",BLOCKS_ISSUERS_DIVIDER:"Bloques escritos por los miembros",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} members</b> has computed <b>{{blockCount|formatInteger}} blocks</b>",BLOCKS_ISSUERS_TITLE:"Número de bloques miembro calculado",BLOCKS_ISSUERS_LABEL:"Número de bloques",TX_DIVIDER:"Análisis de transacciones",TX_AMOUNT_TITLE:"El volumen de operaciones",TX_AMOUNT_PUBKEY_TITLE:"El volumen de operaciones calculado por {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volumen negociado",TX_COUNT_TITLE:"Número de transacciones escritas",TX_COUNT_LABEL:"Número de transacciones",TX_AVG_BY_BLOCK:"Promedio por bloque"},CURRENCY:{MONETARY_MASS_TITLE:"Evolución de la masa monetaria",MONETARY_MASS_LABEL:"Masa monetaria",MONETARY_MASS_SHARE_LABEL:"Promedio miembro",UD_TITLE:"Evolución del dividendo universales",MEMBERS_COUNT_TITLE:"Evolución del número de miembros",MEMBERS_COUNT_LABEL:"Número de miembros"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Número de bloques calculados",BLOCK_COUNT:"{{count}} bloques",NO_BLOCK:"Ningún bloque"}}}}),e.translations("fr-FR",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiques"}},GRAPH:{COMMON:{LINEAR_SCALE:"Echelle linéaire",LOGARITHMIC_SCALE:"Echelle logarithmique",BTN_SHOW_STATS:"Voir les statistiques",BTN_SHOW_DETAILED_STATS:"Statistiques détaillées",RANGE_DURATION_DIVIDER:"Unité de temps :",RANGE_DURATION:{HOUR:"Heure",DAY:"Jour",MONTH:"Mois"}},ACCOUNT:{TITLE:"Statistiques",BTN_SHOW_STATS:"Voir les statistiques du compte",BALANCE_DIVIDER:"Situation du compte",BALANCE_TITLE:"Evolution du compte {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Recettes",TX_SENT_LABEL:"Dépenses",TX_ACCUMULATION_LABEL:"Bilan des transactions",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilan des DU",BALANCE_LABEL:"Solde",WOT_DIVIDER:"Toile de confiance",CERTIFICATION_TITLE:"Nombre de certifications - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Total reçues",RECEIVED_CERT_DELTA_LABEL:"Variation reçues",GIVEN_CERT_LABEL:"Total envoyées",GIVEN_CERT_DELTA_LABEL:"Variation envoyées",INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},BLOCKCHAIN:{TITLE:"Statistiques",BLOCKS_ISSUERS_DIVIDER:"Analyse de la répartition du calcul",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membres</b> ont calculé <b>{{blockCount|formatInteger}} blocs</b>",BLOCKS_ISSUERS_TITLE:"Nombre de blocs calculés par membre",BLOCKS_ISSUERS_LABEL:"Nombre de blocs",TX_DIVIDER:"Analyse des transactions",TX_AMOUNT_TITLE:"Volume des transactions",TX_AMOUNT_PUBKEY_TITLE:"Volume des transactions calculées par {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume échangé",TX_COUNT_TITLE:"Nombre de transactions écrites",TX_COUNT_LABEL:"Nombre de transactions",TX_AVG_BY_BLOCK:"Nombre moyen de transactions / bloc"},CURRENCY:{MONETARY_MASS_TITLE:"Evolution de la masse monétaire",MONETARY_MASS_LABEL:"Masse monétaire",MONETARY_MASS_SHARE_LABEL:"Moyenne par membre",UD_TITLE:"Evolution du dividende universel",MEMBERS_COUNT_TITLE:"Evolution du nombre de membres",MEMBERS_COUNT_LABEL:"Nombre de membres"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Nombre de blocs calculés",BLOCK_COUNT:"{{count}} blocs",NO_BLOCK:"Aucun bloc"}},DOC_STATS:{TITLE:"Statistiques de stockage (Cesium+)",USER:{TITLE:"Nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},USER_DELTA:{TITLE:"Variation du nombre de documents liés à un compte",USER_PROFILE:"Profils utilisateur",USER_SETTINGS:"Paramètres sauvegardés"},MESSAGE:{TITLE:"Nombre de documents liés à la communication",MESSAGE_INBOX:"Messages en boîte de réception",MESSAGE_OUTBOX:"Messages envoyés sauvegardés",INVITATION_CERTIFICATION:"Invitations à certifier"},SOCIAL:{TITLE:"Nombre de pages ou groupes",PAGE_COMMENT:"Commentaires",PAGE_RECORD:"Pages",GROUP_RECORD:"Groupes"},OTHER:{TITLE:"Autres documents",HISTORY_DELETE:"Suppressions de documents"}},SYNCHRO:{TITLE:"Statistiques de synchronisations",COUNT:{TITLE:"Volume synchronisé",INSERTS:"Insertions",UPDATES:"Mises à jour",DELETES:"Suppressions"},PEER:{TITLE:"Noeuds requêtés",ES_USER_API:"Noeuds données utilisateurs",ES_SUBSCRIPTION_API:"Noeuds services en ligne"},PERFORMANCE:{TITLE:"Performances d'exécution",DURATION:"Temps d'exécution (ms)"}}}}),e.translations("it-IT",{NETWORK:{VIEW:{BTN_GRAPH:"Statistiche"}},GRAPH:{COMMON:{LINEAR_SCALE:"Scala lineare",LOGARITHMIC_SCALE:"Scala logaritmica",BTN_SHOW_STATS:"Vedere le statistiche",BTN_SHOW_DETAILED_STATS:"Statistiche dettagliate",RANGE_DURATION_DIVIDER:"Unità di tempo :",RANGE_DURATION:{HOUR:"Ora",DAY:"Giorno",MONTH:"Mese"}},ACCOUNT:{TITLE:"Statistiche",BTN_SHOW_STATS:"Visualizzare le statistiche del conto",BALANCE_DIVIDER:"Situazione del conto",BALANCE_TITLE:"Evoluzione del conto {{pubkey|formatPubkey}}",TX_RECEIVED_LABEL:"Incassi",TX_SENT_LABEL:"Spese",TX_ACCUMULATION_LABEL:"Bilancio delle transazioni",UD_LABEL:"DU",UD_ACCUMULATION_LABEL:"Bilancio dei DU",BALANCE_LABEL:"Saldo",WOT_DIVIDER:"Tela di fiducia",CERTIFICATION_TITLE:"Numero di certificazioni - {{pubkey|formatPubkey}}",RECEIVED_CERT_LABEL:"Totale ricevute",RECEIVED_CERT_DELTA_LABEL:"Variazione ricevute",GIVEN_CERT_LABEL:"Totale inviate",GIVEN_CERT_DELTA_LABEL:"Variazione inviate",INPUT_CHART_TITLE:"Somma dei flussi in entrata, par emittente :",OUTPUT_CHART_TITLE:"Somma dei flussi in uscita, per destinatario :"},BLOCKCHAIN:{TITLE:"Statistiche",BLOCKS_ISSUERS_DIVIDER:"Analisi della ripartizione del calcolo",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} membri</b> hanno calcolato <b>{{blockCount|formatInteger}} blocchi</b>",BLOCKS_ISSUERS_TITLE:"Numero di blocchi calcolati a membro",BLOCKS_ISSUERS_LABEL:"Numero di blocchi",TX_DIVIDER:"Analisi delle transazioni",TX_AMOUNT_TITLE:"Volume delle transazioni",TX_AMOUNT_PUBKEY_TITLE:"Volume delle transazioni calcolato da {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Volume scambiato",TX_COUNT_TITLE:"Numero di transazioni scritte",TX_COUNT_LABEL:"Numero di transazioni",TX_AVG_BY_BLOCK:"Numero medio di transazioni / blocco"},CURRENCY:{MONETARY_MASS_TITLE:"Evoluzione della massa monetaria",MONETARY_MASS_LABEL:"Massa monetaria",MONETARY_MASS_SHARE_LABEL:"Media a membro",UD_TITLE:"Evoluzione del Dividendo Universale",MEMBERS_COUNT_TITLE:"Evoluzione del numero di membri",MEMBERS_COUNT_LABEL:"Numero di membri"},PEER:{VIEW:{BLOCK_COUNT_LABEL:"Numero di blocchi calcolati",BLOCK_COUNT:"{{count}} blocchi",NO_BLOCK:"Nessun blocco"}},DOC_STATS:{TITLE:"Statistiche di stoccaggio",USER:{TITLE:"Numero di documenti legati ad un conto",USER_PROFILE:"Profili dell'utente",USER_SETTINGS:"Impostazioni salvate"},MESSAGE:{TITLE:"Numero di documenti legati alla conversazione",MESSAGE_INBOX:"Messaggi in arrivo",MESSAGE_OUTBOX:"Messaggi inviati salvati",INVITATION_CERTIFICATION:"Invitazioni da certificare"},SOCIAL:{TITLE:"Numero di pagine o gruppi",PAGE_COMMENT:"Commenti",PAGE_RECORD:"Pagine",GROUP_RECORD:"Gruppi"},OTHER:{TITLE:"Altri documenti",HISTORY_DELETE:"Cronologia eliminazione documenti"}},SYNCHRO:{TITLE:"Statistiche di sincronizzazioni",COUNT:{TITLE:"Volume sincronizzato",INSERTS:"Inserimenti",UPDATES:"Aggiornamenti",DELETES:"Eliminazioni"},PEER:{TITLE:"Nodi interrogati",ES_USER_API:"Nodi dati utenti",ES_SUBSCRIPTION_API:"Noeuds servizi online"},PERFORMANCE:{TITLE:"Prestazioni (performance) di esecuzione",DURATION:"Tempo di esecuzione (ms)"}}}}),e.translations("nl-NL",{NETWORK:{VIEW:{BTN_GRAPH:"Statistieken"}},GRAPH:{COMMON:{LINEAR_SCALE:"Lineaire schaal",LOGARITHMIC_SCALE:"Logaritmische schaal",BTN_SHOW_STATS:"Zie statistieken",BTN_SHOW_DETAILED_STATS:"Gedetailleerde statistieken",RANGE_DURATION_DIVIDER:"Stap eenheid:",RANGE_DURATION:{HOUR:"Groep per <b>uur</b>",DAY:"Groep per <b>dag</b>",MONTH:"Groep per <b>maand</b>"}},ACCOUNT:{INPUT_CHART_TITLE:"Som van de binnenkomende stroom, door de zender:",OUTPUT_CHART_TITLE:"Som van de uitstroom per bestemming:"},BLOCKCHAIN:{TITLE:"Statistieken",BLOCKS_ISSUERS_DIVIDER:"Schriftelijke blokken door leden",BLOCKS_ISSUERS_HELP:"<b>{{issuerCount|formatInteger}} leden</b> berekend <b>{{blockCount|formatInteger}} blokken</b>",BLOCKS_ISSUERS_TITLE:"Aantal blokken berekend per lid",BLOCKS_ISSUERS_LABEL:"Aantal blokken",TX_DIVIDER:"Analyse van transacties",TX_AMOUNT_TITLE:"Trading volume",TX_AMOUNT_PUBKEY_TITLE:"Trading volume dat wordt berekend door {{issuer | formatPubkey}}",TX_AMOUNT_LABEL:"Verhandeld volume",TX_COUNT_TITLE:"Aantal schriftelijke transacties",TX_COUNT_LABEL:"Aantal transacties",TX_AVG_BY_BLOCK:"Gemiddeld aantal transacties / blok"},CURRENCY:{MONETARY_MASS_TITLE:"Evolutie van de monetaire massa",MONETARY_MASS_LABEL:"Monetaire massa",MONETARY_MASS_SHARE_LABEL:"Gemiddelde leden",UD_TITLE:"Ontwikkeling van de universele dividend",MEMBERS_COUNT_TITLE:"Evolutie van het aantal leden",MEMBERS_COUNT_LABEL:"Aantal leden"}}}),e.translations("en-GB",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{
+MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("en",{MAP:{COMMON:{SEARCH_DOTS:"Search...",BTN_LOCALIZE_ME:"Localize me"},NETWORK:{LOOKUP:{BTN_MAP:"Peers map",BTN_MAP_HELP:"Open peers map"},VIEW:{TITLE:"Peers map",LAYER:{MEMBER:"Member peers",MIRROR:"Mirror peers",OFFLINE:"Offline peers"}}},WOT:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open members map"},VIEW:{TITLE:"Members map",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Members',PENDING:'<i class="icon ion-clock energized"></i> Pending registrations',WALLET:'<i class="icon ion-card gray"></i> Simple wallets'}},ERROR:{LOAD_POSITION_FAILED:"Can not retrieve the positions to display."}},REGISTRY:{LOOKUP:{BTN_MAP:"Map",BTN_MAP_HELP:"Open the map of the pages"},VIEW:{TITLE:"Map of pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Local shops',COMPANY:'<i class="icon ion-page-company positive"></i> Companies',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> this marker to <b>update<br/>your position</b>, or use the buttons<br/>on top of the map."},ERROR:{LOCALIZE_ME_FAILED:"Unable to retrieve your current position"},SETTINGS:{MAP_DIVIDER:"Maps",ENABLE_GOOGLE_API:"Enable Google API services?",ENABLE_GOOGLE_API_HELP:"In the <b>members map</b>, allows you to display accounts with an address but without geolocation.",GOOGLE_API_KEY:"Google API key",BTN_GOOGLE_API:"Getting a key",BTN_GOOGLE_API_WARNING:"requires a Google account",GOOGLE_API_KEY_PLACEHOLDER:"eg: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"This map displays <b>profiles with a position</b>, whether they are member accounts or not.<br/><br/>Only profiles with the option &quot;appear on the map&quot; has been activated.",WOT_BTN_LAYERS:"<b>Filter the displayed data</b>: members, pending registrations, simple portfolios, etc.",WOT_BTN_SEARCH:"You can <b>search</b> by name, public key, or member pseudonym."}}}}),e.translations("eo-EO",{MAP:{COMMON:{SEARCH_DOTS:"Traserĉi...",BTN_LOCALIZE_ME:"Lokalizi min"},NETWORK:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri nodoj"},VIEW:{TITLE:"Mapo pri nodoj",LAYER:{MEMBER:"Membro-nodoj",MIRROR:"Spegul-nodoj",OFFLINE:"Nekonektitaj nodoj"}}},WOT:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri membroj"},VIEW:{TITLE:"Mapo pri membroj",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membroj',PENDING:'<i class="icon ion-clock energized"></i> Aliĝoj atendantaj',WALLET:'<i class="icon ion-card gray"></i> Simplaj monujoj'}},ERROR:{LOAD_POSITION_FAILED:"Neeblas ricevi la lokojn afiŝotajn."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mapo",BTN_MAP_HELP:"Malfermi la mapon pri paĝoj"},VIEW:{TITLE:"Mapo pri paĝoj",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Lokaj komercoj',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprenoj',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Asocioj',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institucioj'}}},PROFILE:{MARKER_HELP:"<b>Ŝovu-demetu</b> tiun ĉi markilon por <b>aktualigi<br/> vian lokon</b> sur la mapo, aŭ uzu la serĉo-butonon<br/>super la mapo."},ERROR:{LOCALIZE_ME_FAILED:"Neeblas ricevi vian nunan lokon"},SETTINGS:{MAP_DIVIDER:"Mapoj",ENABLE_GOOGLE_API:"Aktivigi la Google-API-servojn?",ENABLE_GOOGLE_API_HELP:"Ebligas afiŝi sur la <b>mapo pri membroj</b> kontojn kun adreso sed sen iu GPS-lokalizo.",GOOGLE_API_KEY:"Google-API-ŝlosilo",BTN_GOOGLE_API:"Ekhavi ŝlosilon",BTN_GOOGLE_API_WARNING:"Necesigas havi Google-konton",GOOGLE_API_KEY_PLACEHOLDER:"Ekzemple: AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Tiu ĉi mapo afiŝas <b>la profilojn kun loko</b>, ĉu ili rilatas al membro-kontoj aŭ ne.<br/><br/>Nur videblas la profiloj, kies kromaĵo &quot;aperi sur la mapo&quot; estis aktivigita.",WOT_BTN_LAYERS:"<b>Filtru ĉi tie la afiŝitajn datenojn</b>: membroj, aliĝoj atendantaj, simplaj monujoj, ktp.",WOT_BTN_SEARCH:"Vi povas <b>efektivigi serĉadon</b> laŭ nomo, publika ŝlosilo aŭ membro-pseŭdonimo."}}}}),e.translations("fr-FR",{MAP:{COMMON:{SEARCH_DOTS:"Rechercher...",BTN_LOCALIZE_ME:"Me localiser"},NETWORK:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des noeuds"},VIEW:{TITLE:"Carte des noeuds",LAYER:{MEMBER:"Nœuds membre",MIRROR:"Nœuds miroir",OFFLINE:"Nœuds hors ligne"}}},WOT:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des membres"},VIEW:{TITLE:"Carte des membres",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membres',PENDING:'<i class="icon ion-clock energized"></i> Inscriptions en attente',WALLET:'<i class="icon ion-card gray"></i> Simples portefeuilles'}},ERROR:{LOAD_POSITION_FAILED:"Impossible de récupérer les positions à afficher."}},REGISTRY:{LOOKUP:{BTN_MAP:"Carte",BTN_MAP_HELP:"Ouvrir la carte des pages"},VIEW:{TITLE:"Carte des pages",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Commerces locaux',COMPANY:'<i class="icon ion-page-company positive"></i> Entreprises',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associations',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Institutions'}}},PROFILE:{MARKER_HELP:"<b>Glissez-déposez</b> ce marqueur pour <b>mettre<br/>à jour votre position</b> sur la carte, ou utilisez le bouton<br/>de recherche au-dessus de la carte."},ERROR:{LOCALIZE_ME_FAILED:"Impossible de récupérer votre position actuelle"},SETTINGS:{MAP_DIVIDER:"Cartes",ENABLE_GOOGLE_API:"Activer les services Google API ?",ENABLE_GOOGLE_API_HELP:"Permet l'affichage dans la <b>carte des membres</b> des comptes ayant une adresse mais aucun positionnement GPS.",GOOGLE_API_KEY:"Clé d'API Google",BTN_GOOGLE_API:"Obtenir une clé",BTN_GOOGLE_API_WARNING:"Nécessite d'avoir un compte Google",GOOGLE_API_KEY_PLACEHOLDER:"Exemple : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Cette carte affiche <b>les profils ayant une position</b>, qu'ils correspondent à des comptes membre ou non.<br/><br/>Seuls sont visibles les profils dont l'option &quot;apparaître sur la carte&quot; a été activée.",WOT_BTN_LAYERS:"<b>Filtrez ici les données affichées</b> : membres, inscriptions en attente, simples portefeuilles, etc.",WOT_BTN_SEARCH:"Vous pouvez <b>effectuer une recherche</b> par nom, clef publique ou pseudonyme de membre."}}}}),e.translations("it-IT",{MAP:{COMMON:{SEARCH_DOTS:"Ricerca...",BTN_LOCALIZE_ME:"Trovami"},NETWORK:{LOOKUP:{BTN_MAP:"Mappa dei peers",BTN_MAP_HELP:"Aprire mappa dei peers"},VIEW:{TITLE:"Mappa dei peers",LAYER:{MEMBER:"Peers membri",MIRROR:"Peers specchi",OFFLINE:"Peers offline"}}},WOT:{LOOKUP:{BTN_MAP:"Mappa dei membri",BTN_MAP_HELP:"Aprire mappa dei membri"},VIEW:{TITLE:"Mappa membri",LAYER:{MEMBER:'<i class="icon ion-person positive"></i> Membri',PENDING:'<i class="icon ion-clock energized"></i> Registrazione pendenti',WALLET:'<i class="icon ion-card gray"></i> Portafogli osservatori'}},ERROR:{LOAD_POSITION_FAILED:"Errore nel caricamento delle posizioni."}},REGISTRY:{LOOKUP:{BTN_MAP:"Mappa",BTN_MAP_HELP:"Aprire la mappa delle pagine pro"},VIEW:{TITLE:"Mappa delle pagine pro",LAYER:{SHOP:'<i class="icon ion-page-shop positive"></i> Negozi locali',COMPANY:'<i class="icon ion-page-company positive"></i> Aziende',ASSOCIATION:'<i class="icon ion-page-association energized"></i> Associazioni',INSTITUTION:'<i class="icon ion-page-institution gray"></i> Instituti'}}},PROFILE:{MARKER_HELP:"<b>Drag and drop</b> questo indicatore per <b>aggiornare<br/>tua posizione</b>, o usa i bottoni <br/>sopra la mappa."},ERROR:{LOCALIZE_ME_FAILED:"Impossible trovare tua posizione attuale"},SETTINGS:{MAP_DIVIDER:"Mappe",ENABLE_GOOGLE_API:"Abilitare i servizi Google API ?",ENABLE_GOOGLE_API_HELP:"Sulla <b>mappa dei membri</b>, ti permette di visualizzare i conti con un indirizzo ma senza geolocalizzazione.",GOOGLE_API_KEY:"Chiave Google API",BTN_GOOGLE_API:"Ottenere una chiave",BTN_GOOGLE_API_WARNING:"necessita un conto Google",GOOGLE_API_KEY_PLACEHOLDER:"per es. : AIzaqyAgszvWm0tM81x1sMK_ipDHBI7EowLqR7I"},HELP:{TIP:{WOT:"Questa mappa mostra <b>profili che hanno fornito una posizione</b>, che siano conti membri o no.<br/><br/>Solo i profili che hanno attivato l'opzione &quot;apparire sulla mappa&quot; sono stati attivati.",WOT_BTN_LAYERS:"<b>Filtrare i dati visibili</b>: membri, registrazioni pendenti, portafogli osservatori, etc.",WOT_BTN_SEARCH:"Puoi <b>cercare</b> per nome, chiave pubblica, o pseudonimo del membro."}}}}),e.translations("fr-FR",{RML9:{BTN_EXPORT:"Télécharger",BTN_OPEN:"Ouvrir la page RML9",BTN_SWOW_TX:"Voir les transactions",FILE_NAME:"relevé du compte {{pubkey|formatPubkey}} au {{currentTime|formatDateForFile}}.csv",HEADERS:{TIME:"Date",AMOUNT:"Montant",COMMENT:"Commentaire"},VIEW:{TITLE:"RML9",DIVIDER:"Dernières transactions :",BALANCE:"Solde du compte"},CHART:{INPUT_CHART_TITLE:"Somme des flux entrants, par émetteur :",OUTPUT_CHART_TITLE:"Somme des flux sortants, par destinaire :"},SETTINGS:{ENABLE_TOGGLE:"Activer le plugin RML9 ?"}}})}]),angular.module("cesium.plugins.templates",[]).run(["$templateCache",function(e){e.put("plugins/es/templates/menu_extend.html",'<div ng-if=":state:enable && extensionPoint === \'menu-user\'" class="visible-xs visible-sm"><a menu-close="" class="item item-icon-left" active-link="active" ng-if="login && walletData.isMember" active-link-path-prefix="#/app/invitations" ui-sref="app.view_invitations"><i class="icon ion-person-stalker"></i> <span translate="">MENU.INVITATIONS</span> <span class="badge badge-positive" ng-if="walletData.invitations.unreadCount">{{walletData.invitations.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/user/message" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.user_message.tab_inbox"><i class="icon ion-email"></i> <span translate="">MENU.MESSAGES</span> <span class="badge badge-positive" ng-if="walletData.messages.unreadCount">{{walletData.messages.unreadCount}}</span> </a><a menu-close="" class="item item-icon-left" active-link="active" active-link-path-prefix="#/app/notifications" ng-class="{\'item-menu-disable\': !login}" ui-sref="app.view_notifications"><i class="icon ion-android-notifications"></i> <span translate="">MENU.NOTIFICATIONS</span> <span class="badge badge-positive" ng-if="walletData.notifications.unreadCount">{{walletData.notifications.unreadCount}}</span></a></div>'),e.put("plugins/rml9/templates/01-button.html",'\x3c!-- Button that call a function of the controller --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ng-click="onButtonClick()"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button>\n\n\x3c!-- Button: Open a view, using `ui-sref` attribute\n<button class="button button-balanced button-small-padding icon ion-plus-circled"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_OPEN\' | translate}}">\n</button> --\x3e\n\n'),e.put("plugins/rml9/templates/02-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item" ng-repeat="item in items">\n        <h3>{{item.time|formatDate}}</h3>\n        <h4>{{item.pubkey|formatPubkey}}</h4>\n        <div class="badge">{{item.amount|formatAmount}}</div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/03-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/03-view_with_button.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="item item-text-wrap" ng-repeat="item in items">\n\n        <h3>\n          {{item.time|formatDate}}\n          <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n        </h3>\n\n        <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n        <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n        <div class="badge"\n             ng-class="{\'badge-balanced\': item.amount > 0}">\n          {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/04-view_chart.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n\n      <div class="row">\n        <div class="col col-75">\n          \x3c!-- iterate on each TX --\x3e\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels"\n                  chart-colors="inputChart.colors">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels"\n                  chart-colors="outputChart.colors">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/rml9/templates/06-button.html",'\x3c!-- [NEW] Display only if plugin is enable --\x3e\n\n  \x3c!-- Button: call a method from the state controller --\x3e\n  <button ng-if="enable" class="button button-balanced button-small-padding icon ion-android-archive"\n          ng-click="onButtonClick()"\n          title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n  </button>\n\n\n'),e.put("plugins/rml9/templates/06-settings_item.html",'\n<div class="item item-toggle dark">\n  <div class="input-label" translate>RML9.SETTINGS.ENABLE_TOGGLE</div>\n  <label class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.plugins.rml9.enable" >\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </label>\n</div>\n'),e.put("plugins/rml9/templates/07-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/07-view.html",'<leaflet id="map-geojson" center="map.center" geojson="map.geojson"></leaflet>\n'),e.put("plugins/rml9/templates/final-button.html",'\x3c!-- Button: Open a view, using `ui-sref` attribute --\x3e\n<button ng-if class="button button-balanced button-small-padding icon ion-android-archive"\n        ui-sref="app.rml9({pubkey: formData.pubkey})"\n        title="{{\'RML9.BTN_SWOW_TX\' | translate}}">\n</button>\n\n'),e.put("plugins/rml9/templates/final-view.html",'<ion-view left-buttons="leftButtons">\n  <ion-nav-title>\n    {{\'RML9.VIEW.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content>\n    <div class="list">\n\n      \x3c!-- buttons bar --\x3e\n      <div class="center padding">\n        <div class="buttons">\n          <button class="button button-balanced icon-left icon ion-archive"\n                  ng-click="onExportButtonClick()">{{\'RML9.BTN_EXPORT\' | translate}}\n          </button>\n        </div>\n      </div>\n\n      \x3c!-- the pubkey --\x3e\n      <div class="item">\n        {{\'COMMON.PUBKEY\'|translate}}\n        <div class="badge">{{pubkey|formatPubkey}}</div>\n      </div>\n\n      \x3c!-- the balance --\x3e\n      <div class="item">\n        {{\'RML9.VIEW.BALANCE\'|translate}}\n        <div class="badge badge-calm">\n          {{balance|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n        </div>\n      </div>\n\n      \x3c!-- a text divider--\x3e\n      <div class="item item-divider">{{\'RML9.VIEW.DIVIDER\'|translate:{pubkey: pubkey} }}</div>\n\n      \x3c!-- iterate on each TX --\x3e\n      <div class="row">\n        <div class="col col-75">\n          <div class="item item-text-wrap" ng-repeat="item in items">\n\n            <h3>\n              {{item.time|formatDate}}\n              <span ng-if="item.comment" class="gray"> | {{item.comment}}</span>\n            </h3>\n\n            <h4 ng-if="item.uid" class="positive"><i class="icon ion-person"></i> {{item.name||item.uid}}</h4>\n            <h4 ng-if="!item.uid" class="gray"><i class="icon ion-key"></i> {{item.pubkey|formatPubkey}}</h4>\n\n            <div class="badge"\n                 ng-class="{\'badge-balanced\': item.amount > 0}">\n              {{item.amount|formatAmount}} <span ng-bind-html="$root.currency.name|currencySymbol"></span>\n            </div>\n          </div>\n\n        </div>\n\n        <div class="col col-25">\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.INPUT_CHART_TITLE</p>\n          <canvas id="chart-received-pie" class="chart-pie"\n                  chart-data="inputChart.data"\n                  chart-labels="inputChart.labels">\n          </canvas>\n\n          \x3c!-- [NEW] TX input chart --\x3e\n          <p class="gray" translate>RML9.CHART.OUTPUT_CHART_TITLE</p>\n          <canvas id="chart-sent-pie" class="chart-pie"\n                  chart-data="outputChart.data"\n                  chart-labels="outputChart.labels">\n          </canvas>\n        </div>\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/blockchain/items_blocks.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-if ng-if=":rebind:!smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="!block.empty ? \'templates/blockchain/item_block_lg.html\' : \'templates/blockchain/item_block_empty_lg.html\'"></ng-repeat></ng-if><ng-if ng-if=":rebind:smallscreen"><ng-repeat ng-repeat="block in :rebind:search.results track by block.number" ng-include="\'templates/blockchain/item_block.html\'"></ng-repeat></ng-if>'),e.put("plugins/es/templates/blockchain/lookup.html",'<ion-view><ion-nav-title><span translate>BLOCKCHAIN.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-navicon visible-xs visible-sm" ng-click="toggleCompactMode()"><b class="icon-secondary" ng-class="{\'ion-arrow-down-b\': !compactMode, \'ion-arrow-up-b\': compactMode}" style="top: -12px; left: 11px; font-size: 10px"></b> <b class="icon-secondary" ng-class="{\'ion-arrow-up-b\': !compactMode,\'ion-arrow-down-b\': compactMode}" style="top: 12px; left: 11px; font-size: 10px"></b></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/blockchain/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/blockchain/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><div class="button button-small button-text button-stable button-icon-event padding no-padding-right ink" ng-repeat="filter in search.filters" ng-if="filter"><span ng-bind-html="\'BLOCKCHAIN.LOOKUP.TX_SEARCH_FILTER.\'+filter.type|translate:filter"></span> <i class="icon ion-close" ng-click="itemRemove($index)"></i></div><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'BLOCKCHAIN.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-blockchain-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'last\'" translate="">BLOCKCHAIN.LOOKUP.LAST_BLOCKS</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery">{{\'DOCUMENT.LOOKUP.SHOW_QUERY\'|translate }} <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery">{{\'DOCUMENT.LOOKUP.HIDE_QUERY\'|translate }} <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list list-blocks" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/blockchain/items_blocks.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/blockchain/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>BLOCKCHAIN.LOOKUP.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a ng-if="enableFilter" class="item item-icon-left item-icon-right ink" ng-click="doSearchLast()"><i class="icon ion-clock"></i> {{\'BLOCKCHAIN.LOOKUP.BTN_LAST\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'last\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/common/edit_pictures.html",'<div class="gallery" ng-controller="ESPicturesEditCtrl as ctrl"><div ng-repeat="picture in pictures" class="item card card-gallery stable-bg" ng-class="{\'in done\': picture.isnew}"><div><h2 ng-if="picture.title">{{picture.title}}</h2><img ng-src="{{picture.src}}"></div><div class="item done in tabs tabs-secondary tabs-icon-left"><a class="tab-item stable-bg assertive" ng-click="removePicture($index)" title="{{\'COMMON.BTN_PICTURE_DELETE\' | translate}}"><i class="icon ion-trash-a"></i>{{\'COMMON.BTN_PICTURE_DELETE\'|translate}}</a> <a class="tab-item stable-bg dark" ng-click="rotatePicture($index)" title="{{\'COMMON.BTN_PICTURE_ROTATE\' | translate}}"><i class="icon ion-forward"></i>{{\'COMMON.BTN_PICTURE_ROTATE\'|translate}}</a> <a class="tab-item stable-bg" ng-click="favoritePicture($index)" ng-class="{\'gray\': $index !== 0, \'positive\': $index === 0}" title="{{\'COMMON.BTN_PICTURE_FAVORISE\' | translate}}"><i class="icon ion-star"></i>{{\'COMMON.BTN_PICTURE_FAVORISE\'|translate}}</a></div></div><div class="item card card-gallery card-gallery-new text-center padding ink" ng-click="selectNewPicture(\'#pictureFile\')"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="font-size:80px; position:absolute; top:25px; right: 5px"></b><p translate>COMMON.BTN_ADD_PICTURE</p></div><input type="file" id="pictureFile" accept="image/*" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div>'),e.put("plugins/es/templates/common/edit_position.html",'<div class="item item-divider" translate>LOCATION.LOCATION_DIVIDER</div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label">{{\'LOCATION.ADDRESS\' | translate}}</span><textarea placeholder="{{\'LOCATION.ADDRESS_HELP\' | translate}}" ng-model="formData.address" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.geoPoint.$invalid}"><span class="input-label" translate>LOCATION.CITY</span> <input type="text" placeholder="{{\'LOCATION.CITY_HELP\'|translate}}" ng-model="formData.city" ng-model-options="{ updateOn: \'blur\' }" required-if="formData.address" ng-change="onCityChanged()"></div><input type="hidden" name="geoPoint" ng-model="formData.geoPoint" required-if="formPosition.enable" geo-point><div class="form-errors" ng-show="form.$submitted && form.city.$error" ng-messages="form.city.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.CITY_REQUIRED_IF_STREET"></span></div></div><div class="form-errors" ng-show="form.$submitted && form.geoPoint.$error" ng-messages="form.geoPoint.$error"><div class="form-error" ng-message="required"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div><div class="form-error" ng-message="geoPoint"><span translate="LOCATION.ERROR.REQUIRED_FOR_LOCATION" ng-if="!formData.city"></span> <span translate="LOCATION.ERROR.INVALID_FOR_LOCATION" ng-if="formData.city"></span></div></div><div class="item row item-text-wrap no-padding"><div class="col no-padding"><ion-checkbox ng-model="formPosition.enable" ng-change="onUseGeopointChanged()" class="item item-border-large done in"><div class="item-content"><span translate>LOCATION.USE_GEO_POINT</span><h4 class="gray" ng-if="formPosition.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner>{{\'LOCATION.LOADING_LOCATION\'|translate}}</h4></div></ion-checkbox></div><div class="col col-10 no-padding" style="min-width: 60px"><div class="row text-center"><a class="button button-stable button-small-padding" title="{{\'LOCATION.BTN_GEOLOC_ADDRESS\'|translate}}" ng-disabled="!formPosition.enable" ng-click="openSearchLocationModal()"><i class="icon ion-home" style="left: 15px"></i> <b class="icon-secondary ion-search" style="top: -9px; left:32px; font-size: 18px"></b></a></div></div></div><cs-extension-point name="after-position"></cs-extension-point>'),e.put("plugins/es/templates/common/edit_socials.html",'<ion-list class="no-padding"><div class="item item-divider"><span>{{\'PROFILE.SOCIAL_NETWORKS_DIVIDER\' | translate}} </span><a class="badge button button-text button-small button-small-padding" ng-class="{\'button-text-positive\': socialData.reorder}" ng-if="formData.socials && formData.socials.length &gt; 1" ng-click="socialData.reorder=!socialData.reorder"><span translate="">PROFILE.BTN_REORDER</span></a></div></ion-list><ion-list show-reorder="socialData.reorder"><ion-item class="item-remove-animate item-icon-left" type="no-padding item-text-wrap" ng-if="formData.socials && formData.socials.length" ng-repeat="social in formData.socials | filter:filterFn track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h2><a href="{{social.url}}" ng-if="social.type != \'email\' && social.type != \'phone\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a> <a href="tel:{{social.url}}" ng-if="social.type == \'phone\'">{{social.url}}</a></h2><ion-option-button class="button-assertive" ng-if="!social.recipient" ng-click="formData.socials.splice($index, 1); dirty = true;">{{\'COMMON.BTN_DELETE\'|translate}}</ion-option-button><ion-option-button class="button-info" ng-if="!social.recipient" ng-click="editSocialNetwork($index)">{{\'COMMON.BTN_EDIT\'|translate}}</ion-option-button><ion-reorder-button class="ion-drag" on-reorder="reorderSocialNetwork(social, $fromIndex, $toIndex)"></ion-reorder-button></ion-item></ion-list><ion-list class="no-padding"><div class="item item-complex item-input-inset"><label class="item-input-wrapper"><input type="text" style="width:100%" placeholder="{{\'PROFILE.SOCIAL_HELP\'|translate}}" id="socialUrl" on-return="addSocialNetwork($event);" ng-model="socialData.url"></label><button class="button button-small hidden-xs" type="button" ng-click="addSocialNetwork($event)">{{\'COMMON.BTN_ADD\'|translate}}</button> <button class="button button-small button-icon icon ion-android-add visible-xs" type="button" ng-click="addSocialNetwork($event)"></button></div></ion-list>'),e.put("plugins/es/templates/common/item_comment.html",'<ng-init ng-init="level = level + 1"><a name="{{::comment.id|formatHash}}"></a><ion-item id="comment-{{::comment.id|formatHash}}" class="card card-comment card-avatar stable-900-bg item-text-wrap no-padding" ng-class="::{\'in done\': comment.isnew}"><div class="card-header padding-left" ng-if="comment.parent && !hideParent"><h5 class="gray underline"><ng-if ng-if="!comment.parent.issuer">{{\'COMMENTS.REPLY_TO_DELETED_COMMENT\'|translate}}</ng-if><ng-if ng-if="comment.parent.issuer"><a ng-click="toggleExpandedParent(comment, $index)">{{\'COMMENTS.REPLY_TO_LINK\'|translate}}<ng-if ng-if="::comment.parent.uid">{{::comment.parent.name||comment.parent.uid}}</ng-if><ng-if ng-if="::!comment.parent.uid"><i class="ion-key"></i> {{::comment.parent.name|| (comment.parent.issuer|formatPubkey) }}</ng-if></a><i ng-class="{\'ion-arrow-down-b\': !comment.expandedParent[$index], \'ion-arrow-up-b\': comment.expandedParent[$index]}"></i></ng-if></h5><div class="padding-left" ng-if="comment.expandedParent[$index]"><div class="card card-avatar card-avatar-small stable-bg item-text-wrap no-padding in done"><ng-include ng-init="comment = comment.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include></div></div></div><ng-include src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><div class="card-footer gray"><small class="underline"><a ng-click="share($event, comment, $index)">{{comment.creationTime | formatFromNow}}</a><ng-if ng-if="comment.replyCount">| <a class="dark" ng-click="toggleExpandedReplies(comment, $index)">{{\'COMMENTS.REPLY_COUNT\'|translate:comment}}</a> <i ng-class="{\'ion-arrow-down-b\': !comment.showReplies, \'ion-arrow-up-b\': comment.showReplies}"></i></ng-if></small><div class="pull-right"><a class="ion-android-share-alt" ng-click="share($event, comment)"></a> <a class="ion-edit" ng-if="isUserPubkey(comment.issuer)" ng-click="edit(comment)"></a> <a class="ion-trash-a" ng-if="isUserPubkey(comment.issuer)" ng-click="remove(comment, $index)"></a> <a class="ion-reply" ng-click="reply(comment)">{{::\'COMMENTS.REPLY\'|translate}}</a></div></div></ion-item><div ng-if="comment.expandedReplies[$index]" class="padding-left card-avatar-small expanded" ng-init="hideParent=true"><ng-include ng-repeat="comment in comment.replies track by comment.id" src="\'plugins/es/templates/common/item_comment.html\'"></ng-include></div></ng-init>'),e.put("plugins/es/templates/common/item_comment_content.html",'<div class="item item-avatar done in"><span class="avatar" ng-if="::!comment.avatar" ng-class="::{\'avatar-member\': comment.uid, \'avatar-wallet\': !comment.uid}"></span> <span class="avatar" ng-if="::comment.avatar" style="background-image: url({{::comment.avatar.src}})"></span> <a class="pull-left" ui-sref="app.wot_identity({pubkey:comment.issuer, uid: comment.uid})"><span class="positive" ng-if="::comment.uid">{{::comment.name||comment.uid}} </span><span ng-if="::!comment.uid" class="gray"><i class="icon ion-key gray"></i> {{::comment.name || (comment.issuer|formatPubkey)}} </span></a>&nbsp; <span trust-as-html="comment.html"></span></div>'),e.put("plugins/es/templates/common/item_location_search.html",'<div class="item no-padding"><div class="item-input"><i class="icon ion-location placeholder-icon"></i> <input type="text" placeholder="{{(options.location.help||\'LOCATION.SEARCH_HELP\')|translate}}" ng-model-options="{ debounce: 350 }" ng-model="search.location" ng-keydown="onKeydown($event)" ng-change="onLocationChanged()" ng-blur="hideDropdown()"></div></div><ul class="item no-padding list dropdown-list" ng-if="locations" scroll="true"><div ng-if="!locations.length" class="item padding assertive"><span translate>COMMON.SEARCH_NO_RESULT</span></div><a ng-repeat="res in locations" class="item item-border-large item-text-wrap ink done in {{res.selected && \'active\' || \'\'}}" ng-class="::{\'item-divider\': !res.address, \'item-icon-left\': res.address}" ng-click="::res.address ? selectLocation(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h3 ng-if="res.address.road">{{::res.address.road}}</h3><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5></ng-if></a></ul>'),e.put("plugins/es/templates/common/modal_category.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title">{{ (ctrl.title || \'COMMON.CATEGORIES\') | translate}}</h1></ion-header-bar><ion-content class="categoryModal"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" placeholder="{{\'COMMON.CATEGORY_SEARCH_HELP\'|translate}}" ng-model="ctrl.searchText" ng-model-options="{ debounce: 350 }" ng-change="ctrl.doSearch()"></label><div ng-repeat="cat in categories" class="item item-category item-text-wrap" ng-class="{\'item-divider\': !cat.parent}" ng-click="cat.parent ? closeModal(cat) : false"><h2 ng-bind-html="cat.name"></h2></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_edit_avatar.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs visible-sm" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PROFILE.MODAL_AVATAR.TITLE</h1><button class="button button-clear icon-right visible-xs" ng-click="doCrop()" ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2"><span translate>COMMON.BTN_NEXT</span> <i class="icon ion-ios-arrow-right"></i></button> <button class="button button-clear icon-right visible-xs" ng-click="closeModal(formData.result)" ng-if="formData.imageCropStep == 3"><i class="icon ion-android-done"></i></button></ion-header-bar><ion-content class="modal-avatar padding"><div ng-show="formData.imageCropStep == 1"><p translate>PROFILE.MODAL_AVATAR.SELECT_FILE_HELP</p><div class="item card text-center padding ink" ng-click="openFileSelector()"><i class="ion-image stable" style="font-size:150px"></i> <b class="ion-plus gray" style="position:relative; font-size:80px; top:-51px; right: 19px"></b><p translate>PROFILE.MODAL_AVATAR.BTN_SELECT_FILE</p></div><input type="file" name="fileInput" accept="image/*" id="fileInput" onchange="angular.element(this).scope().fileChanged(event)" style="visibility:hidden; position:absolute"></div><div ng-show="formData.imageCropStep == 2"><p translate>PROFILE.MODAL_AVATAR.RESIZE_HELP</p><div class="item card text-center padding ink"><image-crop data-height="200" data-width="200" data-shape="circle" data-step="formData.imageCropStep" src="formData.imgSrc" data-result="formData.result" data-result-blob="formData.resultBlob" crop="formData.initCrop" padding="150" max-size="1024"></image-crop></div></div><div ng-show="formData.imageCropStep == 3"><p translate>PROFILE.MODAL_AVATAR.RESULT_HELP</p><div class="item card padding hero" style="height: 110px"><div class="content"><img class="avatar" ng-src="{{formData.result}}" style="height: 88px; width: 88px"></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="closeModal()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-calm icon-right ion-chevron-right ink" ng-click="doCrop()" translate ng-disabled="formData.imageCropStep == 1" ng-if="formData.imageCropStep <= 2">COMMON.BTN_NEXT</button> <button class="button button-positive ink" ng-click="closeModal(formData.result)" translate ng-if="formData.imageCropStep == 3">COMMON.BTN_CONTINUE</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/common/modal_location.html",'<ion-modal-view class="modal-full-height modal-search-location"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate="">COMMON.BTN_CANCEL</button><h1 class="title" translate="">LOCATION.MODAL.TITLE</h1></ion-header-bar><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'LOCATION.MODAL.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()"></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading && search.results"><h4 translate="">COMMON.RESULTS_LIST</h4></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div ng-if="!search.loading && search.results && (!search.results.length || !search.results[0].address)" class="assertive padding"><span translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list ng-if="!search.loading" class="padding-top {{::motion.ionListClass}}"><div ng-repeat="res in search.results" class="item item-border-large item-text-wrap ink" ng-class="::{\'item-divider\': !res.address, \'item-icon-left item-icon-right\': res.address}" ng-click="res.address ? closeModal(res) : false"><h4 class="text-italic" ng-if="::!res.address" ng-bind-html="res.name"></h4><ng-if ng-if="::res.address"><i class="icon ion-location"></i><h2 ng-if="res.address.road">{{::res.address.road}}</h2><h3><span ng-if="res.address.postcode">{{::res.address.postcode}}</span> {{::res.address.city||res.address.village}} <span class="gray">| {{::res.address.country}}</span></h3><h5 class="gray">{{\'LOCATION.MODAL.POSITION\'|translate:res }}</h5><i class="icon ion-ios-arrow-right"></i></ng-if></div></ion-list></ion-content><ion-footer-bar class="stable-bg padding-left padding-right block" ng-if="license"><div class="pull-right copyright"><span class="dark">© </span><a class="positive" href="{{license.url}}" target="_blank">{{license.name}}</a></div></ion-footer-bar></ion-modal-view>'),e.put("plugins/es/templates/common/popover_profile_extend.html",'<button ng-if=":state:enable && auth" class="button button-positive button-small ink" ng-click="showEditUserProfile()">{{\'PROFILE.BTN_EDIT\' | translate}}</button>'),e.put("plugins/es/templates/common/view_comments.html",'<form class="comments" ng-controller="ESCommentsCtrl" ng-submit="save()"><div class="item item-divider"><i class="icon ion-chatboxes"></i> <span translate="">COMMENTS.DIVIDER</span> <span class="gray" ng-if="comments.total">({{comments.total}})</span></div><span class="item item-more-comments" ng-if="comments.hasMore"><small><a ng-click="showMore()" translate="">COMMENTS.SHOW_MORE_COMMENTS</a></small></span><div class="padding-right"><ng-repeat ng-repeat="comment in comments.result track by comment.id" ng-include="\'plugins/es/templates/common/item_comment.html\'"></ng-repeat></div><div class="visible-xs visible-sm" style="margin-bottom"><div class="block"><div class="item item-input-inset done in" ng-if="formData.parent"><div class="padding text-right pull-left" translate="">COMMENTS.REPLY_TO</div><br><div class="padding-left expanded"><div class="card card-comment stable-900-bg item-text-wrap no-padding in done"><ng-include ng-if="::formData.parent.message" ng-init="comment = formData.parent" src="\'plugins/es/templates/common/item_comment_content.html\'"></ng-include><span ng-if="::!formData.parent.message" translate="">COMMENTS.DELETED_COMMENT</span><div class="card-footer text-right gray"><div class="pull-right"><a class="ion-close" ng-click="removeParentLink()">{{::\'COMMON.BTN_CANCEL\'|translate}}</a></div></div></div></div></div><div class="item item-input-inset"><div class="item-input-wrapper"><input type="text" id="comment-form-input" style="width: 100%" placeholder="{{\'COMMENTS.COMMENT_HELP\'|translate}}" on-return="save();" ng-model="formData.message"> <button type="submit" class="button button-small button-small-padding button-icon button-dark button-icon gray"><i class="icon ion-android-send"></i></button></div></div></div></div></form>'),e.put("plugins/es/templates/common/view_pictures.html",'<div class="item gallery done in" ng-if="pictures && pictures.length>0"><div ng-repeat="picture in pictures" class="item card card-gallery"><div class="ink"><h2 ng-if="picture.title">{{::picture.title}}</h2><img ng-src="{{picture.src}}"></div></div></div>'),e.put("plugins/es/templates/currency/tab_blocks_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-search visible-xs visible-sm" ui-sref="app.blockchain_search"></button></ng-if>'),e.put("plugins/es/templates/document/item_document.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-click="selectDocument($event, doc)"><i class="icon ion-document stable" ng-if=":rebind:!doc.avatar"></i> <i class="avatar" ng-if=":rebind:doc.avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h3 class="dark"><i class="ion-locked" ng-if=":rebind:doc.nonce"></i> {{:rebind:doc.time|formatDate}}</h3><h4 class="gray">{{:rebind:\'DOCUMENT.HASH\'|translate}} {{:rebind:doc.hash|formatHash}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.uid"><i class="ion-person"></i> {{:rebind:doc.name||doc.uid}}</span></a></h3></div><div class="col"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a><h3 ng-if=":rebind:doc.recipient"><a ui-sref="app.wot_identity({pubkey: doc.recipient.pubkey, uid: doc.recipient.uid})"><span class="gray"><i class="ion-key"></i> {{:rebind:doc.recipient.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:doc.recipient.uid"><i class="ion-person"></i> {{:rebind:doc.recipient.name||doc.recipient.uid}}</span></a></h3><h4 class="gray" ng-if=":rebind:doc.read_signature"><i class="ion-checkmark"></i> <span translate>DOCUMENT.LOOKUP.READ</span></h4></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_comment.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-document-comment item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-ios-chatbubble-outline stable"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url(\'{{:rebind:doc.avatar.src}}\')"></i><div class="row no-padding"><div class="col"><h4><i class="ion-ios-chatbubble-outline dark"></i> <span class="gray" ng-if=":rebind:doc.name"><i class="ion-person" ng-show=":rebind:!compactMode"></i> {{:rebind:doc.name}}: </span><span class="dark"><i class="ion-quote" ng-if=":rebind:!compactMode"></i> {{:rebind:doc.message|truncText:50}}</span></h4><h4 class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</h4></div><div class="col"><h3><a ui-sref="app.wot_identity({pubkey: doc.pubkey, uid: doc.name})"></a></h3></div><div class="col" ng-if=":rebind:!compactMode"></div></div></ion-item>'),e.put("plugins/es/templates/document/item_document_profile.html",'<ion-item id="doc-{{::doc.id}}" class="item item-document item-icon-left ink {{::ionItemClass}} no-padding-top no-padding-bottom" ng-class="{\'compacted\': compactMode}" ng-click="selectDocument($event, doc)"><i ng-show=":rebind:!compactMode" ng-if=":rebind:doc.avatar" class="avatar" style="background-image: url({{:rebind:doc.avatar.src}})"></i> <i ng-show=":rebind:!compactMode" ng-if=":rebind:!doc.avatar" class="icon ion-person stable"></i><div class="row no-padding"><div class="col"><h4 ng-if=":rebind:doc.title"><i class="ion-person gray"></i> <span class="dark">{{:rebind:doc.title}} </span><span class="gray">{{:rebind:\'DOCUMENT.LOOKUP.HAS_REGISTERED\'|translate}}</span></h4><h4><span class="dark" ng-if=":rebind:doc.city"><i class="ion-location"></i> {{:rebind:doc.city}} </span><span class="gray"><i class="ion-clock"></i> {{:rebind:doc.time|formatDate}}</span></h4></div><div class="col" ng-if=":rebind:!compactMode"><a ng-if=":rebind:login && doc.pubkey==walletData.pubkey" ng-click="remove($event, $index)" class="gray pull-right" title="{{\'DOCUMENT.LOOKUP.BTN_REMOVE\'|translate}}"><i class="ion-trash-a"></i></a></div></div></ion-item>'),e.put("plugins/es/templates/document/items_documents.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="doc in :rebind:search.results track by doc.id" ng-switch="" on="doc.type"><div ng-switch-when="comment"><ng-include src="::\'plugins/es/templates/document/item_document_comment.html\'"></ng-include></div><div ng-switch-when="profile"><ng-include src="::\'plugins/es/templates/document/item_document_profile.html\'"></ng-include></div><div ng-switch-default=""><ng-include src="::\'plugins/es/templates/document/item_document.html\'"></ng-include></div></ng-repeat>'),e.put("plugins/es/templates/document/list_documents.html",'<ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/document/lookup.html",'<ion-view><ion-nav-title><span translate>DOCUMENT.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/document/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/document/lookup_form.html",'<div class="lookupForm"><div class="item no-padding"><label class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'DOCUMENT.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="{{helptipPrefix}}-search-text"></a></div></label></div><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.last" translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS</h4><h4 ng-if="!search.last">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }} </small><small class="gray" ng-if=":rebind:expertMode && search.filters && search.filters.length">- <a ng-click="toggleShowQuery()" ng-if="!showQuery"><span translate="">DOCUMENT.LOOKUP.SHOW_QUERY</span> <i class="icon ion-arrow-down-b gray"></i> </a><a ng-click="toggleShowQuery()" ng-if="showQuery"><span translate="">DOCUMENT.LOOKUP.HIDE_QUERY</span> <i class="icon ion-arrow-up-b gray"></i></a></small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="item no-border no-padding" ng-if=":rebind:search.filters && search.filters.length && expertMode"><small class="no-padding no-margin" ng-if="showQuery"><span class="gray text-wrap dark">{{:rebind:search.query}}</span></small></div><ion-list class="list" ng-class="::motion.ionListClass"><ng-include src="\'plugins/es/templates/document/items_documents.html\'"></ng-include></ion-list><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/document/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>DOCUMENT.LOOKUP.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !search.total}" ng-click="removeAll()"><i class="icon ion-trash-a"></i> {{\'DOCUMENT.LOOKUP.POPOVER_ACTIONS.REMOVE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/edit_group.html",'<ion-view left-buttons="leftButtons"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">GROUP.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><form name="recordForm" novalidate="" ng-submit="save()"><div class="list" ng-class="motion.ionListClass" ng-init="setForm(recordForm)"><div class="item hidden-xs"><h1 ng-if="id" ng-bind-html="formData.title"></h1><h1 ng-if="!id" translate="">GROUP.EDIT.TITLE_NEW</h1><h2 class="balanced" ng-if="!id"><i class="icon ion-android-people"></i> <i class="icon ion-android-lock" ng-if="formData.type==\'managed\'"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</h2></div><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">GROUP.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">GROUP.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'GROUP.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="group-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">GROUP.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'GROUP.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/group/item_group.html",'<a name="group-{{:rebind:group.hash}}"></a><div id="group-{{:rebind:group.hash}}" class="item item-icon-right item-avatar {{::ionItemClass}} ink" ng-click="select(group)"><i class="item-image avatar" style="background-image: url({{::group.avatar.src}})" ng-if="group.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!group.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!group.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:group.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: group }}</h4><h4 class="dark pull-left" ng-if=":rebind:group.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:group.membersCount}}</span></h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/group/items_groups.html",'<div class="padding gray" ng-if=":rebind:!search.loading && !search.results.length" translate="">COMMON.SEARCH_NO_RESULT</div><ng-repeat ng-repeat="group in :rebind:search.results" ng-include="\'plugins/es/templates/group/item_group.html\'"></ng-repeat>'),e.put("plugins/es/templates/group/list.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select(notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:notification"></h3><h4><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/group/lookup.html",'<ion-view class="view-group"><ion-nav-title><span translate>GROUP.LOOKUP.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ng-include src="\'plugins/es/templates/group/lookup_form.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/es/templates/group/lookup_form.html",'<div class="lookupForm"><label class="item item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'GROUP.LOOKUP.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearchText()"><div class="helptip-anchor-center"><a id="helptip-group-search-text"></a></div></label><div class="padding-top padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="search.type==\'open\'" translate="">GROUP.LOOKUP.OPEN_RESULTS_LIST</h4><h4 ng-if="search.type==\'last\'" translate="">GROUP.LOOKUP.LAST_RESULTS_LIST</h4><h4 ng-if="search.type==\'managed\'" translate="">GROUP.LOOKUP.MANAGED_RESULTS_LIST</h4><h4 ng-if="search.type==\'text\'">{{\'COMMON.RESULTS_LIST\'|translate}}</h4><h5 class="dark" ng-if="!search.loading && search.total"><span translate="COMMON.RESULTS_COUNT" translate-values="{count: search.total}"></span> <small class="gray" ng-if=":rebind:search.took && expertMode">- {{:rebind:\'COMMON.EXECUTION_TIME\'|translate: {duration: search.took} }}</small></h5><h5 class="gray" ng-if="search.loading"><ion-spinner class="icon ion-spinner-small" icon="android"></ion-spinner><span translate="">COMMON.SEARCHING</span><br></h5></div></div><div class="list {{::motion.ionListClass}}" ng-if="!$scope.search.loading"><ng-include src="\'plugins/es/templates/group/items_groups.html\'"></ng-include></div><ion-infinite-scroll ng-if="search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll></div>'),e.put("plugins/es/templates/group/lookup_item.html",'<i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="item.avatar"></i> <i class="item-image icon ion-android-people" ng-if="!item.avatar"></i> <i class="item-image icon-secondary ion-android-lock" ng-if="!item.avatar" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i><h2 ng-bind-html=":rebind:item.title"></h2><h4 class="gray pull-right"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4>'),e.put("plugins/es/templates/group/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>GROUP.TYPE.TITLE</h1></ion-header-bar><ion-content class="lookupForm padding"><h3 translate>GROUP.TYPE.SELECT_TYPE</h3><div class="list"><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'open\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i><h2 translate>GROUP.TYPE.OPEN_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.OPEN_GROUP_HELP</h4></div></div><div class="item item-complex card stable-bg item-icon-left ink" ng-click="closeModal(\'managed\')"><div class="item-content item-text-wrap"><i class="item-image icon ion-android-people dark"></i> <i class="icon-secondary ion-android-lock dark" style="left: 10px; top: -8px"></i><h2 translate>GROUP.TYPE.MANAGED_GROUP</h2><h4 class="gray" translate>GROUP.TYPE.MANAGED_GROUP_HELP</h4></div></div></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/group/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>GROUP.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/group/view_record.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content" ng-if="!loading"><i class="avatar cion-registry-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" style="background-image: url({{::formData.avatar.src}})" ng-if="formData.avatar"></i><h3 ng-bind-html="formData.title"></h3><h4>&nbsp;</h4></div><h4 class="content light" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list item-text-wrap no-padding-xs no-padding-sm" ng-class="::motion.ionListClass"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.groups({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.groups({type:formData.type})"><i class="icon ion-flag"></i> {{\'GROUP.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="group-share-anchor-{{id}}"></a><ion-item><h2><span trust-as-html="formData.description"></span></h2></ion-item><ion-item><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_blank" href="https://www.google.fr/maps/?q={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></ion-item><ng-if ng-if="formData.socials && formData.socials.length>0"><ion-item class="item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a href="{{social.url}}" ng-if="social.type != \'email\'" target="_blank">{{social.url}}</a> <a href="mailto:{{social.url}}" ng-if="social.type == \'email\'">{{social.url}}</a></h2></ion-item></ng-if><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><span class="item item-divider" ng-if="formData.pubkey"><span translate="">REGISTRY.TECHNICAL_DIVIDER</span></span><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/invitation/list_invitation.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="invitation in search.results" class="item-border-large item-text-wrap item-avatar"><i ng-if="::!invitation.avatar" class="item-image icon {{::invitation.avatarIcon}}"></i> <i ng-if="::invitation.avatar" class="item-image avatar" style="background-image: url({{::invitation.avatar.src}})"></i><h3 trust-as-html="invitation.message | translate:invitation"></h3><h3 class="dark text-italic" ng-if="invitation.comment"><i class="icon ion-quote"></i> <span ng-bind-html="invitation.comment"></span></h3><h4><i class="icon {{::invitation.icon}}"></i> <span class="dark" ng-if="::invitation.issuer" trust-as-html="\'INVITATION.SUGGESTED_BY\' | translate:invitation"></span> <span class="dark">{{::invitation.time|formatFromNow}}</span> <span class="gray">| {{::invitation.time|formatDate}}</span></h4><div class="block text-right"><button class="button button-positive button-small button-small-padding" ng-click="accept(invitation)" ng-if="::invitation.state" translate>{{::(invitation.okText||\'COMMON.BTN_SHOW\') |translate}}</button> <button class="button button-stable button-small button-small-padding" ng-click="delete($index)" translate>INVITATION.BTN_DELETE</button></div></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/invitation/modal_new_invitation.html",'<ion-modal-view id="transfer" class="modal-invitation modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>INVITATION.NEW.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/invitation/new_invitation_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/invitation/new_invitation_form.html",'<form name="invitationForm" novalidate="" ng-submit="doSend()"><div class="list" ng-init="setForm(invitationForm)"><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': recipients.length, \'item-input-error\': form.$submitted && !recipients.length}" ng-click="showSelectRecipientModal($event)"><span class="gray" translate="">INVITATION.NEW.RECIPIENTS</span> <span class="item-note"><span class="hidden-xs" ng-if="!recipients.length" translate="">INVITATION.NEW.RECIPIENTS_HELP</span><ng-repeat ng-repeat="identity in recipients track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeRecipient($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !recipients.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-icon-right gray ink" ng-class="{\'disable-pointer-events\': suggestions.length, \'item-input-error\': form.$submitted && !suggestions.length}" ng-click="showSelectSuggestionModal($event)"><span class="gray enable-pointer-events" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES</span> <span class="item-note"><span class="hidden-xs" ng-if="!suggestions.length" translate="">INVITATION.NEW.SUGGESTION_IDENTITIES_HELP</span><ng-repeat ng-repeat="identity in suggestions track by identity.id" class="button button-small button-text button-stable button-icon-event ink" ng-class="{\'button-text-positive\': identity.selected}"><ng-bind-html ng-bind-html="identity.name||identity.uid||(identity.pubkey|formatPubkey)"></ng-bind-html><b class="enable-pointer-events ion-close" ng-click="removeSuggestion($index, $event)">&nbsp;&nbsp;</b></ng-repeat></span><i class="gray icon enable-pointer-events ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !suggestions.length"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-content item-toggle dark visible-xs visible-sm"><span class="input-label gray">{{\'TRANSFER.BTN_ADD_COMMENT\' | translate}}</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useComment"><div class="track"><div class="handle"></div></div></label></div><label class="item item-input item-floating-label visible-xs visible-sm" ng-if="formData.useComment" ng-class="{\'item-input-error\': form.$submitted && form.comment.$invalid}"><span class="input-label">{{\'TRANSFER.COMMENT\' | translate}}</span><textarea placeholder="{{\'TRANSFER.COMMENT_HELP\' | translate}}" name="comment" ng-model="formData.comment" ng-maxlength="255">\n        </textarea></label><div class="form-errors" ng-show="form.$submitted && form.comment.$error" ng-messages="form.comment.$error"><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG"></span></div><div class="form-error" ng-message="pattern"><span translate="ERROR.FIELD_ACCENT"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-small button-clear button-dark ink" ng-click="cancel()" type="button" translate="">COMMON.BTN_CANCEL</button> <button class="button button-small button-positive ink" type="submit">{{\'COMMON.BTN_SEND\' | translate}}</button></div></form>'),e.put("plugins/es/templates/invitation/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': !search.results.length, \'assertive\': search.results.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> <span translate>INVITATION.BTN_DELETE_ALL</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/invitation/popover_invitation.html",""),e.put("plugins/es/templates/invitation/view_invitations.html",'<ion-view left-buttons="leftButtons" class="view-invitation"><ion-nav-title>{{\'INVITATION.LIST.TITLE\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">INVITATION.NO_RESULT</div><ng-include src="\'plugins/es/templates/invitation/list_invitation.html\'"></ng-include></div></div></ion-content><button id="fab-new-invitation" class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm spin" ng-click="showNewInvitationModal()"></button></ion-view>'),e.put("plugins/es/templates/join/modal_join_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'select-account-type\'"><div class="item item-complex card stable-bg item-icon-left item-icon-right ink" ng-class="{ activated: accountTypeMember != null && !accountTypeMember }" ng-click="selectAccountType(\'organization\')"><div class="item-content item-text-wrap"><i class="item-image icon dark cion-registry-association"></i><h2 translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT</h2><h4 class="gray" translate>ACCOUNT.NEW.ORGANIZATION_ACCOUNT_HELP</h4><i class="icon dark ion-ios-arrow-right"></i></div></div></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'last-slide\'"><ion-slide-page><ion-content class="has-header" scroll="false"><p>TOTO</p></ion-content></ion-slide-page></ng-if>'),e.put("plugins/es/templates/message/compose.html",'<ion-view left-buttons="leftButtons" id="composeMessage"><ion-nav-title><span class="visible-xs visible-sm" nf-if="!isReply" translate="">MESSAGE.COMPOSE.TITLE</span> <span class="visible-xs visible-sm" nf-if="isReply" translate="">MESSAGE.COMPOSE.TITLE_REPLY</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-nav-buttons><ion-content scroll="true"><div class="row"><div class="col"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/message/compose_form.html",'<form name="messageForm" novalidate="" ng-submit="doSend()"><div class="list no-margin" ng-init="setForm(messageForm)"><a class="item item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.destPub}" ng-click="showWotLookupModal()"><span class="gray" translate>MESSAGE.COMPOSE.TO</span> <span class="badge badge-royal" ng-if="destUid"><i class="ion-person"></i> {{destName||destUid}}</span>&nbsp; <span class="badge badge-stable" ng-if="!destUid && destPub">{{destName}} <span ng-if="!destName"><i class="ion-key"></i>{{destPub | formatPubkey}}</span> </span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.destPub"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ion-item class="item-text-wrap ink" ng-class="{\'item-icon-right\': enableSelectWallet}" ng-click="showSelectWalletModal()"><span class="gray" translate>TRANSFER.FROM</span> <span class="badge badge-balanced animate-fade-in animate-show-hide" ng-show="!loading"><ion-spinner icon="android" ng-if="!walletData.pubkey"></ion-spinner><span ng-if="walletData.pubkey && !walletData.isMember"><i class="ion-key"></i> {{walletData.pubkey| formatPubkey}}&nbsp;&nbsp; </span><span ng-if="walletData.isMember"><i class="ion-person"></i> {{walletData.name||walletData.uid}} </span></span><i class="gray icon ion-ios-arrow-right" ng-if="enableSelectWallet"></i></ion-item><div class="item item-input" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><input type="text" autocomplete="off" placeholder="{{\'MESSAGE.COMPOSE.OBJECT_HELP\' | translate}}" name="title" ng-model="formData.title" ng-maxlength="256" required> <span class="badge item-note" ng-if="isReply">({{\'MESSAGE.COMPOSE.OBJECT\' | translate}})</span></div><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 256}"></span></div><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.content.$invalid}"><span class="input-label">{{\'MESSAGE.COMPOSE.MESSAGE\' | translate}}</span><textarea placeholder="{{\'MESSAGE.COMPOSE.MESSAGE_HELP\' | translate}}" autocomplete="off" name="content" ng-model="formData.content" rows="8" ng-maxlength="5000">\n        </textarea></div><div class="form-errors" ng-show="form.$submitted && form.content.$error" ng-messages="form.content.$error"><div class="form-error" ng-message="maxlength"><span translate="MESSAGE.ERROR.MESSAGE_CONTENT_TOO_LONG" translate-values="{maxLength: 5000}"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit" ng-disabled="sending" translate>TRANSFER.BTN_SEND</button></div><div class="list no-margin"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>MESSAGE.COMPOSE.ENCRYPTED_HELP</h4></div></div></form>'),e.put("plugins/es/templates/message/list.html",'<div class="padding gray" ng-if="!search.loading && !search.results.length"><span ng-if="search.type==\'last\'">{{ (\'MESSAGE.NO_MESSAGE_\' + type) | upper | translate }}</span> <span ng-if="search.type==\'text\'" translate="">COMMON.SEARCH_NO_RESULT</span></div><ion-list class="{{::motion.ionListClass}}" can-swipe="$root.device.enable"><ion-item class="item item-border-large item-avatar item-icon-right ink" ng-repeat="msg in :rebind:search.results track by msg.id" ng-click="select(msg, $event)"><i ng-if="::!msg.avatar" class="item-image icon" ng-class="{\'ion-person\': msg.uid, \'ion-email\': !msg.uid}"></i> <i ng-if="::msg.avatar" class="item-image avatar" style="background-image: url({{::msg.avatar.src}})"></i><h4 class="pull-right visible-xs visible-sm dark"><i class="ion-clock"></i> {{::msg.time|formatFromNow}}</h4><h3><a class="positive" ng-if="::msg.name||msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer, uid:msg.name||msg.uid})"><i class="ion-person"></i> {{::msg.name||msg.uid}} </a><a class="gray" ng-if="::!msg.name && !msg.uid" ui-sref="app.wot_identity({pubkey:msg.issuer})"><i class="ion-key"></i> {{::msg.issuer|formatPubkey}}</a></h3><h2 ng-class="{\'unread\': !msg.read}" ng-bind-html="::msg.title"></h2><p ng-bind-html="::msg.summary||msg.content"></p><i class="icon ion-ios-arrow-right"></i><ion-option-button class="button-stable" ng-click="showReplyModal($index)" translate="">MESSAGE.BTN_REPLY</ion-option-button><ion-option-button class="button-assertive" ng-click="delete($index)" translate="">COMMON.BTN_DELETE</ion-option-button></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" icon="ion-loading-c" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/message/lookup.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_message.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_message.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_by_id.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-tabs class="tabs-positive tabs-icon-top"><ion-tab title="{{\'MESSAGE.LIST.INBOX\'|translate}}" icon="ion-archive" ui-sref="app.user_messages_by_id.tab_inbox"><ion-nav-view name="tab_inbox"></ion-nav-view></ion-tab><ion-tab title="{{\'MESSAGE.LIST.OUTBOX\'|translate}}" icon="ion-paper-airplane" ui-sref="app.user_messages_by_id.tab_outbox"><ion-nav-view name="tab_outbox"></ion-nav-view></ion-tab></ion-tabs></ion-view>'),e.put("plugins/es/templates/message/lookup_lg.html",'<ion-view left-buttons="leftButtons" class="view-messages"><ion-nav-title><span translate="">MESSAGE.LIST.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-click="showActionsPopover($event)"><i class="icon ion-android-more-vertical"></i></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true, $event)"></ion-refresher><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'MESSAGE.LIST.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearch()" select-on-click=""><div class="helptip-anchor-center"><a id="helptip-message-search-text"></a></div></div></div><div class="padding-top hidden-xs" style="display: block; height: 60px"><div class="pull-left" ng-if="!search.loading"><ng-if ng-if="search.type==\'last\'"><h4>{{ (\'MESSAGE.LIST.LAST_\' + type) | upper | translate}}</h4></ng-if><ng-if ng-if="search.type==\'text\'"><h4 translate="">COMMON.RESULTS_LIST</h4></ng-if></div></div><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><button id="fab-add-message-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-compose visible-xs visible-sm spin" ng-click="showNewMessageModal()"></button></ion-view>'),e.put("plugins/es/templates/message/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>MESSAGE.LIST.POPOVER_ACTIONS.TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-class="{\'gray\': (type != \'inbox\' && !messages.length)}" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}} </a><a class="item item-icon-left assertive ink" ng-class="{\'gray\': !messages.length}" ng-click="deleteAll()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.LIST.POPOVER_ACTIONS.DELETE_ALL\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/message/modal_compose.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" ng-if="!isReply" translate>MESSAGE.COMPOSE.TITLE</h1><h1 class="title" ng-if="isReply" translate>MESSAGE.COMPOSE.TITLE_REPLY</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSend()"></button></ion-header-bar><ion-content scroll="true"><ng-include src="\'plugins/es/templates/message/compose_form.html\'"></ng-include></ion-content></ion-modal-view>'),e.put("plugins/es/templates/message/popover_message.html",""),e.put("plugins/es/templates/message/view_message.html",'<ion-view left-buttons="leftButtons" class="view-message"><ion-nav-title><span translate="">MESSAGE.VIEW.TITLE</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true"><div class="row no-padding"><div class="col no-padding"><div class="center padding" ng-if="loading"><ion-spinner icon="android"></ion-spinner></div><div class="list animate-fade-slide-in item-text-wrap"><div class="item item-avatar" ng-class="{\'item-avatar\': formData.avatar}"><i ng-if="!formData.avatar" class="item-image" ng-class="{\'ion-person\': formData.uid, \'ion-email\': !formData.uid}"></i> <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i><h4>{{type == \'inbox\' ? \'MESSAGE.VIEW.SENDER\': \'MESSAGE.VIEW.RECIPIENT\'|translate}} <a class="positive" ui-sref="app.wot_identity({pubkey: (type == \'inbox\') ? formData.issuer : formData.recipient, uid: formData.name||formData.uid})"><span ng-if="formData.uid"><i class="ion-person"></i> {{formData.name||formData.uid}} </span><span ng-if="!formData.uid" class="gray"><i class="ion-key gray"></i> {{formData.name||(formData.issuer|formatPubkey)}}</span></a></h4><h5 class="gray visible-xs visible-sm"><i class="ion-clock"></i> {{formData.time | formatDate}}</h5></div><ion-item class="visible-xs visible-sm"><h1 class="title" ng-bind-html="formData.title"></h1></ion-item><ion-item><p ng-bind-html="formData.html"></p><div class="padding gray" ng-if="!formData.content" translate="">MESSAGE.VIEW.NO_CONTENT</div></ion-item></div></div></div></ion-content><button id="fab-view-message-reply" class="button button-fab button-fab-bottom-right button-calm icon ion-reply visible-xs visible-sm spin" ng-click="showReplyModal()"></button></ion-view>'),e.put("plugins/es/templates/message/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'MESSAGE.VIEW.DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/notification/list_notification.html",'<ion-list class="{{::motion.ionListClass}}"><ion-item ng-repeat="notification in search.results track by notification.id" class="item-border-large item-text-wrap ink item-avatar" ng-class="{\'unread\': !notification.read}" ng-click="select($event, notification)"><i ng-if="!notification.avatar" class="item-image icon {{::notification.avatarIcon}}"></i> <i ng-if="notification.avatar" class="item-image avatar" style="background-image: url({{::notification.avatar.src}})"></i><h3 trust-as-html="notification.message | translate:(notification.messageParams||notification)"></h3><h4 ng-if="!notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.time|formatFromNow}}</span> <span class="gray">| {{notification.time|formatDate}}</span></h4><h4 ng-if="notification.medianTime"><i class="icon {{notification.icon}}"></i>&thinsp;<span class="dark">{{notification.medianTime|medianFromNow}}</span> <span class="gray">| {{notification.medianTime|medianDate}}</span></h4></ion-item></ion-list><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="1%"></ion-infinite-scroll>'),e.put("plugins/es/templates/notification/popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-disabled="!search.results.length" ng-click="markAllAsRead()"><i class="icon ion-android-checkmark-circle"></i> {{\'COMMON.NOTIFICATIONS.MARK_ALL_AS_READ\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/notification/popover_notification.html",""),e.put("plugins/es/templates/notification/view_notifications.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'COMMON.NOTIFICATIONS.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh(true)"></ion-refresher><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding gray" ng-if="!search.loading && !search.results.length" translate="">COMMON.NOTIFICATIONS.NO_RESULT</div><ng-include src="\'plugins/es/templates/notification/list_notification.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/item_content_peer.html",'<i class="icon ion-android-desktop" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" ng-if=":rebind:!peer.avatar"></i> <b class="icon-secondary ion-person" ng-if=":rebind:!peer.avatar" ng-class=":rebind:{\'balanced\': peer.online && peer.hasMainConsensusBlock, \'energized\': peer.online && peer.hasConsensusBlock, \'gray\': peer.online && !peer.hasConsensusBlock && !peer.hasMainConsensusBlock, \'stable\': !peer.online}" style="left: 26px; top: -3px"></b> <i class="avatar" ng-if=":rebind:peer.avatar" style="background-image: url(\'{{:rebind:peer.avatar.src}}\')"></i> <b class="icon-secondary assertive ion-close-circled" ng-if=":rebind:!peer.online" style="left: 37px; top: -10px"></b><div class="row no-padding"><div class="col no-padding"><h3 class="dark">{{:rebind:peer.dns || peer.server}}</h3><h4><span class="gray" ng-if=":rebind:!peer.name"><i class="ion-key"></i> {{:rebind:peer.pubkey|formatPubkey}} </span><span class="positive" ng-if=":rebind:peer.name"><i class="ion-person"></i> {{:rebind:peer.name}} </span><span class="gray">{{:rebind:peer.dns && (\' | \' + peer.server) + (peer.ep.path||\'\') }}</span></h4></div><div class="col col-20 no-padding text-center" ng-if="::!expertMode && search.type != \'offline\'"><div style="min-width: 50px; padding-top: 5px" ng-if=":rebind:peer.docCount.emailSubscription!==undefined"><span ng-if=":rebind:peer.hasEndpoint(\'ES_SUBSCRIPTION_API\')" title="{{\'ES_PEER.EMAIL_SUBSCRIPTION_COUNT\'|translate: peer.docCount }}"><i class="ion-email"></i> {{:rebind:peer.docCount.emailSubscription || \'?\'}}</span></div></div><div class="col col-20 no-padding text-center" ng-if="::expertMode && search.type != \'offline\'"></div><div class="col col-20 no-padding text-center" id="{{$index === 0 ? helptipPrefix + \'-peer-0-block\' : \'\'}}"><span class="badge badge-stable">{{:rebind:peer.docCount.record !== undefined ? (peer.docCount.record|formatInteger) : \'?\'}} <span ng-if=":rebind:!expertMode && peer.docCount.record!==undefined">{{::\'ES_PEER.DOCUMENTS\'|translate|lowercase }} </span></span><span class="badge badge-secondary" ng-class=":rebind:{\'balanced\': peer.hasMainConsensusBlock, \'energized\': peer.hasConsensusBlock, \'ng-hide\': !peer.currentNumber }" ng-if="::expertMode">{{:rebind:\'BLOCKCHAIN.VIEW.TITLE\'|translate: {number:peer.currentNumber} }}</span></div></div>'),e.put("plugins/es/templates/network/items_peers.html",'<div ng-class="::motion.ionListClass" class="no-padding"><div class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-if="::isHttps && expertMode"><small><i class="icon ion-alert-circled"></i> {{::\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></div><div ng-repeat="peer in :rebind:search.results track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" id="{{helptipPrefix}}-peer-{{$index}}" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div>'),e.put("plugins/es/templates/network/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>PEER.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'member\')"><i class="icon ion-person"></i> {{\'PEER.MEMBERS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'member\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'mirror\')"><i class="icon ion-radio-waves"></i> {{\'PEER.MIRRORS\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'mirror\'"></i> </a><a class="item item-icon-left item-icon-right ink" ng-click="toggleSearchType(\'offline\')"><i class="icon ion-eye-disabled"></i> {{\'PEER.OFFLINE\' | translate}} <i class="icon ion-ios-checkmark-empty" ng-show="search.type==\'offline\'"></i></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/modal_network.html",'<ion-modal-view id="nodes" class="modal-full-height" cache-view="false"><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>PEER.PEER_LIST</h1><div class="buttons buttons-right header-item"><span class="secondary"><button class="button button-clear icon ion-loop button-clear" ng-click="refresh()"></button> <button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></span></div></ion-header-bar><ion-content><div class="list"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4 ng-if="!enableFilter || !search.type">{{\'PEER.ALL_PEERS\' | translate}} <span ng-if="!search.loading">({{search.results.length}})</span></h4></div><div class="pull-right"><ion-spinner class="icon" icon="android" ng-if="search.loading"></ion-spinner>&nbsp;</div></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/network/popover_endpoints.html",'<ion-popover-view class="popover-endpoints popover-light" style="height: {{(titleKey?30:0)+((!items || items.length &lt;= 1) ? 55 : 3+items.length*52)}}px"><ion-header-bar class="bar bar-header stable-bg" ng-if="titleKey"><div class="title">{{titleKey | translate:titleValues }}</div></ion-header-bar><ion-content scroll="false"><div class="list" ng-class="{\'has-header\': titleKey}"><div class="item item-text-wrap" ng-repeat="item in items"><div class="item-label" ng-if="item.label">{{item.label | translate}}</div><div id="endpoint_{{$index}}" class="badge item-note dark">{{item.value}}</div></div></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/network/popover_network.html",""),e.put("plugins/es/templates/network/popover_peer_info.html",""),e.put("plugins/es/templates/network/view_network.html",'<ion-view><ion-nav-title><span translate="">MENU.NETWORK</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="refresh()"></button></ion-nav-buttons><ion-content scroll="true" ng-init="enableFilter=true; ionItemClass=\'item-border-large\';"><div class="row responsive-sm responsive-md responsive-lg"><div class="col list col-border-right"><div class="padding padding-xs" style="display: block; height: 60px"><div class="pull-left"><h4><span ng-if="enableFilter && !search.online" translate="">PEER.OFFLINE_PEERS</span> <span ng-if="!enableFilter || search.online" translate="">PEER.ALL_PEERS</span> <span ng-if="search.results.length">({{search.results.length}})</span><ion-spinner ng-if="search.loading" class="icon ion-spinner-small" icon="android"></ion-spinner></h4></div><div class="pull-right"><div class="pull-right" ng-if="enableFilter"><cs-extension-point name="filter-buttons"></cs-extension-point></div></div></div><div id="helptip-network-peers" style="display: block"></div><ng-include src="\'plugins/es/templates/network/items_peers.html\'"></ng-include></div><div class="col col-33" ng-controller="ESLastDocumentsCtrl"><div class="padding padding-xs" style="display: block"><h4 translate="">DOCUMENT.LOOKUP.LAST_DOCUMENTS_DOTS</h4></div><ng-include src="\'plugins/es/templates/document/list_documents.html\'"></ng-include></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/network/view_network_extend.html",'<ng-if ng-if=":state:enable"><a class="button button-text button-small ink" ui-sref="app.blockchain_search"><i class="icon ion-android-search"></i> <span>{{\'COMMON.BTN_SEARCH\'|translate}}</span></a></ng-if>'),e.put("plugins/es/templates/network/view_peer.html",'<ion-view><ion-nav-title><span translate="">PEER.VIEW.TITLE</span></ion-nav-title><ion-content class="has-header" scroll="true"><div class="row no-padding"><div class="col list"><ion-item><h1><span translate="">PEER.VIEW.TITLE</span> <span class="gray">{{node.host}}</span></h1><h2 class="gray"><i class="gray icon ion-android-globe"></i> {{node.ep.dns || node.server}} <span class="gray" ng-if="!loading && node.useSsl"><i class="gray ion-locked"></i> <small>SSL</small> </span><span class="gray" ng-if="!loading && node.useTor"><i class="gray ion-bma-tor-api"></i></span></h2><h3><span class="dark"><i class="icon ion-android-desktop"></i> {{\'PEER.VIEW.OWNER\'|translate}} </span><a class="positive" ng-if="node.name" ui-sref="app.wot_identity({pubkey: node.pubkey, uid: node.name})"><i class="ion-person"></i> {{node.name}} </a><span ng-if="!loading && !node.name"><a class="gray" ui-sref="app.wot_identity({pubkey: node.pubkey})"><i class="ion-key"></i> {{node.pubkey|formatPubkey}}</a></span></h3><h3><a ng-click="openRawPeering($event)"><i class="icon ion-share"></i> {{\'PEER.VIEW.SHOW_RAW_PEERING\'|translate}} </a><span class="gray" ng-if="!isReachable">| </span><a ng-if="!isReachable" ng-click="openRawCurrentBlock($event)"><i class="icon ion-share"></i> <span translate="">PEER.VIEW.SHOW_RAW_CURRENT_BLOCK</span></a></h3></ion-item><div class="item item-divider" translate="">PEER.VIEW.GENERAL_DIVIDER</div><ion-item class="item-icon-left item-text-wrap ink" copy-on-click="{{node.pubkey}}"><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><h4 class="dark text-left">{{node.pubkey}}</h4></ion-item><ion-item class="item item-icon-left item-text-wrap" ng-if="isReachable"><i class="icon ion-document"></i> <span translate="">ES_PEER.DOCUMENT_COUNT</span><div class="badge badge-stable" ng-if="!loading">{{node.docCount|formatInteger}}</div></ion-item><ion-item class="item item-icon-left item-text-wrap ink" ng-if="isReachable"><i class="icon ion-cube"></i> <span translate="">BLOCKCHAIN.VIEW.TITLE_CURRENT</span><div class="badge badge-calm" ng-if="!loading">{{current.number|formatInteger}}</div></ion-item><cs-extension-point name="general"></cs-extension-point><div class="item item-divider" ng-hide="loading || !isReachable" translate="">PEER.VIEW.KNOWN_PEERS</div><ion-item class="item item-text-wrap no-border done in gray no-padding-top no-padding-bottom inline text-italic" ng-show="!loading && !isReachable"><small><i class="icon ion-alert-circled"></i> {{\'NETWORK.INFO.ONLY_SSL_PEERS\'|translate}}</small></ion-item><div class="item center" ng-if="loading"><ion-spinner class="icon" icon="android"></ion-spinner></div><div class="list no-padding {{::motion.ionListClass}}" ng-if="isReachable"><div ng-repeat="peer in :rebind:peers track by peer.id" class="item item-peer item-icon-left ink" ng-class="::ionItemClass" ng-click="selectPeer(peer)" ng-include="\'plugins/es/templates/network/item_content_peer.html\'"></div></div></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/edit_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title><span class="visible-xs" ng-if="id" ng-bind-html="formData.title"></span> <span class="visible-xs" ng-if="!loading && !id" translate="">REGISTRY.EDIT.TITLE_NEW</span></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear visible-xs visible-sm" ng-class="{\'ion-android-send\':!id, \'ion-android-done\': id}" ng-click="save()"></button></ion-nav-buttons><ion-content scroll="true"><div class="hero"><div class="content"><i class="avatar" ng-class="avatarClass" ng-style="avatarStyle"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="dark"><span ng-if="!loading && formData.title">{{formData.title}}</span> <span ng-if="!loading && !id && !formData.title" translate="">REGISTRY.EDIT.TITLE_NEW</span></h3><h4 class="dark"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col no-padding-xs no-padding-sm"><form name="recordForm" novalidate="" ng-submit="save()"><div class="list {{::motion.ionListClass}}" ng-init="setForm(recordForm)"><div class="item" ng-if="id"><h4 class="gray"><i class="icon ion-calendar"></i> {{\'COMMON.LAST_MODIFICATION_DATE\'|translate}}&nbsp;{{formData.time | formatDate}}</h4><div class="badge badge-balanced badge-editable" ng-click="showRecordTypeModal()">{{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</div></div><ng-include src="\'plugins/es/templates/common/edit_pictures.html\'"></ng-include><div class="item item-divider" translate="">REGISTRY.GENERAL_DIVIDER</div><div class="item item-input item-floating-label" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_TITLE</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_TITLE_HELP\'|translate}}" name="title" id="registry-record-title" ng-model="formData.title" ng-minlength="3" ng-required="true"></div><div class="form-errors" ng-if="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div></div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_DESCRIPTION</span><textarea placeholder="{{\'REGISTRY.EDIT.RECORD_DESCRIPTION_HELP\'|translate}}" ng-model="formData.description" rows="8" cols="10">\n                </textarea></div><div class="item item-icon-right ink" ng-if="loading || formData.type===\'company\' || formData.type===\'shop\'" ng-class="{\'item-input-error\': form.$submitted && !formData.category.id, \'done in\': !loading}" ng-click="showCategoryModal()"><span translate="">REGISTRY.CATEGORY</span> <span class="badge badge-royal">{{formData.category.name | formatCategory}}</span>&nbsp; <i class="gray icon ion-ios-arrow-right"></i></div><input type="hidden" name="category" ng-model="formData.category.id" required-if="formData.type==\'company\' || formData.type==\'shop\'"><div class="form-errors" ng-if="form.$submitted && form.category.$error" ng-messages="form.category.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><ng-include src="\'plugins/es/templates/common/edit_position.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="item item-divider" translate="">REGISTRY.TECHNICAL_DIVIDER</div><div class="item item-input item-floating-label"><span class="input-label" translate="">REGISTRY.EDIT.RECORD_PUBKEY</span> <input type="text" placeholder="{{\'REGISTRY.EDIT.RECORD_PUBKEY_HELP\'|translate}}" ng-model="formData.pubkey"></div></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/registry/lookup_form.html",'<form ng-submit="doSearch()"><div class="item no-padding"><div class="item-input"><i class="icon ion-search placeholder-icon"></i> <input type="text" class="visible-xs visible-sm" placeholder="{{\'REGISTRY.SEARCH.SEARCH_HELP\'|translate}}" ng-model="search.text" ng-model-options="{ debounce: 650 }" ng-change="doSearch()" on-return="doSearchText()" select-on-click=""></div></div><ng-include src="::\'plugins/es/templates/common/item_location_search.html\'" ng-if="entered && options.location.show && (!search.geoPoint || smallscreen)" ng-controller="ESSearchPositionItemCtrl"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form_options.html\'"></ng-include></form><div class="padding-top padding-xs padding-sm" style="display: block; height: 60px"><div class="pull-left ng-hide" ng-show="!search.loading && search.results"><ng-if ng-if="search.lastRecords"><h4 translate="">REGISTRY.SEARCH.LAST_RECORDS</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.LAST_RECORD_COUNT\'|translate:{count: search.total} }}</span></small></ng-if><ng-if ng-if="!search.lastRecords"><h4 translate="">COMMON.RESULTS_LIST</h4><small class="gray no-padding" ng-if="search.total"><span ng-if="search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT_LOCATION\'|translate:{count: search.total, location: search.location} }}</span> <span ng-if="!search.geoPoint && search.total">{{\'REGISTRY.SEARCH.RESULT_COUNT\'|translate:{count: search.total} }}</span></small></ng-if></div></div><div class="center" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="padding assertive" ng-if="!search.loading && search.results.length===0" translate="">COMMON.SEARCH_NO_RESULT</div>'),e.put("plugins/es/templates/registry/lookup_form_options.html",'<div class="item item-icon-left item-input item-select stable-bg" ng-if="search.advanced && options.location.show"><i class="icon ion-arrow-resize gray"></i> <span class="input-label item-icon-left-padding" translate="">LOCATION.DISTANCE</span><label><select ng-model="search.geoDistance" class="col-border-left" ng-options="i as (geoDistanceLabels[i].labelKey | translate:geoDistanceLabels[i].labelParams ) for i in geoDistances track by i"></select></label></div>'),e.put("plugins/es/templates/registry/lookup_lg.html",'<ion-view left-buttons="leftButtons"><ion-nav-title>{{\'REGISTRY.SEARCH.TITLE\' | translate}}</ion-nav-title><ion-content class="lookupForm padding no-padding-xs no-padding-sm"><ng-include src="::\'plugins/es/templates/wot/lookup_lg_extend.html\'" ng-init="enable= true; showNewPageButton=true;"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list_lg.html\'"></ng-include></ion-content><button id="fab-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="showNewPageModal()"></button></ion-view>'),e.put("plugins/es/templates/registry/lookup_list.html",'<ion-list class="{{::motion.ionListClass}}" ng-if="!search.loading && search.results"><div class="item item-avatar item-icon-right item-border-large ink" ng-repeat="item in search.results" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><i ng-if="::!item.avatar" class="item-image icon cion-page-{{::item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4 class="gray" ng-if="::item.time && search.lastRecords"><i class="ion-clock"></i> {{::item.time | formatFromNow}}</h4><h4 class="gray" ng-if="!search.lastRecords"><i class="cion-page-{{::item.type}}"></i> <span ng-if="item.category">{{::item.category.name}}</span> <span ng-if="!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><i class="icon ion-ios-arrow-right"></i></div></ion-list>'),e.put("plugins/es/templates/registry/lookup_list_lg.html",'<div class="list {{::motion.ionListClass}}" ng-if="!search.loading && search.results && search.results.length > 0"><a ng-repeat="item in search.results" class="item item-record item-border-large ink padding-xs" ui-sref="app.view_page({id: item.id, title: item.urlTitle})"><div class="row row-record"><div class="col item-text-wrap item-avatar-left-padding" ng-class="::{\'item-avatar\': item.avatar || item.type}"><i class="item-image icon cion-page-{{::item.type}}" ng-if="::!item.avatar"></i> <i class="item-image avatar" style="background-image: url({{::item.avatar.src}})" ng-if="::item.avatar"></i><h2 ng-bind-html="::item.title"></h2><h4><span class="dark" ng-if="::item.city"><b class="ion-location"></b> <span ng-bind-html="::item.city"></span> </span><span class="gray" ng-if="::item.distance">({{::item.distance|formatDecimal}} {{::geoUnit}})</span></h4><h4><span class="gray" ng-if="::item.time && search.lastRecords"><b class="ion-clock"></b> {{::item.time | formatFromNow}} </span><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4><span ng-if="::item.picturesCount > 1" class="badge badge-balanced badge-picture-count">{{::item.picturesCount}}&nbsp;<i class="icon ion-camera"></i></span></div><div class="col hidden-xs"><h4 class="text-wrap"><span class="visible-sm"><b class="ion-flag"></b><ng-if ng-if="::item.category">{{::item.category.name|truncText:50}}</ng-if><ng-if ng-if="::!item.category">{{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</ng-if></span><span class="gray text-italic" ng-if="::item.description"><b class="ion-quote"></b> <span ng-bind-html="::item.description|truncText:500" ng-if="::item.description"></span></span></h4></div></div></a></div><ion-infinite-scroll ng-if="!search.loading && search.hasMore" spinner="android" on-infinite="showMore()" distance="10%"></ion-infinite-scroll>'),e.put("plugins/es/templates/registry/lookup_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showNewPageModal();"><i class="icon ion-plus"></i> <span translate>REGISTRY.BTN_NEW</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/lookup_popover_filters.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_FILTER_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="doGetLastRecords()"><i class="icon ion-clock"></i> {{\'REGISTRY.SEARCH.BTN_LAST_RECORDS\' | translate}} </a><a class="item item-icon-left ink" ng-click="toggleAdvanced();"><i class="icon ion-android-checkbox-outline-blank" ng-show="!search.advanced"></i> <i class="icon ion-android-checkbox-outline" ng-show="search.advanced"></i> <span translate>REGISTRY.SEARCH.POPOVER_FILTERS.BTN_ADVANCED_SEARCH</span></a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/registry/modal_record_type.html",'<ion-modal-view><ion-header-bar class="bar-positive"><button class="button button-clear" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>{{getParameters().title||\'REGISTRY.TYPE.TITLE\'|translate}}</h1></ion-header-bar><ion-content class="lookupForm"><div class="list padding"><h3 translate>REGISTRY.TYPE.SELECT_TYPE</h3><button class="button button-block button-stable icon-left cion-page-shop" ng-click="closeModal(\'shop\')" translate>REGISTRY.TYPE.ENUM.SHOP</button> <button class="button button-block button-stable icon-left cion-page-association" ng-click="closeModal(\'association\')" translate>REGISTRY.TYPE.ENUM.ASSOCIATION</button> <button class="button button-block button-stable icon-left cion-page-company" ng-click="closeModal(\'company\')" translate>REGISTRY.TYPE.ENUM.COMPANY</button> <button class="button button-block button-stable icon-left cion-page-institution" ng-click="closeModal(\'institution\')" translate>REGISTRY.TYPE.ENUM.INSTITUTION</button></div></ion-content></ion-modal-view>'),e.put("plugins/es/templates/registry/view_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>REGISTRY.VIEW.MENU_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-click="showSharePopover($event)"><i class="icon ion-android-share-alt"></i> {{\'COMMON.BTN_SHARE\' | translate}} </a><a class="item item-icon-left assertive ink" ng-if="canEdit" ng-click="delete()"><i class="icon ion-trash-a"></i> {{\'COMMON.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),
+e.put("plugins/es/templates/registry/view_record.html",'<ion-view left-buttons="leftButtons" class="view-page"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-bar button-icon button-clear visible-xs visible-sm" ng-click="edit()" ng-if="canEdit"><i class="icon ion-android-create"></i></button> <button class="button button-bar button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content scroll="true" class="refresher-top-bg"><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="hero"><div class="content" ng-if="!loading"><i class="avatar cion-page-{{formData.type}}" ng-if="!formData.avatar"></i> <i class="avatar" ng-style="{{avatarStyle}}" ng-if="formData.avatar"></i><h3><span class="dark" ng-bind-html="formData.title"></span></h3><h4>&nbsp;</h4></div><h4 class="content dark" ng-if="loading"><ion-spinner icon="android"></ion-spinner></h4></div><div class="row no-padding-xs no-padding-sm"><div class="col list animate-fade-slide-in item-text-wrap no-padding-xs no-padding-sm"><div class="item"><h2 class="gray"><a ng-if="formData.city" ui-sref="app.wot_lookup.tab_registry({location:formData.city})"><i class="icon ion-location"></i> <span ng-bind-html="formData.city"></span> </a><span ng-if="formData.city && formData.type">&nbsp;|&nbsp;</span> <a ng-if="formData.type" ui-sref="app.wot_lookup.tab_registry({type:formData.type})"><i class="cion-page-{{formData.type}}"></i> {{\'REGISTRY.TYPE.ENUM.\'+formData.type|upper|translate}}</a></h2><h4><i class="icon ion-clock" ng-if="formData.time"></i> <span translate="">COMMON.SUBMIT_BY</span> <a ng-class="{\'positive\': issuer.uid, \'gray\': !issuer.uid}" ui-sref="app.wot_identity({pubkey:issuer.pubkey, uid: issuer.name||issuer.uid})"><ng-if ng-if="issuer.uid"><i class="icon ion-person"></i> {{::issuer.name||issuer.uid}}</ng-if><span ng-if="!issuer.uid"><i class="icon ion-key"></i> {{issuer.pubkey|formatPubkey}} </span></a><span>{{formData.time|formatFromNow}}<h4 class="gray hidden-xs">| {{formData.time | formatDate}}</h4></span></h4></div><a id="registry-share-anchor-{{id}}"></a><div class="item"><h2 trust-as-html="formData.description"></h2></div><div class="item" ng-if="formData.category || formData.address"><h4 ng-if="formData.category"><span class="gray" translate="">REGISTRY.VIEW.CATEGORY</span> <a class="positive" ng-if="formData.category" ui-sref="app.wot_lookup.tab_registry({category:formData.category.id})"><span ng-bind-html="formData.category.name"></span></a></h4><h4 ng-if="formData.address"><span class="gray" translate="">REGISTRY.VIEW.LOCATION</span> <a class="positive" target="_system" href="https://www.openstreetmap.org/search?query={{formData.address}},%20{{formData.city}}"><span ng-bind-html="formData.address"></span> <span ng-if="formData.city">- </span><span ng-bind-html="formData.city"></span></a></h4></div><ng-if ng-if="formData.socials && formData.socials.length>0"><div class="item item-icon-left" type="no-padding item-text-wrap" ng-repeat="social in formData.socials track by social.url" id="social-{{social.url|formatSlug}}"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}}</p><h2><a ng-click="openLink($event, social.url, social.type)">{{social.url}}</a></h2></div></ng-if><div class="item item-icon-left item-text-wrap ink" ng-if="formData.pubkey" copy-on-click="{{::formData.pubkey}}"><i class="icon ion-key"></i> <span translate="">REGISTRY.EDIT.RECORD_PUBKEY</span><h4 class="dark">{{::formData.pubkey}}</h4></div><div class="lazy-load"><ng-include src="\'plugins/es/templates/common/view_pictures.html\'"></ng-include><ng-include src="\'plugins/es/templates/common/view_comments.html\'"></ng-include></div></div></div></ion-content><button class="button button-fab button-fab-bottom-right button-assertive icon ion-android-send visible-xs visible-sm" ng-if="formData.pubkey && !isUserPubkey(formData.pubkey)" ng-click="showTransferModal({pubkey: formData.pubkey, uid: formData.title})"></button></ion-view>'),e.put("plugins/es/templates/registry/view_wallet_pages.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'REGISTRY.MY_PAGES\' | translate}}</ion-nav-title><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doUpdate()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">REGISTRY.NO_PAGE</div><ng-include src="\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content><button id="fab-wallet-add-registry-record" class="button button-fab button-fab-bottom-right button-assertive hidden-md hidden-lg spin" ng-click="showNewPageModal()"><i class="icon ion-plus"></i></button></ion-view>'),e.put("plugins/es/templates/settings/plugin_settings.html",'<ion-view left-buttons="leftButtons" class="settings"><ion-nav-title translate="">ES_SETTINGS.PLUGIN_NAME</ion-nav-title><ion-content scroll="true"><div class="item item-toggle dark"><div class="input-label" translate="">ES_SETTINGS.ENABLE_TOGGLE</div><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.STORAGE_DIVIDER</span><div class="item item-toggle item-text-wrap dark"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.ENABLE_REMOTE_STORAGE</div><h4 class="gray text-wrap" ng-bind-html="\'ES_SETTINGS.ENABLE_REMOTE_STORAGE_HELP\' | translate"></h4><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.useRemoteStorage" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></div><span class="item item-divider" translate="">SETTINGS.NETWORK_SETTINGS</span><ion-item class="ink item-icon-right item-text-wrap visible-xs visible-sm" ng-click="formData.enable && changeEsNode()" ng-disabled="!formData.enable"><div class="input-label" ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.PEER</div><ng-if ng-if="isFallbackNode"><h4 class="gray text-wrap assertive"><b class="ion-alert-circled"></b> <span ng-bind-html="\'SETTINGS.PEER_CHANGED_TEMPORARY\' | translate "></span></h4><div class="badge badge-assertive">{{server}}</div></ng-if><div class="badge" ng-class="{\'badge-balanced\': formData.enable, \'badge-stable\': !formData.enable}" ng-if="!isFallbackNode">{{server}}</div><i class="icon ion-ios-arrow-right"></i></ion-item><span class="item item-divider" translate="">ES_SETTINGS.NOTIFICATIONS.DIVIDER</span><span class="item gray item-text-wrap" translate="">ES_SETTINGS.NOTIFICATIONS.HELP_TEXT</span><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_TX_RECEIVED</span><label class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.txReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></label></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_SENT</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certSent" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><label class="item item-toggle dark item-text-wrap"><span ng-class="{\'gray\': !formData.enable}" translate="">ES_SETTINGS.NOTIFICATIONS.ENABLE_CERT_RECEIVED</span><div class="toggle toggle-royal"><input type="checkbox" ng-model="formData.notifications.certReceived" ng-disabled="!formData.enable"><div class="track"><div class="handle"></div></div></div></label><cs-extension-point name="common"></cs-extension-point></ion-content></ion-view>'),e.put("plugins/es/templates/settings/settings_extend.html",'<div class="item item-text-wrap item-icon-right ink" ui-sref="app.es_settings"><div class="input-label ng-binding" translate>ES_SETTINGS.PLUGIN_NAME</div><h4 class="gray" translate>ES_SETTINGS.PLUGIN_NAME_HELP</h4><i class="icon ion-ios-arrow-right"></i></div>'),e.put("plugins/es/templates/subscription/edit_subscriptions.html",'<ion-view left-buttons="leftButtons" class="view-notification"><ion-nav-title>{{\'SUBSCRIPTION.EDIT.TITLE\' | translate}}</ion-nav-title><ion-nav-buttons side="secondary"></ion-nav-buttons><ion-content class="padding no-padding-xs no-padding-sm" scroll="true"><ion-refresher pulling-text="{{:locale:\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="load()"></ion-refresher><div class="center padding" ng-if="search.loading"><ion-spinner icon="android"></ion-spinner></div><div class="center padding gray" ng-if="!search.loading && !search.results.length" translate="">SUBSCRIPTION.NO_SUBSCRIPTION</div><div class="row no-padding"><div class="col list {{::motion.ionListClass}} item-border-large"><ng-repeat ng-repeat="subscriptions in search.results | filter: { type: \'email\' }" ng-include="\'plugins/es/templates/subscription/item_\' + subscriptions.type.toLowerCase() + \'_subscription.html\'">></ng-repeat></div></div></ion-content><button id="fab-add-subscription-record" class="button button-fab button-fab-bottom-right button-assertive icon ion-plus hidden-md hidden-lg spin" ng-click="addSubscription()"></button></ion-view>'),e.put("plugins/es/templates/subscription/item_email_subscription.html",'<div class="item item-avatar"><i class="item-image icon ion-email"></i><h3>{{\'SUBSCRIPTION.TYPE.ENUM.\' + subscriptions.type.toUpperCase() | translate}}</h3><h4 class="gray">{{\'SUBSCRIPTION.EDIT.PROVIDER\'|translate}} <a ui-sref="app.wot_identity({pubkey: subscriptions.recipient, uid: subscriptions.uid})"><span ng-class="{\'positive\': subscriptions.uid, \'dark\': !subscriptions.uid}" ng-if="subscriptions.name||subscriptions.uid"><i class="ion-person" ng-if="subscriptions.uid"></i> {{subscriptions.name||subscriptions.uid}} </span><span class="gray" ng-if="!subscriptions.uid"><i class="ion-key"></i> {{subscriptions.recipient | formatPubkey}}</span></a></h4><div class="item-note text-right"><span ng-repeat="item in subscriptions.items">{{item.content.email}} <a class="ion-trash-a gray padding-left" ng-click="deleteSubscription(item)"></a> <a class="ion-edit gray padding-left" ng-click="editSubscription(item)"></a><br></span></div></div>'),e.put("plugins/es/templates/subscription/modal_email.html",'<ion-modal-view id="composeMessage" class="modal-full-height"><ion-header-bar class="bar-positive"><button class="button button-clear visible-xs" ng-click="closeModal()" translate>COMMON.BTN_CANCEL</button><h1 class="title" translate>SUBSCRIPTION.MODAL_EMAIL.TITLE</h1><button class="button button-icon button-clear icon ion-android-send visible-xs" ng-click="doSubmit()"></button></ion-header-bar><ion-content scroll="true"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate>SUBSCRIPTION.MODAL_EMAIL.HELP</h4></div><form name="subscriptionForm" novalidate="" ng-submit="doSubmit()"><div class="list" ng-init="setForm(subscriptionForm)"><label class="item item-input" ng-class="{\'item-input-error\': form.$submitted && (form.email.$invalid || form.email.$error)}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.EMAIL_LABEL</span> <input name="email" type="text" placeholder="{{\'SUBSCRIPTION.MODAL_EMAIL.EMAIL_HELP\' | translate}}" ng-model="formData.content.email" ng-minlength="3" required email></label><div class="form-errors" ng-if="form.$submitted && (form.email.$invalid || form.email.$error)" ng-messages="form.email.$error"><div class="form-error" ng-message="minlength"><span translate="ERROR.FIELD_TOO_SHORT"></span></div><div class="form-error" ng-message="email"><span translate="ERROR.FIELD_NOT_EMAIL"></span></div></div><label class="item item-input item-select" ng-class="{\'item-input-error\': form.$submitted && !formData.content.frequency}"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_LABEL</span><select name="frequency" ng-model="formData.content.frequency" style="height: 46px;margin-top: 1px"><option value="weekly" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_WEEKLY</option><option value="daily" translate>SUBSCRIPTION.MODAL_EMAIL.FREQUENCY_DAILY</option></select></label><div class="form-errors" ng-if="form.$submitted && !formData.content.frequency"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div><a class="item item-input item-icon-right gray ink" ng-class="{\'item-input-error\': form.$submitted && !formData.recipient}" ng-click="showNetworkLookup()" style="height: 67px"><span class="input-label" translate>SUBSCRIPTION.MODAL_EMAIL.PROVIDER</span> <span class="badge animate-fade-in animate-show-hide ng-hide" ng-class="{\'badge-royal\': recipient.uid, \'badge-stable\': !recipient.uid}" ng-show="recipient && (recipient.name||recipient.uid)"><i class="ion-person" ng-if="recipient.uid"></i> {{recipient.name||recipient.uid}} </span><span class="badge badge-secondary animate-fade-in animate-show-hide ng-hide" ng-show="formData.recipient"><i class="ion-key"></i> {{formData.recipient | formatPubkey}} </span><i class="gray icon ion-ios-arrow-right"></i></a><div class="form-errors" ng-if="form.$submitted && !formData.recipient"><div class="form-error"><span translate="ERROR.FIELD_REQUIRED"></span></div></div></div><div class="padding hidden-xs text-right"><button class="button button-clear button-dark ink" ng-click="cancel()" type="button" translate>COMMON.BTN_CANCEL</button> <button class="button button-positive ink" type="submit">{{\'COMMON.BTN_ADD\' | translate}}</button></div></form></ion-content></ion-modal-view>'),e.put("plugins/es/templates/user/edit_popover_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left assertive ink" ng-click="removeProfile()"><i class="icon ion-trash-a"></i> {{\'PROFILE.BTN_DELETE\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/user/edit_profile.html",'<ion-view left-buttons="leftButtons"><ion-nav-title></ion-nav-title><ion-nav-buttons side="secondary"><button class="button button-icon button-clear button-assertive ion-trash-a visible-xs visible-sm" ng-click="removeProfile()" ng-if="existing"></button> <button class="button button-icon button-clear ion-android-done visible-xs visible-sm" ng-click="submitAndSaveAndClose()"></button></ion-nav-buttons><ion-content scroll="true"><div class="positive-900-bg hero"><div class="content"><i class="avatar" ng-style="avatarStyle" ng-class="{\'avatar-wallet\': !loading && !avatar && walletData && !walletData.isMember, \'avatar-member\': !loading && !avatar && walletData.isMember}"><button class="button button-positive button-large button-clear flat icon ion-camera visible-xs visible-sm" style="display: inline-block" ng-click="showAvatarModal()"></button> <button ng-if="avatar.src" class="button button-positive button-large button-clear flat visible-xs visible-sm" style="display: inline-block; left: 85px; bottom:15px" ng-click="rotateAvatar()"><i class="icon-secondary ion-image" style="left: 24px; top: 3px; font-size: 24px"></i> <i class="icon-secondary ion-forward" style="left: 26px; top: -13px"></i></button></i><h3 class="light"><ng-if ng-if="!loading && !formData.title && walletData && walletData.isMember">{{walletData.uid}}</ng-if><ng-if ng-if="!loading && !formData.title && walletData && !walletData.isMember">{{::walletData.pubkey | formatPubkey}}</ng-if><ng-if ng-if="!loading && formData.title">{{formData.title}}</ng-if></h3><h4 class="light"><ion-spinner ng-if="loading" icon="android"></ion-spinner></h4></div></div><div class="row no-padding"><div class="col"><form name="profileForm" novalidate="" ng-submit="saveAndClose()"><div class="list item-text-wrap {{::motion.ionListClass}}" ng-init="setForm(profileForm)"><div class="item item-icon-left item-text-wrap"><i class="icon ion-ios-information-outline positive"></i><h4 class="positive" translate="">PROFILE.HELP.WARNING_PUBLIC_DATA</h4></div><div class="item item-divider">{{\'PROFILE.GENERAL_DIVIDER\' | translate}}</div><ion-item class="item-input item-floating-label item-button-right" ng-class="{\'item-input-error\': form.$submitted && form.title.$invalid}"><span class="input-label">{{\'PROFILE.TITLE\' | translate}}</span> <input type="text" name="title" placeholder="{{\'PROFILE.TITLE_HELP\' | translate}}" id="profile-name" ng-model="formData.title" ng-model-options="{ debounce: 350 }" ng-maxlength="50" required></ion-item><div class="form-errors" ng-show="form.$submitted && form.title.$error" ng-messages="form.title.$error"><div class="form-error" ng-message="required"><span translate="ERROR.FIELD_REQUIRED"></span></div><div class="form-error" ng-message="maxlength"><span translate="ERROR.FIELD_TOO_LONG_WITH_LENGTH" translate-values="{maxLength: 50}"></span></div></div><ion-item class="item-input item-floating-label item-button-right"><span class="input-label" style="width: 100%">{{\'PROFILE.DESCRIPTION\' | translate}}</span><textarea placeholder="{{\'PROFILE.DESCRIPTION_HELP\' | translate}}" ng-model="formData.description" ng-model-options="{ debounce: 350 }" rows="4" cols="10">\n              </textarea></ion-item><ng-include src="\'plugins/es/templates/common/edit_position.html\'" ng-controller="ESPositionEditCtrl as ctrl"></ng-include></div><ng-include src="\'plugins/es/templates/common/edit_socials.html\'" ng-controller="ESSocialsEditCtrl"></ng-include><div class="list item-text-wrap {{::motion.ionListClass}}"><div class="item item-divider">{{\'PROFILE.TECHNICAL_DIVIDER\' | translate}}</div><ion-item class="item-icon-left" ng-if="walletData && walletData.uid"><span translate="">COMMON.UID</span> <span class="badge badge-stable">{{::walletData.uid}}</span></ion-item><ion-item class="item-icon-left item-icon-right item-text-wrap ink" on-hold="copy(formData.pubkey)" copy-on-click=""><i class="icon ion-key"></i> <span translate="">COMMON.PUBKEY</span><p class="gray">{{walletData.pubkey}}</p></ion-item></div></form></div></div></ion-content></ion-view>'),e.put("plugins/es/templates/user/items_profile.html",'<div ng-if="!formData.profile" class="item gray" translate>PROFILE.NO_PROFILE_DEFINED</div><div class="item" ng-if="formData.profile && formData.name && showName"><span class="gray" translate>PROFILE.TITLE</span><h3>{{formData.name}}</h3></div><div class="item item-text-wrap" ng-if="formData.profile.description"><span class="gray" translate>PROFILE.DESCRIPTION</span><h3 trust-as-html="formData.profile.description"></h3></div><div class="item" ng-if="formData.profile.address || formData.profile.city" copy-on-click="{{formData.profile.address ? formData.profile.address + \'&#10;\' : \'\'}}{{formData.profile.city}}"><span class="gray" translate>LOCATION.LOCATION_DIVIDER</span><h3><span class="text-keep-lines" ng-if="formData.profile.address">{{formData.profile.address}}<br></span>{{formData.profile.city}}</h3></div><div class="item" ng-if="formData.profile.socials && formData.profile.socials.length" ng-controller="ESSocialsViewCtrl"><span class="gray" translate>PROFILE.SOCIAL_NETWORKS_DIVIDER</span><div class="list no-padding"><ion-item ng-repeat="social in formData.profile.socials | filter:filterFn track by social.url " id="social-{{::social.url|formatSlug}}" class="item-icon-left item-text-wrap no-padding-bottom ink" on-tap="openSocial($event, social)"><i class="icon ion-social-{{social.type}}" ng-class="{\'ion-bookmark\': social.type == \'other\', \'ion-link\': social.type == \'web\', \'ion-email\': social.type == \'email\', \'ion-iphone\': social.type == \'phone\'}"></i><p ng-if="social.type && social.type != \'web\'">{{social.type}} <i class="ion-locked" ng-if="social.recipient"></i></p><h4><a on-tap="openSocial($event, social)" href="{{::social.url}}" target="_blank">{{::social.url}}</a></h4></ion-item></div></div>'),e.put("plugins/es/templates/wallet/item_wallet_extend.html",'<h4 class="dark" ng-if=":state:enable && wallet.id!=\'default\'"><a ng-if="walletData.invitations.unreadCount"><i class="dark ion-person-stalker"></i> {{walletData.invitations.unreadCount}} </a><a ng-if="walletData.messages.unreadCount" ui-sref="app.user_messages_by_id.tab_inbox({id: wallet.id})"><i class="dark ion-email"></i> {{walletData.messages.unreadCount}} </a><a ng-if="walletData.notifications.unreadCount" ui-sref="app.view_notifications_by_id({id: wallet.id})"><i class="dark ion-android-notifications"></i> {{walletData.notifications.unreadCount}}</a></h4>'),e.put("plugins/es/templates/wallet/view_wallet_extend.html",'<ng-if ng-if=":state:enable"><div class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></i> </span><a class="badge button button-text button-small button-small-padding" ng-if="isDefaultWallet" ui-sref="app.edit_profile"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!isDefaultWallet" ui-sref="app.edit_profile_by_id({id: walletId})"><i class="icon ion-edit"></i> <span ng-if="!formData.profile" translate>PROFILE.BTN_ADD</span> <span ng-if="formData.profile" translate>PROFILE.BTN_EDIT</span></a></div><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=true"></ng-include><div class="item item-divider item-divider-top-border"><span>{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showSubscriptionHelp=!showSubscriptionHelp" class="icon positive ion-ios-help-outline" title="{{\'SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span> </a><a class="badge button button-text button-small button-small-padding" ng-if="!formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-edit"></i> <span translate>SUBSCRIPTION.BTN_ADD</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showSubscriptionHelp"><small translate>SUBSCRIPTION.SUBSCRIPTION_DIVIDER_HELP</small></div><div ng-if="!formData.subscriptions.count" class="item gray" translate>SUBSCRIPTION.NO_SUBSCRIPTION</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && isDefaultWallet" ui-sref="app.edit_subscriptions"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.subscriptions.count && !isDefaultWallet" ui-sref="app.edit_subscriptions_by_id({id: walletId})"><i class="icon ion-gear-a"></i> <span translate>SUBSCRIPTION.SUBSCRIPTION_COUNT</span> <span class="badge badge-calm">{{formData.subscriptions.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a><div class="item item-divider item-divider-top-border"><span>{{\'REGISTRY.WALLET.REGISTRY_DIVIDER\' | translate}} <i style="font-size: 12pt; cursor: pointer" ng-click="showPagesHelp=!showPagesHelp" class="icon positive ion-ios-help-outline" title="{{\'REGISTRY.WALLET.REGISTRY_HELP\' | translate}}"></i> <span><a class="badge button button-text button-small button-small-padding" ng-if="!formData.pages.count" ng-click="showNewPageModal()"><i class="icon ion-edit"></i> <span translate>REGISTRY.BTN_NEW</span></a></span></span></div><div class="item item-text-wrap positive item-small-height" ng-show="showPagesHelp"><small translate>REGISTRY.WALLET.REGISTRY_HELP</small></div><div ng-if="!formData.pages.count" class="item gray" translate>REGISTRY.NO_PAGE</div><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && isDefaultWallet" ui-sref="app.wallet_pages"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i> </a><a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="formData.pages.count && !isDefaultWallet" ui-sref="app.wallet_pages_by_id({id: walletId})"><i class="icon ion-social-buffer"></i> <span translate>REGISTRY.MY_PAGES</span> <span class="badge badge-calm">{{formData.pages.count}}</span> <i class="gray icon ion-ios-arrow-right"></i></a></ng-if>'),e.put("plugins/es/templates/wot/lookup_extend.html",'<ion-tab ng-if=":state:enable" title="{{\'MENU.REGISTRY\'|translate}}" icon="ion-social-buffer" ui-sref="app.wot_lookup.tab_registry"><ion-nav-view name="tab_registry"></ion-nav-view></ion-tab>'),e.put("plugins/es/templates/wot/lookup_item_group.html",'<i ng-if="::!item.avatar" class="item-image icon ion-android-people"></i> <i ng-if="::!item.avatar" class="item-image icon-secondary ion-android-lock" style="left: 20px; top: 17px; font-size: 19px; color: #d9d9d9"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><i class="ion-clock"></i> {{:rebind:\'GROUP.CREATED_TIME\'|translate: item }}</h4><h4 class="dark pull-left" ng-if=":rebind:item.membersCount"><i class="dark ion-person"></i> <span class="dark">+{{:rebind:item.membersCount}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_item_page.html",'<i ng-if="::!item.avatar" class="item-image icon cion-page-{{item.type}}"></i> <i ng-if="::item.avatar" class="item-image avatar" style="background-image: url({{::item.avatar.src}})"></i><h2 ng-bind-html=":rebind:item.name"></h2><h4 class="gray"><span class="gray" ng-if="::item.city"><i class="ion-location"></i> {{::item.city|truncText}} </span><span ng-if="::item.city && item.type">|</span> <span ng-if="item.type"><i class="cion-page-{{item.type}}"></i> {{::\'REGISTRY.TYPE.ENUM.\'+item.type|uppercase|translate}}</span></h4><h4 class="dark"><span class="dark" ng-if="::item.description"><i class="ion-quote"></i> {{::item.description|truncText}}</span></h4><h4 ng-if="::item.tags"><span ng-if="::item.tags" class="dark"><ng-repeat ng-repeat="tag in ::item.tags">#<ng-bind-html ng-bind-html="::tag"></ng-bind-html></ng-repeat></span></h4>'),e.put("plugins/es/templates/wot/lookup_lg_extend.html",'<div class="buttons-tabs" ng-if=":state:enable"><div class="pull-right"><div class="button button-tab dark" title="{{\'REGISTRY.BTN_SHOW_WOT_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/lg" ui-sref="app.wot_lookup_lg"><i class="icon ion-person-stalker"></i> {{\'REGISTRY.BTN_SHOW_WOT\' | translate}}</div><a class="button button-tab ink dark" title="{{\'REGISTRY.BTN_SHOW_PAGES_HELP\' | translate}}" nav-transition="none" active-link="active" active-link-path-prefix="#/app/wot/page" ui-sref="app.registry_lookup_lg"><i class="icon ion-social-buffer"></i> {{\'REGISTRY.BTN_SHOW_PAGES\' | translate}}</a></div><div class="pull-right" ng-if="showNewPageButton">&nbsp;</div></div>'),e.put("plugins/es/templates/wot/popover_certification_actions.html",'<ion-popover-view class="fit has-header"><ion-header-bar><h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1></ion-header-bar><ion-content scroll="false"><div class="list item-text-wrap"><a class="item item-icon-left ink" ng-if="canCertify" ng-click="certify()"><i class="icon ion-ribbon-b"></i> {{\'WOT.BTN_CERTIFY\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey) && formData.isMember" ng-click="askCertification()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATION\' | translate}} </a><a class="item item-icon-left ink" ng-if="isUserPubkey(formData.pubkey)" ng-click="showAskCertificationModal()"><i class="icon-secondary ion-ribbon-b" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 35px; top: 0px"></b> {{\'WOT.BTN_ASK_CERTIFICATIONS_DOTS\' | translate}} </a><a class="item item-icon-left ink" ng-if="!isUserPubkey(formData.pubkey)" ng-click="showSuggestCertificationModal()"><i class="icon-secondary ion-person-stalker" style="left: 16px; top: 0px; font-size: 25px"></i> <b class="icon-secondary ion-help" style="left: 37px; top: -4px"></b> {{\'WOT.BTN_SUGGEST_CERTIFICATIONS_DOTS\' | translate}}</a></div></ion-content></ion-popover-view>'),e.put("plugins/es/templates/wot/view_certifications_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'nav-buttons\'"><button class="button button-icon button-clear icon ion-android-more-vertical visible-xs visible-sm" ng-click="showCertificationActionsPopover($event)"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-android-more-vertical" ng-click="showCertificationActionsPopover($event)" title="{{\'COMMON.POPOVER_ACTIONS_TITLE\' | translate}}"></button></ng-if>'),e.put("plugins/es/templates/wot/view_identity_extend.html",'<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'"><button class="button button-stable button-small-padding icon ion-compose" ng-click="showNewMessageModal()" title="{{\'MESSAGE.BTN_WRITE\' | translate}}"></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'buttons-top-fab\'"><button id="fab-compose-{{:rebind:formData.pubkey}}" class="button button-fab button-fab-top-left button-fab-hero mini button-stable spin" style="left: 88px" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></ng-if><ng-if ng-if=":state:enable && extensionPoint === \'after-general\'"><span class="item item-divider item-divider-top-border"><span>{{\'PROFILE.PROFILE_DIVIDER\' | translate}} <a style="font-size: 12pt; cursor: pointer" ng-click="showProfileHelp=!showProfileHelp" class="icon positive ion-ios-help-outline ink" title="{{\'PROFILE.PROFILE_DIVIDER_HELP\' | translate}}"></a></span></span><div class="item item-text-wrap positive item-small-height" ng-show="showProfileHelp"><small translate>PROFILE.PROFILE_DIVIDER_HELP</small></div><ng-include src="\'plugins/es/templates/user/items_profile.html\'" ng-init="showName=false;"></ng-include></ng-if>'),e.put("plugins/graph/templates/account/graph_balance.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="account-balance" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/account/graph_certifications.html",'\n    <div class="padding-left padding-right">\n      <canvas id="account-certifications" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n'),e.put("plugins/graph/templates/account/graph_sum_tx.html",'<div class="row responsive-sm" ng-if="!loading">\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX input chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="inputChart.data.length"\n       translate>GRAPH.ACCOUNT.INPUT_CHART_TITLE</p>\n    <canvas id="chart-received-pie" class="chart-pie"\n            chart-data="inputChart.data"\n            chart-labels="inputChart.labels"\n            chart-colors="inputChart.colors"\n            chart-click="onInputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n  <div class="col text-center">\n\n    \x3c!-- TX output chart --\x3e\n    <p class="gray padding text-wrap"\n       ng-if="outputChart.data.length"\n       translate>GRAPH.ACCOUNT.OUTPUT_CHART_TITLE</p>\n    <canvas id="chart-sent-pie" class="chart-pie"\n            chart-data="outputChart.data"\n            chart-labels="outputChart.labels"\n            chart-colors="outputChart.colors"\n            chart-click="onOutputChartClick">\n    </canvas>\n\n  </div>\n\n  <div class="col col-10 hidden-xs hidden-sm">&nbsp;</div>\n\n</div>\n'),e.put("plugins/graph/templates/account/view_identity_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_identity_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showIdentityStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/account/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.ACCOUNT.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n\n\n    <div class="list" >\n\n      \x3c!--  - - - - Balance - - - - --\x3e\n      <ng-controller ng-controller="GpAccountBalanceCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.ACCOUNT.BALANCE_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/account/graph_balance.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_sum_tx.html\'"\n         ng-controller="GpAccountSumTxCtrl">\n    </div>\n\n    \x3c!--  - - - - WOT - - - -\n    <div class="item item-divider" translate>\n      GRAPH.ACCOUNT.WOT_DIVIDER\n    </div>\n\n    <div class="item no-padding-xs"\n         ng-include="\'plugins/graph/templates/account/graph_certifications.html\'"\n         ng-controller="GpAccountCertificationCtrl"\n         ng-init="setSize(350, 1000)">\n    </div>--\x3e\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/account/view_wallet_tx_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="extensionPoint === \'buttons\'">\n\n  <button class="button button-stable button-small-padding icon ion-stats-bars"\n          ng-click="showWalletStats()"\n          title="{{\'GRAPH.ACCOUNT.BTN_SHOW_STATS\' | translate}}">\n  </button>\n\n</ng-if>\n'),e.put("plugins/graph/templates/blockchain/graph_block_issuers.html",'\n    <div class="row responsive-lg">\n\n      \x3c!-- bar --\x3e\n      <div class="col col-75">\n        <canvas id="bar" class="chart-bar"\n                height="{{height}}" width="{{width}}"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-options="barOptions"\n                chart-click="onChartClick">\n        </canvas>\n      </div>\n\n      \x3c!-- pie --\x3e\n      <div class="col col-25 padding-top">\n        <canvas id="blocksByIssuer-pie" class="chart-pie"\n                chart-data="data"\n                chart-labels="labels"\n                chart-colors="colors"\n                chart-click="onChartClick">\n        </canvas>\n\n        <div class="gray padding-top text-center">\n          <small ng-bind-html="\'GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_HELP\'| translate:{issuerCount: data.length, blockCount: blockCount }"></small>\n        </div>\n      </div>\n    </div>\n'),e.put("plugins/graph/templates/blockchain/graph_tx_count.html",'\n    \x3c!-- button bar --\x3e\n    <div class="button-bar-inline "\n         style="top: 33px; margin-top:-33px; position: relative;">\n      <button\n        class="button button-stable button-clear no-padding-xs pull-right"\n        ng-click="showActionsPopover($event)">\n        <i class="icon ion-navicon-round"></i>\n      </button>\n    </div>\n\n    <div class="padding-left padding-right">\n      <canvas id="tx-line" class="chart-bar"\n              height="{{height}}" width="{{width}}"\n              chart-data="data"\n              chart-dataset-override="datasetOverride"\n              chart-colors="colors"\n              chart-options="options"\n              chart-labels="labels"\n              chart-click="onChartClick">\n      </canvas>\n    </div>\n\n    <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/blockchain/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n\n      \x3c!-- TX count --\x3e\n      <ng-controller ng-controller="GpBlockchainTxCountCtrl">\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item item-divider" ng-if="!loading" >\n          {{\'GRAPH.BLOCKCHAIN.TX_DIVIDER\'|translate}}\n          <ion-spinner ng-if="loadingRange" class="ion-spinner-small" icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n             ng-init="setSize(350, 1000)">\n        </div>\n      </ng-controller>\n\n\n      \x3c!-- Blocks issuer --\x3e\n      <ng-controller ng-controller="GpBlockchainIssuersCtrl">\n\n        <div class="item item-divider" ng-if="!loading" translate>GRAPH.BLOCKCHAIN.BLOCKS_ISSUERS_DIVIDER</div>\n\n        <div class="item no-padding-xs no-padding-sm"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n             ng-init="setSize(300, 750)">\n        </div>\n\n      </ng-controller>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/common/graph_range_bar.html",'\n  <div class="range range-positive no-padding-left no-padding-right">\n    <a\n      class="button button-stable button-clear no-padding pull-left"\n      ng-click="goPreviousRange($event)">\n      <i class="icon ion-chevron-left"></i>\n    </a>\n    <input type="range"\n           ng-model="formData.timePct"\n           name="timePct"\n           min="0" max="100"\n           value="{{formData.timePct}}"\n           ng-change="onRangeChanged();"\n           ng-model-options="{ debounce: 250 }">\n    <a\n      class="button button-stable button-clear no-padding pull-right"\n      ng-click="goNextRange($event)">\n      <i class="icon ion-chevron-right"></i>\n    </a>\n  </div>\n'),e.put("plugins/graph/templates/common/popover_range_actions.html",'<ion-popover-view class="has-header popover-graph-currency">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      \x3c!-- scale --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n      \x3c!-- duration divider --\x3e\n      <div class="item item-divider">\n        {{\'GRAPH.COMMON.RANGE_DURATION_DIVIDER\'|translate}}\n      </div>\n\n      \x3c!-- duration: hour --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'hour\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'hour\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.HOUR\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: day --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'day\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'day\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.DAY\' | translate"></span>\n      </a>\n\n      \x3c!-- duration: month --\x3e\n      <a class="item item-icon-left ink"\n         ng-click="setRangeDuration(\'month\')">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.rangeDuration==\'month\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.RANGE_DURATION.MONTH\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/graph_du.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar" class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="showBlock">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_members_count.html",'  <canvas id="membersCount-bar" class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-options="options"\n          chart-dataset-override="datasetOverride"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/graph_monetary_mass.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="monetaryMass-bar"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="data"\n          chart-labels="labels"\n          chart-colors="colors"\n          chart-dataset-override="datasetOverride"\n          chart-options="options"\n          chart-click="onChartClick">\n  </canvas>\n'),e.put("plugins/graph/templates/currency/popover_monetary_mass_actions.html",'<ion-popover-view class="fit has-header">\n  <ion-header-bar>\n    <h1 class="title" translate>COMMON.POPOVER_ACTIONS_TITLE</h1>\n  </ion-header-bar>\n  <ion-content scroll="false">\n    <div class="list item-text-wrap">\n\n      <a class="item item-icon-left ink"\n         ng-click="toggleScale()">\n        <i class="icon ion-ios-checkmark-empty" ng-show="formData.scale==\'logarithmic\'"></i>\n        <span ng-bind-html="\'GRAPH.COMMON.LOGARITHMIC_SCALE\' | translate"></span>\n      </a>\n\n    </div>\n  </ion-content>\n</ion-popover-view>\n'),e.put("plugins/graph/templates/currency/tab_blocks_extend.html",'\x3c!-- buttons --\x3e\n<ng-if ng-if="enable && extensionPoint === \'buttons\'">\n  <div class="item item-divider">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_blocks_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n'),e.put("plugins/graph/templates/currency/view_currency_extend.html",'\n\x3c!-- section actual parameters --\x3e\n<ng-if ng-if="enable && extensionPoint === \'parameters-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n         ng-controller="GpCurrencyMonetaryMassCtrl"\n         ng-init="displayShareAxis=false;">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_parameters_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'wot-actual\'" >\n\n  <ng-if ng-if="!smallscreen">\n    <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n         ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n         ng-controller="GpCurrencyMembersCountCtrl">\n    </div>\n    <div class="item buttons no-padding-top ">\n      <a class="pull-right button button-text button-small button-small-padding ink" ui-sref="app.currency_stats_lg">\n        <i class="icon ion-stats-bars"></i>\n        <span translate>GRAPH.COMMON.BTN_SHOW_DETAILED_STATS</span>\n      </a>\n    </div>\n  </ng-if>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_wot_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n\x3c!-- section Wot --\x3e\n<ng-if ng-if="enable && extensionPoint === \'network-actual\'" >\n\n  <div class="item padding-left padding-right no-padding-xs no-padding-sm"\n       ng-if="!smallscreen"\n       ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n       ng-controller="GpBlockchainIssuersCtrl">\n  </div>\n\n  <div class="item item-divider"\n       ng-if="smallscreen">\n    <a class="badge button button-text button-small button-small-padding ink" ui-sref="app.currency.tab_network_stats">\n      <i class="icon ion-stats-bars"></i>\n      <span translate>GRAPH.COMMON.BTN_SHOW_STATS</span>\n    </a>\n  </div>\n</ng-if>\n\n'),e.put("plugins/graph/templates/currency/view_stats_lg.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n\n\n    <div class="list" >\n\n      \x3c!-- Monetary mass --\x3e\n      <ng-controller ng-controller="GpCurrencyMonetaryMassCtrl" >\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        <div class="item no-padding-xs" ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n\n        <div ng-if="!loading"\n             class="item item-toggle dark no-border text-right">\n          <span class="" translate>COMMON.BTN_RELATIVE_UNIT</span>\n          <label class="toggle toggle-royal" id="helptip-currency-change-unit">\n            <input type="checkbox" ng-model="formData.useRelative">\n            <div class="track">\n              <div class="handle"></div>\n            </div>\n          </label>\n        </div>\n      </ng-controller>\n\n      \x3c!-- DU --\x3e\n      <ng-controller ng-controller="GpCurrencyDUCtrl" >\n        <div class="item no-padding-xs"\n             ng-if="!loading"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(250, 1000)">\n        </div>\n      </ng-controller>\n\n      \x3c!-- Member count  --\x3e\n      <ng-controller ng-controller="GpCurrencyMembersCountCtrl" >\n      <div class="item no-padding-xs"\n           ng-if="!loading"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/currency/view_wot_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n\n  <ion-content scroll="true" >\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <ng-include\n      ng-if="!loading"\n      src="\'plugins/graph/templates/currency/graph_members_count.html\'" ></ng-include>\n  </ion-content>\n  </ion-view>\n'),e.put("plugins/graph/templates/network/view_es_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.doc_stats_lg" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_network_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if=":state:enable && extensionPoint === \'buttons\'">\n  <a class="button button-text button-small ink"\n     ui-sref="app.blockchain_stats" >\n    <i class="icon ion-stats-bars"></i>\n    <span>{{\'NETWORK.VIEW.BTN_GRAPH\'|translate}}</span>\n  </a>\n</ng-if>\n'),e.put("plugins/graph/templates/network/view_peer_extend.html",'\x3c!-- Buttons section --\x3e\n<ng-if ng-if="enable && extensionPoint === \'general\'">\n\n  <a class="item item-icon-left item-icon-right item-text-wrap ink"\n    ui-sref="app.view_peer_stats({pubkey: node.pubkey})">\n    <i class="icon ion-stats-bars"></i>\n    <span translate>GRAPH.PEER.VIEW.BLOCK_COUNT_LABEL</span>\n    <span class="badge"\n          ng-if="!loading"\n          ng-class="{\'badge-stable\': blockCount > 0, \'badge-assertive\': !blockCount}">\n      {{!blockCount ? \'GRAPH.PEER.VIEW.NO_BLOCK\' : \'GRAPH.PEER.VIEW.BLOCK_COUNT\' | translate:{count: blockCount} }}\n    </span>\n    <ion-spinner class="badge" icon="android" ng-if="loading"></ion-spinner>\n    <i class="gray icon ion-ios-arrow-right"></i>\n  </a>\n</ng-if>\n\n'),e.put("plugins/graph/templates/network/view_peer_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.BLOCKCHAIN.TITLE\' | translate}}{{id}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="no-padding">\n\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list" ng-if="!loading">\n\n      \x3c!--  - - - - TX divider - - - - --\x3e\n      <div class="item item-divider hidden-xs hidden-sm" translate>\n        GRAPH.BLOCKCHAIN.TX_DIVIDER\n      </div>\n\n      <div class="item no-padding-xs"\n           ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n           ng-init="setSize(350, 1000)">\n      </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/docstats/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs no-padding-sm pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="{{::chartIdPrefix}}{{chart.id}}"\n          class="chart-line"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options"\n          chart-click="onChartClick">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/docstats/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.DOC_STATS.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      \x3c!-- Doc stat --\x3e\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs no-padding-sm" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/docstats/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/graph/templates/synchro/graph.html",'\n  \x3c!-- graphs button bar --\x3e\n  <div class="button-bar-inline "\n       style="top: 33px; margin-top:-33px; position: relative;">\n    <button\n      class="button button-stable button-clear no-padding-xs pull-right"\n      ng-click="showActionsPopover($event)">\n      <i class="icon ion-navicon-round"></i>\n    </button>\n  </div>\n\n  <canvas id="synchro-chart-{{chart.id}}"\n          class="chart-bar"\n          height="{{height}}"\n          width="{{width}}"\n          chart-data="chart.data"\n          chart-labels="labels"\n          chart-dataset-override="chart.datasetOverride"\n          chart-options="chart.options">\n  </canvas>\n\n  <ng-include src="\'plugins/graph/templates/common/graph_range_bar.html\'"></ng-include>\n'),e.put("plugins/graph/templates/synchro/view_stats.html",'<ion-view left-buttons="leftButtons"\n          cache-view="false">\n  <ion-nav-title>\n    {{\'GRAPH.SYNCHRO.TITLE\' | translate}}\n  </ion-nav-title>\n\n  <ion-content scroll="true" class="padding" >\n\n    <div class="list" >\n\n      <div class="center padding" ng-if="loading">\n        <ion-spinner icon="android"></ion-spinner>\n      </div>\n\n      <div class="item no-padding-xs" ng-if="!loading"\n           ng-repeat="chart in charts"\n           ng-include="\'plugins/graph/templates/synchro/graph.html\'"\n           ng-init="setSize(250, 1000)">\n      </div>\n\n    </div>\n\n  </ion-content>\n\n</ion-view>\n'),e.put("plugins/map/templates/network/item_search_tooltip.html","<a href=\"#\">\n  {{peer.dns || peer.server}}\n  <span class=\"{{peer.uid ? 'positive' : 'gray'}}\">\n    <i class=\"icon {{peer.uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{peer.uid ? (peer.name||peer.uid) : (peer.pubkey|formatPubkey) }}\n  </span>\n  <span class=\"gray\">{{peer.ipv4 ? (peer.ipv4 + ':' + peer.port) : ''}}</span>\n  <span class=\"{{peer.bma.useSsl  ? '' : 'ng-hide'}}\"><i class=\"ion-locked\"></i> <small>SSL</small></span>\n</a>\n"),e.put("plugins/map/templates/network/lookup_extend.html",'\x3c!-- FIXME issue #755 - https://git.duniter.org/clients/cesium-grp/cesium/issues/755\n<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.NETWORK.LOOKUP.BTN_MAP_HELP\' | translate}}"\n        ui-sref="app.view_network_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.NETWORK.LOOKUP.BTN_MAP\' | translate}}\n</a>\n --\x3e\n'),e.put("plugins/map/templates/network/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-network">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.NETWORK.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             center="map.center"\n             markers="map.markers"\n             layers="map.layers">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/registry/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{'cion-page-' + type}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"gray\">\n    {{pubkey ? (pubkey|formatPubkey) : ''}}\n  </span>\n</a>\n"),e.put("plugins/map/templates/registry/lookup_lg_extend.html",'<a class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.REGISTRY.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_registry_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.REGISTRY.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/registry/popup_marker.html",'<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n     ng-show="!loadingMarker"\n     ui-sref="app.view_page({id: formData.id, title: formData.name})">\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}}"></i>\n  <i ng-if="!formData.avatar" class="item-image icon cion-page-{{::formData.type}}"></i>\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{::formData.name}}\n    </h2>\n    <h4 ng-if="::formData.category" class="gray" title="{{::formData.category.name}}">\n      <b class="ion-flag"></b> {{::formData.category.name}}\n    </h4>\n    <h4 ng-if="::formData.city" class="gray" title="{{::formData.city}}">\n      <b class="ion-location"></b> {{::formData.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.description">\n      &nbsp;\n    </a>\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="::formData.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/registry/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-registry">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.REGISTRY.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-registry" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/map/templates/settings/es_settings_extend.html",'\n\x3c!--<span class="item item-divider" translate>MAP.SETTINGS.MAP_DIVIDER</span>\n\n<label class="item item-toggle dark item-text-wrap">\n  <span translate>MAP.SETTINGS.ENABLE_GOOGLE_API</span>\n  <h4 class="gray" translate>MAP.SETTINGS.ENABLE_GOOGLE_API_HELP</h4>\n  <div class="toggle toggle-royal">\n    <input type="checkbox" ng-model="formData.enableGoogleApi">\n    <div class="track">\n      <div class="handle"></div>\n    </div>\n  </div>\n</label>\n\n<ion-item class="item-input"\n          ng-if="!$root.config.plugins.es.googleApiKey"\n          ng-class="{\'item-input-error\': formData.enableGoogleApi && !formData.googleApiKey}">\n  <div class="input-label col-33">\n    <span class="" ng-class="{\'gray\': !formData.enableGoogleApi}"translate>MAP.SETTINGS.GOOGLE_API_KEY</span>\n    <h4>\n      <a ng-click="openLink($event, \'https://console.developers.google.com/apis/credentials/key\')" translate>MAP.SETTINGS.BTN_GOOGLE_API</a>\n      <span class="gray"> ({{\'MAP.SETTINGS.BTN_GOOGLE_API_WARNING\'|translate}})</span>\n    </h4>\n  </div>\n  <input type="text"\n         placeholder="{{\'MAP.SETTINGS.GOOGLE_API_KEY_PLACEHOLDER\' | translate}}"\n         ng-model="formData.googleApiKey"\n         ng-if="formData.enableGoogleApi">\n</ion-item>\n<div class="form-errors"\n     ng-show="formData.enableGoogleApi && !formData.googleApiKey">\n  <div class="form-error">\n    <span translate="ERROR.FIELD_REQUIRED"></span>\n  </div>\n</div>--\x3e\n'),e.put("plugins/map/templates/user/edit_profile_extend.html",'<div class="item no-padding hidden-xs hidden-sm {{ionItemClass}}" ng-if="formData.geoPoint && formData.geoPoint.lat && formData.geoPoint.lon">\n  <leaflet id="{{::mapId}}"\n           height="250px"\n           center="map.center"\n           markers="map.markers"\n           defaults="map.defaults">\n  </leaflet>\n</div>\n'),e.put("plugins/map/templates/wot/item_search_tooltip.html","<a href=\"#\" class=\"{{type}}\">\n  <i class=\"{{pending ? 'ion-clock': (type ? 'cion-page-' + type : '')}}\"></i>\n  {{name != uid ? name +' ' : ''}}\n  <span class=\"{{uid ? 'positive' : 'gray'}}\">\n    <i class=\"{{uid ? 'ion-person' : 'ion-key'}}\"></i>\n    {{uid ? uid : (pubkey|formatPubkey) }}\n  </span>\n</a>\n"),e.put("plugins/map/templates/wot/lookup_lg_extend.html",'<a ng-if="enable"\n   class="button button-text button-small ink hidden-sm hidden-xs"\n   title="{{\'MAP.WOT.LOOKUP.BTN_MAP_HELP\' | translate}}"\n   ui-sref="app.view_wot_map">\n  <i class="icon ion-ios-location"></i>\n  {{\'MAP.WOT.LOOKUP.BTN_MAP\' | translate}}\n</a>\n'),e.put("plugins/map/templates/wot/popup_marker.html",'\n<div class="item no-border no-padding item-avatar "\n     ng-if="loadingMarker">\n\n  <i class="item-image icon ion-person"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top" >\n    <h2 class="stable-bg">\n      &nbsp;\n    </h2>\n    <h4 class="stable-bg col-75">\n      &nbsp;\n    </h4>\n    <h4 class="stable-bg col-50">\n      &nbsp;\n    </h4>\n  </div>\n</div>\n\n<a class="item no-border no-padding item-avatar ink animate-fade-in animate-show-hide ng-hide"\n   ng-show="!loadingMarker"\n   ui-sref="app.wot_identity({pubkey: formData.pubkey, uid: formData.uid})">\n\n  <i ng-if="formData.avatar" class="item-image avatar" style="background-image: url({{::formData.avatar.src}})"></i>\n  <i ng-if="!formData.avatar && formData.uid" class="item-image icon ion-person"></i>\n  <i ng-if="!formData.avatar && !formData.uid" class="item-image icon ion-card"></i>\n\n  <div class="item-content item-avatar-left-padding padding-top">\n    <h2 class="dark">\n      {{formData.name}}\n    </h2>\n    <h4>\n      <span ng-if="formData.uid" class="positive">\n        <b class="ion-person"></b>\n        {{formData.uid}}\n      </span>\n      <span class="gray" title="{{formData.pubkey}}"><b class="ion-key"></b> {{formData.pubkey|formatPubkey}}</span>\n      <span class="assertive" ng-if="!formData.isMember">\n        {{::\'WOT.NOT_MEMBER_PARENTHESIS\'|translate}}\n      </span>\n    </h4>\n    <h4 ng-if="formData.profile.city" class="gray" title="{{formData.profile.city}}">\n      <b class="ion-location"></b> {{formData.profile.city}}\n    </h4>\n  </div>\n</a>\n\x3c!-- buttons --\x3e\n<div class="item no-border no-padding">\n  <div class="pull-left gray">\n    \x3c!-- show description --\x3e\n    <a class="animate-fade-in animate-show-hide gray ng-hide"\n       ng-class="{\'ion-arrow-down-b\': !showDescription, \'ion-arrow-up-b\': showDescription}"\n       ng-click="showDescription=!showDescription;"\n       title="{{\'PROFILE.DESCRIPTION\'|translate}}"\n       ng-show="!loadingMarker && formData.profile.description">\n      &nbsp;\n    </a>\n  </div>\n  <div style="font-size: 18px;" class="pull-right gray">\n    \x3c!-- share --\x3e\n    <a class="icon ion-android-share-alt "\n       ng-click="showSharePopover($event)"\n       title="{{\'COMMON.BTN_SHARE\' | translate}}">&nbsp;</a>\n    \x3c!-- certify --\x3e\n    <a class="icon ion-ribbon-b"\n       ng-click="certify()"\n       title="{{\'WOT.BTN_CERTIFY\' | translate}}"\n       ng-hide="!canCertify">&nbsp;</a>\n    \x3c!-- compose message --\x3e\n    <a class="icon ion-compose"\n       ng-click="showNewMessageModal()"\n       title="{{\'MESSAGE.BTN_WRITE\' | translate}}">&nbsp;</a>\n    \x3c!-- transfer --\x3e\n    <a class="icon ion-card"\n       ng-click="showTransferModal({pubkey:formData.pubkey, uid: formData.name||formData.uid})"\n       title="{{\'COMMON.BTN_SEND_MONEY\' | translate}}">&nbsp;</a>\n\n  </div>\n</div>\n<div class="item no-border no-padding item-text-wrap hidden-xs ng-hide" ng-show="showDescription">\n  <small trust-as-html="formData.profile.description|truncText:500"></small>\n</div>\n'),e.put("plugins/map/templates/wot/view_map.html",'<ion-view left-buttons="leftButtons" class="view-map-wot">\n  <ion-nav-title>\n    <span class="hidden-xs" translate>MAP.WOT.VIEW.TITLE</span>\n  </ion-nav-title>\n\n  <ion-nav-buttons side="secondary">\n    <button class="button button-icon button-clear icon ion-loop visible-xs visible-sm" ng-click="load()">\n    </button>\n  </ion-nav-buttons>\n\n  <ion-content data-tap-disabled="true">\n    <a id="helptip-map-wot" style="left: 150px; top: 50px; position: relative;"></a>\n    <leaflet id="{{::mapId}}"\n             height="100%"\n             layers="map.layers"\n             markers="map.markers"\n             lf-center="map.center"\n             bounds="map.bounds">\n    </leaflet>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/es/templates/message/tabs/tab_list.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="refresh()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="\'plugins/es/templates/message/list.html\'"></ng-include></ion-content><div class="visible-xs visible-sm"><button ng-if="fabButtonNewMessageId" id="{{::fabButtonNewMessageId}}" class="button button-fab button-fab-bottom-right button-assertive spin has-footer" ng-click="showNewMessageModal()"><i class="icon ion-compose"></i></button></div></ion-view>'),e.put("plugins/es/templates/registry/tabs/tab_registry.html",'<ion-view><ion-nav-buttons side="secondary"><cs-extension-point name="nav-buttons"></cs-extension-point><button class="button button-icon button-clear" ng-click="showFiltersPopover($event)"><i class="icon ion-android-funnel"></i></button> <button class="button button-icon button-clear icon ion-android-more-vertical" ng-click="showActionsPopover($event)"></button></ion-nav-buttons><ion-content><ion-refresher pulling-text="{{\'COMMON.BTN_REFRESH\' | translate}}" on-refresh="doSearch()"></ion-refresher><cs-extension-point name="buttons"></cs-extension-point><ng-include src="::\'plugins/es/templates/registry/lookup_form.html\'"></ng-include><ng-include src="::\'plugins/es/templates/registry/lookup_list.html\'"></ng-include></ion-content></ion-view>'),e.put("plugins/graph/templates/currency/tabs/tab_blocks_stats.html",'<ion-view>\n  <ion-content>\n    <div\n       ng-include="\'plugins/graph/templates/blockchain/graph_tx_count.html\'"\n       ng-controller="GpBlockchainTxCountCtrl"\n       ng-init="setSize(500,700,false)">\n      </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_network_stats.html",'<ion-view>\n  <ion-content>\n\n    <div class="list">\n      <div class="item"\n         ng-include="\'plugins/graph/templates/blockchain/graph_block_issuers.html\'"\n         ng-controller="GpBlockchainIssuersCtrl"\n           ng-init="setSize(500,700,true)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_parameters_stats.html",'<ion-view>\n  <ion-content>\n    <div class="list no-padding-xs no-padding-sm">\n\n      <ng-container ng-controller="GpCurrencyMonetaryMassCtrl">\n\n        <div class="center padding" ng-if="loading">\n          <ion-spinner icon="android"></ion-spinner>\n        </div>\n\n        \x3c!-- Monetary mass --\x3e\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_monetary_mass.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n\n      \x3c!-- DU --\x3e\n      <ng-container ng-controller="GpCurrencyDUCtrl">\n        <div class="item"\n             ng-include="\'plugins/graph/templates/currency/graph_du.html\'"\n             ng-init="setSize(500,700,true)">\n        </div>\n      </ng-container>\n    </div>\n  </ion-content>\n</ion-view>\n'),e.put("plugins/graph/templates/currency/tabs/tab_wot_stats.html",'<ion-view>\n  <ion-content>\n    <div class="center padding" ng-if="loading">\n      <ion-spinner icon="android"></ion-spinner>\n    </div>\n\n    <div class="list no-padding">\n      <div class="item no-padding-top"\n           ng-include="\'plugins/graph/templates/currency/graph_members_count.html\'"\n           ng-init="setSize(600,700,false)">\n      </div>\n    </div>\n  </ion-content>\n</ion-view>\n')}]),angular.module("cesium.es.plugin",["cesium.es.services","cesium.es.app.controllers","cesium.es.common.controllers","cesium.es.settings.controllers","cesium.es.currency.controllers","cesium.es.wot.controllers","cesium.es.wallet.controllers","cesium.es.profile.controllers","cesium.es.message.controllers","cesium.es.notification.controllers","cesium.es.blockchain.controllers","cesium.es.network.controllers","cesium.es.registry.controllers","cesium.es.group.controllers","cesium.es.invitation.controllers","cesium.es.subscription.controllers","cesium.es.document.controllers"]),X.prototype.regexp={API_REGEXP:/^([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ğĞ]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\/[^\/]+)?$/,LOCAL_IP_ADDRESS:/^127[.]0[.]0.|192[.]168[.]|10[.]0[.]0[.]|172[.]16[.]/},X.prototype.keyID=function(){var e=this.ep||this.getEP();return e.useBma?[this.pubkey||"Unknown",e.dns,e.ipv4,e.ipv6,e.port,e.useSsl,e.path].join("-"):[this.pubkey||"Unknown",e.ws2pid,e.path].join("-")},X.prototype.copyValues=function(e){var t=this;["version","currency","pub","endpoints","hash","status","block","signature"].forEach((function(n){e[n]=t[n]}))},X.prototype.copyValuesFrom=function(e){var t=this;["version","currency","pub","endpoints","block","signature"].forEach((function(n){t[n]=e[n]}))},X.prototype.json=function(){var e=this,t={};return["version","currency","endpoints","status","block","signature"].forEach((function(n){t[n]=e[n]})),t.raw=this.raw&&this.getRaw(),t.pubkey=this.pubkey,t},X.prototype.getEP=function(){if(this.ep)return this.ep;var e=null,t=this.regexp.API_REGEXP;return this.endpoints.forEach((function(n){var i=!e&&t.exec(n);i&&(e={api:i[1]||"",dns:i[2]||"",ipv4:i[3]||"",ipv6:i[4]||"",port:i[5]||80,path:i[6]||"",useSsl:443==i[5]})})),e||{}},X.prototype.getEndpoints=function(e){return e?("string"==typeof e&&(e=new RegExp("^"+e)),this.endpoints.reduce((function(t,n){return n.match(e)?t.concat(n):t}),[])):this.endpoints},X.prototype.hasEndpoint=function(e){var t=this.regexp[e]||new RegExp("^"+e),n=this.getEndpoints(t);return n&&n.length>0},X.prototype.hasEsEndpoint=function(){var e=this.getEsEndpoints();return e&&e.length>0},X.prototype.getEsEndpoints=function(){return this.getEndpoints(/^(ES_CORE_API|ES_USER_API|ES_SUBSCRIPTION_API|GCHANGE_API)/)},X.prototype.getDns=function(){var e=this.ep||this.getEP();return e.dns?e.dns:null},X.prototype.getIPv4=function(){var e=this.ep||this.getEP();return e.ipv4?e.ipv4:null},X.prototype.getIPv6=function(){var e=this.ep||this.getEP();return e.ipv6?e.ipv6:null},X.prototype.getPort=function(){var e=this.ep||this.getEP();return e.port?e.port:null},X.prototype.getHost=function(){var e=this.ep||this.getEP();return(443==e.port||e.useSsl)&&e.dns?e.dns:this.hasValid4(e)?e.ipv4:e.dns?e.dns:e.ipv6?"["+e.ipv6+"]":""},X.prototype.getURL=function(){var e=this.ep||this.getEP(),t=this.getHost();return(443==e.port||e.useSsl?"https":"http")+"://"+t+(e.port?":"+e.port:"")},X.prototype.getServer=function(){var e=this.ep||this.getEP(),t=this.getHost();return t+(t&&e.port?":"+e.port:"")},X.prototype.hasValid4=function(e){return!(!e.ipv4||e.ipv4.match(this.regexp.LOCAL_IP_ADDRESS))},X.prototype.isReachable=function(){return!!this.getServer()},X.prototype.isSsl=function(){return(this.ep||this.getEP()).useSsl},X.prototype.isTor=function(){return(this.ep||this.getEP()).useTor},X.prototype.isHttp=function(){return this.ep||this.getEP(),!bma.useTor},angular.module("cesium.es.services",["cesium.es.http.services","cesium.es.comment.services","cesium.es.social.services","cesium.es.settings.services","cesium.es.crypto.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.message.services","cesium.es.modal.services","cesium.es.blockchain.services","cesium.es.registry.services","cesium.es.group.services","cesium.es.wallet.services","cesium.es.invitation.services","cesium.es.subscription.services","cesium.es.wot.services","cesium.es.tx.services","cesium.es.geo.services","cesium.es.document.services","cesium.es.network.services"]),angular.module("cesium.es.comment.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.profile.services"]).factory("esComment",["$rootScope","$q","UIUtils","BMA","esHttp","csWallet","csWot",function(e,t,n,i,a,o,r){return{instance:function(n){var i={commons:["issuer","creationTime","time","message","reply_to"]},s={index:n,fields:{commons:i.commons},raw:{search:a.post("/"+n+"/comment/_search"),remove:a.record.remove(n,"comment"),wsChanges:a.ws("/ws/_changes"),add:new a.record.post("/"+n+"/comment",{creationTime:!0}),update:new a.record.post("/"+n+"/comment/:id/_update",{creationTime:!0})}};return s.raw.refreshTreeLinks=function(e){return s.raw.addTreeLinks(e,!0)},s.raw.addTreeLinks=function(e,n){(e=e||{}).result=e.result||[],e.mapById=e.mapById||{};var o={};if(_.forEach(_.values(e.mapById),(function(t){if(t.reply_to&&!t.parent){var i=e.mapById[t.reply_to];i||(i=new z(t.reply_to),o[i.id]=t.id,e.mapById[i.id]=i),n&&i.containsReply(t)||i.addReply(t)}})),!_.size(o)){var r=t.defer();return r.resolve(e),r.promise}var l={query:{terms:{_id:_.keys(o)}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:0,size:1e3,_source:i.commons};return console.debug("[ES] [comment] Getting missing comments in tree"),s.raw.search(l).then((function(t){return t.hits.total?(_.forEach(t.hits.hits,(function(t){var n=e.mapById[t._id];n.copyFromJson(t._source),n.html=a.util.parseAsHtml(n.message),delete o[n.id]})),_.size(o)&&console.error("Comments has invalid [reply_to]: "+_.values(o).join(",")),s.raw.addTreeLinks(e)):(console.error("[ES] [comment] Comments has invalid [reply_to]: "+_.values(o).join(",")),e)}))},s.raw.loadDataByRecordId=function(e,t){(t=t||{}).from=t.from||0,t.size=t.size||20,t.loadAvatar=!angular.isDefined(t.loadAvatar)||t.loadAvatar,t.loadAvatarAllParent=!!angular.isDefined(t.loadAvatarAllParent)&&t.loadAvatar&&t.loadAvatarAllParent,t.size<0&&(t.size=1e3);var n={query:{term:{record:e}},sort:[{creationTime:{order:"desc"}},{time:{order:"desc"}}],from:t.from,size:t.size,_source:i.commons},o={total:0,mapById:{},result:[],pendings:{}};return s.raw.search(n).then((function(e){return e.hits.total?(o.total=e.hits.total,o.result=e.hits.hits.reduce((function(e,t){var n=new z(t._id,t._source);return n.html=a.util.parseAsHtml(n.message),o.mapById[n.id]=n,e.concat(n)}),o.result),s.raw.addTreeLinks(o)):o})).then((function(){if(t.loadAvatar)return t.loadAvatarAllParent?r.extendAll(_.values(o.mapById),"issuer"):r.extendAll(o.result,"issuer")})).then((function(){return o.result=o.result.sort((function(e,t){return e.creationTime-t.creationTime})),o}))},s.raw.createOnDeleteListener=function(e){return function(n){var i=_.findIndex(e.result,{id:n.id});if(-1!==i)return e.result.splice(i,1),delete e.mapById[n.id],(o.isUserPubkey(n.issuer)?o:o.children.getByPubkey(n.issuer))?s.raw.remove(n.id).catch((function(e){throw console.error(e),new Error("COMMENTS.ERROR.FAILED_REMOVE_COMMENT")})):t.reject("No wallet found corresponding to the comment issuer")}},s.raw.startListenChanges=function(t,i,l){(i=i||{}).result=i.result||[],i.mapById=i.mapById||{},i.pendings=i.pendings||{},l=l||e;var c=s.raw.createOnDeleteListener(i);_.forEach(i.result,(function(e){e.addOnRemoveListener(c)}));var u=Date.now();console.info("[ES] [comment] Starting websocket to listen comments on [{0}/record/{1}]".format(n,t.substr(0,8)));var d=a.websocket.changes(n+"/comment");return d.open().then((function(){console.debug("[ES] [comment] Websocket opened in {0} ms".format(Date.now()-u)),d.on((function(e){e&&l.$applyAsync((function(){var n=i.mapById[e._id];"DELETE"===e._operation?n&&n.remove():e._source&&e._source.record===t&&(n?(n.copyFromJson(e._source),n.html=a.util.parseAsHtml(n.message),s.raw.refreshTreeLinks(i)):i.pendings&&i.pendings[e._source.creationTime]||e._source.issuer==o.data.pubkey?console.debug("Skip comment received by WS (already in pending)"):((n=new z(e._id,e._source)).addOnRemoveListener(c),n.isnew=!0,n.html=a.util.parseAsHtml(n.message),i.mapById[e._id]=n,s.raw.refreshTreeLinks(i).then((function(){return r.extend(n,"issuer")})).then((function(){i.result.push(n)}))))}))}))}))},s.raw.save=function(e,t,n){(t=t||{}).result=t.result||[],t.mapById=t.mapById||{},t.pendings=t.pendings||{};var i,r=n.id,l={creationTime:r?n.creationTime||n.time:moment().utc().unix(),message:n.message,record:e,issuer:o.data.pubkey};return n.reply_to||n.parent?l.reply_to=n.reply_to||n.parent.id:l.reply_to=null,r?(i=t.mapById[r]).copy(n):((i=new z(null,l)).addOnRemoveListener(s.raw.createOnDeleteListener(t)),i.uid=o.data.uid,i.name=o.data.name,i.avatar=o.data.avatar,i.isnew=!0,n.parent&&n.parent.addReply(i),t.result.push(i)),i.html=a.util.parseAsHtml(i.message),r?s.raw.update(l,{id:r}).then((function(){return i})):(t.pendings=t.pendings||{},t.pendings[l.creationTime]=l,s.raw.add(l).then((function(e){return i.id=e,t.mapById[e]=i,delete t.pendings[l.creationTime],i})))},s.raw.stopListenChanges=function(e){console.debug("[ES] [comment] Stopping websocket on comments"),_.forEach(e.result,(function(e){e.cleanAllListeners()})),s.raw.wsChanges().close()},s.load=s.raw.loadDataByRecordId,s.save=s.raw.save,s.changes={start:s.raw.startListenChanges,stop:s.raw.stopListenChanges},s}}}]),angular.module("cesium.es.http.services",["ngResource","ngApi","cesium.services","cesium.config"]).factory("esHttp",["$q","$timeout","$rootScope","$state","$sce","$translate","$window","$filter","CryptoUtils","UIUtils","csHttp","csConfig","csSettings","csCache","BMA","csWallet","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T=!!("true"===d.httpsMode||!0===d.httpsMode||"force"===d.httpsMode||r.location&&"https:"===r.location.protocol);function h(i,a,r,h){var v,I,N=this,O={ES_USER_API:"ES_USER_API",ES_SUBSCRIPTION_API:"ES_SUBSCRIPTION_API",ES_USER_API_ENDPOINT:"ES_USER_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",ANY_API_ENDPOINT:"([A-Z_]+)(?:[ ]+([a-z_][a-z0-9-_.ğĞ]*))?(?:[ ]+([0-9.]+))?(?:[ ]+([0-9a-f:]+))?(?:[ ]+([0-9]+))(?:\\/[^\\/]+)?",MAX_UPLOAD_BODY_SIZE:d.plugins&&d.plugins.es&&d.plugins.es.maxUploadBodySize||2097152},R={IMAGE_SRC:P("data:([A-Za-z//]+);base64,(.+)"),URL:k("(www\\.|https?://(www\\.)?)[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)"),HASH_TAG:k("(?:^|[\t\n\rs ])#([0-9_-\\wḡĞǦğàáâãäåçèéêëìíîïðòóôõöùúûüýÿ]+)"),USER_TAG:k("(?:^|[\t\n\rs ])@("+E.constants.regexp.USER_ID+")"),ES_USER_API_ENDPOINT:P(O.ES_USER_API_ENDPOINT),API_ENDPOINT:P(O.ANY_API_ENDPOINT)},A=0,S=s("truncUrl");function C(e,t,n,i){!e&&p.data&&(e=e||(p.data.plugins&&p.data.plugins.es?p.data.plugins.es.host:null),t=t||(e?p.data.plugins.es.port:null),n=angular.isDefined(n)?n:443==t||p.data.plugins.es.useSsl||T),N.alive=!1,N.host=e,N.port=t||(n||T?443:80),N.useSsl=angular.isDefined(n)?n:443==N.port||T,N.server=u.getServer(e,t)}function L(e){if(!(e=e||p.data).plugins||!e.plugins.es)return!1;var t=e.plugins.es.host,n=443==e.plugins.es.port||e.plugins.es.useSsl||T;return D(t,e.plugins.es.port||(n?443:80),n)}function D(e,t,n){return N.host===e&&N.port===t&&(angular.isUndefined(n)||n==N.useSsl)}function y(e){N.data.isFallback=e}function P(e){return new RegExp("^"+e+"$")}function k(e){return new RegExp(e)}function M(t,n){return n=n||e.defer(),N.data.isFallback&&N.started&&N.stop(),N.data.isFallback=!1,I=null,n.resolve(t),n.promise}function w(e,t){for(var n="@"===(t=t||"#")?R.USER_TAG:R.HASH_TAG,i=e&&n.exec(e),a=i&&[];i;){var o=i[1];_.contains(a,o)||a.push(o),i=(e=e.substr(i.index+i[1].length+1)).length>0&&n.exec(e)}return a}N.data={isFallback:!1},N.cache={getByPath:{},postByPath:{},wsByPath:{}},N.api=new f(this,"esHttp"),N.started=!1,N.init=C,C(i,a,r),N.useCache=!!angular.isDefined(h)&&h,N.cleanCache=function(){console.debug("[ES] [http] Cleaning requests cache..."),_.keys(N.cache.wsByPath).forEach((function(e){N.cache.wsByPath[e].close()})),N.cache={getByPath:{},postByPath:{},wsByPath:{}},m.clear("esHttp-")},N.copy=function(e){return N.started&&N.stop(),N.init(e.host,e.port,e.useSsl||443==e.port),N.data.isTemporary=!1,N.start(!0)},N.date={now:u.date.now},N.byteCount=function(e){return e="string"==typeof e?e:JSON.stringify(e),encodeURI(e).split(/%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length-1},N.getUrl=function(e){return u.getUrl(N.host,N.port,e,N.useSsl)},N.get=function(t,n){n=N.useCache&&n;var i=t+(n?"#"+n:""),a=function(o){if(!N.started)return N._startPromise||console.warn("[ES] [http] Trying to get [{0}] before start(). Waiting...".format(t)),N.ready().then((function(t){return t?a(o):e.reject("ERROR.ES_CONNECTION_ERROR")}));var r=N.cache.getByPath[i];return r||(r=n?u.getWithCache(N.host,N.port,t,N.useSsl,n,null,null,"esHttp-"):u.get(N.host,N.port,t,N.useSsl),N.cache.getByPath[i]=r),r(o)};return a},N.post=function(t){var n=function(i,a){if(!N.started)return N._startPromise||console.error("[ES] [http] Trying to post [{0}] before start()...".format(t)),N.ready().then((function(t){return t?n(i,a):e.reject("ERROR.ES_CONNECTION_ERROR")}));var o=N.cache.postByPath[t];return o||(o=u.post(N.host,N.port,t,N.useSsl),N.cache.postByPath[t]=o),o(i,a)};return n},N.ws=function(e){return function(){var t=N.cache.wsByPath[e];return t||(t=u.ws(N.host,N.port,e,N.useSsl),N.cache.wsByPath[e]=t),t}},N.wsChanges=function(e){return N.ws("/ws/_changes")()},N.isAlive=function(){return u.get(N.host,N.port,"/node/summary",N.useSsl)().then((function(e){var t=e&&e.duniter&&e.duniter.software||"unknown";return"cesium-plus-pod"===t||"duniter4j-elasticsearch"===t||(console.error("[ES] [http] Not a Cesium+ Pod, but a {0} node. Please check '/node/summary'".format(t)),!1)})).catch((function(){return!1}))},N.checkNodeAlive=function(e){if(e)return y(!L()),!0;if(angular.isUndefined(e))return N.isAlive().then(N.checkNodeAlive);var t=p.data.plugins&&p.data.plugins.es||{};I=I||{host:t.host,port:t.port};var n=t.fallbackNodes&&A<t.fallbackNodes.length&&t.fallbackNodes[A++];if(!n)return o("ERROR.ES_CONNECTION_ERROR",{server:N.server}).then(c.alert.info),!1;var i=u.getServer(n.host,n.port);return c.loading.hide(),o("CONFIRM.ES_USE_FALLBACK_NODE",{old:N.server,new:i}).then(c.alert.confirm).then((function(e){return!!e&&(N.cleanCache(),N.init(n.host,n.port,n.useSsl||443==n.port),N.isAlive().then(N.checkNodeAlive))}))},N.isStarted=function(){return N.started},N.ready=function(){return N.started?e.when(!0):N._startPromise||N.start()},N.start=function(t){return N._startPromise?N._startPromise:N.started?e.when(N.alive):(N._startPromise=g.ready().then((function(){t||N.init()})).then((function(){console.debug("[ES] [http] Starting on [{0}]{1}...".format(N.server,N.useSsl?" (SSL on)":""));var e=Date.now();return N.checkNodeAlive().then((function(t){return N.alive=t,t?(v=[p.api.data.on.reset(n,M,N)],console.debug("[ES] [http] Started in "+(Date.now()-e)+"ms"),N.api.node.raise.start(),N.started=!0,delete N._startPromise,A=0,!0):(console.error("[ES] [http] Could not start [{0}]: node unreachable".format(N.server)),N.started=!0,delete N._startPromise,A=0,!1)}))})),N._startPromise)},N.stop=function(){return console.debug("[ES] [http] Stopping..."),_.forEach(v,(function(e){e()})),v=[],y(!1),delete N._startPromise,N.alive?(N.cleanCache(),N.alive=!1,N.started=!1,N.api.node.raise.stop()):N.started=!1,e.when()},N.restart=function(){return N.stop(),t(N.start,200)},N.image={},N.image.fromHit=function(e,t){if(e&&e._source){var n=e._source[t];if(n&&n._content_type&&n._content_type.startsWith("image/")){var i={};if(n._content)i.src="data:"+n._content_type+";base64,"+n._content;else{var a=n._content_type.substr(6),o=[e._index,e._type,e._id,"_image",t].join("/");o="/"+o+"."+a,i.src=N.getUrl(o)}return n._title&&(i.title=n._title),n._name&&(i.name=n._name),i}}},N.api.registerEvent("node","start"),N.api.registerEvent("node","stop");var U={getServer:u.getServer,node:{summary:N.get("/node/summary"),parseEndPoint:function(e){var t=R.API_ENDPOINT.exec(e);if(t)return{api:t[1]||"",dns:t[2]||"",ipv4:t[3]||"",ipv6:t[4]||"",port:t[5]||80,path:t[6]||"",useSsl:443==t[5]}},same:D,sameAsSettings:L,isFallback:function(){return N.data.isFallback}},websocket:{changes:N.wsChanges,block:N.ws("/ws/block"),peer:N.ws("/ws/peer")},wot:{member:{uids:N.get("/wot/members")}},network:{peering:{self:N.get("/network/peering")},peers:N.get("/network/peers")},record:{post:function(t,n){n=n||{};var i=N.post(t);return function(t,n){var a=(n=n||{}).wallet||n.walletId&&b.children.get(n.walletId)||(!n.pubkey||b.isUserPubkey(n.pubkey))&&b||n.pubkey&&b.children.getByPubkey(n.pubkey),o=n.keypair||a&&a.data&&a.data.keypair;if(!o&&!a)throw new Error("Missing wallet or keypair, to sign record");delete n.wallet,delete n.walletId,delete n.keypair;var r=angular.copy(n);return r.pubkey=r.pubkey||a.data.pubkey,(a.isAuth()?e.when(a.data):a.auth({silent:!0,minData:!0})).then((function(){n.creationTime&&!t.creationTime&&(t.creationTime=moment().utc().unix());var e=moment().utc().unix();t.time=!t.time||t.time<e?e:t.time+1;var a=angular.copy(t);delete a.signature,delete a.hash,a.issuer=r.pubkey,a.version||(a.version=2),n.tagFields&&function(e,t){t=t||["title","description"],e.tags=t.reduce((function(t,n){var i=e[n],a=i&&w(i);return a?t.concat(a):t}),[])}(a,n.tagFields);var s=JSON.stringify(a);return l.util.hash(s).then((function(e){return l.sign(e,o).then((function(t){return s='{"hash":"{0}","signature":"{1}",'.format(e,t)+s.substring(1),i(s,r).then((function(e){return m.clear("esHttp-"),e})).catch((function(e){var t=N.byteCount(a);if(t>O.MAX_UPLOAD_BODY_SIZE)throw{message:"ERROR.ES_MAX_UPLOAD_BODY_SIZE",length:t};throw e}))}))}))}))}},remove:function(t,n){return function(i,a){var o=(a=a||{}).wallet||a.walletId&&b.children.get(a.walletId)||b;return(o.isAuth()?e.when(o.data):o.auth({silent:!0,minData:!0})).then((function(e){var a={version:2,index:t,type:n,id:i,issuer:e.pubkey,time:moment().utc().unix()},o=JSON.stringify(a);return l.util.hash(o).then((function(t){return l.sign(t,e.keypair).then((function(e){return o='{"hash":"{0}","signature":"{1}",'.format(t,e)+o.substring(1),N.post("/history/delete")(o).then((function(e){return e}))}))}))}))}},count:function(e,t){return N.get("/{0}/{1}/_search?size=0".format(e,t)).then((function(e){return e&&e.hits&&e.hits.total}))}},image:{fromAttachment:function(e){if(!e||!e._content_type||!e._content||0===e._content.length)return null;var t={src:"data:"+e._content_type+";base64,"+e._content};return e._title&&(t.title=e._title),e._name&&(t.name=e._name),t},toAttachment:function(e){if(!e||!e.src)return null;var t=R.IMAGE_SRC.exec(e.src);if(!t)return null;var n={_content_type:t[1],_content:t[2]};return e.title&&(n._title=e.title),e.name&&(n._name=e.name),n}},hit:{empty:function(){return{_id:null,_index:null,_type:null,_version:null,_source:{}}}},util:{parseTags:w,parseAsHtml:function(e,t){var n=e?function(e){return e?e.replace(/</g,"&lt;").replace(/>/g,"&gt;"):e}(e.trim()):void 0;if(n){(t=t||{}).tagState=t.tagState||"app.wot_lookup.tab_search",t.uidState=t.uidState||"app.wot_identity_uid",!t.newLine&&angular.isDefined(t.newLine)||(n=n.replace(/\n/g,"<br>\n"));var i=function(e){for(var t=e&&R.URL.exec(e),n=t&&[];t;){var i=t[0];_.contains(n,i)||n.push(i),t=(e=e.substr(t.index+t[0].length+1))&&R.URL.exec(e)}return n}(n);_.forEach(i,(function(e){var t=e.startsWith("http://")||e.startsWith("https://")?e:"http://"+e,i='<a on-tap="openLink($event, \'{0}\')" href="{1}" target="_blank">{2}</a>'.format(t,t,S(e));n=n.replace(e,i)}));var a=w(n);_.forEach(a,(function(e){var i="<a ui-sref=\"{0}({hash: '{1}'})\">#{2}</a>".format(t.tagState,e,e);n=n.replace("#"+e,i)}));var o=w(n,"@");_.forEach(o,(function(e){var i="<a ui-sref=\"{0}({uid: '{1}'})\">@{2}</a>".format(t.uidState,e,e);n=n.replace("@"+e,i)}));var r=function(e,t,n){for(var i=k("(?:^|[\\r\\s])("+(t=t||"##")+"([^#></]+)<br>)"),a=e&&i.exec(e),o=a&&[],r=a&&[];a;){var s=a[1];_.contains(o,s)||(o.push(s),r.push({line:s,title:a[2]})),a=(e=e.substr(a.index+a[1].length+1)).length>0&&i.exec(e)}return r}(n,"#+[ ]*");_.forEach(r,(function(e){var t=e.line.lastIndexOf("#",5)+1;n=n.replace(e.line,"<h{0}>{1}</h{2}>".format(t,e.title,t))}))}return n},findObjectInTree:function e(t,n){if(t)return t[n]?t[n]:Array.isArray(t)?t.reduce((function(t,i){return t||e(i,n)}),!1):"object"==typeof t?_.reduce(_.keys(t),(function(i,a){return i||e(t[a],n)}),!1):void 0}},cache:u.cache,constants:O};U.constants.regexp=R,angular.merge(N,U)}T&&console.debug("[ES] [https] Enable SSL (forced by config or detected in URL)");var v=new h(void 0,void 0,void 0,!0);return v.instance=function(e,t,n,i){return new h(e,t,n,i)},v.lightInstance=function(e,t,n,i){function a(n,i){return u.get(e,t,n)(i).then((function(e){return e&&e.hits&&e.hits.total}))}return t=t||80,n=angular.isDefined(n)?n:443==t,{host:e,port:t,useSsl:n,node:{summary:u.getWithCache(e,t,"/node/summary",n,u.cache.LONG,!1,i)},network:{peering:{self:u.get(e,t,"/network/peering",n,i)},peers:u.get(e,t,"/network/peers",n,i)},blockchain:{current:u.get(e,t,"/blockchain/current?_source=number,hash,medianTime",n,i)},record:{count:function(e,t){return a("/{0}/{1}/_search?size=0".format(e,t))}},subscription:{count:function(e){return a("/subscription/record/_search?size=0&q="+_.keys(e||{}).reduce((function(t,n){return(t&&t+" AND "||"")+n+":"+e[n]}),""))}}}},v}]),angular.module("cesium.es.settings.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSettings")}]).factory("esSettings",["$rootScope","$q","$timeout","Api","esHttp","csConfig","csSettings","CryptoUtils","Device","UIUtils","csWallet",function(e,t,n,i,a,o,r,s,l,c,u){var d,p,m={includes:["locale","showUDHistory","useRelative","useLocalStorage","useLocalStorageEncryption","expertMode","logoutIdle","blockValidityWindow"],excludes:["timeout","cacheTimeMs","version","build","minVersion","fallbackLanguage"],plugins:{es:{excludes:["enable","host","port","fallbackNodes","enableGoogleApi","googleApiKey"],notifications:{}}},wallet:{includes:["alertIfUnusedWallet"],excludes:["notificationReadTime"]},helptip:{excludes:["installDocUrl"]},notifications:{excludes:["time","warnCount","unreadCount"]}},E=angular.merge({plugins:{es:{askEnable:!1,useRemoteStorage:!0,notifications:{txSent:!0,txReceived:!0,certSent:!0,certReceived:!0,emitHtml5:!1},invitations:{readTime:!0},defaultCountry:void 0,enableGoogleApi:!1,googleApiKey:void 0,wot:{enableMixedSearch:!0},registry:{defaultSearch:{location:null,geoPoint:null}},geoDistance:"20km"}}},{plugins:{es:o.plugins&&o.plugins.es||{}}}),b=this,g=new i("esSettings"),f=!1,T=!1;function h(e,n){return n=n||t.defer(),angular.merge(e,E),T=!1,n.resolve(e),n.promise}function v(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair&&e.keypair.signSk&&e.keypair.boxSk?(console.debug("[ES] [settings] Loading user settings..."),function(e,t){var n=Date.now();return b.get({id:e}).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e})).then((function(e){if(e&&e._source){var i=e._source;if(i.time!==r.data.time){var a=s.util.decode_base58(i.nonce);return s.box.open(i.content,a,t.boxPk,t.boxSk).then((function(e){var t=JSON.parse(e||"{}");return t.time=i.time,console.debug("[ES] [settings] Loaded and decrypted in "+(Date.now()-n)+"ms"),t})).catch((function(e){return console.error("[ES] [settings] Could not load remote settings: "+(e&&e.message||"decryption error")),delete r.data.time,null}))}console.debug("[ES] [settings] Loaded in "+(Date.now()-n)+"ms, but already up to date")}}))}(e.pubkey,e.keypair).then((function(e){if(e)return angular.merge(r.data,e),d=e,console.debug("[ES] [settings] Applied"),N()})).then((function(){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function I(e){if(!f){var n=p&&p.length>0;!a.isStarted()||a.node.isFallback()||a.node.sameAsSettings(e)||(O(),a.stop()),R(),b.isEnable()&&u.isAuth()&&(n?function(e){var n=function e(t,n){var i={};return n.includes&&_.forEach(_.keys(n),(function(e){"includes"!=e&&"excludes"!=e&&n.includes.push(e)})),_.forEach(_.keys(t),(function(a){n.includes&&!_.contains(n.includes,a)||n.excludes&&_.contains(n.excludes,a)||(t[a]&&"object"==typeof t[a]&&n[a]&&"object"==typeof n[a]?i[a]=e(t[a],n[a]):i[a]=t[a])})),i}(e,m);if(d&&angular.equals(n,d))return t.when();if(!r.data.plugins.es.useRemoteStorage)return N();var i=moment().utc().unix();console.debug("[ES] [settings] Saving user settings remotely..."),t.all([u.getKeypair(),s.util.random_nonce()]).then((function(t){var a=t[0],o=t[1];if(a.boxPk&&a.boxSk){var r={issuer:u.data.pubkey,nonce:s.util.encode_base58(o),time:i},l=JSON.stringify(n);return s.box.pack(l,o,a.boxPk,a.boxSk).then((function(t){return r.content=t,angular.isUndefined(e.time)?b.add(r):b.update(r,{id:r.issuer}).catch((function(e){if(e&&404==e.ucode)return b.add(r);throw e}))})).then((function(){return!0}))}})).then((function(t){if(t)return e.time=i,d=n,console.debug("[ES] [settings] Saved user settings remotely in "+(moment().utc().unix()-i)+"ms"),N()})).catch((function(e){throw console.error(e),e}))}(e):v(u.data))}}function N(){return f?t.when():(f=!0,r.store().then((function(){f=!1})).catch((function(e){throw f=!1,e})))}function O(){_.forEach(p,(function(e){e()})),p=[]}function R(){var t=b.isEnable();return!t&&p&&p.length>0?(console.debug("[ES] [settings] Disable"),O(),a.stop().then((function(){g.state.raise.changed(t)}))):!t||p&&0!==p.length&&a.isStarted()?void 0:a.start().then((function(n){return n?(console.debug("[ES] [settings] Enable"),function(){p=[r.api.data.on.reset(e,h,this),u.api.data.on.auth(e,v,this)]}(),u.isAuth()?v(u.data).then((function(){g.state.raise.changed(t)})):void g.state.raise.changed(t)):(r.data.plugins.es.enable=!1,r.data.plugins.es.askEnable=!0,T=!0,g.state.raise.changed(!1),void console.error("[ES] [settings] Disable, has ES node could not be started"))}))}return b.api=g,b.get=a.get("/user/settings/:id"),b.add=a.record.post("/user/settings"),b.update=a.record.post("/user/settings/:id/_update"),b.isEnable=function(){return r.data.plugins&&r.data.plugins.es&&r.data.plugins.es.enable&&!!r.data.plugins.es.host},b.notifications={},b.notifications.isEmitHtml5Enable=function(){return!!(b.isEnable()&&r.data.plugins.es.notifications&&angular.isDefined(r.data.plugins.es.notifications.emitHtml5))&&r.data.plugins.es.notifications.emitHtml5},b.wot={},b.wot.isMixedSearchEnable=function(){return b.isEnable()&&(!angular.isDefined(r.data.plugins.es.wot&&r.data.plugins.es.wot.enableMixedSearch)||r.data.plugins.es.wot.enableMixedSearch)},g.registerEvent("state","changed"),r.ready().then((function(){return r.api.data.on.changed(e,I,this),a.api.node.on.stop(e,(function(){d=null}),this),R()})).then((function(){if(!T&&o.plugins&&o.plugins.es&&o.plugins.es.askEnable&&!b.isEnable()&&r.data.plugins.es.askEnable)return c.alert.confirm("ES_SETTINGS.CONFIRM.ASK_ENABLE","ES_SETTINGS.CONFIRM.ASK_ENABLE_TITLE",{cancelText:"COMMON.BTN_NO",okText:"COMMON.BTN_YES"}).then((function(e){return e&&(r.data.plugins.es.enable=!0),r.data.plugins.es.askEnable=!1,r.store()}))})),b}]),angular.module("cesium.es.registry.services",["ngResource","cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esRegistry")}]).factory("esRegistry",["$rootScope","$q","csPlatform","csSettings","csWallet","csWot","esHttp","esComment","esGeo",function(e,t,n,i,a,o,r,s,l){var c,u={commons:["title","description","issuer","time","address","city","creationTime","avatar._content_type","picturesCount","type","category","socials","pubkey","geoPoint"]},d=this;function p(e){e.pages=null}function m(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [registry] Loading pages count..."),d.raw.count({pubkey:e.pubkey}).then((function(t){e.pages=e.pages||{},e.pages.count=t&&t.hits&&t.hits.total,console.debug("[ES] [registry] Loaded pages count ("+e.pages.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [registry] Error while counting page: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function E(){if(d.raw.categories&&d.raw.categories.length){var e=t.defer();return e.resolve(d.raw.categories),e.promise}return d.raw.category.all().then((function(e){if(0===e.hits.total)d.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),d.raw.categories=t}return d.raw.categories}))}function b(e,t){if(e){var n=e._source;return n.category&&n.category.id&&(n.category=t[n.category.id]),e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(n.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),n.avatar=r.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(r.image.fromAttachment(t.file))}),[])),n}}function g(){var t=r.alive;if(!t&&c&&c.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(c,(function(e){e()})),c=[],a.isLogin())return p(a.data)}else if(t&&(!c||0===c.length)&&(console.debug("[ES] [subscription] Enable"),function(){c=[a.api.data.on.load(e,m,this),a.api.data.on.init(e,p,this),a.api.data.on.reset(e,p,this)]}(),a.isLogin()))return m(a.data)}return d.raw={count:r.get("/page/record/_search?size=0&q=issuer::pubkey"),searchText:r.get("/page/record/_search?q=:search"),search:r.post("/page/record/_search"),get:r.get("/page/record/:id"),getCommons:r.get("/page/record/:id?_source="+u.commons.join(",")),category:{get:r.get("/page/category/:id"),all:r.get("/page/category/_search?sort=order&from=0&size=1000&_source=name,parent")}},n.ready().then((function(){return r.api.node.on.start(e,g,this),r.api.node.on.stop(e,g,this),g()})),d.category={all:E,get:function(e){return d.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},d.record={search:function(e){return(e=e||{}).from=e.from||0,e.size=e.size||20,e._source=e._source||u.commons,e.highlight=e.highlight||{fields:{title:{},description:{}}},t.all([E(),d.raw.search(e)]).then((function(t){var n=t[0];if(!(t=t[1])||!t.hits||!t.hits.total)return{total:0,hits:[]};var i=r.util.findObjectInTree(e.query,"geo_distance"),a=i&&i.geoPoint,o=i&&i.distance&&i.distance.replace(new RegExp("[0-9 ]+","gm"),""),s=t.hits.hits.reduce((function(e,t){var i=b(t,n);return i.id=t._id,a&&i.geoPoint&&o&&(i.distance=l.point.distance(a.lat,a.lon,i.geoPoint.lat,i.geoPoint.lon,o)),e.concat(i)}),[]);return{total:t.hits.total,hits:s}}))},load:function(e,n){return(n=n||{}).raw=!!angular.isDefined(n.raw)&&n.raw,n.fecthPictures=angular.isDefined(n.fetchPictures)?n.fetchPictures:n.raw,t.all([E(),n.fecthPictures?d.raw.get({id:e}):d.raw.getCommons({id:e})]).then((function(e){var t=e[0],i=e[1],a=b(i,t);return n.raw||(a.description=r.util.parseAsHtml(a.description,{tagState:"app.wot_lookup.tab_registry"})),o.extend({pubkey:a.issuer}).then((function(e){return{id:i._id,issuer:e,record:a}}))}))},add:r.record.post("/page/record",{tagFields:["title","description"],creationTime:!0}),update:r.record.post("/page/record/:id/_update",{tagFields:["title","description"]}),remove:r.record.remove("page","record"),fields:{commons:u.commons},picture:{all:r.get("/page/record/:id?_source=pictures")},comment:s.instance("page")},d.currency={all:r.get("/currency/record/_search?_source=currencyName,peers.host,peers.port"),get:r.get("/currency/record/:id/_source")},d}]),angular.module("cesium.es.social.services",["cesium.es.crypto.services"]).factory("SocialUtils",["$filter","$q","CryptoUtils","BMA","csWallet","esCrypto","$timeout",function(e,t,n,i,a,o,r){function s(){var s={URI:"([a-zA−Z0-9]+)://[ a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",EMAIL:"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",PHONE:"[+]?[0-9. ]{9,15}",socials:{facebook:"https?://((fb.me)|((www.)?facebook.com))",twitter:"https?://(www.)?twitter.com",googleplus:"https?://plus.google.com(/u)?",youtube:"https?://(www.)?youtube.com",github:"https?://(www.)?github.com",tumblr:"https?://(www.)?tumblr.com",snapchat:"https?://(www.)?snapchat.com",linkedin:"https?://(www.)?linkedin.com",vimeo:"https?://(www.)?vimeo.com",instagram:"https?://(www.)?instagram.com",wordpress:"https?://([a-z]+)?wordpress.com",diaspora:"https?://(www.)?((diaspora[-a-z]+)|(framasphere)).org",duniter:"duniter://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",bitcoin:"bitcoin://[a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+",curve25519:"curve25519://("+i.constants.regexp.PUBKEY+"):([a-zA-Z0-9]+)@([a-zA-Z0-9-_:/;*?!^\\+=@&~#|<>%.]+)"}};function l(e){return new RegExp("^"+e+"$")}function c(e){var t;if(s.URI.test(e)){var n=s.URI.exec(e)[1],i=e;if("http"==n||"https"==n){var a=e.indexOf("/",n.length+3);a>0&&(i=e.substring(0,a))}_.keys(s.socials).forEach((function(e){if(s.socials[e].test(i))return t=e,!1})),t||(t="web")}else s.EMAIL.test(e)?t="email":s.PHONE.test(e)&&(t="phone");return t||console.warn("[ES] [social] Unable to detect type of social URL: "+e),t}function u(e){if((e=e?e.trim():e)&&e.length>0)return e.startsWith("www.")&&(e="http://"+e),{type:c(e),url:e}}function d(t){if(!t||!t.length)return[];var n={};return t.forEach((function(t){if("curve25519"==t.type?(delete t.issuer,t.valid&&angular.merge(t,u(t.url))):t=u(t.url),t){var i=e("formatSlug")(t.url);n[i]=t}})),_.values(n)}return s.URI=l(s.URI),s.EMAIL=l(s.EMAIL),s.PHONE=l(s.PHONE),_.keys(s.socials).forEach((function(e){s.socials[e]=l(s.socials[e])})),{get:u,reduce:d,createForEncryption:function(e,t){return{recipient:e,type:"curve25519",url:t}},open:function e(i,l,c){if(c=c||a.data.pubkey,!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i,l,c)}),100);var u=_.filter(i||[],(function(e){var t=e.url&&"curve25519"==e.type&&s.socials.curve25519.exec(e.url);return!!t&&(e.recipient=t[1],e.nonce=t[2],e.url=t[3],e.issuer=l,e.valid=e.recipient===c,e.valid)}));return u.length?o.box.open(u,void 0,"issuer","url").then((function(){return d(i)})):t.when(d(i))},pack:function e(i){if(!n.isLoaded())return console.debug("[socials] Waiting crypto lib loading..."),r((function(){return e(i)}),100);var a=_.filter(i||[],(function(e){return"curve25519"==e.type&&e.url&&e.recipient}));return a.length?n.util.random_nonce().then((function(e){return t.all(a.reduce((function(t,n){return t.concat(o.box.pack(n,void 0,"recipient","url",e))}),[]))})).then((function(e){return e.reduce((function(e,t){return e.concat({type:"curve25519",url:"curve25519://{0}:{1}@{2}".format(t.recipient,t.nonce,t.url)})}),[])})):t.when(i)}}}var l=s();return l.instance=s,l}]),angular.module("cesium.es.crypto.services",["ngResource","cesium.services"]).factory("esCrypto",["$q","$rootScope","CryptoUtils",function(e,t,n){function i(t){if(!t)throw new Error("Missing keypair");return t.boxPk&&t.boxSk?e.when(t):e.all([n.box.keypair.skFromSignSk(t.signSk),n.box.keypair.pkFromSignPk(t.signPk)]).then((function(e){return{boxSk:e[0],boxPk:e[1]}}))}return{box:{getKeypair:i,pack:function(t,a,o,r,s){if(!t[o=o||"recipient"])return e.reject({message:"ES_WALLET.ERROR.RECIPIENT_IS_MANDATORY"});"string"==typeof(r=r||"content")&&(r=[r]),t=angular.copy(t);var l=n.util.decode_base58(t[o]);return e.all([i(a),n.box.keypair.pkFromSignPk(l),s?e.when(s):n.util.random_nonce()]).then((function(i){var a=i[0].boxSk,o=i[1],s=i[2];return e.all(r.reduce((function(e,i){return t[i]?e.concat(n.box.pack(t[i],s,o,a)):e}),[])).then((function(e){var i=0;return _.forEach(r,(function(n){t[n]?t[n]=e[i++]:t[n]=null})),t.nonce=n.util.encode_base58(s),t}))}))},open:function(t,a,o,r){o=o||"issuer","string"==typeof(r=r||"content")&&(r=[r]);var s=Date.now(),l={},c=[i(a)];return e.all(t.reduce((function(e,t){var i=t[o];if(!i)throw"Record has no "+o;return l[i]?res:e.concat(n.box.keypair.pkFromSignPk(n.util.decode_base58(i)).then((function(e){l[i]=e})))}),c)).then((function(i){var a=i[0];return e.all(t.reduce((function(e,t){var i=l[t[o]],s=n.util.decode_base58(t.nonce);return t.valid=!0,e.concat(r.reduce((function(e,o){return t[o]?e.concat(n.box.open(t[o],s,i,a.boxSk).then((function(e){t[o]=e})).catch((function(e){console.error(e),console.warn("[ES] [crypto] a record may have invalid cypher "+o),t.valid=!1}))):e}),[]))}),[]))})).then((function(){return console.debug("[ES] [crypto] All record decrypted in "+(Date.now()-s)+"ms"),t}))}}}}]),angular.module("cesium.es.profile.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esProfile")}]).factory("esProfile",["$rootScope","$q","esHttp","SocialUtils","csWot","csWallet","csPlatform","esSettings",function(e,t,n,i,a,o,r,s){var l,c=this;function u(e,t){return((t=t||{}).raw?c.raw.getAll:c.raw.get)({id:e}).then((function(a){if(a&&a.found&&a._source){var r={name:a._source.title,source:a._source};return r.name&&r.name.length>30&&(r.name=r.name.substr(0,27)+"..."),r.avatar=n.image.fromHit(a,"avatar"),t.raw||(r.description=n.util.parseAsHtml(r.source.description)),r.source.socials&&r.source.socials.length&&(r.source.socials=_.uniq(r.source.socials,!1,(function(e){return e.url}))),o.isLogin()?i.open(r.source.socials,e).then((function(){return r})):(r.source.socials=_.filter(r.source.socials,(function(e){return"curve25519"!=e.type})),r)}})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))}function d(e,t){return p(null,e,t)}function p(e,i,a,o){if(o=o||t.defer(),!(e||i&&i.length))return o.resolve(i),o.promise;var r;a=a||"pubkey";var l,u=(e=e?e.toLowerCase().trim():e)?n.util.parseTags(e):void 0,d={query:{},highlight:{fields:{title:{},tags:{}}},from:0,size:100,_source:["title","avatar._content_type"]},p=e&&s.wot.isMixedSearchEnable();if(p&&(d._source=d._source.concat(["description","city","creationTime","membersCount","type"]),console.debug("[ES] [profile] Mixed search: enable")),i.length>0){r={},_.forEach(i,(function(e){var t=e[a];if(t){var n=r[t];n?n.push(e):(n=[e],r[t]=n)}}));var m=_.keys(r);d.size=m.length<=d.size?d.size:m.length,e?(d.query.bool={should:[{terms:{"_id^4":m}},{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},u&&d.query.bool.should.push({terms:{tags:u}})):(delete d.highlight,d.query.constant_score={filter:{terms:{_id:m}}})}else{if(!e)return o.resolve(i),o.promise;d.query.bool={should:[{match:{title:{query:e,boost:2}}},{prefix:{title:e}}]},u&&d.query.bool.should.push({terms:{tags:u}})}return e&&p&&(d.indices_boost={user:100,page:1,group:.01}),(p?c.raw.mixedSearch:c.raw.search)(d).then((function(e){if((l=e.hits).total>0){var t,s={};_.forEach(l.hits,(function(e){var o="avatar";if("user"==e._index){if(!(t=r&&r[e._id])){var l={};l[a]=e._id,t=[l],i.push(l)}}else if("user"!=e._index){s[e._index]||(s[e._index]=!0,i.push({id:"divider-"+e._index,divider:!0,index:e._index}));var c={id:e._index+"-"+e._id,index:e._index,templateUrl:"plugins/es/templates/wot/lookup_item_{0}.html".format(e._index),state:"app.view_{0}".format(e._index),stateParams:{id:e._id,title:e._source.title},creationTime:e._source.creationTime,memberCount:e._source.memberCount,type:e._source.type};t=[c],i.push(c),o="avatar"}var u=n.image.fromHit(e,o);_.forEach(t,(function(t){t.avatar=u,function(e,t,i){e.avatar=e.avatar||n.image.fromHit(t,"avatar"),e.name=t._source.title,e.name&&e.name.length>30&&(e.name=e.name.substr(0,27)+"..."),e.description=t._source.description||e.description,e.city=t._source.city||e.city,t.highlight&&(t.highlight.title&&(e.name=t.highlight.title[0]),t.highlight.tags&&(e.tags=t.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[])))}(t,e)}))})),_.keys(s).length&&i.splice(0,0,{id:"divider-identities",divider:!0,index:"profile"})}o.resolve(i)})).catch((function(e){e&&e.ucode&&404==e.ucode?o.resolve(i):o.reject(e)})),o.promise}function m(e,n){return n=n||t.defer(),e&&e.pubkey?(t.all([u(e.pubkey).then((function(t){t&&(e.name=t.name,e.avatar=t.avatar,e.profile=t.source,e.profile.description=t.description),n.resolve(e)})),d((e.received_cert||[]).concat(e.received_cert_pending||[]).concat(e.given_cert||[]).concat(e.given_cert_pending||[]))]).catch((function(e){n.reject(e)})),n.promise):(n.resolve(),n.promise)}function E(){var t=n.alive;!t&&l&&l.length>0?(console.debug("[ES] [profile] Disable"),_.forEach(l,(function(e){e()})),l=[]):!t||l&&0!==l.length||(console.debug("[ES] [profile] Enable"),function(){l=[a.api.data.on.load(e,m,this),a.api.data.on.search(e,p,this)]}())}return c.raw={getFields:n.get("/user/profile/:id?&_source_exclude=avatar._content&_source=:fields"),get:n.get("/user/profile/:id?&_source_exclude=avatar._content",n.cache.MEDIUM),getAll:n.get("/user/profile/:id",n.cache.MEDIUM),search:n.post("/user/profile/_search",n.cache.MEDIUM),mixedSearch:n.post("/user,page,group/profile,record/_search",n.cache.MEDIUM)},r.ready().then((function(){return n.api.node.on.start(e,E,this),n.api.node.on.stop(e,E,this),E()})),{getAvatarAndName:function(e){return c.raw.getFields({id:e,fields:"title,avatar._content_type"}).then((function(e){var t;return e&&e._source&&((t={name:e._source.title}).avatar=n.image.fromHit(e,"avatar")),t})).catch((function(e){if(e&&e.ucode&&404==e.ucode)return null;throw e}))},get:u,add:n.record.post("/user/profile",{tagFields:["title","description"]}),update:n.record.post("/user/profile/:id/_update",{tagFields:["title","description"]}),avatar:n.get("/user/profile/:id?_source=avatar"),fillAvatars:d,remove:n.record.remove("user","profile")}}]),angular.module("cesium.es.notification.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esNotification")}]).factory("esNotification",["$rootScope","$q","$timeout","$translate","$state","csHttp","csConfig","csSettings","esHttp","esSettings","csWallet","csWot","UIUtils","filterTranslations","BMA","CryptoUtils","csPlatform","Api",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b,g,f){var T,h,v={MESSAGE_CODES:["MESSAGE_RECEIVED"],INVITATION_CODES:["INVITATION_TO_CERTIFY"],DEFAULT_LOAD_SIZE:20},I={commons:["type","code","params","reference","recipient","time","hash","read_signature"]},N=this,O=new f(this,"esNotification");function R(e,t){(t=t||{}).codes=t.codes||{},t.codes.excludes=t.codes.excludes||v.EXCLUDED_CODES;var n={bool:{must:[{term:{recipient:e}}]}};if(t.codes&&t.codes.includes)n.bool.must.push({terms:{code:t.codes.includes}});else{var i=[];s.getByPath("plugins.es.notifications.txSent",!1)||i.push("TX_SENT"),s.getByPath("plugins.es.notifications.txReceived",!0)||i.push("TX_RECEIVED"),s.getByPath("plugins.es.notifications.certSent",!1)||i.push("CERT_SENT"),s.getByPath("plugins.es.notifications.certReceived",!0)||i.push("CERT_RECEIVED"),t.codes.excludes&&_.forEach(t.codes.excludes,(function(e){i.push(e)})),i.length&&(n.bool.must_not={terms:{code:i}})}return t.readTime&&n.bool.must.push({range:{time:{gt:t.readTime}}}),n}function A(e,n){if(!e)return t.reject("[ES] [notification] Unable to load - missing pubkey");var i={query:R(e,n)};return i.query.bool.must.push({missing:{field:"read_signature"}}),N.raw.postCount(i).then((function(e){return e.count}))}function S(e){var t=(e=e||{}).wallet||u;return new Promise((function(e){if(!t.data||!t.data.events||!t.data.events.length)return e([]);var n=o.date.now()-m.MEDIAN_TIME_OFFSET;e((t.data.events||[]).reduce((function(e,i){if("warn"!=i.type&&"error"!=i.type)return e;var a=new $({},(function(e){e.read||(e.read=!0,t.data.notifications&&t.data.notifications.warnCount>0&&t.data.notifications.warnCount--)}));return a.id=i.code,a.read=!1,a.state="app.view_wallet",a.avatarIcon="ion-alert-circled",a.icon="ion-alert-circled assertive",a.time=n,a.message=i.message,a.messageParams=i.messageParams,e.concat(a)}),[]))}))}function C(t){if(t&&u.isLogin())if(_.contains(v.INVITATION_CODES,t.code))O.event.raise.newInvitation(t);else{if(!_.contains(v.MESSAGE_CODES,t.code)){var n=new $(t,k);return d.extendAll([n]).then((function(){e.$$phase?L(n):e.$applyAsync((function(){L(n)}))})).then((function(){if(c.notifications.isEmitHtml5Enable())return y(n)}))}O.event.raise.newMessage(t)}}function L(e){return u.data.notifications=u.data.notifications||{},u.data.notifications.unreadCount++,O.data.raise.new(e),e}function D(e){return e?String(e).replace(/<[^>]*>/gm,"").replace(/&[^;]+;/gm,""):""}function y(n,o){t.all([i(o||"COMMON.NOTIFICATION.TITLE"),i(n.message,n)]).then((function(t){P(D(t[0]),{body:D(t[1]),icon:n.avatar&&n.avatar.src||"./img/logo.png",lang:i.use(),tag:n.id,onclick:function(){e.$applyAsync((function(){"function"==typeof n.markAsRead&&n.markAsRead(),n.state&&a.go(n.state,n.stateParams)}))}})}))}function P(e,t){if("Notification"in window)if("granted"===Notification.permission){var n=new Notification(e,t);n.onclick=t.onclick||n.onclick}else"denied"!==Notification.permission&&Notification.requestPermission((function(n){"granted"===n&&P(e,t)}))}function k(e){if(!e.read&&e.id)if(e.id){if(u.isAuth())return e.read=!0,u.getKeypair().then((function(t){return b.sign(e.hash,t).then((function(t){return N.raw.postReadById(t,{id:e.id})})).catch((function(e){console.error("[ES] [notification] Error while trying to mark event as read.",e)}))}))}else console.error("[ES] [notification] Could not mark as read: no 'id' found!",e)}function M(e){e.notifications=e.notifications||{},e.notifications.unreadCount=null,e.notifications.warnCount=null,e.notifications.time=null,h&&(console.debug("[ES] [notification] Closing websocket..."),h(),h=null)}function w(e,i){if(i=i||t.defer(),!e||!e.pubkey||!e.keypair)return i.resolve(),i.promise;var a=Date.now(),o=Math.trunc(a/1e3);if(e.notifications&&e.notifications.time&&o-e.notifications.time<30)return e.notifications.warnCount=B(e),console.debug("[ES] [notification] Skipping load (loaded "+(o-e.notifications.time)+"s ago)"),i.resolve(),i.promise;var r=u.isUserPubkey(e.pubkey);return console.debug("[ES] [notification] Loading count..."+e.pubkey.substr(0,8)),A(e.pubkey,{readTime:e.notifications&&e.notifications.time||0,excludeCodes:v.EXCLUDED_CODES}).then((function(t){e.notifications=e.notifications||{},e.notifications.unreadCount=t,e.notifications.warnCount=B(e),t>0&&c.notifications.isEmitHtml5Enable()&&r&&n((function(){y({message:"COMMON.NOTIFICATION.HAS_UNREAD",count:t,state:"app.view_notifications"},e.ui||e.name||e.pubkey&&e.pubkey.substr(0,8))}),500),console.debug("[ES] [notification] Loaded count ("+t+") in "+(Date.now()-a)+"ms"),i.resolve(e)})).catch(i.reject),i.promise}function U(e,t){return w(e,t).then((function(){console.debug("[ES] [notification] Starting listen user event...");var t=N.raw.ws.getUserEvent();t.on(C,{pubkey:e.pubkey,locale:s.data.locale.id}).catch((function(e){console.error("[ES] [notification] Unable to listen user event",e),
+p.alert.error("ACCOUNT.ERROR.WS_CONNECTION_FAILED")})),h=function(){t.close()}}))}function B(e){return e.events?e.events.reduce((function(e,t){return"warn"==t.type?e+1:e}),0):0}function x(){var t=l.alive;if(!t&&T&&T.length>0)console.debug("[ES] [notification] Disable"),_.forEach(T,(function(e){e()})),T=[],u.isLogin()&&M(u.data);else if(t&&(!T||0===T.length)&&(console.debug("[ES] [notification] Enable"),function(){T=[u.api.data.on.login(e,U,this),u.api.data.on.load(e,w,this),u.api.data.on.init(e,M,this),u.api.data.on.reset(e,M,this)]}(),u.isLogin()))return U(u.data)}return v.EXCLUDED_CODES=v.MESSAGE_CODES.concat(v.INVITATION_CODES),N.raw={postCount:l.post("/user/event/_count"),postSearch:l.post("/user/event/_search"),postReadById:l.post("/user/event/:id/_read"),ws:{getUserEvent:l.ws("/ws/event/user/:pubkey/:locale"),getChanges:l.ws("/ws/_changes")}},O.registerEvent("data","new"),O.registerEvent("event","newInvitation"),O.registerEvent("event","newMessage"),g.ready().then((function(){return l.api.node.on.start(e,x,this),l.api.node.on.stop(e,x,this),x()})),N.load=function(e){if(!(e=e||{}).pubkey)return t.reject("[ES] [notification] Unable to load - missing options.pubkey");e.from=e.from||0,e.size=e.size||v.DEFAULT_LOAD_SIZE;var n={query:R(e.pubkey,e),sort:[{time:{order:"desc"}}],from:e.from,size:e.size,_source:I.commons};return t.all([S(e),N.raw.postSearch(n)]).then((function(e){var t=e[0]||[];if(!(e=e[1]).hits||!e.hits.total)return t;var n=e.hits.hits.reduce((function(e,t){var n=new $(t._source,k);return n.id=t._id,e.concat(n)}),t);return d.extendAll(n)}))},N.unreadCount=A,N.html5={emit:P},N.api=O,N.websocket={event:N.raw.ws.getUserEvent,change:N.raw.ws.getChanges},N.constants=v,N}]),angular.module("cesium.es.message.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esMessage")}]).factory("esMessage",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E,b=10,g={commons:["issuer","recipient","title","content","time","nonce","read_signature"],notifications:["issuer","time","hash","read_signature"]},f={postSearch:c.post("/message/inbox/_search"),postSearchByType:c.post("/message/:type/_search"),getByTypeAndId:c.get("/message/:type/:id"),postReadById:c.post("/message/inbox/:id/_read")},T=new a(this,"esMessage");function h(e){e.messages=e.messages||{},e.messages.unreadCount=null,e.messages.time=null}function v(e){e.messages&&delete e.messages}function I(t,n){if(n=n||e.defer(),!t||!t.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return t.messages&&t.messages.time&&a-t.messages.time<30?(console.debug("[ES] [message] Skipping load (loaded "+(a-t.messages.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [message] Loading count..."),function(e){var t=(e=e||{}).wallet||e.walletId&&u.children.get(e.walletId)||u,n=e.pubkey||t&&t.data&&t.data.pubkey;if(!n)throw new Error("no pubkey or wallet found in options, and user not connected.");var i={query:{bool:{must:[{term:{recipient:n}},{missing:{field:"read_signature"}}]}}};return c.post("/message/inbox/_count")(i).then((function(e){return e.count}))}({pubkey:t.pubkey}).then((function(e){t.messages=t.messages||{},t.messages.unreadCount=e,t.messages.time=a,console.debug("[ES] [message] Loaded count ("+e+") in "+(Date.now()-i)+"ms"),n.resolve(t)})).catch((function(e){console.error("Error while counting messages: "+(e.message?e.message:e)),n.resolve(t)})),n.promise)}function N(e,t){console.debug("[ES] [message] detected new message (from notification service)");var n=new $(e);if(n.issuer=n.pubkey,delete n.pubkey,n.issuer){if(!(t=t||n.issuer&&u.isUserPubkey(n.issuer)&&u||n.issuer&&u.children.getByPubkey(n.issuer)))throw new Error("No wallet for pubkey: {0}".format(n.issuer.substring(0,6)));p.extend(n,"issuer").then((function(){t.data.messages=t.data.messages||{},t.data.messages.unreadCount++,T.data.raise.new(n)}))}}function O(e,t,n,i){return n=n||"/message/inbox",d.box.record.pack(e,t,i,["title","content"]).then((function(e){return c.record.post(n)(e,{pubkey:e.issuer,keypair:t})}))}function R(e,t){e=e||u.data.pubkey,(t=t||{}).type=t.type||"inbox",t.from=t.from||0,t.size=t.size||1e3,t._source=t._source||g.commons;var n={sort:{time:"desc"},from:t.from,size:t.size,_source:t._source};return"inbox"==t.type?n.query={bool:{filter:{term:{recipient:e}}}}:n.query={bool:{filter:{term:{issuer:e}}}},f.postSearchByType(n,{type:t.type}).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var n=e.hits.hits.reduce((function(e,n){var i=n._source||{};return i.id=n._id,i.read="outbox"==t.type||!!i.read_signature,delete i.read_signature,e.concat(i)}),[]);return console.debug("[ES] [message] Loading {0} {1} messages".format(n.length,t.type)),n}))}function A(t,n,i){var a=Date.now(),r={},s=[d.box.getKeypair(n)];return e.all(t.reduce((function(e,t){return r[t.issuer]?res:e.concat(o.box.keypair.pkFromSignPk(o.util.decode_base58(t.issuer)).then((function(e){r[t.issuer]=e})))}),s)).then((function(n){var a=n[0];return e.all(t.reduce((function(e,t){var n=r[t.issuer],s=o.util.decode_base58(t.nonce);return t.valid=!0,e.concat(o.box.open(t.title,s,n,a.boxSk).then((function(e){t.title=e})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher title"),t.valid=!1})),o.box.open(t.content,s,n,a.boxSk).then((function(e){t.content=e,i?function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim(),e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"..."))}(t):e&&(t.html=c.util.parseAsHtml(e))})).catch((function(e){console.error(e),console.warn("[ES] [message] may have invalid cypher content"),t.valid=!1})))}),[]))})).then((function(){return console.debug("[ES] [message] All messages decrypted in "+(Date.now()-a)+"ms"),t}))}function S(e){return _.sortBy(e,(function(e){return-1*(1e3*(e.titleMatch||0)+100*(e.contentMatch||0)+e.time/1e10)}))}function C(t){var n=s.developers||[{pubkey:"38MEAZN68Pz1DTvT3tqgxx4yQP6snJCQhPqEFxbDk4aE"}];t&&t.content&&n&&n.length&&(console.info("[ES] [message] Sending logs to developers..."),t.issuer=u.data.pubkey,t.title=t.title||"Sending log",t.time=moment().utc().unix(),u.getKeypair().then((function(i){return e.all(n.reduce((function(e,n){return n.pubkey?e.concat(O(angular.merge({recipient:n.pubkey},t),i)):e}),[]))})).then((function(e){console.info("[ES] [message] Logs sent to {0} developers".format(e.length))})))}function L(){var e=c.alive;!e&&E&&E.length>0?(console.debug("[ES] [message] Disable"),_.forEach(E,(function(e){e()})),E=[],u.isLogin()&&v(u.data)):!e||E&&0!==E.length||(console.debug("[ES] [message] Enable"),function(){E=[u.api.data.on.init(t,h,this),u.api.data.on.login(t,I,this),u.api.data.on.load(t,I,this),u.api.data.on.reset(t,v,this),m.api.event.on.newMessage(t,N,this),u.api.error.on.send(t,C,this)]}(),u.isLogin()&&I(u.data))}return T.registerEvent("data","new"),T.registerEvent("data","delete"),T.registerEvent("data","sent"),r.ready().then((function(){return c.api.node.on.start(t,L,this),c.api.node.on.stop(t,L,this),L()})),{api:T,search:f.postSearch,notifications:{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||b;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;if(delete t.wallet,!n.isLogin())return e.when([]);var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:n.data.pubkey}}}},from:t.from,size:t.size,_source:g.notifications};return f.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return p.extendAll(t,"issuer")}))}},load:function e(t){(t=t||{}).type=t.type||"inbox",t._source=g.commons,t.summary=!angular.isDefined(t.summary)||t.summary,t.filter=angular.isDefined(t.filter)?t.filter:void 0,t.from=t.from||0;var n=t.wallet||t.walletId&&u.children.get(t.walletId)||u;delete t.wallet;var i=n.auth().then((function(e){return R(e.pubkey,t).then((function(n){return A(n,e.keypair,t.summary)}))})).then((function(e){var n="inbox"==t.type?"issuer":"recipient";return p.extendAll(e,n)})).then((function(i){if(i.length&&t.filter){var a=function(e,t){return t&&!t.trim().length?e:(e.forEach((function(e){e.content&&(e.summary=e.content.replace(/(^|[\n\r]+)\s*>[^\n\r]*/g,"").trim()||"")})),t.trim().split(" ").forEach((function(t){var n=new RegExp(t,"gi");e.forEach((function(e){var i=n.exec(e.title);if(i)for(e.title=e.title.replace(n,"<b>$&</b>"),e.titleMatch=(e.titleMatch||0)+1;(i=n.exec(e.title.substring(i.index+t.length)))&&!(e.titleMatch>=10);)e.titleMatch=e.titleMatch+1;else if(i=n.exec(e.summary)){for(i.index>140&&(e.summary="..."+e.summary.substring(i.index-20)),e.summary=e.summary.replace(n,"<b>$&</b>"),e.contentMatch=(e.contentMatch||0)+1;(i=n.exec(e.summary.substring(i.index+t.length)))&&!(e.contentMatch>=10);)e.contentMatch++;e.summary.length>140&&(e.summary=e.summary.substr(0,137)+"...")}}))})),e=_.filter(e,(function(e){return e.titleMatch||e.contentMatch})))}(i,t.filter);if(a.length<i.length)return(t=angular.copy(t)).from+=t.size,t.size=i.length-a.length,t.wallet=n,e(t).then((function(e){return a.concat(e)}))}return 0!==t.from||t.filter||(n.data.messages=n.data.messages||{},n.data.messages.count=i.length),i}));return 0===t.from&&t.filter&&i.then(S),i},get:function(e,t,n){return t=t||"inbox",(n=n||{}).summary=!!angular.isDefined(n.summary)&&n.summary,(n.wallet||n.walletId&&u.children.get(n.walletId)||u).auth().then((function(i){return f.getByTypeAndId({id:e,type:t}).then((function(e){if(e.found){var a=e._source;return a.id=e._id,a.read="outbox"==t||!!a.read_signature,delete a.read_signature,A([a],i.keypair,n.summary).then((function(){var e="inbox"==t?"issuer":"recipient";return p.extend(a,e)}))}}))}))},send:function(e,t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return delete t.wallet,e.issuer=e.issuer||n.data.pubkey,n.getKeypair().then((function(t){return O(e,t).then((function(n){return l.data.plugins.es.message&&angular.isDefined(l.data.plugins.es.message.outbox)&&!l.data.plugins.es.message.outbox?n:O(e,t,"/message/outbox","issuer").catch((function(e){return console.error("Failed to store message to outbox: "+e),n}))})).then((function(e){return T.data.raise.sent(e),e}))}))},remove:function(e,t,n){t=t||"inbox";var i=n.wallet||n.walletId&&u.children.get(n.walletId)||u;return c.record.remove("message",t)(e,{wallet:i}).then((function(n){return"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=i.data.messages.count>0?i.data.messages.count-1:0),i.isDefault()&&T.data.raise.delete(e),n}))},removeAll:function(t,n){t=t||"inbox";var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(n){return R(n.pubkey,{type:t,from:0,size:1e3,_source:!1}).then((function(n){if(n&&n.length){var a=_.pluck(n,"id");return e.all(n.reduce((function(e,n){return e.concat(c.record.remove("message",t)(n.id,{wallet:i}))}),[])).then((function(){return a}))}})).then((function(e){"inbox"===t&&(i.data.messages=i.data.messages||{},i.data.messages.count=0,i.data.messages.unreadCount=0),i.isDefault()&&_.forEach(e,T.data.raise.delete)}))}))},markAsRead:function(t,n){var i=(n=n||{}).wallet||n.walletId&&u.children.get(n.walletId)||u,a=n&&n.type||(i.isUserPubkey(t.recipient)?"inbox":"outbox");if(t.read){var r=e.defer();return r.resolve(),r.promise}return t.read=!0,i.getKeypair().then((function(e){return o.sign(t.hash,e)})).then((function(e){return f.postReadById(e,{id:t.id})})).then((function(){"inbox"===a&&(i.data.messages=i.data.messages||{},i.data.messages.unreadCount=i.data.messages.unreadCount?i.data.messages.unreadCount-1:0)}))},markAllAsRead:function(t){var n=(t=t||{}).wallet||t.walletId&&u.children.get(t.walletId)||u;return n.auth().then((function(t){return R(t.pubkey,{type:"inbox",from:0,size:1e3,_source:["hash","read_signature"]}).then((function(n){if(n&&n.length)return n=_.filter(n,{read:!1}),e.all(n.reduce((function(e,n){return e.concat(o.sign(n.hash,t.keypair).then((function(e){return f.postReadById(e,{id:n.id})})))}),[]))})).then((function(){n.data.messages=n.data.messages||{},n.data.messages.unreadCount=0}))}))},fields:{commons:g.commons}}}]),angular.module("cesium.es.modal.services",["cesium.modal.services","cesium.es.message.services"]).factory("esModals",["$state","ModalUtils","UIUtils","csWallet",function(e,t,n,i){function a(){if(i.data.notifications.unreadCount=0,i.data.notifications&&i.data.notifications.history.length){var e=i.data.notifications.history[0],t=e?e.time:0;csSettings.data.wallet=csSettings.data.wallet||{},t&&csSettings.data.wallet.notificationReadTime!=t&&(csSettings.data.wallet.notificationReadTime=t,csSettings.store())}}return{showMessageCompose:function(e){return t.show("plugins/es/templates/message/modal_compose.html","ESMessageComposeModalCtrl",e,{focusFirstInput:!0})},showNotifications:function(t,i){return n.popover.show(i,{templateUrl:"plugins/es/templates/common/popover_notification.html",scope:t,autoremove:!1,afterHidden:a}).then((function(t){t&&(t.onRead&&"function"==typeof t.onRead&&t.onRead(),t.state&&e.go(t.state,t.stateParams))}))},showNewInvitation:function(e){return i.auth({minData:!0}).then((function(i){return n.loading.hide(),i.isMember?t.show("plugins/es/templates/invitation/modal_new_invitation.html","ESNewInvitationModalCtrl",e):n.alert.error("ERROR.ONLY_MEMBER_CAN_EXECUTE_THIS_ACTION")}))},showNewPage:function(a){var o=a&&a.wallet||i;return o.auth({minData:!0}).then((function(){return n.loading.hide(),t.show("plugins/es/templates/registry/modal_record_type.html",void 0,{title:"REGISTRY.EDIT.TITLE_NEW"}).then((function(t){t&&e.go("app.registry_add_record",{type:t,wallet:o.id})}))}))},showNetworkLookup:function(e){return t.show("plugins/es/templates/network/modal_network.html","NetworkLookupModalCtrl",e,{focusFirstInput:!0})}}}]),angular.module("cesium.es.blockchain.services",["cesium.services","cesium.es.http.services"]).factory("esBlockchain",["$rootScope","$q","$timeout","BMA","esHttp",function(e,n,i,a,o){return r=a.constants.regexp.PUBKEY,40,"ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))",s={SEARCH_FILTER:{TX_PUBKEY:new RegExp("\\(transactions\\.issuers:("+r+") OR transactions\\.outputs:\\*("+r+")\\)([ ]+AND)?"),ISSUER:new RegExp("issuer:("+r+")([ ]+AND)?"),MEMBER_FLOWS:new RegExp("\\(_exists_:joiners OR _exists_:leavers OR _exists_:revoked OR _exists_:excluded\\)([ ]+AND)?"),EXISTING_TRANSACTION:new RegExp("_exists_:transactions([ ]+AND)?"),PERIOD:new RegExp("medianTime:>=?([0-9]+)[ ]+AND[ ]+medianTime:<=?([0-9]+)([ ]+AND)?")},LAST_AND:/[ ]+AND$/},l={MINIMAL:["number","hash","medianTime","issuer"],COMMONS:["number","hash","medianTime","issuer","currency","version","powMin","dividend","membersCount","identities","joiners","actives","leavers","revoked","excluded","certifications","transactions"]},(c={node:{},block:{},raw:{block:{search:o.post("/:currency/block/_search",o.cache.SHORT),searchText:o.get("/:currency/block/_search?q=:text"),get:o.get("/:currency/block/:number/_source",o.cache.SHORT)}},regexp:{ES_CORE_API_ENDPOINT:new RegExp("^ES_CORE_API( ([a-z_][a-z0-9-_.]*))?( ([0-9.]+))?( ([0-9a-f:]+))?( ([0-9]+))$")}}).regex=c.regexp,c.node.parseEndPoint=function(e){var t=c.regexp.ES_CORE_API_ENDPOINT.exec(e);if(t)return{dns:t[2]||"",ipv4:t[4]||"",ipv6:t[6]||"",port:t[8]||80}},c.raw.block.processSearchResult=function(e,n){(n=n||{}).excludeCurrent=!angular.isDefined(n.excludeCurrent)||n.excludeCurrent,n.fillAvatar=!angular.isDefined(n.fillAvatar)||n.fillAvatar,n.cleanData=!angular.isDefined(n.cleanData)||n.cleanData;var i=!1;return{hits:(e&&e.hits&&e.hits.hits||[]).reduce((function(e,a){if("current"==a._id&&n.excludeCurrent)return i=!0,e;if(!a._source)return e;var o=new t(a._source);return n.cleanData&&o.cleanData(),e.concat(o)}),[]),took:e.took,total:e&&e.hits&&e.hits.total?i?e.hits.total-1:e.hits.total:0}},c.block.search=function(e,t){var n=t?angular.copy(t):{};return delete n.excludeCurrent,delete n.fillAvatar,delete n.skipData,n.from=n.from||0,n.size=n.size||40,n._source=t._source||l.COMMONS,t._source&&"*"==t._source&&delete n._source,c.raw.block.search(n,{currency:e}).then((function(e){return c.raw.block.processSearchResult(e,t)}))},c.block.searchText=function(e,t,n){n&&angular.isUndefined(n.excludeCurrent)&&(n.excludeCurrent=!0);var i=n?angular.copy(n):{};return delete i.excludeCurrent,delete i.fillAvatar,delete i.skipData,i.from=i.from||0,i.size=i.size||40,i._source=n._source||l.COMMONS.join(","),n._source&&"*"==n._source&&delete i._source,i.currency=e,i.text=t||"",c.raw.block.searchText(i).then((function(e){return c.raw.block.processSearchResult(e,n)}))},c.block.parseSearchText=function(e,t){var n=e;return{filters:t=_.keys(s.SEARCH_FILTER).reduce((function(e,t){var i=s.SEARCH_FILTER[t].exec(n);if(i){var a=i[0];n=n.replace(a,"");var o={type:t,text:a=a.replace(s.LAST_AND,""),params:i};return e.concat(o)}return e}),t||[]),text:n.trim()}},c;var r,s,l,c}]),angular.module("cesium.es.group.services",["cesium.platform","cesium.es.http.services","cesium.es.profile.services","cesium.es.notification.services","cesium.es.comment.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGroup")}]).factory("esGroup",["$q","$rootScope","csPlatform","BMA","csSettings","esHttp","CryptoUtils","csWot","csWallet","esNotification","esComment",function(e,t,n,i,a,o,r,s,l,c,u){var d,p=50,m={list:["issuer","title","description","type","creationTime","avatar._content_type"],commons:["issuer","title","description","creationTime","time","signature"],notifications:["issuer","time","hash","read_signature"]},E={_internal:{}};function b(e){e.groups=e.groups||{},e.groups.unreadCount=null}function g(e){e.groups&&delete e.groups}function f(t,n){return n=n||e.defer(),t&&t.pubkey?(c.unreadCount(t.pubkey,{codes:{includes:["GROUP_INVITATION"],excludes:[]}}).then((function(e){t.groups=t.groups||{},t.groups.unreadCount=e,console.debug("[ES] [group] Detecting "+e+" unread notifications"),n.resolve(t)})).catch((function(e){console.error("Error while counting group notifications: "+(e.message?e.message:e)),n.resolve(t)})),n.promise):(n.resolve(),n.promise)}function T(e,t){if(e){var n=e._source;return t&&e.highlight&&(e.highlight.title&&(n.title=e.highlight.title[0]),e.highlight.description&&(n.description=e.highlight.description[0]),e.highlight.location&&(n.location=e.highlight.location[0]),e.highlight.tags&&(data.tags=e.highlight.tags.reduce((function(e,t){return e.concat(t.replace("<em>","").replace("</em>",""))}),[]))),t&&(n.description=o.util.parseAsHtml(n.description)),n.avatar=o.image.fromHit(e,"avatar"),e._source.pictures&&e._source.pictures.reduce&&(n.pictures=e._source.pictures.reduce((function(e,t){return e.concat(o.image.fromAttachment(t.file))}),[])),n}}function h(e){return E._internal.search(e).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=T(t,!0);return n.id=t._id,n?e.concat(n):e}),[]);return console.debug("[ES] [group] Loading {0} groups".format(t.length)),t}))}function v(e){return h({sort:{time:"desc"},from:(e=e||{}).from||0,size:e.size||p,_source:e._source||m.list})}function I(){var e=o.alive;!e&&d&&d.length>0?(console.debug("[ES] [group] Disable"),_.forEach(d,(function(e){e()})),d=[],l.isLogin()&&g(l.data)):!e||d&&0!==d.length||(console.debug("[ES] [group] Enable"),function(){d=[l.api.data.on.login(t,f,this),l.api.data.on.init(t,b,this),l.api.data.on.reset(t,g,this)]}(),l.isLogin()&&f(l.data))}return E._internal.search=o.post("/group/record/_search"),E._internal.get=o.get("/group/record/:id"),E._internal.getCommons=o.get("/group/record/:id?_source="+m.commons.join(",")),n.ready().then((function(){return o.api.node.on.start(t,I,this),o.api.node.on.stop(t,I,this),I()})),{record:{last:v,search:function(e){var t=(e=e||{}).text&&e.text.trim();if(!t)return v(e);var n={from:e.from||0,size:e.size||p,highlight:{fields:{title:{},tags:{}}},_source:e._source||m.list},a=[],o=[];return i.regexp.PUBKEY.test(t)?(o.push({term:{issuer:t}}),o.push({term:{pubkey:t}})):(t=t.toLowerCase(),a.push({multi_match:{query:t,fields:["title","description"],type:"phrase_prefix"}}),a.push({match:{title:t}}),a.push({match:{description:t}})),n.query={bool:{}},a.length>0&&(n.query.bool.should=a),o.length>0&&(n.query.bool.filter=o),h(n)},load:function(e,t){return(t=t||{}).fecthPictures=!!angular.isDefined(t.fetchPictures)&&t.fetchPictures,t.html=!angular.isDefined(t.html)||t.html,(t.fecthPictures?E._internal.get({id:e}):E._internal.getCommons({id:e})).then((function(e){var n=T(e,t.html);return s.extend({pubkey:n.issuer}).then((function(t){return{id:e._id,issuer:t,record:n}}))}))},add:o.record.post("/group/record",{tagFields:["title","description"]}),update:o.record.post("/group/record/:id/_update",{tagFields:["title","description"]}),remove:o.record.remove("group","record"),fields:{commons:m.commons},picture:{all:o.get("/group/record/:id?_source=pictures")},comment:u.instance("group")}}}]),angular.module("cesium.es.invitation.services",["cesium.platform","cesium.es.http.services","cesium.es.wallet.services","cesium.es.notification.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esInvitation")}]).factory("esInvitation",["$rootScope","$q","CryptoUtils","csPlatform","Api","esHttp","csWallet","esWallet","csWot","esNotification",function(e,t,n,i,a,o,r,s,l,c){var u,d=this,p={DEFAULT_LOAD_SIZE:20},m={commons:["issuer","time","hash","content","nonce","comment"]},E=new a(this,"esInvitation");function b(e){e.invitations=e.invitations||{},e.invitations.unreadCount=null,e.invitations.time=null}function g(e){e.invitations&&delete e.invitations}function f(e,n){if(n=n||t.defer(),!e||!e.pubkey)return n.resolve(),n.promise;var i=Date.now(),a=Math.trunc(i/1e3);return e.invitations&&e.invitations.time&&a-e.invitations.time<30?(console.debug("[ES] [invitation] Skipping load (loaded "+(a-e.invitations.time)+"s ago)"),n.resolve(),n.promise):(console.debug("[ES] [invitation] Loading count..."),function(e){if(!(e=e||(r.isLogin()?r.data.pubkey:e)))throw new Error("User not connected or no pubkey");var t={query:{bool:{must:[{term:{recipient:e}}]}}};return o.post("/invitation/certification/_count")(t).then((function(e){return e.count}))}(e.pubkey).then((function(t){e.invitations=e.invitations||{},e.invitations.unreadCount=t,e.invitations.time=a,console.debug("[ES] [invitation] Loaded count ("+t+") in "+(Date.now()-i)+"ms"),n.resolve(e)})).catch((function(t){console.error("Error while counting invitation: "+(t.message?t.message:t)),n.resolve(e)})),n.promise)}function T(e){if(r.data.invitations&&r.data.invitations.list){var n=_.where(r.data.invitations.list,{type:"certification",pubkey:e.pubkey});if(n&&n.length)return t.all(n.reduce((function(e,t){return e.concat(I(t))}),[]))}}function h(t){console.debug("[ES] [invitation] detected new invitation (from notification service)"),r.isAuth()?v(t.reference.id,t.reference.type).then((function(e){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++,r.data.invitations.list&&r.data.invitations.list.splice(0,0,e),E.data.raise.new(e)})):e.$applyAsync((function(){r.data.invitations=r.data.invitations||{},r.data.invitations.unreadCount++}))}function v(e,n){return n=n||"certification",t.all([s.box.getKeypair(),d.raw[n].get({id:e,fields:m.commons.join(",")})]).then((function(e){var t=e[0],n=e[1],i=n._source;return i.id=n._id,i.type=n._type,s.box.record.open([i],t,"issuer",["content","comment"])})).then((function(e){var t=e[0];if(t&&t.valid){var n=new q(t);return l.extendAll(n.issuer?[n,n.issuer]:[n],"pubkey").then((function(){return n}))}}))}function I(e,t){if(!e||!e.id)throw"Invalid invitation (empty or without id). Could not delete.";var n=e.type||"certification",i=t&&t.walletId&&r.children.get(t.walletId)||r;return d.raw[n].remove(e.id,{wallet:i}).then((function(){i.data.invitations.unreadCount=0,i.data.invitations&&i.data.invitations.list&&i.data.invitations.list.splice(i.data.invitations.list.indexOf(e),1)}))}function N(e,n,i){return e&&e.length?(n=n||"certification",t.all(e.reduce((function(e,t){return e.concat(d.raw[n].remove(t,i))}),[]))):t.when()}function O(){var t=o.alive;!t&&u&&u.length>0?(console.debug("[ES] [invitations] Disable"),_.forEach(u,(function(e){e()})),u=[],r.isLogin()&&g(r.data)):!t||u&&0!==u.length||(console.debug("[ES] [invitations] Enable"),function(){u=[r.api.data.on.init(e,b,this),r.api.data.on.login(e,f,this),r.api.data.on.load(e,f,this),r.api.data.on.reset(e,g,this),r.api.action.on.certify(e,T,this),c.api.event.on.newInvitation(e,h,this)]}(),r.isLogin()&&f(r.data))}return d.raw={certification:{get:o.get("/invitation/certification/:id?_source:fields"),add:o.record.post("/invitation/certification"),postSearch:o.post("/invitation/certification/_search"),remove:o.record.remove("invitation","certification"),getIds:o.get("/invitation/certification/_search?q=recipient::pubkey&_source=false&size=1000")}},E.registerEvent("data","new"),i.ready().then((function(){return o.api.node.on.start(e,O,this),o.api.node.on.stop(e,O,this),O()})),d.api=E,d.load=function(e,n){if(!r.isLogin())return t.when([]);(e=e||{}).from=e.from||0,e.size=e.size||p.DEFAULT_LOAD_SIZE;var i={sort:{time:"desc"},query:{bool:{filter:{term:{recipient:e.issuer||r.data.pubkey}}}},from:e.from,size:e.size,_source:m.commons};return e.readTime&&(query.bool.must=[{range:{time:{gt:e.readTime}}}]),d.raw.certification.postSearch(i).then((function(e){if(!e||!e.hits||!e.hits.total)return[];var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,n.type=t._type,n.read=!!n.read_signature,delete n.read_signature,e.concat(n)}),[]);return s.box.record.open(t,n,"issuer",["content","comment"])})).then((function(t){var n=[];return t=t.reduce((function(e,t){if(!t||!t.valid)return e;var i=new q(t);return n.push(i),i.issuer&&n.push(i.issuer),e.concat(i)}),[]),l.extendAll(n,"pubkey").then((function(){return r.data.invitations=r.data.invitations||{},r.data.invitations.list?(r.data.invitations.list.length&&r.data.invitations.list.splice(e.from,r.data.invitations.list.length-e.from),_.forEach(t,(function(e){r.data.invitations.list.push(e)}))):r.data.invitations.list=t,r.data.invitations.list}))}))},d.get=v,d.send=function(e,t){(t=t||{}).type=t.type||"certification";var n=t.keypair||t.wallet&&t.wallet.data.keypair;return s.box.record.pack(e,n,"recipient",["content","comment"]).then((function(e){return d.raw[t.type].add(e,t)}))},d.delete=I,d.deleteByIds=N,d.deleteAll=function(e,t){e=e||"certification";var n=Date.now();console.debug("[ES] [invitation] Deleting all {0} invitations...".format(e));var i=t&&t.pubkey&&r.children.getByPubkey(t.pubkey)||t&&t.walletId&&r.children.getByPubkey(t.walletId)||r,a=i.data.invitations&&i.data.invitations.count||0,o=i.data.invitations&&i.data.invitations.unreadCount||0;return d.raw[e].getIds({pubkey:i.data.pubkey}).then((function(t){if(t&&t.hits&&t.hits.total)return N(t.hits.hits.reduce((function(e,t){return e.concat(t._id)}),[]),e,{walletId:i.id}).then((function(){i.data.invitations=i.data.invitations||{},i.data.invitations.count>=a?i.data.invitations.count-=a||0:i.data.invitations.count=0,i.data.invitations.unreadCount>=o?i.data.invitations.unreadCount-=o||0:i.data.invitations.unreadCount=0,console.debug("[ES] [invitation] All {0} invitations deleted in {1}ms".format(e,Date.now()-n))}))}))},d.constants=p,d}]),angular.module("cesium.es.subscription.services",["cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esSubscription")}]).factory("esSubscription",["$rootScope","$q","$timeout","esHttp","$state","$sce","$sanitize","esSettings","CryptoUtils","UIUtils","csWallet","csWot","BMA","csPlatform","esWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E){var b,g=this;function f(e){e.subscriptions=null}function T(e,n){return n=n||t.defer(),e&&e.pubkey&&e.keypair?(console.debug("[ES] [subscription] Loading subscriptions count..."),g.raw.count({pubkey:e.pubkey}).then((function(t){e.subscriptions=e.subscriptions||{},e.subscriptions.count=t&&t.hits&&t.hits.total,console.debug("[ES] [subscription] Loaded count ("+e.subscriptions.count+")"),n.resolve(e)})).catch((function(t){console.error("[ES] [subscription] Error while counting subscription: "+(t.message?t.message:t)),n.resolve(e)})),n.promise):(n.resolve(),n.promise)}function h(){var t=i.alive;if(!t&&b&&b.length>0){if(console.debug("[ES] [subscription] Disable"),_.forEach(b,(function(e){e()})),b=[],u.isLogin())return f(u.data)}else if(t&&(!b||0===b.length)&&(console.debug("[ES] [subscription] Enable"),function(){b=[u.api.data.on.load(e,T,this),u.api.data.on.init(e,f,this),u.api.data.on.reset(e,f,this)]}(),u.isLogin()))return T(u.data)}return g.raw={getAll:i.get("/subscription/record/_search?_source_excludes=recipientContent&q=issuer::issuer"),count:i.get("/subscription/record/_search?size=0&q=issuer::pubkey"),add:i.record.post("/subscription/record"),update:i.record.post("/subscription/record/:id/_update"),category:{get:i.get("/subscription/category/:id"),all:i.get("/subscription/category/_search?sort=order&from=0&size=1000&_source=name,parent,key")}},m.ready().then((function(){return i.api.node.on.start(e,h,this),i.api.node.on.stop(e,h,this),h()})),g.record={load:function(e,t){return g.raw.getAll({issuer:e}).then((function(e){var n=e&&e.hits&&e.hits.total&&e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[])||[];return E.box.record.open(n,t,"issuer","issuerContent").then((function(e){return _.forEach(e,(function(e){e.content=JSON.parse(e.issuerContent||"{}"),delete e.issuerContent,delete e.recipientContent})),e}))}))},add:function(e,n){if(!(e&&e.type&&e.content&&e.recipient))return t.reject("Missing arguments 'record' or 'record.type' or 'record.content' or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.add(n,{wallet:i}).then((function(t){return e.id=t,e}))}))},update:function(e,n){if(!e||!e.content||!e.recipient)return t.reject("Missing arguments 'record' or 'record.content', or 'record.recipient'");var i=n&&n.wallet||n&&n.walletId&&u.children.get(n.walletId)||u,a=i.data.pubkey,o=JSON.stringify(e.content);return l.util.random_nonce().then((function(n){return t.all([E.box.record.pack({issuer:a,issuerContent:o},i.data.keypair,"issuer","issuerContent",n),E.box.record.pack({recipient:e.recipient,recipientContent:o},i.data.keypair,"recipient","recipientContent",n)])})).then((function(t){var n=angular.merge(t[0],t[1]);return n.type=e.type,g.raw.update(n,{id:e.id,wallet:i}).then((function(){return e}))}))},remove:i.record.remove("subscription","record")},g.category={all:function(){if(g.raw.categories&&g.raw.categories.length){var e=t.defer();return e.resolve(g.raw.categories),e.promise}return g.raw.category.all().then((function(e){if(0===e.hits.total)g.raw.categories=[];else{var t=e.hits.hits.reduce((function(e,t){var n=t._source;return n.id=t._id,e.concat(n)}),[]);_.forEach(t,(function(e){t[e.id]=e})),g.raw.categories=t}return g.raw.categories}))},get:function(e){return g.raw.category.get(e).then((function(e){var t=e._source;return t.id=e._id,t}))}},g.constants={},g}]),angular.module("cesium.es.wallet.services",["ngResource","cesium.platform","cesium.es.http.services","cesium.es.crypto.services"]).factory("esWallet",["$q","$rootScope","$timeout","CryptoUtils","csPlatform","csWallet","esCrypto","esProfile","esHttp",function(e,t,n,i,a,o,r,s,l){var c;function u(e){e.avatar=null,e.profile=null,e.name=null,o.events.cleanByContext("esWallet"),e.keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function d(t,n){return n=n||e.defer(),r.box.getKeypair(t.keypair).then((function(e){t.keypair.boxSk=e.boxSk,t.keypair.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),n.resolve()})),n.promise}function p(e){(e=e||o.data).keypair&&(delete e.keypair.boxSk,delete e.keypair.boxPk)}function m(t,a){if(a=a||e.defer(),!t||!t.pubkey||!t.keypair)return a.resolve(),a.promise;if(!i.isLoaded())return console.debug("[ES] [wallet] Waiting crypto lib loading..."),n((function(){return m(t,a)}),50);console.debug("[ES] [wallet] Loading user avatar+name...");var o=Date.now();return s.getAvatarAndName(t.pubkey).then((function(e){e?(t.name=e.name,t.avatarStyle=e.avatarStyle,t.avatar=e.avatar,console.debug("[ES] [wallet] Loaded user avatar+name in "+(Date.now()-o)+"ms")):console.debug("[ES] [wallet] No user avatar+name found"),a.resolve(t)})).catch((function(e){a.reject(e)})),a.promise}function E(t,n){n=n||e.defer(),o.events.cleanByContext("esWallet"),!t.name&&!t.requirements.revoked&&t.requirements.pendingMembership&&t.requirements.needCertificationCount>0&&o.events.add({type:"info",message:"ACCOUNT.EVENT.MEMBER_WITHOUT_PROFILE",context:"esWallet"}),console.debug("[ES] [wallet] Loading full user profile...");var i=Date.now();return s.get(t.pubkey).then((function(e){e&&(t.name=e.name,t.avatar=e.avatar,t.profile=e.source,t.profile.description=e.description,console.debug("[ES] [wallet] Loaded full user profile in "+(Date.now()-i)+"ms")),n.resolve()})),n.promise}function b(t){if(!t&&!o.isAuth())throw new Error("Unable to get box keypair: user not authenticated !");return(t?e.when(t):o.getKeypair({silent:!0})).then((function(t){return t&&t.boxPk&&t.boxSk?e.when(t):r.box.getKeypair(t).then((function(e){return t.boxSk=e.boxSk,t.boxPk=e.boxPk,console.debug("[ES] [wallet] Box keypair successfully computed"),t}))}))}function g(){var e=l.alive;if(!e&&c&&c.length>0){if(console.debug("[ES] [wallet] Disable"),_.forEach(c,(function(e){e()})),c=[],o.isLogin())return u(o.data)}else if(e&&(!c||0===c.length)&&(console.debug("[ES] [wallet] Enable"),function(){c=[o.api.data.on.login(t,m,this),o.api.data.on.load(t,E,this),o.api.data.on.init(t,u,this),o.api.data.on.reset(t,u,this),o.api.data.on.unauth(t,p,this),o.api.data.on.auth(t,d,this)]}(),o.isLogin()))return m(o.data)}return a.ready().then((function(){return l.api.node.on.start(t,g,this),l.api.node.on.stop(t,g,this),g()})),this.box={getKeypair:b,record:{pack:function(e,t,n,i,a){return b(t).then((function(t){return r.box.pack(e,t,n,i,a)}))},open:function(e,t,n,i){return b(t).then((function(t){return r.box.open(e,t,n,i)}))}}},this}]),angular.module("cesium.es.wot.services",["ngResource","cesium.es.http.services"]).factory("esWot",["$rootScope","$q","esHttp","csCache",function(e,t,n,i){var a=i.get("esWot-memberships-",i.constants.MEDIUM),o={user:{event:n.post("/user/event/_search")}};return n.api.node.on.stop(e,(function(){console.debug("[ES] [wot] Clean cache..."),i.clear("esWot-")}),this),{memberships:function(e,n){var i=!1!==(n=n||{}).cache?a.get(e):null;if(i)return t.when(i);var r={size:1e3,query:{bool:{filter:[{term:{recipient:e}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return o.user.event(r).then((function(t){if(t.hits&&t.hits.total){var n,i=t.hits.hits.reduce((function(e,t){var i="MEMBER_JOIN"==t._source.code||"MEMBER_ACTIVE"==t._source.code;return i&&!n?n=t._source.time:!i&&n&&(e=e.concat({joinTime:n,leaveTime:t._source.time}),n=0),e}),[]);return n&&i.push({joinTime:n,leaveTime:moment().utc().unix()}),a.put(e,i),i}}))}}}]),angular.module("cesium.es.tx.services",["ngResource","cesium.services","cesium.es.http.services","cesium.es.wot.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esTx")}]).factory("esTx",["$q","$rootScope","csPlatform","csCurrency","csTx","esHttp","esWot",function(e,t,n,i,a,o,r){var s,l={block:{search:o.post("/:currency/block/_search")}};function c(t,n){return n=n||e.defer(),(t=t||{}).pubkey||n.reject("Missing [pubkey] when calling [loadUDs] extension point"),e.all([i.get(),r.memberships(t.pubkey)]).then((function(n){var i=n[0]&&n[0].name,a=n[1];if(i&&a&&a.length)return-1!==t.fromTime&&(a=a.reduce((function(e,n){return n.leaveTime<t.fromTime?e:(n.joinTime=Math.max(n.joinTime,t.fromTime),e.concat(n))}),[])),e.all(a.reduce((function(e,n){var a={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}},{range:{medianTime:{from:n.joinTime+1,to:n.leaveTime}}}]}}}},size:t.size||1e4,from:t.from||0,sort:{medianTime:"desc"},_source:["medianTime","number","dividend","unitbase"]};return e.concat(l.block.search(a,{currency:i}))}),[]))})).then((function(e){if(e&&e.length)return e.reduce((function(e,t){return t.hits.total&&t.hits.hits.length?e.concat(t.hits.hits.reduce((function(e,t){var n,i,a=t._source;return e.concat({time:a.medianTime,amount:(n=a.dividend,i=a.unitbase,i<=0?n:n*Math.pow(10,i)),isUD:!0,block_number:a.number})}),[])):t}),[])})).then((function(e){n.resolve(e)})).catch((function(e){n.reject(e)})),n.promise}function u(){var e=o.alive;!e&&s&&s.length>0?(console.debug("[ES] [tx] Disable"),_.forEach(s,(function(e){e()})),s=[]):!e||s&&0!==s.length||(console.debug("[ES] [tx] Enable"),function(){s=[a.api.data.on.loadUDs(t,c,this)]}())}return n.ready().then((function(){return o.api.node.on.start(t,u,this),o.api.node.on.stop(t,u,this),u()})),{}}]),angular.module("cesium.es.geo.services",["cesium.services","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esGeo")}]).factory("esGeo",["$rootScope","$q","csConfig","csSettings","csHttp",function(e,t,n,i,a){var o=this;function r(e){return o.raw.google.search({address:e,key:o.raw.google.apiKey}).then((function(e){if(e&&e.results&&e.results.length)return e.results.reduce((function(e,t){return e.concat({display_name:t.address_components&&t.address_components.reduce((function(e,t){return t.long_name?e.concat(t.long_name):e}),[]).join(", "),lat:t.geometry&&t.geometry.location&&t.geometry.location.lat,lon:t.geometry&&t.geometry.location&&t.geometry.location.lng})}),[])}))}o.raw={osm:{search:a.get("nominatim.openstreetmap.org",443,"/search.php?format=json"),license:{name:"OpenStreetMap",url:"https://www.openstreetmap.org/copyright"}},google:{apiKey:void 0,search:a.get("maps.google.com",443,"/maps/api/geocode/json")},freegeoip:{search:a.get("freegeoip.net",443,"/json/:ip"),license:{name:"freegeoip",url:"https://freegeoip.net"}}},o.raw.google.apiKey=n.plugins&&n.plugins.es&&n.plugins.es.googleApiKey;var s=!!o.raw.google.apiKey;return i.ready().then((function(){function t(e){s||(o.raw.google.apiKey=e.plugins.es.googleApiKey),o.raw.google.enable=o.raw.google.apiKey&&e.plugins&&e.plugins.es&&e.plugins.es.enableGoogleApi}i.api.data.on.changed(e,t,this),t(i.data)})),{point:{current:function(){var e=t.defer();return navigator.geolocation?navigator.geolocation.getCurrentPosition((function(t){t&&t.coords?e.resolve({lat:t.coords.latitude,lon:t.coords.longitude}):console.error("[ES] [geo] navigator geolocation > Unknown format:",t)}),(function(t){e.reject(t)}),{timeout:5e3}):e.reject(),e.promise},searchByAddress:function(e){"string"==typeof e&&(e={q:e}),e.q&&(e.q=e.q.trim().replace(/\n/g,",").replace(/(?:^|[\t\n\r\s ])([A−Z09-]+)(?:$|[\t\n\r\s ])/g,"").replace(/,[ ,]+/g,", ")),e.addressdetails=1;var t=Date.now();return o.raw.osm.search(e).then((function(e){if(e)return e=e.reduce((function(e,t){return"waterway"!=t.class&&"railway"!=t.class&&t.address?(t.address.city=t.address.city||t.address.village||t.address.town||t.address.postcode,t.address.road=t.address.road||t.address.suburb||t.address.hamlet,t.address.postcode&&t.address.city==t.address.postcode&&delete t.address.postcode,t.address.city?e.concat({id:t.place_id,name:t.display_name,address:t.address,lat:t.lat,lon:t.lon,class:t.class,license:o.raw.osm.license}):e):e}),[]),console.debug("[ES] [geo] Found {0} address position(s)".format(e&&e.length||0,Date.now()-t),e),e.length?e:void 0})).catch((function(t){return n=t,i=e.q?e.q:(e.street?e.street+", ":"")+e.city+(e.country?", "+e.country:""),console.debug("[ES] [geo] Search position failed on [OSM]. Trying [google] service"),r(i).catch((function(e){throw console.debug("[ES] [geo] Search position failed on [google] service"),n||e}));var n,i}))},distance:function(e,t,n,i,a){var o=Math.PI*e/180,r=Math.PI*n/180,s=t-i,l=Math.PI*s/180,c=Math.sin(o)*Math.sin(r)+Math.cos(o)*Math.cos(r)*Math.cos(l);return c=60*(c=180*(c=Math.acos(c))/Math.PI)*1.1515,"km"==a?1.609344*c:"N"==a?.8684*c:c},ip:{search:function(e){return o.raw.freegeoip.search({ip:e}).then((function(e){return e?{lat:e.latitude,lng:e.longitude}:void 0}))},license:o.raw.freegeoip.license}},google:{isEnable:function(){return o.raw.google.enable&&o.raw.google.apiKey},searchByAddress:r}}}]),angular.module("cesium.es.document.services",["ngResource","cesium.platform","cesium.es.http.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.registerEagerLoadingService("esDocument")}]).factory("esDocument",["$q","$rootScope","$timeout","UIUtils","Api","CryptoUtils","csPlatform","csConfig","csSettings","csWot","csWallet","esHttp",function(e,t,n,i,a,o,r,s,l,c,u,d){var p=40,m={commons:["issuer","pubkey","hash","time","recipient","nonce","read_signature"],peer:["*"],movement:["*"]},E={search:d.post("/:index/:type/_search"),searchText:d.get("/:index/:type/_search?q=:text&_source=:source")};function b(e){if(!e||!e.index||!e.type)throw new Error("Missing mandatory options [index, type]");var t="desc";return"peer"==e.type?(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={"stats.medianTime":{nested_path:"stats",order:t}}),e._source=m.peer,e.getTimeFunction=function(e){return e.time=e.stats&&e.stats.medianTime,e.time}):"movement"==e.type&&(e.sort&&!e.sort.time||(t=e.sort&&e.sort.time||t,e.sort={medianTime:t}),e._source=e._source||m.movement,e.getTimeFunction=function(e){return e.time=e.medianTime,e.time}),e}function g(e,t){t.issuerField=t.issuerField||"pubkey";var n=(e&&e.hits&&e.hits.hits||[]).reduce((function(e,n){var i=n._source||{};return i.index=n._index,i.type=n._type,i.id=n._id,i.pubkey=i.issuer||t.issuerField&&i[t.issuerField]||i.pubkey,i.time=t.getTimeFunction&&t.getTimeFunction(i)||i.time,i.thumbnail=d.image.fromHit(n,"thumbnail"),e.concat(i)}),[]),i=n.reduce((function(e,t){return t.recipient?(t.recipient={pubkey:t.recipient},e.concat(t.recipient)):e}),[]);return c.extendAll(n.concat(i)).then((function(){return{hits:n,took:e.took,total:e&&e.hits&&e.hits.total||0}}))}return{search:function(e){var t={from:(e=b(e)).from||0,size:e.size||p,sort:e.sort||{time:"desc"},_source:e._source||m.commons};return e.query&&(t.query=e.query),E.search(t,{index:e.index,type:e.type}).then((function(t){return g(t,e)}))},searchText:function(e,t){var n={text:e,index:(t=t||{}).index||"user",type:t.type||"event",from:t.from||0,size:t.size||p,sort:t.sort||"time:desc",source:t._source&&t._source.join(",")||m.commons.join(",")};console.debug("[ES] [wallet] [document] [{0}/{1}] Loading documents...".format(t.index,t.type));var i=Date.now();return E.searchText(n).then((function(e){return g(e,t)})).then((function(e){return console.debug("[ES] [document] [{0}/{1}] Loading {2} documents in {3}ms".format(t.index,t.type,e&&e.hits&&e.hits.length||0,Date.now()-i)),e}))},remove:function(t,n){return t&&t.index&&t.type&&t.id?d.record.remove(t.index,t.type)(t.id,n):e.reject("Could not remove document: missing mandatory fields")},removeAll:function(t,n){if(t&&t.length){var i=n&&n.walletId&&u.children.get(n.walletId)||u;return i.auth().then((function(){return e.all(t.reduce((function(e,t){return e.concat(d.record.remove(t.index,t.type)(t.id,{wallet:i}))}),[]))}))}},fields:{commons:m.commons},fromHit:function(e){return g({hits:{hits:[e]}},b({index:e._index,type:e._type})).then((function(e){return e.hits[0]}))}}}]),angular.module("cesium.es.network.services",["ngApi","cesium.es.http.services"]).factory("esNetwork",["$rootScope","$q","$interval","$timeout","$window","csSettings","csConfig","esHttp","Api","BMA",function(e,t,n,i,a,o,r,s,l,c){factory=function(e){var u,d="https:"===a.location.protocol,p=new l(this,"csNetwork-"+e),m={pod:null,listeners:[],loading:!0,peers:[],filter:{endpointFilter:null,online:!0,ssl:void 0,tor:void 0},sort:{type:null,asc:!0},expertMode:!1,knownBlocks:[],mainBlock:null,searchingPeersOnNetwork:!1,timeout:r.timeout},E=function(e){return e&&[e.number,e.hash].join("-")},b=function(){m.peers=[],m.searchingPeersOnNetwork=!0,m.loading=!0,m.pod=m.pod||s;var e=[];return u&&n.cancel(u),u=n((function(){e.length?h(e):m.loading&&!m.searchingPeersOnNetwork&&(m.loading=!1,n.cancel(u),I(!0),console.debug("[network] Finish: {0} peers found.".format(m.peers.length)))}),1e3),t.when().then((function(){return m.filter.online?m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"==t.status&&i.push(g(t,e))})),i.length)return t.all(i)})).catch((function(e){console.error(e)})):m.pod.network.peers().then((function(n){var i=[];if(_.forEach(n.peers,(function(t){"UP"!==t.status&&i.push(g(t,e))})),i.length)return t.all(i)}))})).then((function(){m.searchingPeersOnNetwork=!1})).catch((function(e){console.error(e),m.searchingPeersOnNetwork=!1}))},g=function(e,n){n=n||m.newPeers;var i=f(e),a=!1,o=i.reduce((function(e,t){var i=_.findWhere(m.peers,{id:t.id}),o=i?i.buid:null,r=!!i&&i.online;return e.concat(T(t).then((function(e){i?!e||e.online!==m.filter.online&&"all"!==m.filter.online?(console.debug("[network] Peer [{0}] removed (cause: {1})".format(t.server,e?e.online?"UP":"DOWN":"filtered")),m.peers.splice(m.peers.indexOf(i),1),a=!0):e.buid!==o?(console.debug("[network] {0} endpoint [{1}] new current block".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server)),a=!0):r!==e.online?(console.debug("[network] {0} endpoint [{1}] is now {2}".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server,e.online?"UP":"DOWN")),a=!0):console.debug("[network] {0} endpoint [{1}] unchanged".format(e.ep&&(e.ep.useBma?"BMA":"WS2P")||"null",e.server)):!e||e.online!==m.filter.online&&"all"!==m.filter.online||(console.debug("[network] {0} endpoint [{1}] is {2}".format(e.ep&&e.ep.api||"",e.server,e.online?"UP":"DOWN")),n.push(e),a=!0)})))}),[]);return(1===o.length?o[0]:t.all(o)).then((function(){return a}))},f=function(e,t){if(!e)return[];var n=new X(e);if(!t){var i=n.getEndpoints();if(!i)return[];var a=i.reduce((function(e,t){var n=s.node.parseEndPoint(t);return n?e.concat(n):e}),[]);if(a.length>1)return a.reduce((function(t,n){return t.concat(f(e,n))}),[]);t=a[0]}return n.ep=t,n.server=n.getServer(),n.dns=n.getDns(),n.blockNumber=n.block&&n.block.replace(/-.+$/,""),n.id=n.keyID(),[n]},T=function(e){return function(e){return!(m.filter&&(m.filter.endpointFilter&&(e.ep&&e.ep.api&&e.ep.api!==m.filter.endpointFilter||!e.hasEndpoint(m.filter.endpointFilter))||!m.filter.online&&"UP"==e.status||angular.isDefined(m.filter.ssl)&&e.isSsl()!=m.filter.ssl||angular.isDefined(m.filter.tor)&&e.isTor()!=m.filter.tor))}(e)?!m.filter.online||"all"===m.filter.online&&"DOWN"===e.status||!e.getHost()?(e.online=!1,t.when(e)):d&&!e.isSsl()?(e.online="UP"===e.status,e.buid=-1,delete e.version,t.when(e)):e.ep.useTor?(e.online="UP"==e.status,e.buid=-1,delete e.software,delete e.version,t.when(e)):(e.api=e.api||s.lightInstance(e.getHost(),e.getPort(),e.isSsl(),m.timeout),e.api.blockchain.current().then((function(t){return e.currentNumber=t.number,e.online=!0,e.buid=E(t),e.medianTime=t.medianTime,-1===m.knownBlocks.indexOf(e.buid)&&m.knownBlocks.push(e.buid),e})).catch((function(t){if(t&&t.ucode==c.errorCodes.NO_CURRENT_BLOCK)return e.online=!0,e.buid=E({number:0,hash:c.constants.ROOT_BLOCK_HASH}),e.difficulty=0,e;if(!e.secondTry){var n=e.ep||e.getEP();if(n.dns&&-1==e.server.indexOf(n.dns))return e.secondTry=!0,e.api=s.lightInstance(n.dns,n.port,n.useSsl),T(e)}return e.online=!1,e.currentNumber=null,e.buid=null,e})).then((function(e){return m.filter.online&&e&&e.online?(e.docCount={},t.all([m.expertMode?e.api.node.summary().then((function(t){e.software=t&&t.duniter&&t.duniter.software||void 0,e.version=t&&t.duniter&&t.duniter.version||"?"})).catch((function(){e.software=void 0,e.version="?"})):t.when(),e.api.record.count(m.document.index,m.document.type).then((function(t){e.docCount.record=t})).catch((function(){e.docCount.record=void 0})),e.api.subscription.count({recipient:e.pubkey,type:"email"}).then((function(t){e.docCount.emailSubscription=t})).catch((function(){e.docCount.emailSubscription=void 0}))])):e})).then((function(){return delete e.api,e}))):t.when()},h=function(e,t){if((e=e||m.newPeers).length){var n=_.map(m.peers,(function(e){return e.id})),i=!1,a=0;_.forEach(e.splice(0),(function(e){n[e.id]||(m.peers.push(e),n[e.id]=e,i=!0,a++)})),i&&(console.debug("[network] Flushing {0} new peers...".format(a)),I(t))}},v=function(e,t,n){if(!e)return 0;var i=0;t>(e=e.toLowerCase()).length&&(t=e.length),i+=e.charCodeAt(0);for(var a=1;a<t;a++)i+=Math.pow(.001,a)*e.charCodeAt(a);return n?1e3-i:i},I=function(e){var t={};_.forEach(m.peers,(function(e){if(e.buid){var n=t[e.buid];n&&n.medianTime?!n.medianTime&&e.medianTime&&(n.medianTime=e.medianTime):(n={buid:e.buid,count:0,medianTime:e.medianTime},t[e.buid]=n),-1!=n.buid&&n.count++}})),_.forEach(_.values(t),(function(e){e.pct=100*e.count/m.peers.length}));var n=_.max(t,(function(e){return e.count}));_.forEach(m.peers,(function(e){e.hasMainConsensusBlock=e.buid==n.buid,e.hasConsensusBlock=e.buid&&!e.hasMainConsensusBlock&&t[e.buid].count>1,e.hasConsensusBlock&&(e.consensusBlockDelta=t[e.buid].medianTime-n.medianTime)})),m.peers=_.uniq(m.peers,!1,(function(e){return e.id})),m.peers=_.sortBy(m.peers,(function(e){var n=0;if(m.sort.type){var i=0;i+="name"==m.sort.type?v(e.name,10,m.sort.asc):0,i+="software"==m.sort.type?v(e.software,10,m.sort.asc):0,i+="api"==m.sort.type&&(e.hasEndpoint("ES_SUBSCRIPTION_API")&&(m.sort.asc?1:-1)||0)+(e.hasEndpoint("ES_USER_API")&&(m.sort.asc?.01:-.01)||0)+(e.isSsl()&&(m.sort.asc?.75:-.75)||0)||0,n+=1e10*(i+="doc_count"==m.sort.type&&e.docCount?m.sort.asc?1e9-e.docCount:e.docCount:0)}return n+=1e9*(e.online?1:0),n+=1e8*(e.hasMainConsensusBlock?1:0),n+=1e6*(e.hasConsensusBlock?t[e.buid].pct:0),m.expertMode?(n+=100*(e.difficulty?1e4-e.difficulty:0),n+=1*(e.uid?v(e.uid,2,!0):0)):(n+=100*(e.uid?v(e.uid,2,!0):0),n+=1*(e.uid?0:v(e.pubkey,2,!0))),-n})),!e||!n.buid||m.mainBlock&&m.mainBlock.buid===n.buid||(m.mainBlock=n,p.data.raise.mainBlockChanged(n)),p.data.raise.changed(m)},N=function(e,t){return t=t||{},s.ready().then((function(){O(),m.pod=e||s,m.filter=t.filter?angular.merge(m.filter,t.filter):m.filter,m.sort=t.sort?angular.merge(m.sort,t.sort):m.sort,m.expertMode=angular.isDefined(t.expertMode)?t.expertMode:m.expertMode,m.timeout=angular.isDefined(t.timeout)?t.timeout:r.timeout,console.info("[network] Starting network from [{0}]".format(m.pod.server));var n=Date.now();return m.listeners=[m.pod.websocket.block().onListener((function(e){if(e&&!m.loading){var t=[e.number,e.hash].join("-");-1===m.knownBlocks.indexOf(t)&&(console.debug("[network] Receiving block: "+t.substring(0,20)),m.knownBlocks.push(t),1===m.knownBlocks.length||(m.loading=!0,i((function(){console.debug("[network] new block received by WS: will refresh peers"),b()}),2e3,!1)))}})),m.pod.websocket.peer().onListener((function(e){if(e&&!m.loading){var t=[];g(e,t).then((function(e){e&&(t.length>0?h(t,!0):(console.debug("[network] [ws] Peers updated received"),I(!0)))}))}}))],b().then((function(e){return console.debug("[network] Started in "+(Date.now()-n)+"ms"),e}))}))},O=function(){m.pod&&(console.info("[network-service] Stopping..."),_.forEach(m.listeners,(function(e){e()})),m.listeners=[]),m.pod=null,m.listeners=[],m.peers.splice(0),m.filter={endpointFilter:null,online:!0},m.sort={type:null,asc:!0},m.expertMode=!1,m.knownBlocks=[],m.mainBlock=null,m.loading=!0,m.searchingPeersOnNetwork=!1,m.timeout=r.timeout,m.document={index:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.index||"user",type:o.data.plugins.es&&o.data.plugins.es.document&&o.data.plugins.es.document.type||"profile"}},R=function(e){return m.pod?N().then((function(){return t(e)})):t(e)};return p.registerEvent("data","changed"),p.registerEvent("data","mainBlockChanged"),p.registerEvent("data","rollback"),{id:e,data:m,start:N,close:O,hasPeers:function(){return m.peers&&m.peers.length>0},getPeers:function(){return m.peers},sort:function(e){e=e||{},m.filter=e.filter?angular.merge(m.filter,e.filter):m.filter,m.sort=e.sort?angular.merge(m.sort,e.sort):m.sort,I(!1)},getTrustedPeers:function(){return R((function(e,t){e(m.peers.reduce((function(e,t){return t.hasMainConsensusBlock&&t.uid?e.concat(t):e}),[]))}))},getKnownBlocks:function(){return m.knownBlocks},getMainBlockUid:function(){return R((function(e,t){e(m.mainBuid)}))},loadPeers:b,isBusy:function(){return m.loading},api:p}};var u=factory("default");return u.instance=factory,u}]),Q.$inject=["$scope","UIUtils","$q","Device"],ee.$inject=["$scope","$focus","$filter","UIUtils","SocialUtils"],te.$inject=["$scope"],Z.$inject=["$scope","$filter","$state","$focus","$timeout","$anchorScroll","UIUtils"],J.$inject=["$scope","UIUtils","$timeout","parameters"],ne.$inject=["$scope"],ie.$inject=["$scope","csConfig","esGeo","ModalUtils"],ae.$inject=["$scope","$q","csConfig","esGeo","ModalUtils"],oe.$inject=["$scope","$timeout","ModalUtils","csConfig","esGeo"],re.$inject=["$scope","$q","$translate","esGeo","parameters"],angular.module("cesium.es.common.controllers",["ngResource","cesium.es.services"]).controller("ESPicturesEditCtrl",Q).controller("ESPicturesEditCtrl",Q).controller("ESSocialsEditCtrl",ee).controller("ESSocialsViewCtrl",te).controller("ESCommentsCtrl",Z).controller("ESCategoryModalCtrl",J).controller("ESAvatarModalCtrl",ne).controller("ESPositionEditCtrl",ie).controller("ESLookupPositionCtrl",ae).controller("ESSearchPositionItemCtrl",oe).controller("ESSearchPositionModalCtrl",re),se.$inject=["$scope","esSettings","PluginService"],le.$inject=["$scope","$state","$controller","UIUtils","csWallet"],ce.$inject=["$scope","$q","$state","esSettings","csWallet"],angular.module("cesium.es.app.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&(e.extendState("app",{points:{"nav-buttons-right":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"},"menu-user":{templateUrl:"plugins/es/templates/menu_extend.html",controller:"ESMenuExtendCtrl"}}}),e.extendState("app",{points:{"profile-popover-user":{templateUrl:"plugins/es/templates/common/popover_profile_extend.html",controller:"ESProfilePopoverExtendCtrl"}}}))}]).controller("ESExtensionCtrl",se).controller("ESMenuExtendCtrl",le).controller("ESProfilePopoverExtendCtrl",ce),ue.$inject=["$scope","PluginService"],de.$inject=["$scope","$window","$q","$translate","$ionicPopup","UIUtils","Modals","csHttp","csConfig","csSettings","esHttp","esSettings"],angular.module("cesium.es.settings.controllers",["cesium.es.services"]).config(["PluginServiceProvider","$stateProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(e.extendState("app.settings",{points:{plugins:{templateUrl:"plugins/es/templates/settings/settings_extend.html",controller:"ESExtensionCtrl"}}}),t.state("app.es_settings",{url:"/settings/es",views:{menuContent:{templateUrl:"plugins/es/templates/settings/plugin_settings.html",controller:"ESPluginSettingsCtrl"}}}))}]).controller("ESExtendSettingsCtrl",ue).controller("ESPluginSettingsCtrl",de),angular.module("cesium.es.currency.controllers",["ngResource","cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.currency.tab_blocks",{points:{"nav-buttons":{templateUrl:"plugins/es/templates/currency/tab_blocks_extend.html",controller:"ESExtensionCtrl"}}})}]),pe.$inject=["$scope","$controller","$state","esModals","csWallet"],angular.module("cesium.es.wallet.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendStates(["app.view_wallet","app.view_wallet_by_id"],{points:{"after-general":{templateUrl:"plugins/es/templates/wallet/view_wallet_extend.html",controller:"ESWalletCtrl"}}}).extendState("app.view_wallets",{points:{"item-wallet":{templateUrl:"plugins/es/templates/wallet/item_wallet_extend.html",controller:"ESExtensionCtrl"}}})}]).controller("ESWalletCtrl",pe),me.$inject=["$scope","$controller","$state"],Ee.$inject=["$scope","$ionicPopover","$q","$controller","UIUtils","Modals","csWallet","esModals","esWallet","esInvitation"],angular.module("cesium.es.wot.controllers",["cesium.es.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&t.extendState("app.wot_lookup",{points:{tabs:{templateUrl:"plugins/es/templates/wot/lookup_extend.html",controller:"ESExtensionCtrl"}}}).extendState("app.wot_lookup_lg",{points:{top:{templateUrl:"plugins/es/templates/wot/lookup_lg_extend.html",controller:"ESWotLookupExtendCtrl"}}}).extendStates(["app.wot_identity","app.wot_identity_uid"],{points:{"after-general":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"},"buttons-top-fab":{templateUrl:"plugins/es/templates/wot/view_identity_extend.html",controller:"ESWotIdentityViewCtrl"}}}).extendStates(["app.wot_cert","app.wot_cert_lg","app.wallet_cert","app.wallet_cert_lg"],{points:{"nav-buttons":{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"},buttons:{templateUrl:"plugins/es/templates/wot/view_certifications_extend.html",controller:"ESWotIdentityViewCtrl"}}})}]).controller("ESWotLookupExtendCtrl",me).controller("ESWotIdentityViewCtrl",Ee),be.$inject=["$scope","$focus","$timeout","$filter","$controller","$location","$translate","$ionicPopover","Device","UIUtils","ModalUtils","BMA","csSettings","csWallet","esModals","esRegistry","esHttp"],ge.$inject=["$scope","$controller","$timeout","UIUtils","esModals","csWallet"],fe.$inject=["$scope","$rootScope","$state","$q","$timeout","$ionicPopover","$ionicHistory","$translate","$anchorScroll","csConfig","csWallet","esRegistry","UIUtils","esHttp"],_e.$inject=["$scope","$timeout","$state","$q","$ionicHistory","$focus","$translate","$controller","Device","UIUtils","ModalUtils","csWallet","esHttp","esRegistry"],angular.module("cesium.es.registry.controllers",["cesium.es.services","cesium.es.common.controllers"]).config(["$stateProvider",function(e){e.state("app.wot_lookup.tab_registry",{url:"/page?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{tab_registry:{templateUrl:"plugins/es/templates/registry/tabs/tab_registry.html",controller:"ESRegistryLookupCtrl"}},data:{large:"app.registry_lookup_lg",silentLocationChange:!0}}).state("app.registry_lookup_lg",{url:"/wot/page/lg?q&type&hash&category&location&issuer&reload&lat&lon&d&last",views:{menuContent:{templateUrl:"plugins/es/templates/registry/lookup_lg.html",controller:"ESRegistryLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.wallet_pages",{url:"/account/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.wallet_pages_by_id",{url:"/wallets/:id/pages?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_wallet_pages.html",controller:"ESWalletPagesCtrl"}},data:{login:!0,minData:!0,silentLocationChange:!0}}).state("app.view_page",{url:"/page/view/:id/:title?refresh",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.view_page_anchor",{url:"/page/view/:id/:title/:anchor",views:{menuContent:{templateUrl:"plugins/es/templates/registry/view_record.html",controller:"ESRegistryRecordViewCtrl"}}}).state("app.registry_add_record",{cache:!1,url:"/page/add/:type?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}}).state("app.registry_edit_record",{cache:!1,url:"/page/edit/:id/:title?wallet",views:{menuContent:{templateUrl:"plugins/es/templates/registry/edit_record.html",controller:"ESRegistryRecordEditCtrl"}},data:{auth:!0,minData:!0}})}]).controller("ESRegistryLookupCtrl",be).controller("ESWalletPagesCtrl",ge).controller("ESRegistryRecordViewCtrl",fe).controller("ESRegistryRecordEditCtrl",_e),Te.$inject=["$scope","$q","$timeout","$state","$focus","$translate","$controller","$ionicHistory","$ionicPopover","UIUtils","csWallet","esHttp","esProfile","ModalUtils","Device"],angular.module("cesium.es.profile.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_profile",{url:"/wallet/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{auth:!0}}).state("app.edit_profile_by_id",{url:"/wallets/:id/profile/edit",views:{menuContent:{templateUrl:"plugins/es/templates/user/edit_profile.html",controller:"ESViewEditProfileCtrl"}},cache:!1,data:{login:!0}})}]).controller("ESViewEditProfileCtrl",Te),he.$inject=["$scope","$state","$translate","$ionicHistory","$ionicPopover","$timeout","csWallet","esModals","UIUtils","esMessage"],ve.$inject=["$scope","$controller"],Ie.$inject=["$scope","$controller"],Ne.$inject=["$scope","$controller"],Oe.$inject=["$scope","Modals","UIUtils","csWallet","esHttp","esMessage","parameters"],Re.$inject=["$scope","$state","$timeout","$translate","$ionicHistory","$ionicPopover","UIUtils","esModals","esMessage","csWallet"],Ae.$inject=["$scope","UIUtils","$state","csWallet","esHttp","esMessage","esModals","$timeout"],angular.module("cesium.es.message.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.user_message",{url:"/user/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup.html"}}}).state("app.user_message.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_inbox"}}).state("app.user_message.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{auth:!0,minData:!0,large:"app.user_messages_lg_outbox"}}).state("app.user_messages_lg_inbox",{url:"/user/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_by_id",{url:"/wallets/:id/message",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_by_id.html"}}}).state("app.user_messages_by_id.tab_inbox",{url:"/inbox",views:{tab_inbox:{controller:"ESMessageInboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_inbox_by_id"}}).state("app.user_messages_by_id.tab_outbox",{url:"/outbox",views:{tab_outbox:{controller:"ESMessageOutboxListCtrl",templateUrl:"plugins/es/templates/message/tabs/tab_list.html"}},data:{large:"app.user_messages_lg_outbox_by_id"}}).state("app.user_messages_lg_inbox_by_id",{url:"/wallets/:id/message/lg/inbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageInboxListCtrl"}}}).state("app.user_messages_lg_outbox",{url:"/user/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_messages_lg_outbox_by_id",{url:"/wallets/:id/message/lg/outbox",views:{menuContent:{templateUrl:"plugins/es/templates/message/lookup_lg.html",controller:"ESMessageOutboxListCtrl"}}}).state("app.user_new_message",{cache:!1,url:"/user/message/new?pubkey&uid&title&content&isReply",views:{menuContent:{templateUrl:"plugins/es/templates/message/compose.html",controller:"ESMessageComposeCtrl"}}}).state("app.user_view_message",{cache:!1,url:"/user/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}},data:{auth:!0,minData:!0}}).state("app.user_view_message_by_id",{cache:!1,url:"/wallets/:id/message/view/:type/:messageId",views:{menuContent:{templateUrl:"plugins/es/templates/message/view_message.html",controller:"ESMessageViewCtrl"}}})}]).controller("ESMessageAbstractListCtrl",he).controller("ESMessageInboxListCtrl",ve).controller("ESMessageOutboxListCtrl",Ie).controller("ESMessageComposeCtrl",Ne).controller("ESMessageComposeModalCtrl",Oe).controller("ESMessageViewCtrl",Re).controller("PopoverMessageCtrl",Ae),Se.$inject=["$scope","$ionicPopover","$state","$timeout","UIUtils","esHttp","csWallet","esNotification"],Ce.$inject=["$scope","$timeout","$controller","$state","UIUtils","csWallet"],angular.module("cesium.es.notification.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_notifications",{url:"/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}}).state("app.view_notifications_by_id",{url:"/wallets/:id/notifications",views:{menuContent:{templateUrl:"plugins/es/templates/notification/view_notifications.html",controller:"NotificationsCtrl"}},data:{login:!0}})}]).controller("NotificationsCtrl",Se).controller("PopoverNotificationsCtrl",Ce),Le.$inject=["$scope","$controller","$ionicPopover","$location","UIUtils","esBlockchain"],angular.module("cesium.es.blockchain.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.lookup_blocks_currency",{url:"/currencies/:currency/blocks?q",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}}}).state("app.blockchain_search",{url:"/blockchain/search?q&type",views:{menuContent:{templateUrl:"plugins/es/templates/blockchain/lookup.html",controller:"ESBlockLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESBlockLookupCtrl",Le),De.$inject=["$scope","$state","$location","$ionicPopover","$window","$translate","esHttp","UIUtils","csConfig","csSettings","csCurrency","esNetwork","csWot"],Me.$inject=["$scope","$q","$window","$state","UIUtils","csWot","esHttp","csHttp","csSettings"],ye.$inject=["$scope","$controller","parameters"],Pe.$inject=["$scope","$controller"],ke.$inject=["$scope","$q","csSettings","csCurrency","csHttp","esHttp"],angular.module("cesium.es.network.controllers",["cesium.es.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.network",{points:{buttons:{templateUrl:"plugins/es/templates/network/view_network_extend.html",controller:"ESExtensionCtrl"}}})}]).config(["$stateProvider",function(e){e.state("app.es_network",{url:"/network/data?online&expert",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_network.html",controller:"ESNetworkLookupCtrl"}},data:{silentLocationChange:!0}}).state("app.view_es_peer",{url:"/data/network/peer/:server?ssl&tor",cache:!1,views:{menuContent:{templateUrl:"plugins/es/templates/network/view_peer.html",controller:"ESPeerViewCtrl"}},data:{preferHttp:!0}})}]).controller("ESNetworkLookupCtrl",De).controller("ESPeerViewCtrl",Me).controller("ESNetworkLookupModalCtrl",ye).controller("ESNetworkLookupPopoverCtrl",Pe).controller("ESPeerInfoPopoverCtrl",ke),we.$inject=["$scope","UIUtils","$state","csWallet","esGroup","ModalUtils"],Ue.$inject=["$scope","$state","$ionicPopover","$ionicHistory","$translate","UIUtils","csConfig","esGroup","csWallet"],Be.$inject=["$scope","esGroup","UIUtils","$state","$q","Device","$ionicHistory","ModalUtils","$focus","esHttp"],angular.module("cesium.es.group.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.groups",{url:"/group?type&location",views:{menuContent:{templateUrl:"plugins/es/templates/group/lookup.html",controller:"ESGroupListCtrl"}}}).state("app.add_group",{url:"/group/add/:type",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.edit_group",{url:"/group/edit/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/edit_group.html",controller:"ESGroupEditCtrl"}}}).state("app.view_group",{url:"/group/view/:id",views:{menuContent:{templateUrl:"plugins/es/templates/group/view_record.html",controller:"ESGroupViewCtrl"}}})}]).controller("ESGroupListCtrl",we).controller("ESGroupViewCtrl",Ue).controller("ESGroupEditCtrl",Be),xe.$inject=["$scope","$q","$ionicPopover","$state","$timeout","UIUtils","csWallet","esHttp","esModals","esNotification","esInvitation"],Fe.$inject=["$scope","$controller","csWallet"],He.$inject=["$scope","$q","Modals","UIUtils","csWallet","esHttp","esWallet","esInvitation","parameters"],angular.module("cesium.es.invitation.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.view_invitations",{url:"/invitations?id",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{auth:!0}}).state("app.view_invitations_by_id",{url:"/wallets/:id/invitations",views:{menuContent:{templateUrl:"plugins/es/templates/invitation/view_invitations.html",controller:"InvitationsCtrl"}},data:{login:!0}})}]).controller("InvitationsCtrl",xe).controller("PopoverInvitationCtrl",Fe).controller("ESNewInvitationModalCtrl",He),We.$inject=["$scope","$q","$ionicHistory","csWot","csWallet","UIUtils","ModalUtils","esSubscription"],Ve.$inject=["$scope","Modals","csSettings","esHttp","csWot","esModals","parameters"],angular.module("cesium.es.subscription.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.edit_subscriptions",{cache:!1,url:"/wallet/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{auth:!0,minData:!0}}).state("app.edit_subscriptions_by_id",{cache:!1,url:"/wallets/:id/subscriptions",views:{menuContent:{templateUrl:"plugins/es/templates/subscription/edit_subscriptions.html",controller:"ViewSubscriptionsCtrl"}},data:{login:!0,minData:!0}})}]).controller("ViewSubscriptionsCtrl",We).controller("ModalEmailSubscriptionsCtrl",Ve),Ge.$inject=["$scope","$ionicPopover","$location","$timeout","csSettings","csWallet","UIUtils","esHttp","esDocument"],Ye.$inject=["$scope","$controller","$timeout","$state"],angular.module("cesium.es.document.controllers",["cesium.es.services"]).config(["$stateProvider",function(e){e.state("app.document_search",{url:"/data/search/:index/:type?q",views:{menuContent:{templateUrl:"plugins/es/templates/document/lookup.html",controller:"ESDocumentLookupCtrl"}},data:{silentLocationChange:!0}})}]).controller("ESDocumentLookupCtrl",Ge).controller("ESLastDocumentsCtrl",Ye),angular.module("cesium.graph.plugin",["cesium.graph.services","cesium.graph.common.controllers","cesium.graph.blockchain.controllers","cesium.graph.network.controllers","cesium.graph.currency.controllers","cesium.graph.account.controllers","cesium.graph.docstats.controllers","cesium.graph.synchro.controllers"]),angular.module("cesium.graph.services",["cesium.graph.color.services","cesium.graph.data.services"]),angular.module("cesium.graph.data.services",["cesium.wot.services","cesium.es.http.services","cesium.es.wot.services"]).factory("gpData",["$rootScope","$q","$timeout","esHttp","BMA","csWot","csCache","esWot",function(e,t,n,i,a,o,r,s){var l=r.get("gpData-currency-",r.constants.SHORT),c={node:{},wot:{},blockchain:{},docstat:{},synchro:{execution:{}},raw:{block:{search:i.post("/:currency/block/_search")},blockstat:{search:i.post("/:currency/blockstat/_search")},movement:{search:i.post("/:currency/movement/_search")},user:{event:i.post("/user/event/_search?pretty")},docstat:{search:i.post("/docstat/record/_search")},synchro:{search:i.post("/:currency/synchro/_search")}},regex:{}};function u(e,t){return t<=0?e:e*Math.pow(10,t)}function d(e){return(e=e||{}).maxRangeSize=e.maxRangeSize||30,e.defaultTotalRangeCount=e.defaultTotalRangeCount||2*e.maxRangeSize,e.rangeDuration=e.rangeDuration||"day",e.endTime=e.endTime||moment().utc().add(1,e.rangeDuration).unix(),e.startTime=e.startTime||moment.unix(e.endTime).utc().subtract(e.defaultTotalRangeCount,e.rangeDuration).unix(),e.firstBlockTime&&e.startTime<e.firstBlockTime&&(e.startTime=e.firstBlockTime),e}return c.blockchain.countByIssuer=function(e){return c.raw.block.search({size:0,aggs:{blocksByIssuer:{terms:{field:"issuer",size:0}}}},{currency:e}).then((function(e){var t=e.aggregations;if(t.blocksByIssuer&&t.blocksByIssuer.buckets&&t.blocksByIssuer.buckets.length){var n={blockCount:e.hits.total};return n.data=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat(t.doc_count)}),[]),n.issuers=(t.blocksByIssuer.buckets||[]).reduce((function(e,t){return e.concat({pubkey:t.key})}),[]),o.extendAll(n.issuers).then((function(){return n.labels=n.issuers.reduce((function(e,t){return e.concat(t.name||t.uid||t.pubkey.substr(0,8))}),[]),n}))}}))},c.blockchain.withDividend=function(e,n){n=n||{};var i=!angular.isDefined(n.withCache)||n.withCache,o=[e,JSON.stringify(n)].join("-");if(i){var r=l.get(o);if(r){if(!r.blocks){var s=t.defer();return r.then((function(e){return s.resolve(e),e})),s.promise}return console.debug("[graph] monetaryMass for ["+e+"] found in cache"),t.when(r)}}var d={query:{filtered:{filter:{bool:{must:[{exists:{field:"dividend"}}]}}}},size:n.size||1e4,from:n.from||0,_source:["medianTime","number","dividend","monetaryMass","membersCount","unitbase"],sort:{medianTime:"asc"}},p=t.all([n.withCurrent?a.blockchain.current().catch((function(e){if(!e||e.ucode!=a.errorCodes.NO_CURRENT_BLOCK)throw e})):t.when(),c.raw.block.search(d,{currency:e})]).then((function(e){var t=e[0];if((e=e[1]).hits.total&&e.hits.hits.length){var n={};if(n.blocks=e.hits.hits.reduce((function(e,t){var n=t._source;return n.dividend=u(n.dividend,n.unitbase),delete n.unitbase,e.concat(n)}),[]),t){var i=n.blocks.length&&t.medianTime-n.blocks[n.blocks.length-1].medianTime;i&&i>=3600&&(t.dividend=u(t.dividend,t.unitbase),delete t.unitbase,n.blocks.push(t))}return n.times=n.blocks.reduce((function(e,t){return e.concat(t.medianTime)}),[]),l.put(o,n),n}}));return l.put(o,p),p},c.blockchain.txCount=function(e,n){n=d(n);for(var i=[],a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[];a.isBefore(o);)if(r.push({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),r.length===n.maxRangeSize||!a.isBefore(o)){var s={size:0,aggs:{tx:{range:{field:"medianTime",ranges:r},aggs:{txCount:{stats:{field:"txCount"}},txAmount:{stats:{field:"txAmount"}}}}}};n.issuer&&(s.query={bool:{filter:{term:{issuer:n.issuer}}}}),r=[],10==i.length?(console.error("Too many parallel jobs!"),a=moment.unix(n.endTime).utc()):i.push(c.raw.blockstat.search(s,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){return e.concat({from:t.from,to:t.to,count:t.txCount.sum||0,amount:t.txAmount.sum||0,avgByBlock:Math.round(100*t.txCount.avg)/100,maxByBlock:t.txCount.max})}),[])})))}return t.all(i).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),{count:_.pluck(e,"count"),avgByBlock:_.pluck(e,"avgByBlock"),maxByBlock:_.pluck(e,"maxByBlock"),amount:e.reduce((function(e,t){return e.concat(t.amount/100)}),[]),times:_.pluck(e,"from")}}))},c.node.blockCount=function(e,t){var n={size:0,query:{bool:{filter:{term:{issuer:t}}}}};return c.raw.block.search(n,{currency:e}).then((function(e){return e.hits.total}))},c.raw.movement.getByRange=function(e,t,n){if(!t)throw new Error("Missing 'pubkey' argument!");var i={size:0,query:{bool:{should:[{term:{recipient:t}},{term:{issuer:t}}]}},aggs:{tx:{range:{field:"medianTime",ranges:n},aggs:{received:{filter:{term:{recipient:t}},aggs:{received_stats:{stats:{field:"amount"}}}},sent:{filter:{term:{issuer:t}},aggs:{sent_stats:{stats:{field:"amount"}}}}}}}};return c.raw.movement.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.tx&&t.tx.buckets&&t.tx.buckets.length)return(t.tx.buckets||[]).reduce((function(e,t){var n=t.sent.sent_stats,i=t.received.received_stats;return e.concat({from:t.from,to:t.to,sent:n.sum?-n.sum/100:0,received:i.sum?i.sum/100:0})}),[])}))},c.raw.movement.getUds=function(e,t,n){var i={size:0,query:{bool:{should:[{exists:{field:"dividend"}}]}},aggs:{ud:{range:{field:"medianTime",ranges:t},aggs:{ud_stats:{stats:{field:"dividend"}},unitbase_stats:{stats:{field:"unitbase"}}}}}};return c.raw.block.search(i,{currency:e}).then((function(e){var t=e.aggregations;if(t.ud&&t.ud.buckets&&t.ud.buckets.length)return(t.ud.buckets||[]).reduce((function(e,t){return e[n[t.from]]=u(t.ud_stats.sum,t.unitbase_stats.min)/100,e}),{})}))},c.blockchain.movement=function(e,n){(n=d(n)).withUD=!angular.isDefined(n.withUD)||n.withUD;var i=[];if(n.withUD&&!n.memberships)return s.memberships(n.pubkey).then((function(t){return n.memberships=t||[],c.blockchain.movement(e,n)}));var a=moment.unix(n.startTime).utc().startOf(n.rangeDuration),o=moment.unix(n.endTime).utc().startOf(n.rangeDuration),r=[],l=[],u={},p=angular.copy(n.memberships).reverse(),m=p.pop();function E(e){if(r.push(e),m&&m.joinTime<e.to){var t={from:Math.max(m.joinTime,e.from),to:Math.min(m.leaveTime,e.to)};for(l.push(t),u[t.from]=e.from;m&&m.leaveTime&&m.leaveTime<e.to;)m=p.pop()}}for(E({from:0,to:a.unix()});a.isBefore(o);)E({from:a.unix(),to:a.add(1,n.rangeDuration).unix()}),(!i.length&&r.length==n.maxRangeSize+1||i.length&&r.length==n.maxRangeSize||!a.isBefore(o))&&(l.length?i.push(t.all([c.raw.movement.getUds(e,l,u),c.raw.movement.getByRange(e,n.pubkey,r)]).then((function(e){var t=e[0];return(e=e[1]).forEach((function(e){e.ud=t[e.from]||0})),e}))):i.push(c.raw.movement.getByRange(e,n.pubkey,r).then((function(e){return e.forEach((function(e){e.ud=0})),e}))),r=[]);return t.all(i).then((function(e){if((e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[])).length){var t=(e=_.sortBy(e,"from")).splice(0,1)[0],n=t.received+t.sent+t.ud;return{times:_.pluck(e,"from"),ud:_.pluck(e,"ud"),sent:_.pluck(e,"sent"),received:_.pluck(e,"received"),balance:e.reduce((function(e,t){return n+=t.received+t.sent+t.ud,e.concat(n)}),[])}}}))},c.wot.certifications=function(e){return e=d(e),o.load(e.pubkey).then((function(t){if(t){var n={};_.forEach(t.given_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].given++})),_.forEach(t.received_cert||[],(function(t){var i=moment.unix(t.time).utc().startOf(e.rangeDuration).unix();n[i]=n[i]||{time:i,given:0,received:0},n[i].received++})),n=_.sortBy(_.values(n),"time");var i={times:_.pluck(n,"time"),deltaGiven:_.pluck(n,"given"),deltaReceived:_.pluck(n,"received")},a=0;return i.given=i.deltaGiven.reduce((function(e,t){return a+=t,e.concat(a)}),[]),a=0,i.received=i.deltaReceived.reduce((function(e,t){return a+=t,e.concat(a)}),[]),i}}))},c.wot.memberships=function(e){var t={size:1e3,query:{bool:{filter:[{term:{recipient:(e=e||{}).pubkey}},{terms:{code:["MEMBER_JOIN","MEMBER_ACTIVE","MEMBER_LEAVE","MEMBER_EXCLUDE","MEMBER_REVOKE"]}}]}},sort:[{time:{order:"asc"}}],_source:["code","time"]};return c.raw.user.event(t).then((function(e){if(e.hits&&e.hits.total){var t,n=e.hits.hits.reduce((function(e,n){var i="MEMBER_JOIN"==n._source.code||"MEMBER_ACTIVE"==n._source.code;return i&&!t?t=n._source.time:!i&&t&&(e=e.concat({joinTime:t,leaveTime:n._source.time}),t=0),e}),[]);return t&&n.push({joinTime:t,leaveTime:moment().utc().unix()}),n}}))},c.docstat.get=function(e){e=d(e);for(var n=[],i=moment.unix(e.startTime).utc().startOf(e.rangeDuration),a=moment.unix(e.endTime).utc().startOf(e.rangeDuration),o=[],r=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to};return _.forEach(t.index&&t.index.buckets||[],(function(e){var t=e.key;_.forEach(e.type&&e.type.buckets||[],(function(e){var i=t+"_"+e.key;n[i]=e.max.value,l[i]||(l[i]=!0)}))})),e.concat(n)}),[])};i.isBefore(a);)if(o.push({from:i.unix(),to:i.add(1,e.rangeDuration).unix()}),o.length===e.maxRangeSize||!i.isBefore(a)){var s={size:0,aggs:{range:{range:{field:"time",ranges:o},aggs:{index:{terms:{field:"index",size:0},aggs:{type:{terms:{field:"indexType",size:0},aggs:{max:{max:{field:"count"}}}}}}}}}};o=[];var l={};10===n.length?(console.error("Too many parallel jobs!"),i=moment.unix(e.endTime).utc()):n.push(c.raw.docstat.search(s).then(r))}return t.all(n).then((function(e){return e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from"),_.keys(l).reduce((function(t,n){return t[n]=_.pluck(e,n),t}),{times:_.pluck(e,"from")})}))},c.synchro.execution.get=function(e){e=d(e);for(var n=[],i=moment.unix(e.startTime).utc().startOf(e.rangeDuration),a=moment.unix(e.endTime).utc().startOf(e.rangeDuration),o=[],r=function(e){var t=e.aggregations;return(t.range&&t.range.buckets||[]).reduce((function(e,t){var n={from:t.from,to:t.to,inserts:t.result.inserts.value,updates:t.result.inserts.value,deletes:t.result.deletes.value,duration:t.duration.value};return _.forEach(t.api&&t.api.buckets||[],(function(e){n[e.key]=e.peer_count&&e.peer_count.value||0,l[e.key]||(l[e.key]=!0)})),e.concat(n)}),[])};i.isBefore(a);)if(o.push({from:i.unix(),to:i.add(1,e.rangeDuration).unix()}),o.length===e.maxRangeSize||!i.isBefore(a)){var s={size:0,aggs:{range:{range:{field:"time",ranges:o},aggs:{api:{terms:{field:"api",size:0},aggs:{peer_count:{cardinality:{field:"peer"}}}},duration:{sum:{field:"executionTime"}},result:{nested:{path:"result"},aggs:{inserts:{sum:{field:"result.inserts"}},updates:{sum:{field:"result.updates"}},deletes:{sum:{field:"result.deletes"}}}}}}}};o=[];var l={};10===n.length?(console.error("Too many parallel jobs!"),i=moment.unix(e.endTime).utc()):n.push(c.raw.synchro.search(s,{currency:e.currency}).then(r))}return t.all(n).then((function(e){e=e.reduce((function(e,t){return t&&t.length?e.concat(t):e}),[]),e=_.sortBy(e,"from");var t={times:_.pluck(e,"from"),inserts:_.pluck(e,"inserts"),updates:_.pluck(e,"updates"),deletes:_.pluck(e,"deletes"),duration:_.pluck(e,"duration")};return _.keys(l).forEach((function(n){t[n]=_.pluck(e,n)})),t}))},c}]),angular.module("cesium.graph.color.services",[]).factory("gpColor",(function(){var e={css2Rgb:{white:[255,255,255],assertive:[239,71,58],calm:[17,193,243],positive:[56,126,245],balanced:[51,205,95],energized:[255,201,0],royal:[136,106,234],gray:[150,150,150],stable:[248,248,248]}},t={scale:{}};return t.scale.custom=function(e,t,n,i){function a(e){switch(e){case 0:return 0;case 1:return-1;case 2:return 0;case 3:return 1}}t=t>0&&t||.55;for(var o=Math.round(e/2.5),r=n&&3==n.length?angular.copy(n):[255,0,0],s=i&&3==i.length?angular.copy(i):[0,2,3],l=n?[Math.round(255/o),Math.round(255/o),Math.round(255/o)]:[Math.round((r[0]-50)/o),Math.round((255-r[1])/o),Math.round((255-r[2])/o)],c=[a(s[0]),a(s[1]),a(s[2])],u=[0,0,0],d=[],p=0;p<e;p++){for(var m=0;m<3;m++)r[m]+=c[m]*l[m],u[m]++,((r[m]<=0||r[m]>=255)&&0!==c[m]||0===c[m]&&u[m]==o)&&(r[m]<=0?r[m]=0:r[m]>=255&&(r[m]=255),s[m]=(s[m]+1)%4,c[m]=a(s[m]),u[m]=0);d.push("rgba("+r[0]+","+r[1]+","+r[2]+","+t+")")}return d},t.scale.default=function(){return t.scale.custom(25)},t.scale.fix=function(e,n){return Array.apply(null,Array(e||25)).map(String.prototype.valueOf,n||t.rgba.calm(.5))},t.rgba=_.mapObject(e.css2Rgb,(function(e){var t="rgba("+e.join(",")+",";return function(n){return!n||n<0?"rgb("+e.join(",")+")":t+n+")"}})),t.rgba.translucent=function(){return"rgb(0,0,0,0)"},t.constants=e,t})),je.$inject=["$scope","$filter","$ionicPopover","$ionicHistory","$state","csSettings","csCurrency","esHttp","UIUtils"],angular.module("cesium.graph.common.controllers",["cesium.services"]).controller("GpCurrencyAbstractCtrl",je),Ke.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor"],$e.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData"],angular.module("cesium.graph.blockchain.controllers",["chart.js","cesium.services","cesium.graph.services"]).config(["$stateProvider",function(e){e.state("app.blockchain_stats",{url:"/blockchain/stats?currency&stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}}).state("app.currency_blockchain_stats",{url:"/:currency/blockchain/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/blockchain/view_stats.html"}}})}]).controller("GpBlockchainTxCountCtrl",Ke).controller("GpBlockchainIssuersCtrl",$e),ze.$inject=["$scope","PluginService","esSettings"],qe.$inject=["$scope","$timeout","PluginService","esSettings","csCurrency","gpData"],angular.module("cesium.graph.network.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{buttons:{templateUrl:"plugins/graph/templates/network/view_network_extend.html",controller:"GpNetworkViewExtendCtrl"}}}).extendState("app.view_peer",{points:{general:{templateUrl:"plugins/graph/templates/network/view_peer_extend.html",controller:"GpPeerViewExtendCtrl"}}}).extendState("app.es_network",{points:{buttons:{templateUrl:"plugins/graph/templates/network/view_es_network_extend.html",controller:"GpNetworkViewExtendCtrl"}}}),e.state("app.view_peer_stats",{url:"/network/peer/:pubkey/stats",views:{menuContent:{templateUrl:"plugins/graph/templates/network/view_peer_stats.html",controller:"GpBlockchainTxCountCtrl"}}}))}]).controller("GpNetworkViewExtendCtrl",ze).controller("GpPeerViewExtendCtrl",qe),Xe.$inject=["$scope","PluginService","UIUtils","esSettings"],Qe.$inject=["$scope","$controller","$q","$state","$translate","UIUtils","gpColor","gpData","$filter","csSettings"],Je.$inject=["$scope","$q","$controller","$translate","gpColor","gpData","$filter","UIUtils"],Ze.$inject=["$scope","$controller","$q","$state","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.currency.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.currency.tab_parameters_stats",{url:"/parameters/stats",views:{"tab-parameters":{templateUrl:"plugins/graph/templates/currency/tabs/tab_parameters_stats.html"}}}).state("app.currency.tab_wot_stats",{url:"/community/stats",views:{"tab-wot":{templateUrl:"plugins/graph/templates/currency/tabs/tab_wot_stats.html",controller:"GpCurrencyMembersCountCtrl"}}}).state("app.currency.tab_network_stats",{url:"/network/stats",views:{"tab-network":{templateUrl:"plugins/graph/templates/currency/tabs/tab_network_stats.html"}}}).state("app.currency.tab_blocks_stats",{url:"/blocks/stats",views:{"tab-blocks":{templateUrl:"plugins/graph/templates/currency/tabs/tab_blocks_stats.html"}}}).state("app.currency_stats_lg",{url:"/currency/stats/lg?hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/currency/view_stats_lg.html"}}}),n.plugins&&n.plugins.es&&t.extendStates(["app.currency_name","app.currency","app.currency_name_lg","app.currency_lg"],{points:{"parameters-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"wot-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"},"network-actual":{templateUrl:"plugins/graph/templates/currency/view_currency_extend.html",controller:"GpCurrencyViewExtendCtrl"}}}).extendStates(["app.currency.tab_blocks"],{points:{buttons:{templateUrl:"plugins/graph/templates/currency/tab_blocks_extend.html",controller:"GpCurrencyViewExtendCtrl"}}})}]).controller("GpCurrencyViewExtendCtrl",Xe).controller("GpCurrencyMonetaryMassCtrl",Qe).controller("GpCurrencyDUCtrl",Je).controller("GpCurrencyMembersCountCtrl",Ze),et.$inject=["$scope","PluginService","esSettings","$state","csWallet"],tt.$inject=["$scope","$controller","$q","$state","$filter","$translate","csWot","gpData","gpColor","csWallet"],nt.$inject=["$scope","$controller","$filter","$state","csTx","gpColor"],it.$inject=["$scope","$controller","$q","$state","$filter","$translate","gpData","gpColor","csWallet"],angular.module("cesium.graph.account.controllers",["chart.js","cesium.graph.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.view_wallet_tx",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.view_wallet_tx_by_id",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_wallet_tx_extend.html",controller:"GpExtendCtrl"}}}).extendState("app.wot_identity",{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_extend.html",controller:"GpExtendCtrl"}}}).extendStates(["app.wot_identity_tx_uid","app.wot_identity_tx_uid_lg"],{points:{buttons:{templateUrl:"plugins/graph/templates/account/view_identity_tx_extend.html",controller:"GpExtendCtrl"}}}),e.state("app.view_wallet_stats",{url:"/wallet/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.view_wallet_stats_by_id",{url:"/wallets/:id/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}},data:{auth:!0}}).state("app.wot_identity_stats",{url:"/wot/:pubkey/stats?t&stepUnit&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/account/view_stats.html"}}}))}]).controller("GpExtendCtrl",et).controller("GpAccountBalanceCtrl",tt).controller("GpAccountSumTxCtrl",nt).controller("GpAccountCertificationCtrl",it),at.$inject=["$scope","$state","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.docstats.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_stats_lg",{url:"/data/stats?stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/docstats/view_stats.html",controller:"GpDocStatsCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpDocStatsCtrl",at),ot.$inject=["$scope","$controller","$q","$translate","gpColor","gpData","$filter"],angular.module("cesium.graph.synchro.controllers",["chart.js","cesium.graph.services","cesium.graph.common.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){e.state("app.doc_synchro_lg",{url:"/data/synchro?stepUnit&t&hide&scale",views:{menuContent:{templateUrl:"plugins/graph/templates/synchro/view_stats.html",controller:"GpSynchroCtrl"}}}),n.plugins&&n.plugins.es}]).controller("GpSynchroCtrl",ot),angular.module("cesium.map.plugin",["ui-leaflet","cesium.map.services","cesium.map.wot.controllers","cesium.map.registry.controllers","cesium.map.network.controllers","cesium.map.user.controllers","cesium.map.settings.controllers","cesium.map.help.controllers"]).config((function(){L.AwesomeMarkers.Icon.prototype.options.prefix="ion"})),angular.module("cesium.map.services",["cesium.map.wot.services","cesium.map.registry.services","cesium.map.utils.services"]),angular.module("cesium.map.wot.services",["cesium.services"]).factory("mapWot",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={min:["title","geoPoint"],profile:["title","geoPoint","avatar._content_type","address","city"]};function u(e){var t={bool:{}};if((e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest){var n={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}};console.debug("[map] [wot] Filtering on bounds: ",e.bounds),t.bool.must=t.bool.must||[],t.bool.must.push({geo_bounding_box:n})}return t}function d(t,i,a,o){var s=new RegExp("[,]"),l=[],c=o.hits.hits.reduce((function(e,o){var r=o._id,c=i[r],u=c&&{uid:c}||a[r]||{};if(u.pubkey=r,u.index=o._index,u.city=o._source.city,u.address=o._source.address,u.geoPoint=o._source.geoPoint,u.geoPoint&&u.geoPoint.lat&&u.geoPoint.lon)u.geoPoint.lat&&"string"==typeof u.geoPoint.lat&&(u.geoPoint.lat=parseFloat(u.geoPoint.lat.replace(s,"."))),u.geoPoint.lon&&"string"==typeof u.geoPoint.lon&&(u.geoPoint.lon=parseFloat(u.geoPoint.lon.replace(s,".")));else{if(!t.searchAddress||!u.city)return e;u.searchAddress=u.city&&(o._source.address?o._source.address+", ":"")+u.city,l.push(u)}return u.avatar=n.image.fromHit(o,"avatar"),u.name=o._source.title,u.name&&u.name.length>30&&(u.name=u.name.substr(0,27)+"..."),u.description=o._source.description&&n.util.parseAsHtml(o._source.description),u.geoPoint?e.concat(u):e}),[]);if(l.length){var u=Date.now();console.debug("[map] [wot] Search positions of {0} addresses...".format(l.length));var d=0;return e.all(l.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,c.push(t),d++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [wot] Resolved {0}/{1} addresses in {2}ms".format(d,l.length,Date.now()-u)),c}))}return e.when(c)}return s.raw={profile:{search:n.post("/user/profile/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!!angular.isDefined(t.fields.description)&&t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.profile.concat("description"):c.profile},i=s.raw.profile.search;return e.all([i(n),o.wot.member.uids(),o.wot.member.pending().then((function(e){return e.memberships&&e.memberships.length?e.memberships:[]}))]).then((function(a){var o=a[1],r=a[2];if(!(a=a[0]).hits||!a.hits.total)return[];r=r.reduce((function(e,t){if("IN"==t.membership&&!o[t.pubkey]){var n={uid:t.uid,pubkey:t.pubkey,block:t.blockNumber,blockHash:t.blockHash,pending:!0},i=e[t.pubkey];if(i&&n.block>i.block)return e;e[n.pubkey]=n}return e}),{});var s=[d(t,o,r,a)];for(n.from+=n.size;n.from<a.hits.total;)s.push(i(angular.copy(n)).then((function(e){return e.hits&&e.hits.hits.length?d(t,o,r,e):[]}))),n.from+=n.size;return e.all(s).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.registry.services",["cesium.services"]).factory("mapRegistry",["$q","csHttp","esHttp","esSettings","csWot","BMA","esGeo",function(e,t,n,i,a,o,r){var s=this,l=1e3,c={record:["title","geoPoint","avatar._content_type","address","city","type","pubkey","issuer","category"]};function u(e){var t={bool:{}};return(e=e||{}).searchAddress?t.bool.should=[{exists:{field:"geoPoint"}},{exists:{field:"city"}}]:t.bool.must=[{exists:{field:"geoPoint"}}],e.bounds&&e.bounds.northEast&&e.bounds.southWest&&(t.bool.should=t.bool.should||{},t.bool.should.geo_bounding_box={geoPoint:{top_left:{lat:Math.max(Math.min(e.bounds.northEast.lat,90),-90),lon:Math.max(Math.min(e.bounds.southWest.lng,180),-180)},bottom_right:{lat:Math.max(Math.min(e.bounds.southWest.lat,90),-90),lon:Math.max(Math.min(e.bounds.northEast.lng,180),-180)}}}),t}function d(t,i){var a=new RegExp("[,]"),o=[],s=i.hits.hits.reduce((function(e,i){var r=i._source.issuer,s={};if(s.issuer=r,s.pubkey=i._source.pubkey||s.issuer,s.id=i._id,s.index=i._index,s.type=i._source.type,s.category=i._source.category,s.category&&delete s.category.parent,s.city=i._source.city,s.address=i._source.address,s.geoPoint=i._source.geoPoint,s.geoPoint&&s.geoPoint.lat&&s.geoPoint.lon)s.geoPoint.lat&&"string"==typeof s.geoPoint.lat&&(s.geoPoint.lat=parseFloat(s.geoPoint.lat.replace(a,"."))),s.geoPoint.lon&&"string"==typeof s.geoPoint.lon&&(s.geoPoint.lon=parseFloat(s.geoPoint.lon.replace(a,".")));else{if(!t.searchAddress||!s.city)return e;s.searchAddress=s.city&&(i._source.address?i._source.address+", ":"")+s.city,o.push(s)}return s.avatar=n.image.fromHit(i,"avatar"),s.name=i._source.title,s.name&&s.name.length>30&&(s.name=s.name.substr(0,27)+"..."),s.description=i._source.description&&n.util.parseAsHtml(i._source.description),s.geoPoint?e.concat(s):e}),[]);if(o.length){var l=Date.now();console.debug("[map] [registry] Search positions of {0} addresses...".format(o.length));var c=0;return e.all(o.reduce((function(e,t){return t.city?e.concat(r.google.searchByAddress(t.searchAddress).then((function(e){e&&e.length&&(t.geoPoint=e[0],t.city==t.searchAddress&&(t.geoPoint.lon+=Math.random()/1e3,t.geoPoint.lat+=Math.random()/1e3),delete t.searchAddress,s.push(t),c++)})).catch((function(){}))):e}),[])).then((function(){return console.debug("[map] [registry] Resolved {0}/{1} addresses in {2}ms".format(c,o.length,Date.now()-l)),s}))}return e.when(s)}return s.raw={profile:{search:n.post("/page/record/_search"),mixedSearch:n.post("/user,page,group/profile,record/_search")}},{load:function(t){(t=t||{}).from=t.from||0,t.size=t.size||l,t.searchAddress=r.google.isEnable()&&(!angular.isDefined(t.searchAddress)||t.searchAddress),t.fields=t.fields||{},t.fields.description=!angular.isDefined(t.fields.description)||t.fields.description;var n={query:u(t),from:0,size:t.size,_source:t.fields.description?c.record.concat("description"):c.record},i=s.raw.profile.search,a=function(n){return n.hits&&n.hits.hits.length?d(t,n):e.when([])};return i(n).then((function(o){if(!o.hits||!o.hits.total)return[];var r=[d(t,o)];for(n.from+=n.size;n.from<o.hits.total;)r.push(i(angular.copy(n)).then(a)),n.from+=n.size;return e.all(r).then((function(e){return e.reduce((function(e,t){return e.concat(t)}),[])}))}))}}}]),angular.module("cesium.map.utils.services",["cesium.services","ui-leaflet"]).factory("MapUtils",["$timeout","$q","$translate","$window","leafletData","csConfig","csSettings","esGeo","UIUtils","leafletHelpers",function(e,t,n,i,a,o,r,s,l,c){var u=o.plugins&&o.plugins.es&&o.plugins.es.googleApiKey,d={locations:{FRANCE:{lat:46.5588603,lng:4.229736328124999,zoom:6}},LOCALIZE_ZOOM:15},p={cache:{}};function m(e,t){return c.isSameCenterOnMap(e,t)}function E(e,t){if(!e||!t)throw"Illegal arguments";if(e._container)e._container.id=t;else{var n=e.onAdd;e.onAdd=function(e){var i=n.call(this,e);return i.id=t,i}}}return d.DEFAULT_CENTER=r.data&&r.data.plugins&&r.data.plugins.map&&r.data.plugins.map.center||d.locations.FRANCE,{map:function(e){var t;return(e=angular.merge({center:angular.copy(d.DEFAULT_CENTER),cache:!1,defaults:{scrollWheelZoom:!0,tileLayerOptions:{attribution:'© <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'}},layers:{baselayers:{osm:{name:"OpenStreetMap",type:"xyz",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",layerOptions:{subdomains:["a","b","c"],attribution:'&copy; <a target="_blank" href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',continuousWorld:!0}},google:{name:"Google map",type:"xyz",url:"https://{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&key="+u,layerOptions:{subdomains:["mt0","mt1","mt2","mt3"],attribution:'&copy; <a target="_blank"  href="https://www.google.com/intl/fr_fr/help/terms_maps.html">Google</a>',continuousWorld:!0}}}},controls:{custom:[]}},e||{})).cache&&p.cache[e.cache]&&(console.debug("[map] Restoring map from cache :",p.cache[e.cache]),e=angular.merge(e,p.cache[e.cache])),e.layers.overlays&&(t=_.keys(e.layers.overlays).reduce((function(t,n){return t.concat(e.layers.overlays[n].name)}),[]),n(t).then((function(t){_.keys(e.layers.overlays||{}).forEach((function(n){e.layers.overlays[n].name=t[e.layers.overlays[n].name]}))}))),e},updateCenter:function(n,i){return m(i,n)?t.when():e((function(){n.invalidateSize(),n._resetView(i,i.zoom,!0)}),300)},center:{get:function(e){var t;if(e&&(e.lat&&((t={}).lat=parseFloat(e.lat)),(e.lng||e.lon)&&((t=t||{}).lng=parseFloat(e.lng||e.lon)),e.zoom&&((t=t||{}).zoom=parseFloat(e.zoom)),t))return c.isValidCenter(t)||(t=angular.merge({},d.DEFAULT_CENTER,t)),t},isSame:m,isDefault:function(e){var t=d.DEFAULT_CENTER;return!(!e.lat||!e.lng||t.lat.toFixed(4)!==e.lat.toFixed(4)||t.lng.toFixed(4)!==e.lng.toFixed(4)||t.zoom!==e.zoom)}},control:{search:function(e){(e=e||{}).initial=!!angular.isDefined(e.initial)&&e.initial,e.marker=!!angular.isDefined(e.marker)&&e.marker,e.propertyName=angular.isDefined(e.propertyName)?e.propertyName:"title",e.position=angular.isDefined(e.position)?e.position:"topleft",e.zoom=angular.isDefined(e.zoom)?e.zoom:d.LOCALIZE_ZOOM,e.markerLocation=!angular.isDefined(e.markerLocation)||e.markerLocation;var t=n(["MAP.COMMON.SEARCH_DOTS","COMMON.SEARCH_NO_RESULT"]);return{addTo:function(n){t.then((function(t){var i=L.control.search(angular.merge(e,{textPlaceholder:t["MAP.COMMON.SEARCH_DOTS"],textErr:t["COMMON.SEARCH_NO_RESULT"]}));e.id&&E(i,e.id),i.addTo(n)}))}}},localizeMe:function(e){return e=e||{},L.easyButton({position:"topleft",type:"replace",leafletClasses:!0,states:[{stateName:"locate-me",onClick:function(e,t){s.point.current().then((function(e){t.setView({lat:e.lat,lng:e.lon},d.LOCALIZE_ZOOM)})).catch((function(e){console.error(e),l.alert.error("MAP.ERROR.LOCALIZE_ME_FAILED")}))},title:e.title,icon:"icon ion-android-locate"}]})},setId:E},cache:{bind:function(e,t,n){if(n=n||{},!t||!n.layers||!e)throw"Illegal arguments";if(n.cache){if(n.layers.overlays){var o=_.keys(n.layers.overlays);p.cache[n.cache]||(p.cache[n.cache]={center:n.center,bounds:n.bounds,layers:angular.copy(n.layers)}),a.getMap(t).then((function(){_(i.document.querySelectorAll("#{0} .leaflet-control-layers-overlays input[type=checkbox]".format(t))).forEach((function(e,t){var i=o[t],a=n.layers.overlays[i].visible;e.addEventListener("change",(function(e){a=!a,p.cache[n.cache].layers.overlays[i].visible=a}))}))}))}e.$on("$ionicView.leave",(function(){p.cache[n.cache].center=n.center,p.cache[n.cache].bounds=n.bounds}))}}},constants:d}}]),rt.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","$controller","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapWot"],angular.module("cesium.map.wot.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_search",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_wot_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.wot_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/wot/lookup_lg_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_wot_map",{url:"/wot/map?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/wot/view_map.html",controller:"MapWotViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapWotViewCtrl",rt),st.$inject=["$scope","$filter","$templateCache","$interpolate","$timeout","$location","$translate","$q","ionicReady","leafletData","UIUtils","csSettings","csWallet","MapUtils","mapRegistry"],angular.module("cesium.map.registry.controllers",["cesium.services","cesium.map.services","cesium.map.help.controllers"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.wot_lookup.tab_registry",{points:{"nav-buttons":{template:'<button class="button button-icon button-clear" ui-sref="app.view_registry_map"><i class="icon ion-ios-location"></i></button>'}}}).extendState("app.registry_lookup_lg",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/registry/lookup_lg_extend.html"}}}),e.state("app.view_registry_map",{url:"/wot/pagemap?c&center",views:{menuContent:{templateUrl:"plugins/map/templates/registry/view_map.html",controller:"MapRegistryViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapRegistryViewCtrl",st),angular.module("cesium.map.network.controllers",["cesium.services","cesium.map.services"]).config(["$stateProvider","PluginServiceProvider","csConfig",function(e,t,n){n.plugins&&n.plugins.es&&(t.extendState("app.network",{points:{"filter-buttons":{templateUrl:"plugins/map/templates/network/lookup_extend.html",controller:"ESExtensionCtrl"}}}),e.state("app.view_network_map",{url:"/network/map?c",views:{menuContent:{templateUrl:"plugins/map/templates/network/view_map.html",controller:"MapNetworkViewCtrl"}},data:{silentLocationChange:!0}}))}]).controller("MapNetworkViewCtrl",["$scope","$controller","$q","$interpolate","$translate","$filter","$templateCache","$timeout","$location","esGeo","UIUtils","csNetwork","MapUtils","leafletData",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){angular.extend(this,t("NetworkLookupCtrl",{$scope:e}));var E,b,g=o("formatPubkey"),f={member:{type:"awesomeMarker",icon:"person",markerColor:"green",iconColor:"white"},mirror:{type:"awesomeMarker",icon:"radio-waves",markerColor:"green",iconColor:"white"},offline:{type:"awesomeMarker",icon:"ion-close-circled",markerColor:"red",iconColor:"white"}},T={},h=0;E='<div class="item item-peer item-icon-left no-border" ng-click="selectPeer(peer)">',E+=r.get("templates/network/item_content_peer.html"),E=(E+="</div>").replace(/[:]rebind[:]|[:][:]/g,""),e.loading=!0,e.mapId="map-network-"+e.$id,e.helptipPrefix="helptip-"+e.mapId,e.map=p.map({cache:"map-network",layers:{overlays:{member:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MEMBER",visible:!0},mirror:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.MIRROR",visible:!0},offline:{type:"featureGroup",name:"MAP.NETWORK.VIEW.LAYER.OFFLINE",visible:!1}}},bounds:{},loading:!0,markers:{}});var v=e.enter;e.enter=function(t,n){if(!e.loading)return e.updateLocationHref(),v(t,n);if(n.stateParams&&n.stateParams.c){var i=n.stateParams.c.split(":");e.map.center.lat=parseFloat(i[0]),e.map.center.lng=parseFloat(i[1]),e.map.center.zoom=parseInt(i[2])}e.$watch("map.center",(function(){if(!e.map.loading)return s((function(){e.updateLocationHref()}),300)}),!0),e.loadMap().then((function(e){return e.fire("dataloading"),v(t,n)}))},e.$on("$ionicView.enter",e.enter);var I=e.computeOptions;e.computeOptions=function(){var e=I();return e.filter.online="all",e},e.loadMap=function(){return m.getMap(e.mapId).then((function(t){if(!e.map.loading)return t;L.Control.loading({position:"topright",separate:!0}).addTo(t),b=L.layerGroup({visible:!1});var n=i(r.get("plugins/map/templates/network/item_search_tooltip.html"));p.control.search({layer:b,propertyName:"title",buildTip:function(e,t){return n(t.layer.options)},moveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e);var i=e.layer&&e.layer.options&&e.layer.options.popupMarkerId;i&&s((function(){var e=_.find(n._layers,(function(e){return e.options&&e.options.id===i}));e&&e.openPopup()}),400)},firstTipSubmit:!0,tooltipLimit:50}).addTo(t);var a=function(e){return e.options&&e.options.icon.options.markerColor},o=L.markerClusterGroup({disableClusteringAtZoom:p.constants.LOCALIZE_ZOOM,maxClusterRadius:65,showCoverageOnHover:!1,iconCreateFunction:function(e){var t=_.countBy(e.getAllChildMarkers(),a),n=t.green?"green":t.lightgreen?"lightgreen":t.lightgray?"lightgray":"red",i=e.getChildCount(),o="marker-cluster "+n+" marker-cluster-";return o+=i<10?"small":i<100?"medium":"large",L.divIcon({html:"<div><span>"+i+"</span></div>",className:o,iconSize:new L.Point(40,40)})}});return t.eachLayer((function(e){e.addLayer&&angular.extend(e,L.featureGroup.subGroup(o))})),c.point.ip.license&&(o.getAttribution=function(){return'<a target="_blank" href="{0}">{1}</a>'.format(c.point.ip.license.url,c.point.ip.license.name)}),o.addTo(t),e.map.loading=!1,t}))},e.updateView=function(t){console.debug("[map] [peers] Updating UI"),e.search.loading=!e.networkStarted||d.isBusy();var n=angular.copy(T);_.forEach(t.peers||[],(function(t){if(!t.isTor()){var i=T[t.id];if(i&&e.map.markers[i])return e.updateMarker(e.map.markers[i],t),void delete n[t.id];var a=t.bma,o=t.hasValid4(a)?a.ipv4:a.dns||a.ipv6;c.point.ip.search(o).then((function(n){i=""+h++;var o=e.updateMarker({position:n,getMessageScope:function(){var n=e.$new();return n.peer=t,n},draggable:!1,focus:!1,message:E,id:i},t);e.map.markers[i]=o,T[t.id]=i;var r,s=(t.dns||t.server)+(t.uid?" | "+(t.name||t.uid):"")+" | "+g(t.pubkey);a.ipv4&&!(t.dns||t.server).startsWith(a.ipv4)&&(r=a.ipv4,s+=" | "+a.ipv4),b.addLayer(new L.Marker({lat:n.lat,lng:n.lng},{opacity:0,icon:L.divIcon({className:"ng-hide",iconSize:L.point(0,0)}),title:s,peer:angular.extend({ipv4:r},t),popupMarkerId:i}))})).catch((function(e){console.debug("No position found for address ["+o+"]",e)}))}})),_.forEach(_.keys(n),(function(e){delete T[e]})),_.forEach(_.values(n),(function(t){delete e.map.markers[t]})),e.search.loading||m.getMap(e.mapId).then((function(t){e.loading=!1,t.fire("dataload")}))},e.updateMarker=function(e,t){return e.layer=t.online?t.uid?"member":"mirror":"offline",e.icon=angular.copy(f[e.layer]),e.opacity=(t.online,1),e.title=t.dns||t.server,t.online&&!t.hasMainConsensusBlock&&(e.icon.markerColor=t.hasConsensusBlock?"lightgreen":"lightgray",e.opacity=t.hasConsensusBlock?.9:.8),e.lng||(e.lng=e.position.lng+Math.random()/1e3,e.lat=e.position.lat+Math.random()/1e3),e},e.updateLocationHref=function(t){(l.search()||{}).c&&p.center.isDefault(e.map.center)||(t=t||"{0}:{1}:{2}".format(e.map.center.lat.toFixed(4),e.map.center.lng.toFixed(4),e.map.center.zoom),l.search({c:t}).replace())},e.$on("centerUrlHash",(function(t,n){if(!e.loading)return s((function(){e.updateLocationHref(n)}),300)})),e.showHelpTip=function(){}}]),angular.module("cesium.map.user.controllers",["cesium.services","cesium.map.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.edit_profile",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}}).extendState("app.edit_profile_by_id",{points:{"after-position":{templateUrl:"plugins/map/templates/user/edit_profile_extend.html",controller:"MapEditProfileViewCtrl"}}})}]).controller("MapEditProfileViewCtrl",["$scope","$timeout","$q","MapUtils","$translate",function(e,t,n,i,a){var o=[];e.mapId="map-user-profile-"+e.$id,e.map=i.map({markers:{},center:{zoom:13}}),e.loading=!0,e.mapId="map-profile-"+e.$id,e.enter=function(n,i){return e.formData&&(e.formData.title||e.formData.geoPoint)?(e.loading=!0,e.load()):t(e.enter,500)},e.$on("$csExtension.enter",e.enter),e.$on("$ionicParentView.enter",e.enter),e.load=function(){return e.formData.geoPoint&&e.formData.geoPoint.lat&&e.formData.geoPoint.lon?e.map.markers.geoPoint?(e.map.markers.geoPoint.lat=e.formData.geoPoint.lat,void(e.map.markers.geoPoint.lng=e.formData.geoPoint.lon)):a("MAP.PROFILE.MARKER_HELP").then((function(t){e.map.markers.geoPoint={message:t,lat:parseFloat(e.formData.geoPoint.lat),lng:parseFloat(e.formData.geoPoint.lon),draggable:!0,focus:!0},angular.extend(e.map.center,{lat:e.map.markers.geoPoint.lat,lng:e.map.markers.geoPoint.lng});var n=e.$watch("map.markers.geoPoint",(function(){e.loading||e.map.markers.geoPoint&&e.map.markers.geoPoint.lat&&e.map.markers.geoPoint.lng&&(e.formData.geoPoint=e.formData.geoPoint||{},e.formData.geoPoint.lat=e.map.markers.geoPoint.lat,e.formData.geoPoint.lon=e.map.markers.geoPoint.lng)}),!0);o.push(n),e.ionItemClass||(e.ionItemClass="done in"),e.loading=!1})):(_.forEach(o,(function(e){e()})),o=[],delete e.map.markers.geoPoint,e.loading=!1,n.when())},e.$watch("formData.geoPoint",(function(){e.loading||e.load()}),!0)}]),angular.module("cesium.map.settings.controllers",["cesium.services"]).config(["PluginServiceProvider","csConfig",function(e,t){t.plugins&&t.plugins.es&&e.extendState("app.es_settings",{points:{common:{templateUrl:"plugins/map/templates/settings/es_settings_extend.html"}}})}]),lt.$inject=["$scope","$controller"],angular.module("cesium.map.help.controllers",["cesium.services"]).controller("MapHelpTipCtrl",lt),angular.module("cesium",["ionic","ionic-material","ngMessages","ngSanitize","pascalprecht.translate","ngApi","angular-cache","angular.screenmatch","angular.bind.notifier","ImageCropper","ion-digit-keyboard","FBAngular","ngCordova","cesium.plugins","cesium.filters","cesium.config","cesium.platform","cesium.controllers","cesium.templates","cesium.translations","cesium.components","cesium.directives"]).config(["$urlRouterProvider",function(e){e.deferIntercept()}]).run(["$rootScope","$translate","$state","$window","$urlRouter","ionicReady","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d){u.disableChangeState();var p=!1;e.$on("$stateChangeStart",(function(t,i,a,o){if(!t.defaultPrevented&&i.data&&!e.tour&&!t.currentScope.tour){if(!p){var r,l=a.wallet&&"default"!=a.wallet?d.children.get(a.wallet):d;return a.wallet&&!l&&console.warn("[app] Unable to find the children wallet: "+a.wallet),i.data.auth&&!l.isAuth()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.auth(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):i.data.login&&!d.isLogin()?(t.preventDefault(),r=i.data.minData?{minData:!0}:void 0,p=!0,d.login(r).then((function(){return p=!1,n.go(i.name,a)})).catch((function(e){if(p=!1,"CANCELLED"===e&&!n.current.name)return n.go("app.home")}))):!i.data.login&&!i.data.auth||(r=i.data.minData?{minData:!0}:void 0,l.isDataLoaded(r))?void 0:(t.preventDefault(),r&&r.minData||s.loading.show(),l.loadData(r).then((function(){return p=!1,n.go(i.name,a)})))}t.preventDefault()}})),d.api.data.on.unauth(e,(function(){n.current&&n.current.data&&n.current.data.auth&&n.go("app.home")})),e.$on("$locationChangeSuccess",(function(e,t,i){n.current.data&&!0===n.current.data.silentLocationChange&&i&&i.split("?")[0]===t.split("?")[0]&&e.preventDefault()})),a.listen(),c.start(),o().then((function(){ionic.Platform.isIOS()&&window.StatusBar&&StatusBar.styleLightContent()}))}]),window.ionic.Platform.ready((function(){angular.bootstrap(document,["cesium"])})),angular.module("cesium.components",[]).component("csBadgeCertification",{bindings:{requirements:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_certification_count.html"}).component("csBadgeGivenCertification",{bindings:{identity:"=",parameters:"<",csId:"@"},templateUrl:"templates/common/badge_given_certification_count.html"}).component("csSortIcon",{bindings:{asc:"=",sort:"=",toggle:"<"},template:'<i class="ion-chevron-up" ng-class="{gray: !$ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: 5px; top:-5px; font-size: 9px;"></i><i class="ion-chevron-down" ng-class="{gray : $ctrl.asc || $ctrl.sort != $ctrl.toggle}" style="position: relative; left: -2.6px; top: 3px; font-size: 9px;"></i>'}),angular.module("cesium.directives",[]).directive("compareTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.compareTo&&(i.$validators.compareTo=function(t){return t==e.$eval(n.compareTo)},e.$watch(n.compareTo,(function(){i.$validate()})))}}})).directive("differentTo",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.differentTo&&(i.$validators.differentTo=function(t){return t!=e.$eval(n.differentTo)},e.$watch(n.differentTo,(function(){i.$validate()})))}}})).directive("numberFloat",(function(){var e=new RegExp("^[0-9]+([.,][0-9]+)?$");return{require:"?ngModel",link:function(t,n,i,a){a&&(a.$validators.numberFloat=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("numberInt",(function(){var e=new RegExp("^[0-9]+$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.numberInt=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("email",(function(){var e=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$");return{require:"ngModel",link:function(t,n,i,a){a&&(a.$validators.email=function(t){return a.$isEmpty(t)||e.test(t)})}}})).directive("requiredIf",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&n.requiredIf&&(i.$validators.required=function(t){return!e.$eval(n.requiredIf)||!i.$isEmpty(t)},e.$watch(n.requiredIf,(function(){i.$validate()})))}}})).directive("geoPoint",(function(){return{require:"?ngModel",link:function(e,t,n,i){i&&(i.$validators.geoPoint=function(e){return i.$isEmpty(e)||angular.isDefined(e.lat)&&angular.isDefined(e.lon)||angular.isUndefined(e.lat)&&angular.isUndefined(e.lon)})}}})).directive("copyOnClick",["$window","Device","UIUtils",function(e,t,n){return{restrict:"A",link:function(e,i,a){var o=function(i){var o=a.copyOnClick;if(o&&t.clipboard.enable)t.clipboard.copy(o).then((function(){n.toast.show("INFO.COPY_TO_CLIPBOARD_DONE")})).catch(n.onError("ERROR.COPY_CLIPBOARD"));else if(o){var r=o&&o.indexOf("\n")>=0?o.split("\n").length:1;n.popover.show(i,{scope:e,templateUrl:"templates/common/popover_copy.html",bindings:{value:a.copyOnClick,rows:r},autoselect:".popover-copy "+(r<=1?"input":"textarea")})}};i.bind("click",o),i.bind("hold",o)}}}]).directive("selectOnClick",["$window",function(e){return{restrict:"A",link:function(t,n,i){n.bind("click",(function(){e.getSelection&&!e.getSelection().toString()&&this.value&&this.setSelectionRange(0,this.value.length)}))}}}]).directive("activeLink",["$location",function(e){return{restrict:"A",link:function(t,n,i,a){var o,r=i.activeLink;i.activeLinkPathPrefix?(o=i.activeLinkPathPrefix.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&0===e.indexOf(o)?n.addClass(r):n.removeClass(r)}))):i.href&&(o=i.href.substring(1),t.location=e,t.$watch("location.path()",(function(e){e&&e==o?n.addClass(r):n.removeClass(r)})))}}}]).directive("input",["$timeout",function(e){return{restrict:"E",scope:{returnClose:"=",onReturn:"&",onFocus:"&",onBlur:"&"},link:function(t,n,i){n.bind("focus",(function(n){t.onFocus&&e((function(){t.onFocus()}))})),n.bind("blur",(function(n){t.onBlur&&e((function(){t.onBlur()}))})),n.bind("keydown",(function(i){13==i.which&&(t.returnClose&&n[0].blur(),t.onReturn&&e((function(){t.onReturn()})))}))}}}]).directive("trustAsHtml",["$sce","$compile","$parse",function(e,t,n){return{restrict:"A",compile:function(i,a){
+var o=n(a.trustAsHtml),r=n(a.trustAsHtml,(function(e){return(e||"").toString()}));return t.$$addBindingClass(i),function(n,i,a){t.$$addBindingInfo(i,a.trustAsHtml),n.$watch(r,(function(){i.html(e.getTrustedHtml(e.trustAsHtml(o(n)))||""),t(i.contents())(n)}))}}}}]).directive("modalClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){n.closeModal&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.closeModal())}))}}}]).directive("csExtensionPoint",["$state","$compile","$controller","$templateCache","PluginService",function(e,t,n,i,a){return{restrict:"E",compile:function(e,t){if(angular.isDefined(t.name)){var n=a.extensions.points.getActivesByName(t.name);n.length>0&&(e.html(""),_.forEach(n,(function(t){e.append(function(e){var t=e.templateUrl?i.get(e.templateUrl):e.template;return t?(e.controller&&(t='<ng-controller ng-controller="'+e.controller+'">'+t+"</div>"),t):(console.error("[plugin] Could not found template for extension :"+(e.templateUrl?e.templateUrl:e.template)),"")}(t))})))}return{pre:function(e,t,n){a.extensions.points.current.set(n.name)},post:function(){a.extensions.points.current.set()}}},scope:{content:"="}}}]).directive("onReadFile",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.onReadFile);n.on("change",(function(e){var n=new FileReader,i={name:this.files[0].name,size:this.files[0].size,type:this.files[0].type};n.onload=function(e){t.$applyAsync((function(){a(t,{file:{fileContent:e.target.result,fileData:i}})}))},n.readAsText((e.srcElement||e.target).files[0])}))}}}]).directive("dropzone",["$parse",function(e){return{restrict:"A",scope:!1,link:function(t,n,i){var a=e(i.dropzone);n.bind("dragover",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragenter",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("dragleave",(function(e){e.stopPropagation(),e.preventDefault()})),n.bind("drop",(function(e){e.stopPropagation(),e.preventDefault();var n={name:e.dataTransfer.files[0].name,size:e.dataTransfer.files[0].size,type:e.dataTransfer.files[0].type},i=new FileReader;i.onload=function(e){t.$apply((function(){a(t,{file:{fileContent:e.target.result,fileData:n}})}))},i.readAsText(e.dataTransfer.files[0])}))}}}]).directive("windowExitUnauth",["$window","csSettings","csWallet",function(e,t,n){return{restrict:"AE",link:function(i,a){(e.attachEvent||e.addEventListener)(e.attachEvent?"onunload":"unload",(function(e){if(t.data&&t.data.keepAuthIdle!=t.constants.KEEP_AUTH_IDLE_SESSION)return n.unauth()}))}}}]),angular.module("cesium.filters",["cesium.config","cesium.platform","pascalprecht.translate","cesium.translations"]).factory("filterTranslations",["$rootScope","$q","csPlatform","csSettings","csCurrency","$translate","$timeout",function(e,t,n,i,a,o,r){var s,l=!1,c=this;function u(){return console.debug("[filter] Loading translations for locale [{0}]".format(o.use())),o(["COMMON.DATE_PATTERN","COMMON.DATE_SHORT_PATTERN","COMMON.UD","COMMON.DAYS"]).then((function(e){c.DATE_PATTERN=e["COMMON.DATE_PATTERN"],"COMMON.DATE_PATTERN"===c.DATE_PATTERN&&(c.DATE_PATTERN="YYYY-MM-DD HH:mm"),c.DATE_SHORT_PATTERN=e["COMMON.DATE_SHORT_PATTERN"],"COMMON.DATE_SHORT_PATTERN"===c.DATE_SHORT_PATTERN&&(c.DATE_SHORT_PATTERN="YYYY-MM-DD"),c.DATE_MONTH_YEAR_PATTERN=e["COMMON.DATE_MONTH_YEAR_PATTERN"],"COMMON.DATE_MONTH_YEAR_PATTERN"===c.DATE_MONTH_YEAR_PATTERN&&(c.DATE_MONTH_YEAR_PATTERN="MMM YY"),c.DAYS=e["COMMON.DAYS"],"COMMON.DAYS"===c.DAYS&&(c.DAYS="days"),c.UD=e["COMMON.UD"],"COMMON.UD"===c.UD&&(c.UD="UD")}))}function d(){console.debug("[filter] Computing constants from currency parameters"),c.MEDIAN_TIME_OFFSET=a.data.medianTimeOffset||c.MEDIAN_TIME_OFFSET}return c.MEDIAN_TIME_OFFSET=3600,c.ready=function(){return l?t.when():s||c.start()},c.start=function(){return s=n.ready().then(u).then((function(){d(),l=!0,i.api.locale.on.changed(e,u,this),a.api.data.on.ready(e,d,this)}))},r((function(){c.start()})),c}]).filter("formatInteger",(function(){return function(e){return e?e<1e7?numeral(e).format("0,0"):numeral(e).format("0,0.000 a"):"0"}})).filter("formatAmount",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a="0,0.0"+Array(e.decimalCount||4).join("0"),o=i("currencySymbol"),r=a+"0",s=1/Math.pow(10,(e.decimalCount||4)+1);return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var a=e/i;return a=Math.abs(e)<s&&0!==e?"~ 0":numeral(a).format(r),t&&t.currency?a+" "+o(t.currency,!0):a}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e<-1e9||e>1e9?"0,0.000 a":a);return t&&t.currency?n+" "+o(t.currency,!1):n}(e,i)}}]).filter("formatAmountNoHtml",["csConfig","csSettings","csCurrency","$filter",function(e,t,n,i){var a=1/Math.pow(10,e.decimalCount||4),o="0,0.0"+Array(e.decimalCount||4).join("0"),r=i("currencySymbolNoHtml");return function(e,i){if(void 0!==e)return(i&&angular.isDefined(i.useRelative)?i.useRelative:t.data.useRelative)?function(e,t){var i=t&&t.currentUD?t.currentUD:n.data.currentUD;if(i){var s=e/i;return s=Math.abs(s)<a&&0!==e?"~ 0":numeral(s).format(o),t&&t.currency?s+" "+r(t.currency,!0):s}console.warn("formatAmount: currentUD not defined")}(e,i):function(e,t){var n=numeral(e/100).format(e>-1e9&&e<1e9?"0,0.00":"0,0.000 a");return t&&t.currency?n+" "+r(t.currency,!1):n}(e,i)}}]).filter("currencySymbol",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+"<sub>"+t("abbreviate")(i)+"</sub>":t("abbreviate")(i):""}}]).filter("currencySymbolNoHtml",["filterTranslations","$filter","csSettings",function(e,t,n){return function(i,a){return i?(angular.isDefined(a)?a:n.data.useRelative)?e.UD+" "+t("abbreviate")(i):t("abbreviate")(i):""}}]).filter("formatDecimal",["csConfig","csCurrency",function(e,t){var n=1/Math.pow(10,e.decimalCount||4),i="0,0.0"+Array(e.decimalCount||4).join("0");return function(e){return void 0===e?"0":e===1/0||e===-1/0?(console.warn("formatDecimal: division by zero ? (is currentUD defined ?) = "+t.data.currentUD),"error"):Math.abs(e)<n?"~ 0":numeral(e).format(i)}}]).filter("formatNumeral",(function(){return function(e,t){return void 0===e?"0":Math.abs(e)<1e-4?"~ 0":numeral(e).format(t)}})).filter("formatDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("formatDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatDateMonth",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_MONTH_YEAR_PATTERN||"MMM YY"):""}}]).filter("formatDateForFile",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)).local().format(e.DATE_FILE_PATTERN||"YYYY-MM-DD"):""}}]).filter("formatTime",(function(){return function(e){return e?moment.unix(parseInt(e)).local().format("HH:mm"):""}})).filter("formatFromNow",(function(){return function(e){return e?moment.unix(parseInt(e)).fromNow():""}})).filter("formatFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t));return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("formatDurationTo",(function(){return function(e){return e?moment.unix(moment().utc().unix()+parseInt(e)).fromNow():""}})).filter("formatDuration",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0):""}})).filter("formatDurationTime",["filterTranslations",function(e){return function(t){if(!t)return"";var n=t&&t<0?"-":"+";t=Math.abs(t);var i=Math.trunc(t/3600/24),a=Math.trunc(t/3600-24*i),o=Math.trunc(t/60-24*i*60-60*a);return i>0?n+i+" "+e.DAYS+" "+a+"h "+o+"m":a>0?n+a+"h "+o+"m":n+o+"m"}}]).filter("formatDurationMs",(function(){return function(e){return e?e<1e3?e+"ms":e/1e3+"s":""}})).filter("formatPeriod",(function(){return function(e){return e?moment(0).from(moment.unix(parseInt(e)),!0).split(" ").slice(-1)[0]:null}})).filter("formatFromNowShort",(function(){return function(e){return e?moment.unix(parseInt(e)+offset).fromNow(!0):""}})).filter("medianDate",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm"):""}}]).filter("medianDateShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format(e.DATE_SHORT_PATTERN||"YYYY-MM-DD"):""}}]).filter("medianTime",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).local().format("HH:mm"):""}}]).filter("medianFromNow",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow():""}}]).filter("medianFromNowShort",["filterTranslations",function(e){return function(t){return t?moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET).fromNow(!0):""}}]).filter("medianFromNowAndDate",["filterTranslations",function(e){return function(t,n){var i=t&&moment.unix(parseInt(t)+e.MEDIAN_TIME_OFFSET);return i&&i.fromNow()+(n&&n.separator||" | ")+i.local().format(e.DATE_PATTERN||"YYYY-MM-DD HH:mm")||""}}]).filter("capitalize",(function(){return function(e){return e?(e=e.toLowerCase()).substring(0,1).toUpperCase()+e.substring(1):""}})).filter("abbreviate",(function(){var e={};return function(t){var n=t||"";if(e[n])return e[n];if(n.length>3){for(var i="",a=["-","_"," "],o=0;o<n.length;o++){var r=n[o];0===o?i="g"===r||"G"===r?"Äž":r:o>0&&-1!=a.indexOf(n[o-1])&&(i+=r)}n=i.toUpperCase()}else"G"===(n=n.toUpperCase()).charAt(0)&&(n="Äž"+(n.length>1?n.substr(1):""));return e[t]=n,n}})).filter("upper",(function(){return function(e){return e?e.toUpperCase():""}})).filter("formatPubkey",(function(){return function(e){return e?e.substr(0,8):""}})).filter("formatHash",(function(){return function(e){return e?e.substr(0,4)+e.substr(e.length-4):""}})).filter("formatCategory",(function(){return function(e){return e&&e.length>28?e.substr(0,25)+"...":e}})).filter("formatSlug",(function(){return function(e){return e?encodeURIComponent(e.toLowerCase().replace(/<[^>]+>/g,"").replace(/[^\w ]+/g,"").replace(/ +/g,"-")):""}})).filter("formatEncodeURI",(function(){return function(e){return e?encodeURIComponent(e):""}})).filter("truncText",(function(){return function(e,t){return t=t||500,!e||e.length<=t?e:e.substr(0,t)+"..."}})).filter("truncUrl",(function(){return function(e,t){t=t||25;var n=e.startsWith("http://")?7:e.startsWith("https://")?8:0;return n=e.startsWith("www.",n)?n+4:n,!e||e.length-n<=t?e.substr(n):e.substr(n,t)+"..."}})).filter("trustAsHtml",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]),angular.module("cesium.platform",["ngIdle","cesium.config","cesium.services"]).config(["$translateProvider","csConfig",function(e,t){e.uniformLanguageTag("bcp47").determinePreferredLanguage().useSanitizeValueStrategy(null).fallbackLanguage([t.fallbackLanguage?t.fallbackLanguage:"en"]).useLoaderCache(!0)}]).config(["$httpProvider","csConfig",function(e,t){e.defaults.timeout=t.timeout?t.timeout:3e5,e.defaults.useXDomain=!0,delete e.defaults.headers.common["X-Requested-With"],e.useApplyAsync(!0)}]).config(["$compileProvider","csConfig",function(e,t){e.debugInfoEnabled(!!t.debug)}]).config(["$animateProvider",function(e){e.classNameFilter(/\banimate-/)}]).config(["CacheFactoryProvider","csConfig",function(e,t){angular.extend(e.defaults,{maxAge:t.cacheTimeMs||6e4})}]).config(["screenmatchConfigProvider",function(e){e.config.rules="bootstrap"}]).config(["$ionicConfigProvider",function(e){var t=ionic.Platform.isIOS();e.scrolling.jsScrolling(t),e.views.maxCache(5)}]).config(["IdleProvider","csConfig",function(e,t){e.idle(t.logoutIdle||600),e.timeout(t.logoutTimeout||15)}]).factory("$exceptionHandler",["$log",function(e){return function(t,n){n?e.error(t,n):e.error(t)}}]).factory("csPlatform",["ionicReady","$rootScope","$q","$state","$translate","$timeout","UIUtils","BMA","Device","csHttp","csConfig","csSettings","csCurrency","csWallet",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m){var E,b,g,f,T=0,h=!1;function v(){if(!f){var e=t.$on("$stateChangeStart",(function(e,t,n,a){e.defaultPrevented||"app.home"===t.name||"app.settings"===t.name||(e.preventDefault(),b?b.then((function(){i.go(t.name,n)})):r.loading.hide())}));f=e}}function I(){f&&f(),f=null}function N(e){if(e)return!0;E=E||d.data.node;var t=d.data.fallbackNodes&&T<d.data.fallbackNodes.length&&d.data.fallbackNodes[T++];if(!t)throw"ERROR.CHECK_NETWORK_CONNECTION";var n=t.host+(t.port||80==t.port||443==t.port?"":":"+t.port);return s.node.same(t.host,t.port)?(console.debug("[platform] Skipping fallback node [{0}]: same as actual node".format(n)),N()):c.get(t.host,t.port,"/node/summary",443==t.port||s.node.forceUseSsl)().catch((function(e){console.error("[platform] Could not reach fallback node [{0}]: skipping".format(n))})).then((function(e){if(!e)return N();var i={old:s.server,new:n};return i.old===i.new&&(s.port!=t.port?i.new+=":"+t.port:0!=s.useSsl||!t.useSsl&&443!=t.port||(i.new+=" (SSL)")),a("CONFIRM.USE_FALLBACK_NODE",i).then((function(e){return r.alert.confirm(e)})).then((function(e){if(e)return d.data.node=t,d.data.node.temporary=!0,c.cache.clear(),s.copy(t).then(N)}))}))}function O(){return console.debug("[platform] restarting csPlatform"),A().then((function(){return o(R,200)}))}function R(){return v(),b=e().then(n.all([l.ready(),d.ready()])).then((function(){return s.ready().then(N)})).then(p.ready).then(m.ready).then((function(){I(),function(){g=[s.api.node.on.restart(t,O,this)]}(),b=null,h=!0})).catch((function(e){throw b=null,h=!1,i.current.name!==t.errorState&&i.go(t.errorState,{error:"peer"}),e}))}function A(){return h?(_.forEach(g,(function(e){e()})),g=[],m.stop(),p.stop(),s.stop(),o((function(){I(),h=!1,b=null}),500)):n.when()}return{disableChangeState:v,isStarted:function(){return h},ready:function(){return h?n.when():b||R()},restart:O,start:R,stop:A,version:{latest:function(){var e=d.data.latestReleaseUrl&&c.uri.parse(d.data.latestReleaseUrl);return e?c.get(e.host,"https:"==e.protocol?443:e.port,"/"+e.pathname)().then((function(e){if(e&&e.name&&e.tag_name&&e.html_url)return{version:e.name,url:e.html_url,isNewer:c.version.compare(u.version,e.name)<0}})).catch((function(e){console.error("[platform] Failed to get Cesium latest version",e)})):n.when()}}}}]).run(["$rootScope","$state","$window","$urlRouter","ionicReady","$ionicPlatform","$ionicHistory","Device","UIUtils","$ionicConfig","PluginService","csPlatform","csWallet","csSettings","csConfig","csCurrency",function(e,t,n,i,a,o,r,s,l,c,u,d,p,m,E,b){e.config=E,e.settings=m.data,e.currency=b.data,e.device=s,e.errorState="app.home",e.smallscreen=l.screen.isSmall();var g=n.location.href.indexOf("#");e.rootPath=-1!=g?n.location.href.substr(0,g):n.location.href,console.debug("[app] Root path is ["+e.rootPath+"]"),a().then((function(){return s.keyboard.enable&&(s.keyboard.hideKeyboardAccessoryBar(!0),ionic.Platform.isIOS()&&s.keyboard.disableScroll(!0)),"a"!==ionic.Platform.grade.toLowerCase()&&(console.info("[app] Disabling UI effects, because plateform's grade is ["+ionic.Platform.grade+"]"),l.setEffects(!1)),window.StatusBar&&console.debug("[app] Status bar plugin enable"),d.version.latest().then((function(t){t&&t.isNewer?(console.info("[app] New release detected [{0}]".format(t.version)),e.newRelease=t):console.info("[app] Current version [{0}] is the latest release".format(E.version))})),o.registerBackButtonAction((function(e){return r.backView()?r.goBack():(e.preventDefault(),l.alert.confirm("CONFIRM.EXIT_APP").then((function(e){e&&ionic.Platform.exitApp()})))}),100),d.ready()}))}]),"function"!=typeof String.prototype.startsWith&&(console.debug("Adding String.prototype.startsWith() -> was missing on this platform"),String.prototype.startsWith=function(e,t){return 0===this.indexOf(e,t)}),"function"!=typeof String.prototype.trim){console.debug("Adding String.prototype.trim() -> was missing on this platform");var ct=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(ct,"")}}Math&&"function"!=typeof Math.trunc&&(console.debug("Adding Math.trunc() -> was missing on this platform"),Math.trunc=function(e){return(e-.5).toFixed()}),"function"!=typeof String.prototype.format&&(console.debug("Adding String.prototype.format() -> was missing on this platform"),String.prototype.format=function(){var e=arguments;return this.replace(/{(\d+)}/g,(function(t,n){return void 0!==e[n]?e[n]:t}))});
\ No newline at end of file
diff --git a/assets/www/dist_js/vendor-4db1ac7d45.js b/assets/www/dist_js/vendor-4db1ac7d45.js
new file mode 100644
index 0000000000000000000000000000000000000000..5dd0cc24a5ecfbb73d0dcaa42c2307fde81ef691
--- /dev/null
+++ b/assets/www/dist_js/vendor-4db1ac7d45.js
@@ -0,0 +1,201 @@
+/* minified */
+var e,t,n,r,o;!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,(function(){"use strict";var e,t;function n(){return e.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function a(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function s(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function l(e,t){var n,i=[];for(n=0;n<e.length;++n)i.push(t(e[n],n));return i}function u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){for(var n in t)u(t,n)&&(e[n]=t[n]);return u(t,"toString")&&(e.toString=t.toString),u(t,"valueOf")&&(e.valueOf=t.valueOf),e}function d(e,t,n,i){return St(e,t,n,i,!0).utc()}function h(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function f(e){if(null==e._isValid){var n=h(e),i=t.call(n.parsedDateParts,(function(e){return null!=e})),r=!isNaN(e._d.getTime())&&n.overflow<0&&!n.empty&&!n.invalidMonth&&!n.invalidWeekday&&!n.weekdayMismatch&&!n.nullInput&&!n.invalidFormat&&!n.userInvalidated&&(!n.meridiem||n.meridiem&&i);if(e._strict&&(r=r&&0===n.charsLeftOver&&0===n.unusedTokens.length&&void 0===n.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return r;e._isValid=r}return e._isValid}function p(e){var t=d(NaN);return null!=e?c(h(t),e):h(t).userInvalidated=!0,t}t=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i<n;i++)if(i in t&&e.call(this,t[i],i,t))return!0;return!1};var m=n.momentProperties=[];function g(e,t){var n,i,r;if(o(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),o(t._i)||(e._i=t._i),o(t._f)||(e._f=t._f),o(t._l)||(e._l=t._l),o(t._strict)||(e._strict=t._strict),o(t._tzm)||(e._tzm=t._tzm),o(t._isUTC)||(e._isUTC=t._isUTC),o(t._offset)||(e._offset=t._offset),o(t._pf)||(e._pf=h(t)),o(t._locale)||(e._locale=t._locale),0<m.length)for(n=0;n<m.length;n++)o(r=t[i=m[n]])||(e[i]=r);return e}var v=!1;function _(e){g(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,n.updateOffset(this),v=!1)}function y(e){return e instanceof _||null!=e&&null!=e._isAMomentObject}function b(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function w(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=b(t)),n}function L(e,t,n){var i,r=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),a=0;for(i=0;i<r;i++)(n&&e[i]!==t[i]||!n&&w(e[i])!==w(t[i]))&&a++;return a+o}function M(e){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function k(e,t){var i=!0;return c((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,e),i){for(var r,o=[],a=0;a<arguments.length;a++){if(r="","object"==typeof arguments[a]){for(var s in r+="\n["+a+"] ",arguments[0])r+=s+": "+arguments[0][s]+", ";r=r.slice(0,-2)}else r=arguments[a];o.push(r)}M(e+"\nArguments: "+Array.prototype.slice.call(o).join("")+"\n"+(new Error).stack),i=!1}return t.apply(this,arguments)}),t)}var x,S={};function T(e,t){null!=n.deprecationHandler&&n.deprecationHandler(e,t),S[e]||(M(t),S[e]=!0)}function $(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function D(e,t){var n,i=c({},e);for(n in t)u(t,n)&&(r(e[n])&&r(t[n])?(i[n]={},c(i[n],e[n]),c(i[n],t[n])):null!=t[n]?i[n]=t[n]:delete i[n]);for(n in e)u(e,n)&&!u(t,n)&&r(e[n])&&(i[n]=c({},i[n]));return i}function C(e){null!=e&&this.set(e)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,x=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)u(e,t)&&n.push(t);return n};var E={};function A(e,t){var n=e.toLowerCase();E[n]=E[n+"s"]=E[t]=e}function P(e){return"string"==typeof e?E[e]||E[e.toLowerCase()]:void 0}function Y(e){var t,n,i={};for(n in e)u(e,n)&&(t=P(n))&&(i[t]=e[n]);return i}var O={};function I(e,t){O[e]=t}function j(e,t,n){var i=""+Math.abs(e),r=t-i.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}var H=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,B=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},R={};function F(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(R[e]=r),t&&(R[t[0]]=function(){return j(r.apply(this,arguments),t[1],t[2])}),n&&(R[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function z(e,t){return e.isValid()?(t=V(t,e.localeData()),N[t]=N[t]||function(e){var t,n,i,r=e.match(H);for(t=0,n=r.length;t<n;t++)R[r[t]]?r[t]=R[r[t]]:r[t]=(i=r[t]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(t){var i,o="";for(i=0;i<n;i++)o+=$(r[i])?r[i].call(t,e):r[i];return o}}(t),N[t](e)):e.localeData().invalidDate()}function V(e,t){var n=5;function i(e){return t.longDateFormat(e)||e}for(B.lastIndex=0;0<=n&&B.test(e);)e=e.replace(B,i),B.lastIndex=0,n-=1;return e}var U=/\d/,W=/\d\d/,q=/\d{3}/,G=/\d{4}/,Z=/[+-]?\d{6}/,J=/\d\d?/,X=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,Q=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,ie=/[+-]?\d+/,re=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,se={};function le(e,t,n){se[e]=$(t)?t:function(e,i){return e&&n?n:t}}function ue(e,t){return u(se,e)?se[e](t._strict,t._locale):new RegExp(ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,i,r){return t||n||i||r}))))}function ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function he(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),a(t)&&(i=function(e,n){n[t]=w(e)}),n=0;n<e.length;n++)de[e[n]]=i}function fe(e,t){he(e,(function(e,n,i,r){i._w=i._w||{},t(e,i._w,i,r)}))}var pe=0,me=1,ge=2,ve=3,_e=4,ye=5,be=6,we=7,Le=8;function Me(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}F("Y",0,0,(function(){var e=this.year();return e<=9999?""+e:"+"+e})),F(0,["YY",2],0,(function(){return this.year()%100})),F(0,["YYYY",4],0,"year"),F(0,["YYYYY",5],0,"year"),F(0,["YYYYYY",6,!0],0,"year"),A("year","y"),I("year",1),le("Y",ie),le("YY",J,W),le("YYYY",ee,G),le("YYYYY",te,Z),le("YYYYYY",te,Z),he(["YYYYY","YYYYYY"],pe),he("YYYY",(function(e,t){t[pe]=2===e.length?n.parseTwoDigitYear(e):w(e)})),he("YY",(function(e,t){t[pe]=n.parseTwoDigitYear(e)})),he("Y",(function(e,t){t[pe]=parseInt(e,10)})),n.parseTwoDigitYear=function(e){return w(e)+(68<w(e)?1900:2e3)};var xe,Se=Te("FullYear",!0);function Te(e,t){return function(i){return null!=i?(De(this,e,i),n.updateOffset(this,t),this):$e(this,e)}}function $e(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function De(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Ce(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Ce(e,t){if(isNaN(e)||isNaN(t))return NaN;var n=(t%12+12)%12;return e+=(t-n)/12,1===n?ke(e)?29:28:31-n%7%2}xe=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},F("M",["MM",2],"Mo",(function(){return this.month()+1})),F("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),F("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),A("month","M"),I("month",8),le("M",J),le("MM",J,W),le("MMM",(function(e,t){return t.monthsShortRegex(e)})),le("MMMM",(function(e,t){return t.monthsRegex(e)})),he(["M","MM"],(function(e,t){t[me]=w(e)-1})),he(["MMM","MMMM"],(function(e,t,n,i){var r=n._locale.monthsParse(e,i,n._strict);null!=r?t[me]=r:h(n).invalidMonth=e}));var Ee=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ae="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Pe="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ye(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=w(t);else if(!a(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Ce(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Oe(e){return null!=e?(Ye(this,e),n.updateOffset(this,!0),this):$e(this,"Month")}var Ie=ae,je=ae;function He(){function e(e,t){return t.length-e.length}var t,n,i=[],r=[],o=[];for(t=0;t<12;t++)n=d([2e3,t]),i.push(this.monthsShort(n,"")),r.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(i.sort(e),r.sort(e),o.sort(e),t=0;t<12;t++)i[t]=ce(i[t]),r[t]=ce(r[t]);for(t=0;t<24;t++)o[t]=ce(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Be(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ne(e,t,n){var i=7+t-n;return-(7+Be(e,0,i).getUTCDay()-t)%7+i-1}function Re(e,t,n,i,r){var o,a,s=1+7*(t-1)+(7+n-i)%7+Ne(e,i,r);return a=s<=0?Me(o=e-1)+s:s>Me(e)?(o=e+1,s-Me(e)):(o=e,s),{year:o,dayOfYear:a}}function Fe(e,t,n){var i,r,o=Ne(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?i=a+ze(r=e.year()-1,t,n):a>ze(e.year(),t,n)?(i=a-ze(e.year(),t,n),r=e.year()+1):(r=e.year(),i=a),{week:i,year:r}}function ze(e,t,n){var i=Ne(e,t,n),r=Ne(e+1,t,n);return(Me(e)-i+r)/7}function Ve(e,t){return e.slice(t,7).concat(e.slice(0,t))}F("w",["ww",2],"wo","week"),F("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),I("week",5),I("isoWeek",5),le("w",J),le("ww",J,W),le("W",J),le("WW",J,W),fe(["w","ww","W","WW"],(function(e,t,n,i){t[i.substr(0,1)]=w(e)})),F("d",0,"do","day"),F("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),F("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),F("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),F("e",0,0,"weekday"),F("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),I("day",11),I("weekday",11),I("isoWeekday",11),le("d",J),le("e",J),le("E",J),le("dd",(function(e,t){return t.weekdaysMinRegex(e)})),le("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),le("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:h(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,i){t[i]=w(e)}));var Ue="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),We="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),qe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ge=ae,Ze=ae,Je=ae;function Xe(){function e(e,t){return t.length-e.length}var t,n,i,r,o,a=[],s=[],l=[],u=[];for(t=0;t<7;t++)n=d([2e3,1]).day(t),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),a.push(i),s.push(r),l.push(o),u.push(i),u.push(r),u.push(o);for(a.sort(e),s.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)s[t]=ce(s[t]),l[t]=ce(l[t]),u[t]=ce(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Ke(){return this.hours()%12||12}function Qe(e,t){F(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function et(e,t){return t._meridiemParse}F("H",["HH",2],0,"hour"),F("h",["hh",2],0,Ke),F("k",["kk",2],0,(function(){return this.hours()||24})),F("hmm",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)})),F("hmmss",0,0,(function(){return""+Ke.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)})),F("Hmm",0,0,(function(){return""+this.hours()+j(this.minutes(),2)})),F("Hmmss",0,0,(function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)})),Qe("a",!0),Qe("A",!1),A("hour","h"),I("hour",13),le("a",et),le("A",et),le("H",J),le("h",J),le("k",J),le("HH",J,W),le("hh",J,W),le("kk",J,W),le("hmm",X),le("hmmss",K),le("Hmm",X),le("Hmmss",K),he(["H","HH"],ve),he(["k","kk"],(function(e,t,n){var i=w(e);t[ve]=24===i?0:i})),he(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),he(["h","hh"],(function(e,t,n){t[ve]=w(e),h(n).bigHour=!0})),he("hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i)),h(n).bigHour=!0})),he("hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r)),h(n).bigHour=!0})),he("Hmm",(function(e,t,n){var i=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i))})),he("Hmmss",(function(e,t,n){var i=e.length-4,r=e.length-2;t[ve]=w(e.substr(0,i)),t[_e]=w(e.substr(i,2)),t[ye]=w(e.substr(r))}));var tt,nt=Te("Hours",!0),it={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ae,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ue,weekdaysMin:qe,weekdaysShort:We,meridiemParse:/[ap]\.?m?\.?/i},rt={},ot={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function st(e){var t=null;if(!rt[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,require("./locale/"+e),lt(t)}catch(e){}return rt[e]}function lt(e,t){var n;return e&&((n=o(t)?ct(e):ut(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function ut(e,t){if(null===t)return delete rt[e],null;var n,i=it;if(t.abbr=e,null!=rt[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=rt[e]._config;else if(null!=t.parentLocale)if(null!=rt[t.parentLocale])i=rt[t.parentLocale]._config;else{if(null==(n=st(t.parentLocale)))return ot[t.parentLocale]||(ot[t.parentLocale]=[]),ot[t.parentLocale].push({name:e,config:t}),null;i=n._config}return rt[e]=new C(D(i,t)),ot[e]&&ot[e].forEach((function(e){ut(e.name,e.config)})),lt(e),rt[e]}function ct(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!i(e)){if(t=st(e))return t;e=[e]}return function(e){for(var t,n,i,r,o=0;o<e.length;){for(t=(r=at(e[o]).split("-")).length,n=(n=at(e[o+1]))?n.split("-"):null;0<t;){if(i=st(r.slice(0,t).join("-")))return i;if(n&&n.length>=t&&L(r,n,!0)>=t-1)break;t--}o++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===h(e).overflow&&(t=n[me]<0||11<n[me]?me:n[ge]<1||n[ge]>Ce(n[pe],n[me])?ge:n[ve]<0||24<n[ve]||24===n[ve]&&(0!==n[_e]||0!==n[ye]||0!==n[be])?ve:n[_e]<0||59<n[_e]?_e:n[ye]<0||59<n[ye]?ye:n[be]<0||999<n[be]?be:-1,h(e)._overflowDayOfYear&&(t<pe||ge<t)&&(t=ge),h(e)._overflowWeeks&&-1===t&&(t=we),h(e)._overflowWeekday&&-1===t&&(t=Le),h(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,i,r,o,a,s=[];if(!e._d){var l,u;for(l=e,u=new Date(n.now()),r=l._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ge]&&null==e._a[me]&&function(e){var t,n,i,r,o,a,s,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)o=1,a=4,n=ht(t.GG,e._a[pe],Fe(Tt(),1,4).year),i=ht(t.W,1),((r=ht(t.E,1))<1||7<r)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=Fe(Tt(),o,a);n=ht(t.gg,e._a[pe],u.year),i=ht(t.w,u.week),null!=t.d?((r=t.d)<0||6<r)&&(l=!0):null!=t.e?(r=t.e+o,(t.e<0||6<t.e)&&(l=!0)):r=o}i<1||i>ze(n,o,a)?h(e)._overflowWeeks=!0:null!=l?h(e)._overflowWeekday=!0:(s=Re(n,i,r,o,a),e._a[pe]=s.year,e._dayOfYear=s.dayOfYear)}(e),null!=e._dayOfYear&&(a=ht(e._a[pe],r[pe]),(e._dayOfYear>Me(a)||0===e._dayOfYear)&&(h(e)._overflowDayOfYear=!0),i=Be(a,0,e._dayOfYear),e._a[me]=i.getUTCMonth(),e._a[ge]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=r[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ve]&&0===e._a[_e]&&0===e._a[ye]&&0===e._a[be]&&(e._nextDay=!0,e._a[ve]=0),e._d=(e._useUTC?Be:function(e,t,n,i,r,o,a){var s;return e<100&&0<=e?(s=new Date(e+400,t,n,i,r,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,i,r,o,a),s}).apply(null,s),o=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ve]=24),e._w&&void 0!==e._w.d&&e._w.d!==o&&(h(e).weekdayMismatch=!0)}}var pt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gt=/Z|[+-]\d\d(?::?\d\d)?/,vt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_t=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],yt=/^\/?Date\((\-?\d+)/i;function bt(e){var t,n,i,r,o,a,s=e._i,l=pt.exec(s)||mt.exec(s);if(l){for(h(e).iso=!0,t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(l[1])){r=vt[t][0],i=!1!==vt[t][2];break}if(null==r)return void(e._isValid=!1);if(l[3]){for(t=0,n=_t.length;t<n;t++)if(_t[t][1].exec(l[3])){o=(l[2]||" ")+_t[t][0];break}if(null==o)return void(e._isValid=!1)}if(!i&&null!=o)return void(e._isValid=!1);if(l[4]){if(!gt.exec(l[4]))return void(e._isValid=!1);a="Z"}e._f=r+(o||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Lt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,i,r=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(r){var o=function(e,t,n,i,r,o){var a=[function(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}(e),Pe.indexOf(t),parseInt(n,10),parseInt(i,10),parseInt(r,10)];return o&&a.push(parseInt(o,10)),a}(r[4],r[3],r[2],r[5],r[6],r[7]);if(n=o,i=e,(t=r[1])&&We.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(h(i).weekdayMismatch=!0,!(i._isValid=!1)))return;e._a=o,e._tzm=function(e,t,n){if(e)return Lt[e];if(t)return 0;var i=parseInt(n,10),r=i%100;return(i-r)/100*60+r}(r[8],r[9],r[10]),e._d=Be.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),h(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==n.ISO_8601)if(e._f!==n.RFC_2822){e._a=[],h(e).empty=!0;var t,i,r,o,a,s,l,c,d=""+e._i,f=d.length,p=0;for(r=V(e._f,e._locale).match(H)||[],t=0;t<r.length;t++)o=r[t],(i=(d.match(ue(o,e))||[])[0])&&(0<(a=d.substr(0,d.indexOf(i))).length&&h(e).unusedInput.push(a),d=d.slice(d.indexOf(i)+i.length),p+=i.length),R[o]?(i?h(e).empty=!1:h(e).unusedTokens.push(o),s=o,c=e,null!=(l=i)&&u(de,s)&&de[s](l,c._a,c,s)):e._strict&&!i&&h(e).unusedTokens.push(o);h(e).charsLeftOver=f-p,0<d.length&&h(e).unusedInput.push(d),e._a[ve]<=12&&!0===h(e).bigHour&&0<e._a[ve]&&(h(e).bigHour=void 0),h(e).parsedDateParts=e._a.slice(0),h(e).meridiem=e._meridiem,e._a[ve]=function(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((i=e.isPM(n))&&t<12&&(t+=12),i||12!==t||(t=0)),t)}(e._locale,e._a[ve],e._meridiem),ft(e),dt(e)}else Mt(e);else bt(e)}function xt(e){var t,u,d,m,v=e._i,b=e._f;return e._locale=e._locale||ct(e._l),null===v||void 0===b&&""===v?p({nullInput:!0}):("string"==typeof v&&(e._i=v=e._locale.preparse(v)),y(v)?new _(dt(v)):(s(v)?e._d=v:i(b)?function(e){var t,n,i,r,o;if(0===e._f.length)return h(e).invalidFormat=!0,e._d=new Date(NaN);for(r=0;r<e._f.length;r++)o=0,t=g({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[r],kt(t),f(t)&&(o+=h(t).charsLeftOver,o+=10*h(t).unusedTokens.length,h(t).score=o,(null==i||o<i)&&(i=o,n=t));c(e,n||t)}(e):b?kt(e):o(u=(t=e)._i)?t._d=new Date(n.now()):s(u)?t._d=new Date(u.valueOf()):"string"==typeof u?(d=t,null===(m=yt.exec(d._i))?(bt(d),!1===d._isValid&&(delete d._isValid,Mt(d),!1===d._isValid&&(delete d._isValid,n.createFromInputFallback(d)))):d._d=new Date(+m[1])):i(u)?(t._a=l(u.slice(0),(function(e){return parseInt(e,10)})),ft(t)):r(u)?function(e){if(!e._d){var t=Y(e._i);e._a=l([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),ft(e)}}(t):a(u)?t._d=new Date(u):n.createFromInputFallback(t),f(e)||(e._d=null),e))}function St(e,t,n,o,a){var s,l={};return!0!==n&&!1!==n||(o=n,n=void 0),(r(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||i(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=n,l._i=e,l._f=t,l._strict=o,(s=new _(dt(xt(l))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Tt(e,t,n,i){return St(e,t,n,i,!1)}n.createFromInputFallback=k("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var $t=k("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()})),Dt=k("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()}));function Ct(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Et=["year","quarter","month","week","day","hour","minute","second","millisecond"];function At(e){var t=Y(e),n=t.year||0,i=t.quarter||0,r=t.month||0,o=t.week||t.isoWeek||0,a=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===xe.call(Et,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,i=0;i<Et.length;++i)if(e[Et[i]]){if(n)return!1;parseFloat(e[Et[i]])!==w(e[Et[i]])&&(n=!0)}return!0}(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*s*60*60,this._days=+a+7*o,this._months=+r+3*i+12*n,this._data={},this._locale=ct(),this._bubble()}function Pt(e){return e instanceof At}function Yt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ot(e,t){F(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+j(~~(e/60),2)+t+j(~~e%60,2)}))}Ot("Z",":"),Ot("ZZ",""),le("Z",oe),le("ZZ",oe),he(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=jt(oe,e)}));var It=/([\+\-]|\d\d)/gi;function jt(e,t){var n=(t||"").match(e);if(null===n)return null;var i=((n[n.length-1]||[])+"").match(It)||["-",0,0],r=60*i[1]+w(i[2]);return 0===r?0:"+"===i[0]?r:-r}function Ht(e,t){var i,r;return t._isUTC?(i=t.clone(),r=(y(e)||s(e)?e.valueOf():Tt(e).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+r),n.updateOffset(i,!1),i):Tt(e).local()}function Bt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Nt(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Rt=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ft=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function zt(e,t){var n,i,r,o=e,s=null;return Pt(e)?o={ms:e._milliseconds,d:e._days,M:e._months}:a(e)?(o={},t?o[t]=e:o.milliseconds=e):(s=Rt.exec(e))?(n="-"===s[1]?-1:1,o={y:0,d:w(s[ge])*n,h:w(s[ve])*n,m:w(s[_e])*n,s:w(s[ye])*n,ms:w(Yt(1e3*s[be]))*n}):(s=Ft.exec(e))?(n="-"===s[1]?-1:1,o={y:Vt(s[2],n),M:Vt(s[3],n),w:Vt(s[4],n),d:Vt(s[5],n),h:Vt(s[6],n),m:Vt(s[7],n),s:Vt(s[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=function(e,t){var n;return e.isValid()&&t.isValid()?(t=Ht(t,e),e.isBefore(t)?n=Ut(e,t):((n=Ut(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}(Tt(o.from),Tt(o.to)),(o={}).ms=r.milliseconds,o.M=r.months),i=new At(o),Pt(e)&&u(e,"_locale")&&(i._locale=e._locale),i}function Vt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ut(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Wt(e,t){return function(n,i){var r;return null===i||isNaN(+i)||(T(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=i,i=r),qt(this,zt(n="string"==typeof n?+n:n,i),e),this}}function qt(e,t,i,r){var o=t._milliseconds,a=Yt(t._days),s=Yt(t._months);e.isValid()&&(r=null==r||r,s&&Ye(e,$e(e,"Month")+s*i),a&&De(e,"Date",$e(e,"Date")+a*i),o&&e._d.setTime(e._d.valueOf()+o*i),r&&n.updateOffset(e,a||s))}zt.fn=At.prototype,zt.invalid=function(){return zt(NaN)};var Gt=Wt(1,"add"),Zt=Wt(-1,"subtract");function Jt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),i=e.clone().add(n,"months");return-(n+(t-i<0?(t-i)/(i-e.clone().add(n-1,"months")):(t-i)/(e.clone().add(n+1,"months")-i)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ct(e))&&(this._locale=t),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function Qt(){return this._locale}var en=126227808e5;function tn(e,t){return(e%t+t)%t}function nn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-en:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-en:Date.UTC(e,t,n)}function on(e,t){F(0,[e,e.length],0,t)}function an(e,t,n,i,r){var o;return null==e?Fe(this,i,r).year:((o=ze(e,i,r))<t&&(t=o),function(e,t,n,i,r){var o=Re(e,t,n,i,r),a=Be(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,i,r))}F(0,["gg",2],0,(function(){return this.weekYear()%100})),F(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),on("gggg","weekYear"),on("ggggg","weekYear"),on("GGGG","isoWeekYear"),on("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),I("weekYear",1),I("isoWeekYear",1),le("G",ie),le("g",ie),le("GG",J,W),le("gg",J,W),le("GGGG",ee,G),le("gggg",ee,G),le("GGGGG",te,Z),le("ggggg",te,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,i){t[i.substr(0,2)]=w(e)})),fe(["gg","GG"],(function(e,t,i,r){t[r]=n.parseTwoDigitYear(e)})),F("Q",0,"Qo","quarter"),A("quarter","Q"),I("quarter",7),le("Q",U),he("Q",(function(e,t){t[me]=3*(w(e)-1)})),F("D",["DD",2],"Do","date"),A("date","D"),I("date",9),le("D",J),le("DD",J,W),le("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),he(["D","DD"],ge),he("Do",(function(e,t){t[ge]=w(e.match(J)[0])}));var sn=Te("Date",!0);F("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),I("dayOfYear",4),le("DDD",Q),le("DDDD",q),he(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=w(e)})),F("m",["mm",2],0,"minute"),A("minute","m"),I("minute",14),le("m",J),le("mm",J,W),he(["m","mm"],_e);var ln=Te("Minutes",!1);F("s",["ss",2],0,"second"),A("second","s"),I("second",15),le("s",J),le("ss",J,W),he(["s","ss"],ye);var un,cn=Te("Seconds",!1);for(F("S",0,0,(function(){return~~(this.millisecond()/100)})),F(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),F(0,["SSS",3],0,"millisecond"),F(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),F(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),F(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),F(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),F(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),F(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),A("millisecond","ms"),I("millisecond",16),le("S",Q,U),le("SS",Q,W),le("SSS",Q,q),un="SSSS";un.length<=9;un+="S")le(un,ne);function dn(e,t){t[be]=w(1e3*("0."+e))}for(un="S";un.length<=9;un+="S")he(un,dn);var hn=Te("Milliseconds",!1);F("z",0,0,"zoneAbbr"),F("zz",0,0,"zoneName");var fn=_.prototype;function pn(e){return e}fn.add=Gt,fn.calendar=function(e,t){var i=e||Tt(),r=Ht(i,this).startOf("day"),o=n.calendarFormat(this,r)||"sameElse",a=t&&($(t[o])?t[o].call(this,i):t[o]);return this.format(a||this.localeData().calendar(o,this,Tt(i)))},fn.clone=function(){return new _(this)},fn.diff=function(e,t,n){var i,r,o;if(!this.isValid())return NaN;if(!(i=Ht(e,this)).isValid())return NaN;switch(r=6e4*(i.utcOffset()-this.utcOffset()),t=P(t)){case"year":o=Jt(this,i)/12;break;case"month":o=Jt(this,i);break;case"quarter":o=Jt(this,i)/3;break;case"second":o=(this-i)/1e3;break;case"minute":o=(this-i)/6e4;break;case"hour":o=(this-i)/36e5;break;case"day":o=(this-i-r)/864e5;break;case"week":o=(this-i-r)/6048e5;break;default:o=this-i}return n?o:b(o)},fn.endOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year()+1,0,1)-1;break;case"quarter":t=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=i(this.year(),this.month()+1,1)-1;break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-tn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-tn(t,1e3)-1}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.format=function(e){e||(e=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var t=z(this,e);return this.localeData().postformat(t)},fn.from=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.fromNow=function(e){return this.from(Tt(),e)},fn.to=function(e,t){return this.isValid()&&(y(e)&&e.isValid()||Tt(e).isValid())?zt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},fn.toNow=function(e){return this.to(Tt(),e)},fn.get=function(e){return $(this[e=P(e)])?this[e]():this},fn.invalidAt=function(){return h(this).overflow},fn.isAfter=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},fn.isBefore=function(e,t){var n=y(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},fn.isBetween=function(e,t,n,i){var r=y(e)?e:Tt(e),o=y(t)?t:Tt(t);return!!(this.isValid()&&r.isValid()&&o.isValid())&&("("===(i=i||"()")[0]?this.isAfter(r,n):!this.isBefore(r,n))&&(")"===i[1]?this.isBefore(o,n):!this.isAfter(o,n))},fn.isSame=function(e,t){var n,i=y(e)?e:Tt(e);return!(!this.isValid()||!i.isValid())&&("millisecond"===(t=P(t)||"millisecond")?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},fn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},fn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},fn.isValid=function(){return f(this)},fn.lang=Kt,fn.locale=Xt,fn.localeData=Qt,fn.max=Dt,fn.min=$t,fn.parsingFlags=function(){return c({},h(this))},fn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:O[n]});return t.sort((function(e,t){return e.priority-t.priority})),t}(e=Y(e)),i=0;i<n.length;i++)this[n[i].unit](e[n[i].unit]);else if($(this[e=P(e)]))return this[e](t);return this},fn.startOf=function(e){var t;if(void 0===(e=P(e))||"millisecond"===e||!this.isValid())return this;var i=this._isUTC?rn:nn;switch(e){case"year":t=i(this.year(),0,1);break;case"quarter":t=i(this.year(),this.month()-this.month()%3,1);break;case"month":t=i(this.year(),this.month(),1);break;case"week":t=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=i(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=tn(t,6e4);break;case"second":t=this._d.valueOf(),t-=tn(t,1e3)}return this._d.setTime(t),n.updateOffset(this,!0),this},fn.subtract=Zt,fn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},fn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},fn.toDate=function(){return new Date(this.valueOf())},fn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?z(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):$(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",z(n,"Z")):z(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},fn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=t+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)},fn.toJSON=function(){return this.isValid()?this.toISOString():null},fn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},fn.unix=function(){return Math.floor(this.valueOf()/1e3)},fn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},fn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},fn.year=Se,fn.isLeapYear=function(){return ke(this.year())},fn.weekYear=function(e){return an.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},fn.isoWeekYear=function(e){return an.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},fn.quarter=fn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},fn.month=Oe,fn.daysInMonth=function(){return Ce(this.year(),this.month())},fn.week=fn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},fn.isoWeek=fn.isoWeeks=function(e){var t=Fe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},fn.weeksInYear=function(){var e=this.localeData()._week;return ze(this.year(),e.dow,e.doy)},fn.isoWeeksInYear=function(){return ze(this.year(),1,4)},fn.date=sn,fn.day=fn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,i=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-i,"d")):i},fn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},fn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,i=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?i:i-7)},fn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},fn.hour=fn.hours=nt,fn.minute=fn.minutes=ln,fn.second=fn.seconds=cn,fn.millisecond=fn.milliseconds=hn,fn.utcOffset=function(e,t,i){var r,o=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?o:Bt(this);if("string"==typeof e){if(null===(e=jt(oe,e)))return this}else Math.abs(e)<16&&!i&&(e*=60);return!this._isUTC&&t&&(r=Bt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),o!==e&&(!t||this._changeInProgress?qt(this,zt(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this},fn.utc=function(e){return this.utcOffset(0,e)},fn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Bt(this),"m")),this},fn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=jt(re,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},fn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},fn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},fn.isLocal=function(){return!!this.isValid()&&!this._isUTC},fn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},fn.isUtc=Nt,fn.isUTC=Nt,fn.zoneAbbr=function(){return this._isUTC?"UTC":""},fn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},fn.dates=k("dates accessor is deprecated. Use date instead.",sn),fn.months=k("months accessor is deprecated. Use month instead",Oe),fn.years=k("years accessor is deprecated. Use year instead",Se),fn.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),fn.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),(e=xt(e))._a){var t=e._isUTC?d(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<L(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted}));var mn=C.prototype;function gn(e,t,n,i){var r=ct(),o=d().set(i,t);return r[n](o,e)}function vn(e,t,n){if(a(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=gn(e,i,n,"month");return r}function _n(e,t,n,i){"boolean"==typeof e?a(t)&&(n=t,t=void 0):(t=e,e=!1,a(n=t)&&(n=t,t=void 0)),t=t||"";var r,o=ct(),s=e?o._week.dow:0;if(null!=n)return gn(t,(n+s)%7,i,"day");var l=[];for(r=0;r<7;r++)l[r]=gn(t,(r+s)%7,i,"day");return l}mn.calendar=function(e,t,n){var i=this._calendar[e]||this._calendar.sameElse;return $(i)?i.call(t,n):i},mn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},mn.invalidDate=function(){return this._invalidDate},mn.ordinal=function(e){return this._ordinal.replace("%d",e)},mn.preparse=pn,mn.postformat=pn,mn.relativeTime=function(e,t,n,i){var r=this._relativeTime[n];return $(r)?r(e,t,n,i):r.replace(/%d/i,e)},mn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return $(n)?n(t):n.replace(/%s/i,t)},mn.set=function(e){var t,n;for(n in e)$(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},mn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ee).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},mn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ee.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},mn.monthsParse=function(e,t,n){var i,r,o;if(this._monthsParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)o=d([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:"MMM"===t?-1!==(r=xe.call(this._shortMonthsParse,a))?r:-1!==(r=xe.call(this._longMonthsParse,a))?r:null:-1!==(r=xe.call(this._longMonthsParse,a))?r:-1!==(r=xe.call(this._shortMonthsParse,a))?r:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(r=d([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(o="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[i]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(n&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!n&&this._monthsParse[i].test(e))return i}},mn.monthsRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsStrictRegex:this._monthsRegex):(u(this,"_monthsRegex")||(this._monthsRegex=je),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},mn.monthsShortRegex=function(e){return this._monthsParseExact?(u(this,"_monthsRegex")||He.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,"_monthsShortRegex")||(this._monthsShortRegex=Ie),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},mn.week=function(e){return Fe(e,this._week.dow,this._week.doy).week},mn.firstDayOfYear=function(){return this._week.doy},mn.firstDayOfWeek=function(){return this._week.dow},mn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ve(n,this._week.dow):e?n[e.day()]:n},mn.weekdaysMin=function(e){return!0===e?Ve(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},mn.weekdaysShort=function(e){return!0===e?Ve(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},mn.weekdaysParse=function(e,t,n){var i,r,o;if(this._weekdaysParseExact)return function(e,t,n){var i,r,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=d([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"dddd"===t?-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:"ddd"===t?-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:null:-1!==(r=xe.call(this._minWeekdaysParse,a))?r:-1!==(r=xe.call(this._weekdaysParse,a))?r:-1!==(r=xe.call(this._shortWeekdaysParse,a))?r:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=d([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}},mn.weekdaysRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=Ge),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},mn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ze),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},mn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Xe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},mn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},mn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},lt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.lang=k("moment.lang is deprecated. Use moment.locale instead.",lt),n.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ct);var yn=Math.abs;function bn(e,t,n,i){var r=zt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function wn(e){return e<0?Math.floor(e):Math.ceil(e)}function Ln(e){return 4800*e/146097}function Mn(e){return 146097*e/4800}function kn(e){return function(){return this.as(e)}}var xn=kn("ms"),Sn=kn("s"),Tn=kn("m"),$n=kn("h"),Dn=kn("d"),Cn=kn("w"),En=kn("M"),An=kn("Q"),Pn=kn("y");function Yn(e){return function(){return this.isValid()?this._data[e]:NaN}}var On=Yn("milliseconds"),In=Yn("seconds"),jn=Yn("minutes"),Hn=Yn("hours"),Bn=Yn("days"),Nn=Yn("months"),Rn=Yn("years"),Fn=Math.round,zn={ss:44,s:45,m:45,h:22,d:26,M:11},Vn=Math.abs;function Un(e){return(0<e)-(e<0)||+e}function Wn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Vn(this._milliseconds)/1e3,i=Vn(this._days),r=Vn(this._months);t=b((e=b(n/60))/60),n%=60,e%=60;var o=b(r/12),a=r%=12,s=i,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var h=d<0?"-":"",f=Un(this._months)!==Un(d)?"-":"",p=Un(this._days)!==Un(d)?"-":"",m=Un(this._milliseconds)!==Un(d)?"-":"";return h+"P"+(o?f+o+"Y":"")+(a?f+a+"M":"")+(s?p+s+"D":"")+(l||u||c?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(c?m+c+"S":"")}var qn=At.prototype;qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=yn(this._milliseconds),this._days=yn(this._days),this._months=yn(this._months),e.milliseconds=yn(e.milliseconds),e.seconds=yn(e.seconds),e.minutes=yn(e.minutes),e.hours=yn(e.hours),e.months=yn(e.months),e.years=yn(e.years),this},qn.add=function(e,t){return bn(this,e,t,1)},qn.subtract=function(e,t){return bn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,i=this._milliseconds;if("month"===(e=P(e))||"quarter"===e||"year"===e)switch(t=this._days+i/864e5,n=this._months+Ln(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mn(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=xn,qn.asSeconds=Sn,qn.asMinutes=Tn,qn.asHours=$n,qn.asDays=Dn,qn.asWeeks=Cn,qn.asMonths=En,qn.asQuarters=An,qn.asYears=Pn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},qn._bubble=function(){var e,t,n,i,r,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return 0<=o&&0<=a&&0<=s||o<=0&&a<=0&&s<=0||(o+=864e5*wn(Mn(s)+a),s=a=0),l.milliseconds=o%1e3,e=b(o/1e3),l.seconds=e%60,t=b(e/60),l.minutes=t%60,n=b(t/60),l.hours=n%24,s+=r=b(Ln(a+=b(n/24))),a-=wn(Mn(r)),i=b(s/12),s%=12,l.days=a,l.months=s,l.years=i,this},qn.clone=function(){return zt(this)},qn.get=function(e){return e=P(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=On,qn.seconds=In,qn.minutes=jn,qn.hours=Hn,qn.days=Bn,qn.weeks=function(){return b(this.days()/7)},qn.months=Nn,qn.years=Rn,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,i,r,o,a,s,l,u,c,d=this.localeData(),h=(t=!e,n=d,i=zt(this).abs(),r=Fn(i.as("s")),o=Fn(i.as("m")),a=Fn(i.as("h")),s=Fn(i.as("d")),l=Fn(i.as("M")),u=Fn(i.as("y")),(c=r<=zn.ss&&["s",r]||r<zn.s&&["ss",r]||o<=1&&["m"]||o<zn.m&&["mm",o]||a<=1&&["h"]||a<zn.h&&["hh",a]||s<=1&&["d"]||s<zn.d&&["dd",s]||l<=1&&["M"]||l<zn.M&&["MM",l]||u<=1&&["y"]||["yy",u])[2]=t,c[3]=0<+this,c[4]=n,function(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}.apply(null,c));return e&&(h=d.pastFuture(+this,h)),d.postformat(h)},qn.toISOString=Wn,qn.toString=Wn,qn.toJSON=Wn,qn.locale=Xt,qn.localeData=Qt,qn.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Wn),qn.lang=Kt,F("X",0,0,"unix"),F("x",0,0,"valueOf"),le("x",ie),le("X",/[+-]?\d+(\.\d{1,3})?/),he("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),he("x",(function(e,t,n){n._d=new Date(w(e))})),n.version="2.24.0",e=Tt,n.fn=fn,n.min=function(){return Ct("isBefore",[].slice.call(arguments,0))},n.max=function(){return Ct("isAfter",[].slice.call(arguments,0))},n.now=function(){return Date.now?Date.now():+new Date},n.utc=d,n.unix=function(e){return Tt(1e3*e)},n.months=function(e,t){return vn(e,t,"months")},n.isDate=s,n.locale=lt,n.invalid=p,n.duration=zt,n.isMoment=y,n.weekdays=function(e,t,n){return _n(e,t,n,"weekdays")},n.parseZone=function(){return Tt.apply(null,arguments).parseZone()},n.localeData=ct,n.isDuration=Pt,n.monthsShort=function(e,t){return vn(e,t,"monthsShort")},n.weekdaysMin=function(e,t,n){return _n(e,t,n,"weekdaysMin")},n.defineLocale=ut,n.updateLocale=function(e,t){if(null!=t){var n,i,r=it;null!=(i=st(e))&&(r=i._config),(n=new C(t=D(r,t))).parentLocale=rt[e],rt[e]=n,lt(e)}else null!=rt[e]&&(null!=rt[e].parentLocale?rt[e]=rt[e].parentLocale:null!=rt[e]&&delete rt[e]);return rt[e]},n.locales=function(){return x(rt)},n.weekdaysShort=function(e,t,n){return _n(e,t,n,"weekdaysShort")},n.normalizeUnits=P,n.relativeTimeRounding=function(e){return void 0===e?Fn:"function"==typeof e&&(Fn=e,!0)},n.relativeTimeThreshold=function(e,t){return void 0!==zn[e]&&(void 0===t?zn[e]:(zn[e]=t,"s"===e&&(zn.ss=t-1),!0))},n.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},n.prototype=fn,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}}),n.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});var Gn={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},Zn=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Jn={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Xn=function(e){return function(t,n,i,r){var o=Zn(t),a=Jn[e][Zn(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},Kn=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar-ly",{months:Kn,monthsShort:Kn,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Xn("s"),ss:Xn("s"),m:Xn("m"),mm:Xn("m"),h:Xn("h"),hh:Xn("h"),d:Xn("d"),dd:Xn("d"),M:Xn("M"),MM:Xn("M"),y:Xn("y"),yy:Xn("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Gn[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}}),n.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});var Qn={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ei={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};n.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ei[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Qn[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}}),n.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});var ti={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ni={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ii=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},ri={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},oi=function(e){return function(t,n,i,r){var o=ii(t),a=ri[e][ii(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},ai=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];n.defineLocale("ar",{months:ai,monthsShort:ai,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:oi("s"),ss:oi("s"),m:oi("m"),mm:oi("m"),h:oi("h"),hh:oi("h"),d:oi("d"),dd:oi("d"),M:oi("M"),MM:oi("M"),y:oi("y"),yy:oi("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ni[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return ti[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var si={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};function li(e,t,n){var i,r;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var t=e%10;return e+(si[t]||si[e%100-t]||si[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:li,mm:li,h:li,hh:li,d:"дзень",dd:li,M:"месяц",MM:li,y:"год",yy:li},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var ui={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},ci={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};n.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(e){return ci[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ui[e]}))},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&4<=e||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});var di={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},hi={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};function fi(e,t,n){var i,r,o;return e+" "+(i={mm:"munutenn",MM:"miz",dd:"devezh"}[n],2!==e?i:void 0!==(o={m:"v",b:"v",d:"z"})[(r=i).charAt(0)]?o[r.charAt(0)]+r.substring(1):r)}function pi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,(function(e){return hi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return di[e]}))},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&4<=e||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),n.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:fi,h:"un eur",hh:"%d eur",d:"un devezh",dd:fi,M:"ur miz",MM:fi,y:"ur bloaz",yy:function(e){switch(function e(t){return 9<t?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}}),n.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:pi,m:pi,mm:pi,h:pi,hh:pi,d:"dan",dd:pi,M:"mjesec",MM:pi,y:"godinu",yy:pi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}});var mi="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),gi="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),vi=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],_i=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function yi(e){return 1<e&&e<5&&1!=~~(e/10)}function bi(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekund":"pár sekundami";case"ss":return t||i?r+(yi(e)?"sekundy":"sekund"):r+"sekundami";case"m":return t?"minuta":i?"minutu":"minutou";case"mm":return t||i?r+(yi(e)?"minuty":"minut"):r+"minutami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(yi(e)?"hodiny":"hodin"):r+"hodinami";case"d":return t||i?"den":"dnem";case"dd":return t||i?r+(yi(e)?"dny":"dní"):r+"dny";case"M":return t||i?"měsíc":"měsícem";case"MM":return t||i?r+(yi(e)?"měsíce":"měsíců"):r+"měsíci";case"y":return t||i?"rok":"rokem";case"yy":return t||i?r+(yi(e)?"roky":"let"):r+"lety"}}function wi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Li(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}function Mi(e,t,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?r[n][0]:r[n][1]}n.defineLocale("cs",{months:mi,monthsShort:gi,monthsRegex:_i,monthsShortRegex:_i,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:vi,longMonthsParse:vi,shortMonthsParse:vi,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:bi,ss:bi,m:bi,mm:bi,h:bi,hh:bi,d:bi,dd:bi,M:bi,MM:bi,y:bi,yy:bi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"рен":/\u04ab\u0443\u043b$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),n.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return 20<e?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}}),n.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:wi,mm:"%d Minuten",h:wi,hh:"%d Stunden",d:wi,dd:wi,M:wi,MM:wi,y:wi,yy:wi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Li,mm:"%d Minuten",h:Li,hh:"%d Stunden",d:Li,dd:Li,M:Li,MM:Li,y:Li,yy:Li},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:Mi,mm:"%d Minuten",h:Mi,hh:"%d Stunden",d:Mi,dd:Mi,M:Mi,MM:Mi,y:Mi,yy:Mi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ki=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],xi=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];n.defineLocale("dv",{months:ki,monthsShort:ki,weekdays:xi,weekdaysShort:xi,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}}),n.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return 11<e?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],i=t&&t.hours();return $(n)&&(n=n.apply(t)),n.replace("{}",i%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%dη",week:{dow:1,doy:4}}),n.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),n.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var Si="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ti="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),$i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Di=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ti[e.month()]:Si[e.month()]:Si},monthsRegex:Di,monthsShortRegex:Di,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:$i,longMonthsParse:$i,shortMonthsParse:$i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var Ci="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Ei="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ai=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],Pi=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;n.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ei[e.month()]:Ci[e.month()]:Ci},monthsRegex:Pi,monthsShortRegex:Pi,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ai,longMonthsParse:Ai,shortMonthsParse:Ai,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:0,doy:6}});var Yi="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Oi="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Ii=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ji=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;function Hi(e,t,n,i){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?r[n][2]?r[n][2]:r[n][1]:i?r[n][0]:r[n][1]}n.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Oi[e.month()]:Yi[e.month()]:Yi},monthsRegex:ji,monthsShortRegex:ji,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:Ii,longMonthsParse:Ii,shortMonthsParse:Ii,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:Hi,ss:Hi,m:Hi,mm:Hi,h:Hi,hh:Hi,d:Hi,dd:"%d päeva",M:Hi,MM:Hi,y:Hi,yy:Hi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Bi={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},Ni={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};n.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,(function(e){return Ni[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return Bi[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%dم",week:{dow:6,doy:12}});var Ri="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),Fi=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Ri[7],Ri[8],Ri[9]];function zi(e,t,n,i){var r,o="";switch(n){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":o=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":o=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":o=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":o=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":o=i?"vuoden":"vuotta"}return((r=e)<10?i?Fi[r]:Ri[r]:r)+" "+o}n.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:zi,ss:zi,m:zi,mm:zi,h:zi,hh:zi,d:zi,dd:zi,M:zi,MM:zi,y:zi,yy:zi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),n.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),n.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var Vi="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),Ui="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");function Wi(e,t,n,i){var r={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?r[n][0]:r[n][1]}n.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ui[e.month()]:Vi[e.month()]:Vi},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),n.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){
+return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:Wi,ss:Wi,m:Wi,mm:Wi,h:Wi,hh:Wi,d:Wi,dd:Wi,M:Wi,MM:Wi,y:Wi,yy:Wi},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?12<e?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var qi={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},Gi={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};n.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,(function(e){return Gi[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return qi[e]}))},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?10<=e?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}}),n.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});var Zi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Ji={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Xi(e,t,n){var i=e+" ";switch(n){case"ss":return i+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return i+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return i+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return i+(1===e?"dan":"dana");case"MM":return i+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return i+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}n.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Ji[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Zi[e]}))},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?10<=e?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}}),n.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:Xi,m:Xi,mm:Xi,h:Xi,hh:Xi,d:"dan",dd:Xi,M:"mjesec",MM:Xi,y:"godinu",yy:Xi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var Ki="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function Qi(e,t,n,i){var r=e;switch(n){case"s":return i||t?"néhány másodperc":"néhány másodperce";case"ss":return r+(i||t)?" másodperc":" másodperce";case"m":return"egy"+(i||t?" perc":" perce");case"mm":return r+(i||t?" perc":" perce");case"h":return"egy"+(i||t?" óra":" órája");case"hh":return r+(i||t?" óra":" órája");case"d":return"egy"+(i||t?" nap":" napja");case"dd":return r+(i||t?" nap":" napja");case"M":return"egy"+(i||t?" hónap":" hónapja");case"MM":return r+(i||t?" hónap":" hónapja");case"y":return"egy"+(i||t?" év":" éve");case"yy":return r+(i||t?" év":" éve")}return""}function er(e){return(e?"":"[múlt] ")+"["+Ki[this.day()]+"] LT[-kor]"}function tr(e){return e%100==11||e%10!=1}function nr(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return tr(e)?r+(t||i?"sekúndur":"sekúndum"):r+"sekúnda";case"m":return t?"mínúta":"mínútu";case"mm":return tr(e)?r+(t||i?"mínútur":"mínútum"):t?r+"mínúta":r+"mínútu";case"hh":return tr(e)?r+(t||i?"klukkustundir":"klukkustundum"):r+"klukkustund";case"d":return t?"dagur":i?"dag":"degi";case"dd":return tr(e)?t?r+"dagar":r+(i?"daga":"dögum"):t?r+"dagur":r+(i?"dag":"degi");case"M":return t?"mánuður":i?"mánuð":"mánuði";case"MM":return tr(e)?t?r+"mánuðir":r+(i?"mánuði":"mánuðum"):t?r+"mánuður":r+(i?"mánuð":"mánuði");case"y":return t||i?"ár":"ári";case"yy":return tr(e)?r+(t||i?"ár":"árum"):r+(t||i?"ár":"ári")}}n.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return er.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return er.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Qi,ss:Qi,m:Qi,mm:Qi,h:Qi,hh:Qi,d:Qi,dd:Qi,M:Qi,MM:Qi,y:Qi,yy:Qi},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}}),n.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?11<=e?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:nr,ss:nr,m:nr,mm:nr,h:"klukkustund",hh:nr,d:nr,dd:nr,M:nr,MM:nr,y:nr,yy:nr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()<e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),n.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?11<=e?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),n.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"ში"):e+"ში"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"ის წინ"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}});var ir={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};n.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(ir[e]||ir[e%10]||ir[100<=e?100:null])},week:{dow:1,doy:7}});var rr={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},or={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};n.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,(function(e){return or[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return rr[e]}))},week:{dow:1,doy:4}});var ar={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},sr={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};n.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,(function(e){return sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ar[e]}))},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?10<=e?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}}),n.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}});var lr={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},ur={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},cr=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];n.defineLocale("ku",{months:cr,monthsShort:cr,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(e){return ur[e]})).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return lr[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}});var dr={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};function hr(e,t,n,i){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?r[n][0]:r[n][1]}function fr(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return fr(0===t?e/10:t)}if(e<1e4){for(;10<=e;)e/=10;return fr(e)}return fr(e/=1e3)}n.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(dr[e]||dr[e%10]||dr[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return fr(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return fr(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:hr,mm:"%d Minutten",h:hr,hh:"%d Stonnen",d:hr,dd:"%d Deeg",M:hr,MM:"%d Méint",y:hr,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}});var pr={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function mr(e,t,n,i){return t?vr(n)[0]:i?vr(n)[1]:vr(n)[2]}function gr(e){return e%10==0||10<e&&e<20}function vr(e){return pr[e].split("_")}function _r(e,t,n,i){var r=e+" ";return 1===e?r+mr(0,t,n[0],i):t?r+(gr(e)?vr(n)[1]:vr(n)[0]):i?r+vr(n)[1]:r+(gr(e)?vr(n)[1]:vr(n)[2])}n.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,i){return t?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"},ss:_r,m:mr,mm:_r,h:mr,hh:_r,d:mr,dd:_r,M:mr,MM:_r,y:mr,yy:_r},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var yr={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function br(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function wr(e,t,n){return e+" "+br(yr[n],e,t)}function Lr(e,t,n){return br(yr[n],e,t)}n.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:wr,m:Lr,mm:wr,h:Lr,hh:wr,d:Lr,dd:wr,M:Lr,MM:wr,y:Lr,yy:wr},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Mr={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=Mr.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+Mr.correctGrammaticalCase(e,i)}};function kr(e,t,n,i){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}n.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:Mr.translate,m:Mr.translate,mm:Mr.translate,h:Mr.translate,hh:Mr.translate,d:"dan",dd:Mr.translate,M:"mjesec",MM:Mr.translate,y:"godinu",yy:Mr.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),n.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&4<=e||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}}),n.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:kr,ss:kr,m:kr,mm:kr,h:kr,hh:kr,d:kr,dd:kr,M:kr,MM:kr,y:kr,yy:kr},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}});var xr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Sr={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function Tr(e,t,n,i){var r="";if(t)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,e)}n.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:Tr,ss:Tr,m:Tr,mm:Tr,h:Tr,hh:Tr,d:Tr,dd:Tr,M:Tr,MM:Tr,y:Tr,yy:Tr},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Sr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return xr[e]}))},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?10<=e?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),n.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),n.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var $r={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},Dr={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};n.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,(function(e){return Dr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return $r[e]}))},week:{dow:1,doy:4}}),n.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Cr={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Er={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};n.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(e){return Er[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Cr[e]}))},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?10<=e?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});var Ar="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Pr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Yr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Or=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Pr[e.month()]:Ar[e.month()]:Ar},monthsRegex:Or,monthsShortRegex:Or,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Yr,longMonthsParse:Yr,shortMonthsParse:Yr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Ir="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),jr="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Hr=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Br=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;n.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?jr[e.month()]:Ir[e.month()]:Ir},monthsRegex:Br,monthsShortRegex:Br,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Hr,longMonthsParse:Hr,shortMonthsParse:Hr,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),n.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Nr={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Rr={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};n.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,(function(e){return Rr[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return Nr[e]}))},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?10<=e?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});var Fr="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),zr="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function Vr(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Ur(e,t,n){var i=e+" ";switch(n){case"ss":return i+(Vr(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return i+(Vr(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(Vr(e)?"godziny":"godzin");case"MM":return i+(Vr(e)?"miesiące":"miesięcy");case"yy":return i+(Vr(e)?"lata":"lat")}}function Wr(e,t,n){var i=" ";return(20<=e%100||100<=e&&e%100==0)&&(i=" de "),e+i+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}function qr(e,t,n){var i,r;return"m"===n?t?"минута":"минуту":e+" "+(i=+e,r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}n.defineLocale("pl",{months:function(e,t){return e?""===t?"("+zr[e.month()]+"|"+Fr[e.month()]+")":/D MMMM/.test(t)?zr[e.month()]:Fr[e.month()]:Fr},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Ur,m:Ur,mm:Ur,h:Ur,hh:Ur,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:Ur,y:"rok",yy:Ur},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº"}),n.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),n.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:Wr,m:"un minut",mm:Wr,h:"o oră",hh:Wr,d:"o zi",dd:Wr,M:"o lună",MM:Wr,y:"un an",yy:Wr},week:{dow:1,doy:7}});var Gr=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];n.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:Gr,longMonthsParse:Gr,shortMonthsParse:Gr,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:qr,m:qr,mm:qr,h:"час",hh:qr,d:"день",dd:qr,M:"месяц",MM:qr,y:"год",yy:qr},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}});var Zr=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],Jr=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];n.defineLocale("sd",{months:Zr,monthsShort:Zr,weekdays:Jr,weekdaysShort:Jr,weekdaysMin:Jr,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" වැනි"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return 11<e?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});var Xr="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),Kr="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function Qr(e){return 1<e&&e<5}function eo(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"pár sekúnd":"pár sekundami";case"ss":return t||i?r+(Qr(e)?"sekundy":"sekúnd"):r+"sekundami";case"m":return t?"minúta":i?"minútu":"minútou";case"mm":return t||i?r+(Qr(e)?"minúty":"minút"):r+"minútami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(Qr(e)?"hodiny":"hodín"):r+"hodinami";case"d":return t||i?"deň":"dňom";case"dd":return t||i?r+(Qr(e)?"dni":"dní"):r+"dňami";case"M":return t||i?"mesiac":"mesiacom";case"MM":return t||i?r+(Qr(e)?"mesiace":"mesiacov"):r+"mesiacmi";case"y":return t||i?"rok":"rokom";case"yy":return t||i?r+(Qr(e)?"roky":"rokov"):r+"rokmi"}}function to(e,t,n,i){var r=e+" ";switch(n){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return r+(1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return r+(1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami");case"d":return t||i?"en dan":"enim dnem";case"dd":return r+(1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi");case"M":return t||i?"en mesec":"enim mesecem";case"MM":return r+(1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci");case"y":return t||i?"eno leto":"enim letom";case"yy":return r+(1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti")}}n.defineLocale("sk",{months:Xr,monthsShort:Kr,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:eo,ss:eo,m:eo,mm:eo,h:eo,hh:eo,d:eo,dd:eo,M:eo,MM:eo,y:eo,yy:eo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:to,ss:to,m:to,mm:to,h:to,hh:to,d:to,dd:to,M:to,MM:to,y:to,yy:to},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var no={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=no.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+no.correctGrammaticalCase(e,i)}};n.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:no.translate,m:no.translate,mm:no.translate,h:no.translate,hh:no.translate,d:"дан",dd:no.translate,M:"месец",MM:no.translate,y:"годину",yy:no.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var io={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var i=io.words[n];return 1===n.length?t?i[0]:i[1]:e+" "+io.correctGrammaticalCase(e,i)}};n.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:io.translate,m:io.translate,mm:io.translate,h:io.translate,hh:io.translate,d:"dan",dd:io.translate,M:"mesec",MM:io.translate,y:"godinu",yy:io.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),n.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?11<=e?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),n.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t?"a":2===t?"a":"e")},week:{dow:1,doy:4}}),n.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var ro={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},oo={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};n.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,(function(e){return oo[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return ro[e]}))},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&10<=e?e:e+12},week:{dow:0,doy:6}}),n.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%dవ",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?10<=e?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}),n.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}});var ao={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};n.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?11<=e?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(ao[e]||ao[e%10]||ao[100<=e?100:null])},week:{dow:1,doy:7}}),n.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),n.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var so="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function lo(e,t,n,i){var r=function(e){var t=Math.floor(e%1e3/100),n=Math.floor(e%100/10),i=e%10,r="";return 0<t&&(r+=so[t]+"vatlh"),0<n&&(r+=(""!==r?" ":"")+so[n]+"maH"),0<i&&(r+=(""!==r?" ":"")+so[i]),""===r?"pagh":r}(e);switch(n){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}n.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:lo,m:"wa’ tup",mm:lo,h:"wa’ rep",hh:lo,d:"wa’ jaj",dd:lo,M:"wa’ jar",MM:lo,y:"wa’ DIS",yy:lo},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var uo={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};function co(e,t,n,i){var r={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return i?r[n][0]:t?r[n][0]:r[n][1]}function ho(e,t,n){var i,r;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(i=+e,r={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),i%10==1&&i%100!=11?r[0]:2<=i%10&&i%10<=4&&(i%100<10||20<=i%100)?r[1]:r[2])}function fo(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}n.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,t){switch(t){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10;return e+(uo[n]||uo[e%100-n]||uo[100<=e?100:null])}},week:{dow:1,doy:7}}),n.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:co,ss:co,m:co,mm:co,h:co,hh:co,d:co,dd:co,M:co,MM:co,y:co,yy:co},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),n.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),n.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),n.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"يېرىم كېچە":i<900?"سەھەر":i<1130?"چۈشتىن بۇرۇن":i<1230?"چۈش":i<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}}),n.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:fo("[Сьогодні "),nextDay:fo("[Завтра "),lastDay:fo("[Вчора "),nextWeek:fo("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return fo("[Минулої] dddd [").call(this);case 1:case 2:case 4:return fo("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:ho,m:ho,mm:ho,h:"годину",hh:ho,d:"день",dd:ho,M:"місяць",MM:ho,y:"рік",yy:ho},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});var po=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],mo=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return n.defineLocale("ur",{months:po,monthsShort:po,weekdays:mo,weekdaysShort:mo,weekdaysMin:mo,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),n.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),n.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),n.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),n.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),n.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),n.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}),n.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var i=100*e+t;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),n.locale("en"),n})),
+/*! @preserve
+ * numeral.js
+ * version : 1.5.6
+ * author : Adam Draper
+ * license : MIT
+ * http://adamwdraper.github.com/Numeral-js/
+ */
+function(){var e,t={},n={currentLanguage:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0"},i={currentLanguage:n.currentLanguage,zeroFormat:n.zeroFormat,nullFormat:n.nullFormat,defaultFormat:n.defaultFormat},r={bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],iec:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]};function o(e){this._value=e}function a(e,t,n,i){var r,o,a,s,l=e.toString().split("."),u=t-(i||0);return r=2===l.length?Math.min(Math.max(l[1].length,u),t):u,s=(n(e*(a=Math.pow(10,r)))/a).toFixed(r),i>t-r&&(o=new RegExp("\\.?0{1,"+(i-(t-r))+"}$"),s=s.replace(o,"")),s}function s(e,n,r){var o,s,l,u,c=!1,d=!1,h=!1,f="",p=!1,m=!1,g=!1,v=!1,_=!1,y="",b=!1;return null===e&&(e=0),o=Math.abs(e),n.indexOf("(")>-1?(c=!0,n=n.slice(1,-1)):n.indexOf("+")>-1&&(d=!0,n=n.replace(/\+/g,"")),n.indexOf("a")>-1&&(p=n.indexOf("aK")>=0,m=n.indexOf("aM")>=0,g=n.indexOf("aB")>=0,v=n.indexOf("aT")>=0,_=p||m||g||v,n.indexOf(" a")>-1&&(f=" "),n=n.replace(new RegExp(f+"a[KMBT]?"),""),o>=Math.pow(10,12)&&!_||v?(f+=t[i.currentLanguage].abbreviations.trillion,e/=Math.pow(10,12)):o<Math.pow(10,12)&&o>=Math.pow(10,9)&&!_||g?(f+=t[i.currentLanguage].abbreviations.billion,e/=Math.pow(10,9)):o<Math.pow(10,9)&&o>=Math.pow(10,6)&&!_||m?(f+=t[i.currentLanguage].abbreviations.million,e/=Math.pow(10,6)):(o<Math.pow(10,6)&&o>=Math.pow(10,3)&&!_||p)&&(f+=t[i.currentLanguage].abbreviations.thousand,e/=Math.pow(10,3))),n.indexOf("[.]")>-1&&(h=!0,n=n.replace("[.]",".")),s=e.toString().split(".")[0],l=n.split(".")[1],u=n.indexOf(","),l?(s=(y=l.indexOf("[")>-1?a(e,(l=(l=l.replace("]","")).split("["))[0].length+l[1].length,r,l[1].length):a(e,l.length,r)).split(".")[0],y=y.indexOf(".")>-1?t[i.currentLanguage].delimiters.decimal+y.split(".")[1]:"",h&&0===Number(y.slice(1))&&(y="")):s=a(e,null,r),s.indexOf("-")>-1&&(s=s.slice(1),b=!0),u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+t[i.currentLanguage].delimiters.thousands)),0===n.indexOf(".")&&(s=""),(c&&b?"(":"")+(!c&&b?"-":"")+(!b&&d?"+":"")+s+y+(f||"")+(c&&b?")":"")}function l(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)}function u(){return Array.prototype.slice.call(arguments).reduce((function(e,t){var n=l(e),i=l(t);return n>i?n:i}),-1/0)}(e=function(t){return new o(t=e.isNumeral(t)?t.value():0===t||void 0===t?0:null===t?null:Number(t)?Number(t):e.fn.unformat(t))}).version="1.5.6",e.isNumeral=function(e){return e instanceof o},e.language=function(n,r){if(!n)return i.currentLanguage;if((n=n.toLowerCase())&&!r){if(!t[n])throw new Error("Unknown language : "+n);i.currentLanguage=n}return!r&&t[n]||function(e,n){t[e]=n}(n,r),e},e.reset=function(){for(var e in n)i[e]=n[e]},e.languageData=function(e){if(!e)return t[i.currentLanguage];if(!t[e])throw new Error("Unknown language : "+e);return t[e]},e.language("en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),e.zeroFormat=function(e){i.zeroFormat="string"==typeof e?e:null},e.nullFormat=function(e){i.nullFormat="string"==typeof e?e:null},e.defaultFormat=function(e){i.defaultFormat="string"==typeof e?e:"0.0"},e.validate=function(t,n){var i,r,o,a,s,l,u,c;if("string"!=typeof t&&(t+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",t)),(t=t.trim()).match(/^\d+$/))return!0;if(""===t)return!1;try{u=e.languageData(n)}catch(t){u=e.languageData(e.language())}return o=u.currency.symbol,s=u.abbreviations,i=u.delimiters.decimal,r="."===u.delimiters.thousands?"\\.":u.delimiters.thousands,!(null!==(c=t.match(/^[^\d]+/))&&(t=t.substr(1),c[0]!==o)||null!==(c=t.match(/[^\d]+$/))&&(t=t.slice(0,-1),c[0]!==s.thousand&&c[0]!==s.million&&c[0]!==s.billion&&c[0]!==s.trillion)||(l=new RegExp(r+"{2}"),t.match(/[^\d.,]/g)||(a=t.split(i)).length>2||(a.length<2?!a[0].match(/^\d+.*\d$/)||a[0].match(l):1===a[0].length?!a[0].match(/^\d+$/)||a[0].match(l)||!a[1].match(/^\d+$/):!a[0].match(/^\d+.*\d$/)||a[0].match(l)||!a[1].match(/^\d+$/))))},Array.prototype.reduce||(Array.prototype.reduce=function(e){"use strict";if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),i=n.length>>>0,r=0;if(2===arguments.length)t=arguments[1];else{for(;r<i&&!(r in n);)r++;if(r>=i)throw new TypeError("Reduce of empty array with no initial value");t=n[r++]}for(;r<i;r++)r in n&&(t=e(t,n[r],r,n));return t}),e.fn=o.prototype={clone:function(){return e(this)},format:function(e,n){return function(e,n,o){return 0===e._value&&null!==i.zeroFormat?i.zeroFormat:null===e._value&&null!==i.nullFormat?i.nullFormat:n.indexOf("$")>-1?function(e,n,r){var o,a,l=n.indexOf("$"),u=n.indexOf("("),c=n.indexOf("-"),d="";return n.indexOf(" $")>-1?(d=" ",n=n.replace(" $","")):n.indexOf("$ ")>-1?(d=" ",n=n.replace("$ ","")):n=n.replace("$",""),a=s(e._value,n,r),l<=1?a.indexOf("(")>-1||a.indexOf("-")>-1?(o=1,(l<u||l<c)&&(o=0),(a=a.split("")).splice(o,0,t[i.currentLanguage].currency.symbol+d),a=a.join("")):a=t[i.currentLanguage].currency.symbol+d+a:a.indexOf(")")>-1?((a=a.split("")).splice(-1,0,d+t[i.currentLanguage].currency.symbol),a=a.join("")):a=a+d+t[i.currentLanguage].currency.symbol,a}(e,n,o):n.indexOf("%")>-1?function(e,t,n){var i,r="",o=100*e._value;return t.indexOf(" %")>-1?(r=" ",t=t.replace(" %","")):t=t.replace("%",""),(i=s(o,t,n)).indexOf(")")>-1?((i=i.split("")).splice(-1,0,r+"%"),i=i.join("")):i=i+r+"%",i}(e,n,o):n.indexOf(":")>-1?function(e){var t=Math.floor(e._value/60/60),n=Math.floor((e._value-60*t*60)/60),i=Math.round(e._value-60*t*60-60*n);return t+":"+(n<10?"0"+n:n)+":"+(i<10?"0"+i:i)}(e):n.indexOf("b")>-1||n.indexOf("ib")>-1?function(e,t,n){var i,o,a,l=t.indexOf("ib")>-1?r.iec:r.bytes,u=e._value,c="";for(t.indexOf(" b")>-1||t.indexOf(" ib")>-1?(c=" ",t=t.replace(" ib","").replace(" b","")):t=t.replace("ib","").replace("b",""),i=0;i<=l.length;i++)if(o=Math.pow(1024,i),a=Math.pow(1024,i+1),null===u||0===u||u>=o&&u<a){c+=l[i],o>0&&(u/=o);break}return s(u,t,n)+c}(e,n,o):n.indexOf("o")>-1?function(e,n,r){var o="";return n.indexOf(" o")>-1?(o=" ",n=n.replace(" o","")):n=n.replace("o",""),o+=t[i.currentLanguage].ordinal(e._value),s(e._value,n,r)+o}(e,n,o):s(e._value,n,o)}(this,e||i.defaultFormat,void 0!==n?n:Math.round)},unformat:function(e){return"[object Number]"===Object.prototype.toString.call(e)?e:function(e,n){var o,a,s,l,u,c,d=n,h=!1;if(n.indexOf(":")>-1)c=function(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}(n);else if(n===i.zeroFormat||n===i.nullFormat)c=0;else{for("."!==t[i.currentLanguage].delimiters.decimal&&(n=n.replace(/\./g,"").replace(t[i.currentLanguage].delimiters.decimal,".")),o=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.thousand+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),a=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.million+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),s=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.billion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),l=new RegExp("[^a-zA-Z]"+t[i.currentLanguage].abbreviations.trillion+"(?:\\)|(\\"+t[i.currentLanguage].currency.symbol+")?(?:\\))?)?$"),u=1;u<=r.bytes.length&&!(h=(n.indexOf(r.bytes[u])>-1||n.indexOf(r.iec[u])>-1)&&Math.pow(1024,u));u++);c=h||1,c*=d.match(o)?Math.pow(10,3):1,c*=d.match(a)?Math.pow(10,6):1,c*=d.match(s)?Math.pow(10,9):1,c*=d.match(l)?Math.pow(10,12):1,c*=n.indexOf("%")>-1?.01:1,c*=(n.split("-").length+Math.min(n.split("(").length-1,n.split(")").length-1))%2?1:-1,c*=Number(n.replace(/[^0-9\.]+/g,"")),c=h?Math.ceil(c):c}return e._value=c,e._value}(this,e||i.defaultFormat)},value:function(){return this._value},valueOf:function(){return this._value},set:function(e){return this._value=Number(e),this},add:function(e){var t=u.call(null,this._value,e);return this._value=[this._value,e].reduce((function(e,n,i,r){return e+t*n}),0)/t,this},subtract:function(e){var t=u.call(null,this._value,e);return this._value=[e].reduce((function(e,n,i,r){return e-t*n}),this._value*t)/t,this},multiply:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r*(t*r)/(r*r)}),1),this},divide:function(e){return this._value=[this._value,e].reduce((function(e,t,n,i){var r=u(e,t);return e*r/(t*r)})),this},difference:function(t){return Math.abs(e(this._value).subtract(t).value())}},"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"==typeof ender&&(this.numeral=e),"function"==typeof define&&define.amd&&define([],(function(){return e}))}.call(this),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : french (fr)
+ * author : Adam Draper : https://github.com/adamwdraper
+ */
+function(){var e={delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("fr",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : english united kingdom (uk)
+ * author : Dan Ristic : https://github.com/dristic
+ */
+function(){var e={delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"£"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("en-gb",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : netherlands-dutch (nl-nl)
+ * author : Dave Clayton : https://github.com/davedx
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"€ "}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("nl-nl",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : spanish
+ * author : Hernan Garcia : https://github.com/hgarcia
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("es",e)}(),
+/*! @preserve 
+ * numeral.js language configuration
+ * language : italian Italy (it)
+ * author : Giacomo Trombi : http://cinquepunti.it
+ */
+function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"º"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("it",e)}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("../numeral")):"function"==typeof define&&define.amd?define(["numeral"],t):t(e.numeral)}(this,(function(e){"use strict";e.language("eo",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"x10^3",million:"x10^6",billion:"x10^9",trillion:"x10^12"},ordinal:function(e){return"a"},currency:{symbol:"X"}})})),e=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e,t){"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),t=t||{};var n,i=o(e),a=i.source,c=i.id,d=i.path,h=u[c]&&d in u[c].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||h?(l("ignoring socket cache for %s",a),n=s(a,t)):(u[c]||(l("new io instance for %s",a),u[c]=s(a,t)),n=u[c]),i.query&&!t.query?t.query=i.query:t&&"object"===r(t.query)&&(t.query=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}(t.query)),n.socket(i.path,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),a=n(7),s=n(17),l=n(3)("socket.io-client");e.exports=t=i;var u=t.managers={};t.protocol=a.protocol,t.connect=i,t.Manager=n(17),t.Socket=n(44)},function(e,t,n){(function(t){"use strict";var i=n(2),r=n(3)("socket.io-client:url");e.exports=function(e,n){var o=e;n=n||t.location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(r("protocol-less url %s",e),e=void 0!==n?n.protocol+"//"+e:"https://"+e),r("parse %s",e),o=i(e)),o.port||(/^(http|ws)$/.test(o.protocol)?o.port="80":/^(http|ws)s$/.test(o.protocol)&&(o.port="443")),o.path=o.path||"/";var a=-1!==o.host.indexOf(":")?"["+o.host+"]":o.host;return o.id=o.protocol+"://"+a+":"+o.port,o.href=o.protocol+"://"+a+(n&&n.port===o.port?"":":"+o.port),o}}).call(t,function(){return this}())},function(e,t){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,r=e.indexOf("["),o=e.indexOf("]");-1!=r&&-1!=o&&(e=e.substring(0,r)+e.substring(r,o).replace(/:/g,";")+e.substring(o,e.length));for(var a=n.exec(e||""),s={},l=14;l--;)s[i[l]]=a[l]||"";return-1!=r&&-1!=o&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s}},function(e,t,n){(function(i){function r(){try{return t.storage.debug}catch(e){}if(void 0!==i&&"env"in i)return i.env.DEBUG}(t=e.exports=n(5)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=r,t.useColors=function(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(r())}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function r(e){if(u===setTimeout)return setTimeout(e,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(e,0);try{return u(e,0)}catch(t){try{return u.call(null,e,0)}catch(t){return u.call(this,e,0)}}}function o(){p&&h&&(p=!1,h.length?f=h.concat(f):m=-1,f.length&&a())}function a(){if(!p){var e=r(o);p=!0;for(var t=f.length;t;){for(h=f,f=[];++m<t;)h&&h[m].run();m=-1,t=f.length}h=null,p=!1,function(e){if(c===clearTimeout)return clearTimeout(e);if((c===i||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(e);try{c(e)}catch(t){try{return c.call(null,e)}catch(t){return c.call(this,e)}}}(e)}}function s(e,t){this.fun=e,this.array=t}function l(){}var u,c,d=e.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(e){u=n}try{c="function"==typeof clearTimeout?clearTimeout:i}catch(e){c=i}}();var h,f=[],p=!1,m=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];f.push(new s(e,t)),1!==f.length||p||r(a)},s.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,t,n){function i(e){function n(){}function i(){var e=i,n=+new Date,a=n-(r||n);e.diff=a,e.prev=r,e.curr=n,r=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[o++%t.colors.length]);for(var s=new Array(arguments.length),l=0;l<s.length;l++)s[l]=arguments[l];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var u=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;u++;var r=t.formatters[i];if("function"==typeof r){var o=s[u];n=r.call(e,o),s.splice(u,1),u--}return n})),s=t.formatArgs.apply(e,s),(i.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,i.enabled=!0;var a=t.enabled(e)?i:n;return a.namespace=e,a}(t=e.exports=i.debug=i).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(6),t.names=[],t.skips=[],t.formatters={};var r,o=0},function(e,t){function n(e){return i(e,s,"day")||i(e,a,"hour")||i(e,o,"minute")||i(e,r,"second")||e+" ms"}function i(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var r=1e3,o=60*r,a=60*o,s=24*a,l=365.25*s;e.exports=function(e,t){t=t||{};var i=typeof e;if("string"===i&&e.length>0)return function(e){if(!((e=String(e)).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"days":case"day":case"d":return n*s;case"hours":case"hour":case"hrs":case"hr":case"h":return n*a;case"minutes":case"minute":case"mins":case"min":case"m":return n*o;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}(e);if("number"===i&&!1===isNaN(e))return t.long?n(e):function(e){return e>=s?Math.round(e/s)+"d":e>=a?Math.round(e/a)+"h":e>=o?Math.round(e/o)+"m":e>=r?Math.round(e/r)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function i(){}function r(e){var n="",i=!1;return n+=e.type,t.BINARY_EVENT!=e.type&&t.BINARY_ACK!=e.type||(n+=e.attachments,n+="-"),e.nsp&&"/"!=e.nsp&&(i=!0,n+=e.nsp),null!=e.id&&(i&&(n+=",",i=!1),n+=e.id),null!=e.data&&(i&&(n+=","),n+=u.stringify(e.data)),l("encoded %j as %s",e,n),n}function o(){this.reconstructor=null}function a(e){this.reconPack=e,this.buffers=[]}function s(e){return{type:t.ERROR,data:"parser error"}}var l=n(8)("socket.io-parser"),u=n(11),c=n(13),d=n(14),h=n(16);t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=i,t.Decoder=o,i.prototype.encode=function(e,n){l("encoding packet %j",e),t.BINARY_EVENT==e.type||t.BINARY_ACK==e.type?function(e,t){d.removeBlobs(e,(function(e){var n=d.deconstructPacket(e),i=r(n.packet),o=n.buffers;o.unshift(i),t(o)}))}(e,n):n([r(e)])},c(o.prototype),o.prototype.add=function(e){var n;if("string"==typeof e)n=function(e){var n={},i=0;if(n.type=Number(e.charAt(0)),null==t.types[n.type])return s();if(t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type){for(var r="";"-"!=e.charAt(++i)&&(r+=e.charAt(i),i!=e.length););if(r!=Number(r)||"-"!=e.charAt(i))throw new Error("Illegal attachments");n.attachments=Number(r)}if("/"==e.charAt(i+1))for(n.nsp="";++i&&","!=(a=e.charAt(i))&&(n.nsp+=a,i!=e.length););else n.nsp="/";var o=e.charAt(i+1);if(""!==o&&Number(o)==o){for(n.id="";++i;){var a;if(null==(a=e.charAt(i))||Number(a)!=a){--i;break}if(n.id+=e.charAt(i),i==e.length)break}n.id=Number(n.id)}return e.charAt(++i)&&(n=function(e,t){try{e.data=u.parse(t)}catch(e){return s()}return e}(n,e.substr(i))),l("decoded %s as %j",e,n),n}(e),t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type?(this.reconstructor=new a(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!h(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},o.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},a.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length==this.reconPack.attachments){var t=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null},a.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(e,t,n){function i(){var e;try{e=t.storage.debug}catch(e){}return e}(t=e.exports=n(9)).log=function(){return"object"==typeof console&&alert&&Function.prototype.apply.call(alert,console,arguments)},t.formatArgs=function(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var i="color: "+this.color;e=[e[0],i,"color: inherit"].concat(Array.prototype.slice.call(e,1));var r=0,o=0;return e[0].replace(/%[a-z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),e.splice(o,0,i),e},t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}},t.load=i,t.useColors=function(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31},t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(i())},function(e,t,n){(t=e.exports=function(e){function n(){}function o(){var e=o,n=+new Date,a=n-(i||n);e.diff=a,e.prev=i,e.curr=n,i=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=t.colors[r++%t.colors.length]);var s=Array.prototype.slice.call(arguments);s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&(s=["%o"].concat(s));var l=0;s[0]=s[0].replace(/%([a-z%])/g,(function(n,i){if("%%"===n)return n;l++;var r=t.formatters[i];if("function"==typeof r){var o=s[l];n=r.call(e,o),s.splice(l,1),l--}return n})),"function"==typeof t.formatArgs&&(s=t.formatArgs.apply(e,s)),(o.log||t.log||alert.bind(console)).apply(e,s)}n.enabled=!1,o.enabled=!0;var a=t.enabled(e)?o:n;return a.namespace=e,a}).coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){t.enable("")},t.enable=function(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),i=n.length,r=0;r<i;r++)n[r]&&("-"===(e=n[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){var n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(10),t.names=[],t.skips=[],t.formatters={};var i,r=0},function(e,t){function n(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var i=1e3,r=6e4,o=36e5,a=24*o;e.exports=function(e,t){return t=t||{},"string"==typeof e?function(e){if(!((e=""+e).length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*n;case"days":case"day":case"d":return n*a;case"hours":case"hour":case"hrs":case"hr":case"h":return n*o;case"minutes":case"minute":case"mins":case"min":case"m":return n*r;case"seconds":case"second":case"secs":case"sec":case"s":return n*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}(e):t.long?function(e){return n(e,a,"day")||n(e,o,"hour")||n(e,r,"minute")||n(e,i,"second")||e+" ms"}(e):function(e){return e>=a?Math.round(e/a)+"d":e>=o?Math.round(e/o)+"h":e>=r?Math.round(e/r)+"m":e>=i?Math.round(e/i)+"s":e+"ms"}(e)}},function(e,t,n){(function(e,n){(function(){function i(e,t){function n(e){if(n[e]!==g)return n[e];var i;if("bug-string-char-index"==e)i="a"!="a"[0];else if("json"==e)i=n("json-stringify")&&n("json-parse");else{var r,a='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==e){var l=t.stringify,c="function"==typeof l&&y;if(c){(r=function(){return 1}).toJSON=r;try{c="0"===l(0)&&"0"===l(new o)&&'""'==l(new s)&&l(_)===g&&l(g)===g&&l()===g&&"1"===l(r)&&"[1]"==l([r])&&"[null]"==l([g])&&"null"==l(null)&&"[null,null,null]"==l([g,_,null])&&l({a:[r,!0,!1,null,"\0\b\n\f\r\t"]})==a&&"1"===l(null,r)&&"[\n 1,\n 2\n]"==l([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==l(new u(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==l(new u(864e13))&&'"-000001-01-01T00:00:00.000Z"'==l(new u(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==l(new u(-1))}catch(e){c=!1}}i=c}if("json-parse"==e){var d=t.parse;if("function"==typeof d)try{if(0===d("0")&&!d(!1)){var h=5==(r=d(a)).a.length&&1===r.a[0];if(h){try{h=!d('"\t"')}catch(e){}if(h)try{h=1!==d("01")}catch(e){}if(h)try{h=1!==d("1.")}catch(e){}}}}catch(e){h=!1}i=h}}return n[e]=!!i}e||(e=a.Object()),t||(t=a.Object());var o=e.Number||a.Number,s=e.String||a.String,l=e.Object||a.Object,u=e.Date||a.Date,c=e.SyntaxError||a.SyntaxError,d=e.TypeError||a.TypeError,h=e.Math||a.Math,f=e.JSON||a.JSON;"object"==typeof f&&f&&(t.stringify=f.stringify,t.parse=f.parse);var p,m,g,v=l.prototype,_=v.toString,y=new u(-0xc782b5b800cec);try{y=-109252==y.getUTCFullYear()&&0===y.getUTCMonth()&&1===y.getUTCDate()&&10==y.getUTCHours()&&37==y.getUTCMinutes()&&6==y.getUTCSeconds()&&708==y.getUTCMilliseconds()}catch(e){}if(!n("json")){var b="[object Function]",w="[object Number]",L="[object String]",M="[object Array]",k=n("bug-string-char-index");if(!y)var x=h.floor,S=[0,31,59,90,120,151,181,212,243,273,304,334],T=function(e,t){return S[t]+365*(e-1970)+x((e-1969+(t=+(t>1)))/4)-x((e-1901+t)/100)+x((e-1601+t)/400)};if((p=v.hasOwnProperty)||(p=function(e){var t,n={};return(n.__proto__=null,n.__proto__={toString:1},n).toString!=_?p=function(e){var t=this.__proto__,n=e in(this.__proto__=null,this);return this.__proto__=t,n}:(t=n.constructor,p=function(e){var n=(this.constructor||t).prototype;return e in this&&!(e in n&&this[e]===n[e])}),n=null,p.call(this,e)}),m=function(e,t){var n,i,o,a=0;for(o in(n=function(){this.valueOf=0}).prototype.valueOf=0,i=new n)p.call(i,o)&&a++;return n=i=null,a?m=2==a?function(e,t){var n,i={},r=_.call(e)==b;for(n in e)r&&"prototype"==n||p.call(i,n)||!(i[n]=1)||!p.call(e,n)||t(n)}:function(e,t){var n,i,r=_.call(e)==b;for(n in e)r&&"prototype"==n||!p.call(e,n)||(i="constructor"===n)||t(n);(i||p.call(e,n="constructor"))&&t(n)}:(i=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],m=function(e,t){var n,o,a=_.call(e)==b,s=!a&&"function"!=typeof e.constructor&&r[typeof e.hasOwnProperty]&&e.hasOwnProperty||p;for(n in e)a&&"prototype"==n||!s.call(e,n)||t(n);for(o=i.length;n=i[--o];s.call(e,n)&&t(n));}),m(e,t)},!n("json-stringify")){var $={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},D=function(e,t){return("000000"+(t||0)).slice(-e)},C=function(e){for(var t='"',n=0,i=e.length,r=!k||i>10,o=r&&(k?e.split(""):e);n<i;n++){var a=e.charCodeAt(n);switch(a){case 8:case 9:case 10:case 12:case 13:case 34:case 92:t+=$[a];break;default:if(a<32){t+="\\u00"+D(2,a.toString(16));break}t+=r?o[n]:e.charAt(n)}}return t+'"'},E=function(e,t,n,i,r,o,a){var s,l,u,c,h,f,v,y,b,k,S,$,A,P,Y,O;try{s=t[e]}catch(e){}if("object"==typeof s&&s)if("[object Date]"!=(l=_.call(s))||p.call(s,"toJSON"))"function"==typeof s.toJSON&&(l!=w&&l!=L&&l!=M||p.call(s,"toJSON"))&&(s=s.toJSON(e));else if(s>-1/0&&s<1/0){if(T){for(h=x(s/864e5),u=x(h/365.2425)+1970-1;T(u+1,0)<=h;u++);for(c=x((h-T(u,0))/30.42);T(u,c+1)<=h;c++);h=1+h-T(u,c),v=x((f=(s%864e5+864e5)%864e5)/36e5)%24,y=x(f/6e4)%60,b=x(f/1e3)%60,k=f%1e3}else u=s.getUTCFullYear(),c=s.getUTCMonth(),h=s.getUTCDate(),v=s.getUTCHours(),y=s.getUTCMinutes(),b=s.getUTCSeconds(),k=s.getUTCMilliseconds();s=(u<=0||u>=1e4?(u<0?"-":"+")+D(6,u<0?-u:u):D(4,u))+"-"+D(2,c+1)+"-"+D(2,h)+"T"+D(2,v)+":"+D(2,y)+":"+D(2,b)+"."+D(3,k)+"Z"}else s=null;if(n&&(s=n.call(t,e,s)),null===s)return"null";if("[object Boolean]"==(l=_.call(s)))return""+s;if(l==w)return s>-1/0&&s<1/0?""+s:"null";if(l==L)return C(""+s);if("object"==typeof s){for(P=a.length;P--;)if(a[P]===s)throw d();if(a.push(s),S=[],Y=o,o+=r,l==M){for(A=0,P=s.length;A<P;A++)$=E(A,s,n,i,r,o,a),S.push($===g?"null":$);O=S.length?r?"[\n"+o+S.join(",\n"+o)+"\n"+Y+"]":"["+S.join(",")+"]":"[]"}else m(i||s,(function(e){var t=E(e,s,n,i,r,o,a);t!==g&&S.push(C(e)+":"+(r?" ":"")+t)})),O=S.length?r?"{\n"+o+S.join(",\n"+o)+"\n"+Y+"}":"{"+S.join(",")+"}":"{}";return a.pop(),O}};t.stringify=function(e,t,n){var i,o,a,s;if(r[typeof t]&&t)if((s=_.call(t))==b)o=t;else if(s==M){a={};for(var l,u=0,c=t.length;u<c;l=t[u++],((s=_.call(l))==L||s==w)&&(a[l]=1));}if(n)if((s=_.call(n))==w){if((n-=n%1)>0)for(i="",n>10&&(n=10);i.length<n;i+=" ");}else s==L&&(i=n.length<=10?n:n.slice(0,10));return E("",((l={})[""]=e,l),o,a,i,"",[])}}if(!n("json-parse")){var A,P,Y=s.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},I=function(){throw A=P=null,c()},j=function(){for(var e,t,n,i,r,o=P,a=o.length;A<a;)switch(r=o.charCodeAt(A)){case 9:case 10:case 13:case 32:A++;break;case 123:case 125:case 91:case 93:case 58:case 44:return e=k?o.charAt(A):o[A],A++,e;case 34:for(e="@",A++;A<a;)if((r=o.charCodeAt(A))<32)I();else if(92==r)switch(r=o.charCodeAt(++A)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=O[r],A++;break;case 117:for(t=++A,n=A+4;A<n;A++)(r=o.charCodeAt(A))>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70||I();e+=Y("0x"+o.slice(t,A));break;default:I()}else{if(34==r)break;for(r=o.charCodeAt(A),t=A;r>=32&&92!=r&&34!=r;)r=o.charCodeAt(++A);e+=o.slice(t,A)}if(34==o.charCodeAt(A))return A++,e;I();default:if(t=A,45==r&&(i=!0,r=o.charCodeAt(++A)),r>=48&&r<=57){for(48==r&&(r=o.charCodeAt(A+1))>=48&&r<=57&&I(),i=!1;A<a&&(r=o.charCodeAt(A))>=48&&r<=57;A++);if(46==o.charCodeAt(A)){for(n=++A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}if(101==(r=o.charCodeAt(A))||69==r){for(43!=(r=o.charCodeAt(++A))&&45!=r||A++,n=A;n<a&&(r=o.charCodeAt(n))>=48&&r<=57;n++);n==A&&I(),A=n}return+o.slice(t,A)}if(i&&I(),"true"==o.slice(A,A+4))return A+=4,!0;if("false"==o.slice(A,A+5))return A+=5,!1;if("null"==o.slice(A,A+4))return A+=4,null;I()}return"$"},H=function(e){var t,n;if("$"==e&&I(),"string"==typeof e){if("@"==(k?e.charAt(0):e[0]))return e.slice(1);if("["==e){for(t=[];"]"!=(e=j());n||(n=!0))n&&(","==e?"]"==(e=j())&&I():I()),","==e&&I(),t.push(H(e));return t}if("{"==e){for(t={};"}"!=(e=j());n||(n=!0))n&&(","==e?"}"==(e=j())&&I():I()),","!=e&&"string"==typeof e&&"@"==(k?e.charAt(0):e[0])&&":"==j()||I(),t[e.slice(1)]=H(j());return t}I()}return e},B=function(e,t,n){var i=N(e,t,n);i===g?delete e[t]:e[t]=i},N=function(e,t,n){var i,r=e[t];if("object"==typeof r&&r)if(_.call(r)==M)for(i=r.length;i--;)B(r,i,n);else m(r,(function(e){B(r,e,n)}));return n.call(e,t,r)};t.parse=function(e,t){var n,i;return A=0,P=""+e,n=H(j()),"$"!=j()&&I(),A=P=null,t&&_.call(t)==b?N(((i={})[""]=n,i),"",t):n}}}return t.runInContext=i,t}var r={function:!0,object:!0},o=r[typeof t]&&t&&!t.nodeType&&t,a=r[typeof window]&&window||this,s=o&&r[typeof e]&&e&&!e.nodeType&&"object"==typeof n&&n;if(!s||s.global!==s&&s.window!==s&&s.self!==s||(a=s),o)i(a,o);else{var l=a.JSON,u=a.JSON3,c=!1,d=i(a,a.JSON3={noConflict:function(){return c||(c=!0,a.JSON=l,a.JSON3=u,l=u=null),d}});a.JSON={parse:d.parse,stringify:d.stringify}}}).call(this)}).call(t,n(12)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function n(e){if(e)return function(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}(e)}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},n.prototype.once=function(e,t){function n(){i.off(e,n),t.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},n.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks[e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){(function(e){var i=n(15),r=n(16);t.deconstructPacket=function(e){var t=[],n=e.data,o=e;return o.data=function e(n){if(!n)return n;if(r(n)){var o={_placeholder:!0,num:t.length};return t.push(n),o}if(i(n)){for(var a=new Array(n.length),s=0;s<n.length;s++)a[s]=e(n[s]);return a}if("object"==typeof n&&!(n instanceof Date)){for(var l in a={},n)a[l]=e(n[l]);return a}return n}(n),o.attachments=t.length,{packet:o,buffers:t}},t.reconstructPacket=function(e,t){return e.data=function e(n){if(n&&n._placeholder)return t[n.num];if(i(n)){for(var r=0;r<n.length;r++)n[r]=e(n[r]);return n}if(n&&"object"==typeof n){for(var o in n)n[o]=e(n[o]);return n}return n}(e.data),e.attachments=void 0,e},t.removeBlobs=function(t,n){var o=0,a=t;(function t(s,l,u){if(!s)return s;if(e.Blob&&s instanceof Blob||e.File&&s instanceof File){o++;var c=new FileReader;c.onload=function(){u?u[l]=this.result:a=this.result,--o||n(a)},c.readAsArrayBuffer(s)}else if(i(s))for(var d=0;d<s.length;d++)t(s[d],d,s);else if(s&&"object"==typeof s&&!r(s))for(var h in s)t(s[h],h,s)})(a),o||n(a)}}).call(t,function(){return this}())},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t){(function(t){e.exports=function(e){return t.Buffer&&t.Buffer.isBuffer(e)||t.ArrayBuffer&&e instanceof ArrayBuffer}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t){return this instanceof i?(e&&"object"===(void 0===e?"undefined":r(e))&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.nsps={},this.subs=[],this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this.readyState="closed",this.uri=e,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new l.Encoder,this.decoder=new l.Decoder,this.autoConnect=!1!==t.autoConnect,void(this.autoConnect&&this.open())):new i(e,t)}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(18),a=n(44),s=n(35),l=n(7),u=n(46),c=n(47),d=n(3)("socket.io-client:manager"),h=n(42),f=n(48),p=Object.prototype.hasOwnProperty;e.exports=i,i.prototype.emitAll=function(){for(var e in this.emit.apply(this,arguments),this.nsps)p.call(this.nsps,e)&&this.nsps[e].emit.apply(this.nsps[e],arguments)},i.prototype.updateSocketIds=function(){for(var e in this.nsps)p.call(this.nsps,e)&&(this.nsps[e].id=this.engine.id)},s(i.prototype),i.prototype.reconnection=function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection},i.prototype.reconnectionAttempts=function(e){return arguments.length?(this._reconnectionAttempts=e,this):this._reconnectionAttempts},i.prototype.reconnectionDelay=function(e){return arguments.length?(this._reconnectionDelay=e,this.backoff&&this.backoff.setMin(e),this):this._reconnectionDelay},i.prototype.randomizationFactor=function(e){return arguments.length?(this._randomizationFactor=e,this.backoff&&this.backoff.setJitter(e),this):this._randomizationFactor},i.prototype.reconnectionDelayMax=function(e){return arguments.length?(this._reconnectionDelayMax=e,this.backoff&&this.backoff.setMax(e),this):this._reconnectionDelayMax},i.prototype.timeout=function(e){return arguments.length?(this._timeout=e,this):this._timeout},i.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},i.prototype.open=i.prototype.connect=function(e,t){if(d("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;d("opening %s",this.uri),this.engine=o(this.uri,this.opts);var n=this.engine,i=this;this.readyState="opening",this.skipReconnect=!1;var r=u(n,"open",(function(){i.onopen(),e&&e()})),a=u(n,"error",(function(t){if(d("connect_error"),i.cleanup(),i.readyState="closed",i.emitAll("connect_error",t),e){var n=new Error("Connection error");n.data=t,e(n)}else i.maybeReconnectOnOpen()}));if(!1!==this._timeout){var s=this._timeout;d("connect attempt will timeout after %d",s);var l=setTimeout((function(){d("connect attempt timed out after %d",s),r.destroy(),n.close(),n.emit("error","timeout"),i.emitAll("connect_timeout",s)}),s);this.subs.push({destroy:function(){clearTimeout(l)}})}return this.subs.push(r),this.subs.push(a),this},i.prototype.onopen=function(){d("open"),this.cleanup(),this.readyState="open",this.emit("open");var e=this.engine;this.subs.push(u(e,"data",c(this,"ondata"))),this.subs.push(u(e,"ping",c(this,"onping"))),this.subs.push(u(e,"pong",c(this,"onpong"))),this.subs.push(u(e,"error",c(this,"onerror"))),this.subs.push(u(e,"close",c(this,"onclose"))),this.subs.push(u(this.decoder,"decoded",c(this,"ondecoded")))},i.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},i.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},i.prototype.ondata=function(e){this.decoder.add(e)},i.prototype.ondecoded=function(e){this.emit("packet",e)},i.prototype.onerror=function(e){d("error",e),this.emitAll("error",e)},i.prototype.socket=function(e,t){function n(){~h(r.connecting,i)||r.connecting.push(i)}var i=this.nsps[e];if(!i){i=new a(this,e,t),this.nsps[e]=i;var r=this;i.on("connecting",n),i.on("connect",(function(){i.id=r.engine.id})),this.autoConnect&&n()}return i},i.prototype.destroy=function(e){var t=h(this.connecting,e);~t&&this.connecting.splice(t,1),this.connecting.length||this.close()},i.prototype.packet=function(e){d("writing packet %j",e);var t=this;e.query&&0===e.type&&(e.nsp+="?"+e.query),t.encoding?t.packetBuffer.push(e):(t.encoding=!0,this.encoder.encode(e,(function(n){for(var i=0;i<n.length;i++)t.engine.write(n[i],e.options);t.encoding=!1,t.processPacketQueue()})))},i.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},i.prototype.cleanup=function(){d("cleanup");for(var e=this.subs.length,t=0;t<e;t++)this.subs.shift().destroy();this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},i.prototype.close=i.prototype.disconnect=function(){d("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},i.prototype.onclose=function(e){d("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()},i.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var e=this;if(this.backoff.attempts>=this._reconnectionAttempts)d("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();d("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout((function(){e.skipReconnect||(d("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open((function(t){t?(d("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(d("reconnect success"),e.onreconnect())})))}),t);this.subs.push({destroy:function(){clearTimeout(n)}})}},i.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},function(e,t,n){e.exports=n(19)},function(e,t,n){e.exports=n(20),e.exports.parser=n(27)},function(e,t,n){(function(t){function i(e,n){if(!(this instanceof i))return new i(e,n);n=n||{},e&&"object"==typeof e&&(n=e,e=null),e?(e=u(e),n.hostname=e.host,n.secure="https"===e.protocol||"wss"===e.protocol,n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=u(n.host).host),this.secure=null!=n.secure?n.secure:t.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(t.location?location.hostname:"localhost"),this.port=n.port||(t.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=d.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized?null:n.rejectUnauthorized,this.forceNode=!!n.forceNode;var r="object"==typeof t&&t;r.global===r&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}var r=n(21),o=n(35),a=n(3)("engine.io-client:socket"),s=n(42),l=n(27),u=n(2),c=n(43),d=n(36);e.exports=i,i.priorWebsocketSuccess=!1,o(i.prototype),i.protocol=l.protocol,i.Socket=i,i.Transport=n(26),i.transports=n(21),i.parser=n(27),i.prototype.createTransport=function(e){a('creating transport "%s"',e);var t=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}(this.query);return t.EIO=l.protocol,t.transport=e,this.id&&(t.sid=this.id),new r[e]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:t,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders,forceNode:this.forceNode,localAddress:this.localAddress})},i.prototype.open=function(){var e;if(this.rememberUpgrade&&i.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){var t=this;return void setTimeout((function(){t.emit("error","No transports available")}),0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)},i.prototype.setTransport=function(e){a("setting transport %s",e.name);var t=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",(function(){t.onDrain()})).on("packet",(function(e){t.onPacket(e)})).on("error",(function(e){t.onError(e)})).on("close",(function(){t.onClose("transport close")}))},i.prototype.probe=function(e){function t(){if(h.onlyBinaryUpgrades){var t=!this.supportsBinary&&h.transport.supportsBinary;d=d||t}d||(a('probe transport "%s" opened',e),c.send([{type:"ping",data:"probe"}]),c.once("packet",(function(t){if(!d)if("pong"===t.type&&"probe"===t.data){if(a('probe transport "%s" pong',e),h.upgrading=!0,h.emit("upgrading",c),!c)return;i.priorWebsocketSuccess="websocket"===c.name,a('pausing current transport "%s"',h.transport.name),h.transport.pause((function(){d||"closed"!==h.readyState&&(a("changing transport and sending upgrade packet"),u(),h.setTransport(c),c.send([{type:"upgrade"}]),h.emit("upgrade",c),c=null,h.upgrading=!1,h.flush())}))}else{a('probe transport "%s" failed',e);var n=new Error("probe error");n.transport=c.name,h.emit("upgradeError",n)}})))}function n(){d||(d=!0,u(),c.close(),c=null)}function r(t){var i=new Error("probe error: "+t);i.transport=c.name,n(),a('probe transport "%s" failed because of error: %s',e,t),h.emit("upgradeError",i)}function o(){r("transport closed")}function s(){r("socket closed")}function l(e){c&&e.name!==c.name&&(a('"%s" works - aborting "%s"',e.name,c.name),n())}function u(){c.removeListener("open",t),c.removeListener("error",r),c.removeListener("close",o),h.removeListener("close",s),h.removeListener("upgrading",l)}a('probing transport "%s"',e);var c=this.createTransport(e,{probe:1}),d=!1,h=this;i.priorWebsocketSuccess=!1,c.once("open",t),c.once("error",r),c.once("close",o),this.once("close",s),this.once("upgrading",l),c.open()},i.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",i.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},i.prototype.onPacket=function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(a('socket receive: type "%s", data "%s"',e.type,e.data),this.emit("packet",e),this.emit("heartbeat"),e.type){case"open":this.onHandshake(c(e.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emit("data",e.data),this.emit("message",e.data)}else a('packet received with socket readyState "%s"',this.readyState)},i.prototype.onHandshake=function(e){this.emit("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},i.prototype.onHeartbeat=function(e){clearTimeout(this.pingTimeoutTimer);var t=this;t.pingTimeoutTimer=setTimeout((function(){"closed"!==t.readyState&&t.onClose("ping timeout")}),e||t.pingInterval+t.pingTimeout)},i.prototype.setPing=function(){var e=this;clearTimeout(e.pingIntervalTimer),e.pingIntervalTimer=setTimeout((function(){a("writing ping packet - expecting pong within %sms",e.pingTimeout),e.ping(),e.onHeartbeat(e.pingTimeout)}),e.pingInterval)},i.prototype.ping=function(){var e=this;this.sendPacket("ping",(function(){e.emit("ping")}))},i.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},i.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},i.prototype.write=i.prototype.send=function(e,t,n){return this.sendPacket("message",e,t,n),this},i.prototype.sendPacket=function(e,t,n,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof n&&(i=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){(n=n||{}).compress=!1!==n.compress;var r={type:e,data:t,options:n};this.emit("packetCreate",r),this.writeBuffer.push(r),i&&this.once("flush",i),this.flush()}},i.prototype.close=function(){function e(){i.onClose("forced close"),a("socket closing - telling transport to close"),i.transport.close()}function t(){i.removeListener("upgrade",t),i.removeListener("upgradeError",t),e()}function n(){i.once("upgrade",t),i.once("upgradeError",t)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var i=this;this.writeBuffer.length?this.once("drain",(function(){this.upgrading?n():e()})):this.upgrading?n():e()}return this},i.prototype.onError=function(e){a("socket error %j",e),i.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)},i.prototype.onClose=function(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(a('socket close with reason: "%s"',e),clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)},i.prototype.filterUpgrades=function(e){for(var t=[],n=0,i=e.length;n<i;n++)~s(this.transports,e[n])&&t.push(e[n]);return t}}).call(t,function(){return this}())},function(e,t,n){(function(e){var i=n(22),r=n(24),o=n(39),a=n(40);t.polling=function(t){var n=!1,a=!1,s=!1!==t.jsonp;if(e.location){var l="https:"===location.protocol,u=location.port;u||(u=l?443:80),n=t.hostname!==location.hostname||u!==t.port,a=t.secure!==l}if(t.xdomain=n,t.xscheme=a,"open"in new i(t)&&!t.forceJSONP)return new r(t);if(!s)throw new Error("JSONP disabled");return new o(t)},t.websocket=a}).call(t,function(){return this}())},function(e,t,n){(function(t){var i=n(23);e.exports=function(e){var n=e.xdomain,r=e.xscheme,o=e.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!n||i))return new XMLHttpRequest}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!r&&o)return new XDomainRequest}catch(e){}if(!n)try{return new(t[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}}).call(t,function(){return this}())},function(e,t){try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},function(e,t,n){(function(t){function i(){}function r(e){if(l.call(this,e),this.requestTimeout=e.requestTimeout,t.location){var n="https:"===location.protocol,i=location.port;i||(i=n?443:80),this.xd=e.hostname!==t.location.hostname||i!==e.port,this.xs=e.secure!==n}else this.extraHeaders=e.extraHeaders}function o(e){this.method=e.method||"GET",this.uri=e.uri,this.xd=!!e.xd,this.xs=!!e.xs,this.async=!1!==e.async,this.data=void 0!==e.data?e.data:null,this.agent=e.agent,this.isBinary=e.isBinary,this.supportsBinary=e.supportsBinary,this.enablesXDR=e.enablesXDR,this.requestTimeout=e.requestTimeout,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.extraHeaders=e.extraHeaders,this.create()}function a(){for(var e in o.requests)o.requests.hasOwnProperty(e)&&o.requests[e].abort()}var s=n(22),l=n(25),u=n(35),c=n(37),d=n(3)("engine.io-client:polling-xhr");e.exports=r,e.exports.Request=o,c(r,l),r.prototype.supportsBinary=!0,r.prototype.request=function(e){return(e=e||{}).uri=this.uri(),e.xd=this.xd,e.xs=this.xs,e.agent=this.agent||!1,e.supportsBinary=this.supportsBinary,e.enablesXDR=this.enablesXDR,e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized,e.requestTimeout=this.requestTimeout,e.extraHeaders=this.extraHeaders,new o(e)},r.prototype.doWrite=function(e,t){var n="string"!=typeof e&&void 0!==e,i=this.request({method:"POST",data:e,isBinary:n}),r=this;i.on("success",t),i.on("error",(function(e){r.onError("xhr post error",e)})),this.sendXhr=i},r.prototype.doPoll=function(){d("xhr poll");var e=this.request(),t=this;e.on("data",(function(e){t.onData(e)})),e.on("error",(function(e){t.onError("xhr poll error",e)})),this.pollXhr=e},u(o.prototype),o.prototype.create=function(){var e={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new s(e),i=this;try{d("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders)for(var r in n.setDisableHeaderCheck(!0),this.extraHeaders)this.extraHeaders.hasOwnProperty(r)&&n.setRequestHeader(r,this.extraHeaders[r])}catch(e){}if(this.supportsBinary&&(n.responseType="arraybuffer"),"POST"===this.method)try{this.isBinary?n.setRequestHeader("Content-type","application/octet-stream"):n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{n.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){i.onLoad()},n.onerror=function(){i.onError(n.responseText)}):n.onreadystatechange=function(){4===n.readyState&&(200===n.status||1223===n.status?i.onLoad():setTimeout((function(){i.onError(n.status)}),0))},d("xhr data %s",this.data),n.send(this.data)}catch(e){return void setTimeout((function(){i.onError(e)}),0)}t.document&&(this.index=o.requestsCount++,o.requests[this.index]=this)},o.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},o.prototype.onData=function(e){this.emit("data",e),this.onSuccess()},o.prototype.onError=function(e){this.emit("error",e),this.cleanup(!0)},o.prototype.cleanup=function(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=i:this.xhr.onreadystatechange=i,e)try{this.xhr.abort()}catch(e){}t.document&&delete o.requests[this.index],this.xhr=null}},o.prototype.onLoad=function(){var e;try{var t;try{t=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(e){}if("application/octet-stream"===t)e=this.xhr.response||this.xhr.responseText;else if(this.supportsBinary)try{e=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(t){for(var n=new Uint8Array(this.xhr.response),i=[],r=0,o=n.length;r<o;r++)i.push(n[r]);e=String.fromCharCode.apply(null,i)}else e=this.xhr.responseText}catch(e){this.onError(e)}null!=e&&this.onData(e)},o.prototype.hasXDR=function(){return void 0!==t.XDomainRequest&&!this.xs&&this.enablesXDR},o.prototype.abort=function(){this.cleanup()},o.requestsCount=0,o.requests={},t.document&&(t.attachEvent?t.attachEvent("onunload",a):t.addEventListener&&t.addEventListener("beforeunload",a,!1))}).call(t,function(){return this}())},function(e,t,n){function i(e){var t=e&&e.forceBase64;c&&!t||(this.supportsBinary=!1),r.call(this,e)}var r=n(26),o=n(36),a=n(27),s=n(37),l=n(38),u=n(3)("engine.io-client:polling");e.exports=i;var c=null!=new(n(22))({xdomain:!1}).responseType;s(i,r),i.prototype.name="polling",i.prototype.doOpen=function(){this.poll()},i.prototype.pause=function(e){function t(){u("paused"),n.readyState="paused",e()}var n=this;if(this.readyState="pausing",this.polling||!this.writable){var i=0;this.polling&&(u("we are currently polling - waiting to pause"),i++,this.once("pollComplete",(function(){u("pre-pause polling complete"),--i||t()}))),this.writable||(u("we are currently writing - waiting to pause"),i++,this.once("drain",(function(){u("pre-pause writing complete"),--i||t()})))}else t()},i.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},i.prototype.onData=function(e){var t=this;u("polling got data %s",e),a.decodePayload(e,this.socket.binaryType,(function(e,n,i){return"opening"===t.readyState&&t.onOpen(),"close"===e.type?(t.onClose(),!1):void t.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},i.prototype.doClose=function(){function e(){u("writing close packet"),t.write([{type:"close"}])}var t=this;"open"===this.readyState?(u("transport open - closing"),e()):(u("transport not open - deferring close"),this.once("open",e))},i.prototype.write=function(e){var t=this;this.writable=!1;var n=function(){t.writable=!0,t.emit("drain")};a.encodePayload(e,this.supportsBinary,(function(e){t.doWrite(e,n)}))},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"https":"http",n="";return!1!==this.timestampRequests&&(e[this.timestampParam]=l()),this.supportsBinary||e.sid||(e.b64=1),e=o.encode(e),this.port&&("https"===t&&443!==Number(this.port)||"http"===t&&80!==Number(this.port))&&(n=":"+this.port),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e}},function(e,t,n){function i(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port,this.secure=e.secure,this.query=e.query,this.timestampParam=e.timestampParam,this.timestampRequests=e.timestampRequests,this.readyState="",this.agent=e.agent||!1,this.socket=e.socket,this.enablesXDR=e.enablesXDR,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.forceNode=e.forceNode,this.extraHeaders=e.extraHeaders,this.localAddress=e.localAddress}var r=n(27),o=n(35);e.exports=i,o(i.prototype),i.prototype.onError=function(e,t){var n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this},i.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},i.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},i.prototype.send=function(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)},i.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},i.prototype.onData=function(e){var t=r.decodePacket(e,this.socket.binaryType);this.onPacket(t)},i.prototype.onPacket=function(e){this.emit("packet",e)},i.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e,t,n){(function(e){function i(e,n){return n("b"+t.packets[e.type]+e.data.data)}function r(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=e.data,o=new Uint8Array(r),a=new Uint8Array(1+r.byteLength);a[0]=g[e.type];for(var s=0;s<o.length;s++)a[s+1]=o[s];return i(a.buffer)}function o(e,n,i){if(!n)return t.encodeBase64Packet(e,i);if(m)return function(e,n,i){if(!n)return t.encodeBase64Packet(e,i);var r=new FileReader;return r.onload=function(){e.data=r.result,t.encodePacket(e,n,!0,i)},r.readAsArrayBuffer(e.data)}(e,n,i);var r=new Uint8Array(1);return r[0]=g[e.type],i(new y([r.buffer,e.data]))}function a(e,t,n){for(var i=new Array(e.length),r=d(e.length,n),o=function(e,n,r){t(n,(function(t,n){i[e]=n,r(t,i)}))},a=0;a<e.length;a++)o(a,e[a],r)}var s,l=n(28),u=n(29),c=n(30),d=n(31),h=n(32);e&&e.ArrayBuffer&&(s=n(33));var f="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),p="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),m=f||p;t.protocol=3;var g=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},v=l(g),_={type:"error",data:"parser error"},y=n(34);t.encodePacket=function(t,n,a,s){"function"==typeof n&&(s=n,n=!1),"function"==typeof a&&(s=a,a=null);var l=void 0===t.data?void 0:t.data.buffer||t.data;if(e.ArrayBuffer&&l instanceof ArrayBuffer)return r(t,n,s);if(y&&l instanceof e.Blob)return o(t,n,s);if(l&&l.base64)return i(t,s);var u=g[t.type];return void 0!==t.data&&(u+=a?h.encode(String(t.data)):String(t.data)),s(""+u)},t.encodeBase64Packet=function(n,i){var r,o="b"+t.packets[n.type];if(y&&n.data instanceof e.Blob){var a=new FileReader;return a.onload=function(){var e=a.result.split(",")[1];i(o+e)},a.readAsDataURL(n.data)}try{r=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(e){for(var s=new Uint8Array(n.data),l=new Array(s.length),u=0;u<s.length;u++)l[u]=s[u];r=String.fromCharCode.apply(null,l)}return o+=e.btoa(r),i(o)},t.decodePacket=function(e,n,i){if(void 0===e)return _;if("string"==typeof e){if("b"==e.charAt(0))return t.decodeBase64Packet(e.substr(1),n);if(i&&!1===(e=function(e){try{e=h.decode(e)}catch(e){return!1}return e}(e)))return _;var r=e.charAt(0);return Number(r)==r&&v[r]?e.length>1?{type:v[r],data:e.substring(1)}:{type:v[r]}:_}r=new Uint8Array(e)[0];var o=c(e,1);return y&&"blob"===n&&(o=new y([o])),{type:v[r],data:o}},t.decodeBase64Packet=function(e,t){var n=v[e.charAt(0)];if(!s)return{type:n,data:{base64:!0,data:e.substr(1)}};var i=s.decode(e.substr(1));return"blob"===t&&y&&(i=new y([i])),{type:n,data:i}},t.encodePayload=function(e,n,i){"function"==typeof n&&(i=n,n=null);var r=u(e);return n&&r?y&&!m?t.encodePayloadAsBlob(e,i):t.encodePayloadAsArrayBuffer(e,i):e.length?void a(e,(function(e,i){t.encodePacket(e,!!r&&n,!0,(function(e){i(null,function(e){return e.length+":"+e}(e))}))}),(function(e,t){return i(t.join(""))})):i("0:")},t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i);var r;if("function"==typeof n&&(i=n,n=null),""==e)return i(_,0,1);for(var o,a,s="",l=0,u=e.length;l<u;l++){var c=e.charAt(l);if(":"!=c)s+=c;else{if(""==s||s!=(o=Number(s)))return i(_,0,1);if(s!=(a=e.substr(l+1,o)).length)return i(_,0,1);if(a.length){if(r=t.decodePacket(a,n,!0),_.type==r.type&&_.data==r.data)return i(_,0,1);if(!1===i(r,l+o,u))return}l+=o,s=""}}return""!=s?i(_,0,1):void 0},t.encodePayloadAsArrayBuffer=function(e,n){return e.length?void a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){return n(null,e)}))}),(function(e,t){var i=t.reduce((function(e,t){var n;return e+(n="string"==typeof t?t.length:t.byteLength).toString().length+n+2}),0),r=new Uint8Array(i),o=0;return t.forEach((function(e){var t="string"==typeof e,n=e;if(t){for(var i=new Uint8Array(e.length),a=0;a<e.length;a++)i[a]=e.charCodeAt(a);n=i.buffer}r[o++]=t?0:1;var s=n.byteLength.toString();for(a=0;a<s.length;a++)r[o++]=parseInt(s[a]);for(r[o++]=255,i=new Uint8Array(n),a=0;a<i.length;a++)r[o++]=i[a]})),n(r.buffer)})):n(new ArrayBuffer(0))},t.encodePayloadAsBlob=function(e,n){a(e,(function(e,n){t.encodePacket(e,!0,!0,(function(e){var t=new Uint8Array(1);if(t[0]=1,"string"==typeof e){for(var i=new Uint8Array(e.length),r=0;r<e.length;r++)i[r]=e.charCodeAt(r);e=i.buffer,t[0]=0}var o=(e instanceof ArrayBuffer?e.byteLength:e.size).toString(),a=new Uint8Array(o.length+1);for(r=0;r<o.length;r++)a[r]=parseInt(o[r]);if(a[o.length]=255,y){var s=new y([t.buffer,a.buffer,e]);n(null,s)}}))}),(function(e,t){return n(new y(t))}))},t.decodePayloadAsBinary=function(e,n,i){"function"==typeof n&&(i=n,n=null);for(var r=e,o=[],a=!1;r.byteLength>0;){for(var s=new Uint8Array(r),l=0===s[0],u="",d=1;255!=s[d];d++){if(u.length>310){a=!0;break}u+=s[d]}if(a)return i(_,0,1);r=c(r,2+u.length),u=parseInt(u);var h=c(r,0,u);if(l)try{h=String.fromCharCode.apply(null,new Uint8Array(h))}catch(e){var f=new Uint8Array(h);for(h="",d=0;d<f.length;d++)h+=String.fromCharCode(f[d])}o.push(h),r=c(r,u)}var p=o.length;o.forEach((function(e,r){i(t.decodePacket(e,n,!0),r,p)}))}}).call(t,function(){return this}())},function(e,t){e.exports=Object.keys||function(e){var t=[],n=Object.prototype.hasOwnProperty;for(var i in e)n.call(e,i)&&t.push(i);return t}},function(e,t,n){(function(t){var i=n(15);e.exports=function(e){return function e(n){if(!n)return!1;if(t.Buffer&&t.Buffer.isBuffer&&t.Buffer.isBuffer(n)||t.ArrayBuffer&&n instanceof ArrayBuffer||t.Blob&&n instanceof Blob||t.File&&n instanceof File)return!0;if(i(n)){for(var r=0;r<n.length;r++)if(e(n[r]))return!0}else if(n&&"object"==typeof n)for(var o in n.toJSON&&"function"==typeof n.toJSON&&(n=n.toJSON()),n)if(Object.prototype.hasOwnProperty.call(n,o)&&e(n[o]))return!0;return!1}(e)}}).call(t,function(){return this}())},function(e,t){e.exports=function(e,t,n){var i=e.byteLength;if(t=t||0,n=n||i,e.slice)return e.slice(t,n);if(t<0&&(t+=i),n<0&&(n+=i),n>i&&(n=i),t>=i||t>=n||0===i)return new ArrayBuffer(0);for(var r=new Uint8Array(e),o=new Uint8Array(n-t),a=t,s=0;a<n;a++,s++)o[s]=r[a];return o.buffer}},function(e,t){function n(){}e.exports=function(e,t,i){function r(e,n){if(r.count<=0)throw new Error("after called too many times");--r.count,e?(o=!0,t(e),t=i):0!==r.count||o||t(null,n)}var o=!1;return i=i||n,r.count=e,0===e?t():r}},function(e,t,n){var i;(function(e,r){!function(o){function a(e){for(var t,n,i=[],r=0,o=e.length;r<o;)(t=e.charCodeAt(r++))>=55296&&t<=56319&&r<o?56320==(64512&(n=e.charCodeAt(r++)))?i.push(((1023&t)<<10)+(1023&n)+65536):(i.push(t),r--):i.push(t);return i}function s(e,t){return m(e>>t&63|128)}function l(e){if(0==(4294967168&e))return m(e);var t="";return 0==(4294965248&e)?t=m(e>>6&31|192):0==(4294901760&e)?(t=m(e>>12&15|224),t+=s(e,6)):0==(4292870144&e)&&(t=m(e>>18&7|240),t+=s(e,12),t+=s(e,6)),t+m(63&e|128)}function u(){if(p>=f)throw Error("Invalid byte index");var e=255&h[p];if(p++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function c(){var e,t;if(p>f)throw Error("Invalid byte index");if(p==f)return!1;if(e=255&h[p],p++,0==(128&e))return e;if(192==(224&e)){if((t=(31&e)<<6|u())>=128)return t;throw Error("Invalid continuation byte")}if(224==(240&e)){if((t=(15&e)<<12|u()<<6|u())>=2048)return t;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=(15&e)<<18|u()<<12|u()<<6|u())>=65536&&t<=1114111)return t;throw Error("Invalid WTF-8 detected")}var d=("object"==typeof e&&e&&e.exports,"object"==typeof r&&r);d.global!==d&&d.window;var h,f,p,m=String.fromCharCode,g={version:"1.0.0",encode:function(e){for(var t=a(e),n=t.length,i=-1,r="";++i<n;)r+=l(t[i]);return r},decode:function(e){h=a(e),f=h.length,p=0;for(var t,n=[];!1!==(t=c());)n.push(t);return function(e){for(var t,n=e.length,i=-1,r="";++i<n;)(t=e[i])>65535&&(r+=m((t-=65536)>>>10&1023|55296),t=56320|1023&t),r+=m(t);return r}(n)}};void 0===(i=function(){return g}.call(t,n,t,e))||(e.exports=i)}()}).call(t,n(12)(e),function(){return this}())},function(e,t){!function(){"use strict";for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),i=0;i<e.length;i++)n[e.charCodeAt(i)]=i;t.encode=function(t){var n,i=new Uint8Array(t),r=i.length,o="";for(n=0;n<r;n+=3)o+=e[i[n]>>2],o+=e[(3&i[n])<<4|i[n+1]>>4],o+=e[(15&i[n+1])<<2|i[n+2]>>6],o+=e[63&i[n+2]];return r%3==2?o=o.substring(0,o.length-1)+"=":r%3==1&&(o=o.substring(0,o.length-2)+"=="),o},t.decode=function(e){var t,i,r,o,a,s=.75*e.length,l=e.length,u=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var c=new ArrayBuffer(s),d=new Uint8Array(c);for(t=0;t<l;t+=4)i=n[e.charCodeAt(t)],r=n[e.charCodeAt(t+1)],o=n[e.charCodeAt(t+2)],a=n[e.charCodeAt(t+3)],d[u++]=i<<2|r>>4,d[u++]=(15&r)<<4|o>>2,d[u++]=(3&o)<<6|63&a;return c}}()},function(e,t){(function(t){function n(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.buffer instanceof ArrayBuffer){var i=n.buffer;if(n.byteLength!==i.byteLength){var r=new Uint8Array(n.byteLength);r.set(new Uint8Array(i,n.byteOffset,n.byteLength)),i=r.buffer}e[t]=i}}}var i=t.BlobBuilder||t.WebKitBlobBuilder||t.MSBlobBuilder||t.MozBlobBuilder,r=function(){try{return 2===new Blob(["hi"]).size}catch(e){return!1}}(),o=r&&function(){try{return 2===new Blob([new Uint8Array([1,2])]).size}catch(e){return!1}}(),a=i&&i.prototype.append&&i.prototype.getBlob;e.exports=r?o?t.Blob:function(e,t){return n(e),new Blob(e,t||{})}:a?function(e,t){t=t||{};var r=new i;n(e);for(var o=0;o<e.length;o++)r.append(e[o]);return t.type?r.getBlob(t.type):r.getBlob()}:void 0}).call(t,function(){return this}())},function(e,t,n){function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var i,r=0;r<n.length;r++)if((i=n[r])===t||i.fn===t){n.splice(r,1);break}return this},i.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n)for(var i=0,r=(n=n.slice(0)).length;i<r;++i)n[i].apply(this,t);return this},i.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){t.encode=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){for(var t={},n=e.split("&"),i=0,r=n.length;i<r;i++){var o=n[i].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}},function(e,t){e.exports=function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){"use strict";function n(e){var t="";do{t=o[e%a]+t,e=Math.floor(e/a)}while(e>0);return t}function i(){var e=n(+new Date);return e!==r?(l=0,r=e):e+"."+n(l++)}for(var r,o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),a=64,s={},l=0,u=0;u<a;u++)s[o[u]]=u;i.encode=n,i.decode=function(e){var t=0;for(u=0;u<e.length;u++)t=t*a+s[e.charAt(u)];return t},e.exports=i},function(e,t,n){(function(t){function i(){}function r(e){o.call(this,e),this.query=this.query||{},s||(t.___eio||(t.___eio=[]),s=t.___eio),this.index=s.length;var n=this;s.push((function(e){n.onData(e)})),this.query.j=this.index,t.document&&t.addEventListener&&t.addEventListener("beforeunload",(function(){n.script&&(n.script.onerror=i)}),!1)}var o=n(25),a=n(37);e.exports=r;var s,l=/\n/g,u=/\\n/g;a(r,o),r.prototype.supportsBinary=!1,r.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),o.prototype.doClose.call(this)},r.prototype.doPoll=function(){var e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(t,n):(document.head||document.body).appendChild(t),this.script=t,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout((function(){var e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)}),100)},r.prototype.doWrite=function(e,t){function n(){i(),t()}function i(){if(r.iframe)try{r.form.removeChild(r.iframe)}catch(e){r.onError("jsonp polling iframe removal error",e)}try{var e='<iframe src="javascript:0" name="'+r.iframeId+'">';o=document.createElement(e)}catch(e){(o=document.createElement("iframe")).name=r.iframeId,o.src="javascript:0"}o.id=r.iframeId,r.form.appendChild(o),r.iframe=o}var r=this;if(!this.form){var o,a=document.createElement("form"),s=document.createElement("textarea"),c=this.iframeId="eio_iframe_"+this.index;a.className="socketio",a.style.position="absolute",a.style.top="-1000px",a.style.left="-1000px",a.target=c,a.method="POST",a.setAttribute("accept-charset","utf-8"),s.name="d",a.appendChild(s),document.body.appendChild(a),this.form=a,this.area=s}this.form.action=this.uri(),i(),e=e.replace(u,"\\\n"),this.area.value=e.replace(l,"\\n");try{this.form.submit()}catch(e){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===r.iframe.readyState&&n()}:this.iframe.onload=n}}).call(t,function(){return this}())},function(e,t,n){(function(t){function i(e){e&&e.forceBase64&&(this.supportsBinary=!1),this.perMessageDeflate=e.perMessageDeflate,this.usingBrowserWebSocket=d&&!e.forceNode,this.usingBrowserWebSocket||(h=r),o.call(this,e)}var r,o=n(26),a=n(27),s=n(36),l=n(37),u=n(38),c=n(3)("engine.io-client:websocket"),d=t.WebSocket||t.MozWebSocket;if("undefined"==typeof window)try{r=n(41)}catch(e){}var h=d;h||"undefined"!=typeof window||(h=r),e.exports=i,l(i,o),i.prototype.name="websocket",i.prototype.supportsBinary=!0,i.prototype.doOpen=function(){if(this.check()){var e=this.uri(),t={agent:this.agent,perMessageDeflate:this.perMessageDeflate};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(t.headers=this.extraHeaders),this.localAddress&&(t.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?new h(e):new h(e,void 0,t)}catch(e){return this.emit("error",e)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},i.prototype.addEventListeners=function(){var e=this;this.ws.onopen=function(){e.onOpen()},this.ws.onclose=function(){e.onClose()},this.ws.onmessage=function(t){e.onData(t.data)},this.ws.onerror=function(t){e.onError("websocket error",t)}},i.prototype.write=function(e){var n=this;this.writable=!1;for(var i=e.length,r=0,o=i;r<o;r++)!function(e){a.encodePacket(e,n.supportsBinary,(function(r){if(!n.usingBrowserWebSocket){var o={};e.options&&(o.compress=e.options.compress),n.perMessageDeflate&&("string"==typeof r?t.Buffer.byteLength(r):r.length)<n.perMessageDeflate.threshold&&(o.compress=!1)}try{n.usingBrowserWebSocket?n.ws.send(r):n.ws.send(r,o)}catch(e){c("websocket closed before onclose event")}--i||(n.emit("flush"),setTimeout((function(){n.writable=!0,n.emit("drain")}),0))}))}(e[r])},i.prototype.onClose=function(){o.prototype.onClose.call(this)},i.prototype.doClose=function(){void 0!==this.ws&&this.ws.close()},i.prototype.uri=function(){var e=this.query||{},t=this.secure?"wss":"ws",n="";return this.port&&("wss"===t&&443!==Number(this.port)||"ws"===t&&80!==Number(this.port))&&(n=":"+this.port),this.timestampRequests&&(e[this.timestampParam]=u()),this.supportsBinary||(e.b64=1),(e=s.encode(e)).length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e},i.prototype.check=function(){return!(!h||"__initialize"in h&&this.name===i.prototype.name)}}).call(t,function(){return this}())},function(e,t){},function(e,t){var n=[].indexOf;e.exports=function(e,t){if(n)return e.indexOf(t);for(var i=0;i<e.length;++i)if(e[i]===t)return i;return-1}},function(e,t){(function(t){var n=/^[\],:{}\s]*$/,i=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,o=/(?:^|:|,)(?:\s*\[)+/g,a=/^\s+/,s=/\s+$/;e.exports=function(e){return"string"==typeof e&&e?(e=e.replace(a,"").replace(s,""),t.JSON&&JSON.parse?JSON.parse(e):n.test(e.replace(i,"@").replace(r,"]").replace(o,""))?new Function("return "+e)():void 0):null}}).call(t,function(){return this}())},function(e,t,n){"use strict";function i(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var r=n(7),o=n(35),a=n(45),s=n(46),l=n(47),u=n(3)("socket.io-client:socket"),c=n(29);e.exports=i;var d={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},h=o.prototype.emit;o(i.prototype),i.prototype.subEvents=function(){if(!this.subs){var e=this.io;this.subs=[s(e,"open",l(this,"onopen")),s(e,"packet",l(this,"onpacket")),s(e,"close",l(this,"onclose"))]}},i.prototype.open=i.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},i.prototype.send=function(){var e=a(arguments);return e.unshift("message"),this.emit.apply(this,e),this},i.prototype.emit=function(e){if(d.hasOwnProperty(e))return h.apply(this,arguments),this;var t=a(arguments),n=r.EVENT;c(t)&&(n=r.BINARY_EVENT);var i={type:n,data:t,options:{}};return i.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(u("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),i.id=this.ids++),this.connected?this.packet(i):this.sendBuffer.push(i),delete this.flags,this},i.prototype.packet=function(e){e.nsp=this.nsp,this.io.packet(e)},i.prototype.onopen=function(){u("transport is open - connecting"),"/"!==this.nsp&&(this.query?this.packet({type:r.CONNECT,query:this.query}):this.packet({type:r.CONNECT}))},i.prototype.onclose=function(e){u("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",e)},i.prototype.onpacket=function(e){if(e.nsp===this.nsp)switch(e.type){case r.CONNECT:this.onconnect();break;case r.EVENT:case r.BINARY_EVENT:this.onevent(e);break;case r.ACK:case r.BINARY_ACK:this.onack(e);break;case r.DISCONNECT:this.ondisconnect();break;case r.ERROR:this.emit("error",e.data)}},i.prototype.onevent=function(e){var t=e.data||[];u("emitting event %j",t),null!=e.id&&(u("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?h.apply(this,t):this.receiveBuffer.push(t)},i.prototype.ack=function(e){var t=this,n=!1;return function(){if(!n){n=!0;var i=a(arguments);u("sending ack %j",i);var o=c(i)?r.BINARY_ACK:r.ACK;t.packet({type:o,id:e,data:i})}}},i.prototype.onack=function(e){var t=this.acks[e.id];"function"==typeof t?(u("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):u("bad ack %s",e.id)},i.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},i.prototype.emitBuffered=function(){var e;for(e=0;e<this.receiveBuffer.length;e++)h.apply(this,this.receiveBuffer[e]);for(this.receiveBuffer=[],e=0;e<this.sendBuffer.length;e++)this.packet(this.sendBuffer[e]);this.sendBuffer=[]},i.prototype.ondisconnect=function(){u("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},i.prototype.destroy=function(){if(this.subs){for(var e=0;e<this.subs.length;e++)this.subs[e].destroy();this.subs=null}this.io.destroy(this)},i.prototype.close=i.prototype.disconnect=function(){return this.connected&&(u("performing disconnect (%s)",this.nsp),this.packet({type:r.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},i.prototype.compress=function(e){return this.flags=this.flags||{},this.flags.compress=e,this}},function(e,t){e.exports=function(e,t){for(var n=[],i=(t=t||0)||0;i<e.length;i++)n[i-t]=e[i];return n}},function(e,t){"use strict";e.exports=function(e,t,n){return e.on(t,n),{destroy:function(){e.removeListener(t,n)}}}},function(e,t){var n=[].slice;e.exports=function(e,t){if("string"==typeof t&&(t=e[t]),"function"!=typeof t)throw new Error("bind() requires a function");var i=n.call(arguments,2);return function(){return t.apply(e,i.concat(n.call(arguments)))}}},function(e,t){function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=n,n.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(e){this.ms=e},n.prototype.setMax=function(e){this.max=e},n.prototype.setJitter=function(e){this.jitter=e}}])},"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():this.io=e(),function(){var e="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},t=e._,n=Array.prototype,i=Object.prototype,r="undefined"!=typeof Symbol?Symbol.prototype:null,o=n.push,a=n.slice,s=i.toString,l=i.hasOwnProperty,u=Array.isArray,c=Object.keys,d=Object.create,h=function(){},f=function(e){return e instanceof f?e:this instanceof f?void(this._wrapped=e):new f(e)};"undefined"==typeof exports||exports.nodeType?e._=f:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=f),exports._=f),f.VERSION="1.9.1";var p,m=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,i,r){return e.call(t,n,i,r)};case 4:return function(n,i,r,o){return e.call(t,n,i,r,o)}}return function(){return e.apply(t,arguments)}},g=function(e,t,n){return f.iteratee!==p?f.iteratee(e,t):null==e?f.identity:f.isFunction(e)?m(e,t,n):f.isObject(e)&&!f.isArray(e)?f.matcher(e):f.property(e)};f.iteratee=p=function(e,t){return g(e,t,1/0)};var v=function(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),i=Array(n),r=0;r<n;r++)i[r]=arguments[r+t];switch(t){case 0:return e.call(this,i);case 1:return e.call(this,arguments[0],i);case 2:return e.call(this,arguments[0],arguments[1],i)}var o=Array(t+1);for(r=0;r<t;r++)o[r]=arguments[r];return o[t]=i,e.apply(this,o)}},_=function(e){if(!f.isObject(e))return{};if(d)return d(e);h.prototype=e;var t=new h;return h.prototype=null,t},y=function(e){return function(t){return null==t?void 0:t[e]}},b=function(e,t){return null!=e&&l.call(e,t)},w=function(e,t){for(var n=t.length,i=0;i<n;i++){if(null==e)return;e=e[t[i]]}return n?e:void 0},L=Math.pow(2,53)-1,M=y("length"),k=function(e){var t=M(e);return"number"==typeof t&&0<=t&&t<=L};f.each=f.forEach=function(e,t,n){var i,r;if(t=m(t,n),k(e))for(i=0,r=e.length;i<r;i++)t(e[i],i,e);else{var o=f.keys(e);for(i=0,r=o.length;i<r;i++)t(e[o[i]],o[i],e)}return e},f.map=f.collect=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=Array(r),a=0;a<r;a++){var s=i?i[a]:a;o[a]=t(e[s],s,e)}return o};var x=function(e){return function(t,n,i,r){var o=3<=arguments.length;return function(t,n,i,r){var o=!k(t)&&f.keys(t),a=(o||t).length,s=0<e?0:a-1;for(r||(i=t[o?o[s]:s],s+=e);0<=s&&s<a;s+=e){var l=o?o[s]:s;i=n(i,t[l],l,t)}return i}(t,m(n,r,4),i,o)}};f.reduce=f.foldl=f.inject=x(1),f.reduceRight=f.foldr=x(-1),f.find=f.detect=function(e,t,n){var i=(k(e)?f.findIndex:f.findKey)(e,t,n);if(void 0!==i&&-1!==i)return e[i]},f.filter=f.select=function(e,t,n){var i=[];return t=g(t,n),f.each(e,(function(e,n,r){t(e,n,r)&&i.push(e)})),i},f.reject=function(e,t,n){return f.filter(e,f.negate(g(t)),n)},f.every=f.all=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(!t(e[a],a,e))return!1}return!0},f.some=f.any=function(e,t,n){t=g(t,n);for(var i=!k(e)&&f.keys(e),r=(i||e).length,o=0;o<r;o++){var a=i?i[o]:o;if(t(e[a],a,e))return!0}return!1},f.contains=f.includes=f.include=function(e,t,n,i){return k(e)||(e=f.values(e)),("number"!=typeof n||i)&&(n=0),0<=f.indexOf(e,t,n)},f.invoke=v((function(e,t,n){var i,r;return f.isFunction(t)?r=t:f.isArray(t)&&(i=t.slice(0,-1),t=t[t.length-1]),f.map(e,(function(e){var o=r;if(!o){if(i&&i.length&&(e=w(e,i)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)}))})),f.pluck=function(e,t){return f.map(e,f.property(t))},f.where=function(e,t){return f.filter(e,f.matcher(t))},f.findWhere=function(e,t){return f.find(e,f.matcher(t))},f.max=function(e,t,n){var i,r,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&o<i&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){r=t(e,n,i),(a<r||r===-1/0&&o===-1/0)&&(o=e,a=r)}));return o},f.min=function(e,t,n){var i,r,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(i=e[s])&&i<o&&(o=i);else t=g(t,n),f.each(e,(function(e,n,i){((r=t(e,n,i))<a||r===1/0&&o===1/0)&&(o=e,a=r)}));return o},f.shuffle=function(e){return f.sample(e,1/0)},f.sample=function(e,t,n){if(null==t||n)return k(e)||(e=f.values(e)),e[f.random(e.length-1)];var i=k(e)?f.clone(e):f.values(e),r=M(i);t=Math.max(Math.min(t,r),0);for(var o=r-1,a=0;a<t;a++){var s=f.random(a,o),l=i[a];i[a]=i[s],i[s]=l}return i.slice(0,t)},f.sortBy=function(e,t,n){var i=0;return t=g(t,n),f.pluck(f.map(e,(function(e,n,r){return{value:e,index:i++,criteria:t(e,n,r)}})).sort((function(e,t){var n=e.criteria,i=t.criteria;if(n!==i){if(i<n||void 0===n)return 1;if(n<i||void 0===i)return-1}return e.index-t.index})),"value")};var S=function(e,t){return function(n,i,r){var o=t?[[],[]]:{};return i=g(i,r),f.each(n,(function(t,r){var a=i(t,r,n);e(o,t,a)})),o}};f.groupBy=S((function(e,t,n){b(e,n)?e[n].push(t):e[n]=[t]})),f.indexBy=S((function(e,t,n){e[n]=t})),f.countBy=S((function(e,t,n){b(e,n)?e[n]++:e[n]=1}));var T=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;f.toArray=function(e){return e?f.isArray(e)?a.call(e):f.isString(e)?e.match(T):k(e)?f.map(e,f.identity):f.values(e):[]},f.size=function(e){return null==e?0:k(e)?e.length:f.keys(e).length},f.partition=S((function(e,t,n){e[n?0:1].push(t)}),!0),f.first=f.head=f.take=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[0]:f.initial(e,e.length-t)},f.initial=function(e,t,n){return a.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},f.last=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[e.length-1]:f.rest(e,Math.max(0,e.length-t))},f.rest=f.tail=f.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},f.compact=function(e){return f.filter(e,Boolean)};var $=function(e,t,n,i){for(var r=(i=i||[]).length,o=0,a=M(e);o<a;o++){var s=e[o];if(k(s)&&(f.isArray(s)||f.isArguments(s)))if(t)for(var l=0,u=s.length;l<u;)i[r++]=s[l++];else $(s,t,n,i),r=i.length;else n||(i[r++]=s)}return i};f.flatten=function(e,t){return $(e,t,!1)},f.without=v((function(e,t){return f.difference(e,t)})),f.uniq=f.unique=function(e,t,n,i){f.isBoolean(t)||(i=n,n=t,t=!1),null!=n&&(n=g(n,i));for(var r=[],o=[],a=0,s=M(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||r.push(l),o=u):n?f.contains(o,u)||(o.push(u),r.push(l)):f.contains(r,l)||r.push(l)}return r},f.union=v((function(e){return f.uniq($(e,!0,!0))})),f.intersection=function(e){for(var t=[],n=arguments.length,i=0,r=M(e);i<r;i++){var o=e[i];if(!f.contains(t,o)){var a;for(a=1;a<n&&f.contains(arguments[a],o);a++);a===n&&t.push(o)}}return t},f.difference=v((function(e,t){return t=$(t,!0,!0),f.filter(e,(function(e){return!f.contains(t,e)}))})),f.unzip=function(e){for(var t=e&&f.max(e,M).length||0,n=Array(t),i=0;i<t;i++)n[i]=f.pluck(e,i);return n},f.zip=v(f.unzip),f.object=function(e,t){for(var n={},i=0,r=M(e);i<r;i++)t?n[e[i]]=t[i]:n[e[i][0]]=e[i][1];return n};var D=function(e){return function(t,n,i){n=g(n,i);for(var r=M(t),o=0<e?0:r-1;0<=o&&o<r;o+=e)if(n(t[o],o,t))return o;return-1}};f.findIndex=D(1),f.findLastIndex=D(-1),f.sortedIndex=function(e,t,n,i){for(var r=(n=g(n,i,1))(t),o=0,a=M(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<r?o=s+1:a=s}return o};var C=function(e,t,n){return function(i,r,o){var s=0,l=M(i);if("number"==typeof o)0<e?s=0<=o?o:Math.max(o+l,s):l=0<=o?Math.min(o+1,l):o+l+1;else if(n&&o&&l)return i[o=n(i,r)]===r?o:-1;if(r!=r)return 0<=(o=t(a.call(i,s,l),f.isNaN))?o+s:-1;for(o=0<e?s:l-1;0<=o&&o<l;o+=e)if(i[o]===r)return o;return-1}};f.indexOf=C(1,f.findIndex,f.sortedIndex),f.lastIndexOf=C(-1,f.findLastIndex),f.range=function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var i=Math.max(Math.ceil((t-e)/n),0),r=Array(i),o=0;o<i;o++,e+=n)r[o]=e;return r},f.chunk=function(e,t){if(null==t||t<1)return[];for(var n=[],i=0,r=e.length;i<r;)n.push(a.call(e,i,i+=t));return n};var E=function(e,t,n,i,r){if(!(i instanceof t))return e.apply(n,r);var o=_(e.prototype),a=e.apply(o,r);return f.isObject(a)?a:o};f.bind=v((function(e,t,n){if(!f.isFunction(e))throw new TypeError("Bind must be called on a function");var i=v((function(r){return E(e,i,t,this,n.concat(r))}));return i})),f.partial=v((function(e,t){var n=f.partial.placeholder,i=function(){for(var r=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[r++]:t[s];for(;r<arguments.length;)a.push(arguments[r++]);return E(e,i,this,this,a)};return i})),(f.partial.placeholder=f).bindAll=v((function(e,t){var n=(t=$(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var i=t[n];e[i]=f.bind(e[i],e)}})),f.memoize=function(e,t){var n=function(i){var r=n.cache,o=""+(t?t.apply(this,arguments):i);return b(r,o)||(r[o]=e.apply(this,arguments)),r[o]};return n.cache={},n},f.delay=v((function(e,t,n){return setTimeout((function(){return e.apply(null,n)}),t)})),f.defer=f.partial(f.delay,f,1),f.throttle=function(e,t,n){var i,r,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:f.now(),i=null,a=e.apply(r,o),i||(r=o=null)},u=function(){var u=f.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return r=this,o=arguments,c<=0||t<c?(i&&(clearTimeout(i),i=null),s=u,a=e.apply(r,o),i||(r=o=null)):i||!1===n.trailing||(i=setTimeout(l,c)),a};return u.cancel=function(){clearTimeout(i),s=0,i=r=o=null},u},f.debounce=function(e,t,n){var i,r,o=function(t,n){i=null,n&&(r=e.apply(t,n))},a=v((function(a){if(i&&clearTimeout(i),n){var s=!i;i=setTimeout(o,t),s&&(r=e.apply(this,a))}else i=f.delay(o,t,this,a);return r}));return a.cancel=function(){clearTimeout(i),i=null},a},f.wrap=function(e,t){return f.partial(t,e)},f.negate=function(e){return function(){return!e.apply(this,arguments)}},f.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,i=e[t].apply(this,arguments);n--;)i=e[n].call(this,i);return i}},f.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},f.before=function(e,t){var n;return function(){return 0<--e&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},f.once=f.partial(f.before,2),f.restArguments=v;var A=!{toString:null}.propertyIsEnumerable("toString"),P=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Y=function(e,t){var n=P.length,r=e.constructor,o=f.isFunction(r)&&r.prototype||i,a="constructor";for(b(e,a)&&!f.contains(t,a)&&t.push(a);n--;)(a=P[n])in e&&e[a]!==o[a]&&!f.contains(t,a)&&t.push(a)};f.keys=function(e){if(!f.isObject(e))return[];if(c)return c(e);var t=[];for(var n in e)b(e,n)&&t.push(n);return A&&Y(e,t),t},f.allKeys=function(e){if(!f.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&Y(e,t),t},f.values=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=e[t[r]];return i},f.mapObject=function(e,t,n){t=g(t,n);for(var i=f.keys(e),r=i.length,o={},a=0;a<r;a++){var s=i[a];o[s]=t(e[s],s,e)}return o},f.pairs=function(e){for(var t=f.keys(e),n=t.length,i=Array(n),r=0;r<n;r++)i[r]=[t[r],e[t[r]]];return i},f.invert=function(e){for(var t={},n=f.keys(e),i=0,r=n.length;i<r;i++)t[e[n[i]]]=n[i];return t},f.functions=f.methods=function(e){var t=[];for(var n in e)f.isFunction(e[n])&&t.push(n);return t.sort()};var O=function(e,t){return function(n){var i=arguments.length;if(t&&(n=Object(n)),i<2||null==n)return n;for(var r=1;r<i;r++)for(var o=arguments[r],a=e(o),s=a.length,l=0;l<s;l++){var u=a[l];t&&void 0!==n[u]||(n[u]=o[u])}return n}};f.extend=O(f.allKeys),f.extendOwn=f.assign=O(f.keys),f.findKey=function(e,t,n){t=g(t,n);for(var i,r=f.keys(e),o=0,a=r.length;o<a;o++)if(t(e[i=r[o]],i,e))return i};var I,j,H=function(e,t,n){return t in n};f.pick=v((function(e,t){var n={},i=t[0];if(null==e)return n;f.isFunction(i)?(1<t.length&&(i=m(i,t[1])),t=f.allKeys(e)):(i=H,t=$(t,!1,!1),e=Object(e));for(var r=0,o=t.length;r<o;r++){var a=t[r],s=e[a];i(s,a,e)&&(n[a]=s)}return n})),f.omit=v((function(e,t){var n,i=t[0];return f.isFunction(i)?(i=f.negate(i),1<t.length&&(n=t[1])):(t=f.map($(t,!1,!1),String),i=function(e,n){return!f.contains(t,n)}),f.pick(e,i,n)})),f.defaults=O(f.allKeys,!0),f.create=function(e,t){var n=_(e);return t&&f.extendOwn(n,t),n},f.clone=function(e){return f.isObject(e)?f.isArray(e)?e.slice():f.extend({},e):e},f.tap=function(e,t){return t(e),e},f.isMatch=function(e,t){var n=f.keys(t),i=n.length;if(null==e)return!i;for(var r=Object(e),o=0;o<i;o++){var a=n[o];if(t[a]!==r[a]||!(a in r))return!1}return!0},I=function(e,t,n,i){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var r=typeof e;return("function"===r||"object"===r||"object"==typeof t)&&j(e,t,n,i)},j=function(e,t,n,i){e instanceof f&&(e=e._wrapped),t instanceof f&&(t=t._wrapped);var o=s.call(e);if(o!==s.call(t))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return r.valueOf.call(e)===r.valueOf.call(t)}var a="[object Array]"===o;if(!a){if("object"!=typeof e||"object"!=typeof t)return!1;var l=e.constructor,u=t.constructor;if(l!==u&&!(f.isFunction(l)&&l instanceof l&&f.isFunction(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1}i=i||[];for(var c=(n=n||[]).length;c--;)if(n[c]===e)return i[c]===t;if(n.push(e),i.push(t),a){if((c=e.length)!==t.length)return!1;for(;c--;)if(!I(e[c],t[c],n,i))return!1}else{var d,h=f.keys(e);if(c=h.length,f.keys(t).length!==c)return!1;for(;c--;)if(d=h[c],!b(t,d)||!I(e[d],t[d],n,i))return!1}return n.pop(),i.pop(),!0},f.isEqual=function(e,t){return I(e,t)},f.isEmpty=function(e){return null==e||(k(e)&&(f.isArray(e)||f.isString(e)||f.isArguments(e))?0===e.length:0===f.keys(e).length)},f.isElement=function(e){return!(!e||1!==e.nodeType)},f.isArray=u||function(e){return"[object Array]"===s.call(e)},f.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},f.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],(function(e){f["is"+e]=function(t){return s.call(t)==="[object "+e+"]"}})),f.isArguments(arguments)||(f.isArguments=function(e){return b(e,"callee")});var B=e.document&&e.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof B&&(f.isFunction=function(e){return"function"==typeof e||!1}),f.isFinite=function(e){return!f.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},f.isNaN=function(e){return f.isNumber(e)&&isNaN(e)},f.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===s.call(e)},f.isNull=function(e){return null===e},f.isUndefined=function(e){return void 0===e},f.has=function(e,t){if(!f.isArray(t))return b(e,t);for(var n=t.length,i=0;i<n;i++){var r=t[i];if(null==e||!l.call(e,r))return!1;e=e[r]}return!!n},f.noConflict=function(){return e._=t,this},f.identity=function(e){return e},f.constant=function(e){return function(){return e}},f.noop=function(){},f.property=function(e){return f.isArray(e)?function(t){return w(t,e)}:y(e)},f.propertyOf=function(e){return null==e?function(){}:function(t){return f.isArray(t)?w(e,t):e[t]}},f.matcher=f.matches=function(e){return e=f.extendOwn({},e),function(t){return f.isMatch(t,e)}},f.times=function(e,t,n){var i=Array(Math.max(0,e));t=m(t,n,1);for(var r=0;r<e;r++)i[r]=t(r);return i},f.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},f.now=Date.now||function(){return(new Date).getTime()};var N={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},R=f.invert(N),F=function(e){var t=function(t){return e[t]},n="(?:"+f.keys(e).join("|")+")",i=RegExp(n),r=RegExp(n,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(r,t):e}};f.escape=F(N),f.unescape=F(R),f.result=function(e,t,n){f.isArray(t)||(t=[t]);var i=t.length;if(!i)return f.isFunction(n)?n.call(e):n;for(var r=0;r<i;r++){var o=null==e?void 0:e[t[r]];void 0===o&&(o=n,r=i),e=f.isFunction(o)?o.call(e):o}return e};var z=0;f.uniqueId=function(e){var t=++z+"";return e?e+t:t},f.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+U[e]};f.template=function(e,t,n){!t&&n&&(t=n),t=f.defaults({},t,f.templateSettings);var i,r=RegExp([(t.escape||V).source,(t.interpolate||V).source,(t.evaluate||V).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(r,(function(t,n,i,r,s){return a+=e.slice(o,s).replace(W,q),o=s+t.length,n?a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":i?a+="'+\n((__t=("+i+"))==null?'':__t)+\n'":r&&(a+="';\n"+r+"\n__p+='"),t})),a+="';\n",t.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{i=new Function(t.variable||"obj","_",a)}catch(t){throw t.source=a,t}var s=function(e){return i.call(this,e,f)},l=t.variable||"obj";return s.source="function("+l+"){\n"+a+"}",s},f.chain=function(e){var t=f(e);return t._chain=!0,t};var G=function(e,t){return e._chain?f(t).chain():t};f.mixin=function(e){return f.each(f.functions(e),(function(t){var n=f[t]=e[t];f.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),G(this,n.apply(f,e))}})),f},f.mixin(f),f.each(["pop","push","reverse","shift","sort","splice","unshift"],(function(e){var t=n[e];f.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],G(this,n)}})),f.each(["concat","join","slice"],(function(e){var t=n[e];f.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}})),f.prototype.value=function(){return this._wrapped},f.prototype.valueOf=f.prototype.toJSON=f.prototype.value,f.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],(function(){return f}))}(),function(){function e(e){this.mode=i.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t<n;t++){var r=[],o=this.data.charCodeAt(t);o>65536?(r[0]=240|(1835008&o)>>>18,r[1]=128|(258048&o)>>>12,r[2]=128|(4032&o)>>>6,r[3]=128|63&o):o>2048?(r[0]=224|(61440&o)>>>12,r[1]=128|(4032&o)>>>6,r[2]=128|63&o):o>128?(r[0]=192|(1984&o)>>>6,r[1]=128|63&o):r[0]=o,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function n(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}e.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t<n;t++)e.put(this.parsedData[t],8)}},n.prototype={addData:function(t){var n=new e(t);this.dataList.push(n),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++){this.modules[i]=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++)this.modules[i][r]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=n.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var i=-1;i<=7;i++)t+i<=-1||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&n<=6&&(0==i||6==i)||0<=i&&i<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=i&&i<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var i=o.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){var i=e.createEmptyMovieClip(t,n);this.make();for(var r=0;r<this.modules.length;r++)for(var o=1*r,a=0;a<this.modules[r].length;a++){var s=1*a;this.modules[r][a]&&(i.beginFill(0,100),i.moveTo(s,o),i.lineTo(s+1,o),i.lineTo(s+1,o+1),i.lineTo(s,o+1),i.endFill())}return i},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},setupPositionAdjustPattern:function(){for(var e=o.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var i=e[t],r=e[n];if(null==this.modules[i][r])for(var a=-2;a<=2;a++)for(var s=-2;s<=2;s++)this.modules[i+a][r+s]=-2==a||2==a||-2==s||2==s||0==a&&0==s}},setupTypeNumber:function(e){for(var t=o.getBCHTypeNumber(this.typeNumber),n=0;n<18;n++){var i=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;n<18;n++)i=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,i=o.getBCHTypeInfo(n),r=0;r<15;r++){var a=!e&&1==(i>>r&1);r<6?this.modules[r][8]=a:r<8?this.modules[r+1][8]=a:this.modules[this.moduleCount-15+r][8]=a}for(r=0;r<15;r++)a=!e&&1==(i>>r&1),r<8?this.modules[8][this.moduleCount-r-1]=a:r<9?this.modules[8][15-r-1+1]=a:this.modules[8][15-r-1]=a;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,r=7,a=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var l=0;l<2;l++)if(null==this.modules[i][s-l]){var u=!1;a<e.length&&(u=1==(e[a]>>>r&1)),o.getMask(t,i,s-l)&&(u=!u),this.modules[i][s-l]=u,-1==--r&&(a++,r=7)}if((i+=n)<0||this.moduleCount<=i){i-=n,n=-n;break}}}},n.PAD0=236,n.PAD1=17,n.createData=function(e,t,i){for(var r=u.getRSBlocks(e,t),a=new c,s=0;s<i.length;s++){var l=i[s];a.put(l.mode,4),a.put(l.getLength(),o.getLengthInBits(l.mode,e)),l.write(a)}var d=0;for(s=0;s<r.length;s++)d+=r[s].dataCount;if(a.getLengthInBits()>8*d)throw new Error("code length overflow. ("+a.getLengthInBits()+">"+8*d+")");for(a.getLengthInBits()+4<=8*d&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(!1);for(;!(a.getLengthInBits()>=8*d||(a.put(n.PAD0,8),a.getLengthInBits()>=8*d));)a.put(n.PAD1,8);return n.createBytes(a,r)},n.createBytes=function(e,t){for(var n=0,i=0,r=0,a=new Array(t.length),s=new Array(t.length),u=0;u<t.length;u++){var c=t[u].dataCount,d=t[u].totalCount-c;i=Math.max(i,c),r=Math.max(r,d),a[u]=new Array(c);for(var h=0;h<a[u].length;h++)a[u][h]=255&e.buffer[h+n];n+=c;var f=o.getErrorCorrectPolynomial(d),p=new l(a[u],f.getLength()-1).mod(f);for(s[u]=new Array(f.getLength()-1),h=0;h<s[u].length;h++){var m=h+p.getLength()-s[u].length;s[u][h]=m>=0?p.get(m):0}}var g=0;for(h=0;h<t.length;h++)g+=t[h].totalCount;var v=new Array(g),_=0;for(h=0;h<i;h++)for(u=0;u<t.length;u++)h<a[u].length&&(v[_++]=a[u][h]);for(h=0;h<r;h++)for(u=0;u<t.length;u++)h<s[u].length&&(v[_++]=s[u][h]);return v};for(var i={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},r={L:1,M:0,Q:3,H:2},o={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;o.getBCHDigit(t)-o.getBCHDigit(o.G15)>=0;)t^=o.G15<<o.getBCHDigit(t)-o.getBCHDigit(o.G15);return(e<<10|t)^o.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;o.getBCHDigit(t)-o.getBCHDigit(o.G18)>=0;)t^=o.G18<<o.getBCHDigit(t)-o.getBCHDigit(o.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return o.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return(t+n)%2==0;case 1:return t%2==0;case 2:return n%3==0;case 3:return(t+n)%3==0;case 4:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case 5:return t*n%2+t*n%3==0;case 6:return(t*n%2+t*n%3)%2==0;case 7:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new l([1],0),n=0;n<e;n++)t=t.multiply(new l([1,a.gexp(n)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case i.MODE_NUMBER:return 10;case i.MODE_ALPHA_NUM:return 9;case i.MODE_8BIT_BYTE:case i.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case i.MODE_NUMBER:return 12;case i.MODE_ALPHA_NUM:return 11;case i.MODE_8BIT_BYTE:return 16;case i.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case i.MODE_NUMBER:return 14;case i.MODE_ALPHA_NUM:return 13;case i.MODE_8BIT_BYTE:return 16;case i.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;i<t;i++)for(var r=0;r<t;r++){for(var o=0,a=e.isDark(i,r),s=-1;s<=1;s++)if(!(i+s<0||t<=i+s))for(var l=-1;l<=1;l++)r+l<0||t<=r+l||0==s&&0==l||a==e.isDark(i+s,r+l)&&o++;o>5&&(n+=3+o-5)}for(i=0;i<t-1;i++)for(r=0;r<t-1;r++){var u=0;e.isDark(i,r)&&u++,e.isDark(i+1,r)&&u++,e.isDark(i,r+1)&&u++,e.isDark(i+1,r+1)&&u++,0!=u&&4!=u||(n+=3)}for(i=0;i<t;i++)for(r=0;r<t-6;r++)e.isDark(i,r)&&!e.isDark(i,r+1)&&e.isDark(i,r+2)&&e.isDark(i,r+3)&&e.isDark(i,r+4)&&!e.isDark(i,r+5)&&e.isDark(i,r+6)&&(n+=40);for(r=0;r<t;r++)for(i=0;i<t-6;i++)e.isDark(i,r)&&!e.isDark(i+1,r)&&e.isDark(i+2,r)&&e.isDark(i+3,r)&&e.isDark(i+4,r)&&!e.isDark(i+5,r)&&e.isDark(i+6,r)&&(n+=40);var c=0;for(r=0;r<t;r++)for(i=0;i<t;i++)e.isDark(i,r)&&c++;return n+Math.abs(100*c/t/t-50)/5*10}},a={glog:function(e){if(e<1)throw new Error("glog("+e+")");return a.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return a.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},s=0;s<8;s++)a.EXP_TABLE[s]=1<<s;for(s=8;s<256;s++)a.EXP_TABLE[s]=a.EXP_TABLE[s-4]^a.EXP_TABLE[s-5]^a.EXP_TABLE[s-6]^a.EXP_TABLE[s-8];for(s=0;s<255;s++)a.LOG_TABLE[a.EXP_TABLE[s]]=s;function l(e,t){if(null==e.length)throw new Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=new Array(e.length-n+t);for(var i=0;i<e.length-n;i++)this.num[i]=e[i+n]}function u(e,t){this.totalCount=e,this.dataCount=t}function c(){this.buffer=[],this.length=0}l.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var i=0;i<e.getLength();i++)t[n+i]^=a.gexp(a.glog(this.get(n))+a.glog(e.get(i)));return new l(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=a.glog(this.get(0))-a.glog(e.get(0)),n=new Array(this.getLength()),i=0;i<this.getLength();i++)n[i]=this.get(i);for(i=0;i<e.getLength();i++)n[i]^=a.gexp(a.glog(e.get(i))+t);return new l(n,0).mod(e)}},u.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],u.getRSBlocks=function(e,t){var n=u.getRsBlockTable(e,t);if(null==n)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var i=n.length/3,r=[],o=0;o<i;o++)for(var a=n[3*o+0],s=n[3*o+1],l=n[3*o+2],c=0;c<a;c++)r.push(new u(s,l));return r},u.getRsBlockTable=function(e,t){switch(t){case r.L:return u.RS_BLOCK_TABLE[4*(e-1)+0];case r.M:return u.RS_BLOCK_TABLE[4*(e-1)+1];case r.Q:return u.RS_BLOCK_TABLE[4*(e-1)+2];case r.H:return u.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},c.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var n=0;n<t;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var d=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function h(){var e=!1,t=navigator.userAgent;if(/android/i.test(t)){e=!0;var n=t.toString().match(/android ([0-9]\.[0-9])/i);n&&n[1]&&(e=parseFloat(n[1]))}return e}var f=function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){var t=this._htOption,n=this._el,i=e.getModuleCount();function r(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e);for(var i in t)t.hasOwnProperty(i)&&n.setAttribute(i,t[i]);return n}Math.floor(t.width/i),Math.floor(t.height/i),this.clear();var o=r("svg",{viewBox:"0 0 "+String(i)+" "+String(i),width:"100%",height:"100%",fill:t.colorLight});o.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),n.appendChild(o),o.appendChild(r("rect",{fill:t.colorLight,width:"100%",height:"100%"})),o.appendChild(r("rect",{fill:t.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a<i;a++)for(var s=0;s<i;s++)if(e.isDark(a,s)){var l=r("use",{x:String(s),y:String(a)});l.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),o.appendChild(l)}},e.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},e}(),p="svg"===document.documentElement.tagName.toLowerCase()?f:"undefined"==typeof CanvasRenderingContext2D?function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){for(var t=this._htOption,n=this._el,i=e.getModuleCount(),r=Math.floor(t.width/i),o=Math.floor(t.height/i),a=['<table style="border:0;border-collapse:collapse;">'],s=0;s<i;s++){a.push("<tr>");for(var l=0;l<i;l++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:'+r+"px;height:"+o+"px;background-color:"+(e.isDark(s,l)?t.colorDark:t.colorLight)+';"></td>');a.push("</tr>")}a.push("</table>"),n.innerHTML=a.join("");var u=n.childNodes[0],c=(t.width-u.offsetWidth)/2,d=(t.height-u.offsetHeight)/2;c>0&&d>0&&(u.style.margin=d+"px "+c+"px")},e.prototype.clear=function(){this._el.innerHTML=""},e}():function(){function e(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}if(this._android&&this._android<=2.1){var t=1/window.devicePixelRatio,n=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(e,i,r,o,a,s,l,u,c){if("nodeName"in e&&/img/i.test(e.nodeName))for(var d=arguments.length-1;d>=1;d--)arguments[d]=arguments[d]*t;else void 0===u&&(arguments[1]*=t,arguments[2]*=t,arguments[3]*=t,arguments[4]*=t);n.apply(this,arguments)}}function i(e,t){var n=this;if(n._fFail=t,n._fSuccess=e,null===n._bSupportDataURI){var i=document.createElement("img"),r=function(){n._bSupportDataURI=!1,n._fFail&&n._fFail.call(n)};return i.onabort=r,i.onerror=r,i.onload=function(){n._bSupportDataURI=!0,n._fSuccess&&n._fSuccess.call(n)},void(i.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===n._bSupportDataURI&&n._fSuccess?n._fSuccess.call(n):!1===n._bSupportDataURI&&n._fFail&&n._fFail.call(n)}var r=function(e,t){this._bIsPainted=!1,this._android=h(),this._htOption=t,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=t.width,this._elCanvas.height=t.height,e.appendChild(this._elCanvas),this._el=e,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return r.prototype.draw=function(e){var t=this._elImage,n=this._oContext,i=this._htOption,r=e.getModuleCount(),o=i.width/r,a=i.height/r,s=Math.round(o),l=Math.round(a);t.style.display="none",this.clear();for(var u=0;u<r;u++)for(var c=0;c<r;c++){var d=e.isDark(u,c),h=c*o,f=u*a;n.strokeStyle=d?i.colorDark:i.colorLight,n.lineWidth=1,n.fillStyle=d?i.colorDark:i.colorLight,n.fillRect(h,f,o,a),n.strokeRect(Math.floor(h)+.5,Math.floor(f)+.5,s,l),n.strokeRect(Math.ceil(h)-.5,Math.ceil(f)-.5,s,l)}this._bIsPainted=!0},r.prototype.makeImage=function(){this._bIsPainted&&i.call(this,e)},r.prototype.isPainted=function(){return this._bIsPainted},r.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},r.prototype.round=function(e){return e?Math.floor(1e3*e)/1e3:e},r}();(t=function(e,t){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:r.H},"string"==typeof t&&(t={text:t}),t)for(var n in t)this._htOption[n]=t[n];"string"==typeof e&&(e=document.getElementById(e)),this._htOption.useSVG&&(p=f),this._android=h(),this._el=e,this._oQRCode=null,this._oDrawing=new p(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)}).prototype.makeCode=function(e){this._oQRCode=new n(function(e,t){for(var n=1,i=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),o=0,a=d.length;o<=a;o++){var s=0;switch(t){case r.L:s=d[o][0];break;case r.M:s=d[o][1];break;case r.Q:s=d[o][2];break;case r.H:s=d[o][3]}if(i<=s)break;n++}if(n>d.length)throw new Error("Too long data");return n}(e,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(e),this._oQRCode.make(),this._el.title=e,this._oDrawing.draw(this._oQRCode),this.makeImage()},t.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},t.prototype.clear=function(){this._oDrawing.clear()},t.CorrectLevel=r}(),
+/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */
+function(e){"use strict";function t(e){return parseInt(e)===e}function n(e){if(!t(e.length))return!1;for(var n=0;n<e.length;n++)if(!t(e[n])||e[n]<0||e[n]>255)return!1;return!0}function i(e,i){if(e.buffer&&"Uint8Array"===e.name)return i&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(t(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function r(e){return new Uint8Array(e)}function o(e,t,n,i,r){null==i&&null==r||(e=e.slice?e.slice(i,r):Array.prototype.slice.call(e,i,r)),t.set(e,n)}var a,s={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var i=e[n];i<128?(t.push(String.fromCharCode(i)),n++):i>191&&i<224?(t.push(String.fromCharCode((31&i)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&i)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},l=(a="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];t.push(a[(240&i)>>4]+a[15&i])}return t.join("")}}),u={16:10,24:12,32:14},c=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],d=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],h=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],f=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],p=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],m=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],v=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],_=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],y=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],b=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],w=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],L=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],M=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],k=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function x(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var S=function(e){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};S.prototype._prepare=function(){var e=u[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,i=4*(e+1),r=this.key.length/4,o=x(this.key);for(t=0;t<r;t++)n=t>>2,this._Ke[n][t%4]=o[t],this._Kd[e-n][t%4]=o[t];for(var a,s=0,l=r;l<i;){if(a=o[r-1],o[0]^=d[a>>16&255]<<24^d[a>>8&255]<<16^d[255&a]<<8^d[a>>24&255]^c[s]<<24,s+=1,8!=r)for(t=1;t<r;t++)o[t]^=o[t-1];else{for(t=1;t<r/2;t++)o[t]^=o[t-1];for(a=o[r/2-1],o[r/2]^=d[255&a]^d[a>>8&255]<<8^d[a>>16&255]<<16^d[a>>24&255]<<24,t=r/2+1;t<r;t++)o[t]^=o[t-1]}for(t=0;t<r&&l<i;)h=l>>2,f=l%4,this._Ke[h][f]=o[t],this._Kd[e-h][f]=o[t++],l++}for(var h=1;h<e;h++)for(var f=0;f<4;f++)a=this._Kd[h][f],this._Kd[h][f]=w[a>>24&255]^L[a>>16&255]^M[a>>8&255]^k[255&a]},S.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Ke[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=f[i[o]>>24&255]^p[i[(o+1)%4]>>16&255]^m[i[(o+2)%4]>>8&255]^g[255&i[(o+3)%4]]^this._Ke[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Ke[t][o],l[4*o]=255&(d[i[o]>>24&255]^s>>24),l[4*o+1]=255&(d[i[(o+1)%4]>>16&255]^s>>16),l[4*o+2]=255&(d[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(d[255&i[(o+3)%4]]^s);return l},S.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],i=x(e),o=0;o<4;o++)i[o]^=this._Kd[0][o];for(var a=1;a<t;a++){for(o=0;o<4;o++)n[o]=v[i[o]>>24&255]^_[i[(o+3)%4]>>16&255]^y[i[(o+2)%4]>>8&255]^b[255&i[(o+1)%4]]^this._Kd[a][o];i=n.slice()}var s,l=r(16);for(o=0;o<4;o++)s=this._Kd[t][o],l[4*o]=255&(h[i[o]>>24&255]^s>>24),l[4*o+1]=255&(h[i[(o+3)%4]>>16&255]^s>>16),l[4*o+2]=255&(h[i[(o+2)%4]>>8&255]^s>>8),l[4*o+3]=255&(h[255&i[(o+1)%4]]^s);return l};var T=function(e){if(!(this instanceof T))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new S(e)};T.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.encrypt(n),t,a);return t},T.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),o(n=this._aes.decrypt(n),t,a);return t};var $=function(e,t){if(!(this instanceof $))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastCipherblock=i(t,!0),this._aes=new S(e)};$.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,a)}return t},$.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=r(e.length),n=r(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[a+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,a,a+16)}return t};var D=function(e,t,n){if(!(this instanceof D))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=r(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new S(e)};D.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},D.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var C=function(e,t){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=r(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new S(e)};C.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},C.prototype.decrypt=C.prototype.encrypt;var E=function(e){if(!(this instanceof E))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=r(16),this.setValue(e)):this.setBytes(e)};E.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},E.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},E.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var A=function(e,t){if(!(this instanceof A))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof E||(t=new E(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new S(e)};A.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},A.prototype.decrypt=A.prototype.encrypt;var P={AES:S,Counter:E,ModeOfOperation:{ecb:T,cbc:$,cfb:D,ofb:C,ctr:A},utils:{hex:l,utf8:s},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=r(e.length+t);o(e,n);for(var a=e.length;a<n.length;a++)n[a]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,a=0;a<t;a++)if(e[n+a]!==t)throw new Error("PKCS#7 invalid padding byte");var s=r(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:r,copyArray:o}};"undefined"!=typeof exports?module.exports=P:"function"==typeof define&&define.amd?define([],(function(){return P})):(e.aesjs&&(P._aesjs=e.aesjs),e.aesjs=P)}(this),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(function(){try{return require("moment")}catch(e){}}()):"function"==typeof define&&define.amd?define(["require"],(function(e){return t(function(){try{return e("moment")}catch(e){}}())})):(e=e||self).Chart=t(e.moment)}(this,(function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(e,t){return e(t={exports:{}}),t.exports}((function(e){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[t[i]]=i);var r=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in r)if(r.hasOwnProperty(o)){if(!("channels"in r[o]))throw new Error("missing channels property: "+o);if(!("labels"in r[o]))throw new Error("missing channel labels property: "+o);if(r[o].labels.length!==r[o].channels)throw new Error("channel and label counts mismatch: "+o);var a=r[o].channels,s=r[o].labels;delete r[o].channels,delete r[o].labels,Object.defineProperty(r[o],"channels",{value:a}),Object.defineProperty(r[o],"labels",{value:s})}r.rgb.hsl=function(e){var t,n,i=e[0]/255,r=e[1]/255,o=e[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a;return s===a?t=0:i===s?t=(r-o)/l:r===s?t=2+(o-i)/l:o===s&&(t=4+(i-r)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(a+s)/2,[t,100*(s===a?0:n<=.5?l/(s+a):l/(2-s-a)),100*n]},r.rgb.hsv=function(e){var t,n,i,r,o,a=e[0]/255,s=e[1]/255,l=e[2]/255,u=Math.max(a,s,l),c=u-Math.min(a,s,l),d=function(e){return(u-e)/6/c+.5};return 0===c?r=o=0:(o=c/u,t=d(a),n=d(s),i=d(l),a===u?r=i-n:s===u?r=1/3+t-i:l===u&&(r=2/3+n-t),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*u]},r.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[r.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,i))*100,100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},r.rgb.cmyk=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-i,1-r)))/(1-t)||0),100*((1-i-t)/(1-t)||0),100*((1-r-t)/(1-t)||0),100*t]},r.rgb.keyword=function(e){var i=n[e];if(i)return i;var r,o,a,s=1/0;for(var l in t)if(t.hasOwnProperty(l)){var u=(o=e,a=t[l],Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2));u<s&&(s=u,r=l)}return r},r.keyword.rgb=function(e){return t[e]},r.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,i=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*t+.7152*n+.0722*i),100*(.0193*t+.1192*n+.9505*i)]},r.rgb.lab=function(e){var t=r.rgb.xyz(e),n=t[0],i=t[1],o=t[2];return i/=100,o/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]},r.hsl.rgb=function(e){var t,n,i,r,o,a=e[0]/360,s=e[1]/100,l=e[2]/100;if(0===s)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+s):l+s-l*s),r=[0,0,0];for(var u=0;u<3;u++)(i=a+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?t+6*(n-t)*i:2*i<1?n:3*i<2?t+(n-t)*(2/3-i)*6:t,r[u]=255*o;return r},r.hsl.hsv=function(e){var t=e[0],n=e[1]/100,i=e[2]/100,r=n,o=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,r*=o<=1?o:2-o,[t,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},r.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,i=e[2]/100,r=Math.floor(t)%6,o=t-Math.floor(t),a=255*i*(1-n),s=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,a];case 1:return[s,i,a];case 2:return[a,i,l];case 3:return[a,s,i];case 4:return[l,a,i];case 5:return[i,a,s]}},r.hsv.hsl=function(e){var t,n,i,r=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return i=(2-o)*a,n=o*s,[r,100*(n=(n/=(t=(2-o)*s)<=1?t:2-t)||0),100*(i/=2)]},r.hwb.rgb=function(e){var t,n,i,r,o,a,s,l=e[0]/360,u=e[1]/100,c=e[2]/100,d=u+c;switch(d>1&&(u/=d,c/=d),i=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(i=1-i),r=u+i*((n=1-c)-u),t){default:case 6:case 0:o=n,a=r,s=u;break;case 1:o=r,a=n,s=u;break;case 2:o=u,a=n,s=r;break;case 3:o=u,a=r,s=n;break;case 4:o=r,a=u,s=n;break;case 5:o=n,a=u,s=r}return[255*o,255*a,255*s]},r.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,i=e[2]/100,r=e[3]/100;return[255*(1-Math.min(1,t*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},r.xyz.rgb=function(e){var t,n,i,r=e[0]/100,o=e[1]/100,a=e[2]/100;return n=-.9689*r+1.8758*o+.0415*a,i=.0557*r+-.204*o+1.057*a,t=(t=3.2406*r+-1.5372*o+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},r.xyz.lab=function(e){var t=e[0],n=e[1],i=e[2];return n/=100,i/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},r.lab.xyz=function(e){var t,n,i,r=e[0];t=e[1]/500+(n=(r+16)/116),i=n-e[2]/200;var o=Math.pow(n,3),a=Math.pow(t,3),s=Math.pow(i,3);return n=o>.008856?o:(n-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[t*=95.047,n*=100,i*=108.883]},r.lab.lch=function(e){var t,n=e[0],i=e[1],r=e[2];return(t=360*Math.atan2(r,i)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(i*i+r*r),t]},r.lch.lab=function(e){var t,n=e[0],i=e[1];return t=e[2]/360*2*Math.PI,[n,i*Math.cos(t),i*Math.sin(t)]},r.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],o=1 in arguments?arguments[1]:r.rgb.hsv(e)[2];if(0===(o=Math.round(o/50)))return 30;var a=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===o&&(a+=60),a},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){var t=e[0],n=e[1],i=e[2];return t===n&&n===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},r.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},r.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},r.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},r.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},r.rgb.hcg=function(e){var t,n=e[0]/255,i=e[1]/255,r=e[2]/255,o=Math.max(Math.max(n,i),r),a=Math.min(Math.min(n,i),r),s=o-a;return t=s<=0?0:o===n?(i-r)/s%6:o===i?2+(r-n)/s:4+(n-i)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?a/(1-s):0)]},r.hsl.hcg=function(e){var t,n=e[1]/100,i=e[2]/100,r=0;return(t=i<.5?2*n*i:2*n*(1-i))<1&&(r=(i-.5*t)/(1-t)),[e[0],100*t,100*r]},r.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,i=t*n,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,i=e[2]/100;if(0===n)return[255*i,255*i,255*i];var r,o=[0,0,0],a=t%1*6,s=a%1,l=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return r=(1-n)*i,[255*(n*o[0]+r),255*(n*o[1]+r),255*(n*o[2]+r)]},r.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),i=0;return n>0&&(i=t/n),[e[0],100*i,100*n]},r.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],100*i,100*n]},r.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},r.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,i=n-t,r=0;return i<1&&(r=(n-i)/(1-i)),[e[0],100*i,100*r]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=r.gray.hsv=function(e){return[0,0,e[0]]},r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function i(e){var t=function(){for(var e={},t=Object.keys(n),i=t.length,r=0;r<i;r++)e[t[r]]={distance:-1,parent:null};return e}(),i=[e];for(t[e].distance=0;i.length;)for(var r=i.pop(),o=Object.keys(n[r]),a=o.length,s=0;s<a;s++){var l=o[s],u=t[l];-1===u.distance&&(u.distance=t[r].distance+1,u.parent=r,i.unshift(l))}return t}function r(e,t){return function(n){return t(e(n))}}function o(e,t){for(var i=[t[e].parent,e],o=n[t[e].parent][e],a=t[e].parent;t[a].parent;)i.unshift(t[a].parent),o=r(n[t[a].parent][a],o),a=t[a].parent;return o.conversion=i,o}n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;var a={};Object.keys(n).forEach((function(e){a[e]={},Object.defineProperty(a[e],"channels",{value:n[e].channels}),Object.defineProperty(a[e],"labels",{value:n[e].labels});var t=function(e){for(var t=i(e),n={},r=Object.keys(t),a=r.length,s=0;s<a;s++){var l=r[s];null!==t[l].parent&&(n[l]=o(l,t))}return n}(e);Object.keys(t).forEach((function(n){var i=t[n];a[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var i=n.length,r=0;r<i;r++)n[r]=Math.round(n[r]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(i),a[e][n].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(i)}))}));var s=a,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:c,getHsla:d,getRgb:function(e){var t=c(e);return t&&t.slice(0,3)},getHsl:function(e){var t=d(e);return t&&t.slice(0,3)},getHwb:h,getAlpha:function(e){var t=c(e);return t?t[3]:(t=d(e))?t[3]:(t=h(e))?t[3]:void 0},hexString:function(e,t){return t=void 0!==t&&3===e.length?t:e[3],"#"+v(e[0])+v(e[1])+v(e[2])+(t>=0&&t<1?v(Math.round(255*t)):"")},rgbString:function(e,t){return t<1||e[3]&&e[3]<1?f(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:f,percentString:function(e,t){return t<1||e[3]&&e[3]<1?p(e,t):"rgb("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%)"},percentaString:p,hslString:function(e,t){return t<1||e[3]&&e[3]<1?m(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:m,hwbString:function(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"},keyword:function(e){return _[e.slice(0,3)]}};function c(e){if(e){var t=[0,0,0],n=1,i=e.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(i){r=(i=i[1])[3];for(var o=0;o<t.length;o++)t[o]=parseInt(i[o]+i[o],16);r&&(n=Math.round(parseInt(r+r,16)/255*100)/100)}else if(i=e.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(r=i[2],i=i[1],o=0;o<t.length;o++)t[o]=parseInt(i.slice(2*o,2*o+2),16);r&&(n=Math.round(parseInt(r,16)/255*100)/100)}else if(i=e.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=parseInt(i[o+1]);n=parseFloat(i[4])}else if(i=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=Math.round(2.55*parseFloat(i[o+1]));n=parseFloat(i[4])}else if(i=e.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(t=l[i[1]]))return}for(o=0;o<t.length;o++)t[o]=g(t[o],0,255);return n=n||0==n?g(n,0,1):1,t[3]=n,t}}function d(e){if(e){var t=e.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function h(e){if(e){var t=e.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[g(parseInt(t[1]),0,360),g(parseFloat(t[2]),0,100),g(parseFloat(t[3]),0,100),g(isNaN(n)?1:n,0,1)]}}}function f(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function p(e,t){return"rgba("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%, "+(t||e[3]||1)+")"}function m(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function g(e,t,n){return Math.min(Math.max(t,e),n)}function v(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}var _={};for(var y in l)_[l[y]]=y;var b=function(e){return e instanceof b?e:this instanceof b?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof e?(t=u.getRgba(e))?this.setValues("rgb",t):(t=u.getHsla(e))?this.setValues("hsl",t):(t=u.getHwb(e))&&this.setValues("hwb",t):"object"==typeof e&&(void 0!==(t=e).r||void 0!==t.red?this.setValues("rgb",t):void 0!==t.l||void 0!==t.lightness?this.setValues("hsl",t):void 0!==t.v||void 0!==t.value?this.setValues("hsv",t):void 0!==t.w||void 0!==t.whiteness?this.setValues("hwb",t):void 0===t.c&&void 0===t.cyan||this.setValues("cmyk",t)))):new b(e);var t};b.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e=(e%=360)<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return u.hexString(this.values.rgb)},rgbString:function(){return u.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return u.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return u.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return u.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return u.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return u.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return u.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;n<e.length;n++){var i=e[n]/255;t[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function(e){var t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=e,i=void 0===t?.5:t,r=2*i-1,o=this.alpha()-n.alpha(),a=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,s=1-a;return this.rgb(a*this.red()+s*n.red(),a*this.green()+s*n.green(),a*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new b,i=this.values,r=n.values;for(var o in i)i.hasOwnProperty(o)&&(e=i[o],"[object Array]"===(t={}.toString.call(e))?r[o]=e.slice(0):"[object Number]"===t?r[o]=e:console.error("unexpected color value:",e));return n}},b.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},b.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},b.prototype.getValues=function(e){for(var t=this.values,n={},i=0;i<e.length;i++)n[e.charAt(i)]=t[e][i];return 1!==t.alpha&&(n.a=t.alpha),n},b.prototype.setValues=function(e,t){var n,i,r=this.values,o=this.spaces,a=this.maxes,l=1;if(this.valid=!0,"alpha"===e)l=t;else if(t.length)r[e]=t.slice(0,e.length),l=t[e.length];else if(void 0!==t[e.charAt(0)]){for(n=0;n<e.length;n++)r[e][n]=t[e.charAt(n)];l=t.a}else if(void 0!==t[o[e][0]]){var u=o[e];for(n=0;n<e.length;n++)r[e][n]=t[u[n]];l=t.alpha}if(r.alpha=Math.max(0,Math.min(1,void 0===l?r.alpha:l)),"alpha"===e)return!1;for(n=0;n<e.length;n++)i=Math.max(0,Math.min(a[e][n],r[e][n])),r[e][n]=Math.round(i);for(var c in o)c!==e&&(r[c]=s[e][c](r[e]));return!0},b.prototype.setSpace=function(e,t){var n=t[0];return void 0===n?this.getValues(e):("number"==typeof n&&(n=Array.prototype.slice.call(t)),this.setValues(e,n),this)},b.prototype.setChannel=function(e,t,n){var i=this.values[e];return void 0===n?i[t]:n===i[t]?this:(i[t]=n,this.setValues(e,i),this)},"undefined"!=typeof window&&(window.Color=b);var w,L=b,M={noop:function(){},uid:(w=0,function(){return w++}),isNullOrUndef:function(e){return null==e},isArray:function(e){if(Array.isArray&&Array.isArray(e))return!0;var t=Object.prototype.toString.call(e);return"[object"===t.substr(0,7)&&"Array]"===t.substr(-6)},isObject:function(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},isFinite:function(e){return("number"==typeof e||e instanceof Number)&&isFinite(e)},valueOrDefault:function(e,t){return void 0===e?t:e},valueAtIndexOrDefault:function(e,t,n){return M.valueOrDefault(M.isArray(e)?e[t]:e,n)},callback:function(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)},each:function(e,t,n,i){var r,o,a;if(M.isArray(e))if(o=e.length,i)for(r=o-1;r>=0;r--)t.call(n,e[r],r);else for(r=0;r<o;r++)t.call(n,e[r],r);else if(M.isObject(e))for(o=(a=Object.keys(e)).length,r=0;r<o;r++)t.call(n,e[a[r]],a[r])},arrayEquals:function(e,t){var n,i,r,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,i=e.length;n<i;++n)if(r=e[n],o=t[n],r instanceof Array&&o instanceof Array){if(!M.arrayEquals(r,o))return!1}else if(r!==o)return!1;return!0},clone:function(e){if(M.isArray(e))return e.map(M.clone);if(M.isObject(e)){for(var t={},n=Object.keys(e),i=n.length,r=0;r<i;++r)t[n[r]]=M.clone(e[n[r]]);return t}return e},_merger:function(e,t,n,i){var r=t[e],o=n[e];M.isObject(r)&&M.isObject(o)?M.merge(r,o,i):t[e]=M.clone(o)},_mergerIf:function(e,t,n){var i=t[e],r=n[e];M.isObject(i)&&M.isObject(r)?M.mergeIf(i,r):t.hasOwnProperty(e)||(t[e]=M.clone(r))},merge:function(e,t,n){var i,r,o,a,s,l=M.isArray(t)?t:[t],u=l.length;if(!M.isObject(e))return e;for(i=(n=n||{}).merger||M._merger,r=0;r<u;++r)if(t=l[r],M.isObject(t))for(s=0,a=(o=Object.keys(t)).length;s<a;++s)i(o[s],e,t,n);return e},mergeIf:function(e,t){return M.merge(e,t,{merger:M._mergerIf})},extend:Object.assign||function(e){return M.merge(e,[].slice.call(arguments,1),{merger:function(e,t,n){t[e]=n[e]}})},inherits:function(e){var t=this,n=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return t.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=t.prototype,n.prototype=new i,n.extend=M.inherits,e&&M.extend(n.prototype,e),n.__super__=t.prototype,n},_deprecated:function(e,t,n,i){void 0!==t&&console.warn(e+': "'+n+'" is deprecated. Please use "'+i+'" instead')}},k=M;M.callCallback=M.callback,M.indexOf=function(e,t,n){return Array.prototype.indexOf.call(e,t,n)},M.getValueOrDefault=M.valueOrDefault,M.getValueAtIndexOrDefault=M.valueAtIndexOrDefault;var x={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return-e*(e-2)},easeInOutQuad:function(e){return(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1)},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return(e-=1)*e*e+1},easeInOutCubic:function(e){return(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return-((e-=1)*e*e*e-1)},easeInOutQuart:function(e){return(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return(e-=1)*e*e*e*e+1},easeInOutQuint:function(e){return(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},easeInSine:function(e){return 1-Math.cos(e*(Math.PI/2))},easeOutSine:function(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function(e){return 1===e?1:1-Math.pow(2,-10*e)},easeInOutExpo:function(e){return 0===e?0:1===e?1:(e/=.5)<1?.5*Math.pow(2,10*(e-1)):.5*(2-Math.pow(2,-10*--e))},easeInCirc:function(e){return e>=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:2==(e/=.5)?1:(n||(n=.45),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),e<1?i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-x.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*x.easeInBounce(2*e):.5*x.easeOutBounce(2*e-1)+.5}},S={effects:x};k.easingEffects=x;var T=Math.PI,$=T/180,D=2*T,C=T/2,E=T/4,A=2*T/3,P={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,i,r,o){if(o){var a=Math.min(o,r/2,i/2),s=t+a,l=n+a,u=t+i-a,c=n+r-a;e.moveTo(t,l),s<u&&l<c?(e.arc(s,l,a,-T,-C),e.arc(u,l,a,-C,0),e.arc(u,c,a,0,C),e.arc(s,c,a,C,T)):s<u?(e.moveTo(s,n),e.arc(u,l,a,-C,C),e.arc(s,l,a,C,T+C)):l<c?(e.arc(s,l,a,-T,0),e.arc(s,c,a,0,T)):e.arc(s,l,a,-T,T),e.closePath(),e.moveTo(t,n)}else e.rect(t,n,i,r)},drawPoint:function(e,t,n,i,r,o){var a,s,l,u,c,d=(o||0)*$;if(t&&"object"==typeof t&&("[object HTMLImageElement]"===(a=t.toString())||"[object HTMLCanvasElement]"===a))return e.save(),e.translate(i,r),e.rotate(d),e.drawImage(t,-t.width/2,-t.height/2,t.width,t.height),void e.restore();if(!(isNaN(n)||n<=0)){switch(e.beginPath(),t){default:e.arc(i,r,n,0,D),e.closePath();break;case"triangle":e.moveTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),d+=A,e.lineTo(i+Math.sin(d)*n,r-Math.cos(d)*n),e.closePath();break;case"rectRounded":u=n-(c=.516*n),s=Math.cos(d+E)*u,l=Math.sin(d+E)*u,e.arc(i-s,r-l,c,d-T,d-C),e.arc(i+l,r-s,c,d-C,d),e.arc(i+s,r+l,c,d,d+C),e.arc(i-l,r+s,c,d+C,d+T),e.closePath();break;case"rect":if(!o){u=Math.SQRT1_2*n,e.rect(i-u,r-u,2*u,2*u);break}d+=E;case"rectRot":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+l,r-s),e.lineTo(i+s,r+l),e.lineTo(i-l,r+s),e.closePath();break;case"crossRot":d+=E;case"cross":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"star":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s),d+=E,s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l),e.moveTo(i+l,r-s),e.lineTo(i-l,r+s);break;case"line":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(i-s,r-l),e.lineTo(i+s,r+l);break;case"dash":e.moveTo(i,r),e.lineTo(i+Math.cos(d)*n,r+Math.sin(d)*n)}e.fill(),e.stroke()}},_isPointInArea:function(e,t){return e.x>t.left-1e-6&&e.x<t.right+1e-6&&e.y>t.top-1e-6&&e.y<t.bottom+1e-6},clipArea:function(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()},unclipArea:function(e){e.restore()},lineTo:function(e,t,n,i){var r=n.steppedLine;if(r){if("middle"===r){var o=(t.x+n.x)/2;e.lineTo(o,i?n.y:t.y),e.lineTo(o,i?t.y:n.y)}else"after"===r&&!i||"after"!==r&&i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}else n.tension?e.bezierCurveTo(i?t.controlPointPreviousX:t.controlPointNextX,i?t.controlPointPreviousY:t.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):e.lineTo(n.x,n.y)}},Y=P;k.clear=P.clear,k.drawRoundedRectangle=function(e){e.beginPath(),P.roundedRect.apply(P,arguments)};var O={_set:function(e,t){return k.merge(this[e]||(this[e]={}),t)}};O._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var I=O,j=k.valueOrDefault,H={toLineHeight:function(e,t){var n=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*t;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100}return t*e},toPadding:function(e){var t,n,i,r;return k.isObject(e)?(t=+e.top||0,n=+e.right||0,i=+e.bottom||0,r=+e.left||0):t=n=i=r=+e||0,{top:t,right:n,bottom:i,left:r,height:t+i,width:r+n}},_parseFont:function(e){var t=I.global,n=j(e.fontSize,t.defaultFontSize),i={family:j(e.fontFamily,t.defaultFontFamily),lineHeight:k.options.toLineHeight(j(e.lineHeight,t.defaultLineHeight),n),size:n,style:j(e.fontStyle,t.defaultFontStyle),weight:null,string:""};return i.string=function(e){return!e||k.isNullOrUndef(e.size)||k.isNullOrUndef(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(i),i},resolve:function(e,t,n,i){var r,o,a,s=!0;for(r=0,o=e.length;r<o;++r)if(void 0!==(a=e[r])&&(void 0!==t&&"function"==typeof a&&(a=a(t),s=!1),void 0!==n&&k.isArray(a)&&(a=a[n],s=!1),void 0!==a))return i&&!s&&(i.cacheable=!1),a}},B={_factorize:function(e){var t,n=[],i=Math.sqrt(e);for(t=1;t<i;t++)e%t==0&&(n.push(t),n.push(e/t));return i===(0|i)&&n.push(i),n.sort((function(e,t){return e-t})).pop(),n},log10:Math.log10||function(e){var t=Math.log(e)*Math.LOG10E,n=Math.round(t);return e===Math.pow(10,n)?n:t}},N=B;k.log10=B.log10;var R=k,F=S,z=Y,V=H,U=N;R.easing=F,R.canvas=z,R.options=V,R.math=U,R.rtl={getRtlAdapter:function(e,t,n){return e?function(e,t){return{x:function(n){return e+e+t-n},setWidth:function(e){t=e},textAlign:function(e){return"center"===e?e:"right"===e?"left":"right"},xPlus:function(e,t){return e-t},leftForLtr:function(e,t){return e-t}}}(t,n):{x:function(e){return e},setWidth:function(e){},textAlign:function(e){return e},xPlus:function(e,t){return e+t},leftForLtr:function(e,t){return e}}},overrideTextDirection:function(e,t){var n,i;"ltr"!==t&&"rtl"!==t||(i=[(n=e.canvas.style).getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=i)},restoreTextDirection:function(e){var t=e.prevTextDirection;void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}};var W=function(e){R.extend(this,e),this.initialize.apply(this,arguments)};R.extend(W.prototype,{_type:void 0,initialize:function(){this.hidden=!1},pivot:function(){var e=this;return e._view||(e._view=R.extend({},e._model)),e._start={},e},transition:function(e){var t=this,n=t._model,i=t._start,r=t._view;return n&&1!==e?(r||(r=t._view={}),i||(i=t._start={}),function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f=Object.keys(n);for(r=0,o=f.length;r<o;++r)if(u=n[a=f[r]],t.hasOwnProperty(a)||(t[a]=u),(s=t[a])!==u&&"_"!==a[0]){if(e.hasOwnProperty(a)||(e[a]=s),(c=typeof u)==typeof(l=e[a]))if("string"===c){if((d=L(l)).valid&&(h=L(u)).valid){t[a]=h.mix(d,i).rgbString();continue}}else if(R.isFinite(l)&&R.isFinite(u)){t[a]=l+(u-l)*i;continue}t[a]=u}}(i,r,n,e),t):(t._view=R.extend({},n),t._start=null,t)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return R.isNumber(this._model.x)&&R.isNumber(this._model.y)}}),W.extend=R.inherits;var q=W,G=q.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Z=G;Object.defineProperty(G.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(G.prototype,"chartInstance",{get:function(){return this.chart},set:function(e){this.chart=e}}),I._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:R.noop,onComplete:R.noop}});var J={animations:[],request:null,addAnimation:function(e,t,n,i){var r,o,a=this.animations;for(t.chart=e,t.startTime=Date.now(),t.duration=n,i||(e.animating=!0),r=0,o=a.length;r<o;++r)if(a[r].chart===e)return void(a[r]=t);a.push(t),1===a.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=R.findIndex(this.animations,(function(t){return t.chart===e}));-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var e=this;null===e.request&&(e.request=R.requestAnimFrame.call(window,(function(){e.request=null,e.startDigest()})))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var e,t,n,i,r=this.animations,o=0;o<r.length;)t=(e=r[o]).chart,n=e.numSteps,i=Math.floor((Date.now()-e.startTime)/e.duration*n)+1,e.currentStep=Math.min(i,n),R.callback(e.render,[t,e],t),R.callback(e.onAnimationProgress,[e],t),e.currentStep>=n?(R.callback(e.onAnimationComplete,[e],t),t.animating=!1,r.splice(o,1)):++o}},X=R.options.resolve,K=["push","pop","shift","splice","unshift"];function Q(e,t){var n=e._chartjs;if(n){var i=n.listeners,r=i.indexOf(t);-1!==r&&i.splice(r,1),i.length>0||(K.forEach((function(t){delete e[t]})),delete e._chartjs)}}var ee=function(e,t){this.initialize(e,t)};R.extend(ee.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this.getMeta(),t=this.chart,n=t.scales,i=this.getDataset(),r=t.options.scales;null!==e.xAxisID&&e.xAxisID in n&&!i.xAxisID||(e.xAxisID=i.xAxisID||r.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in n&&!i.yAxisID||(e.yAxisID=i.yAxisID||r.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&Q(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,n=this.getMeta(),i=this.getDataset().data||[],r=n.data;for(e=0,t=i.length;e<t;++e)r[e]=r[e]||this.createMetaData(e);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(e){var t=this.createMetaData(e);this.getMeta().data.splice(e,0,t),this.updateElement(t,e,!0)},buildOrUpdateElements:function(){var e,t,n=this,i=n.getDataset(),r=i.data||(i.data=[]);n._data!==r&&(n._data&&Q(n._data,n),r&&Object.isExtensible(r)&&(t=n,(e=r)._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),K.forEach((function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),i=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),r=i.apply(this,t);return R.each(e._chartjs.listeners,(function(e){"function"==typeof e[n]&&e[n].apply(e,t)})),r}})})))),n._data=r),n.resyncElements()},_configure:function(){this._config=R.merge({},[this.chart.options.datasets[this._type],this.getDataset()],{merger:function(e,t,n){"_meta"!==e&&"data"!==e&&R._merger(e,t,n)}})},_update:function(e){this._configure(),this._cachedDataOpts=null,this.update(e)},update:R.noop,transition:function(e){for(var t=this.getMeta(),n=t.data||[],i=n.length,r=0;r<i;++r)n[r].transition(e);t.dataset&&t.dataset.transition(e)},draw:function(){var e=this.getMeta(),t=e.data||[],n=t.length,i=0;for(e.dataset&&e.dataset.draw();i<n;++i)t[i].draw()},getStyle:function(e){var t,n=this.getMeta(),i=n.dataset;return this._configure(),i&&void 0===e?t=this._resolveDatasetElementOptions(i||{}):(e=e||0,t=this._resolveDataElementOptions(n.data[e]||{},e)),!1!==t.fill&&null!==t.fill||(t.backgroundColor=t.borderColor),t},_resolveDatasetElementOptions:function(e,t){var n,i,r,o,a=this,s=a.chart,l=a._config,u=e.custom||{},c=s.options.elements[a.datasetElementType.prototype._type]||{},d=a._datasetElementOptions,h={},f={chart:s,dataset:a.getDataset(),datasetIndex:a.index,hover:t};for(n=0,i=d.length;n<i;++n)r=d[n],o=t?"hover"+r.charAt(0).toUpperCase()+r.slice(1):r,h[r]=X([u[o],l[o],c[o]],f);return h},_resolveDataElementOptions:function(e,t){var n=this,i=e&&e.custom,r=n._cachedDataOpts;if(r&&!i)return r;var o,a,s,l,u=n.chart,c=n._config,d=u.options.elements[n.dataElementType.prototype._type]||{},h=n._dataElementOptions,f={},p={chart:u,dataIndex:t,dataset:n.getDataset(),datasetIndex:n.index},m={cacheable:!i};if(i=i||{},R.isArray(h))for(a=0,s=h.length;a<s;++a)f[l=h[a]]=X([i[l],c[l],d[l]],p,t,m);else for(a=0,s=(o=Object.keys(h)).length;a<s;++a)f[l=o[a]]=X([i[l],c[h[l]],c[l],d[l]],p,t,m);return m.cacheable&&(n._cachedDataOpts=Object.freeze(f)),f},removeHoverStyle:function(e){R.merge(e._model,e.$previousStyle||{}),delete e.$previousStyle},setHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e._index,i=e.custom||{},r=e._model,o=R.getHoverColor;e.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=X([i.hoverBackgroundColor,t.hoverBackgroundColor,o(r.backgroundColor)],void 0,n),r.borderColor=X([i.hoverBorderColor,t.hoverBorderColor,o(r.borderColor)],void 0,n),r.borderWidth=X([i.hoverBorderWidth,t.hoverBorderWidth,r.borderWidth],void 0,n)},_removeDatasetHoverStyle:function(){var e=this.getMeta().dataset;e&&this.removeHoverStyle(e)},_setDatasetHoverStyle:function(){var e,t,n,i,r,o,a=this.getMeta().dataset,s={};if(a){for(o=a._model,r=this._resolveDatasetElementOptions(a,!0),e=0,t=(i=Object.keys(r)).length;e<t;++e)s[n=i[e]]=o[n],o[n]=r[n];a.$previousStyle=s}},resyncElements:function(){var e=this.getMeta(),t=this.getDataset().data,n=e.data.length,i=t.length;i<n?e.data.splice(i,n-i):i>n&&this.insertElements(n,i-n)},insertElements:function(e,t){for(var n=0;n<t;++n)this.addElementAndReset(e+n)},onDataPush:function(){var e=arguments.length;this.insertElements(this.getDataset().data.length-e,e)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(e,t){this.getMeta().data.splice(e,t),this.insertElements(e,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),ee.extend=R.inherits;var te=ee,ne=2*Math.PI;function ie(e,t){var n=t.startAngle,i=t.endAngle,r=t.pixelMargin,o=r/t.outerRadius,a=t.x,s=t.y;e.beginPath(),e.arc(a,s,t.outerRadius,n-o,i+o),t.innerRadius>r?(o=r/t.innerRadius,e.arc(a,s,t.innerRadius-r,i+o,n-o,!0)):e.arc(a,s,r,i+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}I._set("global",{elements:{arc:{backgroundColor:I.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var re=q.extend({_type:"arc",inLabelRange:function(e){var t=this._view;return!!t&&Math.pow(e-t.x,2)<Math.pow(t.radius+t.hoverRadius,2)},inRange:function(e,t){var n=this._view;if(n){for(var i=R.getAngleFromPoint(n,{x:e,y:t}),r=i.angle,o=i.distance,a=n.startAngle,s=n.endAngle;s<a;)s+=ne;for(;r>s;)r-=ne;for(;r<a;)r+=ne;var l=r>=a&&r<=s,u=o>=n.innerRadius&&o<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,r={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/ne)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,r.fullCircles){for(r.endAngle=r.startAngle+ne,t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),e=0;e<r.fullCircles;++e)t.fill();r.endAngle=r.startAngle+n.circumference%ne}t.beginPath(),t.arc(r.x,r.y,r.outerRadius,r.startAngle,r.endAngle),t.arc(r.x,r.y,r.innerRadius,r.endAngle,r.startAngle,!0),t.closePath(),t.fill(),n.borderWidth&&function(e,t,n){var i="inner"===t.borderAlign;i?(e.lineWidth=2*t.borderWidth,e.lineJoin="round"):(e.lineWidth=t.borderWidth,e.lineJoin="bevel"),n.fullCircles&&function(e,t,n,i){var r,o=n.endAngle;for(i&&(n.endAngle=n.startAngle+ne,ie(e,n),n.endAngle=o,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=ne,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+ne,n.startAngle,!0),r=0;r<n.fullCircles;++r)e.stroke();for(e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.startAngle+ne),r=0;r<n.fullCircles;++r)e.stroke()}(e,t,n,i),i&&ie(e,n),e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.endAngle),e.arc(n.x,n.y,n.innerRadius,n.endAngle,n.startAngle,!0),e.closePath(),e.stroke()}(t,n,r),t.restore()}}),oe=R.valueOrDefault,ae=I.global.defaultColor;I._set("global",{elements:{line:{tension:.4,backgroundColor:ae,borderWidth:3,borderColor:ae,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var se=q.extend({_type:"line",draw:function(){var e,t,n,i=this,r=i._view,o=i._chart.ctx,a=r.spanGaps,s=i._children.slice(),l=I.global,u=l.elements.line,c=-1,d=i._loop;if(s.length){if(i._loop){for(e=0;e<s.length;++e)if(t=R.previousItem(s,e),!s[e]._view.skip&&t._view.skip){s=s.slice(e).concat(s.slice(0,e)),d=a;break}d&&s.push(s[0])}for(o.save(),o.lineCap=r.borderCapStyle||u.borderCapStyle,o.setLineDash&&o.setLineDash(r.borderDash||u.borderDash),o.lineDashOffset=oe(r.borderDashOffset,u.borderDashOffset),o.lineJoin=r.borderJoinStyle||u.borderJoinStyle,o.lineWidth=oe(r.borderWidth,u.borderWidth),o.strokeStyle=r.borderColor||l.defaultColor,o.beginPath(),(n=s[0]._view).skip||(o.moveTo(n.x,n.y),c=0),e=1;e<s.length;++e)n=s[e]._view,t=-1===c?R.previousItem(s,e):s[c],n.skip||(c!==e-1&&!a||-1===c?o.moveTo(n.x,n.y):R.canvas.lineTo(o,t._view,n),c=e);d&&o.closePath(),o.stroke(),o.restore()}}}),le=R.valueOrDefault,ue=I.global.defaultColor;function ce(e){var t=this._view;return!!t&&Math.abs(e-t.x)<t.radius+t.hitRadius}I._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:ue,borderColor:ue,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var de=q.extend({_type:"point",inRange:function(e,t){var n=this._view;return!!n&&Math.pow(e-n.x,2)+Math.pow(t-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:ce,inXRange:ce,inYRange:function(e){var t=this._view;return!!t&&Math.abs(e-t.y)<t.radius+t.hitRadius},getCenterPoint:function(){var e=this._view;return{x:e.x,y:e.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y,padding:e.radius+e.borderWidth}},draw:function(e){var t=this._view,n=this._chart.ctx,i=t.pointStyle,r=t.rotation,o=t.radius,a=t.x,s=t.y,l=I.global,u=l.defaultColor;t.skip||(void 0===e||R.canvas._isPointInArea(t,e))&&(n.strokeStyle=t.borderColor||u,n.lineWidth=le(t.borderWidth,l.elements.point.borderWidth),n.fillStyle=t.backgroundColor||u,R.canvas.drawPoint(n,i,o,a,s,r))}}),he=I.global.defaultColor;function fe(e){return e&&void 0!==e.width}function pe(e){var t,n,i,r,o;return fe(e)?(o=e.width/2,t=e.x-o,n=e.x+o,i=Math.min(e.y,e.base),r=Math.max(e.y,e.base)):(o=e.height/2,t=Math.min(e.x,e.base),n=Math.max(e.x,e.base),i=e.y-o,r=e.y+o),{left:t,top:i,right:n,bottom:r}}function me(e,t,n){return e===t?n:e===n?t:e}function ge(e,t,n){var i=null===t,r=null===n,o=!(!e||i&&r)&&pe(e);return o&&(i||t>=o.left&&t<=o.right)&&(r||n>=o.top&&n<=o.bottom)}I._set("global",{elements:{rectangle:{backgroundColor:he,borderColor:he,borderSkipped:"bottom",borderWidth:0}}});var ve=q.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=function(e){var t=pe(e),n=t.right-t.left,i=t.bottom-t.top,r=function(e,t,n){var i,r,o,a,s=e.borderWidth,l=function(e){var t=e.borderSkipped,n={};return t?(e.horizontal?e.base>e.x&&(t=me(t,"left","right")):e.base<e.y&&(t=me(t,"bottom","top")),n[t]=!0,n):n}(e);return R.isObject(s)?(i=+s.top||0,r=+s.right||0,o=+s.bottom||0,a=+s.left||0):i=r=o=a=+s||0,{t:l.top||i<0?0:i>n?n:i,r:l.right||r<0?0:r>t?t:r,b:l.bottom||o<0?0:o>n?n:o,l:l.left||a<0?0:a>t?t:a}}(e,n/2,i/2);return{outer:{x:t.left,y:t.top,w:n,h:i},inner:{x:t.left+r.l,y:t.top+r.t,w:n-r.l-r.r,h:i-r.t-r.b}}}(t),i=n.outer,r=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(i.x,i.y,i.w,i.h),i.w===r.w&&i.h===r.h||(e.save(),e.beginPath(),e.rect(i.x,i.y,i.w,i.h),e.clip(),e.fillStyle=t.borderColor,e.rect(r.x,r.y,r.w,r.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return ge(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return fe(n)?ge(n,e,null):ge(n,null,t)},inXRange:function(e){return ge(this._view,e,null)},inYRange:function(e){return ge(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return fe(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return fe(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),_e={},ye=re,be=se,we=de,Le=ve;_e.Arc=ye,_e.Line=be,_e.Point=we,_e.Rectangle=Le;var Me=R._deprecated,ke=R.valueOrDefault;I._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),I._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var xe=te.extend({dataElementType:_e.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var e,t,n=this;te.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0,t=n._getIndexScale().options,Me("bar chart",t.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Me("bar chart",t.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Me("bar chart",t.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Me("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Me("bar chart",t.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(e){var t,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),t=0,n=i.length;t<n;++t)this.updateElement(i[t],t,e)},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=i.getDataset(),a=i._resolveDataElementOptions(e,t);e._xScale=i.getScaleForId(r.xAxisID),e._yScale=i.getScaleForId(r.yAxisID),e._datasetIndex=i.index,e._index=t,e._model={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderSkipped:a.borderSkipped,borderWidth:a.borderWidth,datasetLabel:o.label,label:i.chart.data.labels[t]},R.isArray(o.data[t])&&(e._model.borderSkipped=null),i._updateElementGeometry(e,t,n,a),e.pivot()},_updateElementGeometry:function(e,t,n,i){var r=this,o=e._model,a=r._getValueScale(),s=a.getBasePixel(),l=a.isHorizontal(),u=r._ruler||r.getRuler(),c=r.calculateBarValuePixels(r.index,t,i),d=r.calculateBarIndexPixels(r.index,t,u,i);o.horizontal=l,o.base=n?s:c.base,o.x=l?n?s:c.head:d.center,o.y=l?d.center:n?s:c.head,o.height=l?d.size:void 0,o.width=l?void 0:d.size},_getStacks:function(e){var t,n,i=this._getIndexScale(),r=i._getMatchingVisibleMetas(this._type),o=i.options.stacked,a=r.length,s=[];for(t=0;t<a&&(n=r[t],(!1===o||-1===s.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&s.push(n.stack),n.index!==e);++t);return s},getStackCount:function(){return this._getStacks().length},getStackIndex:function(e,t){var n=this._getStacks(e),i=void 0!==t?n.indexOf(t):-1;return-1===i?n.length-1:i},getRuler:function(){var e,t,n=this._getIndexScale(),i=[];for(e=0,t=this.getMeta().data.length;e<t;++e)i.push(n.getPixelForValue(null,e,this.index));return{pixels:i,start:n._startPixel,end:n._endPixel,stackCount:this.getStackCount(),scale:n}},calculateBarValuePixels:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._getValueScale(),h=d.isHorizontal(),f=c.data.datasets,p=d._getMatchingVisibleMetas(this._type),m=d._parseValue(f[e].data[t]),g=n.minBarLength,v=d.options.stacked,_=this.getMeta().stack,y=void 0===m.start?0:m.max>=0&&m.min>=0?m.min:m.max,b=void 0===m.start?m.end:m.max>=0&&m.min>=0?m.max-m.min:m.min-m.max,w=p.length;if(v||void 0===v&&void 0!==_)for(i=0;i<w&&(r=p[i]).index!==e;++i)r.stack===_&&(o=void 0===(u=d._parseValue(f[r.index].data[t])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(m.min<0&&o<0||m.max>=0&&o>0)&&(y+=o));return a=d.getPixelForValue(y),l=(s=d.getPixelForValue(y+b))-a,void 0!==g&&Math.abs(l)<g&&(l=g,s=b>=0&&!h||b<0&&h?a-g:a+g),{size:l,base:a,head:s,center:s+l/2}},calculateBarIndexPixels:function(e,t,n,i){var r="flex"===i.barThickness?function(e,t,n){var i,r=t.pixels,o=r[e],a=e>0?r[e-1]:null,s=e<r.length-1?r[e+1]:null,l=n.categoryPercentage;return null===a&&(a=o-(null===s?t.end-t.start:s-o)),null===s&&(s=o+o-a),i=o-(o-Math.min(a,s))/2*l,{chunk:Math.abs(s-a)/2*l/t.stackCount,ratio:n.barPercentage,start:i}}(t,n,i):function(e,t,n){var i,r,o=n.barThickness,a=t.stackCount,s=t.pixels[e],l=R.isNullOrUndef(o)?function(e,t){var n,i,r,o,a=e._length;for(r=1,o=t.length;r<o;++r)a=Math.min(a,Math.abs(t[r]-t[r-1]));for(r=0,o=e.getTicks().length;r<o;++r)i=e.getPixelForTick(r),a=r>0?Math.min(a,Math.abs(i-n)):a,n=i;return a}(t.scale,t.pixels):-1;return R.isNullOrUndef(o)?(i=l*n.categoryPercentage,r=n.barPercentage):(i=o*a,r=1),{chunk:i/a,ratio:r,start:s-i/2}}(t,n,i),o=this.getStackIndex(e,this.getMeta().stack),a=r.start+r.chunk*o+r.chunk/2,s=Math.min(ke(i.maxBarThickness,1/0),r.chunk*r.ratio);return{base:a-s/2,head:a+s/2,center:a,size:s}},draw:function(){var e=this.chart,t=this._getValueScale(),n=this.getMeta().data,i=this.getDataset(),r=n.length,o=0;for(R.canvas.clipArea(e.ctx,e.chartArea);o<r;++o){var a=t._parseValue(i.data[o]);isNaN(a.min)||isNaN(a.max)||n[o].draw()}R.canvas.unclipArea(e.ctx)},_resolveDataElementOptions:function(){var e=this,t=R.extend({},te.prototype._resolveDataElementOptions.apply(e,arguments)),n=e._getIndexScale().options,i=e._getValueScale().options;return t.barPercentage=ke(n.barPercentage,t.barPercentage),t.barThickness=ke(n.barThickness,t.barThickness),t.categoryPercentage=ke(n.categoryPercentage,t.categoryPercentage),t.maxBarThickness=ke(n.maxBarThickness,t.maxBarThickness),t.minBarLength=ke(i.minBarLength,t.minBarLength),t}}),Se=R.valueOrDefault,Te=R.options.resolve;I._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.datasets[e.datasetIndex].label||"",i=t.datasets[e.datasetIndex].data[e.index];return n+": ("+e.xLabel+", "+e.yLabel+", "+i.r+")"}}}});var $e=te.extend({dataElementType:_e.Point,_dataElementOptions:["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"],update:function(e){var t=this,n=t.getMeta().data;R.each(n,(function(n,i){t.updateElement(n,i,e)}))},updateElement:function(e,t,n){var i=this,r=i.getMeta(),o=e.custom||{},a=i.getScaleForId(r.xAxisID),s=i.getScaleForId(r.yAxisID),l=i._resolveDataElementOptions(e,t),u=i.getDataset().data[t],c=i.index,d=n?a.getPixelForDecimal(.5):a.getPixelForValue("object"==typeof u?u:NaN,t,c),h=n?s.getBasePixel():s.getPixelForValue(u,t,c);e._xScale=a,e._yScale=s,e._options=l,e._datasetIndex=c,e._index=t,e._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:n?0:l.radius,skip:o.skip||isNaN(d)||isNaN(h),x:d,y:h},e.pivot()},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Se(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Se(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Se(n.hoverBorderWidth,n.borderWidth),t.radius=n.radius+n.hoverRadius},_resolveDataElementOptions:function(e,t){var n=this,i=n.chart,r=n.getDataset(),o=e.custom||{},a=r.data[t]||{},s=te.prototype._resolveDataElementOptions.apply(n,arguments),l={chart:i,dataIndex:t,dataset:r,datasetIndex:n.index};return n._cachedDataOpts===s&&(s=R.extend({},s)),s.radius=Te([o.radius,a.r,n._config.radius,i.options.elements.point.radius],l,t),s}}),De=R.valueOrDefault,Ce=Math.PI,Ee=2*Ce,Ae=Ce/2;I._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o]&&(r.data[o].hidden=!r.data[o].hidden);a.update()}},cutoutPercentage:50,rotation:-Ae,circumference:Ee,tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.labels[e.index],i=": "+t.datasets[e.datasetIndex].data[e.index];return R.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}});var Pe=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],getRingIndex:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&++t;return t},update:function(e){var t,n,i,r,o=this,a=o.chart,s=a.chartArea,l=a.options,u=1,c=1,d=0,h=0,f=o.getMeta(),p=f.data,m=l.cutoutPercentage/100||0,g=l.circumference,v=o._getRingWeight(o.index);if(g<Ee){var _=l.rotation%Ee,y=(_+=_>=Ce?-Ee:_<-Ce?Ee:0)+g,b=Math.cos(_),w=Math.sin(_),L=Math.cos(y),M=Math.sin(y),k=_<=0&&y>=0||y>=Ee,x=_<=Ae&&y>=Ae||y>=Ee+Ae,S=_<=-Ae&&y>=-Ae||y>=Ce+Ae,T=_===-Ce||y>=Ce?-1:Math.min(b,b*m,L,L*m),$=S?-1:Math.min(w,w*m,M,M*m),D=k?1:Math.max(b,b*m,L,L*m),C=x?1:Math.max(w,w*m,M,M*m);u=(D-T)/2,c=(C-$)/2,d=-(D+T)/2,h=-(C+$)/2}for(i=0,r=p.length;i<r;++i)p[i]._options=o._resolveDataElementOptions(p[i],i);for(a.borderWidth=o.getMaxBorderWidth(),t=(s.right-s.left-a.borderWidth)/u,n=(s.bottom-s.top-a.borderWidth)/c,a.outerRadius=Math.max(Math.min(t,n)/2,0),a.innerRadius=Math.max(a.outerRadius*m,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(o._getVisibleDatasetWeightTotal()||1),a.offsetX=d*a.outerRadius,a.offsetY=h*a.outerRadius,f.total=o.calculateTotal(),o.outerRadius=a.outerRadius-a.radiusLength*o._getRingWeightOffset(o.index),o.innerRadius=Math.max(o.outerRadius-a.radiusLength*v,0),i=0,r=p.length;i<r;++i)o.updateElement(p[i],i,e)},updateElement:function(e,t,n){var i=this,r=i.chart,o=r.chartArea,a=r.options,s=a.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,c=a.rotation,d=a.rotation,h=i.getDataset(),f=n&&s.animateRotate?0:e.hidden?0:i.calculateCircumference(h.data[t])*(a.circumference/Ee),p=n&&s.animateScale?0:i.innerRadius,m=n&&s.animateScale?0:i.outerRadius,g=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_model:{backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,borderAlign:g.borderAlign,x:l+r.offsetX,y:u+r.offsetY,startAngle:c,endAngle:d,circumference:f,outerRadius:m,innerRadius:p,label:R.valueAtIndexOrDefault(h.label,t,r.data.labels[t])}});var v=e._model;n&&s.animateRotate||(v.startAngle=0===t?a.rotation:i.getMeta().data[t-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),e.pivot()},calculateTotal:function(){var e,t=this.getDataset(),n=this.getMeta(),i=0;return R.each(n.data,(function(n,r){e=t.data[r],isNaN(e)||n.hidden||(i+=Math.abs(e))})),i},calculateCircumference:function(e){var t=this.getMeta().total;return t>0&&!isNaN(e)?Ee*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,i,r,o,a,s,l,u=0,c=this.chart;if(!e)for(t=0,n=c.data.datasets.length;t<n;++t)if(c.isDatasetVisible(t)){e=(i=c.getDatasetMeta(t)).data,t!==this.index&&(o=i.controller);break}if(!e)return 0;for(t=0,n=e.length;t<n;++t)r=e[t],o?(o._configure(),a=o._resolveDataElementOptions(r,t)):a=r._options,"inner"!==a.borderAlign&&(s=a.borderWidth,u=(l=a.hoverBorderWidth)>(u=s>u?s:u)?l:u);return u},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=De(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=De(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=De(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&(t+=this._getRingWeight(n));return t},_getRingWeight:function(e){return Math.max(De(this.chart.data.datasets[e].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});I._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}}),I._set("global",{datasets:{horizontalBar:{categoryPercentage:.8,barPercentage:.9}}});var Ye=xe.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Oe=R.valueOrDefault,Ie=R.options.resolve,je=R.canvas._isPointInArea;function He(e,t){var n=e&&e.options.ticks||{},i=n.reverse,r=void 0===n.min?t:0,o=void 0===n.max?t:0;return{start:i?o:r,end:i?r:o}}function Be(e,t,n){var i=n/2,r=He(e,i),o=He(t,i);return{top:o.end,right:r.end,bottom:o.start,left:r.start}}function Ne(e){var t,n,i,r;return R.isObject(e)?(t=e.top,n=e.right,i=e.bottom,r=e.left):t=n=i=r=e,{top:t,right:n,bottom:i,left:r}}I._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var Re=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth","cubicInterpolationMode","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.options,l=i._config,u=i._showLine=Oe(l.showLine,s.showLines);for(i._xScale=i.getScaleForId(r.xAxisID),i._yScale=i.getScaleForId(r.yAxisID),u&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=i._yScale,o._datasetIndex=i.index,o._children=a,o._model=i._resolveDatasetElementOptions(o),o.pivot()),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(u&&0!==o._model.tension&&i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i,r,o=this,a=o.getMeta(),s=e.custom||{},l=o.getDataset(),u=o.index,c=l.data[t],d=o._xScale,h=o._yScale,f=a.dataset._model,p=o._resolveDataElementOptions(e,t);i=d.getPixelForValue("object"==typeof c?c:NaN,t,u),r=n?h.getBasePixel():o.calculatePointY(c,t,u),e._xScale=d,e._yScale=h,e._options=p,e._datasetIndex=u,e._index=t,e._model={x:i,y:r,skip:s.skip||isNaN(i)||isNaN(r),radius:p.radius,pointStyle:p.pointStyle,rotation:p.rotation,backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,tension:Oe(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:p.hitRadius}},_resolveDatasetElementOptions:function(e){var t=this,n=t._config,i=e.custom||{},r=t.chart.options,o=r.elements.line,a=te.prototype._resolveDatasetElementOptions.apply(t,arguments);return a.spanGaps=Oe(n.spanGaps,r.spanGaps),a.tension=Oe(n.lineTension,o.tension),a.steppedLine=Ie([i.steppedLine,n.steppedLine,o.stepped]),a.clip=Ne(Oe(n.clip,Be(t._xScale,t._yScale,a.borderWidth))),a},calculatePointY:function(e,t,n){var i,r,o,a,s,l,u,c=this.chart,d=this._yScale,h=0,f=0;if(d.options.stacked){for(s=+d.getRightValue(e),u=(l=c._getSortedVisibleDatasetMetas()).length,i=0;i<u&&(o=l[i]).index!==n;++i)r=c.data.datasets[o.index],"line"===o.type&&o.yAxisID===d.id&&((a=+d.getRightValue(r.data[t]))<0?f+=a||0:h+=a||0);return s<0?d.getPixelForValue(f+s):d.getPixelForValue(h+s)}return d.getPixelForValue(e)},updateBezierControlPoints:function(){var e,t,n,i,r=this.chart,o=this.getMeta(),a=o.dataset._model,s=r.chartArea,l=o.data||[];function u(e,t,n){return Math.max(Math.min(e,n),t)}if(a.spanGaps&&(l=l.filter((function(e){return!e._model.skip}))),"monotone"===a.cubicInterpolationMode)R.splineCurveMonotone(l);else for(e=0,t=l.length;e<t;++e)n=l[e]._model,i=R.splineCurve(R.previousItem(l,e)._model,n,R.nextItem(l,e)._model,a.tension),n.controlPointPreviousX=i.previous.x,n.controlPointPreviousY=i.previous.y,n.controlPointNextX=i.next.x,n.controlPointNextY=i.next.y;if(r.options.elements.line.capBezierPoints)for(e=0,t=l.length;e<t;++e)n=l[e]._model,je(n,s)&&(e>0&&je(l[e-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),e<l.length-1&&je(l[e+1]._model,s)&&(n.controlPointNextX=u(n.controlPointNextX,s.left,s.right),n.controlPointNextY=u(n.controlPointNextY,s.top,s.bottom)))},draw:function(){var e,t=this.chart,n=this.getMeta(),i=n.data||[],r=t.chartArea,o=t.canvas,a=0,s=i.length;for(this._showLine&&(e=n.dataset._model.clip,R.canvas.clipArea(t.ctx,{left:!1===e.left?0:r.left-e.left,right:!1===e.right?o.width:r.right+e.right,top:!1===e.top?0:r.top-e.top,bottom:!1===e.bottom?o.height:r.bottom+e.bottom}),n.dataset.draw(),R.canvas.unclipArea(t.ctx));a<s;++a)i[a].draw(r)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Oe(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Oe(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Oe(n.hoverBorderWidth,n.borderWidth),t.radius=Oe(n.hoverRadius,n.radius)}}),Fe=R.options.resolve;I._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(r.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&i.appendChild(document.createTextNode(s[t]));return r.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map((function(n,i){var r=e.getDatasetMeta(0),o=r.controller.getStyle(i);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[i])||r.data[i].hidden,index:i}})):[]}},onClick:function(e,t){var n,i,r,o=t.index,a=this.chart;for(n=0,i=(a.data.datasets||[]).length;n<i;++n)(r=a.getDatasetMeta(n)).data[o].hidden=!r.data[o].hidden;a.update()}},tooltips:{callbacks:{title:function(){return""},label:function(e,t){return t.labels[e.index]+": "+e.yLabel}}}});var ze=te.extend({dataElementType:_e.Arc,linkScales:R.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i,r=this,o=r.getDataset(),a=r.getMeta(),s=r.chart.options.startAngle||0,l=r._starts=[],u=r._angles=[],c=a.data;for(r._updateRadius(),a.count=r.countVisibleElements(),t=0,n=o.data.length;t<n;t++)l[t]=s,i=r._computeAngle(t),u[t]=i,s+=i;for(t=0,n=c.length;t<n;++t)c[t]._options=r._resolveDataElementOptions(c[t],t),r.updateElement(c[t],t,e)},_updateRadius:function(){var e=this,t=e.chart,n=t.chartArea,i=t.options,r=Math.min(n.right-n.left,n.bottom-n.top);t.outerRadius=Math.max(r/2,0),t.innerRadius=Math.max(i.cutoutPercentage?t.outerRadius/100*i.cutoutPercentage:1,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),e.outerRadius=t.outerRadius-t.radiusLength*e.index,e.innerRadius=e.outerRadius-t.radiusLength},updateElement:function(e,t,n){var i=this,r=i.chart,o=i.getDataset(),a=r.options,s=a.animation,l=r.scale,u=r.data.labels,c=l.xCenter,d=l.yCenter,h=a.startAngle,f=e.hidden?0:l.getDistanceFromCenterForValue(o.data[t]),p=i._starts[t],m=p+(e.hidden?0:i._angles[t]),g=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[t]),v=e._options||{};R.extend(e,{_datasetIndex:i.index,_index:t,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:c,y:d,innerRadius:0,outerRadius:n?g:f,startAngle:n&&s.animateRotate?h:p,endAngle:n&&s.animateRotate?h:m,label:R.valueAtIndexOrDefault(u,t,u[t])}}),e.pivot()},countVisibleElements:function(){var e=this.getDataset(),t=this.getMeta(),n=0;return R.each(t.data,(function(t,i){isNaN(e.data[i])||t.hidden||n++})),n},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor,r=R.valueOrDefault;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=r(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=r(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=r(n.hoverBorderWidth,n.borderWidth)},_computeAngle:function(e){var t=this,n=this.getMeta().count,i=t.getDataset(),r=t.getMeta();if(isNaN(i.data[e])||r.data[e].hidden)return 0;var o={chart:t.chart,dataIndex:e,dataset:i,datasetIndex:t.index};return Fe([t.chart.options.elements.arc.angle,2*Math.PI/n],o,e)}});I._set("pie",R.clone(I.doughnut)),I._set("pie",{cutoutPercentage:0});var Ve=Pe,Ue=R.valueOrDefault;I._set("radar",{spanGaps:!1,scale:{type:"radialLinear"},elements:{line:{fill:"start",tension:0}}});var We=te.extend({datasetElementType:_e.Line,dataElementType:_e.Point,linkScales:R.noop,_datasetElementOptions:["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,i=this,r=i.getMeta(),o=r.dataset,a=r.data||[],s=i.chart.scale,l=i._config;for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=i.index,o._children=a,o._loop=!0,o._model=i._resolveDatasetElementOptions(o),o.pivot(),t=0,n=a.length;t<n;++t)i.updateElement(a[t],t,e);for(i.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var i=this,r=e.custom||{},o=i.getDataset(),a=i.chart.scale,s=a.getPointPositionForValue(t,o.data[t]),l=i._resolveDataElementOptions(e,t),u=i.getMeta().dataset._model,c=n?a.xCenter:s.x,d=n?a.yCenter:s.y;e._scale=a,e._options=l,e._datasetIndex=i.index,e._index=t,e._model={x:c,y:d,skip:r.skip||isNaN(c)||isNaN(d),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:Ue(r.tension,u?u.tension:0),hitRadius:l.hitRadius}},_resolveDatasetElementOptions:function(){var e=this,t=e._config,n=e.chart.options,i=te.prototype._resolveDatasetElementOptions.apply(e,arguments);return i.spanGaps=Ue(t.spanGaps,n.spanGaps),i.tension=Ue(t.lineTension,n.elements.line.tension),i},updateBezierControlPoints:function(){
+var e,t,n,i,r=this.getMeta(),o=this.chart.chartArea,a=r.data||[];function s(e,t,n){return Math.max(Math.min(e,n),t)}for(r.dataset._model.spanGaps&&(a=a.filter((function(e){return!e._model.skip}))),e=0,t=a.length;e<t;++e)n=a[e]._model,i=R.splineCurve(R.previousItem(a,e,!0)._model,n,R.nextItem(a,e,!0)._model,n.tension),n.controlPointPreviousX=s(i.previous.x,o.left,o.right),n.controlPointPreviousY=s(i.previous.y,o.top,o.bottom),n.controlPointNextX=s(i.next.x,o.left,o.right),n.controlPointNextY=s(i.next.y,o.top,o.bottom)},setHoverStyle:function(e){var t=e._model,n=e._options,i=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=Ue(n.hoverBackgroundColor,i(n.backgroundColor)),t.borderColor=Ue(n.hoverBorderColor,i(n.borderColor)),t.borderWidth=Ue(n.hoverBorderWidth,n.borderWidth),t.radius=Ue(n.hoverRadius,n.radius)}});I._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},tooltips:{callbacks:{title:function(){return""},label:function(e){return"("+e.xLabel+", "+e.yLabel+")"}}}}),I._set("global",{datasets:{scatter:{showLine:!1}}});var qe={bar:xe,bubble:$e,doughnut:Pe,horizontalBar:Ye,line:Re,polarArea:ze,pie:Ve,radar:We,scatter:Re};function Ge(e,t){return e.native?{x:e.x,y:e.y}:R.getRelativePosition(e,t)}function Ze(e,t){var n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas();for(i=0,o=l.length;i<o;++i)for(r=0,a=(n=l[i].data).length;r<a;++r)(s=n[r])._view.skip||t(s)}function Je(e,t){var n=[];return Ze(e,(function(e){e.inRange(t.x,t.y)&&n.push(e)})),n}function Xe(e,t,n,i){var r=Number.POSITIVE_INFINITY,o=[];return Ze(e,(function(e){if(!n||e.inRange(t.x,t.y)){var a=e.getCenterPoint(),s=i(t,a);s<r?(o=[e],r=s):s===r&&o.push(e)}})),o}function Ke(e){var t=-1!==e.indexOf("x"),n=-1!==e.indexOf("y");return function(e,i){var r=t?Math.abs(e.x-i.x):0,o=n?Math.abs(e.y-i.y):0;return Math.sqrt(Math.pow(r,2)+Math.pow(o,2))}}function Qe(e,t,n){var i=Ge(t,e);n.axis=n.axis||"x";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r),a=[];return o.length?(e._getSortedVisibleDatasetMetas().forEach((function(e){var t=e.data[o[0]._index];t&&!t._view.skip&&a.push(t)})),a):[]}var et={modes:{single:function(e,t){var n=Ge(t,e),i=[];return Ze(e,(function(e){if(e.inRange(n.x,n.y))return i.push(e),i})),i.slice(0,1)},label:Qe,index:Qe,dataset:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis),o=n.intersect?Je(e,i):Xe(e,i,!1,r);return o.length>0&&(o=e.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(e,t){return Qe(e,t,{intersect:!1})},point:function(e,t){return Je(e,Ge(t,e))},nearest:function(e,t,n){var i=Ge(t,e);n.axis=n.axis||"xy";var r=Ke(n.axis);return Xe(e,i,n.intersect,r)},x:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inXRange(i.x)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r},y:function(e,t,n){var i=Ge(t,e),r=[],o=!1;return Ze(e,(function(e){e.inYRange(i.y)&&r.push(e),e.inRange(i.x,i.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r}}},tt=R.extend;function nt(e,t){return R.where(e,(function(e){return e.pos===t}))}function it(e,t){return e.sort((function(e,n){var i=t?n:e,r=t?e:n;return i.weight===r.weight?i.index-r.index:i.weight-r.weight}))}function rt(e,t,n,i){return Math.max(e[n],t[n])+Math.max(e[i],t[i])}function ot(e,t,n){var i,r,o=n.box,a=e.maxPadding;if(n.size&&(e[n.pos]-=n.size),n.size=n.horizontal?o.height:o.width,e[n.pos]+=n.size,o.getPadding){var s=o.getPadding();a.top=Math.max(a.top,s.top),a.left=Math.max(a.left,s.left),a.bottom=Math.max(a.bottom,s.bottom),a.right=Math.max(a.right,s.right)}if(i=t.outerWidth-rt(a,e,"left","right"),r=t.outerHeight-rt(a,e,"top","bottom"),i!==e.w||r!==e.h)return e.w=i,e.h=r,n.horizontal?i!==e.w:r!==e.h}function at(e,t){var n=t.maxPadding;return function(e){var i={left:0,top:0,right:0,bottom:0};return e.forEach((function(e){i[e]=Math.max(t[e],n[e])})),i}(e?["left","right"]:["top","bottom"])}function st(e,t,n){var i,r,o,a,s,l,u=[];for(i=0,r=e.length;i<r;++i)(a=(o=e[i]).box).update(o.width||t.w,o.height||t.h,at(o.horizontal,t)),ot(t,n,o)&&(l=!0,u.length&&(s=!0)),a.fullWidth||u.push(o);return s&&st(u,t,n)||l}function lt(e,t,n){var i,r,o,a,s=n.padding,l=t.x,u=t.y;for(i=0,r=e.length;i<r;++i)a=(o=e[i]).box,o.horizontal?(a.left=a.fullWidth?s.left:t.left,a.right=a.fullWidth?n.outerWidth-s.right:t.left+t.w,a.top=u,a.bottom=u+a.height,a.width=a.right-a.left,u=a.bottom):(a.left=l,a.right=l+a.width,a.top=t.top,a.bottom=t.top+t.h,a.height=a.bottom-a.top,l=a.right);t.x=l,t.y=u}I._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ut,ct={defaults:{},addBox:function(e,t){e.boxes||(e.boxes=[]),t.fullWidth=t.fullWidth||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw:function(){t.draw.apply(t,arguments)}}]},e.boxes.push(t)},removeBox:function(e,t){var n=e.boxes?e.boxes.indexOf(t):-1;-1!==n&&e.boxes.splice(n,1)},configure:function(e,t,n){for(var i,r=["fullWidth","position","weight"],o=r.length,a=0;a<o;++a)i=r[a],n.hasOwnProperty(i)&&(t[i]=n[i])},update:function(e,t,n){if(e){var i=e.options.layout||{},r=R.options.toPadding(i.padding),o=t-r.width,a=n-r.height,s=function(e){var t=function(e){var t,n,i,r=[];for(t=0,n=(e||[]).length;t<n;++t)i=e[t],r.push({index:t,box:i,pos:i.position,horizontal:i.isHorizontal(),weight:i.weight});return r}(e),n=it(nt(t,"left"),!0),i=it(nt(t,"right")),r=it(nt(t,"top"),!0),o=it(nt(t,"bottom"));return{leftAndTop:n.concat(r),rightAndBottom:i.concat(o),chartArea:nt(t,"chartArea"),vertical:n.concat(i),horizontal:r.concat(o)}}(e.boxes),l=s.vertical,u=s.horizontal,c=Object.freeze({outerWidth:t,outerHeight:n,padding:r,availableWidth:o,vBoxMaxWidth:o/2/l.length,hBoxMaxHeight:a/2}),d=tt({maxPadding:tt({},r),w:o,h:a,x:r.left,y:r.top},r);!function(e,t){var n,i,r;for(n=0,i=e.length;n<i;++n)(r=e[n]).width=r.horizontal?r.box.fullWidth&&t.availableWidth:t.vBoxMaxWidth,r.height=r.horizontal&&t.hBoxMaxHeight}(l.concat(u),c),st(l,d,c),st(u,d,c)&&st(l,d,c),function(e){var t=e.maxPadding;function n(n){var i=Math.max(t[n]-e[n],0);return e[n]+=i,i}e.y+=n("top"),e.x+=n("left"),n("right"),n("bottom")}(d),lt(s.leftAndTop,d,c),d.x+=d.w,d.y+=d.h,lt(s.rightAndBottom,d,c),e.chartArea={left:d.left,top:d.top,right:d.left+d.w,bottom:d.top+d.h},R.each(s.chartArea,(function(t){var n=t.box;tt(n,e.chartArea),n.update(d.w,d.h)}))}}},dt=(ut=Object.freeze({__proto__:null,default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&ut.default||ut,ht="$chartjs",ft="chartjs-size-monitor",pt="chartjs-render-monitor",mt=["animationstart","webkitAnimationStart"],gt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function vt(e,t){var n=R.getStyle(e,t),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var _t=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0};function yt(e,t,n){e.addEventListener(t,n,_t)}function bt(e,t,n){e.removeEventListener(t,n,_t)}function wt(e,t,n,i,r){return{type:e,chart:t,native:r||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Lt(e){var t=document.createElement("div");return t.className=e||"",t}var Mt={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(e){if(!this.disableCSSInjection){var t=e.getRootNode?e.getRootNode():document;!function(e,t){var n=e[ht]||(e[ht]={});if(!n.containsStyles){n.containsStyles=!0,t="/* Chart.js */\n"+t;var i=document.createElement("style");i.setAttribute("type","text/css"),i.appendChild(document.createTextNode(t)),e.appendChild(i)}}(t.host?t:document.head,dt)}},acquireContext:function(e,t){"string"==typeof e?e=document.getElementById(e):e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas);var n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(this._ensureLoaded(e),function(e,t){var n=e.style,i=e.getAttribute("height"),r=e.getAttribute("width");if(e[ht]={initial:{height:i,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var o=vt(e,"width");void 0!==o&&(e.width=o)}if(null===i||""===i)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var a=vt(e,"height");void 0!==o&&(e.height=a)}}(e,t),n):null},releaseContext:function(e){var t=e.canvas;if(t[ht]){var n=t[ht].initial;["height","width"].forEach((function(e){var i=n[e];R.isNullOrUndef(i)?t.removeAttribute(e):t.setAttribute(e,i)})),R.each(n.style||{},(function(e,n){t.style[n]=e})),t.width=t.width,delete t[ht]}},addEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=n[ht]||(n[ht]={});yt(i,t,(r.proxies||(r.proxies={}))[e.id+"_"+t]=function(t){n(function(e,t){var n=gt[e.type]||e.type,i=R.getRelativePosition(e,t);return wt(n,t,i.x,i.y,e)}(t,e))})}else!function(e,t,n){var i,r,o,a,s=e[ht]||(e[ht]={}),l=s.resizer=function(e){var t=Lt(ft),n=Lt(ft+"-expand"),i=Lt(ft+"-shrink");n.appendChild(Lt()),i.appendChild(Lt()),t.appendChild(n),t.appendChild(i),t._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var r=function(){t._reset(),e()};return yt(n,"scroll",r.bind(n,"expand")),yt(i,"scroll",r.bind(i,"shrink")),t}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&e.parentNode,r=i?i.clientWidth:0;t(wt("resize",n)),i&&i.clientWidth<r&&n.canvas&&t(wt("resize",n))}},o=!1,a=[],function(){a=Array.prototype.slice.call(arguments),r=r||this,o||(o=!0,R.requestAnimFrame.call(window,(function(){o=!1,i.apply(r,a)})))}));!function(e,t){var n=e[ht]||(e[ht]={}),i=n.renderProxy=function(e){"chartjs-render-animation"===e.animationName&&t()};R.each(mt,(function(t){yt(e,t,i)})),n.reflow=!!e.offsetParent,e.classList.add(pt)}(e,(function(){if(s.resizer){var t=e.parentNode;t&&t!==l.parentNode&&t.insertBefore(l,t.firstChild),l._reset()}}))}(i,n,e)},removeEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=((n[ht]||{}).proxies||{})[e.id+"_"+t];r&&bt(i,t,r)}else!function(e){var t=e[ht]||{},n=t.resizer;delete t.resizer,function(e){var t=e[ht]||{},n=t.renderProxy;n&&(R.each(mt,(function(t){bt(e,t,n)})),delete t.renderProxy),e.classList.remove(pt)}(e),n&&n.parentNode&&n.parentNode.removeChild(n)}(i)}};R.addEvent=yt,R.removeEvent=bt;var kt=Mt._enabled?Mt:{acquireContext:function(e){return e&&e.canvas&&(e=e.canvas),e&&e.getContext("2d")||null}},xt=R.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},kt);I._set("global",{plugins:{}});var St={_plugins:[],_cacheId:0,register:function(e){var t=this._plugins;[].concat(e).forEach((function(e){-1===t.indexOf(e)&&t.push(e)})),this._cacheId++},unregister:function(e){var t=this._plugins;[].concat(e).forEach((function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)})),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(e,t,n){var i,r,o,a,s,l=this.descriptors(e),u=l.length;for(i=0;i<u;++i)if("function"==typeof(s=(o=(r=l[i]).plugin)[t])&&((a=[e].concat(n||[])).push(r.options),!1===s.apply(o,a)))return!1;return!0},descriptors:function(e){var t=e.$plugins||(e.$plugins={});if(t.id===this._cacheId)return t.descriptors;var n=[],i=[],r=e&&e.config||{},o=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach((function(e){if(-1===n.indexOf(e)){var t=e.id,r=o[t];!1!==r&&(!0===r&&(r=R.clone(I.global.plugins[t])),n.push(e),i.push({plugin:e,options:r||{}}))}})),t.descriptors=i,t.id=this._cacheId,i},_invalidate:function(e){delete e.$plugins}},Tt={constructors:{},defaults:{},registerScaleType:function(e,t,n){this.constructors[e]=t,this.defaults[e]=R.clone(n)},getScaleConstructor:function(e){return this.constructors.hasOwnProperty(e)?this.constructors[e]:void 0},getScaleDefaults:function(e){return this.defaults.hasOwnProperty(e)?R.merge({},[I.scale,this.defaults[e]]):{}},updateScaleDefaults:function(e,t){this.defaults.hasOwnProperty(e)&&(this.defaults[e]=R.extend(this.defaults[e],t))},addScalesToLayout:function(e){R.each(e.scales,(function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,ct.addBox(e,t)}))}},$t=R.valueOrDefault,Dt=R.rtl.getRtlAdapter;I._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:R.noop,title:function(e,t){var n="",i=t.labels,r=i?i.length:0;if(e.length>0){var o=e[0];o.label?n=o.label:o.xLabel?n=o.xLabel:r>0&&o.index<r&&(n=i[o.index])}return n},afterTitle:R.noop,beforeBody:R.noop,beforeLabel:R.noop,label:function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),R.isNullOrUndef(e.value)?n+=e.yLabel:n+=e.value,n},labelColor:function(e,t){var n=t.getDatasetMeta(e.datasetIndex).data[e.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:R.noop,afterBody:R.noop,beforeFooter:R.noop,footer:R.noop,afterFooter:R.noop}}});var Ct={average:function(e){if(!e.length)return!1;var t,n,i=0,r=0,o=0;for(t=0,n=e.length;t<n;++t){var a=e[t];if(a&&a.hasValue()){var s=a.tooltipPosition();i+=s.x,r+=s.y,++o}}return{x:i/o,y:r/o}},nearest:function(e,t){var n,i,r,o=t.x,a=t.y,s=Number.POSITIVE_INFINITY;for(n=0,i=e.length;n<i;++n){var l=e[n];if(l&&l.hasValue()){var u=l.getCenterPoint(),c=R.distanceBetweenPoints(t,u);c<s&&(s=c,r=l)}}if(r){var d=r.tooltipPosition();o=d.x,a=d.y}return{x:o,y:a}}};function Et(e,t){return t&&(R.isArray(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function At(e){return("string"==typeof e||e instanceof String)&&e.indexOf("\n")>-1?e.split("\n"):e}function Pt(e){var t=I.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:$t(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:$t(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:$t(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:$t(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:$t(e.titleFontStyle,t.defaultFontStyle),titleFontSize:$t(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:$t(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:$t(e.footerFontStyle,t.defaultFontStyle),footerFontSize:$t(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function Yt(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function Ot(e){return Et([],At(e))}var It=q.extend({initialize:function(){this._model=Pt(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,n=t.callbacks,i=n.beforeTitle.apply(e,arguments),r=n.title.apply(e,arguments),o=n.afterTitle.apply(e,arguments),a=[];return a=Et(a,At(i)),a=Et(a,At(r)),Et(a,At(o))},getBeforeBody:function(){return Ot(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,i=n._options.callbacks,r=[];return R.each(e,(function(e){var o={before:[],lines:[],after:[]};Et(o.before,At(i.beforeLabel.call(n,e,t))),Et(o.lines,i.label.call(n,e,t)),Et(o.after,At(i.afterLabel.call(n,e,t))),r.push(o)})),r},getAfterBody:function(){return Ot(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),i=t.footer.apply(e,arguments),r=t.afterFooter.apply(e,arguments),o=[];return o=Et(o,At(n)),o=Et(o,At(i)),Et(o,At(r))},update:function(e){var t,n,i,r,o,a,s,l,u,c,d=this,h=d._options,f=d._model,p=d._model=Pt(h),m=d._active,g=d._data,v={xAlign:f.xAlign,yAlign:f.yAlign},_={x:f.x,y:f.y},y={width:f.width,height:f.height},b={x:f.caretX,y:f.caretY};if(m.length){p.opacity=1;var w=[],L=[];b=Ct[h.position].call(d,m,d._eventPosition);var M=[];for(t=0,n=m.length;t<n;++t)M.push((r=void 0,o=void 0,l=void 0,u=void 0,c=void 0,r=(i=m[t])._xScale,o=i._yScale||i._scale,a=i._index,s=i._datasetIndex,u=(l=i._chart.getDatasetMeta(s).controller)._getIndexScale(),c=l._getValueScale(),{xLabel:r?r.getLabelForIndex(a,s):"",yLabel:o?o.getLabelForIndex(a,s):"",label:u?""+u.getLabelForIndex(a,s):"",value:c?""+c.getLabelForIndex(a,s):"",index:a,datasetIndex:s,x:i._model.x,y:i._model.y}));h.filter&&(M=M.filter((function(e){return h.filter(e,g)}))),h.itemSort&&(M=M.sort((function(e,t){return h.itemSort(e,t,g)}))),R.each(M,(function(e){w.push(h.callbacks.labelColor.call(d,e,d._chart)),L.push(h.callbacks.labelTextColor.call(d,e,d._chart))})),p.title=d.getTitle(M,g),p.beforeBody=d.getBeforeBody(M,g),p.body=d.getBody(M,g),p.afterBody=d.getAfterBody(M,g),p.footer=d.getFooter(M,g),p.x=b.x,p.y=b.y,p.caretPadding=h.caretPadding,p.labelColors=w,p.labelTextColors=L,p.dataPoints=M,_=function(e,t,n,i){var r=e.x,o=e.y,a=e.caretSize,s=e.caretPadding,l=e.cornerRadius,u=n.xAlign,c=n.yAlign,d=a+s,h=l+s;return"right"===u?r-=t.width:"center"===u&&((r-=t.width/2)+t.width>i.width&&(r=i.width-t.width),r<0&&(r=0)),"top"===c?o+=d:o-="bottom"===c?t.height+d:t.height/2,"center"===c?"left"===u?r+=d:"right"===u&&(r-=d):"left"===u?r-=h:"right"===u&&(r+=h),{x:r,y:o}}(p,y=function(e,t){var n=e._chart.ctx,i=2*t.yPadding,r=0,o=t.body,a=o.reduce((function(e,t){return e+t.before.length+t.lines.length+t.after.length}),0);a+=t.beforeBody.length+t.afterBody.length;var s=t.title.length,l=t.footer.length,u=t.titleFontSize,c=t.bodyFontSize,d=t.footerFontSize;i+=s*u,i+=s?(s-1)*t.titleSpacing:0,i+=s?t.titleMarginBottom:0,i+=a*c,i+=a?(a-1)*t.bodySpacing:0,i+=l?t.footerMarginTop:0,i+=l*d,i+=l?(l-1)*t.footerSpacing:0;var h=0,f=function(e){r=Math.max(r,n.measureText(e).width+h)};return n.font=R.fontString(u,t._titleFontStyle,t._titleFontFamily),R.each(t.title,f),n.font=R.fontString(c,t._bodyFontStyle,t._bodyFontFamily),R.each(t.beforeBody.concat(t.afterBody),f),h=t.displayColors?c+2:0,R.each(o,(function(e){R.each(e.before,f),R.each(e.lines,f),R.each(e.after,f)})),h=0,n.font=R.fontString(d,t._footerFontStyle,t._footerFontFamily),R.each(t.footer,f),{width:r+=2*t.xPadding,height:i}}(this,p),v=function(e,t){var n,i,r,o,a,s=e._model,l=e._chart,u=e._chart.chartArea,c="center",d="center";s.y<t.height?d="top":s.y>l.height-t.height&&(d="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===d?(n=function(e){return e<=h},i=function(e){return e>h}):(n=function(e){return e<=t.width/2},i=function(e){return e>=l.width-t.width/2}),r=function(e){return e+t.width+s.caretSize+s.caretPadding>l.width},o=function(e){return e-t.width-s.caretSize-s.caretPadding<0},a=function(e){return e<=f?"top":"bottom"},n(s.x)?(c="left",r(s.x)&&(c="center",d=a(s.y))):i(s.x)&&(c="right",o(s.x)&&(c="center",d=a(s.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:c,yAlign:p.yAlign?p.yAlign:d}}(this,y),d._chart)}else p.opacity=0;return p.xAlign=v.xAlign,p.yAlign=v.yAlign,p.x=_.x,p.y=_.y,p.width=y.width,p.height=y.height,p.caretX=b.x,p.caretY=b.y,d._model=p,e&&h.custom&&h.custom.call(d,p),d},drawCaret:function(e,t){var n=this._chart.ctx,i=this._view,r=this.getCaretPosition(e,t,i);n.lineTo(r.x1,r.y1),n.lineTo(r.x2,r.y2),n.lineTo(r.x3,r.y3)},getCaretPosition:function(e,t,n){var i,r,o,a,s,l,u=n.caretSize,c=n.cornerRadius,d=n.xAlign,h=n.yAlign,f=e.x,p=e.y,m=t.width,g=t.height;if("center"===h)s=p+g/2,"left"===d?(r=(i=f)-u,o=i,a=s+u,l=s-u):(r=(i=f+m)+u,o=i,a=s-u,l=s+u);else if("left"===d?(i=(r=f+c+u)-u,o=r+u):"right"===d?(i=(r=f+m-c-u)-u,o=r+u):(i=(r=n.caretX)-u,o=r+u),"top"===h)s=(a=p)-u,l=a;else{s=(a=p+g)+u,l=a;var v=o;o=i,i=v}return{x1:i,x2:r,x3:o,y1:a,y2:s,y3:l}},drawTitle:function(e,t,n){var i,r,o,a=t.title,s=a.length;if(s){var l=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._titleAlign),n.textAlign=l.textAlign(t._titleAlign),n.textBaseline="middle",i=t.titleFontSize,r=t.titleSpacing,n.fillStyle=t.titleFontColor,n.font=R.fontString(i,t._titleFontStyle,t._titleFontFamily),o=0;o<s;++o)n.fillText(a[o],l.x(e.x),e.y+i/2),e.y+=i+r,o+1===s&&(e.y+=t.titleMarginBottom-r)}},drawBody:function(e,t,n){var i,r,o,a,s,l,u,c,d=t.bodyFontSize,h=t.bodySpacing,f=t._bodyAlign,p=t.body,m=t.displayColors,g=0,v=m?Yt(t,"left"):0,_=Dt(t.rtl,t.x,t.width),y=function(t){n.fillText(t,_.x(e.x+g),e.y+d/2),e.y+=d+h},b=_.textAlign(f);for(n.textAlign=f,n.textBaseline="middle",n.font=R.fontString(d,t._bodyFontStyle,t._bodyFontFamily),e.x=Yt(t,b),n.fillStyle=t.bodyFontColor,R.each(t.beforeBody,y),g=m&&"right"!==b?"center"===f?d/2+1:d+2:0,s=0,u=p.length;s<u;++s){for(i=p[s],r=t.labelTextColors[s],o=t.labelColors[s],n.fillStyle=r,R.each(i.before,y),l=0,c=(a=i.lines).length;l<c;++l){if(m){var w=_.x(v);n.fillStyle=t.legendColorBackground,n.fillRect(_.leftForLtr(w,d),e.y,d,d),n.lineWidth=1,n.strokeStyle=o.borderColor,n.strokeRect(_.leftForLtr(w,d),e.y,d,d),n.fillStyle=o.backgroundColor,n.fillRect(_.leftForLtr(_.xPlus(w,1),d-2),e.y+1,d-2,d-2),n.fillStyle=r}y(a[l])}R.each(i.after,y)}g=0,R.each(t.afterBody,y),e.y-=h},drawFooter:function(e,t,n){var i,r,o=t.footer,a=o.length;if(a){var s=Dt(t.rtl,t.x,t.width);for(e.x=Yt(t,t._footerAlign),e.y+=t.footerMarginTop,n.textAlign=s.textAlign(t._footerAlign),n.textBaseline="middle",i=t.footerFontSize,n.fillStyle=t.footerFontColor,n.font=R.fontString(i,t._footerFontStyle,t._footerFontFamily),r=0;r<a;++r)n.fillText(o[r],s.x(e.x),e.y+i/2),e.y+=i+t.footerSpacing}},drawBackground:function(e,t,n,i){n.fillStyle=t.backgroundColor,n.strokeStyle=t.borderColor,n.lineWidth=t.borderWidth;var r=t.xAlign,o=t.yAlign,a=e.x,s=e.y,l=i.width,u=i.height,c=t.cornerRadius;n.beginPath(),n.moveTo(a+c,s),"top"===o&&this.drawCaret(e,i),n.lineTo(a+l-c,s),n.quadraticCurveTo(a+l,s,a+l,s+c),"center"===o&&"right"===r&&this.drawCaret(e,i),n.lineTo(a+l,s+u-c),n.quadraticCurveTo(a+l,s+u,a+l-c,s+u),"bottom"===o&&this.drawCaret(e,i),n.lineTo(a+c,s+u),n.quadraticCurveTo(a,s+u,a,s+u-c),"center"===o&&"left"===r&&this.drawCaret(e,i),n.lineTo(a,s+c),n.quadraticCurveTo(a,s,a+c,s),n.closePath(),n.fill(),t.borderWidth>0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},i={x:t.x,y:t.y},r=Math.abs(t.opacity<.001)?0:t.opacity,o=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&o&&(e.save(),e.globalAlpha=r,this.drawBackground(i,t,e,n),i.y+=t.yPadding,R.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(i,t,e),this.drawBody(i,t,e),this.drawFooter(i,t,e),R.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===e.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(e,i.mode,i),i.reverse&&n._active.reverse()),(t=!R.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:e.x,y:e.y},n.update(!0),n.pivot())),t}}),jt=Ct,Ht=It;Ht.positioners=jt;var Bt=R.valueOrDefault;function Nt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){if("xAxes"===e||"yAxes"===e){var r,o,a,s=n[e].length;for(t[e]||(t[e]=[]),r=0;r<s;++r)a=n[e][r],o=Bt(a.type,"xAxes"===e?"category":"linear"),r>=t[e].length&&t[e].push({}),!t[e][r].type||a.type&&a.type!==t[e][r].type?R.merge(t[e][r],[Tt.getScaleDefaults(o),a]):R.merge(t[e][r],a)}else R._merger(e,t,n,i)}})}function Rt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,n,i){var r=t[e]||{},o=n[e];"scales"===e?t[e]=Nt(r,o):"scale"===e?t[e]=R.merge(r,[Tt.getScaleDefaults(o.type),o]):R._merger(e,t,n,i)}})}function Ft(e){var t=e.options;R.each(e.scales,(function(t){ct.removeBox(e,t)})),t=Rt(I.global,I[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function zt(e,t,n){var i,r=function(e){return e.id===i};do{i=t+n++}while(R.findIndex(e,r)>=0);return i}function Vt(e){return"top"===e||"bottom"===e}function Ut(e,t){return function(n,i){return n[e]===i[e]?n[t]-i[t]:n[e]-i[e]}}I._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Wt=function(e,t){return this.construct(e,t),this};R.extend(Wt.prototype,{construct:function(e,t){var n=this;t=function(e){var t=(e=e||{}).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Rt(I.global,I[e.type],e.options||{}),e}(t);var i=xt.acquireContext(e,t),r=i&&i.canvas,o=r&&r.height,a=r&&r.width;n.id=R.uid(),n.ctx=i,n.canvas=r,n.config=t,n.width=a,n.height=o,n.aspectRatio=o?a/o:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Wt.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),i&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return St.notify(e,"beforeInit"),R.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),St.notify(e,"afterInit"),e},clear:function(){return R.canvas.clear(this),this},stop:function(){return J.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,i=t.canvas,r=n.maintainAspectRatio&&t.aspectRatio||null,o=Math.max(0,Math.floor(R.getMaximumWidth(i))),a=Math.max(0,Math.floor(r?o/r:R.getMaximumHeight(i)));if((t.width!==o||t.height!==a)&&(i.width=t.width=o,i.height=t.height=a,i.style.width=o+"px",i.style.height=a+"px",R.retinaScale(t,n.devicePixelRatio),!e)){var s={width:o,height:a};St.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;R.each(t.xAxes,(function(e,n){e.id||(e.id=zt(t.xAxes,"x-axis-",n))})),R.each(t.yAxes,(function(e,n){e.id||(e.id=zt(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},i=[],r=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(i=i.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&i.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),R.each(i,(function(t){var i=t.options,o=i.id,a=Bt(i.type,t.dtype);Vt(i.position)!==Vt(t.dposition)&&(i.position=t.dposition),r[o]=!0;var s=null;if(o in n&&n[o].type===a)(s=n[o]).options=i,s.ctx=e.ctx,s.chart=e;else{var l=Tt.getScaleConstructor(a);if(!l)return;s=new l({id:o,type:a,options:i,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)})),R.each(r,(function(e,t){e||delete n[t]})),e.scales=n,Tt.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,i=[],r=n.data.datasets;for(e=0,t=r.length;e<t;e++){var o=r[e],a=n.getDatasetMeta(e),s=o.type||n.config.type;if(a.type&&a.type!==s&&(n.destroyDatasetMeta(e),a=n.getDatasetMeta(e)),a.type=s,a.order=o.order||0,a.index=e,a.controller)a.controller.updateIndex(e),a.controller.linkScales();else{var l=qe[a.type];if(void 0===l)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new l(n,e),i.push(a.controller)}}return i},resetElements:function(){var e=this;R.each(e.data.datasets,(function(t,n){e.getDatasetMeta(n).controller.reset()}),e)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var t,n,i=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),Ft(i),St._invalidate(i),!1!==St.notify(i,"beforeUpdate")){i.tooltip._data=i.data;var r=i.buildOrUpdateControllers();for(t=0,n=i.data.datasets.length;t<n;t++)i.getDatasetMeta(t).controller.buildOrUpdateElements();i.updateLayout(),i.options.animation&&i.options.animation.duration&&R.each(r,(function(e){e.reset()})),i.updateDatasets(),i.tooltip.initialize(),i.lastActive=[],St.notify(i,"afterUpdate"),i._layers.sort(Ut("z","_idx")),i._bufferedRender?i._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:i.render(e)}},updateLayout:function(){var e=this;!1!==St.notify(e,"beforeLayout")&&(ct.update(this,this.width,this.height),e._layers=[],R.each(e.boxes,(function(t){t._configure&&t._configure(),e._layers.push.apply(e._layers,t._layers())}),e),e._layers.forEach((function(e,t){e._idx=t})),St.notify(e,"afterScaleUpdate"),St.notify(e,"afterLayout"))},updateDatasets:function(){if(!1!==St.notify(this,"beforeDatasetsUpdate")){for(var e=0,t=this.data.datasets.length;e<t;++e)this.updateDataset(e);St.notify(this,"afterDatasetsUpdate")}},updateDataset:function(e){var t=this.getDatasetMeta(e),n={meta:t,index:e};!1!==St.notify(this,"beforeDatasetUpdate",[n])&&(t.controller._update(),St.notify(this,"afterDatasetUpdate",[n]))},render:function(e){var t=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var n=t.options.animation,i=Bt(e.duration,n&&n.duration),r=e.lazy;if(!1!==St.notify(t,"beforeRender")){var o=function(e){St.notify(t,"afterRender"),R.callback(n&&n.onComplete,[e],t)};if(n&&i){var a=new Z({numSteps:i/16.66,easing:e.easing||n.easing,render:function(e,t){var n=R.easing.effects[t.easing],i=t.currentStep,r=i/t.numSteps;e.draw(n(r),r,i)},onAnimationProgress:n.onProgress,onAnimationComplete:o});J.addAnimation(t,a,i,r)}else t.draw(),o(new Z({numSteps:0,chart:t}));return t}},draw:function(e){var t,n,i=this;if(i.clear(),R.isNullOrUndef(e)&&(e=1),i.transition(e),!(i.width<=0||i.height<=0)&&!1!==St.notify(i,"beforeDraw",[e])){for(n=i._layers,t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(i.chartArea);for(i.drawDatasets(e);t<n.length;++t)n[t].draw(i.chartArea);i._drawTooltip(e),St.notify(i,"afterDraw",[e])}},transition:function(e){for(var t=0,n=(this.data.datasets||[]).length;t<n;++t)this.isDatasetVisible(t)&&this.getDatasetMeta(t).controller.transition(e);this.tooltip.transition(e)},_getSortedDatasetMetas:function(e){var t,n,i=[];for(t=0,n=(this.data.datasets||[]).length;t<n;++t)e&&!this.isDatasetVisible(t)||i.push(this.getDatasetMeta(t));return i.sort(Ut("order","index")),i},_getSortedVisibleDatasetMetas:function(){return this._getSortedDatasetMetas(!0)},drawDatasets:function(e){var t,n;if(!1!==St.notify(this,"beforeDatasetsDraw",[e])){for(n=(t=this._getSortedVisibleDatasetMetas()).length-1;n>=0;--n)this.drawDataset(t[n],e);St.notify(this,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n={meta:e,index:e.index,easingValue:t};!1!==St.notify(this,"beforeDatasetDraw",[n])&&(e.controller.draw(t),St.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(e){var t=this.tooltip,n={tooltip:t,easingValue:e};!1!==St.notify(this,"beforeTooltipDraw",[n])&&(t.draw(),St.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(e){return et.modes.single(this,e)},getElementsAtEvent:function(e){return et.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return et.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var i=et.modes[t];return"function"==typeof i?i(this,e,n):[]},getDatasetAtEvent:function(e){return et.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var n=t._meta[this.id];return n||(n=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t.order||0,index:e}),n},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t<n;++t)this.isDatasetVisible(t)&&e++;return e},isDatasetVisible:function(e){var t=this.getDatasetMeta(e);return"boolean"==typeof t.hidden?!t.hidden:!this.data.datasets[e].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(e){var t=this.id,n=this.data.datasets[e],i=n._meta&&n._meta[t];i&&(i.controller.destroy(),delete n._meta[t])},destroy:function(){var e,t,n=this,i=n.canvas;for(n.stop(),e=0,t=n.data.datasets.length;e<t;++e)n.destroyDatasetMeta(e);i&&(n.unbindEvents(),R.canvas.clear(n),xt.releaseContext(n.ctx),n.canvas=null,n.ctx=null),St.notify(n,"destroy"),delete Wt.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new Ht({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var e=this,t=e._listeners={},n=function(){e.eventHandler.apply(e,arguments)};R.each(e.options.events,(function(i){xt.addEventListener(e,i,n),t[i]=n})),e.options.responsive&&(n=function(){e.resize()},xt.addEventListener(e,"resize",n),t.resize=n)},unbindEvents:function(){var e=this,t=e._listeners;t&&(delete e._listeners,R.each(t,(function(t,n){xt.removeEventListener(e,n,t)})))},updateHoverStyle:function(e,t,n){var i,r,o,a=n?"set":"remove";for(r=0,o=e.length;r<o;++r)(i=e[r])&&this.getDatasetMeta(i._datasetIndex).controller[a+"HoverStyle"](i);"dataset"===t&&this.getDatasetMeta(e[0]._datasetIndex).controller["_"+a+"DatasetHoverStyle"]()},eventHandler:function(e){var t=this,n=t.tooltip;if(!1!==St.notify(t,"beforeEvent",[e])){t._bufferedRender=!0,t._bufferedRequest=null;var i=t.handleEvent(e);n&&(i=n._start?n.handleEvent(e):i|n.handleEvent(e)),St.notify(t,"afterEvent",[e]);var r=t._bufferedRequest;return r?t.render(r):i&&!t.animating&&(t.stop(),t.render({duration:t.options.hover.animationDuration,lazy:!0})),t._bufferedRender=!1,t._bufferedRequest=null,t}},handleEvent:function(e){var t,n=this,i=n.options||{},r=i.hover;return n.lastActive=n.lastActive||[],"mouseout"===e.type?n.active=[]:n.active=n.getElementsAtEventForMode(e,r.mode,r),R.callback(i.onHover||i.hover.onHover,[e.native,n.active],n),"mouseup"!==e.type&&"click"!==e.type||i.onClick&&i.onClick.call(n,e.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,r.mode,!1),n.active.length&&r.mode&&n.updateHoverStyle(n.active,r.mode,!0),t=!R.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,t}}),Wt.instances={};var qt=Wt;function Gt(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Zt(e){this.options=e||{}}Wt.Controller=Wt,Wt.types={},R.configMerge=Rt,R.scaleMerge=Nt,R.extend(Zt.prototype,{formats:Gt,parse:Gt,format:Gt,add:Gt,diff:Gt,startOf:Gt,endOf:Gt,_create:function(e){return e}}),Zt.override=function(e){R.extend(Zt.prototype,e)};var Jt={_date:Zt},Xt={formatters:{values:function(e){return R.isArray(e)?e:""+e},linear:function(e,t,n){var i=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&e!==Math.floor(e)&&(i=e-Math.floor(e));var r=R.log10(Math.abs(i)),o="";if(0!==e)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var a=R.log10(Math.abs(e)),s=Math.floor(a)-Math.floor(r);s=Math.max(Math.min(s,20),0),o=e.toExponential(s)}else{var l=-1*Math.floor(r);l=Math.max(Math.min(l,20),0),o=e.toFixed(l)}else o="0";return o},logarithmic:function(e,t,n){var i=e/Math.pow(10,Math.floor(R.log10(e)));return 0===e?"0":1===i||2===i||5===i||0===t||t===n.length-1?e.toExponential():""}}},Kt=R.isArray,Qt=R.isNullOrUndef,en=R.valueOrDefault,tn=R.valueAtIndexOrDefault;function nn(e,t,n){var i,r=e.getTicks().length,o=Math.min(t,r-1),a=e.getPixelForTick(o),s=e._startPixel,l=e._endPixel;if(!(n&&(i=1===r?Math.max(a-s,l-a):0===t?(e.getPixelForTick(1)-a)/2:(a-e.getPixelForTick(o-1))/2,(a+=o<t?i:-i)<s-1e-6||a>l+1e-6)))return a}function rn(e){return e.drawTicks?e.tickMarkLength:0}function on(e){var t,n;return e.display?(t=R.options._parseFont(e),n=R.options.toPadding(e.padding),t.lineHeight+n.height):0}function an(e,t){return R.extend(R.options._parseFont({fontFamily:en(t.fontFamily,e.fontFamily),fontSize:en(t.fontSize,e.fontSize),fontStyle:en(t.fontStyle,e.fontStyle),lineHeight:en(t.lineHeight,e.lineHeight)}),{color:R.options.resolve([t.fontColor,e.fontColor,I.global.defaultFontColor])})}function sn(e){var t=an(e,e.minor);return{minor:t,major:e.major.enabled?an(e,e.major):t}}function ln(e){var t,n,i,r=[];for(n=0,i=e.length;n<i;++n)void 0!==(t=e[n])._index&&r.push(t);return r}function un(e,t,n,i){var r,o,a,s,l=en(n,0),u=Math.min(en(i,e.length),e.length),c=0;for(t=Math.ceil(t),i&&(t=(r=i-n)/Math.floor(r/t)),s=l;s<0;)c++,s=Math.round(l+c*t);for(o=Math.max(l,0);o<u;o++)a=e[o],o===s?(a._index=o,c++,s=Math.round(l+c*t)):delete a.label}I._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Xt.formatters.values,minor:{},major:{}}});var cn=q.extend({zeroLineIndex:0,getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},_getLabels:function(){var e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]},mergeTicksOptions:function(){},beforeUpdate:function(){R.callback(this.options.beforeUpdate,[this])},update:function(e,t,n){var i,r,o,a,s,l=this,u=l.options.ticks,c=u.sampleSize;if(l.beforeUpdate(),l.maxWidth=e,l.maxHeight=t,l.margins=R.extend({left:0,right:0,top:0,bottom:0},n),l._ticks=null,l.ticks=null,l._labelSizes=null,l._maxLabelLines=0,l.longestLabelWidth=0,l.longestTextCache=l.longestTextCache||{},l._gridLineItems=null,l._labelItems=null,l.beforeSetDimensions(),l.setDimensions(),l.afterSetDimensions(),l.beforeDataLimits(),l.determineDataLimits(),l.afterDataLimits(),l.beforeBuildTicks(),a=l.buildTicks()||[],(!(a=l.afterBuildTicks(a)||a)||!a.length)&&l.ticks)for(a=[],i=0,r=l.ticks.length;i<r;++i)a.push({value:l.ticks[i],major:!1});return l._ticks=a,s=c<a.length,o=l._convertTicksToLabels(s?function(e,t){for(var n=[],i=e.length/t,r=0,o=e.length;r<o;r+=i)n.push(e[Math.floor(r)]);return n}(a,c):a),l._configure(),l.beforeCalculateTickRotation(),l.calculateTickRotation(),l.afterCalculateTickRotation(),l.beforeFit(),l.fit(),l.afterFit(),l._ticksToDraw=u.display&&(u.autoSkip||"auto"===u.source)?l._autoSkip(a):a,s&&(o=l._convertTicksToLabels(l._ticksToDraw)),l.ticks=o,l.afterUpdate(),l.minSize},_configure:function(){var e,t,n=this,i=n.options.ticks.reverse;n.isHorizontal()?(e=n.left,t=n.right):(e=n.top,t=n.bottom,i=!i),n._startPixel=e,n._endPixel=t,n._reversePixels=i,n._length=t-e},afterUpdate:function(){R.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){R.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0},afterSetDimensions:function(){R.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){R.callback(this.options.beforeDataLimits,[this])},determineDataLimits:R.noop,afterDataLimits:function(){R.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){R.callback(this.options.beforeBuildTicks,[this])},buildTicks:R.noop,afterBuildTicks:function(e){var t=this;return Kt(e)&&e.length?R.callback(t.options.afterBuildTicks,[t,e]):(t.ticks=R.callback(t.options.afterBuildTicks,[t,t.ticks])||t.ticks,e)},beforeTickToLabelConversion:function(){R.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var e=this.options.ticks;this.ticks=this.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){R.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){R.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var e,t,n,i,r,o,a,s=this,l=s.options,u=l.ticks,c=s.getTicks().length,d=u.minRotation||0,h=u.maxRotation,f=d;!s._isVisible()||!u.display||d>=h||c<=1||!s.isHorizontal()?s.labelRotation=d:(t=(e=s._getLabelSizes()).widest.width,n=e.highest.height-e.highest.offset,i=Math.min(s.maxWidth,s.chart.width-t),t+6>(r=l.offset?s.maxWidth/c:i/(c-1))&&(r=i/(c-(l.offset?.5:1)),o=s.maxHeight-rn(l.gridLines)-u.padding-on(l.scaleLabel),a=Math.sqrt(t*t+n*n),f=R.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/r,1)),Math.asin(Math.min(o/a,1))-Math.asin(n/a))),f=Math.max(d,Math.min(h,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){R.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){R.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,i=e.options,r=i.ticks,o=i.scaleLabel,a=i.gridLines,s=e._isVisible(),l="bottom"===i.position,u=e.isHorizontal();if(u?t.width=e.maxWidth:s&&(t.width=rn(a)+on(o)),u?s&&(t.height=rn(a)+on(o)):t.height=e.maxHeight,r.display&&s){var c=sn(r),d=e._getLabelSizes(),h=d.first,f=d.last,p=d.widest,m=d.highest,g=.4*c.minor.lineHeight,v=r.padding;if(u){var _=0!==e.labelRotation,y=R.toRadians(e.labelRotation),b=Math.cos(y),w=Math.sin(y),L=w*p.width+b*(m.height-(_?m.offset:0))+(_?0:g);t.height=Math.min(e.maxHeight,t.height+L+v);var M,k,x=e.getPixelForTick(0)-e.left,S=e.right-e.getPixelForTick(e.getTicks().length-1);_?(M=l?b*h.width+w*h.offset:w*(h.height-h.offset),k=l?w*(f.height-f.offset):b*f.width+w*f.offset):(M=h.width/2,k=f.width/2),e.paddingLeft=Math.max((M-x)*e.width/(e.width-x),0)+3,e.paddingRight=Math.max((k-S)*e.width/(e.width-S),0)+3}else{var T=r.mirror?0:p.width+v+g;t.width=Math.min(e.maxWidth,t.width+T),e.paddingTop=h.height/2,e.paddingBottom=f.height/2}}e.handleMargins(),u?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){R.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(Qt(e))return NaN;if(("number"==typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,i,r=this;for(r.ticks=e.map((function(e){return e.value})),r.beforeTickToLabelConversion(),t=r.convertTicksToLabels(e)||r.ticks,r.afterTickToLabelConversion(),n=0,i=e.length;n<i;++n)e[n].label=t[n];return t},_getLabelSizes:function(){var e=this,t=e._labelSizes;return t||(e._labelSizes=t=function(e,t,n,i){var r,o,a,s,l,u,c,d,h,f,p,m,g,v=n.length,_=[],y=[],b=[];for(r=0;r<v;++r){if(s=n[r].label,l=n[r].major?t.major:t.minor,e.font=u=l.string,c=i[u]=i[u]||{data:{},gc:[]},d=l.lineHeight,h=f=0,Qt(s)||Kt(s)){if(Kt(s))for(o=0,a=s.length;o<a;++o)p=s[o],Qt(p)||Kt(p)||(h=R.measureText(e,c.data,c.gc,h,p),f+=d)}else h=R.measureText(e,c.data,c.gc,h,s),f=d;_.push(h),y.push(f),b.push(d/2)}function w(e){return{width:_[e]||0,height:y[e]||0,offset:b[e]||0}}return function(e,t){R.each(e,(function(e){var n,i=e.gc,r=i.length/2;if(r>t){for(n=0;n<r;++n)delete e.data[i[n]];i.splice(0,r)}}))}(i,v),m=_.indexOf(Math.max.apply(null,_)),g=y.indexOf(Math.max.apply(null,y)),{first:w(0),last:w(v-1),widest:w(m),highest:w(g)}}(e.ctx,sn(e.options.ticks),e.getTicks(),e.longestTextCache),e.longestLabelWidth=t.widest.width),t},_parseValue:function(e){var t,n,i,r;return Kt(e)?(t=+this.getRightValue(e[0]),n=+this.getRightValue(e[1]),i=Math.min(t,n),r=Math.max(t,n)):(t=void 0,n=e=+this.getRightValue(e),i=e,r=e),{min:i,max:r,start:t,end:n}},_getScaleLabel:function(e){var t=this._parseValue(e);return void 0!==t.start?"["+t.start+", "+t.end+"]":+this.getRightValue(e)},getLabelForIndex:R.noop,getPixelForValue:R.noop,getValueForPixel:R.noop,getPixelForTick:function(e){var t=this.options.offset,n=this._ticks.length,i=1/Math.max(n-(t?0:1),1);return e<0||e>n-1?null:this.getPixelForDecimal(e*i+(t?i/2:0))},getPixelForDecimal:function(e){return this._reversePixels&&(e=1-e),this._startPixel+e*this._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,n,i,r,o=this.options.ticks,a=this._length,s=o.maxTicksLimit||a/this._tickSize()+1,l=o.major.enabled?function(e){var t,n,i=[];for(t=0,n=e.length;t<n;t++)e[t].major&&i.push(t);return i}(e):[],u=l.length,c=l[0],d=l[u-1];if(u>s)return function(e,t,n){var i,r,o=0,a=t[0];for(n=Math.ceil(n),i=0;i<e.length;i++)r=e[i],i===a?(r._index=i,a=t[++o*n]):delete r.label}(e,l,u/s),ln(e);if(i=function(e,t,n,i){var r,o,a,s,l=function(e){var t,n,i=e.length;if(i<2)return!1;for(n=e[0],t=1;t<i;++t)if(e[t]-e[t-1]!==n)return!1;return n}(e),u=(t.length-1)/i;if(!l)return Math.max(u,1);for(a=0,s=(r=R.math._factorize(l)).length-1;a<s;a++)if((o=r[a])>u)return o;return Math.max(u,1)}(l,e,0,s),u>0){for(t=0,n=u-1;t<n;t++)un(e,i,l[t],l[t+1]);return r=u>1?(d-c)/(u-1):null,un(e,i,R.isNullOrUndef(r)?0:c-r,c),un(e,i,d,R.isNullOrUndef(r)?e.length:d+r),ln(e)}return un(e,i),ln(e)},_tickSize:function(){var e=this.options.ticks,t=R.toRadians(this.labelRotation),n=Math.abs(Math.cos(t)),i=Math.abs(Math.sin(t)),r=this._getLabelSizes(),o=e.autoSkipPadding||0,a=r?r.widest.width+o:0,s=r?r.highest.height+o:0;return this.isHorizontal()?s*n>a*i?a/n:s/i:s*i<a*n?s/n:a/i},_isVisible:function(){var e,t,n,i=this.chart,r=this.options.display;if("auto"!==r)return!!r;for(e=0,t=i.data.datasets.length;e<t;++e)if(i.isDatasetVisible(e)&&((n=i.getDatasetMeta(e)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},_computeGridLineItems:function(e){var t,n,i,r,o,a,s,l,u,c,d,h,f,p,m,g,v,_=this,y=_.chart,b=_.options,w=b.gridLines,L=b.position,M=w.offsetGridLines,k=_.isHorizontal(),x=_._ticksToDraw,S=x.length+(M?1:0),T=rn(w),$=[],D=w.drawBorder?tn(w.lineWidth,0,0):0,C=D/2,E=R._alignPixel,A=function(e){return E(y,e,D)};for("top"===L?(t=A(_.bottom),s=_.bottom-T,u=t-C,d=A(e.top)+C,f=e.bottom):"bottom"===L?(t=A(_.top),d=e.top,f=A(e.bottom)-C,s=t+C,u=_.top+T):"left"===L?(t=A(_.right),a=_.right-T,l=t-C,c=A(e.left)+C,h=e.right):(t=A(_.left),c=e.left,h=A(e.right)-C,a=t+C,l=_.left+T),n=0;n<S;++n)i=x[n]||{},Qt(i.label)&&n<x.length||(n===_.zeroLineIndex&&b.offset===M?(p=w.zeroLineWidth,m=w.zeroLineColor,g=w.zeroLineBorderDash||[],v=w.zeroLineBorderDashOffset||0):(p=tn(w.lineWidth,n,1),m=tn(w.color,n,"rgba(0,0,0,0.1)"),g=w.borderDash||[],v=w.borderDashOffset||0),void 0!==(r=nn(_,i._index||n,M))&&(o=E(y,r,p),k?a=l=c=h=o:s=u=d=f=o,$.push({tx1:a,ty1:s,tx2:l,ty2:u,x1:c,y1:d,x2:h,y2:f,width:p,color:m,borderDash:g,borderDashOffset:v})));return $.ticksLength=S,$.borderValue=t,$},_computeLabelItems:function(){var e,t,n,i,r,o,a,s,l,u,c,d,h=this,f=h.options,p=f.ticks,m=f.position,g=p.mirror,v=h.isHorizontal(),_=h._ticksToDraw,y=sn(p),b=p.padding,w=rn(f.gridLines),L=-R.toRadians(h.labelRotation),M=[];for("top"===m?(o=h.bottom-w-b,a=L?"left":"center"):"bottom"===m?(o=h.top+w+b,a=L?"right":"center"):"left"===m?(r=h.right-(g?0:w)-b,a=g?"left":"right"):(r=h.left+(g?0:w)+b,a=g?"right":"left"),e=0,t=_.length;e<t;++e)i=(n=_[e]).label,Qt(i)||(s=h.getPixelForTick(n._index||e)+p.labelOffset,u=(l=n.major?y.major:y.minor).lineHeight,c=Kt(i)?i.length:1,v?(r=s,d="top"===m?((L?1:.5)-c)*u:(L?0:.5)*u):(o=s,d=(1-c)*u/2),M.push({x:r,y:o,rotation:L,label:i,font:l,textOffset:d,textAlign:a}));return M},_drawGrid:function(e){var t=this,n=t.options.gridLines;if(n.display){var i,r,o,a,s,l=t.ctx,u=t.chart,c=R._alignPixel,d=n.drawBorder?tn(n.lineWidth,0,0):0,h=t._gridLineItems||(t._gridLineItems=t._computeGridLineItems(e));for(o=0,a=h.length;o<a;++o)i=(s=h[o]).width,r=s.color,i&&r&&(l.save(),l.lineWidth=i,l.strokeStyle=r,l.setLineDash&&(l.setLineDash(s.borderDash),l.lineDashOffset=s.borderDashOffset),l.beginPath(),n.drawTicks&&(l.moveTo(s.tx1,s.ty1),l.lineTo(s.tx2,s.ty2)),n.drawOnChartArea&&(l.moveTo(s.x1,s.y1),l.lineTo(s.x2,s.y2)),l.stroke(),l.restore());if(d){var f,p,m,g,v=d,_=tn(n.lineWidth,h.ticksLength-1,1),y=h.borderValue;t.isHorizontal()?(f=c(u,t.left,v)-v/2,p=c(u,t.right,_)+_/2,m=g=y):(m=c(u,t.top,v)-v/2,g=c(u,t.bottom,_)+_/2,f=p=y),l.lineWidth=d,l.strokeStyle=tn(n.color,0),l.beginPath(),l.moveTo(f,m),l.lineTo(p,g),l.stroke()}}},_drawLabels:function(){var e=this;if(e.options.ticks.display){var t,n,i,r,o,a,s,l,u=e.ctx,c=e._labelItems||(e._labelItems=e._computeLabelItems());for(t=0,i=c.length;t<i;++t){if(a=(o=c[t]).font,u.save(),u.translate(o.x,o.y),u.rotate(o.rotation),u.font=a.string,u.fillStyle=a.color,u.textBaseline="middle",u.textAlign=o.textAlign,s=o.label,l=o.textOffset,Kt(s))for(n=0,r=s.length;n<r;++n)u.fillText(""+s[n],0,l),l+=a.lineHeight;else u.fillText(s,0,l);u.restore()}}},_drawTitle:function(){var e=this,t=e.ctx,n=e.options,i=n.scaleLabel;if(i.display){var r,o,a=en(i.fontColor,I.global.defaultFontColor),s=R.options._parseFont(i),l=R.options.toPadding(i.padding),u=s.lineHeight/2,c=n.position,d=0;if(e.isHorizontal())r=e.left+e.width/2,o="bottom"===c?e.bottom-u-l.bottom:e.top+u+l.top;else{var h="left"===c;r=h?e.left+u+l.top:e.right-u-l.top,o=e.top+e.height/2,d=h?-.5*Math.PI:.5*Math.PI}t.save(),t.translate(r,o),t.rotate(d),t.textAlign="center",t.textBaseline="middle",t.fillStyle=a,t.font=s.string,t.fillText(i.labelString,0,0),t.restore()}},draw:function(e){this._isVisible()&&(this._drawGrid(e),this._drawTitle(),this._drawLabels())},_layers:function(){var e=this,t=e.options,n=t.ticks&&t.ticks.z||0,i=t.gridLines&&t.gridLines.z||0;return e._isVisible()&&n!==i&&e.draw===e._draw?[{z:i,draw:function(){e._drawGrid.apply(e,arguments),e._drawTitle.apply(e,arguments)}},{z:n,draw:function(){e._drawLabels.apply(e,arguments)}}]:[{z:n,draw:function(){e.draw.apply(e,arguments)}}]},_getMatchingVisibleMetas:function(e){var t=this,n=t.isHorizontal();return t.chart._getSortedVisibleDatasetMetas().filter((function(i){return(!e||i.type===e)&&(n?i.xAxisID===t.id:i.yAxisID===t.id)}))}});cn.prototype._draw=cn.prototype.draw;var dn=cn,hn=R.isNullOrUndef,fn=dn.extend({determineDataLimits:function(){var e,t=this,n=t._getLabels(),i=t.options.ticks,r=i.min,o=i.max,a=0,s=n.length-1;void 0!==r&&(e=n.indexOf(r))>=0&&(a=e),void 0!==o&&(e=n.indexOf(o))>=0&&(s=e),t.minIndex=a,t.maxIndex=s,t.min=n[a],t.max=n[s]},buildTicks:function(){var e=this._getLabels(),t=this.minIndex,n=this.maxIndex;this.ticks=0===t&&n===e.length-1?e:e.slice(t,n+1)},getLabelForIndex:function(e,t){var n=this.chart;return n.getDatasetMeta(t).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[t].data[e]):this._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;dn.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var i,r,o,a=this;return hn(t)||hn(n)||(e=a.chart.data.datasets[n].data[t]),hn(e)||(i=a.isHorizontal()?e.x:e.y),(void 0!==i||void 0!==e&&isNaN(t))&&(r=a._getLabels(),e=R.valueOrDefault(i,e),t=-1!==(o=r.indexOf(e))?o:t,isNaN(t)&&(t=e)),a.getPixelForDecimal((t-a._startValue)/a._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange);return Math.min(Math.max(t,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}});fn._defaults={position:"bottom"};var pn=R.noop,mn=R.isNullOrUndef,gn=dn.extend({getRightValue:function(e){return"string"==typeof e?+e:dn.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var n=R.sign(e.min),i=R.sign(e.max);n<0&&i<0?e.max=0:n>0&&i>0&&(e.min=0)}var r=void 0!==t.min||void 0!==t.suggestedMin,o=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),r!==o&&e.min>=e.max&&(r?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this.options.ticks,n=t.stepSize,i=t.maxTicksLimit;return n?e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(e=this._computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:pn,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,precision:t.precision,stepSize:R.valueOrDefault(t.fixedStepSize,t.stepSize)},r=e.ticks=function(e,t){var n,i,r,o,a=[],s=e.stepSize,l=s||1,u=e.maxTicks-1,c=e.min,d=e.max,h=e.precision,f=t.min,p=t.max,m=R.niceNum((p-f)/u/l)*l;if(m<1e-14&&mn(c)&&mn(d))return[f,p];(o=Math.ceil(p/m)-Math.floor(f/m))>u&&(m=R.niceNum(o*m/u/l)*l),s||mn(h)?n=Math.pow(10,R._decimalPlaces(m)):(n=Math.pow(10,h),m=Math.ceil(m*n)/n),i=Math.floor(f/m)*m,r=Math.ceil(p/m)*m,s&&(!mn(c)&&R.almostWhole(c/m,m/1e3)&&(i=c),!mn(d)&&R.almostWhole(d/m,m/1e3)&&(r=d)),o=(r-i)/m,o=R.almostEquals(o,Math.round(o),m/1e3)?Math.round(o):Math.ceil(o),i=Math.round(i*n)/n,r=Math.round(r*n)/n,a.push(mn(c)?i:c);for(var g=1;g<o;++g)a.push(Math.round((i+g*m)*n)/n);return a.push(mn(d)?r:d),a}(i,e);e.handleDirectionalChanges(),e.max=R.max(r),e.min=R.min(r),t.reverse?(r.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),dn.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),i=t.min,r=t.max;dn.prototype._configure.call(t),t.options.offset&&n.length&&(i-=e=(r-i)/Math.max(n.length-1,1)/2,r+=e),t._startValue=i,t._endValue=r,t._valueRange=r-i}}),vn={position:"left",ticks:{callback:Xt.formatters.linear}};function _n(e,t,n,i){var r,o,a=e.options,s=function(e,t,n){var i=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[i]&&(e[i]={pos:[],neg:[]}),e[i]}(t,a.stacked,n),l=s.pos,u=s.neg,c=i.length;for(r=0;r<c;++r)o=e._parseValue(i[r]),isNaN(o.min)||isNaN(o.max)||n.data[r].hidden||(l[r]=l[r]||0,u[r]=u[r]||0,a.relativePoints?l[r]=100:o.min<0||o.max<0?u[r]+=o.min:l[r]+=o.max)}function yn(e,t,n){var i,r,o=n.length;for(i=0;i<o;++i)r=e._parseValue(n[i]),isNaN(r.min)||isNaN(r.max)||t.data[i].hidden||(e.min=Math.min(e.min,r.min),e.max=Math.max(e.max,r.max))}var bn=gn.extend({determineDataLimits:function(){var e,t,n,i,r=this,o=r.options,a=r.chart.data.datasets,s=r._getMatchingVisibleMetas(),l=o.stacked,u={},c=s.length;if(r.min=Number.POSITIVE_INFINITY,r.max=Number.NEGATIVE_INFINITY,void 0===l)for(e=0;!l&&e<c;++e)l=void 0!==(t=s[e]).stack;for(e=0;e<c;++e)n=a[(t=s[e]).index].data,l?_n(r,u,t,n):yn(r,t,n);R.each(u,(function(e){i=e.pos.concat(e.neg),r.min=Math.min(r.min,R.min(i)),r.max=Math.max(r.max,R.max(i))})),r.min=R.isFinite(r.min)&&!isNaN(r.min)?r.min:0,r.max=R.isFinite(r.max)&&!isNaN(r.max)?r.max:1,r.handleTickRangeOptions()},_computeTickLimit:function(){var e;return this.isHorizontal()?Math.ceil(this.width/40):(e=R.options._parseFont(this.options.ticks),Math.ceil(this.height/e.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForValue:function(e){return this.getPixelForDecimal((+this.getRightValue(e)-this._startValue)/this._valueRange)},getValueForPixel:function(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange},getPixelForTick:function(e){var t=this.ticksAsNumbers;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])}}),wn=vn;bn._defaults=wn;var Ln=R.valueOrDefault,Mn=R.math.log10,kn={position:"left",ticks:{callback:Xt.formatters.logarithmic}};function xn(e,t){return R.isFinite(e)&&e>=0?e:t}var Sn=dn.extend({determineDataLimits:function(){var e,t,n,i,r,o,a=this,s=a.options,l=a.chart,u=l.data.datasets,c=a.isHorizontal();function d(e){return c?e.xAxisID===a.id:e.yAxisID===a.id}a.min=Number.POSITIVE_INFINITY,a.max=Number.NEGATIVE_INFINITY,a.minNotZero=Number.POSITIVE_INFINITY;var h=s.stacked;if(void 0===h)for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t)&&void 0!==t.stack){h=!0;break}if(s.stacked||h){var f={};for(e=0;e<u.length;e++){var p=[(t=l.getDatasetMeta(e)).type,void 0===s.stacked&&void 0===t.stack?e:"",t.stack].join(".");if(l.isDatasetVisible(e)&&d(t))for(void 0===f[p]&&(f[p]=[]),r=0,o=(i=u[e].data).length;r<o;r++){var m=f[p];n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(m[r]=m[r]||0,m[r]+=n.max)}}R.each(f,(function(e){if(e.length>0){var t=R.min(e),n=R.max(e);a.min=Math.min(a.min,t),a.max=Math.max(a.max,n)}}))}else for(e=0;e<u.length;e++)if(t=l.getDatasetMeta(e),l.isDatasetVisible(e)&&d(t))for(r=0,o=(i=u[e].data).length;r<o;r++)n=a._parseValue(i[r]),isNaN(n.min)||isNaN(n.max)||t.data[r].hidden||n.min<0||n.max<0||(a.min=Math.min(n.min,a.min),a.max=Math.max(n.max,a.max),0!==n.min&&(a.minNotZero=Math.min(n.min,a.minNotZero)));a.min=R.isFinite(a.min)?a.min:null,a.max=R.isFinite(a.max)?a.max:null,a.minNotZero=R.isFinite(a.minNotZero)?a.minNotZero:null,this.handleTickRangeOptions()},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;e.min=xn(t.min,e.min),e.max=xn(t.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(Mn(e.min))-1),e.max=Math.pow(10,Math.floor(Mn(e.max))+1)):(e.min=1,e.max=10)),null===e.min&&(e.min=Math.pow(10,Math.floor(Mn(e.max))-1)),null===e.max&&(e.max=0!==e.min?Math.pow(10,Math.floor(Mn(e.min))+1):10),null===e.minNotZero&&(e.min>0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Mn(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),i={min:xn(t.min),max:xn(t.max)},r=e.ticks=function(e,t){var n,i,r=[],o=Ln(e.min,Math.pow(10,Math.floor(Mn(t.min)))),a=Math.floor(Mn(t.max)),s=Math.ceil(t.max/Math.pow(10,a));0===o?(n=Math.floor(Mn(t.minNotZero)),i=Math.floor(t.minNotZero/Math.pow(10,n)),r.push(o),o=i*Math.pow(10,n)):(n=Math.floor(Mn(o)),i=Math.floor(o/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(o),10==++i&&(i=1,l=++n>=0?1:l),o=Math.round(i*Math.pow(10,n)*l)/l}while(n<a||n===a&&i<s);var u=Ln(e.max,o);return r.push(u),r}(i,e);e.max=R.max(r),e.min=R.min(r),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),dn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Mn(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;dn.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=Ln(e.options.ticks.fontSize,I.global.defaultFontSize)/e._length),e._startValue=Mn(t),e._valueOffset=n,e._valueRange=(Mn(e.max)-Mn(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(n=(Mn(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),Tn=kn;Sn._defaults=Tn;var $n=R.valueOrDefault,Dn=R.valueAtIndexOrDefault,Cn=R.options.resolve,En={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Xt.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function An(e){var t=e.ticks;return t.display&&e.display?$n(t.fontSize,I.global.defaultFontSize)+2*t.backdropPaddingY:0}function Pn(e,t,n,i,r){return e===i||e===r?{start:t-n/2,end:t+n/2}:e<i||e>r?{start:t-n,end:t}:{start:t,end:t+n}}function Yn(e){return 0===e||180===e?"center":e<180?"left":"right"}function On(e,t,n,i){var r,o,a=n.y+i/2;if(R.isArray(t))for(r=0,o=t.length;r<o;++r)e.fillText(t[r],n.x,a),a+=i;else e.fillText(t,n.x,a)}function In(e,t,n){90===e||270===e?n.y-=t.h/2:(e>270||e<90)&&(n.y-=t.h)}function jn(e){return R.isNumber(e)?e:0}var Hn=gn.extend({setDimensions:function(){var e=this;e.width=e.maxWidth,e.height=e.maxHeight,e.paddingTop=An(e.options)/2,e.xCenter=Math.floor(e.width/2),e.yCenter=Math.floor((e.height-e.paddingTop)/2),e.drawingArea=Math.min(e.height-e.paddingTop,e.width)/2},determineDataLimits:function(){var e=this,t=e.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;R.each(t.data.datasets,(function(r,o){if(t.isDatasetVisible(o)){var a=t.getDatasetMeta(o);R.each(r.data,(function(t,r){var o=+e.getRightValue(t);isNaN(o)||a.data[r].hidden||(n=Math.min(o,n),i=Math.max(o,i))}))}})),e.min=n===Number.POSITIVE_INFINITY?0:n,e.max=i===Number.NEGATIVE_INFINITY?0:i,e.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/An(this.options))},convertTicksToLabels:function(){var e=this;gn.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map((function(){var t=R.callback(e.options.pointLabels.callback,arguments,e);return t||0===t?t:""}))},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},fit:function(){var e=this.options;e.display&&e.pointLabels.display?function(e){var t,n,i,r=R.options._parseFont(e.options.pointLabels),o={l:0,r:e.width,t:0,b:e.height-e.paddingTop},a={};e.ctx.font=r.string,e._pointLabelSizes=[];var s,l,u,c=e.chart.data.labels.length;for(t=0;t<c;t++){i=e.getPointPosition(t,e.drawingArea+5),s=e.ctx,l=r.lineHeight,u=e.pointLabels[t],n=R.isArray(u)?{w:R.longestText(s,s.font,u),h:u.length*l}:{w:s.measureText(u).width,h:l},e._pointLabelSizes[t]=n;var d=e.getIndexAngle(t),h=R.toDegrees(d)%360,f=Pn(h,i.x,n.w,0,180),p=Pn(h,i.y,n.h,90,270);f.start<o.l&&(o.l=f.start,a.l=d),f.end>o.r&&(o.r=f.end,a.r=d),p.start<o.t&&(o.t=p.start,a.t=d),p.end>o.b&&(o.b=p.end,a.b=d)}e.setReductions(e.drawingArea,o,a)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(e,t,n){var i=this,r=t.l/Math.sin(n.l),o=Math.max(t.r-i.width,0)/Math.sin(n.r),a=-t.t/Math.cos(n.t),s=-Math.max(t.b-(i.height-i.paddingTop),0)/Math.cos(n.b);r=jn(r),o=jn(o),a=jn(a),s=jn(s),i.drawingArea=Math.min(Math.floor(e-(r+o)/2),Math.floor(e-(a+s)/2)),i.setCenterPoint(r,o,a,s)},setCenterPoint:function(e,t,n,i){var r=this,o=r.width-t-r.drawingArea,a=e+r.drawingArea,s=n+r.drawingArea,l=r.height-r.paddingTop-i-r.drawingArea;r.xCenter=Math.floor((a+o)/2+r.left),r.yCenter=Math.floor((s+l)/2+r.top+r.paddingTop)},getIndexAngle:function(e){var t=this.chart,n=(e*(360/t.data.labels.length)+((t.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(R.isNullOrUndef(e))return NaN;var n=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*n:(e-t.min)*n},getPointPosition:function(e,t){var n=this.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(n)*t+this.xCenter,y:Math.sin(n)*t+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(e){var t=this.min,n=this.max;return this.getPointPositionForValue(e||0,this.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0)},_drawGrid:function(){var e,t,n,i=this,r=i.ctx,o=i.options,a=o.gridLines,s=o.angleLines,l=$n(s.lineWidth,a.lineWidth),u=$n(s.color,a.color);if(o.pointLabels.display&&function(e){var t=e.ctx,n=e.options,i=n.pointLabels,r=An(n),o=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),a=R.options._parseFont(i);t.save(),t.font=a.string,t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;s>=0;s--){var l=0===s?r/2:0,u=e.getPointPosition(s,o+l+5),c=Dn(i.fontColor,s,I.global.defaultFontColor);t.fillStyle=c;var d=e.getIndexAngle(s),h=R.toDegrees(d);t.textAlign=Yn(h),In(h,e._pointLabelSizes[s],u),On(t,e.pointLabels[s],u,a.lineHeight)}t.restore()}(i),a.display&&R.each(i.ticks,(function(e,n){0!==n&&(t=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(e,t,n,i){var r,o=e.ctx,a=t.circular,s=e.chart.data.labels.length,l=Dn(t.color,i-1),u=Dn(t.lineWidth,i-1);if((a||s)&&l&&u){if(o.save(),o.strokeStyle=l,o.lineWidth=u,o.setLineDash&&(o.setLineDash(t.borderDash||[]),o.lineDashOffset=t.borderDashOffset||0),o.beginPath(),a)o.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{r=e.getPointPosition(0,n),o.moveTo(r.x,r.y);for(var c=1;c<s;c++)r=e.getPointPosition(c,n),o.lineTo(r.x,r.y)}o.closePath(),o.stroke(),o.restore()}}(i,a,t,n))})),s.display&&l&&u){for(r.save(),r.lineWidth=l,r.strokeStyle=u,r.setLineDash&&(r.setLineDash(Cn([s.borderDash,a.borderDash,[]])),r.lineDashOffset=Cn([s.borderDashOffset,a.borderDashOffset,0])),e=i.chart.data.labels.length-1;e>=0;e--)t=i.getDistanceFromCenterForValue(o.ticks.reverse?i.min:i.max),n=i.getPointPosition(e,t),r.beginPath(),r.moveTo(i.xCenter,i.yCenter),r.lineTo(n.x,n.y),r.stroke();r.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options.ticks;if(n.display){var i,r,o=e.getIndexAngle(0),a=R.options._parseFont(n),s=$n(n.fontColor,I.global.defaultFontColor);t.save(),t.font=a.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",R.each(e.ticks,(function(o,l){(0!==l||n.reverse)&&(i=e.getDistanceFromCenterForValue(e.ticksAsNumbers[l]),n.showLabelBackdrop&&(r=t.measureText(o).width,t.fillStyle=n.backdropColor,t.fillRect(-r/2-n.backdropPaddingX,-i-a.size/2-n.backdropPaddingY,r+2*n.backdropPaddingX,a.size+2*n.backdropPaddingY)),t.fillStyle=s,t.fillText(o,0,-i))})),t.restore()}},_drawTitle:R.noop}),Bn=En;Hn._defaults=Bn;var Nn=R._deprecated,Rn=R.options.resolve,Fn=R.valueOrDefault,zn=Number.MIN_SAFE_INTEGER||-9007199254740991,Vn=Number.MAX_SAFE_INTEGER||9007199254740991,Un={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Wn=Object.keys(Un);function qn(e,t){return e-t}function Gn(e){return R.valueOrDefault(e.time.min,e.ticks.min)}function Zn(e){return R.valueOrDefault(e.time.max,e.ticks.max)}function Jn(e,t,n,i){var r=function(e,t,n){for(var i,r,o,a=0,s=e.length-1;a>=0&&a<=s;){if(r=e[(i=a+s>>1)-1]||null,o=e[i],!r)return{lo:null,hi:o};if(o[t]<n)a=i+1;else{if(!(r[t]>n))return{lo:r,hi:o};s=i-1}}return{lo:o,hi:null}}(e,t,n),o=r.lo?r.hi?r.lo:e[e.length-2]:e[0],a=r.lo?r.hi?r.hi:e[e.length-1]:e[1],s=a[t]-o[t],l=s?(n-o[t])/s:0,u=(a[i]-o[i])*l;return o[i]+u}function Xn(e,t){var n=e._adapter,i=e.options.time,r=i.parser,o=r||i.format,a=t;return"function"==typeof r&&(a=r(a)),R.isFinite(a)||(a="string"==typeof o?n.parse(a,o):n.parse(a)),null!==a?+a:(r||"function"!=typeof o||(a=o(t),R.isFinite(a)||(a=n.parse(a))),a)}function Kn(e,t){if(R.isNullOrUndef(t))return null;var n=e.options.time,i=Xn(e,e.getRightValue(t));return null===i?i:(n.round&&(i=+e._adapter.startOf(i,n.round)),i)}function Qn(e,t,n,i){var r,o,a,s=Wn.length;for(r=Wn.indexOf(e);r<s-1;++r)if(a=(o=Un[Wn[r]]).steps?o.steps:Vn,o.common&&Math.ceil((n-t)/(a*o.size))<=i)return Wn[r];return Wn[s-1]}function ei(e,t,n){var i,r,o=[],a={},s=t.length;for(i=0;i<s;++i)a[r=t[i]]=i,o.push({value:r,major:!1});return 0!==s&&n?function(e,t,n,i){var r,o,a=e._adapter,s=+a.startOf(t[0].value,i),l=t[t.length-1].value;for(r=s;r<=l;r=+a.add(r,1,i))(o=n[r])>=0&&(t[o].major=!0);return t}(e,o,a,n):o}var ti=dn.extend({initialize:function(){this.mergeTicksOptions(),dn.prototype.initialize.call(this)},update:function(){var e=this,t=e.options,n=t.time||(t.time={}),i=e._adapter=new Jt._date(t.adapters.date);return Nn("time scale",n.format,"time.format","time.parser"),Nn("time scale",n.min,"time.min","ticks.min"),Nn("time scale",n.max,"time.max","ticks.max"),R.mergeIf(n.displayFormats,i.formats()),dn.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),dn.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var e,t,n,i,r,o,a,s=this,l=s.chart,u=s._adapter,c=s.options,d=c.time.unit||"day",h=Vn,f=zn,p=[],m=[],g=[],v=s._getLabels();for(e=0,n=v.length;e<n;++e)g.push(Kn(s,v[e]));for(e=0,n=(l.data.datasets||[]).length;e<n;++e)if(l.isDatasetVisible(e))if(r=l.data.datasets[e].data,R.isObject(r[0]))for(m[e]=[],t=0,i=r.length;t<i;++t)o=Kn(s,r[t]),p.push(o),m[e][t]=o;else m[e]=g.slice(0),a||(p=p.concat(g),a=!0);else m[e]=[];g.length&&(h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),p.length&&(p=n>1?function(e){var t,n,i,r={},o=[];for(t=0,n=e.length;t<n;++t)r[i=e[t]]||(r[i]=!0,o.push(i));return o}(p).sort(qn):p.sort(qn),h=Math.min(h,p[0]),f=Math.max(f,p[p.length-1])),h=Kn(s,Gn(c))||h,f=Kn(s,Zn(c))||f,h=h===Vn?+u.startOf(Date.now(),d):h,f=f===zn?+u.endOf(Date.now(),d)+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._table=[],s._timestamps={data:p,datasets:m,labels:g}},buildTicks:function(){var e,t,n,i=this,r=i.min,o=i.max,a=i.options,s=a.ticks,l=a.time,u=i._timestamps,c=[],d=i.getLabelCapacity(r),h=s.source,f=a.distribution;for(u="data"===h||"auto"===h&&"series"===f?u.data:"labels"===h?u.labels:function(e,t,n,i){var r,o=e._adapter,a=e.options,s=a.time,l=s.unit||Qn(s.minUnit,t,n,i),u=Rn([s.stepSize,s.unitStepSize,1]),c="week"===l&&s.isoWeekday,d=t,h=[];if(c&&(d=+o.startOf(d,"isoWeek",c)),d=+o.startOf(d,c?"day":l),o.diff(n,t,l)>1e5*u)throw t+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(r=d;r<n;r=+o.add(r,u,l))h.push(r);return r!==n&&"ticks"!==a.bounds||h.push(r),h}(i,r,o,d),"ticks"===a.bounds&&u.length&&(r=u[0],o=u[u.length-1]),r=Kn(i,Gn(a))||r,o=Kn(i,Zn(a))||o,e=0,t=u.length;e<t;++e)(n=u[e])>=r&&n<=o&&c.push(n);return i.min=r,i.max=o,i._unit=l.unit||(s.autoSkip?Qn(l.minUnit,i.min,i.max,d):function(e,t,n,i,r){var o,a;for(o=Wn.length-1;o>=Wn.indexOf(n);o--)if(a=Wn[o],Un[a].common&&e._adapter.diff(r,i,a)>=t-1)return a;return Wn[n?Wn.indexOf(n):0]}(i,c.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(e){for(var t=Wn.indexOf(e)+1,n=Wn.length;t<n;++t)if(Un[Wn[t]].common)return Wn[t]}(i._unit):void 0,i._table=function(e,t,n,i){if("linear"===i||!e.length)return[{time:t,pos:0},{time:n,pos:1}];var r,o,a,s,l,u=[],c=[t];for(r=0,o=e.length;r<o;++r)(s=e[r])>t&&s<n&&c.push(s);for(c.push(n),r=0,o=c.length;r<o;++r)l=c[r+1],a=c[r-1],s=c[r],void 0!==a&&void 0!==l&&Math.round((l+a)/2)===s||u.push({time:s,pos:r/(o-1)});return u}(i._timestamps.data,r,o,f),i._offsets=function(e,t,n,i,r){var o,a,s=0,l=0;return r.offset&&t.length&&(o=Jn(e,"time",t[0],"pos"),s=1===t.length?1-o:(Jn(e,"time",t[1],"pos")-o)/2,a=Jn(e,"time",t[t.length-1],"pos"),l=1===t.length?a:(a-Jn(e,"time",t[t.length-2],"pos"))/2),{start:s,end:l,factor:1/(s+1+l)}}(i._table,c,0,0,a),s.reverse&&c.reverse(),ei(i,c,i._majorUnit)},getLabelForIndex:function(e,t){var n=this,i=n._adapter,r=n.chart.data,o=n.options.time,a=r.labels&&e<r.labels.length?r.labels[e]:"",s=r.datasets[t].data[e];return R.isObject(s)&&(a=n.getRightValue(s)),o.tooltipFormat?i.format(Xn(n,a),o.tooltipFormat):"string"==typeof a?a:i.format(Xn(n,a),o.displayFormats.datetime)},tickFormatFunction:function(e,t,n,i){var r=this._adapter,o=this.options,a=o.time.displayFormats,s=a[this._unit],l=this._majorUnit,u=a[l],c=n[t],d=o.ticks,h=l&&u&&c&&c.major,f=r.format(e,i||(h?u:s)),p=h?d.major:d.minor,m=Rn([p.callback,p.userCallback,d.callback,d.userCallback]);return m?m(f,t,n):f},convertTicksToLabels:function(e){var t,n,i=[];for(t=0,n=e.length;t<n;++t)i.push(this.tickFormatFunction(e[t].value,t,e));return i},getPixelForOffset:function(e){var t=this._offsets,n=Jn(this._table,"time",e,"pos");return this.getPixelForDecimal((t.start+n)*t.factor)},getPixelForValue:function(e,t,n){var i=null;if(void 0!==t&&void 0!==n&&(i=this._timestamps.datasets[n][t]),null===i&&(i=Kn(this,e)),null!==i)return this.getPixelForOffset(i)},getPixelForTick:function(e){var t=this.getTicks();return e>=0&&e<t.length?this.getPixelForOffset(t[e].value):null},getValueForPixel:function(e){var t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end,i=Jn(this._table,"pos",n,"time");return this._adapter._create(i)},_getLabelSize:function(e){var t=this.options.ticks,n=this.ctx.measureText(e).width,i=R.toRadians(this.isHorizontal()?t.maxRotation:t.minRotation),r=Math.cos(i),o=Math.sin(i),a=Fn(t.fontSize,I.global.defaultFontSize);return{w:n*r+a*o,h:n*o+a*r}},getLabelWidth:function(e){return this._getLabelSize(e).w},getLabelCapacity:function(e){var t=this,n=t.options.time,i=n.displayFormats,r=i[n.unit]||i.millisecond,o=t.tickFormatFunction(e,0,ei(t,[e],t._majorUnit),r),a=t._getLabelSize(o),s=Math.floor(t.isHorizontal()?t.width/a.w:t.height/a.h);return t.options.offset&&s--,s>0?s:1}});ti._defaults={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};var ni={category:fn,linear:bn,logarithmic:Sn,radialLinear:Hn,time:ti},ii={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Jt._date.override("function"==typeof e?{_id:"moment",formats:function(){return ii},parse:function(t,n){return"string"==typeof t&&"string"==typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,i){return e(t).add(n,i).valueOf()},diff:function(t,n,i){return e(t).diff(e(n),i)},startOf:function(t,n,i){return t=e(t),"isoWeek"===n?t.isoWeekday(i).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),I._set("global",{plugins:{filler:{propagate:!0}}});var ri={dataset:function(e){var t=e.fill,n=e.chart,i=n.getDatasetMeta(t),r=i&&n.isDatasetVisible(t)&&i.dataset._children||[],o=r.length||0;return o?function(e,t){return t<o&&r[t]._view||null}:null},boundary:function(e){var t=e.boundary,n=t?t.x:null,i=t?t.y:null;return R.isArray(t)?function(e,n){return t[n]}:function(e){return{x:null===n?e.x:n,y:null===i?e.y:i}}}};function oi(e,t,n){var i,r=e._model||{},o=r.fill;if(void 0===o&&(o=!!r.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=t+i),!(i===t||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function ai(e){return(e.el._scale||{}).getPointPositionForValue?function(e){var t,n,i,r,o,a=e.el._scale,s=a.options,l=a.chart.data.labels.length,u=e.fill,c=[];if(!l)return null;for(t=s.ticks.reverse?a.max:a.min,n=s.ticks.reverse?a.min:a.max,i=a.getPointPositionForValue(0,t),r=0;r<l;++r)o="start"===u||"end"===u?a.getPointPositionForValue(r,"start"===u?t:n):a.getBasePosition(r),s.gridLines.circular&&(o.cx=i.x,o.cy=i.y,o.angle=a.getIndexAngle(r)-Math.PI/2),c.push(o);return c}(e):function(e){var t,n=e.el._model||{},i=e.el._scale||{},r=e.fill,o=null;if(isFinite(r))return null;if("start"===r?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===r?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePixel&&(o=i.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(R.isFinite(o))return{x:(t=i.isHorizontal())?o:null,y:t?null:o}}return null}(e)}function si(e,t,n){var i,r=e[t].fill,o=[t];if(!n)return r;for(;!1!==r&&-1===o.indexOf(r);){if(!isFinite(r))return r;if(!(i=e[r]))return!1;if(i.visible)return r;o.push(r),r=i.fill}return!1}function li(e){var t=e.fill,n="dataset";return!1===t?null:(isFinite(t)||(n="boundary"),ri[n](e))}function ui(e){return e&&!e.skip}function ci(e,t,n,i,r){var o,a,s,l;if(i&&r){for(e.moveTo(t[0].x,t[0].y),o=1;o<i;++o)R.canvas.lineTo(e,t[o-1],t[o]);if(void 0===n[0].angle)for(e.lineTo(n[r-1].x,n[r-1].y),o=r-1;o>0;--o)R.canvas.lineTo(e,n[o],n[o-1],!0);else for(a=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-a,2)+Math.pow(n[0].y-s,2)),o=r-1;o>0;--o)e.arc(a,s,l,n[o].angle,n[o-1].angle,!0)}}function di(e,t,n,i,r,o){var a,s,l,u,c,d,h,f,p=t.length,m=i.spanGaps,g=[],v=[],_=0,y=0;for(e.beginPath(),a=0,s=p;a<s;++a)c=n(u=t[l=a%p]._view,l,i),d=ui(u),h=ui(c),o&&void 0===f&&d&&(s=p+(f=a+1)),d&&h?(_=g.push(u),y=v.push(c)):_&&y&&(m?(d&&g.push(u),h&&v.push(c)):(ci(e,g,v,_,y),_=y=0,g=[],v=[]));ci(e,g,v,_,y),e.closePath(),e.fillStyle=r,e.fill()}var hi={id:"filler",afterDatasetsUpdate:function(e,t){var n,i,r,o,a=(e.data.datasets||[]).length,s=t.propagate,l=[];for(i=0;i<a;++i)o=null,(r=(n=e.getDatasetMeta(i)).dataset)&&r._model&&r instanceof _e.Line&&(o={visible:e.isDatasetVisible(i),fill:oi(r,i,a),chart:e,el:r}),n.$filler=o,l.push(o);for(i=0;i<a;++i)(o=l[i])&&(o.fill=si(l,i,s),o.boundary=ai(o),o.mapper=li(o))},beforeDatasetsDraw:function(e){var t,n,i,r,o,a,s,l=e._getSortedVisibleDatasetMetas(),u=e.ctx;for(n=l.length-1;n>=0;--n)(t=l[n].$filler)&&t.visible&&(r=(i=t.el)._view,o=i._children||[],a=t.mapper,s=r.backgroundColor||I.global.defaultColor,a&&s&&o.length&&(R.canvas.clipArea(u,e.chartArea),di(u,o,a,r,s,i._loop),R.canvas.unclipArea(u)))}},fi=R.rtl.getRtlAdapter,pi=R.noop,mi=R.valueOrDefault;function gi(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}I._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,i=this.chart,r=i.getDatasetMeta(n);r.hidden=null===r.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},i=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var r=n.controller.getStyle(i?0:void 0);return{text:t[n.index].label,fillStyle:r.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:r.borderCapStyle,lineDash:r.borderDash,lineDashOffset:r.borderDashOffset,lineJoin:r.borderJoinStyle,lineWidth:r.borderWidth,strokeStyle:r.borderColor,pointStyle:r.pointStyle,rotation:r.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,i,r=document.createElement("ul"),o=e.data.datasets;for(r.setAttribute("class",e.id+"-legend"),t=0,n=o.length;t<n;t++)(i=r.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=o[t].backgroundColor,o[t].label&&i.appendChild(document.createTextNode(o[t].label));return r.outerHTML}});var vi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:pi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:pi,beforeSetDimensions:pi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:pi,beforeBuildLabels:pi,buildLabels:function(){var e=this,t=e.options.labels||{},n=R.callback(t.generateLabels,[e.chart],e)||[];t.filter&&(n=n.filter((function(n){return t.filter(n,e.chart.data)}))),e.options.reverse&&n.reverse(),e.legendItems=n},afterBuildLabels:pi,beforeFit:pi,fit:function(){var e=this,t=e.options,n=t.labels,i=t.display,r=e.ctx,o=R.options._parseFont(n),a=o.size,s=e.legendHitBoxes=[],l=e.minSize,u=e.isHorizontal();if(u?(l.width=e.maxWidth,l.height=i?10:0):(l.width=i?10:0,l.height=e.maxHeight),i){if(r.font=o.string,u){var c=e.lineWidths=[0],d=0;r.textAlign="left",r.textBaseline="middle",R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;(0===t||c[c.length-1]+i+2*n.padding>l.width)&&(d+=a+n.padding,c[c.length-(t>0?0:1)]=0),s[t]={left:0,top:0,width:i,height:a},c[c.length-1]+=i+n.padding})),l.height+=d}else{var h=n.padding,f=e.columnWidths=[],p=e.columnHeights=[],m=n.padding,g=0,v=0;R.each(e.legendItems,(function(e,t){var i=gi(n,a)+a/2+r.measureText(e.text).width;t>0&&v+a+2*h>l.height&&(m+=g+n.padding,f.push(g),p.push(v),g=0,v=0),g=Math.max(g,i),v+=a+h,s[t]={left:0,top:0,width:i,height:a}})),m+=g,f.push(g),p.push(v),l.width+=m}e.width=l.width,e.height=l.height}else e.width=l.width=e.height=l.height=0},afterFit:pi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,i=I.global,r=i.defaultColor,o=i.elements.line,a=e.height,s=e.columnHeights,l=e.width,u=e.lineWidths;if(t.display){var c,d=fi(t.rtl,e.left,e.minSize.width),h=e.ctx,f=mi(n.fontColor,i.defaultFontColor),p=R.options._parseFont(n),m=p.size;h.textAlign=d.textAlign("left"),h.textBaseline="middle",h.lineWidth=.5,h.strokeStyle=f,h.fillStyle=f,h.font=p.string;var g=gi(n,m),v=e.legendHitBoxes,_=function(e,i){switch(t.align){case"start":return n.padding;case"end":return e-i;default:return(e-i+n.padding)/2}},y=e.isHorizontal();c=y?{x:e.left+_(l,u[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+_(a,s[0]),line:0},R.rtl.overrideTextDirection(e.ctx,t.textDirection);var b=m+n.padding;R.each(e.legendItems,(function(t,i){var f=h.measureText(t.text).width,p=g+m/2+f,w=c.x,L=c.y;d.setWidth(e.minSize.width),y?i>0&&w+p+n.padding>e.left+e.minSize.width&&(L=c.y+=b,c.line++,w=c.x=e.left+_(l,u[c.line])):i>0&&L+b>e.top+e.minSize.height&&(w=c.x=w+e.columnWidths[c.line]+n.padding,c.line++,L=c.y=e.top+_(a,s[c.line]));var M=d.x(w);!function(e,t,i){if(!(isNaN(g)||g<=0)){h.save();var a=mi(i.lineWidth,o.borderWidth);if(h.fillStyle=mi(i.fillStyle,r),h.lineCap=mi(i.lineCap,o.borderCapStyle),h.lineDashOffset=mi(i.lineDashOffset,o.borderDashOffset),h.lineJoin=mi(i.lineJoin,o.borderJoinStyle),h.lineWidth=a,h.strokeStyle=mi(i.strokeStyle,r),h.setLineDash&&h.setLineDash(mi(i.lineDash,o.borderDash)),n&&n.usePointStyle){var s=g*Math.SQRT2/2,l=d.xPlus(e,g/2),u=t+m/2;R.canvas.drawPoint(h,i.pointStyle,s,l,u,i.rotation)}else h.fillRect(d.leftForLtr(e,g),t,g,m),0!==a&&h.strokeRect(d.leftForLtr(e,g),t,g,m);h.restore()}}(M,L,t),v[i].left=d.leftForLtr(M,v[i].width),v[i].top=L,function(e,t,n,i){var r=m/2,o=d.xPlus(e,g+r),a=t+r;h.fillText(n.text,o,a),n.hidden&&(h.beginPath(),h.lineWidth=2,h.moveTo(o,a),h.lineTo(d.xPlus(o,i),a),h.stroke())}(M,L,t,f),y?c.x+=p+n.padding:c.y+=b})),R.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,i,r,o=this;if(e>=o.left&&e<=o.right&&t>=o.top&&t<=o.bottom)for(r=o.legendHitBoxes,n=0;n<r.length;++n)if(e>=(i=r[n]).left&&e<=i.left+i.width&&t>=i.top&&t<=i.top+i.height)return o.legendItems[n];return null},handleEvent:function(e){var t,n=this,i=n.options,r="mouseup"===e.type?"click":e.type;if("mousemove"===r){if(!i.onHover&&!i.onLeave)return}else{if("click"!==r)return;if(!i.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===r?t&&i.onClick&&i.onClick.call(n,e.native,t):(i.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),i.onHover&&t&&i.onHover.call(n,e.native,t))}});function _i(e,t){var n=new vi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.legend=n}var yi={id:"legend",_element:vi,beforeInit:function(e){var t=e.options.legend;t&&_i(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(R.mergeIf(t,I.global.legend),n?(ct.configure(e,n,t),n.options=t):_i(e,t)):n&&(ct.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},bi=R.noop;I._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var wi=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:bi,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:bi,beforeSetDimensions:bi,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:bi,beforeBuildLabels:bi,buildLabels:bi,afterBuildLabels:bi,beforeFit:bi,fit:function(){var e,t=this,n=t.options,i=t.minSize={},r=t.isHorizontal();n.display?(e=(R.isArray(n.text)?n.text.length:1)*R.options._parseFont(n).lineHeight+2*n.padding,t.width=i.width=r?t.maxWidth:e,t.height=i.height=r?e:t.maxHeight):t.width=i.width=t.height=i.height=0},afterFit:bi,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var i,r,o,a=R.options._parseFont(n),s=a.lineHeight,l=s/2+n.padding,u=0,c=e.top,d=e.left,h=e.bottom,f=e.right;t.fillStyle=R.valueOrDefault(n.fontColor,I.global.defaultFontColor),t.font=a.string,e.isHorizontal()?(r=d+(f-d)/2,o=c+l,i=f-d):(r="left"===n.position?d+l:f-l,o=c+(h-c)/2,i=h-c,u=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(r,o),t.rotate(u),t.textAlign="center",t.textBaseline="middle";var p=n.text;if(R.isArray(p))for(var m=0,g=0;g<p.length;++g)t.fillText(p[g],0,m,i),m+=s;else t.fillText(p,0,0,i);t.restore()}}});function Li(e,t){var n=new wi({ctx:e.ctx,options:t,chart:e});ct.configure(e,n,t),ct.addBox(e,n),e.titleBlock=n}var Mi={},ki=hi,xi=yi,Si={id:"title",_element:wi,beforeInit:function(e){var t=e.options.title;t&&Li(e,t)},beforeUpdate:function(e){var t=e.options.title,n=e.titleBlock;t?(R.mergeIf(t,I.global.title),n?(ct.configure(e,n,t),n.options=t):Li(e,t)):n&&(ct.removeBox(e,n),delete e.titleBlock)}};for(var Ti in Mi.filler=ki,Mi.legend=xi,Mi.title=Si,qt.helpers=R,function(){function e(e,t,n){var i;return"string"==typeof e?(i=parseInt(e,10),-1!==e.indexOf("%")&&(i=i/100*t.parentNode[n])):i=e,i}function t(e){return null!=e&&"none"!==e}function n(n,i,r){var o=document.defaultView,a=R._getParentNode(n),s=o.getComputedStyle(n)[i],l=o.getComputedStyle(a)[i],u=t(s),c=t(l),d=Number.POSITIVE_INFINITY;return u||c?Math.min(u?e(s,n,r):d,c?e(l,a,r):d):"none"}R.where=function(e,t){if(R.isArray(e)&&Array.prototype.filter)return e.filter(t);var n=[];return R.each(e,(function(e){t(e)&&n.push(e)})),n},R.findIndex=Array.prototype.findIndex?function(e,t,n){return e.findIndex(t,n)}:function(e,t,n){n=void 0===n?e:n;for(var i=0,r=e.length;i<r;++i)if(t.call(n,e[i],i,e))return i;return-1},R.findNextWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<e.length;i++){var r=e[i];if(t(r))return r}},R.findPreviousWhere=function(e,t,n){R.isNullOrUndef(n)&&(n=e.length);for(var i=n-1;i>=0;i--){var r=e[i];if(t(r))return r}},R.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},R.almostEquals=function(e,t,n){return Math.abs(e-t)<n},R.almostWhole=function(e,t){var n=Math.round(e);return n-t<=e&&n+t>=e},R.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},R.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},R.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},R.toRadians=function(e){return e*(Math.PI/180)},R.toDegrees=function(e){return e*(180/Math.PI)},R._decimalPlaces=function(e){if(R.isFinite(e)){for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}},R.getAngleFromPoint=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:r}},R.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},R.aliasPixel=function(e){return e%2==0?0:.5},R._alignPixel=function(e,t,n){var i=e.currentDevicePixelRatio,r=n/2;return Math.round((t-r)*i)/i+r},R.splineCurve=function(e,t,n,i){var r=e.skip?t:e,o=t,a=n.skip?t:n,s=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),l=Math.sqrt(Math.pow(a.x-o.x,2)+Math.pow(a.y-o.y,2)),u=s/(s+l),c=l/(s+l),d=i*(u=isNaN(u)?0:u),h=i*(c=isNaN(c)?0:c);return{previous:{x:o.x-d*(a.x-r.x),y:o.y-d*(a.y-r.y)},next:{x:o.x+h*(a.x-r.x),y:o.y+h*(a.y-r.y)}}},R.EPSILON=Number.EPSILON||1e-14,R.splineCurveMonotone=function(e){var t,n,i,r,o,a,s,l,u,c=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),d=c.length;for(t=0;t<d;++t)if(!(i=c[t]).model.skip){if(n=t>0?c[t-1]:null,(r=t<d-1?c[t+1]:null)&&!r.model.skip){var h=r.model.x-i.model.x;i.deltaK=0!==h?(r.model.y-i.model.y)/h:0}!n||n.model.skip?i.mK=i.deltaK:!r||r.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}for(t=0;t<d-1;++t)i=c[t],r=c[t+1],i.model.skip||r.model.skip||(R.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=r.mK=0:(o=i.mK/i.deltaK,a=r.mK/i.deltaK,(l=Math.pow(o,2)+Math.pow(a,2))<=9||(s=3/Math.sqrt(l),i.mK=o*s*i.deltaK,r.mK=a*s*i.deltaK)));for(t=0;t<d;++t)(i=c[t]).model.skip||(n=t>0?c[t-1]:null,r=t<d-1?c[t+1]:null,n&&!n.model.skip&&(u=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-u,i.model.controlPointPreviousY=i.model.y-u*i.mK),r&&!r.model.skip&&(u=(r.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+u,i.model.controlPointNextY=i.model.y+u*i.mK))},R.nextItem=function(e,t,n){return n?t>=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},R.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},R.niceNum=function(e,t){var n=Math.floor(R.log10(e)),i=e/Math.pow(10,n);return(t?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},R.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},R.getRelativePosition=function(e,t){var n,i,r=e.originalEvent||e,o=e.target||e.srcElement,a=o.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=r.clientX,i=r.clientY);var l=parseFloat(R.getStyle(o,"padding-left")),u=parseFloat(R.getStyle(o,"padding-top")),c=parseFloat(R.getStyle(o,"padding-right")),d=parseFloat(R.getStyle(o,"padding-bottom")),h=a.right-a.left-l-c,f=a.bottom-a.top-u-d;return{x:n=Math.round((n-a.left-l)/h*o.width/t.currentDevicePixelRatio),y:i=Math.round((i-a.top-u)/f*o.height/t.currentDevicePixelRatio)}},R.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},R.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},R._calculatePadding=function(e,t,n){return(t=R.getStyle(e,t)).indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},R._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},R.getMaximumWidth=function(e){var t=R._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,i=n-R._calculatePadding(t,"padding-left",n)-R._calculatePadding(t,"padding-right",n),r=R.getConstraintWidth(e);return isNaN(r)?i:Math.min(i,r)},R.getMaximumHeight=function(e){var t=R._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,i=n-R._calculatePadding(t,"padding-top",n)-R._calculatePadding(t,"padding-bottom",n),r=R.getConstraintHeight(e);return isNaN(r)?i:Math.min(i,r)},R.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},R.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=e.canvas,r=e.height,o=e.width;i.height=r*n,i.width=o*n,e.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=r+"px",i.style.width=o+"px")}},R.fontString=function(e,t,n){return t+" "+e+"px "+n},R.longestText=function(e,t,n,i){var r=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(r=i.data={},o=i.garbageCollect=[],i.font=t),e.font=t;var a,s,l,u,c,d=0,h=n.length;for(a=0;a<h;a++)if(null!=(u=n[a])&&!0!==R.isArray(u))d=R.measureText(e,r,o,d,u);else if(R.isArray(u))for(s=0,l=u.length;s<l;s++)null==(c=u[s])||R.isArray(c)||(d=R.measureText(e,r,o,d,c));var f=o.length/2;if(f>n.length){for(a=0;a<f;a++)delete r[o[a]];o.splice(0,f)}return d},R.measureText=function(e,t,n,i,r){var o=t[r];return o||(o=t[r]=e.measureText(r).width,n.push(r)),o>i&&(i=o),i},R.numberOfLabelLines=function(e){var t=1;return R.each(e,(function(e){R.isArray(e)&&e.length>t&&(t=e.length)})),t},R.color=L?function(e){return e instanceof CanvasGradient&&(e=I.global.defaultColor),L(e)}:function(e){return console.error("Color.js not found!"),e},R.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:R.color(e).saturate(.5).darken(.1).rgbString()}}(),qt._adapters=Jt,qt.Animation=Z,qt.animationService=J,qt.controllers=qe,qt.DatasetController=te,qt.defaults=I,qt.Element=q,qt.elements=_e,qt.Interaction=et,qt.layouts=ct,qt.platform=xt,qt.plugins=St,qt.Scale=dn,qt.scaleService=Tt,qt.Ticks=Xt,qt.Tooltip=Ht,qt.helpers.each(ni,(function(e,t){qt.scaleService.registerScaleType(t,e,e._defaults)})),Mi)Mi.hasOwnProperty(Ti)&&qt.plugins.register(Mi[Ti]);qt.platform.initialize();var $i=qt;return"undefined"!=typeof window&&(window.Chart=qt),qt.Chart=qt,qt.Legend=Mi.legend._element,qt.Title=Mi.title._element,qt.pluginService=qt.plugins,qt.PluginBase=qt.Element.extend({}),qt.canvasHelpers=qt.helpers.canvas,qt.layoutService=qt.layouts,qt.LinearScaleBase=gn,qt.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(e){qt[e]=function(t,n){return new qt(t,qt.helpers.merge(n||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}})),$i})),
+/*!
+ * Copyright 2015 Drifty Co.
+ * http://drifty.com/
+ *
+ * Ionic, v1.3.5
+ * A powerful HTML5 mobile app framework.
+ * http://ionicframework.com/
+ *
+ * By @maxlynch, @benjsperry, @adamdbradley <3
+ *
+ * Licensed under the MIT license. Please see LICENSE for more information.
+ *
+ */
+function(){var e,t,n,i,r,o,a,s;window.ionic=window.ionic||{},window.ionic.views={},window.ionic.version="1.3.5",window.ionic.DelegateService=function(e){if(e.indexOf("$getByHandle")>-1)throw new Error("Method '$getByHandle' is implicitly added to each delegate service. Do not list it as a method.");function t(){return!0}return["$log",function(n){function i(e,t){this._instances=e,this.handle=t}function r(){this._instances=[]}return e.forEach((function(e){i.prototype[e]=function(e){return function(){var t,i=this.handle,r=arguments,o=0;return this._instances.forEach((function(n){if((!i||i==n.$$delegateHandle)&&n.$$filterFn(n)){o++;var a=n[e].apply(n,r);1===o&&(t=a)}})),!o&&i?n.warn('Delegate for handle "'+i+'" could not find a corresponding element with delegate-handle="'+i+'"! '+e+"() was not called!\nPossible cause: If you are calling "+e+'() immediately, and your element with delegate-handle="'+i+'" is a child of your controller, then your element may not be compiled yet. Put a $timeout around your call to '+e+"() and try again."):t}}(e)})),r.prototype=i.prototype,r.prototype._registerInstance=function(e,n,i){var r=this._instances;return e.$$delegateHandle=n,e.$$filterFn=i||t,r.push(e),function(){var t=r.indexOf(e);-1!==t&&r.splice(t,1)}},r.prototype.$getByHandle=function(e){return new i(this._instances,e)},new r}]},function(e,t,n){var i=[],r="complete"===t.readyState||"interactive"===t.readyState;r||t.addEventListener("DOMContentLoaded",(function e(){r=!0;for(var o=0;o<i.length;o++)n.requestAnimationFrame(i[o]);i=[],t.removeEventListener("DOMContentLoaded",e)})),e._rAF=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||function(t){e.setTimeout(t,16)};var o=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame;n.DomUtil={requestAnimationFrame:function(t){return e._rAF(t)},cancelAnimationFrame:function(e){o(e)},animationFrameThrottle:function(e){var t,i,r;return function(){t=arguments,r=this,i||(i=!0,n.requestAnimationFrame((function(){e.apply(r,t),i=!1})))}},contains:function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}},getPositionInParent:function(e){return{left:e.offsetLeft,top:e.offsetTop}},getOffsetTop:function(e){var t=0;if(e.offsetParent){do{t+=e.offsetTop,e=e.offsetParent}while(e);return t}},ready:function(e){r?n.requestAnimationFrame(e):i.push(e)},getTextBounds:function(n){if(t.createRange){var i=t.createRange();if(i.selectNodeContents(n),i.getBoundingClientRect){var r=i.getBoundingClientRect();if(r){var o=e.scrollX,a=e.scrollY;return{top:r.top+a,left:r.left+o,right:r.left+o+r.width,bottom:r.top+a+r.height,width:r.width,height:r.height}}}}return null},getChildIndex:function(e,t){if(t)for(var n,i=e.parentNode.children,r=0,o=0,a=i.length;r<a;r++)if((n=i[r]).nodeName&&n.nodeName.toLowerCase()==t){if(n==e)return o;o++}return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},swapNodes:function(e,t){t.parentNode.insertBefore(e,t)},elementIsDescendant:function(e,t,n){var i=e;do{if(i===t)return!0;i=i.parentNode}while(i&&i!==n);return!1},getParentWithClass:function(e,t,n){for(n=n||10;e.parentNode&&n--;){if(e.parentNode.classList&&e.parentNode.classList.contains(t))return e.parentNode;e=e.parentNode}return null},getParentOrSelfWithClass:function(e,t,n){for(n=n||10;e&&n--;){if(e.classList&&e.classList.contains(t))return e;e=e.parentNode}return null},rectContains:function(e,t,n,i,r,o){return!(e<n||e>r||t<i||t>o)},blurAll:function(){return t.activeElement&&t.activeElement!=t.body?(t.activeElement.blur(),t.activeElement):null},cachedAttr:function(e,t,n){if((e=e&&e.length&&e[0]||e)&&e.setAttribute){var i="$attr-"+t;return arguments.length>2?e[i]!==n&&(e.setAttribute(t,n),e[i]=n):void 0===e[i]&&(e[i]=e.getAttribute(t)),e[i]}},cachedStyles:function(e,t){if((e=e&&e.length&&e[0]||e)&&e.style)for(var n in t)e["$style-"+n]!==t[n]&&(e.style[n]=e["$style-"+n]=t[n])}},n.requestAnimationFrame=n.DomUtil.requestAnimationFrame,n.cancelAnimationFrame=n.DomUtil.cancelAnimationFrame,n.animationFrameThrottle=n.DomUtil.animationFrameThrottle}(window,document,ionic),function(e){e.CustomEvent=function(){if("function"==typeof window.CustomEvent)return CustomEvent;var e=function(e,t){var n;t=t||{bubbles:!1,cancelable:!1,detail:void 0};try{(n=document.createEvent("CustomEvent")).initCustomEvent(e,t.bubbles,t.cancelable,t.detail)}catch(r){for(var i in n=document.createEvent("Event"),t)n[i]=t[i];n.initEvent(e,t.bubbles,t.cancelable)}return n};return e.prototype=window.Event.prototype,e}(),e.EventController={VIRTUALIZED_EVENTS:["tap","swipe","swiperight","swipeleft","drag","hold","release"],trigger:function(t,n,i,r){var o=new e.CustomEvent(t,{detail:n,bubbles:!!i,cancelable:!!r});n&&n.target&&n.target.dispatchEvent&&n.target.dispatchEvent(o)||window.dispatchEvent(o)},on:function(t,n,i){for(var r=i||window,o=0,a=this.VIRTUALIZED_EVENTS.length;o<a;o++)if(t==this.VIRTUALIZED_EVENTS[o]){var s=new e.Gesture(i);return s.on(t,n),s}r.addEventListener(t,n)},off:function(e,t,n){n.removeEventListener(e,t)},onGesture:function(t,n,i,r){var o=new e.Gesture(i,r);return o.on(t,n),o},offGesture:function(e,t,n){e&&e.off(t,n)},handlePopState:function(){}},e.on=function(){e.EventController.on.apply(e.EventController,arguments)},e.off=function(){e.EventController.off.apply(e.EventController,arguments)},e.trigger=e.EventController.trigger,e.onGesture=function(){return e.EventController.onGesture.apply(e.EventController.onGesture,arguments)},e.offGesture=function(){return e.EventController.offGesture.apply(e.EventController.offGesture,arguments)}}(window.ionic),function(e){e.Gesture=function(t,n){return new e.Gestures.Instance(t,n||{})},e.Gestures={},e.Gestures.defaults={stop_browser_behavior:"disable-user-behavior"},e.Gestures.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,e.Gestures.HAS_TOUCHEVENTS="ontouchstart"in window,e.Gestures.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,e.Gestures.NO_MOUSEEVENTS=e.Gestures.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(e.Gestures.MOBILE_REGEX),e.Gestures.EVENT_TYPES={},e.Gestures.DIRECTION_DOWN="down",e.Gestures.DIRECTION_LEFT="left",e.Gestures.DIRECTION_UP="up",e.Gestures.DIRECTION_RIGHT="right",e.Gestures.POINTER_MOUSE="mouse",e.Gestures.POINTER_TOUCH="touch",e.Gestures.POINTER_PEN="pen",e.Gestures.EVENT_START="start",e.Gestures.EVENT_MOVE="move",e.Gestures.EVENT_END="end",e.Gestures.DOCUMENT=window.document,e.Gestures.plugins={},e.Gestures.READY=!1,e.Gestures.Instance=function(t,n){var i=this;return null===t?this:(function(){if(!e.Gestures.READY){for(var t in e.Gestures.event.determineEventTypes(),e.Gestures.gestures)e.Gestures.gestures.hasOwnProperty(t)&&e.Gestures.detection.register(e.Gestures.gestures[t]);e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_MOVE,e.Gestures.detection.detect),e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_END,e.Gestures.detection.detect),e.Gestures.READY=!0}}(),this.element=t,this.enabled=!0,this.options=e.Gestures.utils.extend(e.Gestures.utils.extend({},e.Gestures.defaults),n||{}),this.options.stop_browser_behavior&&e.Gestures.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),e.Gestures.event.onTouch(t,e.Gestures.EVENT_START,(function(t){i.enabled&&e.Gestures.detection.startDetect(i,t)})),this)},e.Gestures.Instance.prototype={on:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.addEventListener(n[i],t,!1);return this},off:function(e,t){for(var n=e.split(" "),i=0;i<n.length;i++)this.element.removeEventListener(n[i],t,!1);return this},trigger:function(t,n){var i=e.Gestures.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=n;var r=this.element;return e.Gestures.utils.hasParent(n.target,r)&&(r=n.target),r.dispatchEvent(i),this},enable:function(e){return this.enabled=e,this}};var t=null,n=!1,i=!1;e.Gestures.event={bindDom:function(e,t,n){for(var i=t.split(" "),r=0;r<i.length;r++)e.addEventListener(i[r],n,!1)},onTouch:function(r,o,a){var s=this;this.bindDom(r,e.Gestures.EVENT_TYPES[o],(function(l){var u=l.type.toLowerCase();if(!u.match(/mouse/)||!i){u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===l.which?n=!0:u.match(/mouse/)&&1!==l.which&&(n=!1),u.match(/touch|pointer/)&&(i=!0);var c=0;n&&(e.Gestures.HAS_POINTEREVENTS&&o!=e.Gestures.EVENT_END?c=e.Gestures.PointerEvent.updatePointer(o,l):u.match(/touch/)?c=l.touches.length:i||(c=u.match(/up/)?0:1),c>0&&o==e.Gestures.EVENT_END?o=e.Gestures.EVENT_MOVE:c||(o=e.Gestures.EVENT_END),(c||null===t)&&(t=l),a.call(e.Gestures.detection,s.collectEventData(r,o,s.getTouchList(t,o),l)),e.Gestures.HAS_POINTEREVENTS&&o==e.Gestures.EVENT_END&&(c=e.Gestures.PointerEvent.updatePointer(o,l))),c||(t=null,n=!1,i=!1,e.Gestures.PointerEvent.reset())}}))},determineEventTypes:function(){var t;t=e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getEvents():e.Gestures.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_START]=t[0],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_MOVE]=t[1],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_END]=t[2]},getTouchList:function(t){return e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getTouchList():t.touches?t.touches:(t.identifier=1,[t])},collectEventData:function(t,n,i,r){var o=e.Gestures.POINTER_TOUCH;return(r.type.match(/mouse/)||e.Gestures.PointerEvent.matchType(e.Gestures.POINTER_MOUSE,r))&&(o=e.Gestures.POINTER_MOUSE),{center:e.Gestures.utils.getCenter(i),timeStamp:(new Date).getTime(),target:r.target,touches:i,eventType:n,pointerType:o,srcEvent:r,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return e.Gestures.detection.stopDetect()}}}},e.Gestures.PointerEvent={pointers:{},getTouchList:function(){var e=this,t=[];return Object.keys(e.pointers).sort().forEach((function(n){t.push(e.pointers[n])})),t},updatePointer:function(t,n){return t==e.Gestures.EVENT_END?this.pointers={}:(n.identifier=n.pointerId,this.pointers[n.pointerId]=n),Object.keys(this.pointers).length},matchType:function(t,n){if(!n.pointerType)return!1;var i={};return i[e.Gestures.POINTER_MOUSE]=n.pointerType==n.MSPOINTER_TYPE_MOUSE||n.pointerType==e.Gestures.POINTER_MOUSE,i[e.Gestures.POINTER_TOUCH]=n.pointerType==n.MSPOINTER_TYPE_TOUCH||n.pointerType==e.Gestures.POINTER_TOUCH,i[e.Gestures.POINTER_PEN]=n.pointerType==n.MSPOINTER_TYPE_PEN||n.pointerType==e.Gestures.POINTER_PEN,i[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},e.Gestures.utils={extend:function(e,t,n){for(var i in t)void 0!==e[i]&&n||(e[i]=t[i]);return e},hasParent:function(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1},getCenter:function(e){for(var t=[],n=[],i=0,r=e.length;i<r;i++)t.push(e[i].pageX),n.push(e[i].pageY);return{pageX:(Math.min.apply(Math,t)+Math.max.apply(Math,t))/2,pageY:(Math.min.apply(Math,n)+Math.max.apply(Math,n))/2}},getVelocity:function(e,t,n){return{x:Math.abs(t/e)||0,y:Math.abs(n/e)||0}},getAngle:function(e,t){var n=t.pageY-e.pageY,i=t.pageX-e.pageX;return 180*Math.atan2(n,i)/Math.PI},getDirection:function(t,n){return Math.abs(t.pageX-n.pageX)>=Math.abs(t.pageY-n.pageY)?t.pageX-n.pageX>0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT:t.pageY-n.pageY>0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN},getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},getScale:function(e,t){return e.length>=2&&t.length>=2?this.getDistance(t[0],t[1])/this.getDistance(e[0],e[1]):1},getRotation:function(e,t){return e.length>=2&&t.length>=2?this.getAngle(t[1],t[0])-this.getAngle(e[1],e[0]):0},isVertical:function(t){return t==e.Gestures.DIRECTION_UP||t==e.Gestures.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(e,t){e&&e.classList&&(e.classList.add(t),e.onselectstart=function(){return!1})}},e.Gestures.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,n){this.current||(this.stopped=!1,this.current={inst:t,startEvent:e.Gestures.utils.extend({},n),lastEvent:!1,name:""},this.detect(n))},detect:function(t){if(!this.current||this.stopped)return null;t=this.extendEventData(t);for(var n=this.current.inst.options,i=0,r=this.gestures.length;i<r;i++){var o=this.gestures[i];if(!this.stopped&&!1!==n[o.name]&&!1===o.handler.call(o,t,this.current.inst)){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==e.Gestures.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t},stopDetect:function(){this.previous=e.Gestures.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var n=this.current.startEvent;if(n&&(t.touches.length!=n.touches.length||t.touches===n.touches)){n.touches=[];for(var i=0,r=t.touches.length;i<r;i++)n.touches.push(e.Gestures.utils.extend({},t.touches[i]))}var o=t.timeStamp-n.timeStamp,a=t.center.pageX-n.center.pageX,s=t.center.pageY-n.center.pageY,l=e.Gestures.utils.getVelocity(o,a,s);return e.Gestures.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:s,velocityX:l.x,velocityY:l.y,distance:e.Gestures.utils.getDistance(n.center,t.center),angle:e.Gestures.utils.getAngle(n.center,t.center),direction:e.Gestures.utils.getDirection(n.center,t.center),scale:e.Gestures.utils.getScale(n.touches,t.touches),rotation:e.Gestures.utils.getRotation(n.touches,t.touches),startEvent:n}),t},register:function(t){var n=t.defaults||{};return void 0===n[t.name]&&(n[t.name]=!0),e.Gestures.utils.extend(e.Gestures.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort((function(e,t){return e.index<t.index?-1:e.index>t.index?1:0})),this.gestures}},e.Gestures.gestures=e.Gestures.gestures||{},e.Gestures.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:9},timer:null,handler:function(t,n){switch(t.eventType){case e.Gestures.EVENT_START:clearTimeout(this.timer),e.Gestures.detection.current.name=this.name,this.timer=setTimeout((function(){"hold"==e.Gestures.detection.current.name&&(e.tap.cancelClick(),n.trigger("hold",t))}),n.options.hold_timeout);break;case e.Gestures.EVENT_MOVE:t.distance>n.options.hold_threshold&&clearTimeout(this.timer);break;case e.Gestures.EVENT_END:clearTimeout(this.timer)}}},e.Gestures.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END&&"touchcancel"!=t.srcEvent.type){var i=e.Gestures.detection.previous,r=!1;if(t.deltaTime>n.options.tap_max_touchtime||t.distance>n.options.tap_max_distance)return;i&&"tap"==i.name&&t.timeStamp-i.lastEvent.timeStamp<n.options.doubletap_interval&&t.distance<n.options.doubletap_distance&&(n.trigger("doubletap",t),r=!0),r&&!n.options.tap_always||(e.Gestures.detection.current.name="tap",n.trigger("tap",t))}}},e.Gestures.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.4},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END){if(n.options.swipe_max_touches>0&&t.touches.length>n.options.swipe_max_touches)return;(t.velocityX>n.options.swipe_velocity||t.velocityY>n.options.swipe_velocity)&&(n.trigger(this.name,t),n.trigger(this.name+t.direction,t))}}},e.Gestures.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!0,drag_block_vertical:!0,drag_lock_to_axis:!1,drag_lock_min_distance:25,prevent_default_directions:[]},triggered:!1,handler:function(t,n){if("touchstart"==t.srcEvent.type||"touchend"==t.srcEvent.type?this.preventedFirstMove=!1:this.preventedFirstMove||"touchmove"!=t.srcEvent.type||(n.options.prevent_default_directions.length>0&&-1!=n.options.prevent_default_directions.indexOf(t.direction)&&t.srcEvent.preventDefault(),this.preventedFirstMove=!0),e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:if(t.distance<n.options.drag_min_distance&&e.Gestures.detection.current.name!=this.name)return;if(e.Gestures.detection.current.name!=this.name&&(e.Gestures.detection.current.name=this.name,n.options.correct_for_drag_min_distance)){var i=Math.abs(n.options.drag_min_distance/t.distance);e.Gestures.detection.current.startEvent.center.pageX+=t.deltaX*i,e.Gestures.detection.current.startEvent.center.pageY+=t.deltaY*i,t=e.Gestures.detection.extendEventData(t)}(e.Gestures.detection.current.lastEvent.drag_locked_to_axis||n.options.drag_lock_to_axis&&n.options.drag_lock_min_distance<=t.distance)&&(t.drag_locked_to_axis=!0);var r=e.Gestures.detection.current.lastEvent.direction;t.drag_locked_to_axis&&r!==t.direction&&(e.Gestures.utils.isVertical(r)?t.direction=t.deltaY<0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN:t.direction=t.deltaX<0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),(n.options.drag_block_vertical&&e.Gestures.utils.isVertical(t.direction)||n.options.drag_block_horizontal&&!e.Gestures.utils.isVertical(t.direction))&&t.preventDefault();break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(t.touches.length<2))switch(n.options.transform_always_block&&t.preventDefault(),t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:var i=Math.abs(1-t.scale),r=Math.abs(t.rotation);if(i<n.options.transform_min_scale&&r<n.options.transform_min_rotation)return;e.Gestures.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),r>n.options.transform_min_rotation&&n.trigger("rotate",t),i>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){n.options.prevent_mouseevents&&t.pointerType==e.Gestures.POINTER_MOUSE?t.stopDetect():(n.options.prevent_default&&t.preventDefault(),t.eventType==e.Gestures.EVENT_START&&n.trigger(this.name,t))}},e.Gestures.gestures.Release={name:"release",index:1/0,handler:function(t,n){t.eventType==e.Gestures.EVENT_END&&n.trigger(this.name,t)}}}(window.ionic),function(e,t,n){function i(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))}var r,o=n.requestAnimationFrame,a=n.Platform={navigator:e.navigator,isReady:!1,isFullScreen:!1,platforms:null,grade:null,ua:navigator.userAgent,ready:function(e){a.isReady?e():u.push(e)},detect:function(){a._checkPlatforms(),o((function(){for(var e=0;e<a.platforms.length;e++)t.body.classList.add("platform-"+a.platforms[e])}))},setGrade:function(e){var n=a.grade;a.grade=e,o((function(){n&&t.body.classList.remove("grade-"+n),t.body.classList.add("grade-"+e)}))},device:function(){return e.device||{}},_checkPlatforms:function(){a.platforms=[];var t="a";a.isWebView()?(a.platforms.push("webview"),e.cordova||e.PhoneGap||e.phonegap?a.platforms.push("cordova"):"object"==typeof e.forge&&a.platforms.push("trigger")):a.platforms.push("browser"),a.isIPad()&&a.platforms.push("ipad");var n=a.platform();if(n){a.platforms.push(n);var i=a.version();if(i){var r=i.toString();r.indexOf(".")>0?r=r.replace(".","_"):r+="_0",a.platforms.push(n+r.split("_")[0]),a.platforms.push(n+r),a.isAndroid()&&i<4.4?t=i<4?"c":"b":a.isWindowsPhone()&&(t="b")}}a.setGrade(t)},isWebView:function(){return!(!e.cordova&&!e.PhoneGap&&!e.phonegap&&"object"!==e.forge)},isIPad:function(){return!!/iPad/i.test(a.navigator.platform)||/iPad/i.test(a.ua)},isIOS:function(){return a.is("ios")},isAndroid:function(){return a.is("android")},isWindowsPhone:function(){return a.is("windowsphone")},isEdge:function(){return a.is("edge")},isCrosswalk:function(){return a.is("crosswalk")},platform:function(){return null===s&&a.setPlatform(a.device().platform),s},setPlatform:function(e){s=null!=e&&e.length?e.toLowerCase():i("ionicplatform")?i("ionicplatform"):a.ua.indexOf("Edge")>-1?"edge":a.ua.indexOf("Windows Phone")>-1?"windowsphone":a.ua.indexOf("Android")>0?"android":/iPhone|iPad|iPod/.test(a.ua)?"ios":a.navigator.platform&&navigator.platform.toLowerCase().split(" ")[0]||""},version:function(){return null===l&&a.setVersion(a.device().version),l},setVersion:function(e){if(null==e||(e=e.split("."),e=parseFloat(e[0]+"."+(e.length>1?e[1]:0)),isNaN(e))){l=0;var t=a.platform(),n={android:/Android (\d+).(\d+)?/,ios:/OS (\d+)_(\d+)?/,windowsphone:/Windows Phone (\d+).(\d+)?/};n[t]&&(e=a.ua.match(n[t]))&&e.length>2&&(l=parseFloat(e[1]+"."+e[2]))}else l=e},is:function(e){if(e=e.toLowerCase(),a.platforms)for(var t=0;t<a.platforms.length;t++)if(a.platforms[t]===e)return!0;var n=a.platform();return n?n===e.toLowerCase():a.ua.toLowerCase().indexOf(e)>=0},exitApp:function(){a.ready((function(){navigator.app&&navigator.app.exitApp&&navigator.app.exitApp()}))},showStatusBar:function(n){a._showStatusBar=n,a.ready((function(){o((function(){a._showStatusBar?(e.StatusBar&&e.StatusBar.show(),t.body.classList.remove("status-bar-hide")):(e.StatusBar&&e.StatusBar.hide(),t.body.classList.add("status-bar-hide"))}))}))},fullScreen:function(e,i){a.isFullScreen=!1!==e,n.DomUtil.ready((function(){o((function(){a.isFullScreen?t.body.classList.add("fullscreen"):t.body.classList.remove("fullscreen")})),a.showStatusBar(!0===i)}))}},s=null,l=null,u=[];function c(){a.isWebView()?t.addEventListener("deviceready",d,!1):d(),r&&e.removeEventListener("load",c,!1)}function d(){a.isReady=!0,a.detect();for(var e=0;e<u.length;e++)u[e]();u=[],n.trigger("platformready",{target:t}),o((function(){t.body.classList.add("platform-ready")}))}setTimeout((function(){!a.isReady&&a.isWebView()}),2e3),"complete"===t.readyState?c():(r=!0,e.addEventListener("load",c,!1))}(window,document,ionic),function(e,t){"use strict";var n,i,r,o;t.CSS={},t.CSS.TRANSITION=[],t.CSS.TRANSFORM=[],t.EVENTS={},function(){var n,i=["webkitTransform","transform","-webkit-transform","webkit-transform","-moz-transform","moz-transform","MozTransform","mozTransform","msTransform"];for(n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSFORM=i[n];break}for(i=["webkitTransition","mozTransition","msTransition","transition"],n=0;n<i.length;n++)if(void 0!==e.documentElement.style[i[n]]){t.CSS.TRANSITION=i[n];break}t.CSS.TRANSITION=t.CSS.TRANSITION||"transition";var r=t.CSS.TRANSITION.indexOf("webkit")>-1;t.CSS.TRANSITION_DURATION=(r?"-webkit-":"")+"transition-duration",t.CSS.TRANSITIONEND=(r?"webkitTransitionEnd ":"")+"transitionend"}(),n="touchstart",i="touchmove",r="touchend",o="touchcancel",window.navigator.pointerEnabled?(n="pointerdown",i="pointermove",r="pointerup",o="pointercancel"):window.navigator.msPointerEnabled&&(n="MSPointerDown",i="MSPointerMove",r="MSPointerUp",o="MSPointerCancel"),t.EVENTS.touchstart=n,t.EVENTS.touchmove=i,t.EVENTS.touchend=r,t.EVENTS.touchcancel=o,"classList"in e.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){var e=this;function t(t){return function(){var n,i=e.className.split(/\s+/);for(n=0;n<arguments.length;n++)t(i,i.indexOf(arguments[n]),arguments[n]);e.className=i.join(" ")}}return{add:t((function(e,t,n){~t||e.push(n)})),remove:t((function(e,t){~t&&e.splice(t,1)})),toggle:t((function(e,t,n){~t?e.splice(t,1):e.push(n)})),contains:function(t){return!!~e.className.split(/\s+/).indexOf(t)},item:function(t){return e.className.split(/\s+/)[t]||null}}}})}(document,ionic);var l="touchmove",u=12,c=50,d={click:function(e){return"submit"==e.target.type&&0===e.detail?null:ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)||!e.isIonicTap&&!ionic.tap.requiresNativeClick(e.target)?(e.stopPropagation(),ionic.tap.isLabelWithTextInput(e.target)||e.preventDefault(),!1):void 0},mousedown:function(e){return e.isIonicTap||b(e)?null:n?(e.stopPropagation(),ionic.Platform.isEdge()||ionic.tap.isTextInput(e.target)&&s===e.target||x(e.target.tagName)||e.target.isContentEditable||ionic.tap.isVideo(e.target)||e.preventDefault(),!1):(r=!1,o=ionic.tap.pointerCoord(e),h("mousemove"),void ionic.activator.start(e))},mouseup:function(e){return n?(e.stopPropagation(),e.preventDefault(),!1):!b(e)&&!x(e.target.tagName)&&(L(e)||f(e),h("mousemove",!1),ionic.activator.end(),void(r=!1))},mousemove:function(e){if(L(e))return h("mousemove",!1),ionic.activator.end(),r=!0,!1},touchstart:m,touchend:g,touchcancel:_,touchmove:v,pointerdown:m,pointerup:g,pointercancel:_,pointermove:v,MSPointerDown:m,MSPointerUp:g,MSPointerCancel:_,MSPointerMove:v,focusin:function(e){n&&ionic.tap.isTextInput(w())&&ionic.tap.isTextInput(a)&&a!==e.target&&(a.focus(),a=null),ionic.scroll.isScrolling=!1},focusout:function(){w(null)}};function h(t,n,i){!1!==n?e.addEventListener(t,d[t],i):e.removeEventListener(t,d[t])}function f(e){var t=k(M(e.target));if(ionic.tap.requiresNativeClick(t)||r)return!1;var i=ionic.tap.pointerCoord(e);p("click",t,i.x,i.y),function(e){a=null;var t=!1;"SELECT"==e.tagName?(p("mousedown",e,0,0),e.focus&&e.focus(),t=!0):w()===e?t=!0:/^(input|textarea|ion-label)$/i.test(e.tagName)||e.isContentEditable?(t=!0,e.focus&&e.focus(),e.value=e.value,n&&(a=e)):function(){var e=w();e&&(/^(input|textarea|select)$/i.test(e.tagName)||e.isContentEditable)&&e.blur(),w(null)}(),t&&(w(e),ionic.trigger("ionic.focusin",{target:e},!0))}(t)}function p(e,t,n,i){var r=document.createEvent("MouseEvents");r.initMouseEvent(e,!0,!0,window,1,0,0,n,i,!1,!1,!1,!1,0,null),r.isIonicTap=!0,t.dispatchEvent(r)}function m(e){b(e)||(r=!1,y(),o=ionic.tap.pointerCoord(e),h(l),ionic.activator.start(e),ionic.Platform.isIOS()&&ionic.tap.isLabelWithTextInput(e.target)&&k(M(e.target))!==t&&e.preventDefault())}function g(e){b(e)||(y(),L(e)||(f(e),x(e.target.tagName)&&e.preventDefault()),s=e.target,_())}function v(e){if(L(e))return r=!0,h(l,!1),ionic.activator.end(),!1}function _(){h(l,!1),ionic.activator.end(),r=!1}function y(){n=!0,clearTimeout(i),i=setTimeout((function(){n=!1}),600)}function b(e){return!!e.isTapHandled||(e.isTapHandled=!0,!!ionic.tap.isElementTapDisabled(e.target)||"SELECT"==e.target.tagName||(ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)?(e.preventDefault(),!0):void 0))}function w(e){return arguments.length&&(t=e),t||document.activeElement}function L(e){if(!e||1!==e.target.nodeType||!o||0===o.x&&0===o.y)return!1;var t=ionic.tap.pointerCoord(e),n=e.target.classList&&e.target.classList.contains&&"function"==typeof e.target.classList.contains&&e.target.classList.contains("button")?c:u;return Math.abs(o.x-t.x)>n||Math.abs(o.y-t.y)>n}function M(e,t){for(var n=e,i=0;i<6&&n;i++){if("LABEL"===n.tagName)return n;n=n.parentElement}if(!1!==t)return e}function k(e){if(e&&"LABEL"===e.tagName){if(e.control)return e.control;if(e.querySelector){var t=e.querySelector("input,textarea,select");if(t)return t}}return e}function x(e){return/^(select|option)$/i.test(e)}ionic.tap={register:function(i){return e=i,h("click",!0,!0),h("mouseup"),h("mousedown"),window.navigator.pointerEnabled?(h("pointerdown"),h("pointerup"),h("pointercancel"),l="pointermove"):window.navigator.msPointerEnabled?(h("MSPointerDown"),h("MSPointerUp"),h("MSPointerCancel"),l="MSPointerMove"):(h("touchstart"),h("touchend"),h("touchcancel")),h("focusin"),h("focusout"),function(){for(var i in d)h(i,!1);e=null,t=null,n=!1,r=!1,o=null}},ignoreScrollStart:function(e){return e.defaultPrevented||/^(file|range)$/i.test(e.target.type)||"true"==(e.target.dataset?e.target.dataset.preventScroll:e.target.getAttribute("data-prevent-scroll"))||!!/^(object|embed)$/i.test(e.target.tagName)||ionic.tap.isElementTapDisabled(e.target)},isTextInput:function(e){return!!e&&("TEXTAREA"==e.tagName||"true"===e.contentEditable||"INPUT"==e.tagName&&!/^(radio|checkbox|range|file|submit|reset|color|image|button)$/i.test(e.type))},isDateInput:function(e){return!!e&&"INPUT"==e.tagName&&/^(date|time|datetime-local|month|week)$/i.test(e.type)},isVideo:function(e){return!!e&&"VIDEO"==e.tagName},isKeyboardElement:function(e){return!ionic.Platform.isIOS()||ionic.Platform.isIPad()?ionic.tap.isTextInput(e)&&!ionic.tap.isDateInput(e):ionic.tap.isTextInput(e)||!!e&&"SELECT"==e.tagName},isLabelWithTextInput:function(e){var t=M(e,!1);return!!t&&ionic.tap.isTextInput(k(t))},containsOrIsTextInput:function(e){return ionic.tap.isTextInput(e)||ionic.tap.isLabelWithTextInput(e)},cloneFocusedInput:function(e){ionic.tap.hasCheckedClone||(ionic.tap.hasCheckedClone=!0,ionic.requestAnimationFrame((function(){var t=e.querySelector(":focus");if(ionic.tap.isTextInput(t)&&!ionic.tap.isDateInput(t)){var n=t.cloneNode(!0);n.value=t.value,n.classList.add("cloned-text-input"),n.readOnly=!0,t.isContentEditable&&(n.contentEditable=t.contentEditable,n.innerHTML=t.innerHTML),t.parentElement.insertBefore(n,t),t.classList.add("previous-input-focus"),n.scrollTop=t.scrollTop}})))},hasCheckedClone:!1,removeClonedInputs:function(e){ionic.tap.hasCheckedClone=!1,ionic.requestAnimationFrame((function(){var t,n=e.querySelectorAll(".cloned-text-input"),i=e.querySelectorAll(".previous-input-focus");for(t=0;t<n.length;t++)n[t].parentElement.removeChild(n[t]);for(t=0;t<i.length;t++)i[t].classList.remove("previous-input-focus"),i[t].style.top="",ionic.keyboard.isOpen&&!ionic.keyboard.isClosing&&i[t].focus()}))},requiresNativeClick:function(e){return!(!ionic.Platform.isWindowsPhone()||"A"!=e.tagName&&"BUTTON"!=e.tagName&&!e.hasAttribute("ng-click")&&("INPUT"!=e.tagName||"button"!=e.type&&"submit"!=e.type))||!!(!e||e.disabled||/^(file|range)$/i.test(e.type)||/^(object|video)$/i.test(e.tagName)||ionic.tap.isLabelContainingFileInput(e))||ionic.tap.isElementTapDisabled(e)},isLabelContainingFileInput:function(e){var t=M(e);if("LABEL"!==t.tagName)return!1;var n=t.querySelector("input[type=file]");return!(!n||!1!==n.disabled)},isElementTapDisabled:function(e){if(e&&1===e.nodeType)for(var t=e;t;){if(t.getAttribute&&"true"==t.getAttribute("data-tap-disabled"))return!0;t=t.parentElement}return!1},setTolerance:function(e,t){u=e,c=t},cancelClick:function(){r=!0},pointerCoord:function(e){var t={x:0,y:0};if(e){var n=e.touches&&e.touches.length?e.touches:[e],i=e.changedTouches&&e.changedTouches[0]||n[0];i&&(t.x=i.clientX||i.pageX||0,t.y=i.clientY||i.pageY||0)}return t}},ionic.DomUtil.ready((function(){var e="undefined"!=typeof angular?angular:null;(!e||e&&!e.scenario)&&ionic.tap.register(document)})),function(e,t){"use strict";var n={},i={},r=0,o="activated";function a(){n={},t.requestAnimationFrame(l)}function s(){for(var e in n)n[e]&&(n[e].classList.add(o),i[e]=n[e]);n={}}function l(){if(t.transition&&t.transition.isActive)setTimeout(l,400);else for(var e in i)i[e]&&(i[e].classList.remove(o),delete i[e])}t.activator={start:function(e){var i=t.tap.pointerCoord(e).x;i>0&&i<30||t.requestAnimationFrame((function(){if(!(t.scroll&&t.scroll.isScrolling||t.tap.requiresNativeClick(e.target))){for(var i,o=e.target,a=0;a<6&&o&&1===o.nodeType;a++){if(i&&o.classList&&o.classList.contains("item")){i=o;break}if("A"==o.tagName||"BUTTON"==o.tagName||o.hasAttribute("ng-click")){i=o;break}if(o.classList&&o.classList.contains("button")){i=o;break}if("ION-CONTENT"==o.tagName||o.classList&&o.classList.contains("pane")||"BODY"==o.tagName)break;o=o.parentElement}i&&(n[r]=i,t.requestAnimationFrame(s),r=r>29?0:r+1)}}))},end:function(){setTimeout(a,200)}}}(document,ionic),function(e){var t=0;e.Utils={arrayMove:function(e,t,n){if(n>=e.length)for(var i=n-e.length;1+i--;)e.push(void 0);return e.splice(n,0,e.splice(t,1)[0]),e},proxy:function(e,t){var n=Array.prototype.slice.call(arguments,2);return function(){return e.apply(t,n.concat(Array.prototype.slice.call(arguments)))}},debounce:function(e,t,n){var i,r,o,a,s;return function(){o=this,r=arguments,a=new Date;var l=function(){var u=new Date-a;u<t?i=setTimeout(l,t-u):(i=null,n||(s=e.apply(o,r)))},u=n&&!i;return i||(i=setTimeout(l,t)),u&&(s=e.apply(o,r)),s}},throttle:function(e,t,n){var i,r,o,a=null,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Date.now(),a=null,o=e.apply(i,r)};return function(){var u=Date.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return i=this,r=arguments,c<=0?(clearTimeout(a),a=null,s=u,o=e.apply(i,r)):a||!1===n.trailing||(a=setTimeout(l,c)),o}},inherit:function(t,n){var i,r=this;i=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return r.apply(this,arguments)},e.extend(i,r,n);var o=function(){this.constructor=i};return o.prototype=r.prototype,i.prototype=new o,t&&e.extend(i.prototype,t),i.__super__=r.prototype,i},extend:function(e){for(var t=Array.prototype.slice.call(arguments,1),n=0;n<t.length;n++){var i=t[n];if(i)for(var r in i)e[r]=i[r]}return e},nextUid:function(){return"ion"+t++},disconnectScope:function(e){if(e&&e.$root!==e){var t=e.$parent;e.$$disconnected=!0,e.$broadcast("$ionic.disconnectScope",e),t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e.$parent;e.$$disconnected=!1,e.$broadcast("$ionic.reconnectScope",e),e.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=e,t.$$childTail=e):t.$$childHead=t.$$childTail=e}},isScopeDisconnected:function(e){for(var t=e;t;){if(t.$$disconnected)return!0;t=t.$parent}return!1}},e.inherit=e.Utils.inherit,e.extend=e.Utils.extend,e.throttle=e.Utils.throttle,e.proxy=e.Utils.proxy,e.debounce=e.Utils.debounce}(window.ionic);var S,T,$,D,C,E,A=0,P=0,Y=0,O=!1,I="keyboard-open",j=ionic.debounce((function(e){if(clearTimeout(C),!e.target||e.target.readOnly||!ionic.tap.isKeyboardElement(e.target)||!($=ionic.DomUtil.getParentWithClass(e.target,"scroll-content")))return S&&(T=S),void(S=null);S=e.target,$.classList.contains("overflow-scroll")||(document.body.scrollTop=0,$.scrollTop=0,ionic.requestAnimationFrame((function(){document.body.scrollTop=0,$.scrollTop=0})),window.navigator.msPointerEnabled?document.addEventListener("MSPointerMove",z,!1):document.addEventListener("touchmove",z,!1)),ionic.keyboard.isOpen&&!ionic.keyboard.isClosing||(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),document.addEventListener("keydown",F,!1),ionic.keyboard.isOpen||X()?ionic.keyboard.isOpen&&W():V(W,!0)}),200,!0),H=ionic.debounce((function(e){clearTimeout(C),(!ionic.keyboard.isOpen||ionic.keyboard.isClosing)&&(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),ionic.keyboard.height=e.keyboardHeight,V(O?G:W,!0)}),100,!0);function B(){ionic.keyboard.isInitialized||(X()?(window.addEventListener("native.keyboardshow",H),window.addEventListener("native.keyboardhide",N)):document.body.addEventListener("focusout",N),document.body.addEventListener("ionic.focusin",j),document.body.addEventListener("focusin",j),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",B):document.removeEventListener("touchstart",B),ionic.keyboard.isInitialized=!0)}function N(){clearTimeout(C),(ionic.keyboard.isOpen||ionic.keyboard.isOpening)&&(ionic.keyboard.isClosing=!0,ionic.keyboard.isOpening=!1),C=setTimeout((function(){ionic.requestAnimationFrame((function(){V(O?function(){G(),U()}:U,!1)}))}),50)}function R(){ionic.keyboard.isLandscape=!ionic.keyboard.isLandscape,ionic.Platform.isIOS()&&G(),ionic.Platform.isAndroid()&&(ionic.keyboard.isOpen&&X()?O=!0:V(G,!1))}function F(e){ionic.scroll.isScrolling&&z(e)}function z(e){"TEXTAREA"!==e.target.tagName&&e.preventDefault()}function V(e,t){clearInterval(D);var n,i=0,r=J(),o=r;return n=ionic.Platform.isAndroid()&&ionic.Platform.version()<4.4?30:ionic.Platform.isAndroid()?10:1,D=setInterval((function(){o=J(),++i<n&&(!function(e){return!!(!ionic.keyboard.isLandscape&&P&&Math.abs(P-e)<2)}(o)&&!function(e){return!!(ionic.keyboard.isLandscape&&Y&&Math.abs(Y-e)<2)}(o)||!ionic.keyboard.height)||(X()||(ionic.keyboard.height=Math.abs(r-window.innerHeight)),ionic.keyboard.isOpen=t,clearInterval(D),e())}),50),n}function U(){clearTimeout(C),ionic.keyboard.isOpen=!1,ionic.keyboard.isClosing=!1,(S||T)&&ionic.trigger("resetScrollView",{target:S||T},!0),ionic.requestAnimationFrame((function(){document.body.classList.remove(I)})),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerMove",z):document.removeEventListener("touchmove",z),document.removeEventListener("keydown",F),ionic.Platform.isAndroid()&&(X()&&cordova.plugins.Keyboard.close(),S&&S.blur()),S=null,T=null}function W(){ionic.keyboard.isOpen=!0,ionic.keyboard.isOpening=!1;var e={keyboardHeight:q(),viewportHeight:A};if(S){e.target=S;var t=S.getBoundingClientRect();e.elementTop=Math.round(t.top),e.elementBottom=Math.round(t.bottom),e.windowHeight=e.viewportHeight-e.keyboardHeight,e.isElementUnderKeyboard=e.elementBottom>e.windowHeight,ionic.trigger("scrollChildIntoView",e,!0)}return setTimeout((function(){document.body.classList.add(I)}),400),e}function q(){if(ionic.keyboard.height)return ionic.keyboard.height;if(ionic.Platform.isAndroid()){if(ionic.Platform.isFullScreen)return 275;var e=window.innerHeight;return e<A?A-e:0}return ionic.Platform.isIOS()?ionic.keyboard.isLandscape?206:ionic.Platform.isWebView()?260:216:275}function G(){O=!1,A=J(),ionic.keyboard.isLandscape&&!Y?Y=A:ionic.keyboard.isLandscape||P||(P=A),S&&ionic.trigger("resetScrollView",{target:S},!0),ionic.keyboard.isOpen&&ionic.tap.isTextInput(S)&&W()}function Z(){var e=J();e/window.innerWidth<1&&(ionic.keyboard.isLandscape=!0),A=e,ionic.keyboard.isLandscape&&!Y?Y=A:ionic.keyboard.isLandscape||P||(P=A)}function J(){var e=window.innerHeight;return ionic.Platform.isAndroid()&&ionic.Platform.isFullScreen||!ionic.keyboard.isOpen&&!ionic.keyboard.isOpening||ionic.keyboard.isClosing?e:e+q()}function X(){return!!(window.cordova&&cordova.plugins&&cordova.plugins.Keyboard)}ionic.keyboard={isOpen:!1,isClosing:!1,isOpening:!1,height:0,isLandscape:!1,isInitialized:!1,hide:function(){X()&&cordova.plugins.Keyboard.close(),S&&S.blur()},show:function(){X()&&cordova.plugins.Keyboard.show()},disable:function(){X()?(window.removeEventListener("native.keyboardshow",H),window.removeEventListener("native.keyboardhide",N)):document.body.removeEventListener("focusout",N),document.body.removeEventListener("ionic.focusin",j),document.body.removeEventListener("focusin",j),window.removeEventListener("orientationchange",R),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",B):document.removeEventListener("touchstart",B),ionic.keyboard.isInitialized=!1},enable:function(){B()}},A=J(),ionic.Platform.ready((function(){Z(),window.addEventListener("orientationchange",R),setTimeout(Z,999),window.navigator.msPointerEnabled?document.addEventListener("MSPointerDown",B,!1):document.addEventListener("touchstart",B,!1)}));var K={};function Q(){var e=K.width,t=K.height,n=ionic.Platform,i=n.version(),r=ionic.viewport.orientation();delete K.height,K.width="device-width",n.isIPad()?i>7?delete K.width:n.isWebView()?90==r?K.height="0":7==i&&(K.height="device-height"):i<7&&(K.height="0"):n.isIOS()&&(n.isWebView()?i>7?delete K.width:i<7?t&&(K.height="0"):7==i&&(K.height="device-height"):i<7&&t&&(K.height="0")),e===K.width&&t===K.height||function(){var e,t=[];for(e in K)K[e]&&t.push(e+("_"==K[e]?"":"="+K[e]));E.content=t.join(", ")}()}ionic.viewport={orientation:function(){return window.innerWidth>window.innerHeight?90:0}},ionic.Platform.ready((function(){!function(){var e;for(e=0;e<document.head.children.length;e++)if("viewport"==document.head.children[e].name){E=document.head.children[e];break}if(E){var t,n=E.content.toLowerCase().replace(/\s+/g,"").split(",");for(e=0;e<n.length;e++)n[e]&&(t=n[e].split("="),K[t[0]]=t.length>1?t[1]:"_");Q()}}(),window.addEventListener("orientationchange",(function(){setTimeout(Q,1e3)}),!1)})),function(e){"use strict";e.views.View=function(){this.initialize.apply(this,arguments)},e.views.View.inherit=e.inherit,e.extend(e.views.View.prototype,{initialize:function(){}})}(window.ionic);var ee={effect:{}};!function(e){var t=Date.now||function(){return+new Date},n={},i=1;ee.effect.Animate={requestAnimationFrame:function(){var t=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame,n=!!t;if(t&&!/requestAnimationFrame\(\)\s*\{\s*\[native code\]\s*\}/i.test(t.toString())&&(n=!1),n)return function(e,n){t(e,n)};var i={},r=1,o=null,a=+new Date;return function(e){var t=r++;return i[t]=e,null===o&&(o=setInterval((function(){var e=+new Date,t=i;for(var n in i={},t)t.hasOwnProperty(n)&&(t[n](e),a=e);e-a>2500&&(clearInterval(o),o=null)}),1e3/60)),t}}(),stop:function(e){var t=null!=n[e];return t&&(n[e]=null),t},isRunning:function(e){return null!=n[e]},start:function(e,r,o,a,s,l){var u=t(),c=u,d=0,h=0,f=i++;if(l||(l=document.body),f%20==0){var p={};for(var m in n)p[m]=!0;n=p}var g=function(i){var p=!0!==i,m=t();if(!n[f]||r&&!r(f))return n[f]=null,void(o&&o(60-h/((m-u)/1e3),f,!1));if(p)for(var v=Math.round((m-c)/(1e3/60))-1,_=0;_<Math.min(v,4);_++)g(!0),h++;a&&(d=(m-u)/a)>1&&(d=1);var y=s?s(d):d;!1!==e(y,m,p)&&1!==d||!p?p&&(c=m,ee.effect.Animate.requestAnimationFrame(g,l)):(n[f]=null,o&&o(60-h/((m-u)/1e3),f,1===d||null==a))};return n[f]=!0,ee.effect.Animate.requestAnimationFrame(g,l),f}}}(window),function(e){var t=function(){},n=function(e){return Math.pow(e-1,3)+1},i=function(e){return(e/=.5)<1?.5*Math.pow(e,3):.5*(Math.pow(e-2,3)+2)};e.views.Scroll=e.views.View.inherit({initialize:function(n){var i=this;for(var r in i.__container=n.el,i.__content=n.el.firstElementChild,setTimeout((function(){i.__container&&i.__content&&(i.__container.scrollTop=0,i.__content.scrollTop=0)})),i.options={scrollingX:!1,scrollbarX:!0,scrollingY:!0,scrollbarY:!0,startX:0,startY:0,wheelDampen:6,minScrollbarSizeX:5,minScrollbarSizeY:5,scrollbarsFade:!0,scrollbarFadeDelay:300,scrollbarResizeFadeDelay:1e3,animating:!0,animationDuration:250,decelVelocityThreshold:4,decelVelocityThresholdPaging:4,bouncing:!0,locking:!0,paging:!1,snapping:!1,zooming:!1,minZoom:.5,maxZoom:3,speedMultiplier:1,deceleration:.97,preventDefault:!1,scrollingComplete:t,penetrationDeceleration:.03,penetrationAcceleration:.08,scrollEventInterval:10,freeze:!1,getContentWidth:function(){return Math.max(i.__content.scrollWidth,i.__content.offsetWidth)},getContentHeight:function(){return Math.max(i.__content.scrollHeight,i.__content.offsetHeight+2*i.__content.offsetTop)}},n)i.options[r]=n[r];i.hintResize=e.debounce((function(){i.resize()}),1e3,!0),i.onScroll=function(){e.scroll.isScrolling?(clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)):setTimeout(i.setScrollStart,50)},i.freeze=function(e){return arguments.length&&(i.options.freeze=e),i.options.freeze},i.freezeShut=i.freeze,i.setScrollStart=function(){e.scroll.isScrolling=Math.abs(e.scroll.lastTop-i.__scrollTop)>1,clearTimeout(i.scrollTimer),i.scrollTimer=setTimeout(i.setScrollStop,80)},i.setScrollStop=function(){e.scroll.isScrolling=!1,e.scroll.lastTop=i.__scrollTop},i.triggerScrollEvent=e.throttle((function(){i.onScroll(),e.trigger("scroll",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})}),i.options.scrollEventInterval),i.triggerScrollEndEvent=function(){e.trigger("scrollend",{scrollTop:i.__scrollTop,scrollLeft:i.__scrollLeft,target:i.__container})},i.__scrollLeft=i.options.startX,i.__scrollTop=i.options.startY,i.__callback=i.getRenderFn(),i.__initEventHandlers(),i.__createScrollbars()},run:function(){this.resize(),this.__fadeScrollbars("out",this.options.scrollbarResizeFadeDelay)},__isSingleTouch:!1,__isTracking:!1,__didDecelerationComplete:!1,__isGesturing:!1,__isDragging:!1,__isDecelerating:!1,__isAnimating:!1,__clientLeft:0,__clientTop:0,__clientWidth:0,__clientHeight:0,__contentWidth:0,__contentHeight:0,__snapWidth:100,__snapHeight:100,__refreshHeight:null,__refreshActive:!1,__refreshActivate:null,__refreshDeactivate:null,__refreshStart:null,__zoomLevel:1,__scrollLeft:0,__scrollTop:0,__maxScrollLeft:0,__maxScrollTop:0,__scheduledLeft:0,__scheduledTop:0,__scheduledZoom:0,__lastTouchLeft:null,__lastTouchTop:null,__lastTouchMove:null,__positions:null,__minDecelerationScrollLeft:null,__minDecelerationScrollTop:null,__maxDecelerationScrollLeft:null,__maxDecelerationScrollTop:null,__decelerationVelocityX:null,__decelerationVelocityY:null,__transformProperty:null,__perspectiveProperty:null,__indicatorX:null,__indicatorY:null,__scrollbarFadeTimeout:null,__didWaitForSize:null,__sizerTimeout:null,__initEventHandlers:function(){var t,n=this,i=n.__container;function r(e){return e.touches&&e.touches.length?e.touches:[{pageX:e.pageX,pageY:e.pageY}]}if(n.scrollChildIntoView=function(r){var o=i.getBoundingClientRect().bottom;t=i.offsetHeight;var a=n.isShrunkForKeyboard,s=i.parentNode.classList.contains("modal")&&window.innerWidth>=680;if(!a){if(e.Platform.isIOS()||e.Platform.isFullScreen||s){var l=r.detail.viewportHeight-o,u=Math.max(0,r.detail.keyboardHeight-l);e.requestAnimationFrame((function(){t-=u,i.style.height=t+"px",i.style.overflow="visible",n.resize()}))}n.isShrunkForKeyboard=!0}r.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){i.scrollTop=0,n.isShrunkForKeyboard&&!a&&(o=i.getBoundingClientRect().bottom);var s=.5*t,l=(r.detail.elementBottom+r.detail.elementTop)/2-o+s;l>0&&(e.Platform.isIOS()&&e.tap.cloneFocusedInput(i,n),n.scrollBy(0,l,!0),n.onScroll())})),r.stopPropagation()},n.resetScrollView=function(){n.isShrunkForKeyboard&&(n.isShrunkForKeyboard=!1,i.style.height="",i.style.overflow=""),n.resize()},i.addEventListener("scrollChildIntoView",n.scrollChildIntoView),document.addEventListener("resetScrollView",n.resetScrollView),n.touchStart=function(t){n.startCoordinates=e.tap.pointerCoord(t),e.tap.ignoreScrollStart(t)||(n.__isDown=!0,e.tap.containsOrIsTextInput(t.target)||"SELECT"===t.target.tagName?n.__hasStarted=!1:(n.__isSelectable=!0,n.__enableScrollY=!0,n.__hasStarted=!0,n.doTouchStart(r(t),t.timeStamp),t.preventDefault()))},n.touchMove=function(t){if(!(n.options.freeze||!n.__isDown||!n.__isDown&&t.defaultPrevented||"TEXTAREA"===t.target.tagName&&t.target.parentElement.querySelector(":focus"))){if(!n.__hasStarted&&(e.tap.containsOrIsTextInput(t.target)||"SELECT"===t.target.tagName))return n.__hasStarted=!0,n.doTouchStart(r(t),t.timeStamp),void t.preventDefault();if(n.startCoordinates){var o=e.tap.pointerCoord(t);n.__isSelectable&&e.tap.isTextInput(t.target)&&Math.abs(n.startCoordinates.x-o.x)>20&&(n.__enableScrollY=!1,n.__isSelectable=!0),n.__enableScrollY&&Math.abs(n.startCoordinates.y-o.y)>10&&(n.__isSelectable=!1,e.tap.cloneFocusedInput(i,n))}n.doTouchMove(r(t),t.timeStamp,t.scale),n.__isDown=!0}},n.touchMoveBubble=function(e){n.__isDown&&n.options.preventDefault&&e.preventDefault()},n.touchEnd=function(t){n.__isDown&&(n.doTouchEnd(t,t.timeStamp),n.__isDown=!1,n.__hasStarted=!1,n.__isSelectable=!0,n.__enableScrollY=!0,n.__isDragging||n.__isDecelerating||n.__isAnimating||e.tap.removeClonedInputs(i,n))},n.mouseWheel=e.animationFrameThrottle((function(t){var i=e.DomUtil.getParentOrSelfWithClass(t.target,"ionic-scroll");n.options.freeze||i!==n.__container||(n.hintResize(),n.scrollBy((t.wheelDeltaX||t.deltaX||0)/n.options.wheelDampen,(-t.wheelDeltaY||t.deltaY||0)/n.options.wheelDampen),n.__fadeScrollbars("in"),clearTimeout(n.__wheelHideBarTimeout),n.__wheelHideBarTimeout=setTimeout((function(){n.__fadeScrollbars("out")}),100))})),"ontouchstart"in window)i.addEventListener("touchstart",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("touchmove",n.touchMoveBubble,!1),document.addEventListener("touchmove",n.touchMove,!1),document.addEventListener("touchend",n.touchEnd,!1),document.addEventListener("touchcancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else if(window.navigator.pointerEnabled)i.addEventListener("pointerdown",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("pointermove",n.touchMoveBubble,!1),document.addEventListener("pointermove",n.touchMove,!1),document.addEventListener("pointerup",n.touchEnd,!1),document.addEventListener("pointercancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else if(window.navigator.msPointerEnabled)i.addEventListener("MSPointerDown",n.touchStart,!1),n.options.preventDefault&&i.addEventListener("MSPointerMove",n.touchMoveBubble,!1),document.addEventListener("MSPointerMove",n.touchMove,!1),document.addEventListener("MSPointerUp",n.touchEnd,!1),document.addEventListener("MSPointerCancel",n.touchEnd,!1),document.addEventListener("wheel",n.mouseWheel,!1);else{var o=!1;n.mouseDown=function(t){e.tap.ignoreScrollStart(t)||"SELECT"===t.target.tagName||(n.doTouchStart(r(t),t.timeStamp),e.tap.isTextInput(t.target)||t.preventDefault(),o=!0)},n.mouseMove=function(e){n.options.freeze||!o||!o&&e.defaultPrevented||(n.doTouchMove(r(e),e.timeStamp),o=!0)},n.mouseMoveBubble=function(e){o&&n.options.preventDefault&&e.preventDefault()},n.mouseUp=function(e){o&&(n.doTouchEnd(e,e.timeStamp),o=!1)},i.addEventListener("mousedown",n.mouseDown,!1),n.options.preventDefault&&i.addEventListener("mousemove",n.mouseMoveBubble,!1),document.addEventListener("mousemove",n.mouseMove,!1),document.addEventListener("mouseup",n.mouseUp,!1),document.addEventListener("mousewheel",n.mouseWheel,!1),document.addEventListener("wheel",n.mouseWheel,!1)}},__cleanup:function(){var n=this.__container;n.removeEventListener("touchstart",this.touchStart),n.removeEventListener("touchmove",this.touchMoveBubble),document.removeEventListener("touchmove",this.touchMove),document.removeEventListener("touchend",this.touchEnd),document.removeEventListener("touchcancel",this.touchEnd),n.removeEventListener("pointerdown",this.touchStart),n.removeEventListener("pointermove",this.touchMoveBubble),document.removeEventListener("pointermove",this.touchMove),document.removeEventListener("pointerup",this.touchEnd),document.removeEventListener("pointercancel",this.touchEnd),n.removeEventListener("MSPointerDown",this.touchStart),n.removeEventListener("MSPointerMove",this.touchMoveBubble),document.removeEventListener("MSPointerMove",this.touchMove),document.removeEventListener("MSPointerUp",this.touchEnd),document.removeEventListener("MSPointerCancel",this.touchEnd),n.removeEventListener("mousedown",this.mouseDown),n.removeEventListener("mousemove",this.mouseMoveBubble),document.removeEventListener("mousemove",this.mouseMove),document.removeEventListener("mouseup",this.mouseUp),document.removeEventListener("mousewheel",this.mouseWheel),document.removeEventListener("wheel",this.mouseWheel),n.removeEventListener("scrollChildIntoView",this.scrollChildIntoView),document.removeEventListener("resetScrollView",this.resetScrollView),e.tap.removeClonedInputs(n,this),delete this.__container,delete this.__content,delete this.__indicatorX,delete this.__indicatorY,delete this.options.el,this.__callback=this.scrollChildIntoView=this.resetScrollView=t,this.mouseMove=this.mouseDown=this.mouseUp=this.mouseWheel=this.touchStart=this.touchMove=this.touchEnd=this.touchCancel=t,this.resize=this.scrollTo=this.zoomTo=this.__scrollingComplete=t,n=null},__createScrollbar:function(e){var t=document.createElement("div"),n=document.createElement("div");return n.className="scroll-bar-indicator scroll-bar-fade-out",t.className="h"==e?"scroll-bar scroll-bar-h":"scroll-bar scroll-bar-v",t.appendChild(n),t},__createScrollbars:function(){var e,t;this.options.scrollingX&&((e={el:this.__createScrollbar("h"),sizeRatio:1}).indicator=e.el.children[0],this.options.scrollbarX&&this.__container.appendChild(e.el),this.__indicatorX=e),this.options.scrollingY&&((t={el:this.__createScrollbar("v"),sizeRatio:1}).indicator=t.el.children[0],this.options.scrollbarY&&this.__container.appendChild(t.el),this.__indicatorY=t)},__resizeScrollbars:function(){var t=this;if(t.__indicatorX){var n=Math.max(Math.round(t.__clientWidth*t.__clientWidth/t.__contentWidth),20);n>t.__contentWidth&&(n=0),n!==t.__indicatorX.size&&e.requestAnimationFrame((function(){t.__indicatorX.indicator.style.width=n+"px"})),t.__indicatorX.size=n,t.__indicatorX.minScale=t.options.minScrollbarSizeX/n,t.__indicatorX.maxPos=t.__clientWidth-n,t.__indicatorX.sizeRatio=t.__maxScrollLeft?t.__indicatorX.maxPos/t.__maxScrollLeft:1}if(t.__indicatorY){var i=Math.max(Math.round(t.__clientHeight*t.__clientHeight/t.__contentHeight),20);i>t.__contentHeight&&(i=0),i!==t.__indicatorY.size&&e.requestAnimationFrame((function(){t.__indicatorY&&(t.__indicatorY.indicator.style.height=i+"px")})),t.__indicatorY.size=i,t.__indicatorY.minScale=t.options.minScrollbarSizeY/i,t.__indicatorY.maxPos=t.__clientHeight-i,t.__indicatorY.sizeRatio=t.__maxScrollTop?t.__indicatorY.maxPos/t.__maxScrollTop:1}},__repositionScrollbars:function(){var e,t,n,i,r,o,a=0,s=0;if(this.__indicatorX){this.__indicatorY&&(a=10),r=Math.round(this.__indicatorX.sizeRatio*this.__scrollLeft)||0,n=this.__scrollLeft-(this.__maxScrollLeft-a),this.__scrollLeft<0?(t=Math.max(this.__indicatorX.minScale,(this.__indicatorX.size-Math.abs(this.__scrollLeft))/this.__indicatorX.size),r=0,this.__indicatorX.indicator.style[this.__transformOriginProperty]="left center"):n>0?(t=Math.max(this.__indicatorX.minScale,(this.__indicatorX.size-n)/this.__indicatorX.size),r=this.__indicatorX.maxPos-a,this.__indicatorX.indicator.style[this.__transformOriginProperty]="right center"):(r=Math.min(this.__maxScrollLeft,Math.max(0,r)),t=1);var l="translate3d("+r+"px, 0, 0) scaleX("+t+")";this.__indicatorX.transformProp!==l&&(this.__indicatorX.indicator.style[this.__transformProperty]=l,this.__indicatorX.transformProp=l)}if(this.__indicatorY){o=Math.round(this.__indicatorY.sizeRatio*this.__scrollTop)||0,this.__indicatorX&&(s=10),i=this.__scrollTop-(this.__maxScrollTop-s),this.__scrollTop<0?(e=Math.max(this.__indicatorY.minScale,(this.__indicatorY.size-Math.abs(this.__scrollTop))/this.__indicatorY.size),o=0,"center top"!==this.__indicatorY.originProp&&(this.__indicatorY.indicator.style[this.__transformOriginProperty]="center top",this.__indicatorY.originProp="center top")):i>0?(e=Math.max(this.__indicatorY.minScale,(this.__indicatorY.size-i)/this.__indicatorY.size),o=this.__indicatorY.maxPos-s,"center bottom"!==this.__indicatorY.originProp&&(this.__indicatorY.indicator.style[this.__transformOriginProperty]="center bottom",this.__indicatorY.originProp="center bottom")):(o=Math.min(this.__maxScrollTop,Math.max(0,o)),e=1);var u="translate3d(0,"+o+"px, 0) scaleY("+e+")";this.__indicatorY.transformProp!==u&&(this.__indicatorY.indicator.style[this.__transformProperty]=u,this.__indicatorY.transformProp=u)}},__fadeScrollbars:function(e,t){var n=this;if(n.options.scrollbarsFade){var i="scroll-bar-fade-out";!0===n.options.scrollbarsFade&&(clearTimeout(n.__scrollbarFadeTimeout),"in"==e?(n.__indicatorX&&n.__indicatorX.indicator.classList.remove(i),n.__indicatorY&&n.__indicatorY.indicator.classList.remove(i)):n.__scrollbarFadeTimeout=setTimeout((function(){n.__indicatorX&&n.__indicatorX.indicator.classList.add(i),n.__indicatorY&&n.__indicatorY.indicator.classList.add(i)}),t||n.options.scrollbarFadeDelay))}},__scrollingComplete:function(){this.options.scrollingComplete(),e.tap.removeClonedInputs(this.__container,this),this.__fadeScrollbars("out")},resize:function(e){this.__container&&this.options&&this.setDimensions(this.__container.clientWidth,this.__container.clientHeight,this.options.getContentWidth(),this.options.getContentHeight(),e)},getRenderFn:function(){var e,t=this,n=t.__content,i=document.documentElement.style;"MozAppearance"in i?e="gecko":"WebkitAppearance"in i?e="webkit":"string"==typeof navigator.cpuClass&&(e="trident");var r={trident:"ms",gecko:"Moz",webkit:"Webkit",presto:"O"}[e],o=document.createElement("div"),a=r+"Perspective",s=r+"Transform",l=r+"TransformOrigin";return t.__perspectiveProperty=s,t.__transformProperty=s,t.__transformOriginProperty=l,void 0!==o.style[a]?function(e,i,r,o){var a="translate3d("+-e+"px,"+-i+"px,0) scale("+r+")";a!==t.contentTransform&&(n.style[s]=a,t.contentTransform=a),t.__repositionScrollbars(),o||t.triggerScrollEvent()}:void 0!==o.style[s]?function(e,i,r,o){n.style[s]="translate("+-e+"px,"+-i+"px) scale("+r+")",t.__repositionScrollbars(),o||t.triggerScrollEvent()}:function(e,i,r,o){n.style.marginLeft=e?-e/r+"px":"",n.style.marginTop=i?-i/r+"px":"",n.style.zoom=r||"",t.__repositionScrollbars(),o||t.triggerScrollEvent()}},setDimensions:function(e,t,n,i,r){(e||t||n||i)&&(e===+e&&(this.__clientWidth=e),t===+t&&(this.__clientHeight=t),n===+n&&(this.__contentWidth=n),i===+i&&(this.__contentHeight=i),this.__computeScrollMax(),this.__resizeScrollbars(),r||this.scrollTo(this.__scrollLeft,this.__scrollTop,!0,null,!0))},setPosition:function(e,t){this.__clientLeft=e||0,this.__clientTop=t||0},setSnapSize:function(e,t){this.__snapWidth=e,this.__snapHeight=t},activatePullToRefresh:function(t,n){this.__refreshHeight=t,this.__refreshActivate=function(){e.requestAnimationFrame(n.activate)},this.__refreshDeactivate=function(){e.requestAnimationFrame(n.deactivate)},this.__refreshStart=function(){e.requestAnimationFrame(n.start)},this.__refreshShow=function(){e.requestAnimationFrame(n.show)},this.__refreshHide=function(){e.requestAnimationFrame(n.hide)},this.__refreshTail=function(){e.requestAnimationFrame(n.tail)},this.__refreshTailTime=100,this.__minSpinTime=600},triggerPullToRefresh:function(){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var e=new Date;this.refreshStartTime=e.getTime(),this.__refreshStart&&this.__refreshStart()},finishPullToRefresh:function(){var e=this,t=new Date,n=0;e.refreshStartTime+e.__minSpinTime>t.getTime()&&(n=e.refreshStartTime+e.__minSpinTime-t.getTime()),setTimeout((function(){e.__refreshTail&&e.__refreshTail(),setTimeout((function(){e.__refreshActive=!1,e.__refreshDeactivate&&e.__refreshDeactivate(),e.__refreshHide&&e.__refreshHide(),e.scrollTo(e.__scrollLeft,e.__scrollTop,!0)}),e.__refreshTailTime)}),n)},getValues:function(){return{left:this.__scrollLeft,top:this.__scrollTop,zoom:this.__zoomLevel}},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},zoomTo:function(e,t,n,i){if(!this.options.zooming)throw new Error("Zooming is not enabled!");this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1);var r=this.__zoomLevel;null==n&&(n=this.__clientWidth/2),null==i&&(i=this.__clientHeight/2),e=Math.max(Math.min(e,this.options.maxZoom),this.options.minZoom),this.__computeScrollMax(e);var o=(n+this.__scrollLeft)*e/r-n,a=(i+this.__scrollTop)*e/r-i;o>this.__maxScrollLeft?o=this.__maxScrollLeft:o<0&&(o=0),a>this.__maxScrollTop?a=this.__maxScrollTop:a<0&&(a=0),this.__publish(o,a,e,t)},zoomBy:function(e,t,n,i){this.zoomTo(this.__zoomLevel*e,t,n,i)},scrollTo:function(e,t,n,i,r){if(this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1),null!=i&&i!==this.__zoomLevel){if(!this.options.zooming)throw new Error("Zooming is not enabled!");e*=i,t*=i,this.__computeScrollMax(i)}else i=this.__zoomLevel;this.options.scrollingX?this.options.paging?e=Math.round(e/this.__clientWidth)*this.__clientWidth:this.options.snapping&&(e=Math.round(e/this.__snapWidth)*this.__snapWidth):e=this.__scrollLeft,this.options.scrollingY?this.options.paging?t=Math.round(t/this.__clientHeight)*this.__clientHeight:this.options.snapping&&(t=Math.round(t/this.__snapHeight)*this.__snapHeight):t=this.__scrollTop,e=Math.max(Math.min(this.__maxScrollLeft,e),0),t=Math.max(Math.min(this.__maxScrollTop,t),0),e===this.__scrollLeft&&t===this.__scrollTop&&(n=!1),this.__publish(e,t,i,n,r)},scrollBy:function(e,t,n){var i=this.__isAnimating?this.__scheduledLeft:this.__scrollLeft,r=this.__isAnimating?this.__scheduledTop:this.__scrollTop;this.scrollTo(i+(e||0),r+(t||0),n)},doMouseZoom:function(e,t,n,i){var r=e>0?.97:1.03;return this.zoomTo(this.__zoomLevel*r,!1,n-this.__clientLeft,i-this.__clientTop)},doTouchStart:function(e,t){var n,i;this.__decStopped=!(!this.__isDecelerating&&!this.__isAnimating),this.hintResize(),t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),this.__interruptedAnimation=!0,this.__isDecelerating&&(ee.effect.Animate.stop(this.__isDecelerating),this.__isDecelerating=!1,this.__interruptedAnimation=!0),this.__isAnimating&&(ee.effect.Animate.stop(this.__isAnimating),this.__isAnimating=!1,this.__interruptedAnimation=!0);var r=1===e.length;r?(n=e[0].pageX,i=e[0].pageY):(n=Math.abs(e[0].pageX+e[1].pageX)/2,i=Math.abs(e[0].pageY+e[1].pageY)/2),this.__initialTouchLeft=n,this.__initialTouchTop=i,this.__initialTouches=e,this.__zoomLevelStart=this.__zoomLevel,this.__lastTouchLeft=n,this.__lastTouchTop=i,this.__lastTouchMove=t,this.__lastScale=1,this.__enableScrollX=!r&&this.options.scrollingX,this.__enableScrollY=!r&&this.options.scrollingY,this.__isTracking=!0,this.__didDecelerationComplete=!1,this.__isDragging=!r,this.__isSingleTouch=r,this.__positions=[]},doTouchMove:function(e,t,n){if(t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),this.__isTracking){var i,r;2===e.length?(i=Math.abs(e[0].pageX+e[1].pageX)/2,r=Math.abs(e[0].pageY+e[1].pageY)/2,!n&&this.options.zooming&&(n=this.__getScale(this.__initialTouches,e))):(i=e[0].pageX,r=e[0].pageY);var o=this.__positions;if(this.__isDragging){this.__decStopped=!1;var a=i-this.__lastTouchLeft,s=r-this.__lastTouchTop,l=this.__scrollLeft,u=this.__scrollTop,c=this.__zoomLevel;if(null!=n&&this.options.zooming){var d=c;if(c=c/this.__lastScale*n,d!==(c=Math.max(Math.min(c,this.options.maxZoom),this.options.minZoom))){var h=i-this.__clientLeft,f=r-this.__clientTop;l=(h+l)*c/d-h,u=(f+u)*c/d-f,this.__computeScrollMax(c)}}if(this.__enableScrollX){l-=a*this.options.speedMultiplier;var p=this.__maxScrollLeft;(l>p||l<0)&&(this.options.bouncing?l+=a/2*this.options.speedMultiplier:l=l>p?p:0)}if(this.__enableScrollY){u-=s*this.options.speedMultiplier;var m=this.__maxScrollTop;u>m||u<0?this.options.bouncing||this.__refreshHeight&&u<0?(u+=s/2*this.options.speedMultiplier,this.__enableScrollX||null==this.__refreshHeight||(u<0?(this.__refreshHidden=!1,this.__refreshShow()):(this.__refreshHide(),this.__refreshHidden=!0),!this.__refreshActive&&u<=-this.__refreshHeight?(this.__refreshActive=!0,this.__refreshActivate&&this.__refreshActivate()):this.__refreshActive&&u>-this.__refreshHeight&&(this.__refreshActive=!1,this.__refreshDeactivate&&this.__refreshDeactivate()))):u=u>m?m:0:this.__refreshHeight&&!this.__refreshHidden&&(this.__refreshHide(),this.__refreshHidden=!0)}o.length>60&&o.splice(0,30),o.push(l,u,t),this.__publish(l,u,c)}else{var g=this.options.locking?3:0,v=Math.abs(i-this.__initialTouchLeft),_=Math.abs(r-this.__initialTouchTop);this.__enableScrollX=this.options.scrollingX&&v>=g,this.__enableScrollY=this.options.scrollingY&&_>=g,o.push(this.__scrollLeft,this.__scrollTop,t),this.__isDragging=(this.__enableScrollX||this.__enableScrollY)&&(v>=5||_>=5),this.__isDragging&&(this.__interruptedAnimation=!1,this.__fadeScrollbars("in"))}this.__lastTouchLeft=i,this.__lastTouchTop=r,this.__lastTouchMove=t,this.__lastScale=n}},doTouchEnd:function(t,n){if(n instanceof Date&&(n=n.valueOf()),"number"!=typeof n&&(n=Date.now()),this.__isTracking){if(this.__isTracking=!1,this.__isDragging)if(this.__isDragging=!1,this.__isSingleTouch&&this.options.animating&&n-this.__lastTouchMove<=100){for(var i=this.__positions,r=i.length-1,o=r,a=r;a>0&&i[a]>this.__lastTouchMove-100;a-=3)o=a;if(o!==r){var s=i[r]-i[o],l=this.__scrollLeft-i[o-2],u=this.__scrollTop-i[o-1];this.__decelerationVelocityX=l/s*(1e3/60),this.__decelerationVelocityY=u/s*(1e3/60);var c=this.options.paging||this.options.snapping?this.options.decelVelocityThresholdPaging:this.options.decelVelocityThreshold;(Math.abs(this.__decelerationVelocityX)>c||Math.abs(this.__decelerationVelocityY)>c)&&(this.__refreshActive||this.__startDeceleration(n))}else this.__scrollingComplete()}else n-this.__lastTouchMove>100&&this.__scrollingComplete();else this.__decStopped&&(t.isTapHandled=!0,this.__decStopped=!1);if(!this.__isDecelerating)if(this.__refreshActive&&this.__refreshStart){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var d=new Date;this.refreshStartTime=d.getTime(),this.__refreshStart&&this.__refreshStart(),e.Platform.isAndroid()||this.__startDeceleration()}else(this.__interruptedAnimation||this.__isDragging)&&this.__scrollingComplete(),this.scrollTo(this.__scrollLeft,this.__scrollTop,!0,this.__zoomLevel),this.__refreshActive&&(this.__refreshActive=!1,this.__refreshDeactivate&&this.__refreshDeactivate());this.__positions.length=0}},__publish:function(e,t,r,o,a){var s=this,l=s.__isAnimating;if(l&&(ee.effect.Animate.stop(l),s.__isAnimating=!1),o&&s.options.animating){s.__scheduledLeft=e,s.__scheduledTop=t,s.__scheduledZoom=r;var u=s.__scrollLeft,c=s.__scrollTop,d=s.__zoomLevel,h=e-u,f=t-c,p=r-d;s.__isAnimating=ee.effect.Animate.start((function(e,t,n){n&&(s.__scrollLeft=u+h*e,s.__scrollTop=c+f*e,s.__zoomLevel=d+p*e,s.__callback&&s.__callback(s.__scrollLeft,s.__scrollTop,s.__zoomLevel,a))}),(function(e){return s.__isAnimating===e}),(function(e,t,n){t===s.__isAnimating&&(s.__isAnimating=!1),(s.__didDecelerationComplete||n)&&s.__scrollingComplete(),s.options.zooming&&s.__computeScrollMax()}),s.options.animationDuration,l?n:i)}else s.__scheduledLeft=s.__scrollLeft=e,s.__scheduledTop=s.__scrollTop=t,s.__scheduledZoom=s.__zoomLevel=r,s.__callback&&s.__callback(e,t,r,a),s.options.zooming&&s.__computeScrollMax()},__computeScrollMax:function(e){null==e&&(e=this.__zoomLevel),this.__maxScrollLeft=Math.max(this.__contentWidth*e-this.__clientWidth,0),this.__maxScrollTop=Math.max(this.__contentHeight*e-this.__clientHeight,0),this.__didWaitForSize||this.__maxScrollLeft||this.__maxScrollTop||(this.__didWaitForSize=!0,this.__waitForSize())},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__startDeceleration:function(){var e=this;if(e.options.paging){var t=Math.max(Math.min(e.__scrollLeft,e.__maxScrollLeft),0),n=Math.max(Math.min(e.__scrollTop,e.__maxScrollTop),0),i=e.__clientWidth,r=e.__clientHeight;e.__minDecelerationScrollLeft=Math.floor(t/i)*i,e.__minDecelerationScrollTop=Math.floor(n/r)*r,e.__maxDecelerationScrollLeft=Math.ceil(t/i)*i,e.__maxDecelerationScrollTop=Math.ceil(n/r)*r}else e.__minDecelerationScrollLeft=0,e.__minDecelerationScrollTop=0,e.__maxDecelerationScrollLeft=e.__maxScrollLeft,e.__maxDecelerationScrollTop=e.__maxScrollTop,e.__refreshActive&&(e.__minDecelerationScrollTop=-1*e.__refreshHeight);e.__minVelocityToKeepDecelerating=e.options.snapping?4:.1,e.__isDecelerating=ee.effect.Animate.start((function(t,n,i){e.__stepThroughDeceleration(i)}),(function(){var t=Math.abs(e.__decelerationVelocityX)>=e.__minVelocityToKeepDecelerating||Math.abs(e.__decelerationVelocityY)>=e.__minVelocityToKeepDecelerating;return t||(e.__didDecelerationComplete=!0,e.options.bouncing&&!e.__refreshActive&&e.scrollTo(Math.min(Math.max(e.__scrollLeft,0),e.__maxScrollLeft),Math.min(Math.max(e.__scrollTop,0),e.__maxScrollTop),e.__refreshActive)),t}),(function(){e.__isDecelerating=!1,e.__didDecelerationComplete&&e.__scrollingComplete(),e.options.paging&&e.scrollTo(e.__scrollLeft,e.__scrollTop,e.options.snapping)}))},__stepThroughDeceleration:function(e){var t=this.__scrollLeft+this.__decelerationVelocityX,n=this.__scrollTop+this.__decelerationVelocityY;if(!this.options.bouncing){var i=Math.max(Math.min(this.__maxDecelerationScrollLeft,t),this.__minDecelerationScrollLeft);i!==t&&(t=i,this.__decelerationVelocityX=0);var r=Math.max(Math.min(this.__maxDecelerationScrollTop,n),this.__minDecelerationScrollTop);r!==n&&(n=r,this.__decelerationVelocityY=0)}if(e?this.__publish(t,n,this.__zoomLevel):(this.__scrollLeft=t,this.__scrollTop=n),!this.options.paging){var o=this.options.deceleration;this.__decelerationVelocityX*=o,this.__decelerationVelocityY*=o}if(this.options.bouncing){var a=0,s=0,l=this.options.penetrationDeceleration,u=this.options.penetrationAcceleration;if(t<this.__minDecelerationScrollLeft?a=this.__minDecelerationScrollLeft-t:t>this.__maxDecelerationScrollLeft&&(a=this.__maxDecelerationScrollLeft-t),n<this.__minDecelerationScrollTop?s=this.__minDecelerationScrollTop-n:n>this.__maxDecelerationScrollTop&&(s=this.__maxDecelerationScrollTop-n),0!==a){var c=a*this.__decelerationVelocityX<=this.__minDecelerationScrollLeft;c&&(this.__decelerationVelocityX+=a*l);var d=Math.abs(this.__decelerationVelocityX)<=this.__minVelocityToKeepDecelerating;c&&!d||(this.__decelerationVelocityX=a*u)}if(0!==s){var h=s*this.__decelerationVelocityY<=this.__minDecelerationScrollTop;h&&(this.__decelerationVelocityY+=s*l);var f=Math.abs(this.__decelerationVelocityY)<=this.__minVelocityToKeepDecelerating;h&&!f||(this.__decelerationVelocityY=s*u)}}},__getDistance:function(e,t){var n=t.pageX-e.pageX,i=t.pageY-e.pageY;return Math.sqrt(n*n+i*i)},__getScale:function(e,t){return e.length>=2&&t.length>=2?this.__getDistance(t[0],t[1])/this.__getDistance(e[0],e[1]):1}}),e.scroll={isScrolling:!1,lastTop:0}}(ionic),function(e){var t=function(){};e.views.ScrollNative=e.views.View.inherit({initialize:function(t){var n=this;for(var i in n.__container=n.el=t.el,n.__content=t.el.firstElementChild,n.__frozen=!1,n.isNative=!0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft,n.__clientHeight=n.__content.clientHeight,n.__clientWidth=n.__content.clientWidth,n.__maxScrollTop=Math.max(n.__contentHeight-n.__clientHeight,0),n.__maxScrollLeft=Math.max(n.__contentWidth-n.__clientWidth,0),(t.startY>=0||t.startX>=0)&&e.requestAnimationFrame((function(){n.__originalContainerHeight=n.el.getBoundingClientRect().height,n.el.scrollTop=t.startY||0,n.el.scrollLeft=t.startX||0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft})),n.options={freeze:!1,getContentWidth:function(){return Math.max(n.__content.scrollWidth,n.__content.offsetWidth)},getContentHeight:function(){return Math.max(n.__content.scrollHeight,n.__content.offsetHeight+2*n.__content.offsetTop)}},t)n.options[i]=t[i];n.onScroll=function(){e.scroll.isScrolling||(e.scroll.isScrolling=!0),clearTimeout(n.scrollTimer),n.scrollTimer=setTimeout((function(){e.scroll.isScrolling=!1}),80)},n.freeze=function(e){n.__frozen=e},n.freezeShut=function(e){n.__frozenShut=e},n.__initEventHandlers()},__callback:function(){},zoomTo:function(){},zoomBy:function(){},activatePullToRefresh:function(){},resize:function(e){this.__container&&this.options&&this.setDimensions(this.__container.clientWidth,this.__container.clientHeight,this.options.getContentWidth(),this.options.getContentHeight(),e)},run:function(){this.resize()},getValues:function(){return this.update(),{left:this.__scrollLeft,top:this.__scrollTop,zoom:1}},update:function(){this.__scrollLeft=this.el.scrollLeft,this.__scrollTop=this.el.scrollTop},setDimensions:function(e,t,n,i){(e||t||n||i)&&(e===+e&&(this.__clientWidth=e),t===+t&&(this.__clientHeight=t),n===+n&&(this.__contentWidth=n),i===+i&&(this.__contentHeight=i),this.__computeScrollMax())},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},scrollBy:function(e,t,n){this.update();var i=this.__isAnimating?this.__scheduledLeft:this.__scrollLeft,r=this.__isAnimating?this.__scheduledTop:this.__scrollTop;this.scrollTo(i+(e||0),r+(t||0),n)},scrollTo:function(t,n,i){var r=this;if(!i)return r.el.scrollTop=n,r.el.scrollLeft=t,void r.resize();var o=r.el.style.overflowX,a=r.el.style.overflowY;clearTimeout(r.__scrollToCleanupTimeout),r.__scrollToCleanupTimeout=setTimeout((function(){r.el.style.overflowX=o,r.el.style.overflowY=a}),500),r.el.style.overflowY="hidden",r.el.style.overflowX="hidden",function(t,n){var i=Date.now(),s=r.el.scrollTop,l=r.el.scrollLeft;if(s===t&&l===n)return r.el.style.overflowX=o,r.el.style.overflowY=a,void r.resize();e.requestAnimationFrame((function u(){var c=Date.now(),d=Math.min(1,(c-i)/250),h=function(e){return--e*e*e+1}(d);s!=t&&(r.el.scrollTop=parseInt(h*(t-s)+s,10)),l!=n&&(r.el.scrollLeft=parseInt(h*(n-l)+l,10)),d<1?e.requestAnimationFrame(u):(e.tap.removeClonedInputs(r.__container,r),r.el.style.overflowX=o,r.el.style.overflowY=a,r.resize())}))}(n,t)},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__computeScrollMax:function(){this.__maxScrollLeft=Math.max(this.__contentWidth-this.__clientWidth,0),this.__maxScrollTop=Math.max(this.__contentHeight-this.__clientHeight,0),this.__didWaitForSize||this.__maxScrollLeft||this.__maxScrollTop||(this.__didWaitForSize=!0,this.__waitForSize())},__initEventHandlers:function(){var t,n,i=this,r=i.__container;i.scrollChildIntoView=function(o){var a=r.getBoundingClientRect();i.__originalContainerHeight||(i.__originalContainerHeight=a.height),t=i.__originalContainerHeight;var s=i.isShrunkForKeyboard,l=r.parentNode.classList.contains("modal"),u=r.parentNode.classList.contains("popover"),c=l&&window.innerWidth>=680,d=n&&n!==o.detail.keyboardHeight;s&&!d||(!u&&(e.Platform.isIOS()||e.Platform.isFullScreen||c)&&e.requestAnimationFrame((function(){t=Math.max(0,Math.min(i.__originalContainerHeight,i.__originalContainerHeight-(o.detail.keyboardHeight-43))),r.style.height=t+"px",r.classList.add("keyboard-up"),i.resize()})),i.isShrunkForKeyboard=!0),n=o.detail.keyboardHeight,o.detail.isElementUnderKeyboard&&e.requestAnimationFrame((function(){var t=e.DomUtil.getOffsetTop(o.detail.target);setTimeout((function(){e.Platform.isIOS()&&e.tap.cloneFocusedInput(r,i),i.scrollTo(0,t-(a.top+100),!0),i.onScroll()}),32)})),o.stopPropagation()},i.resetScrollView=function(){i.isShrunkForKeyboard&&(i.isShrunkForKeyboard=!1,r.style.height="",i.__originalContainerHeight=r.getBoundingClientRect().height,e.Platform.isIOS()&&e.requestAnimationFrame((function(){r.classList.remove("keyboard-up")}))),i.resize()},i.handleTouchMove=function(e){return i.__frozenShut?(e.preventDefault(),e.stopPropagation(),!1):!i.__frozen||(e.preventDefault(),!1)},r.addEventListener("scroll",i.onScroll),r.addEventListener("scrollChildIntoView",i.scrollChildIntoView),r.addEventListener(e.EVENTS.touchstart,i.handleTouchMove),r.addEventListener(e.EVENTS.touchmove,i.handleTouchMove),document.addEventListener("resetScrollView",i.resetScrollView)},__cleanup:function(){var n=this.__container;n.removeEventListener("scroll",this.onScroll),n.removeEventListener("scrollChildIntoView",this.scrollChildIntoView),n.removeEventListener(e.EVENTS.touchstart,this.handleTouchMove),n.removeEventListener(e.EVENTS.touchmove,this.handleTouchMove),document.removeEventListener("resetScrollView",this.resetScrollView),e.tap.removeClonedInputs(n,this),delete this.__container,delete this.__content,delete this.__indicatorX,delete this.__indicatorY,delete this.options.el,this.resize=this.scrollTo=this.onScroll=this.resetScrollView=t,this.scrollChildIntoView=t,n=null}})}(ionic),function(e){"use strict";var t=function(){};t.prototype={start:function(){},drag:function(){},end:function(){},isSameItem:function(){return!1}};var n=function(e){this.dragThresholdX=e.dragThresholdX||10,this.el=e.el,this.item=e.item,this.canSwipe=e.canSwipe};(n.prototype=new t).start=function(t){var n,i,r,o;this.canSwipe()&&(n=t.target.classList.contains("item-content")?t.target:t.target.classList.contains("item")?t.target.querySelector(".item-content"):e.DomUtil.getParentWithClass(t.target,"item-content"))&&(n.classList.remove("item-sliding"),r=parseFloat(n.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])||0,(i=n.parentNode.querySelector(".item-options"))&&(i.classList.remove("invisible"),o=i.offsetWidth,this._currentDrag={buttons:i,buttonsWidth:o,content:n,startOffsetX:r}))},n.prototype.isSameItem=function(e){return!(!e._lastDrag||!this._currentDrag)&&this._currentDrag.content==e._lastDrag.content},n.prototype.clean=function(t){var n=this._lastDrag;function i(){n.buttons&&n.buttons.classList.add("invisible")}n&&n.content&&(n.content.style[e.CSS.TRANSITION]="",n.content.style[e.CSS.TRANSFORM]="",t?(n.content.style[e.CSS.TRANSITION]="none",i(),e.requestAnimationFrame((function(){n.content.style[e.CSS.TRANSITION]=""}))):e.requestAnimationFrame((function(){setTimeout(i,250)})))},n.prototype.drag=e.animationFrameThrottle((function(t){var n;if(this._currentDrag&&(!this._isDragging&&(Math.abs(t.gesture.deltaX)>this.dragThresholdX||Math.abs(this._currentDrag.startOffsetX)>0)&&(this._isDragging=!0),this._isDragging)){n=this._currentDrag.buttonsWidth;var i=Math.min(0,this._currentDrag.startOffsetX+t.gesture.deltaX);i<-n&&(i=Math.min(-n,-n+.4*(t.gesture.deltaX+n))),this._currentDrag.content.$$ionicOptionsOpen=0!==i,this._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+i+"px, 0, 0)",this._currentDrag.content.style[e.CSS.TRANSITION]="none"}})),n.prototype.end=function(t,n){var i=this;if(i._currentDrag){var r=-i._currentDrag.buttonsWidth;t.gesture.deltaX>-i._currentDrag.buttonsWidth/2&&("left"==t.gesture.direction&&Math.abs(t.gesture.velocityX)<.3?r=0:"right"==t.gesture.direction&&(r=0)),e.requestAnimationFrame((function(){if(0===r){i._currentDrag.content.style[e.CSS.TRANSFORM]="";var t=i._currentDrag.buttons;setTimeout((function(){t&&t.classList.add("invisible")}),250)}else i._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+r+"px,0,0)";i._currentDrag.content.style[e.CSS.TRANSITION]="",i._lastDrag||(i._lastDrag={}),e.extend(i._lastDrag,i._currentDrag),i._currentDrag&&(i._currentDrag.buttons=null,i._currentDrag.content=null),i._currentDrag=null,n&&n()}))}else n&&n()};var i=function(e){if(this.dragThresholdY=e.dragThresholdY||0,this.onReorder=e.onReorder,this.listEl=e.listEl,this.el=this.item=e.el,this.scrollEl=e.scrollEl,this.scrollView=e.scrollView,this.listElTrueTop=0,this.listEl.offsetParent){var t=this.listEl;do{this.listElTrueTop+=t.offsetTop,t=t.offsetParent}while(t)}};(i.prototype=new t)._moveElement=function(t){var n=t.gesture.center.pageY+this.scrollView.getValues().top-this._currentDrag.elementHeight/2-this.listElTrueTop;this.el.style[e.CSS.TRANSFORM]="translate3d(0, "+n+"px, 0)"},i.prototype.deregister=function(){this.listEl=this.el=this.scrollEl=this.scrollView=null},i.prototype.start=function(t){var n=e.DomUtil.getChildIndex(this.el,this.el.nodeName.toLowerCase()),i=this.el.scrollHeight,r=this.el.cloneNode(!0);r.classList.add("item-placeholder"),this.el.parentNode.insertBefore(r,this.el),this.el.classList.add("item-reordering"),this._currentDrag={elementHeight:i,startIndex:n,placeholder:r,scrollHeight:scroll,list:r.parentNode},this._moveElement(t)},i.prototype.drag=e.animationFrameThrottle((function(t){var n=this;if(this._currentDrag){var i=0,r=t.gesture.center.pageY,o=this.listElTrueTop;if(this.scrollView){var a=this.scrollView.__container;i=this.scrollView.getValues().top;var s=a.offsetTop,l=s-r+this._currentDrag.elementHeight/2,u=r+this._currentDrag.elementHeight/2-s-a.offsetHeight;t.gesture.deltaY<0&&l>0&&i>0&&(this.scrollView.scrollBy(null,-l),e.requestAnimationFrame((function(){n.drag(t)}))),t.gesture.deltaY>0&&u>0&&i<this.scrollView.getScrollMax().top&&(this.scrollView.scrollBy(null,u),e.requestAnimationFrame((function(){n.drag(t)})))}!this._isDragging&&Math.abs(t.gesture.deltaY)>this.dragThresholdY&&(this._isDragging=!0),this._isDragging&&(this._moveElement(t),this._currentDrag.currentY=i+r-o)}})),i.prototype._getReorderIndex=function(){for(var e,t=this,n=Array.prototype.slice.call(t._currentDrag.placeholder.parentNode.children).filter((function(e){return e.nodeName===t.el.nodeName&&e!==t.el})),i=t._currentDrag.currentY,r=0,o=n.length;r<o;r++)if(e=n[r],r===o-1){if(i>e.offsetTop)return r}else if(0===r){if(i<e.offsetTop+e.offsetHeight)return r}else if(i>e.offsetTop-e.offsetHeight/2&&i<e.offsetTop+e.offsetHeight)return r;return t._currentDrag.startIndex},i.prototype.end=function(t,n){if(this._currentDrag){var i=this._currentDrag.placeholder,r=this._getReorderIndex();this.el.classList.remove("item-reordering"),this.el.style[e.CSS.TRANSFORM]="",i.parentNode.insertBefore(this.el,i),i.parentNode.removeChild(i),this.onReorder&&this.onReorder(this.el,this._currentDrag.startIndex,r),this._currentDrag={placeholder:null,content:null},this._currentDrag=null,n&&n()}else n&&n()},e.views.ListView=e.views.View.inherit({initialize:function(t){var n=this;t=e.extend({onReorder:function(){},virtualRemoveThreshold:-200,virtualAddThreshold:200,canSwipe:function(){return!0}},t),e.extend(n,t),!n.itemHeight&&n.listEl&&(n.itemHeight=n.listEl.children[0]&&parseInt(n.listEl.children[0].style.height,10)),n.onRefresh=t.onRefresh||function(){},n.onRefreshOpening=t.onRefreshOpening||function(){},n.onRefreshHolding=t.onRefreshHolding||function(){};var i={};e.DomUtil.getParentOrSelfWithClass(n.el,"overflow-scroll")&&(i.prevent_default_directions=["left","right"]),window.ionic.onGesture("release",(function(e){n._handleEndDrag(e)}),n.el,i),window.ionic.onGesture("drag",(function(e){n._handleDrag(e)}),n.el,i),n._initDrag()},deregister:function(){this.el=this.listEl=this.scrollEl=this.scrollView=null,this.isScrollFreeze&&self.scrollView.freeze(!1)},stopRefreshing:function(){this.el.querySelector(".list-refresher").style.height="0"},didScroll:function(e){if(this.isVirtual){var t=this.itemHeight,n=e.target.scrollHeight,i=this.el.parentNode.offsetHeight,r=Math.max(0,e.scrollTop+this.virtualRemoveThreshold),o=Math.min(n,Math.abs(e.scrollTop)+i+this.virtualAddThreshold),a=parseInt(Math.abs(r/t),10),s=parseInt(Math.abs(o/t),10);this._virtualItemsToRemove=Array.prototype.slice.call(this.listEl.children,0,a),this.renderViewport&&this.renderViewport(r,o,a,s)}},didStopScrolling:function(){if(this.isVirtual)for(var e=0;e<this._virtualItemsToRemove.length;e++)this.didHideItem&&this.didHideItem(e)},clearDragEffects:function(e){this._lastDragOp&&(this._lastDragOp.clean&&this._lastDragOp.clean(e),this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=null)},_initDrag:function(){this._lastDragOp&&this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=this._dragOp,this._dragOp=null},_getItem:function(e){for(;e;){if(e.classList&&e.classList.contains("item"))return e;e=e.parentNode}return null},_startDrag:function(t){var r=this;r._isDragging=!1;var o,a=r._lastDragOp;r._didDragUpOrDown&&a instanceof n&&a.clean&&a.clean(),!e.DomUtil.getParentOrSelfWithClass(t.target,"item-reorder")||"up"!=t.gesture.direction&&"down"!=t.gesture.direction?!r._didDragUpOrDown&&("left"==t.gesture.direction||"right"==t.gesture.direction)&&Math.abs(t.gesture.deltaX)>5&&(o=r._getItem(t.target))&&o.querySelector(".item-options")&&(r._dragOp=new n({el:r.el,item:o,canSwipe:r.canSwipe}),r._dragOp.start(t),t.preventDefault(),r.isScrollFreeze=r.scrollView.freeze(!0)):(o=r._getItem(t.target))&&(r._dragOp=new i({listEl:r.el,el:o,scrollEl:r.scrollEl,scrollView:r.scrollView,onReorder:function(e,t,n){r.onReorder&&r.onReorder(e,t,n)}}),r._dragOp.start(t),t.preventDefault()),a&&r._dragOp&&!r._dragOp.isSameItem(a)&&t.defaultPrevented&&a.clean&&a.clean()},_handleEndDrag:function(e){var t=this;t.scrollView&&(t.isScrollFreeze=t.scrollView.freeze(!1)),t._didDragUpOrDown=!1,t._dragOp&&t._dragOp.end(e,(function(){t._initDrag()}))},_handleDrag:function(e){Math.abs(e.gesture.deltaY)>5&&(this._didDragUpOrDown=!0),this.isDragging||this._dragOp||this._startDrag(e),this._dragOp&&(e.gesture.srcEvent.preventDefault(),this._dragOp.drag(e))}})}(ionic),function(e){"use strict";e.views.Modal=e.views.View.inherit({initialize:function(t){t=e.extend({focusFirstInput:!1,unfocusOnHide:!0,focusFirstDelay:600,backdropClickToClose:!0,hardwareBackButtonClose:!0},t),e.extend(this,t),this.el=t.el},show:function(){var e=this;e.focusFirstInput&&window.setTimeout((function(){var t=e.el.querySelector("input, textarea");t&&t.focus&&t.focus()}),e.focusFirstDelay)},hide:function(){if(this.unfocusOnHide){var e=this.el.querySelectorAll("input, textarea");window.setTimeout((function(){for(var t=0;t<e.length;t++)e[t].blur&&e[t].blur()}))}}})}(ionic),function(e){"use strict";e.views.SideMenu=e.views.View.inherit({initialize:function(e){this.el=e.el,this.isEnabled=void 0===e.isEnabled||e.isEnabled,this.setWidth(e.width)},getFullWidth:function(){return this.width},setWidth:function(e){this.width=e,this.el.style.width=e+"px"},setIsEnabled:function(e){this.isEnabled=e},bringUp:function(){"0"!==this.el.style.zIndex&&(this.el.style.zIndex="0")},pushDown:function(){"-1"!==this.el.style.zIndex&&(this.el.style.zIndex="-1")}}),e.views.SideMenuContent=e.views.View.inherit({initialize:function(t){e.extend(this,{animationClass:"menu-animated",onDrag:function(){},onEndDrag:function(){}},t),e.onGesture("drag",e.proxy(this._onDrag,this),this.el),e.onGesture("release",e.proxy(this._onEndDrag,this),this.el)},_onDrag:function(e){this.onDrag&&this.onDrag(e)},_onEndDrag:function(e){this.onEndDrag&&this.onEndDrag(e)},disableAnimation:function(){this.el.classList.remove(this.animationClass)},enableAnimation:function(){this.el.classList.add(this.animationClass)},getTranslateX:function(){return parseFloat(this.el.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])},setTranslateX:e.animationFrameThrottle((function(t){this.el.style[e.CSS.TRANSFORM]="translate3d("+t+"px, 0, 0)"}))})}(ionic),function(e){"use strict";e.views.Slider=e.views.View.inherit({initialize:function(e){var t,n,i,r=this;window.navigator.pointerEnabled?(t="pointerdown",n="pointermove",i="pointerup"):window.navigator.msPointerEnabled?(t="MSPointerDown",n="MSPointerMove",i="MSPointerUp"):(t="touchstart",n="touchmove",i="touchend");var o=function(){},a=function(e){setTimeout(e||o,0)},s={addEventListener:!!window.addEventListener,transitions:function(e){var t=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in t)if(void 0!==e.style[t[n]])return!0;return!1}(document.createElement("swipe"))},l=e.el;if(l){var u,c,d,h,f=l.children[0];e=e||{};var p=parseInt(e.startSlide,10)||0,m=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var g,v,_=e.auto||0,y={},b={},w={handleEvent:function(r){switch(!r.touches&&r.pageX&&r.pageY&&(r.touches=[{pageX:r.pageX,pageY:r.pageY}]),r.type){case t:case"mousedown":this.start(r);break;case n:case"mousemove":this.touchmove(r);break;case i:case"mouseup":a(this.end(r));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":a(this.transitionEnd(r));break;case"resize":a(L)}e.stopPropagation&&r.stopPropagation()},start:function(e){if(e.touches){var t=e.touches[0];y={x:t.pageX,y:t.pageY,time:+new Date},v=void 0,b={},f.addEventListener(n,this,!1),f.addEventListener("mousemove",this,!1),f.addEventListener(i,this,!1),f.addEventListener("mouseup",this,!1),document.addEventListener(i,this,!1),document.addEventListener("mouseup",this,!1)}},touchmove:function(t){if(!(!t.touches||t.touches.length>1||t.scale&&1!==t.scale||r.slideIsDisabled)){e.disableScroll&&t.preventDefault();var n=t.touches[0];b={x:n.pageX-y.x,y:n.pageY-y.y},void 0===v&&(v=!!(v||Math.abs(b.x)<Math.abs(b.y))),v||(t.preventDefault(),D(),e.continuous?(T(k(p-1),b.x+c[k(p-1)],0),T(p,b.x+c[p],0),T(k(p+1),b.x+c[k(p+1)],0)):(e.bouncing?b.x=b.x/(!p&&b.x>0||p==u.length-1&&b.x<0?Math.abs(b.x)/d+1:1):(d*p-b.x<0&&(b.x=Math.min(b.x,d*p)),Math.abs(b.x)>d*(u.length-p-1)&&(b.x=Math.max(-d*(u.length-p-1),b.x))),T(p-1,b.x+c[p-1],0),T(p,b.x+c[p],0),T(p+1,b.x+c[p+1],0)),e.onDrag&&e.onDrag())}},end:function(){var t=+new Date-y.time,r=Number(t)<250&&Math.abs(b.x)>20||Math.abs(b.x)>d/2,o=!p&&b.x>0||p==u.length-1&&b.x<0;e.continuous&&(o=!1);var a=b.x<0;v||(r&&!o?(a?(e.continuous?(S(k(p-1),-d,0),S(k(p+2),d,0)):S(p-1,-d,0),S(p,c[p]-d,m),S(k(p+1),c[k(p+1)]-d,m),p=k(p+1)):(e.continuous?(S(k(p+1),d,0),S(k(p-2),-d,0)):S(p+1,d,0),S(p,c[p]+d,m),S(k(p-1),c[k(p-1)]+d,m),p=k(p-1)),e.callback&&e.callback(p,u[p])):e.continuous?(S(k(p-1),-d,m),S(p,0,m),S(k(p+1),d,m)):(S(p-1,-d,m),S(p,0,m),S(p+1,d,m))),f.removeEventListener(n,w,!1),f.removeEventListener("mousemove",w,!1),f.removeEventListener(i,w,!1),f.removeEventListener("mouseup",w,!1),document.removeEventListener(i,w,!1),document.removeEventListener("mouseup",w,!1),e.onDragEnd&&e.onDragEnd()},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==p&&(_&&$(),e.transitionEnd&&e.transitionEnd.call(t,p,u[p]))}};this.update=function(){setTimeout(L)},this.setup=function(){L()},this.loop=function(t){return arguments.length&&(e.continuous=!!t),e.continuous},this.enableSlide=function(e){return arguments.length&&(this.slideIsDisabled=!e),!this.slideIsDisabled},this.slide=this.select=function(e,t){D(),x(e,t)},this.prev=this.previous=function(){D(),e.continuous?x(p-1,void 0):p&&x(p-1,void 0)},this.next=function(){D(),M()},this.stop=function(){D()},this.start=function(){$()},this.autoPlay=function(e){!_||_<0?D():(_=e,$())},this.currentIndex=this.selected=function(){return p},this.slidesCount=this.count=function(){return h},this.kill=function(){D(),f.style.width="",f.style.left="",u&&(u=[]),s.addEventListener?(f.removeEventListener(t,w,!1),f.removeEventListener("mousedown",w,!1),f.removeEventListener("webkitTransitionEnd",w,!1),f.removeEventListener("msTransitionEnd",w,!1),f.removeEventListener("oTransitionEnd",w,!1),f.removeEventListener("otransitionend",w,!1),f.removeEventListener("transitionend",w,!1),window.removeEventListener("resize",w,!1)):window.onresize=null},this.load=function(){L(),_&&$(),s.addEventListener?(f.addEventListener(t,w,!1),f.addEventListener("mousedown",w,!1),s.transitions&&(f.addEventListener("webkitTransitionEnd",w,!1),f.addEventListener("msTransitionEnd",w,!1),f.addEventListener("oTransitionEnd",w,!1),f.addEventListener("otransitionend",w,!1),f.addEventListener("transitionend",w,!1)),window.addEventListener("resize",w,!1)):window.onresize=function(){L()}}}function L(){if(l.offsetWidth){u=f.children,h=u.length,u.length<2&&(e.continuous=!1),s.transitions&&e.continuous&&u.length<3&&(f.appendChild(u[0].cloneNode(!0)),f.appendChild(f.children[1].cloneNode(!0)),u=f.children),c=new Array(u.length),d=l.offsetWidth||l.getBoundingClientRect().width,f.style.width=u.length*d+"px";for(var t=u.length;t--;){var n=u[t];n.style.width=d+"px",n.setAttribute("data-index",t),s.transitions&&(n.style.left=t*-d+"px",S(t,p>t?-d:p<t?d:0,0))}e.continuous&&s.transitions&&(S(k(p-1),-d,0),S(k(p+1),d,0)),s.transitions||(f.style.left=p*-d+"px"),l.style.visibility="visible",e.slidesChanged&&e.slidesChanged()}}function M(t){e.continuous?x(p+1,t):p<u.length-1&&x(p+1,t)}function k(e){return(u.length+e%u.length)%u.length}function x(t,n){if(p!=t)if(u){if(s.transitions){var i=Math.abs(p-t)/(p-t);if(e.continuous){var r=i;(i=-c[k(t)]/d)!==r&&(t=-i*u.length+t)}for(var o=Math.abs(p-t)-1;o--;)S(k((t>p?t:p)-o-1),d*i,0);t=k(t),S(p,d*i,n||m),S(t,0,n||m),e.continuous&&S(k(t-i),-d*i,0)}else t=k(t),function(t,n,i){if(i)var r=+new Date,o=setInterval((function(){var a=+new Date-r;if(a>i)return f.style.left=n+"px",_&&$(),e.transitionEnd&&e.transitionEnd.call(event,p,u[p]),void clearInterval(o);f.style.left=(n-t)*(Math.floor(a/i*100)/100)+t+"px"}),4);else f.style.left=n+"px"}(p*-d,t*-d,n||m);p=t,a(e.callback&&e.callback(p,u[p]))}else p=t}function S(e,t,n){T(e,t,n),c[e]=t}function T(e,t,n){var i=u[e],r=i&&i.style;r&&(r.webkitTransitionDuration=r.MozTransitionDuration=r.msTransitionDuration=r.OTransitionDuration=r.transitionDuration=n+"ms",r.webkitTransform="translate("+t+"px,0)translateZ(0)",r.msTransform=r.MozTransform=r.OTransform="translateX("+t+"px)")}function $(){g=setTimeout(M,_)}function D(){_=e.auto||0,clearTimeout(g)}}})}(ionic),function(){"use strict";var e,t,n,i=function(t,n,r,a){if(!(this instanceof i))return new i(t,n);var s={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationHiddenClass:"swiper-pagination-hidden",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},l=n&&n.virtualTranslate;n=n||{};var u={};for(var c in n)if("object"!=typeof n[c]||n[c].nodeType||n[c]===window||n[c]===document||void 0!==o&&n[c]instanceof o||"undefined"!=typeof jQuery&&n[c]instanceof jQuery)u[c]=n[c];else for(var d in u[c]={},n[c])u[c][d]=n[c][d];for(var h in s)if(void 0===n[h])n[h]=s[h];else if("object"==typeof n[h])for(var f in s[h])void 0===n[h][f]&&(n[h][f]=s[h][f]);var p=this;if(p.params=n,p.originalParams=u,p.classNames=[],void 0!==e&&void 0!==o&&(e=o),(void 0!==e||(e=void 0===o?window.Dom7||window.Zepto||window.jQuery:o))&&(p.$=e,p.currentBreakpoint=void 0,p.getActiveBreakpoint=function(){if(!p.params.breakpoints)return!1;var e,t=!1,n=[];for(e in p.params.breakpoints)p.params.breakpoints.hasOwnProperty(e)&&n.push(e);n.sort((function(e,t){return parseInt(e,10)>parseInt(t,10)}));for(var i=0;i<n.length;i++)(e=n[i])>=window.innerWidth&&!t&&(t=e);return t||"max"},p.setBreakpoint=function(){var e=p.getActiveBreakpoint();if(e&&p.currentBreakpoint!==e){var t=e in p.params.breakpoints?p.params.breakpoints[e]:p.originalParams;for(var n in t)p.params[n]=t[n];p.currentBreakpoint=e}},p.params.breakpoints&&p.setBreakpoint(),p.container=e(t),0!==p.container.length)){if(!(p.container.length>1)){p.container[0].swiper=p,p.container.data("swiper",p),p.classNames.push("swiper-container-"+p.params.direction),p.params.freeMode&&p.classNames.push("swiper-container-free-mode"),p.support.flexbox||(p.classNames.push("swiper-container-no-flexbox"),p.params.slidesPerColumn=1),p.params.autoHeight&&p.classNames.push("swiper-container-autoheight"),(p.params.parallax||p.params.watchSlidesVisibility)&&(p.params.watchSlidesProgress=!0),["cube","coverflow"].indexOf(p.params.effect)>=0&&(p.support.transforms3d?(p.params.watchSlidesProgress=!0,p.classNames.push("swiper-container-3d")):p.params.effect="slide"),"slide"!==p.params.effect&&p.classNames.push("swiper-container-"+p.params.effect),"cube"===p.params.effect&&(p.params.resistanceRatio=0,p.params.slidesPerView=1,p.params.slidesPerColumn=1,p.params.slidesPerGroup=1,p.params.centeredSlides=!1,p.params.spaceBetween=0,p.params.virtualTranslate=!0,p.params.setWrapperSize=!1),"fade"===p.params.effect&&(p.params.slidesPerView=1,p.params.slidesPerColumn=1,p.params.slidesPerGroup=1,p.params.watchSlidesProgress=!0,p.params.spaceBetween=0,void 0===l&&(p.params.virtualTranslate=!0)),p.params.grabCursor&&p.support.touch&&(p.params.grabCursor=!1),p.wrapper=p.container.children("."+p.params.wrapperClass),p.params.pagination&&(p.paginationContainer=e(p.params.pagination),p.params.paginationClickable&&p.paginationContainer.addClass("swiper-pagination-clickable")),p.rtl=P()&&("rtl"===p.container[0].dir.toLowerCase()||"rtl"===p.container.css("direction")),p.rtl&&p.classNames.push("swiper-container-rtl"),p.rtl&&(p.wrongRTL="-webkit-box"===p.wrapper.css("display")),p.params.slidesPerColumn>1&&p.classNames.push("swiper-container-multirow"),p.device.android&&p.classNames.push("swiper-container-android"),p.container.addClass(p.classNames.join(" ")),p.translate=0,p.progress=0,p.velocity=0,p.lockSwipeToNext=function(){p.params.allowSwipeToNext=!1},p.lockSwipeToPrev=function(){p.params.allowSwipeToPrev=!1},p.lockSwipes=function(){p.params.allowSwipeToNext=p.params.allowSwipeToPrev=!1},p.unlockSwipeToNext=function(){p.params.allowSwipeToNext=!0},p.unlockSwipeToPrev=function(){p.params.allowSwipeToPrev=!0},p.unlockSwipes=function(){p.params.allowSwipeToNext=p.params.allowSwipeToPrev=!0},p.params.grabCursor&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grab",p.container[0].style.cursor="-moz-grab",p.container[0].style.cursor="grab"),p.imagesToLoad=[],p.imagesLoaded=0,p.loadImage=function(e,t,n,i,r){var o;function a(){r&&r()}e.complete&&i?a():t?((o=new window.Image).onload=a,o.onerror=a,n&&(o.srcset=n),t&&(o.src=t)):a()},p.preloadImages=function(){function e(){null!=p&&(void 0!==p.imagesLoaded&&p.imagesLoaded++,p.imagesLoaded===p.imagesToLoad.length&&(p.params.updateOnImagesReady&&p.update(),p.emit("onImagesReady",p)))}p.imagesToLoad=p.container.find("img");for(var t=0;t<p.imagesToLoad.length;t++)p.loadImage(p.imagesToLoad[t],p.imagesToLoad[t].currentSrc||p.imagesToLoad[t].getAttribute("src"),p.imagesToLoad[t].srcset||p.imagesToLoad[t].getAttribute("srcset"),!0,e)},p.autoplayTimeoutId=void 0,p.autoplaying=!1,p.autoplayPaused=!1,p.startAutoplay=function(){return void 0===p.autoplayTimeoutId&&!!p.params.autoplay&&!p.autoplaying&&(p.autoplaying=!0,p.emit("onAutoplayStart",p),void O())},p.stopAutoplay=function(e){p.autoplayTimeoutId&&(p.autoplayTimeoutId&&clearTimeout(p.autoplayTimeoutId),p.autoplaying=!1,p.autoplayTimeoutId=void 0,p.emit("onAutoplayStop",p))},p.pauseAutoplay=function(e){p.autoplayPaused||(p.autoplayTimeoutId&&clearTimeout(p.autoplayTimeoutId),p.autoplayPaused=!0,0===e?(p.autoplayPaused=!1,O()):p.wrapper.transitionEnd((function(){p&&(p.autoplayPaused=!1,p.autoplaying?O():p.stopAutoplay())})))},p.minTranslate=function(){return-p.snapGrid[0]},p.maxTranslate=function(){return-p.snapGrid[p.snapGrid.length-1]},p.updateAutoHeight=function(){p.slides.eq(p.activeIndex)[0].offsetHeight&&p.wrapper.css("height",p.slides.eq(p.activeIndex)[0].offsetHeight+"px")},p.updateContainerSize=function(){var e,t;e=void 0!==p.params.width?p.params.width:p.container[0].clientWidth,t=void 0!==p.params.height?p.params.height:p.container[0].clientHeight,0===e&&P()||0===t&&!P()||(e=e-parseInt(p.container.css("padding-left"),10)-parseInt(p.container.css("padding-right"),10),t=t-parseInt(p.container.css("padding-top"),10)-parseInt(p.container.css("padding-bottom"),10),p.width=e,p.height=t,p.size=P()?p.width:p.height)},p.updateSlidesSize=function(){p.slides=p.wrapper.children("."+p.params.slideClass),p.snapGrid=[],p.slidesGrid=[],p.slidesSizesGrid=[];var e,t,n,i=p.params.spaceBetween,r=-p.params.slidesOffsetBefore,o=0,a=0;"string"==typeof i&&i.indexOf("%")>=0&&(i=parseFloat(i.replace("%",""))/100*p.size),p.virtualSize=-i,p.rtl?p.slides.css({marginLeft:"",marginTop:""}):p.slides.css({marginRight:"",marginBottom:""}),p.params.slidesPerColumn>1&&(t=Math.floor(p.slides.length/p.params.slidesPerColumn)===p.slides.length/p.params.slidesPerColumn?p.slides.length:Math.ceil(p.slides.length/p.params.slidesPerColumn)*p.params.slidesPerColumn,"auto"!==p.params.slidesPerView&&"row"===p.params.slidesPerColumnFill&&(t=Math.max(t,p.params.slidesPerView*p.params.slidesPerColumn)));var s,l=p.params.slidesPerColumn,u=t/l,c=u-(p.params.slidesPerColumn*u-p.slides.length);for(e=0;e<p.slides.length;e++){n=0;var d,h,f,m=p.slides.eq(e);p.params.slidesPerColumn>1&&("column"===p.params.slidesPerColumnFill?(f=e-(h=Math.floor(e/l))*l,(h>c||h===c&&f===l-1)&&++f>=l&&(f=0,h++),d=h+f*t/l,m.css({"-webkit-box-ordinal-group":d,"-moz-box-ordinal-group":d,"-ms-flex-order":d,"-webkit-order":d,order:d})):h=e-(f=Math.floor(e/u))*u,m.css({"margin-top":0!==f&&p.params.spaceBetween&&p.params.spaceBetween+"px"}).attr("data-swiper-column",h).attr("data-swiper-row",f)),"none"!==m.css("display")&&("auto"===p.params.slidesPerView?(n=P()?m.outerWidth(!0):m.outerHeight(!0),p.params.roundLengths&&(n=Y(n))):(n=(p.size-(p.params.slidesPerView-1)*i)/p.params.slidesPerView,p.params.roundLengths&&(n=Y(n)),P()?p.slides[e].style.width=n+"px":p.slides[e].style.height=n+"px"),p.slides[e].swiperSlideSize=n,p.slidesSizesGrid.push(n),p.params.centeredSlides?(r=r+n/2+o/2+i,0===e&&(r=r-p.size/2-i),Math.abs(r)<.001&&(r=0),a%p.params.slidesPerGroup==0&&p.snapGrid.push(r),p.slidesGrid.push(r)):(a%p.params.slidesPerGroup==0&&p.snapGrid.push(r),p.slidesGrid.push(r),r=r+n+i),p.virtualSize+=n+i,o=n,a++)}if(p.virtualSize=Math.max(p.virtualSize,p.size)+p.params.slidesOffsetAfter,p.rtl&&p.wrongRTL&&("slide"===p.params.effect||"coverflow"===p.params.effect)&&p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}),p.support.flexbox&&!p.params.setWrapperSize||(P()?p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}):p.wrapper.css({height:p.virtualSize+p.params.spaceBetween+"px"})),p.params.slidesPerColumn>1&&(p.virtualSize=(n+p.params.spaceBetween)*t,p.virtualSize=Math.ceil(p.virtualSize/p.params.slidesPerColumn)-p.params.spaceBetween,p.wrapper.css({width:p.virtualSize+p.params.spaceBetween+"px"}),p.params.centeredSlides)){for(s=[],e=0;e<p.snapGrid.length;e++)p.snapGrid[e]<p.virtualSize+p.snapGrid[0]&&s.push(p.snapGrid[e]);p.snapGrid=s}if(!p.params.centeredSlides){for(s=[],e=0;e<p.snapGrid.length;e++)p.snapGrid[e]<=p.virtualSize-p.size&&s.push(p.snapGrid[e]);p.snapGrid=s,Math.floor(p.virtualSize-p.size)>Math.floor(p.snapGrid[p.snapGrid.length-1])&&p.snapGrid.push(p.virtualSize-p.size)}0===p.snapGrid.length&&(p.snapGrid=[0]),0!==p.params.spaceBetween&&(P()?p.rtl?p.slides.css({marginLeft:i+"px"}):p.slides.css({marginRight:i+"px"}):p.slides.css({marginBottom:i+"px"})),p.params.watchSlidesProgress&&p.updateSlidesOffset()},p.updateSlidesOffset=function(){for(var e=0;e<p.slides.length;e++)p.slides[e].swiperSlideOffset=P()?p.slides[e].offsetLeft:p.slides[e].offsetTop},p.updateSlidesProgress=function(e){if(void 0===e&&(e=p.translate||0),0!==p.slides.length){void 0===p.slides[0].swiperSlideOffset&&p.updateSlidesOffset();var t=-e;p.rtl&&(t=e),p.slides.removeClass(p.params.slideVisibleClass);for(var n=0;n<p.slides.length;n++){var i=p.slides[n],r=(t-i.swiperSlideOffset)/(i.swiperSlideSize+p.params.spaceBetween);if(p.params.watchSlidesVisibility){var o=-(t-i.swiperSlideOffset),a=o+p.slidesSizesGrid[n];(o>=0&&o<p.size||a>0&&a<=p.size||o<=0&&a>=p.size)&&p.slides.eq(n).addClass(p.params.slideVisibleClass)}i.progress=p.rtl?-r:r}}},p.updateProgress=function(e){void 0===e&&(e=p.translate||0);var t=p.maxTranslate()-p.minTranslate(),n=p.isBeginning,i=p.isEnd;0===t?(p.progress=0,p.isBeginning=p.isEnd=!0):(p.progress=(e-p.minTranslate())/t,p.isBeginning=p.progress<=0,p.isEnd=p.progress>=1),p.isBeginning&&!n&&p.emit("onReachBeginning",p),p.isEnd&&!i&&p.emit("onReachEnd",p),p.params.watchSlidesProgress&&p.updateSlidesProgress(e),p.emit("onProgress",p,p.progress)},p.updateActiveIndex=function(){var e,t,n,i=p.rtl?p.translate:-p.translate;for(t=0;t<p.slidesGrid.length;t++)void 0!==p.slidesGrid[t+1]?i>=p.slidesGrid[t]&&i<p.slidesGrid[t+1]-(p.slidesGrid[t+1]-p.slidesGrid[t])/2?e=t:i>=p.slidesGrid[t]&&i<p.slidesGrid[t+1]&&(e=t+1):i>=p.slidesGrid[t]&&(e=t);(e<0||void 0===e)&&(e=0),(n=Math.floor(e/p.params.slidesPerGroup))>=p.snapGrid.length&&(n=p.snapGrid.length-1),e!==p.activeIndex&&(p.snapIndex=n,p.previousIndex=p.activeIndex,p.activeIndex=e,p.updateClasses())},p.updateClasses=function(){p.slides.removeClass(p.params.slideActiveClass+" "+p.params.slideNextClass+" "+p.params.slidePrevClass);var t,n=p.slides.eq(p.activeIndex);n.addClass(p.params.slideActiveClass),n.next("."+p.params.slideClass).addClass(p.params.slideNextClass),n.prev("."+p.params.slideClass).addClass(p.params.slidePrevClass),p.bullets&&p.bullets.length>0&&(p.bullets.removeClass(p.params.bulletActiveClass),p.params.loop?((t=Math.ceil(p.activeIndex-p.loopedSlides)/p.params.slidesPerGroup)>p.slides.length-1-2*p.loopedSlides&&(t-=p.slides.length-2*p.loopedSlides),t>p.bullets.length-1&&(t-=p.bullets.length)):t=void 0!==p.snapIndex?p.snapIndex:p.activeIndex||0,p.paginationContainer.length>1?p.bullets.each((function(){e(this).index()===t&&e(this).addClass(p.params.bulletActiveClass)})):p.bullets.eq(t).addClass(p.params.bulletActiveClass)),p.params.loop||(p.params.prevButton&&(p.isBeginning?(e(p.params.prevButton).addClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.disable(e(p.params.prevButton))):(e(p.params.prevButton).removeClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.enable(e(p.params.prevButton)))),p.params.nextButton&&(p.isEnd?(e(p.params.nextButton).addClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.disable(e(p.params.nextButton))):(e(p.params.nextButton).removeClass(p.params.buttonDisabledClass),p.params.a11y&&p.a11y&&p.a11y.enable(e(p.params.nextButton)))))},p.updatePagination=function(){if(p.params.pagination&&p.paginationContainer&&p.paginationContainer.length>0){for(var e="",t=p.params.loop?Math.ceil((p.slides.length-2*p.loopedSlides)/p.params.slidesPerGroup):p.snapGrid.length,n=0;n<t;n++)p.params.paginationBulletRender?e+=p.params.paginationBulletRender(n,p.params.bulletClass):e+="<"+p.params.paginationElement+' class="'+p.params.bulletClass+'"></'+p.params.paginationElement+">";p.paginationContainer.html(e),p.bullets=p.paginationContainer.find("."+p.params.bulletClass),p.params.paginationClickable&&p.params.a11y&&p.a11y&&p.a11y.initPagination()}},p.update=function(e){function t(){n=Math.min(Math.max(p.translate,p.maxTranslate()),p.minTranslate()),p.setWrapperTranslate(n),p.updateActiveIndex(),p.updateClasses()}var n;p.updateContainerSize(),p.updateSlidesSize(),p.updateProgress(),p.updatePagination(),p.updateClasses(),p.params.scrollbar&&p.scrollbar&&p.scrollbar.set(),e?(p.controller&&p.controller.spline&&(p.controller.spline=void 0),p.params.freeMode?(t(),p.params.autoHeight&&p.updateAutoHeight()):(("auto"===p.params.slidesPerView||p.params.slidesPerView>1)&&p.isEnd&&!p.params.centeredSlides?p.slideTo(p.slides.length-1,0,!1,!0):p.slideTo(p.activeIndex,0,!1,!0))||t()):p.params.autoHeight&&p.updateAutoHeight()},p.onResize=function(e){p.params.breakpoints&&p.setBreakpoint();var t=p.params.allowSwipeToPrev,n=p.params.allowSwipeToNext;if(p.params.allowSwipeToPrev=p.params.allowSwipeToNext=!0,p.updateContainerSize(),p.updateSlidesSize(),("auto"===p.params.slidesPerView||p.params.freeMode||e)&&p.updatePagination(),p.params.scrollbar&&p.scrollbar&&p.scrollbar.set(),p.controller&&p.controller.spline&&(p.controller.spline=void 0),p.params.freeMode){var i=Math.min(Math.max(p.translate,p.maxTranslate()),p.minTranslate());p.setWrapperTranslate(i),p.updateActiveIndex(),p.updateClasses(),p.params.autoHeight&&p.updateAutoHeight()}else p.updateClasses(),("auto"===p.params.slidesPerView||p.params.slidesPerView>1)&&p.isEnd&&!p.params.centeredSlides?p.slideTo(p.slides.length-1,0,!1,!0):p.slideTo(p.activeIndex,0,!1,!0);p.params.allowSwipeToPrev=t,p.params.allowSwipeToNext=n};var m=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?m=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(m=["MSPointerDown","MSPointerMove","MSPointerUp"]),p.touchEvents={start:p.support.touch||!p.params.simulateTouch?"touchstart":m[0],move:p.support.touch||!p.params.simulateTouch?"touchmove":m[1],end:p.support.touch||!p.params.simulateTouch?"touchend":m[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===p.params.touchEventsTarget?p.container:p.wrapper).addClass("swiper-wp8-"+p.params.direction),p.initEvents=function(t){var i=t?"off":"on",r=t?"removeEventListener":"addEventListener",o="container"===p.params.touchEventsTarget?p.container[0]:p.wrapper[0],a=p.support.touch?o:document,s=!!p.params.nested;p.browser.ie?(o[r](p.touchEvents.start,p.onTouchStart,!1),a[r](p.touchEvents.move,p.onTouchMove,s),a[r](p.touchEvents.end,p.onTouchEnd,!1)):(p.support.touch&&(o[r](p.touchEvents.start,p.onTouchStart,!1),o[r](p.touchEvents.move,p.onTouchMove,s),o[r](p.touchEvents.end,p.onTouchEnd,!1)),!n.simulateTouch||p.device.ios||p.device.android||(o[r]("mousedown",p.onTouchStart,!1),document[r]("mousemove",p.onTouchMove,s),document[r]("mouseup",p.onTouchEnd,!1))),window[r]("resize",p.onResize),p.params.nextButton&&(e(p.params.nextButton)[i]("click",p.onClickNext),p.params.a11y&&p.a11y&&e(p.params.nextButton)[i]("keydown",p.a11y.onEnterKey)),p.params.prevButton&&(e(p.params.prevButton)[i]("click",p.onClickPrev),p.params.a11y&&p.a11y&&e(p.params.prevButton)[i]("keydown",p.a11y.onEnterKey)),p.params.pagination&&p.params.paginationClickable&&(e(p.paginationContainer)[i]("click","."+p.params.bulletClass,p.onClickIndex),p.params.a11y&&p.a11y&&e(p.paginationContainer)[i]("keydown","."+p.params.bulletClass,p.a11y.onEnterKey)),(p.params.preventClicks||p.params.preventClicksPropagation)&&o[r]("click",p.preventClicks,!0)},p.attachEvents=function(e){p.initEvents()},p.detachEvents=function(){p.initEvents(!0)},p.allowClick=!0,p.preventClicks=function(e){p.allowClick||(p.params.preventClicks&&e.preventDefault(),p.params.preventClicksPropagation&&p.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},p.onClickNext=function(e){e.preventDefault(),p.isEnd&&!p.params.loop||p.slideNext()},p.onClickPrev=function(e){e.preventDefault(),p.isBeginning&&!p.params.loop||p.slidePrev()},p.onClickIndex=function(t){t.preventDefault();var n=e(this).index()*p.params.slidesPerGroup;p.params.loop&&(n+=p.loopedSlides),p.slideTo(n)},p.updateClickedSlide=function(t){var n=I(t,"."+p.params.slideClass),i=!1;if(n)for(var r=0;r<p.slides.length;r++)p.slides[r]===n&&(i=!0);if(!n||!i)return p.clickedSlide=void 0,void(p.clickedIndex=void 0);if(p.clickedSlide=n,p.clickedIndex=e(n).index(),p.params.slideToClickedSlide&&void 0!==p.clickedIndex&&p.clickedIndex!==p.activeIndex){var o,a=p.clickedIndex;if(p.params.loop){if(p.animating)return;o=e(p.clickedSlide).attr("data-swiper-slide-index"),p.params.centeredSlides?a<p.loopedSlides-p.params.slidesPerView/2||a>p.slides.length-p.loopedSlides+p.params.slidesPerView/2?(p.fixLoop(),a=p.wrapper.children("."+p.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){p.slideTo(a)}),0)):p.slideTo(a):a>p.slides.length-p.params.slidesPerView?(p.fixLoop(),a=p.wrapper.children("."+p.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout((function(){p.slideTo(a)}),0)):p.slideTo(a)}else p.slideTo(a)}};var g,v,_,y,b,w,L,M,k,x,S,T,$="input, select, textarea, button",D=Date.now(),C=[];if(p.animating=!1,p.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0},p.onTouchStart=function(t){if(t.originalEvent&&(t=t.originalEvent),(S="touchstart"===t.type)||!("which"in t)||3!==t.which)if(p.params.noSwiping&&I(t,"."+p.params.noSwipingClass))p.allowClick=!0;else if(!p.params.swipeHandler||I(t,p.params.swipeHandler)){var n=p.touches.currentX="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,i=p.touches.currentY="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY;if(!(p.device.ios&&p.params.iOSEdgeSwipeDetection&&n<=p.params.iOSEdgeSwipeThreshold)){if(g=!0,v=!1,_=!0,b=void 0,T=void 0,p.touches.startX=n,p.touches.startY=i,y=Date.now(),p.allowClick=!0,p.updateContainerSize(),p.swipeDirection=void 0,p.params.threshold>0&&(M=!1),"touchstart"!==t.type){var r=!0;e(t.target).is($)&&(r=!1),document.activeElement&&e(document.activeElement).is($)&&document.activeElement.blur(),r&&t.preventDefault()}p.emit("onTouchStart",p,t)}}},p.onTouchMove=function(t){if(t.originalEvent&&(t=t.originalEvent),!(S&&"mousemove"===t.type||t.preventedByNestedSwiper)){if(p.params.onlyExternal)return p.allowClick=!1,void(g&&(p.touches.startX=p.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,p.touches.startY=p.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,y=Date.now()));if(S&&document.activeElement&&t.target===document.activeElement&&e(t.target).is($))return v=!0,void(p.allowClick=!1);if(_&&p.emit("onTouchMove",p,t),!(t.targetTouches&&t.targetTouches.length>1)){if(p.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,p.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,void 0===b){var i=180*Math.atan2(Math.abs(p.touches.currentY-p.touches.startY),Math.abs(p.touches.currentX-p.touches.startX))/Math.PI;b=P()?i>p.params.touchAngle:90-i>p.params.touchAngle}if(b&&p.emit("onTouchMoveOpposite",p,t),void 0===T&&p.browser.ieTouch&&(p.touches.currentX===p.touches.startX&&p.touches.currentY===p.touches.startY||(T=!0)),g)if(b)g=!1;else if(T||!p.browser.ieTouch){p.allowClick=!1,p.emit("onSliderMove",p,t),t.preventDefault(),p.params.touchMoveStopPropagation&&!p.params.nested&&t.stopPropagation(),v||(n.loop&&p.fixLoop(),L=p.getWrapperTranslate(),p.setWrapperTransition(0),p.animating&&p.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),p.params.autoplay&&p.autoplaying&&(p.params.autoplayDisableOnInteraction?p.stopAutoplay():p.pauseAutoplay()),x=!1,p.params.grabCursor&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grabbing",p.container[0].style.cursor="-moz-grabbin",p.container[0].style.cursor="grabbing")),v=!0;var r=p.touches.diff=P()?p.touches.currentX-p.touches.startX:p.touches.currentY-p.touches.startY;r*=p.params.touchRatio,p.rtl&&(r=-r),p.swipeDirection=r>0?"prev":"next",w=r+L;var o=!0;if(r>0&&w>p.minTranslate()?(o=!1,p.params.resistance&&(w=p.minTranslate()-1+Math.pow(-p.minTranslate()+L+r,p.params.resistanceRatio))):r<0&&w<p.maxTranslate()&&(o=!1,p.params.resistance&&(w=p.maxTranslate()+1-Math.pow(p.maxTranslate()-L-r,p.params.resistanceRatio))),o&&(t.preventedByNestedSwiper=!0),!p.params.allowSwipeToNext&&"next"===p.swipeDirection&&w<L&&(w=L),!p.params.allowSwipeToPrev&&"prev"===p.swipeDirection&&w>L&&(w=L),p.params.followFinger){if(p.params.threshold>0){if(!(Math.abs(r)>p.params.threshold||M))return void(w=L);if(!M)return M=!0,p.touches.startX=p.touches.currentX,p.touches.startY=p.touches.currentY,w=L,void(p.touches.diff=P()?p.touches.currentX-p.touches.startX:p.touches.currentY-p.touches.startY)}(p.params.freeMode||p.params.watchSlidesProgress)&&p.updateActiveIndex(),p.params.freeMode&&(0===C.length&&C.push({position:p.touches[P()?"startX":"startY"],time:y}),C.push({position:p.touches[P()?"currentX":"currentY"],time:(new window.Date).getTime()})),p.updateProgress(w),p.setWrapperTranslate(w)}}}}},p.onTouchEnd=function(t){if(t.originalEvent&&(t=t.originalEvent),_&&p.emit("onTouchEnd",p,t),_=!1,g){p.params.grabCursor&&v&&g&&(p.container[0].style.cursor="move",p.container[0].style.cursor="-webkit-grab",p.container[0].style.cursor="-moz-grab",p.container[0].style.cursor="grab");var n,i=Date.now(),r=i-y;if(p.allowClick&&(p.updateClickedSlide(t),p.emit("onTap",p,t),r<300&&i-D>300&&(k&&clearTimeout(k),k=setTimeout((function(){p&&(p.params.paginationHide&&p.paginationContainer.length>0&&!e(t.target).hasClass(p.params.bulletClass)&&p.paginationContainer.toggleClass(p.params.paginationHiddenClass),p.emit("onClick",p,t))}),300)),r<300&&i-D<300&&(k&&clearTimeout(k),p.emit("onDoubleTap",p,t))),D=Date.now(),setTimeout((function(){p&&(p.allowClick=!0)}),0),g&&v&&p.swipeDirection&&0!==p.touches.diff&&w!==L)if(g=v=!1,n=p.params.followFinger?p.rtl?p.translate:-p.translate:-w,p.params.freeMode){if(n<-p.minTranslate())return void p.slideTo(p.activeIndex);if(n>-p.maxTranslate())return void(p.slides.length<p.snapGrid.length?p.slideTo(p.snapGrid.length-1):p.slideTo(p.slides.length-1));if(p.params.freeModeMomentum){if(C.length>1){var o=C.pop(),a=C.pop(),s=o.position-a.position,l=o.time-a.time;p.velocity=s/l,p.velocity=p.velocity/2,Math.abs(p.velocity)<p.params.freeModeMinimumVelocity&&(p.velocity=0),(l>150||(new window.Date).getTime()-o.time>300)&&(p.velocity=0)}else p.velocity=0;C.length=0;var u=1e3*p.params.freeModeMomentumRatio,c=p.velocity*u,d=p.translate+c;p.rtl&&(d=-d);var h,f=!1,m=20*Math.abs(p.velocity)*p.params.freeModeMomentumBounceRatio;if(d<p.maxTranslate())p.params.freeModeMomentumBounce?(d+p.maxTranslate()<-m&&(d=p.maxTranslate()-m),h=p.maxTranslate(),f=!0,x=!0):d=p.maxTranslate();else if(d>p.minTranslate())p.params.freeModeMomentumBounce?(d-p.minTranslate()>m&&(d=p.minTranslate()+m),h=p.minTranslate(),f=!0,x=!0):d=p.minTranslate();else if(p.params.freeModeSticky){var b,M=0;for(M=0;M<p.snapGrid.length;M+=1)if(p.snapGrid[M]>-d){b=M;break}d=Math.abs(p.snapGrid[b]-d)<Math.abs(p.snapGrid[b-1]-d)||"next"===p.swipeDirection?p.snapGrid[b]:p.snapGrid[b-1],p.rtl||(d=-d)}if(0!==p.velocity)u=p.rtl?Math.abs((-d-p.translate)/p.velocity):Math.abs((d-p.translate)/p.velocity);else if(p.params.freeModeSticky)return void p.slideReset();p.params.freeModeMomentumBounce&&f?(p.updateProgress(h),p.setWrapperTransition(u),p.setWrapperTranslate(d),p.onTransitionStart(),p.animating=!0,p.wrapper.transitionEnd((function(){p&&x&&(p.emit("onMomentumBounce",p),p.setWrapperTransition(p.params.speed),p.setWrapperTranslate(h),p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd()})))}))):p.velocity?(p.updateProgress(d),p.setWrapperTransition(u),p.setWrapperTranslate(d),p.onTransitionStart(),p.animating||(p.animating=!0,p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd()})))):p.updateProgress(d),p.updateActiveIndex()}(!p.params.freeModeMomentum||r>=p.params.longSwipesMs)&&(p.updateProgress(),p.updateActiveIndex())}else{var S,T=0,$=p.slidesSizesGrid[0];for(S=0;S<p.slidesGrid.length;S+=p.params.slidesPerGroup)void 0!==p.slidesGrid[S+p.params.slidesPerGroup]?n>=p.slidesGrid[S]&&n<p.slidesGrid[S+p.params.slidesPerGroup]&&(T=S,
+$=p.slidesGrid[S+p.params.slidesPerGroup]-p.slidesGrid[S]):n>=p.slidesGrid[S]&&(T=S,$=p.slidesGrid[p.slidesGrid.length-1]-p.slidesGrid[p.slidesGrid.length-2]);var E=(n-p.slidesGrid[T])/$;if(r>p.params.longSwipesMs){if(!p.params.longSwipes)return void p.slideTo(p.activeIndex);"next"===p.swipeDirection&&(E>=p.params.longSwipesRatio?p.slideTo(T+p.params.slidesPerGroup):p.slideTo(T)),"prev"===p.swipeDirection&&(E>1-p.params.longSwipesRatio?p.slideTo(T+p.params.slidesPerGroup):p.slideTo(T))}else{if(!p.params.shortSwipes)return void p.slideTo(p.activeIndex);"next"===p.swipeDirection&&p.slideTo(T+p.params.slidesPerGroup),"prev"===p.swipeDirection&&p.slideTo(T)}}else g=v=!1}},p._slideTo=function(e,t){return p.slideTo(e,t,!0,!0)},p.slideTo=function(e,t,n,i){void 0===n&&(n=!0),void 0===e&&(e=0),e<0&&(e=0),p.snapIndex=Math.floor(e/p.params.slidesPerGroup),p.snapIndex>=p.snapGrid.length&&(p.snapIndex=p.snapGrid.length-1);var r=-p.snapGrid[p.snapIndex];p.params.autoplay&&p.autoplaying&&(i||!p.params.autoplayDisableOnInteraction?p.pauseAutoplay(t):p.stopAutoplay()),p.updateProgress(r);for(var o=0;o<p.slidesGrid.length;o++)-Math.floor(100*r)>=Math.floor(100*p.slidesGrid[o])&&(e=o);return!(!p.params.allowSwipeToNext&&r<p.translate&&r<p.minTranslate()||!p.params.allowSwipeToPrev&&r>p.translate&&r>p.maxTranslate()&&(p.activeIndex||0)!==e||(void 0===t&&(t=p.params.speed),p.previousIndex=p.activeIndex||0,p.activeIndex=e,p.rtl&&-r===p.translate||!p.rtl&&r===p.translate?(p.params.autoHeight&&p.updateAutoHeight(),p.updateClasses(),"slide"!==p.params.effect&&p.setWrapperTranslate(r),1):(p.updateClasses(),p.onTransitionStart(n),0===t?(p.setWrapperTranslate(r),p.setWrapperTransition(0),p.onTransitionEnd(n)):(p.setWrapperTranslate(r),p.setWrapperTransition(t),p.animating||(p.animating=!0,p.wrapper.transitionEnd((function(){p&&p.onTransitionEnd(n)})))),0)))},p.onTransitionStart=function(e){void 0===e&&(e=!0),p.params.autoHeight&&p.updateAutoHeight(),p.lazy&&p.lazy.onTransitionStart(),e&&(p.emit("onTransitionStart",p),p.activeIndex!==p.previousIndex&&(p.emit("onSlideChangeStart",p),r.$emit("$ionicSlides.slideChangeStart",{slider:p,activeIndex:p.getSlideDataIndex(p.activeIndex),previousIndex:p.getSlideDataIndex(p.previousIndex)}),p.activeIndex>p.previousIndex?p.emit("onSlideNextStart",p):p.emit("onSlidePrevStart",p)))},p.onTransitionEnd=function(e){p.animating=!1,p.setWrapperTransition(0),void 0===e&&(e=!0),p.lazy&&p.lazy.onTransitionEnd(),e&&(p.emit("onTransitionEnd",p),p.activeIndex!==p.previousIndex&&(p.emit("onSlideChangeEnd",p),r.$emit("$ionicSlides.slideChangeEnd",{slider:p,activeIndex:p.getSlideDataIndex(p.activeIndex),previousIndex:p.getSlideDataIndex(p.previousIndex)}),p.activeIndex>p.previousIndex?p.emit("onSlideNextEnd",p):p.emit("onSlidePrevEnd",p))),p.params.hashnav&&p.hashnav&&p.hashnav.setHash()},p.slideNext=function(e,t,n){return p.params.loop?!p.animating&&(p.fixLoop(),p.container[0].clientLeft,p.slideTo(p.activeIndex+p.params.slidesPerGroup,t,e,n)):p.slideTo(p.activeIndex+p.params.slidesPerGroup,t,e,n)},p._slideNext=function(e){return p.slideNext(!0,e,!0)},p.slidePrev=function(e,t,n){return p.params.loop?!p.animating&&(p.fixLoop(),p.container[0].clientLeft,p.slideTo(p.activeIndex-1,t,e,n)):p.slideTo(p.activeIndex-1,t,e,n)},p._slidePrev=function(e){return p.slidePrev(!0,e,!0)},p.slideReset=function(e,t,n){return p.slideTo(p.activeIndex,t,e)},p.setWrapperTransition=function(e,t){p.wrapper.transition(e),"slide"!==p.params.effect&&p.effects[p.params.effect]&&p.effects[p.params.effect].setTransition(e),p.params.parallax&&p.parallax&&p.parallax.setTransition(e),p.params.scrollbar&&p.scrollbar&&p.scrollbar.setTransition(e),p.params.control&&p.controller&&p.controller.setTransition(e,t),p.emit("onSetTransition",p,e)},p.setWrapperTranslate=function(e,t,n){var i=0,r=0;P()?i=p.rtl?-e:e:r=e,p.params.roundLengths&&(i=Y(i),r=Y(r)),p.params.virtualTranslate||(p.support.transforms3d?p.wrapper.transform("translate3d("+i+"px, "+r+"px, 0px)"):p.wrapper.transform("translate("+i+"px, "+r+"px)")),p.translate=P()?i:r;var o=p.maxTranslate()-p.minTranslate();(0===o?0:(e-p.minTranslate())/o)!==p.progress&&p.updateProgress(e),t&&p.updateActiveIndex(),"slide"!==p.params.effect&&p.effects[p.params.effect]&&p.effects[p.params.effect].setTranslate(p.translate),p.params.parallax&&p.parallax&&p.parallax.setTranslate(p.translate),p.params.scrollbar&&p.scrollbar&&p.scrollbar.setTranslate(p.translate),p.params.control&&p.controller&&p.controller.setTranslate(p.translate,n),p.emit("onSetTranslate",p,p.translate)},p.getTranslate=function(e,t){var n,i,r,o;return void 0===t&&(t="x"),p.params.virtualTranslate?p.rtl?-p.translate:p.translate:(r=window.getComputedStyle(e,null),window.WebKitCSSMatrix?((i=r.transform||r.webkitTransform).split(",").length>6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),o=new window.WebKitCSSMatrix("none"===i?"":i)):n=(o=r.MozTransform||r.OTransform||r.MsTransform||r.msTransform||r.transform||r.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=window.WebKitCSSMatrix?o.m41:16===n.length?parseFloat(n[12]):parseFloat(n[4])),"y"===t&&(i=window.WebKitCSSMatrix?o.m42:16===n.length?parseFloat(n[13]):parseFloat(n[5])),p.rtl&&i&&(i=-i),i||0)},p.getWrapperTranslate=function(e){return void 0===e&&(e=P()?"x":"y"),p.getTranslate(p.wrapper[0],e)},p.observers=[],p.initObservers=function(){if(p.params.observeParents)for(var e=p.container.parents(),t=0;t<e.length;t++)j(e[t]);j(p.container[0],{childList:!1}),j(p.wrapper[0],{attributes:!1})},p.disconnectObservers=function(){for(var e=0;e<p.observers.length;e++)p.observers[e].disconnect();p.observers=[]},p.updateLoop=function(){var e=p.slides.eq(p.activeIndex);if(angular.element(e).hasClass(p.params.slideDuplicateClass)){for(var t=angular.element(e).attr("data-swiper-slide-index"),n=p.wrapper.children("."+p.params.slideClass),i=0;i<n.length;i++)if(!angular.element(n[i]).hasClass(p.params.slideDuplicateClass)&&angular.element(n[i]).attr("data-swiper-slide-index")===t){p.slideTo(i,0,!1,!0);break}setTimeout((function(){p.createLoop()}),50)}},p.getSlideDataIndex=function(e){var t=p.slides.eq(e),n=angular.element(t).attr("data-swiper-slide-index");return parseInt(n)},p.createLoop=function(){p.wrapper.children("."+p.params.slideClass+"."+p.params.slideDuplicateClass).remove();var t=p.wrapper.children("."+p.params.slideClass);"auto"!==p.params.slidesPerView||p.params.loopedSlides||(p.params.loopedSlides=t.length),p.loopedSlides=parseInt(p.params.loopedSlides||p.params.slidesPerView,10),p.loopedSlides=p.loopedSlides+p.params.loopAdditionalSlides,p.loopedSlides>t.length&&(p.loopedSlides=t.length);var n,i,r,o=[],s=[];for(t.each((function(n,i){var r=e(this);n<p.loopedSlides&&s.push(i),n<t.length&&n>=t.length-p.loopedSlides&&o.push(i),r.attr("data-swiper-slide-index",n)})),n=0;n<s.length;n++)(r=angular.element(s[n]).clone().addClass(p.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(s[n]).scope(),r=a(r)(i),angular.element(p.wrapper).append(r);for(n=o.length-1;n>=0;n--)(r=angular.element(o[n]).clone().addClass(p.params.slideDuplicateClass)).removeAttr("ng-transclude"),r.removeAttr("ng-repeat"),i=angular.element(o[n]).scope(),r=a(r)(i),angular.element(p.wrapper).prepend(r)},p.destroyLoop=function(){p.wrapper.children("."+p.params.slideClass+"."+p.params.slideDuplicateClass).remove(),p.slides.removeAttr("data-swiper-slide-index")},p.fixLoop=function(){var e;p.activeIndex<p.loopedSlides?(e=p.slides.length-3*p.loopedSlides+p.activeIndex,e+=p.loopedSlides,p.slideTo(e,0,!1,!0)):("auto"===p.params.slidesPerView&&p.activeIndex>=2*p.loopedSlides||p.activeIndex>p.slides.length-2*p.params.slidesPerView)&&(e=-p.slides.length+p.activeIndex+p.loopedSlides,e+=p.loopedSlides,p.slideTo(e,0,!1,!0))},p.appendSlide=function(e){if(p.params.loop&&p.destroyLoop(),"object"==typeof e&&e.length)for(var t=0;t<e.length;t++)e[t]&&p.wrapper.append(e[t]);else p.wrapper.append(e);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0)},p.prependSlide=function(e){p.params.loop&&p.destroyLoop();var t=p.activeIndex+1;if("object"==typeof e&&e.length){for(var n=0;n<e.length;n++)e[n]&&p.wrapper.prepend(e[n]);t=p.activeIndex+e.length}else p.wrapper.prepend(e);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0),p.slideTo(t,0,!1)},p.removeSlide=function(e){p.params.loop&&(p.destroyLoop(),p.slides=p.wrapper.children("."+p.params.slideClass));var t,n=p.activeIndex;if("object"==typeof e&&e.length){for(var i=0;i<e.length;i++)t=e[i],p.slides[t]&&p.slides.eq(t).remove(),t<n&&n--;n=Math.max(n,0)}else t=e,p.slides[t]&&p.slides.eq(t).remove(),t<n&&n--,n=Math.max(n,0);p.params.loop&&p.createLoop(),p.params.observer&&p.support.observer||p.update(!0),p.params.loop?p.slideTo(n+p.loopedSlides,0,!1):p.slideTo(n,0,!1)},p.removeAllSlides=function(){for(var e=[],t=0;t<p.slides.length;t++)e.push(t);p.removeSlide(e)},p.effects={fade:{setTranslate:function(){for(var e=0;e<p.slides.length;e++){var t=p.slides.eq(e),n=-t[0].swiperSlideOffset;p.params.virtualTranslate||(n-=p.translate);var i=0;P()||(i=n,n=0);var r=p.params.fade.crossFade?Math.max(1-Math.abs(t[0].progress),0):1+Math.min(Math.max(t[0].progress,-1),0);t.css({opacity:r}).transform("translate3d("+n+"px, "+i+"px, 0px)")}},setTransition:function(e){if(p.slides.transition(e),p.params.virtualTranslate&&0!==e){var t=!1;p.slides.transitionEnd((function(){if(!t&&p){t=!0,p.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],n=0;n<e.length;n++)p.wrapper.trigger(e[n])}}))}}},cube:{setTranslate:function(){var t,n=0;p.params.cube.shadow&&(P()?(0===(t=p.wrapper.find(".swiper-cube-shadow")).length&&(t=e('<div class="swiper-cube-shadow"></div>'),p.wrapper.append(t)),t.css({height:p.width+"px"})):0===(t=p.container.find(".swiper-cube-shadow")).length&&(t=e('<div class="swiper-cube-shadow"></div>'),p.container.append(t)));for(var i=0;i<p.slides.length;i++){var r=p.slides.eq(i),o=90*i,a=Math.floor(o/360);p.rtl&&(o=-o,a=Math.floor(-o/360));var s=Math.max(Math.min(r[0].progress,1),-1),l=0,u=0,c=0;i%4==0?(l=4*-a*p.size,c=0):(i-1)%4==0?(l=0,c=4*-a*p.size):(i-2)%4==0?(l=p.size+4*a*p.size,c=p.size):(i-3)%4==0&&(l=-p.size,c=3*p.size+4*p.size*a),p.rtl&&(l=-l),P()||(u=l,l=0);var d="rotateX("+(P()?0:-o)+"deg) rotateY("+(P()?o:0)+"deg) translate3d("+l+"px, "+u+"px, "+c+"px)";if(s<=1&&s>-1&&(n=90*i+90*s,p.rtl&&(n=90*-i-90*s)),r.transform(d),p.params.cube.slideShadows){var h=P()?r.find(".swiper-slide-shadow-left"):r.find(".swiper-slide-shadow-top"),f=P()?r.find(".swiper-slide-shadow-right"):r.find(".swiper-slide-shadow-bottom");0===h.length&&(h=e('<div class="swiper-slide-shadow-'+(P()?"left":"top")+'"></div>'),r.append(h)),0===f.length&&(f=e('<div class="swiper-slide-shadow-'+(P()?"right":"bottom")+'"></div>'),r.append(f)),r[0].progress,h.length&&(h[0].style.opacity=-r[0].progress),f.length&&(f[0].style.opacity=r[0].progress)}}if(p.wrapper.css({"-webkit-transform-origin":"50% 50% -"+p.size/2+"px","-moz-transform-origin":"50% 50% -"+p.size/2+"px","-ms-transform-origin":"50% 50% -"+p.size/2+"px","transform-origin":"50% 50% -"+p.size/2+"px"}),p.params.cube.shadow)if(P())t.transform("translate3d(0px, "+(p.width/2+p.params.cube.shadowOffset)+"px, "+-p.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+p.params.cube.shadowScale+")");else{var m=Math.abs(n)-90*Math.floor(Math.abs(n)/90),g=1.5-(Math.sin(2*m*Math.PI/360)/2+Math.cos(2*m*Math.PI/360)/2),v=p.params.cube.shadowScale,_=p.params.cube.shadowScale/g,y=p.params.cube.shadowOffset;t.transform("scale3d("+v+", 1, "+_+") translate3d(0px, "+(p.height/2+y)+"px, "+-p.height/2/_+"px) rotateX(-90deg)")}var b=p.isSafari||p.isUiWebView?-p.size/2:0;p.wrapper.transform("translate3d(0px,0,"+b+"px) rotateX("+(P()?0:n)+"deg) rotateY("+(P()?-n:0)+"deg)")},setTransition:function(e){p.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),p.params.cube.shadow&&!P()&&p.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var t=p.translate,n=P()?-t+p.width/2:-t+p.height/2,i=P()?p.params.coverflow.rotate:-p.params.coverflow.rotate,r=p.params.coverflow.depth,o=0,a=p.slides.length;o<a;o++){var s=p.slides.eq(o),l=p.slidesSizesGrid[o],u=(n-s[0].swiperSlideOffset-l/2)/l*p.params.coverflow.modifier,c=P()?i*u:0,d=P()?0:i*u,h=-r*Math.abs(u),f=P()?0:p.params.coverflow.stretch*u,m=P()?p.params.coverflow.stretch*u:0;Math.abs(m)<.001&&(m=0),Math.abs(f)<.001&&(f=0),Math.abs(h)<.001&&(h=0),Math.abs(c)<.001&&(c=0),Math.abs(d)<.001&&(d=0);var g="translate3d("+m+"px,"+f+"px,"+h+"px)  rotateX("+d+"deg) rotateY("+c+"deg)";if(s.transform(g),s[0].style.zIndex=1-Math.abs(Math.round(u)),p.params.coverflow.slideShadows){var v=P()?s.find(".swiper-slide-shadow-left"):s.find(".swiper-slide-shadow-top"),_=P()?s.find(".swiper-slide-shadow-right"):s.find(".swiper-slide-shadow-bottom");0===v.length&&(v=e('<div class="swiper-slide-shadow-'+(P()?"left":"top")+'"></div>'),s.append(v)),0===_.length&&(_=e('<div class="swiper-slide-shadow-'+(P()?"right":"bottom")+'"></div>'),s.append(_)),v.length&&(v[0].style.opacity=u>0?u:0),_.length&&(_[0].style.opacity=-u>0?-u:0)}}p.browser.ie&&(p.wrapper[0].style.perspectiveOrigin=n+"px 50%")},setTransition:function(e){p.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},p.lazy={initialImageLoaded:!1,loadImageInSlide:function(t,n){if(void 0!==t&&(void 0===n&&(n=!0),0!==p.slides.length)){var i=p.slides.eq(t),r=i.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");!i.hasClass("swiper-lazy")||i.hasClass("swiper-lazy-loaded")||i.hasClass("swiper-lazy-loading")||(r=r.add(i[0])),0!==r.length&&r.each((function(){var t=e(this);t.addClass("swiper-lazy-loading");var r=t.attr("data-background"),o=t.attr("data-src"),a=t.attr("data-srcset");p.loadImage(t[0],o||r,a,!1,(function(){if(r?(t.css("background-image","url("+r+")"),t.removeAttr("data-background")):(a&&(t.attr("srcset",a),t.removeAttr("data-srcset")),o&&(t.attr("src",o),t.removeAttr("data-src"))),t.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),i.find(".swiper-lazy-preloader, .preloader").remove(),p.params.loop&&n){var e=i.attr("data-swiper-slide-index");if(i.hasClass(p.params.slideDuplicateClass)){var s=p.wrapper.children('[data-swiper-slide-index="'+e+'"]:not(.'+p.params.slideDuplicateClass+")");p.lazy.loadImageInSlide(s.index(),!1)}else{var l=p.wrapper.children("."+p.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');p.lazy.loadImageInSlide(l.index(),!1)}}p.emit("onLazyImageReady",p,i[0],t[0])})),p.emit("onLazyImageLoad",p,i[0],t[0])}))}},load:function(){var t;if(p.params.watchSlidesVisibility)p.wrapper.children("."+p.params.slideVisibleClass).each((function(){p.lazy.loadImageInSlide(e(this).index())}));else if(p.params.slidesPerView>1)for(t=p.activeIndex;t<p.activeIndex+p.params.slidesPerView;t++)p.slides[t]&&p.lazy.loadImageInSlide(t);else p.lazy.loadImageInSlide(p.activeIndex);if(p.params.lazyLoadingInPrevNext)if(p.params.slidesPerView>1){for(t=p.activeIndex+p.params.slidesPerView;t<p.activeIndex+p.params.slidesPerView+p.params.slidesPerView;t++)p.slides[t]&&p.lazy.loadImageInSlide(t);for(t=p.activeIndex-p.params.slidesPerView;t<p.activeIndex;t++)p.slides[t]&&p.lazy.loadImageInSlide(t)}else{var n=p.wrapper.children("."+p.params.slideNextClass);n.length>0&&p.lazy.loadImageInSlide(n.index());var i=p.wrapper.children("."+p.params.slidePrevClass);i.length>0&&p.lazy.loadImageInSlide(i.index())}},onTransitionStart:function(){p.params.lazyLoading&&(p.params.lazyLoadingOnTransitionStart||!p.params.lazyLoadingOnTransitionStart&&!p.lazy.initialImageLoaded)&&p.lazy.load()},onTransitionEnd:function(){p.params.lazyLoading&&!p.params.lazyLoadingOnTransitionStart&&p.lazy.load()}},p.scrollbar={isTouched:!1,setDragPosition:function(e){var t=p.scrollbar,n=(P()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-t.track.offset()[P()?"left":"top"]-t.dragSize/2,i=-p.minTranslate()*t.moveDivider,r=-p.maxTranslate()*t.moveDivider;n<i?n=i:n>r&&(n=r),n=-n/t.moveDivider,p.updateProgress(n),p.setWrapperTranslate(n,!0)},dragStart:function(e){var t=p.scrollbar;t.isTouched=!0,e.preventDefault(),e.stopPropagation(),t.setDragPosition(e),clearTimeout(t.dragTimeout),t.track.transition(0),p.params.scrollbarHide&&t.track.css("opacity",1),p.wrapper.transition(100),t.drag.transition(100),p.emit("onScrollbarDragStart",p)},dragMove:function(e){var t=p.scrollbar;t.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),p.wrapper.transition(0),t.track.transition(0),t.drag.transition(0),p.emit("onScrollbarDragMove",p))},dragEnd:function(e){var t=p.scrollbar;t.isTouched&&(t.isTouched=!1,p.params.scrollbarHide&&(clearTimeout(t.dragTimeout),t.dragTimeout=setTimeout((function(){t.track.css("opacity",0),t.track.transition(400)}),1e3)),p.emit("onScrollbarDragEnd",p),p.params.scrollbarSnapOnRelease&&p.slideReset())},enableDraggable:function(){var t=p.scrollbar,n=p.support.touch?t.track:document;e(t.track).on(p.touchEvents.start,t.dragStart),e(n).on(p.touchEvents.move,t.dragMove),e(n).on(p.touchEvents.end,t.dragEnd)},disableDraggable:function(){var t=p.scrollbar,n=p.support.touch?t.track:document;e(t.track).off(p.touchEvents.start,t.dragStart),e(n).off(p.touchEvents.move,t.dragMove),e(n).off(p.touchEvents.end,t.dragEnd)},set:function(){if(p.params.scrollbar){var t=p.scrollbar;t.track=e(p.params.scrollbar),t.drag=t.track.find(".swiper-scrollbar-drag"),0===t.drag.length&&(t.drag=e('<div class="swiper-scrollbar-drag"></div>'),t.track.append(t.drag)),t.drag[0].style.width="",t.drag[0].style.height="",t.trackSize=P()?t.track[0].offsetWidth:t.track[0].offsetHeight,t.divider=p.size/p.virtualSize,t.moveDivider=t.divider*(t.trackSize/p.size),t.dragSize=t.trackSize*t.divider,P()?t.drag[0].style.width=t.dragSize+"px":t.drag[0].style.height=t.dragSize+"px",t.divider>=1?t.track[0].style.display="none":t.track[0].style.display="",p.params.scrollbarHide&&(t.track[0].style.opacity=0)}},setTranslate:function(){if(p.params.scrollbar){var e,t=p.scrollbar,n=(p.translate,t.dragSize);e=(t.trackSize-t.dragSize)*p.progress,p.rtl&&P()?(e=-e)>0?(n=t.dragSize-e,e=0):-e+t.dragSize>t.trackSize&&(n=t.trackSize+e):e<0?(n=t.dragSize+e,e=0):e+t.dragSize>t.trackSize&&(n=t.trackSize-e),P()?(p.support.transforms3d?t.drag.transform("translate3d("+e+"px, 0, 0)"):t.drag.transform("translateX("+e+"px)"),t.drag[0].style.width=n+"px"):(p.support.transforms3d?t.drag.transform("translate3d(0px, "+e+"px, 0)"):t.drag.transform("translateY("+e+"px)"),t.drag[0].style.height=n+"px"),p.params.scrollbarHide&&(clearTimeout(t.timeout),t.track[0].style.opacity=1,t.timeout=setTimeout((function(){t.track[0].style.opacity=0,t.track.transition(400)}),1e3))}},setTransition:function(e){p.params.scrollbar&&p.scrollbar.drag.transition(e)}},p.controller={LinearSpline:function(e,t){var n,i;this.x=e,this.y=t,this.lastIndex=e.length-1,this.x.length,this.interpolate=function(e){return e?(i=s(this.x,e),n=i-1,(e-this.x[n])*(this.y[i]-this.y[n])/(this.x[i]-this.x[n])+this.y[n]):0};var r,o,a,s=function(e,t){for(o=-1,r=e.length;r-o>1;)e[a=r+o>>1]<=t?o=a:r=a;return r}},getInterpolateFunction:function(e){p.controller.spline||(p.controller.spline=p.params.loop?new p.controller.LinearSpline(p.slidesGrid,e.slidesGrid):new p.controller.LinearSpline(p.snapGrid,e.snapGrid))},setTranslate:function(e,t){var n,r,o=p.params.control;function a(t){e=t.rtl&&"horizontal"===t.params.direction?-p.translate:p.translate,"slide"===p.params.controlBy&&(p.controller.getInterpolateFunction(t),r=-p.controller.spline.interpolate(-e)),r&&"container"!==p.params.controlBy||(n=(t.maxTranslate()-t.minTranslate())/(p.maxTranslate()-p.minTranslate()),r=(e-p.minTranslate())*n+t.minTranslate()),p.params.controlInverse&&(r=t.maxTranslate()-r),t.updateProgress(r),t.setWrapperTranslate(r,!1,p),t.updateActiveIndex()}if(p.isArray(o))for(var s=0;s<o.length;s++)o[s]!==t&&o[s]instanceof i&&a(o[s]);else o instanceof i&&t!==o&&a(o)},setTransition:function(e,t){var n,r=p.params.control;function o(t){t.setWrapperTransition(e,p),0!==e&&(t.onTransitionStart(),t.wrapper.transitionEnd((function(){r&&(t.params.loop&&"slide"===p.params.controlBy&&t.fixLoop(),t.onTransitionEnd())})))}if(p.isArray(r))for(n=0;n<r.length;n++)r[n]!==t&&r[n]instanceof i&&o(r[n]);else r instanceof i&&t!==r&&o(r)}},p.hashnav={init:function(){if(p.params.hashnav){p.hashnav.initialized=!0;var e=document.location.hash.replace("#","");if(e)for(var t=0,n=p.slides.length;t<n;t++){var i=p.slides.eq(t);if(i.attr("data-hash")===e&&!i.hasClass(p.params.slideDuplicateClass)){var r=i.index();p.slideTo(r,0,p.params.runCallbacksOnInit,!0)}}}},setHash:function(){p.hashnav.initialized&&p.params.hashnav&&(document.location.hash=p.slides.eq(p.activeIndex).attr("data-hash")||"")}},p.disableKeyboardControl=function(){p.params.keyboardControl=!1,e(document).off("keydown",H)},p.enableKeyboardControl=function(){p.params.keyboardControl=!0,e(document).on("keydown",H)},p.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},p.params.mousewheelControl){try{new window.WheelEvent("wheel"),p.mousewheel.event="wheel"}catch(e){}p.mousewheel.event||void 0===document.onmousewheel||(p.mousewheel.event="mousewheel"),p.mousewheel.event||(p.mousewheel.event="DOMMouseScroll")}for(var E in p.disableMousewheelControl=function(){return!!p.mousewheel.event&&(p.container.off(p.mousewheel.event,B),!0)},p.enableMousewheelControl=function(){return!!p.mousewheel.event&&(p.container.on(p.mousewheel.event,B),!0)},p.parallax={setTranslate:function(){p.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){N(this,p.progress)})),p.slides.each((function(){var t=e(this);t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){N(this,Math.min(Math.max(t[0].progress,-1),1))}))}))},setTransition:function(t){void 0===t&&(t=p.params.speed),p.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each((function(){var n=e(this),i=parseInt(n.attr("data-swiper-parallax-duration"),10)||t;0===t&&(i=0),n.transition(i)}))}},p._plugins=[],p.plugins){var A=p.plugins[E](p,p.params[E]);A&&p._plugins.push(A)}return p.callPlugins=function(e){for(var t=0;t<p._plugins.length;t++)e in p._plugins[t]&&p._plugins[t][e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},p.emitterEventListeners={},p.emit=function(e){var t;if(p.params[e]&&p.params[e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),p.emitterEventListeners[e])for(t=0;t<p.emitterEventListeners[e].length;t++)p.emitterEventListeners[e][t](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);p.callPlugins&&p.callPlugins(e,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},p.on=function(e,t){return e=R(e),p.emitterEventListeners[e]||(p.emitterEventListeners[e]=[]),p.emitterEventListeners[e].push(t),p},p.off=function(e,t){var n;if(e=R(e),void 0===t)return p.emitterEventListeners[e]=[],p;if(p.emitterEventListeners[e]&&0!==p.emitterEventListeners[e].length){for(n=0;n<p.emitterEventListeners[e].length;n++)p.emitterEventListeners[e][n]===t&&p.emitterEventListeners[e].splice(n,1);return p}},p.once=function(e,t){e=R(e);var n=function(){t(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),p.off(e,n)};return p.on(e,n),p},p.a11y={makeFocusable:function(e){return e.attr("tabIndex","0"),e},addRole:function(e,t){return e.attr("role",t),e},addLabel:function(e,t){return e.attr("aria-label",t),e},disable:function(e){return e.attr("aria-disabled",!0),e},enable:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(t){13===t.keyCode&&(e(t.target).is(p.params.nextButton)?(p.onClickNext(t),p.isEnd?p.a11y.notify(p.params.lastSlideMessage):p.a11y.notify(p.params.nextSlideMessage)):e(t.target).is(p.params.prevButton)&&(p.onClickPrev(t),p.isBeginning?p.a11y.notify(p.params.firstSlideMessage):p.a11y.notify(p.params.prevSlideMessage)),e(t.target).is("."+p.params.bulletClass)&&e(t.target)[0].click())},liveRegion:e('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),notify:function(e){var t=p.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},init:function(){if(p.params.nextButton){var t=e(p.params.nextButton);p.a11y.makeFocusable(t),p.a11y.addRole(t,"button"),p.a11y.addLabel(t,p.params.nextSlideMessage)}if(p.params.prevButton){var n=e(p.params.prevButton);p.a11y.makeFocusable(n),p.a11y.addRole(n,"button"),p.a11y.addLabel(n,p.params.prevSlideMessage)}e(p.container).append(p.a11y.liveRegion)},initPagination:function(){p.params.pagination&&p.params.paginationClickable&&p.bullets&&p.bullets.length&&p.bullets.each((function(){var t=e(this);p.a11y.makeFocusable(t),p.a11y.addRole(t,"button"),p.a11y.addLabel(t,p.params.paginationBulletMessage.replace(/{{index}}/,t.index()+1))}))},destroy:function(){p.a11y.liveRegion&&p.a11y.liveRegion.length>0&&p.a11y.liveRegion.remove()}},p.init=function(){p.params.loop&&p.createLoop(),p.updateContainerSize(),p.updateSlidesSize(),p.updatePagination(),p.params.scrollbar&&p.scrollbar&&(p.scrollbar.set(),p.params.scrollbarDraggable&&p.scrollbar.enableDraggable()),"slide"!==p.params.effect&&p.effects[p.params.effect]&&(p.params.loop||p.updateProgress(),p.effects[p.params.effect].setTranslate()),p.params.loop?p.slideTo(p.params.initialSlide+p.loopedSlides,0,p.params.runCallbacksOnInit):(p.slideTo(p.params.initialSlide,0,p.params.runCallbacksOnInit),0===p.params.initialSlide&&(p.parallax&&p.params.parallax&&p.parallax.setTranslate(),p.lazy&&p.params.lazyLoading&&(p.lazy.load(),p.lazy.initialImageLoaded=!0))),p.attachEvents(),p.params.observer&&p.support.observer&&p.initObservers(),p.params.preloadImages&&!p.params.lazyLoading&&p.preloadImages(),p.params.autoplay&&p.startAutoplay(),p.params.keyboardControl&&p.enableKeyboardControl&&p.enableKeyboardControl(),p.params.mousewheelControl&&p.enableMousewheelControl&&p.enableMousewheelControl(),p.params.hashnav&&p.hashnav&&p.hashnav.init(),p.params.a11y&&p.a11y&&p.a11y.init(),p.emit("onInit",p)},p.cleanupStyles=function(){p.container.removeClass(p.classNames.join(" ")).removeAttr("style"),p.wrapper.removeAttr("style"),p.slides&&p.slides.length&&p.slides.removeClass([p.params.slideVisibleClass,p.params.slideActiveClass,p.params.slideNextClass,p.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),p.paginationContainer&&p.paginationContainer.length&&p.paginationContainer.removeClass(p.params.paginationHiddenClass),p.bullets&&p.bullets.length&&p.bullets.removeClass(p.params.bulletActiveClass),p.params.prevButton&&e(p.params.prevButton).removeClass(p.params.buttonDisabledClass),p.params.nextButton&&e(p.params.nextButton).removeClass(p.params.buttonDisabledClass),p.params.scrollbar&&p.scrollbar&&(p.scrollbar.track&&p.scrollbar.track.length&&p.scrollbar.track.removeAttr("style"),p.scrollbar.drag&&p.scrollbar.drag.length&&p.scrollbar.drag.removeAttr("style"))},p.destroy=function(e,t){p.detachEvents(),p.stopAutoplay(),p.params.scrollbar&&p.scrollbar&&p.params.scrollbarDraggable&&p.scrollbar.disableDraggable(),p.params.loop&&p.destroyLoop(),t&&p.cleanupStyles(),p.disconnectObservers(),p.params.keyboardControl&&p.disableKeyboardControl&&p.disableKeyboardControl(),p.params.mousewheelControl&&p.disableMousewheelControl&&p.disableMousewheelControl(),p.params.a11y&&p.a11y&&p.a11y.destroy(),p.emit("onDestroy"),!1!==e&&(p=null)},p.init(),p}p.container.each((function(){new i(this,n)}))}function P(){return"horizontal"===p.params.direction}function Y(e){return Math.floor(e)}function O(){p.autoplayTimeoutId=setTimeout((function(){p.params.loop?(p.fixLoop(),p._slideNext()):p.isEnd?n.autoplayStopOnLast?p.stopAutoplay():p._slideTo(0):p._slideNext()}),p.params.autoplay)}function I(t,n){var i=e(t.target);if(!i.is(n))if("string"==typeof n)i=i.parents(n);else if(n.nodeType){var r;return i.parents().each((function(e,t){t===n&&(r=n)})),r?n:void 0}if(0!==i.length)return i[0]}function j(e,t){t=t||{};var n=new(window.MutationObserver||window.WebkitMutationObserver)((function(e){e.forEach((function(e){p.onResize(!0),p.emit("onObserverUpdate",p,e)}))}));n.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),p.observers.push(n)}function H(e){e.originalEvent&&(e=e.originalEvent);var t=e.keyCode||e.charCode;if(!p.params.allowSwipeToNext&&(P()&&39===t||!P()&&40===t))return!1;if(!p.params.allowSwipeToPrev&&(P()&&37===t||!P()&&38===t))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===t||39===t||38===t||40===t){var n=!1;if(p.container.parents(".swiper-slide").length>0&&0===p.container.parents(".swiper-slide-active").length)return;var i={left:window.pageXOffset,top:window.pageYOffset},r=window.innerWidth,o=window.innerHeight,a=p.container.offset();p.rtl&&(a.left=a.left-p.container[0].scrollLeft);for(var s=[[a.left,a.top],[a.left+p.width,a.top],[a.left,a.top+p.height],[a.left+p.width,a.top+p.height]],l=0;l<s.length;l++){var u=s[l];u[0]>=i.left&&u[0]<=i.left+r&&u[1]>=i.top&&u[1]<=i.top+o&&(n=!0)}if(!n)return}P()?(37!==t&&39!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===t&&!p.rtl||37===t&&p.rtl)&&p.slideNext(),(37===t&&!p.rtl||39===t&&p.rtl)&&p.slidePrev()):(38!==t&&40!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),40===t&&p.slideNext(),38===t&&p.slidePrev())}}function B(e){e.originalEvent&&(e=e.originalEvent);var t=p.mousewheel.event,n=0,i=p.rtl?-1:1;if(e.detail)n=-e.detail;else if("mousewheel"===t)if(p.params.mousewheelForceToAxis)if(P()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;n=e.wheelDeltaX*i}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;n=e.wheelDeltaY}else n=Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)?-e.wheelDeltaX*i:-e.wheelDeltaY;else if("DOMMouseScroll"===t)n=-e.detail;else if("wheel"===t)if(p.params.mousewheelForceToAxis)if(P()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;n=-e.deltaX*i}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;n=-e.deltaY}else n=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX*i:-e.deltaY;if(0!==n){if(p.params.mousewheelInvert&&(n=-n),p.params.freeMode){var r=p.getWrapperTranslate()+n*p.params.mousewheelSensitivity,o=p.isBeginning,a=p.isEnd;if(r>=p.minTranslate()&&(r=p.minTranslate()),r<=p.maxTranslate()&&(r=p.maxTranslate()),p.setWrapperTransition(0),p.setWrapperTranslate(r),p.updateProgress(),p.updateActiveIndex(),(!o&&p.isBeginning||!a&&p.isEnd)&&p.updateClasses(),p.params.freeModeSticky&&(clearTimeout(p.mousewheel.timeout),p.mousewheel.timeout=setTimeout((function(){p.slideReset()}),300)),0===r||r===p.maxTranslate())return}else{if((new window.Date).getTime()-p.mousewheel.lastScrollTime>60)if(n<0)if(p.isEnd&&!p.params.loop||p.animating){if(p.params.mousewheelReleaseOnEdges)return!0}else p.slideNext();else if(p.isBeginning&&!p.params.loop||p.animating){if(p.params.mousewheelReleaseOnEdges)return!0}else p.slidePrev();p.mousewheel.lastScrollTime=(new window.Date).getTime()}return p.params.autoplay&&p.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function N(t,n){var i,r,o;t=e(t);var a=p.rtl?-1:1;i=t.attr("data-swiper-parallax")||"0",r=t.attr("data-swiper-parallax-x"),o=t.attr("data-swiper-parallax-y"),r||o?(r=r||"0",o=o||"0"):P()?(r=i,o="0"):(o=i,r="0"),r=r.indexOf("%")>=0?parseInt(r,10)*n*a+"%":r*n*a+"px",o=o.indexOf("%")>=0?parseInt(o,10)*n+"%":o*n+"px",t.transform("translate3d("+r+", "+o+",0px)")}function R(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}};i.prototype={isSafari:(n=navigator.userAgent.toLowerCase(),n.indexOf("safari")>=0&&n.indexOf("chrome")<0&&n.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1},device:function(){var e=navigator.userAgent,t=e.match(/(Android);?[\s\/]+([\d.]+)?/),n=e.match(/(iPad).*OS\s([\d_]+)/),i=e.match(/(iPod)(.*OS\s([\d_]+))?/),r=!n&&e.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:n||r||i,android:t}}(),support:{touch:window.Modernizr&&!0===Modernizr.touch||!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch),transforms3d:window.Modernizr&&!0===Modernizr.csstransforms3d||(t=document.createElement("div").style,"webkitPerspective"in t||"MozPerspective"in t||"OPerspective"in t||"MsPerspective"in t||"perspective"in t),flexbox:function(){for(var e=document.createElement("div").style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),n=0;n<t.length;n++)if(t[n]in e)return!0}(),observer:"MutationObserver"in window||"WebkitMutationObserver"in window},plugins:{}};for(var r,o=function(){var e=function(e){var t=0;for(t=0;t<e.length;t++)this[t]=e[t];return this.length=e.length,this},t=function(t,n){var i=[],r=0;if(t&&!n&&t instanceof e)return t;if(t)if("string"==typeof t){var o,a,s=t.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){var l="div";for(0===s.indexOf("<li")&&(l="ul"),0===s.indexOf("<tr")&&(l="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(l="tr"),0===s.indexOf("<tbody")&&(l="table"),0===s.indexOf("<option")&&(l="select"),(a=document.createElement(l)).innerHTML=t,r=0;r<a.childNodes.length;r++)i.push(a.childNodes[r])}else for(o=n||"#"!==t[0]||t.match(/[ .<>:~]/)?(n||document).querySelectorAll(t):[document.getElementById(t.split("#")[1])],r=0;r<o.length;r++)o[r]&&i.push(o[r])}else if(t.nodeType||t===window||t===document)i.push(t);else if(t.length>0&&t[0].nodeType)for(r=0;r<t.length;r++)i.push(t[r]);return new e(i)};return e.prototype={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.add(t[n]);return this},removeClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.remove(t[n]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var i=0;i<this.length;i++)this[i].classList.toggle(t[n]);return this},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].setAttribute(e,t);else for(var i in e)this[n][i]=e[i],this[n].setAttribute(i,e[i]);return this},removeAttr:function(e){for(var t=0;t<this.length;t++)this[t].removeAttribute(e);return this},data:function(e,t){if(void 0!==t){for(var n=0;n<this.length;n++){var i=this[n];i.dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t}return this}if(this[0])return this[0].getAttribute("data-"+e)||(this[0].dom7ElementDataStorage&&e in this[0].dom7ElementDataStorage?this[0].dom7ElementDataStorage[e]:void 0)},transform:function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this},on:function(e,n,i,r){function o(e){var r=e.target;if(t(r).is(n))i.call(r,e);else for(var o=t(r).parents(),a=0;a<o.length;a++)t(o[a]).is(n)&&i.call(o[a],e)}var a,s,l=e.split(" ");for(a=0;a<this.length;a++)if("function"==typeof n||!1===n)for("function"==typeof n&&(i=arguments[1],r=arguments[2]||!1),s=0;s<l.length;s++)this[a].addEventListener(l[s],i,r);else for(s=0;s<l.length;s++)this[a].dom7LiveListeners||(this[a].dom7LiveListeners=[]),this[a].dom7LiveListeners.push({listener:i,liveListener:o}),this[a].addEventListener(l[s],o,r);return this},off:function(e,t,n,i){for(var r=e.split(" "),o=0;o<r.length;o++)for(var a=0;a<this.length;a++)if("function"==typeof t||!1===t)"function"==typeof t&&(n=arguments[1],i=arguments[2]||!1),this[a].removeEventListener(r[o],n,i);else if(this[a].dom7LiveListeners)for(var s=0;s<this[a].dom7LiveListeners.length;s++)this[a].dom7LiveListeners[s].listener===n&&this[a].removeEventListener(r[o],this[a].dom7LiveListeners[s].liveListener,i);return this},once:function(e,t,n,i){var r=this;function o(a){n(a),r.off(e,t,o,i)}"function"==typeof t&&(t=!1,n=arguments[1],i=arguments[2]),r.on(e,t,o,i)},trigger:function(e,t){for(var n=0;n<this.length;n++){var i;try{i=new window.CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0})}catch(n){(i=document.createEvent("Event")).initEvent(e,!0,!0),i.detail=t}this[n].dispatchEvent(i)}return this},transitionEnd:function(e){var t,n=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;function r(o){if(o.target===this)for(e.call(this,o),t=0;t<n.length;t++)i.off(n[t],r)}if(e)for(t=0;t<n.length;t++)i.on(n[t],r);return this},width:function(){return this[0]===window?window.innerWidth:this.length>0?parseFloat(this.css("width")):null},outerWidth:function(e){return this.length>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(e){return this.length>0?e?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),n=document.body,i=e.clientTop||n.clientTop||0,r=e.clientLeft||n.clientLeft||0,o=window.pageYOffset||e.scrollTop,a=window.pageXOffset||e.scrollLeft;return{top:t.top+o-i,left:t.left+a-r}}return null},css:function(e,t){var n;if(1===arguments.length){if("string"!=typeof e){for(n=0;n<this.length;n++)for(var i in e)this[n].style[i]=e[i];return this}if(this[0])return window.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(n=0;n<this.length;n++)this[n].style[e]=t;return this}return this},each:function(e){for(var t=0;t<this.length;t++)e.call(this[t],t,this[t]);return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t++)this[t].innerHTML=e;return this},is:function(n){if(!this[0])return!1;var i,r;if("string"==typeof n){var o=this[0];if(o===document)return n===document;if(o===window)return n===window;if(o.matches)return o.matches(n);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(n);if(o.mozMatchesSelector)return o.mozMatchesSelector(n);if(o.msMatchesSelector)return o.msMatchesSelector(n);for(i=t(n),r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}if(n===document)return this[0]===document;if(n===window)return this[0]===window;if(n.nodeType||n instanceof e){for(i=n.nodeType?[n]:n,r=0;r<i.length;r++)if(i[r]===this[0])return!0;return!1}return!1},index:function(){if(this[0]){for(var e=this[0],t=0;null!==(e=e.previousSibling);)1===e.nodeType&&t++;return t}},eq:function(t){if(void 0===t)return this;var n,i=this.length;return new e(t>i-1?[]:t<0?(n=i+t)<0?[]:[this[n]]:[this[t]])},append:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t;r.firstChild;)this[n].appendChild(r.firstChild)}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].appendChild(t[i]);else this[n].appendChild(t);return this},prepend:function(t){var n,i;for(n=0;n<this.length;n++)if("string"==typeof t){var r=document.createElement("div");for(r.innerHTML=t,i=r.childNodes.length-1;i>=0;i--)this[n].insertBefore(r.childNodes[i],this[n].childNodes[0])}else if(t instanceof e)for(i=0;i<t.length;i++)this[n].insertBefore(t[i],this[n].childNodes[0]);else this[n].insertBefore(t,this[n].childNodes[0]);return this},insertBefore:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0]);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r])},insertAfter:function(e){for(var n=t(e),i=0;i<this.length;i++)if(1===n.length)n[0].parentNode.insertBefore(this[i],n[0].nextSibling);else if(n.length>1)for(var r=0;r<n.length;r++)n[r].parentNode.insertBefore(this[i].cloneNode(!0),n[r].nextSibling)},next:function(n){return this.length>0?n?this[0].nextElementSibling&&t(this[0].nextElementSibling).is(n)?new e([this[0].nextElementSibling]):new e([]):this[0].nextElementSibling?new e([this[0].nextElementSibling]):new e([]):new e([])},nextAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.nextElementSibling;){var o=r.nextElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},prev:function(n){return this.length>0?n?this[0].previousElementSibling&&t(this[0].previousElementSibling).is(n)?new e([this[0].previousElementSibling]):new e([]):this[0].previousElementSibling?new e([this[0].previousElementSibling]):new e([]):new e([])},prevAll:function(n){var i=[],r=this[0];if(!r)return new e([]);for(;r.previousElementSibling;){var o=r.previousElementSibling;n?t(o).is(n)&&i.push(o):i.push(o),r=o}return new e(i)},parent:function(e){for(var n=[],i=0;i<this.length;i++)e?t(this[i].parentNode).is(e)&&n.push(this[i].parentNode):n.push(this[i].parentNode);return t(t.unique(n))},parents:function(e){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].parentNode;r;)e?t(r).is(e)&&n.push(r):n.push(r),r=r.parentNode;return t(t.unique(n))},find:function(t){for(var n=[],i=0;i<this.length;i++)for(var r=this[i].querySelectorAll(t),o=0;o<r.length;o++)n.push(r[o]);return new e(n)},children:function(n){for(var i=[],r=0;r<this.length;r++)for(var o=this[r].childNodes,a=0;a<o.length;a++)n?1===o[a].nodeType&&t(o[a]).is(n)&&i.push(o[a]):1===o[a].nodeType&&i.push(o[a]);return new e(t.unique(i))},remove:function(){for(var e=0;e<this.length;e++)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){var e,n,i=this;for(e=0;e<arguments.length;e++){var r=t(arguments[e]);for(n=0;n<r.length;n++)i[i.length]=r[n],i.length++}return i}},t.fn=e.prototype,t.unique=function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t},t}(),a=["jQuery","Zepto","Dom7"],s=0;s<a.length;s++)window[a[s]]&&l(window[a[s]]);function l(e){e.fn.swiper=function(t){var n;return e(this).each((function(){var e=new i(this,t);n||(n=e)})),n}}(r=void 0===o?window.Dom7||window.Zepto||window.jQuery:o)&&("transitionEnd"in r.fn||(r.fn.transitionEnd=function(e){var t,n=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;function r(o){if(o.target===this)for(e.call(this,o),t=0;t<n.length;t++)i.off(n[t],r)}if(e)for(t=0;t<n.length;t++)i.on(n[t],r);return this}),"transform"in r.fn||(r.fn.transform=function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this}),"transition"in r.fn||(r.fn.transition=function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this})),ionic.views.Swiper=i}(),function(e){"use strict";e.views.Toggle=e.views.View.inherit({initialize:function(t){var n=this;this.el=t.el,this.checkbox=t.checkbox,this.track=t.track,this.handle=t.handle,this.openPercent=-1,this.onChange=t.onChange||function(){},this.triggerThreshold=t.triggerThreshold||20,this.dragStartHandler=function(e){n.dragStart(e)},this.dragHandler=function(e){n.drag(e)},this.holdHandler=function(e){n.hold(e)},this.releaseHandler=function(e){n.release(e)},this.dragStartGesture=e.onGesture("dragstart",this.dragStartHandler,this.el),this.dragGesture=e.onGesture("drag",this.dragHandler,this.el),this.dragHoldGesture=e.onGesture("hold",this.holdHandler,this.el),this.dragReleaseGesture=e.onGesture("release",this.releaseHandler,this.el)},destroy:function(){e.offGesture(this.dragStartGesture,"dragstart",this.dragStartGesture),e.offGesture(this.dragGesture,"drag",this.dragGesture),e.offGesture(this.dragHoldGesture,"hold",this.holdHandler),e.offGesture(this.dragReleaseGesture,"release",this.releaseHandler)},tap:function(){"disabled"!==this.el.getAttribute("disabled")&&this.val(!this.checkbox.checked)},dragStart:function(e){this.checkbox.disabled||(this._dragInfo={width:this.el.offsetWidth,left:this.el.offsetLeft,right:this.el.offsetLeft+this.el.offsetWidth,triggerX:this.el.offsetWidth/2,initialState:this.checkbox.checked},e.gesture.srcEvent.preventDefault(),this.hold(e))},drag:function(t){var n=this;this._dragInfo&&(t.gesture.srcEvent.preventDefault(),e.requestAnimationFrame((function(){if(n._dragInfo){var e=t.gesture.touches[0].pageX-n._dragInfo.left,i=n._dragInfo.width-n.triggerThreshold;n._dragInfo.initialState?e<n.triggerThreshold?n.setOpenPercent(0):e>n._dragInfo.triggerX&&n.setOpenPercent(100):e<n._dragInfo.triggerX?n.setOpenPercent(0):e>i&&n.setOpenPercent(100)}})))},endDrag:function(){this._dragInfo=null},hold:function(){this.el.classList.add("dragging")},release:function(e){this.el.classList.remove("dragging"),this.endDrag(e)},setOpenPercent:function(t){if(this.openPercent<0||t<this.openPercent-3||t>this.openPercent+3)if(this.openPercent=t,0===t)this.val(!1);else if(100===t)this.val(!0);else{var n=Math.round(t/100*this.track.offsetWidth-this.handle.offsetWidth);n=n<1?0:n,this.handle.style[e.CSS.TRANSFORM]="translate3d("+n+"px,0,0)"}},val:function(t){return!0!==t&&!1!==t||(""!==this.handle.style[e.CSS.TRANSFORM]&&(this.handle.style[e.CSS.TRANSFORM]=""),this.checkbox.checked=t,this.openPercent=t?100:0,this.onChange&&this.onChange()),this.checkbox.checked}})}(ionic)}(),
+/**
+ * @license AngularJS v1.5.11
+ * (c) 2010-2017 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,i,r=2,o=arguments,a=o[0],s="["+(e?e+":":"")+a+"] ",l=o[1];for(s+=l.replace(/\{\d+\}/g,(function(e){var t=+e.slice(1,-1)+r;return t<o.length?Ne(o[t]):e})),s+="\nhttp://errors.angularjs.org/1.5.11/"+(e?e+"/":"")+a,i=r,n="?";i<o.length;i++,n="&")s+=n+"p"+(i-r)+"="+encodeURIComponent(Ne(o[i]));return new t(s)}}var n=/^\/(.+)\/([a-z]*)$/,i="validity",r=Object.prototype.hasOwnProperty,o=function(e){return B(e)?e.toLowerCase():e},a=function(e){return B(e)?e.toUpperCase():e};"i"!=="I".toLowerCase()&&(o=function(e){return B(e)?e.replace(/[A-Z]/g,(function(e){return String.fromCharCode(32|e.charCodeAt(0))})):e},a=function(e){return B(e)?e.replace(/[a-z]/g,(function(e){return String.fromCharCode(-33&e.charCodeAt(0))})):e});var s,l,u,c,d=[].slice,h=[].splice,f=[].push,p=Object.prototype.toString,m=Object.getPrototypeOf,g=t("ng"),v=e.angular||(e.angular={}),_=0;function y(e){if(null==e||U(e))return!1;if(F(e)||B(e)||l&&e instanceof l)return!0;var t="length"in Object(e)&&e.length;return N(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function b(e,t,n){var i,o;if(e)if(z(e))for(i in e)"prototype"===i||"length"===i||"name"===i||e.hasOwnProperty&&!e.hasOwnProperty(i)||t.call(n,e[i],i,e);else if(F(e)||y(e)){var a="object"!=typeof e;for(i=0,o=e.length;i<o;i++)(a||i in e)&&t.call(n,e[i],i,e)}else if(e.forEach&&e.forEach!==b)e.forEach(t,n,e);else if(H(e))for(i in e)t.call(n,e[i],i,e);else if("function"==typeof e.hasOwnProperty)for(i in e)e.hasOwnProperty(i)&&t.call(n,e[i],i,e);else for(i in e)r.call(e,i)&&t.call(n,e[i],i,e);return e}function w(e,t,n){for(var i=Object.keys(e).sort(),r=0;r<i.length;r++)t.call(n,e[i[r]],i[r]);return i}function L(e){return function(t,n){e(n,t)}}function M(){return++_}function k(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function x(e,t,n){for(var i=e.$$hashKey,r=0,o=t.length;r<o;++r){var a=t[r];if(j(a)||z(a))for(var s=Object.keys(a),l=0,u=s.length;l<u;l++){var c=s[l],d=a[c];n&&j(d)?R(d)?e[c]=new Date(d.valueOf()):V(d)?e[c]=new RegExp(d):d.nodeName?e[c]=d.cloneNode(!0):K(d)?e[c]=d.clone():(j(e[c])||(e[c]=F(d)?[]:{}),x(e[c],[d],!0)):e[c]=d}}return k(e,i),e}function S(e){return x(e,d.call(arguments,1),!1)}function T(e){return x(e,d.call(arguments,1),!0)}function $(e){return parseInt(e,10)}s=e.document.documentMode;var D=Number.isNaN||function(e){return e!=e};function C(e,t){return S(Object.create(e),t)}function E(){}function A(e){return e}function P(e){return function(){return e}}function Y(e){return z(e.toString)&&e.toString!==p}function O(e){return void 0===e}function I(e){return void 0!==e}function j(e){return null!==e&&"object"==typeof e}function H(e){return null!==e&&"object"==typeof e&&!m(e)}function B(e){return"string"==typeof e}function N(e){return"number"==typeof e}function R(e){return"[object Date]"===p.call(e)}E.$inject=[],A.$inject=[];var F=Array.isArray;function z(e){return"function"==typeof e}function V(e){return"[object RegExp]"===p.call(e)}function U(e){return e&&e.window===e}function W(e){return e&&e.$evalAsync&&e.$watch}function q(e){return"boolean"==typeof e}function G(e){return e&&z(e.then)}var Z=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,J=function(e){return B(e)?e.trim():e},X=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function K(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function Q(e){return o(e.nodeName||e[0]&&e[0].nodeName)}function ee(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function te(e,t){var n,i=[],o=[];if(t){if(function(e){return e&&N(e.length)&&Z.test(p.call(e))}(t)||(n=t,"[object ArrayBuffer]"===p.call(n)))throw g("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw g("cpi","Can't copy! Source and destination are identical.");return F(t)?t.length=0:b(t,(function(e,n){"$$hashKey"!==n&&delete t[n]})),i.push(e),o.push(t),a(e,t)}return s(e);function a(e,t){var n,i=t.$$hashKey;if(F(e))for(var o=0,a=e.length;o<a;o++)t.push(s(e[o]));else if(H(e))for(n in e)t[n]=s(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=s(e[n]));else for(n in e)r.call(e,n)&&(t[n]=s(e[n]));return k(t,i),t}function s(e){if(!j(e))return e;var t=i.indexOf(e);if(-1!==t)return o[t];if(U(e)||W(e))throw g("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var n=!1,r=function(e){switch(p.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(s(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(z(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===r&&(r=F(e)?[]:Object.create(m(e)),n=!0),i.push(e),o.push(r),n?a(e,r):r}}function ne(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,i,r,o=typeof e;if(o===typeof t&&"object"===o){if(!F(e)){if(R(e))return!!R(t)&&ne(e.getTime(),t.getTime());if(V(e))return!!V(t)&&e.toString()===t.toString();if(W(e)||W(t)||U(e)||U(t)||F(t)||R(t)||V(t))return!1;for(i in r=Pe(),e)if("$"!==i.charAt(0)&&!z(e[i])){if(!ne(e[i],t[i]))return!1;r[i]=!0}for(i in t)if(!(i in r)&&"$"!==i.charAt(0)&&I(t[i])&&!z(t[i]))return!1;return!0}if(!F(t))return!1;if((n=e.length)===t.length){for(i=0;i<n;i++)if(!ne(e[i],t[i]))return!1;return!0}}return!1}var ie=function(){if(!I(ie.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");ie.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else ie.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return ie.rules},re=function(){if(I(re.name_))return re.name_;var t,n,i,r,o=be.length;for(n=0;n<o;++n)if(i=be[n],t=e.document.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return re.name_=r};function oe(e,t,n){return e.concat(d.call(t,n))}function ae(e,t){return d.call(e,t||0)}function se(e,t){var n=arguments.length>2?ae(arguments,2):[];return!z(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,oe(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function le(t,n){var i=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=void 0:U(n)?i="$WINDOW":n&&e.document===n?i="$DOCUMENT":W(n)&&(i="$SCOPE"),i}function ue(e,t){if(!O(e))return N(t)||(t=t?2:null),JSON.stringify(e,le,t)}function ce(e){return B(e)?JSON.parse(e):e}var de=/:/g;function he(e,t){e=e.replace(de,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return D(n)?t:n}function fe(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset();return function(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}(e,n*(he(t,i)-i))}function pe(e){e=l(e).clone();try{e.empty()}catch(e){}var t=l("<div>").append(e).html();try{return e[0].nodeType===Oe?o(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,(function(e,t){return"<"+o(t)}))}catch(e){return o(t)}}function me(e){try{return decodeURIComponent(e)}catch(e){}}function ge(e){var t={};return b((e||"").split("&"),(function(e){var n,i,o;e&&(i=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(i=e.substring(0,n),o=e.substring(n+1)),I(i=me(i))&&(o=!I(o)||me(o),r.call(t,i)?F(t[i])?t[i].push(o):t[i]=[t[i],o]:t[i]=o))})),t}function ve(e){var t=[];return b(e,(function(e,n){F(e)?b(e,(function(e){t.push(ye(n,!0)+(!0===e?"":"="+ye(e,!0)))})):t.push(ye(n,!0)+(!0===e?"":"="+ye(e,!0)))})),t.length?t.join("&"):""}function _e(e){return ye(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ye(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var be=["ng-","data-ng-","ng:","x-ng-"],we=function(e){var t=e.currentScript,n=t&&t.getAttribute("src");if(!n)return!0;var i=e.createElement("a");if(i.href=n,e.location.origin===i.origin)return!0;switch(i.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(e.document);function Le(t,n,i){j(i)||(i={}),i=S({strictDi:!1},i);var r=function(){if((t=l(t)).injector()){var r=t[0]===e.document?"document":pe(t);throw g("btstrpd","App already bootstrapped with this element '{0}'",r.replace(/</,"&lt;").replace(/>/,"&gt;"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),i.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=Rt(n,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply((function(){t.data("$injector",i),n(t)(e)}))}]),o},o=/^NG_ENABLE_DEBUG_INFO!/,a=/^NG_DEFER_BOOTSTRAP!/;if(e&&o.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(o,"")),e&&!a.test(e.name))return r();e.name=e.name.replace(a,""),v.resumeBootstrap=function(e){return b(e,(function(e){n.push(e)})),r()},z(v.resumeDeferredBootstrap)&&v.resumeDeferredBootstrap()}function Me(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ke(e){var t=v.element(e).injector();if(!t)throw g("test","no injector found for element argument to getTestability");return t.get("$$testability")}var xe=/[A-Z]/g;function Se(e,t){return t=t||"_",e.replace(xe,(function(e,n){return(n?t:"")+e.toLowerCase()}))}var Te=!1;function $e(e,t,n){if(!e)throw g("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function De(e,t,n){return n&&F(e)&&(e=e[e.length-1]),$e(z(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function Ce(e,t){if("hasOwnProperty"===e)throw g("badname","hasOwnProperty is not a valid {0} name",t)}function Ee(e,t,n){if(!t)return e;for(var i,r=t.split("."),o=e,a=r.length,s=0;s<a;s++)i=r[s],e&&(e=(o=e)[i]);return!n&&z(e)?se(o,e):e}function Ae(e){for(var t,n=e[0],i=e[e.length-1],r=1;n!==i&&(n=n.nextSibling);r++)(t||e[r]!==n)&&(t||(t=l(d.call(e,0,r))),t.push(n));return t||e}function Pe(){return Object.create(null)}var Ye=1,Oe=3,Ie=8,je=9,He=11;function Be(e,t){if(F(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(j(e))for(var r in t=t||{},e)"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r]);return t||e}function Ne(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):O(e)?"undefined":"string"!=typeof e?function(e){var t=[];return JSON.stringify(e,(function(e,n){if(j(n=le(e,n))){if(t.indexOf(n)>=0)return"...";t.push(n)}return n}))}(e):e}var Re={full:"1.5.11",major:1,minor:5,dot:11,codeName:"princely-quest"};st.expando="ng339";var Fe=st.cache={},ze=1,Ve=function(e,t,n){e.addEventListener(t,n,!1)},Ue=function(e,t,n){e.removeEventListener(t,n,!1)};st._data=function(e){return this.cache[e[this.expando]]||{}};var We=/([:\-_]+(.))/g,qe=/^moz([A-Z])/,Ge={mouseleave:"mouseout",mouseenter:"mouseover"},Ze=t("jqLite");function Je(e){return e.replace(We,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(qe,"Moz$1")}var Xe=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ke=/<|&#?\w+;/,Qe=/<([\w:-]+)/,et=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,tt={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function nt(e){return!Ke.test(e)}function it(e){var t=e.nodeType;return t===Ye||!t||t===je}function rt(e,t){var n,i,r,o,a=t.createDocumentFragment(),s=[];if(nt(e))s.push(t.createTextNode(e));else{for(n=a.appendChild(t.createElement("div")),i=(Qe.exec(e)||["",""])[1].toLowerCase(),r=tt[i]||tt._default,n.innerHTML=r[1]+e.replace(et,"<$1></$2>")+r[2],o=r[0];o--;)n=n.lastChild;s=oe(s,n.childNodes),(n=a.firstChild).textContent=""}return a.textContent="",a.innerHTML="",b(s,(function(e){a.appendChild(e)})),a}function ot(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}tt.optgroup=tt.option,tt.tbody=tt.tfoot=tt.colgroup=tt.caption=tt.thead,tt.th=tt.td;var at=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};function st(t){if(t instanceof st)return t;var n,i,r,o;if(B(t)&&(t=J(t),n=!0),!(this instanceof st)){if(n&&"<"!==t.charAt(0))throw Ze("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new st(t)}vt(this,n?(i=t,r=r||e.document,(o=Xe.exec(i))?[r.createElement(o[1])]:(o=rt(i,r))?o.childNodes:[]):t)}function lt(e){return e.cloneNode(!0)}function ut(e,t){if(t||dt(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,r=n.length;i<r;i++)dt(n[i])}function ct(e,t,n,i){if(I(i))throw Ze("offargs","jqLite#off() does not support the `selector` argument");var r=ht(e),o=r&&r.events,a=r&&r.handle;if(a)if(t){var s=function(t){var i=o[t];I(n)&&ee(i||[],n),I(n)&&i&&i.length>0||(Ue(e,t,a),delete o[t])};b(t.split(" "),(function(e){s(e),Ge[e]&&s(Ge[e])}))}else for(t in o)"$destroy"!==t&&Ue(e,t,a),delete o[t]}function dt(e,t){var n=e.ng339,i=n&&Fe[n];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),ct(e)),delete Fe[n],e.ng339=void 0}}function ht(e,t){var n=e.ng339,i=n&&Fe[n];return t&&!i&&(e.ng339=n=++ze,i=Fe[n]={events:{},data:{},handle:void 0}),i}function ft(e,t,n){if(it(e)){var i=I(n),r=!i&&t&&!j(t),o=!t,a=ht(e,!r),s=a&&a.data;if(i)s[t]=n;else{if(o)return s;if(r)return s&&s[t];S(s,t)}}}function pt(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function mt(e,t){t&&e.setAttribute&&b(t.split(" "),(function(t){e.setAttribute("class",J((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+J(t)+" "," ")))}))}function gt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");b(t.split(" "),(function(e){e=J(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")})),e.setAttribute("class",J(n))}}function vt(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;i<n;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function _t(e,t){return yt(e,"$"+(t||"ngController")+"Controller")}function yt(e,t,n){e.nodeType===je&&(e=e.documentElement);for(var i=F(t)?t:[t];e;){for(var r=0,o=i.length;r<o;r++)if(I(n=l.data(e,i[r])))return n;e=e.parentNode||e.nodeType===He&&e.host}}function bt(e){for(ut(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function wt(e,t){t||ut(e);var n=e.parentNode;n&&n.removeChild(e)}var Lt=st.prototype={ready:function(t){var n=!1;function i(){n||(n=!0,t())}"complete"===e.document.readyState?e.setTimeout(i):(this.on("DOMContentLoaded",i),st(e).on("load",i))},toString:function(){var e=[];return b(this,(function(t){e.push(""+t)})),"["+e.join(", ")+"]"},eq:function(e){return l(e>=0?this[e]:this[this.length+e])},length:0,push:f,sort:[].sort,splice:[].splice},Mt={};b("multiple,selected,checked,disabled,readOnly,required,open".split(","),(function(e){Mt[o(e)]=e}));var kt={};b("input,select,option,textarea,button,form,details".split(","),(function(e){kt[e]=!0}));var xt={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};function St(e,t){var n=Mt[t.toLowerCase()];return n&&kt[Q(e)]&&n}function Tt(e,t,n){n.call(e,t)}function $t(e,t,n){var i=t.relatedTarget;i&&(i===e||at.call(e,i))||n.call(e,t)}function Dt(){this.$get=function(){return S(st,{hasClass:function(e,t){return e.attr&&(e=e[0]),pt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),gt(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),mt(e,t)}})}}function Ct(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var i=typeof e;return"function"===i||"object"===i&&null!==e?e.$$hashKey=i+":"+(t||M)():i+":"+e}function Et(e,t){if(t){var n=0;this.nextUid=function(){return++n}}b(e,this.put,this)}b({data:ft,removeData:dt,hasData:function(e){for(var t in Fe[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)dt(e[t])}},(function(e,t){st[t]=e})),b({data:ft,inheritedData:yt,scope:function(e){return l.data(e,"$scope")||yt(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return l.data(e,"$isolateScope")||l.data(e,"$isolateScopeNoTemplate")},controller:_t,injector:function(e){return yt(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:pt,css:function(e,t,n){if(t=Je(t),!I(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var i=e.nodeType;if(i!==Oe&&2!==i&&i!==Ie){var r=o(t);if(Mt[r]){if(!I(n))return e[t]||(e.attributes.getNamedItem(t)||E).specified?r:void 0;n?(e[t]=!0,e.setAttribute(t,r)):(e[t]=!1,e.removeAttribute(r))}else if(I(n))e.setAttribute(t,n);else if(e.getAttribute){var a=e.getAttribute(t,2);return null===a?void 0:a}}},prop:function(e,t,n){if(!I(n))return e[t];e[t]=n},text:function(){return e.$dv="",e;function e(e,t){if(O(t)){var n=e.nodeType;return n===Ye||n===Oe?e.textContent:""}e.textContent=t}}(),val:function(e,t){if(O(t)){if(e.multiple&&"select"===Q(e)){var n=[];return b(e.options,(function(e){e.selected&&n.push(e.value||e.text)})),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(O(t))return e.innerHTML;ut(e,!0),e.innerHTML=t},empty:bt},(function(e,t){st.prototype[t]=function(t,n){var i,r,o=this.length;if(e!==bt&&O(2===e.length&&e!==pt&&e!==_t?t:n)){if(j(t)){for(i=0;i<o;i++)if(e===ft)e(this[i],t);else for(r in t)e(this[i],r,t[r]);return this}for(var a=e.$dv,s=O(a)?Math.min(o,1):o,l=0;l<s;l++){var u=e(this[l],t,n);a=a?a+u:u}return a}for(i=0;i<o;i++)e(this[i],t,n);return this}})),b({removeData:dt,on:function(e,t,n,i){if(I(i))throw Ze("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(it(e)){var r=ht(e,!0),o=r.events,a=r.handle;a||(a=r.handle=function(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=t[i||n.type],o=r?r.length:0;if(o){if(O(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=r.specialHandlerWrapper||Tt;o>1&&(r=Be(r));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,r[l])}};return n.elem=e,n}(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,u=function(t,i,r){var s=o[t];s||((s=o[t]=[]).specialHandlerWrapper=i,"$destroy"===t||r||Ve(e,t,a)),s.push(n)};l--;)t=s[l],Ge[t]?(u(Ge[t],$t),u(t,void 0,!0)):u(t)}},off:ct,one:function(e,t,n){(e=l(e)).on(t,(function i(){e.off(t,n),e.off(t,i)})),e.on(t,n)},replaceWith:function(e,t){var n,i=e.parentNode;ut(e),b(new st(t),(function(t){n?i.insertBefore(t,n.nextSibling):i.replaceChild(t,e),n=t}))},children:function(e){var t=[];return b(e.childNodes,(function(e){e.nodeType===Ye&&t.push(e)})),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Ye||n===He)for(var i=0,r=(t=new st(t)).length;i<r;i++){var o=t[i];e.appendChild(o)}},prepend:function(e,t){if(e.nodeType===Ye){var n=e.firstChild;b(new st(t),(function(t){e.insertBefore(t,n)}))}},wrap:function(e,t){ot(e,l(t).eq(0).clone()[0])},remove:wt,detach:function(e){wt(e,!0)},after:function(e,t){var n=e,i=e.parentNode;if(i)for(var r=0,o=(t=new st(t)).length;r<o;r++){var a=t[r];i.insertBefore(a,n.nextSibling),n=a}},addClass:gt,removeClass:mt,toggleClass:function(e,t,n){t&&b(t.split(" "),(function(t){var i=n;O(i)&&(i=!pt(e,t)),(i?gt:mt)(e,t)}))},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==He?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:lt,triggerHandler:function(e,t,n){var i,r,o,a=t.type||t,s=ht(e),l=s&&s.events,u=l&&l[a];u&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:a,target:e},t.type&&(i=S(i,t)),r=Be(u),o=n?[i].concat(n):[i],b(r,(function(t){i.isImmediatePropagationStopped()||t.apply(e,o)})))}},(function(e,t){st.prototype[t]=function(t,n,i){for(var r,o=0,a=this.length;o<a;o++)O(r)?I(r=e(this[o],t,n,i))&&(r=l(r)):vt(r,e(this[o],t,n,i));return I(r)?r:this}})),st.prototype.bind=st.prototype.on,st.prototype.unbind=st.prototype.off,Et.prototype={put:function(e,t){this[Ct(e,this.nextUid)]=t},get:function(e){return this[Ct(e,this.nextUid)]},remove:function(e){var t=this[e=Ct(e,this.nextUid)];return delete this[e],t}};var At=[function(){this.$get=[function(){return Et}]}],Pt=/^([^(]+?)=>/,Yt=/^[^(]*\(\s*([^)]*)\)/m,Ot=/,/,It=/^\s*(_?)(\S+?)\1\s*$/,jt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ht=t("$injector");function Bt(e){return Function.prototype.toString.call(e)+" "}function Nt(e){var t=Bt(e).replace(jt,"");return t.match(Pt)||t.match(Yt)}function Rt(e,t){t=!0===t;var n={},i="Provider",r=[],o=new Et([],!0),a={$provide:{provider:p(m),factory:p(_),service:p((function(e,t){return _(e,["$injector",function(e){return e.instantiate(t)}])})),value:p((function(e,t){return _(e,P(t),!1)})),constant:p((function(e,t){Ce(e,"constant"),a[e]=t,u[e]=t})),decorator:function(e,t){var n=l.get(e+i),r=n.$get;n.$get=function(){var e=h.invoke(r,n);return h.invoke(t,null,{$delegate:e})}}}},l=a.$injector=y(a,(function(e,t){throw v.isString(t)&&r.push(t),Ht("unpr","Unknown provider: {0}",r.join(" <- "))})),u={},d=y(u,(function(e,t){var n=l.get(e+i,t);return h.invoke(n.$get,n,void 0,e)})),h=d;a["$injector"+i]={$get:P(d)};var f=function e(t){$e(O(t)||F(t),"modulesToLoad","not an array");var n,i=[];return b(t,(function(t){if(!o.get(t)){o.put(t,!0);try{B(t)?(n=c(t),i=i.concat(e(n.requires)).concat(n._runBlocks),r(n._invokeQueue),r(n._configBlocks)):z(t)?i.push(l.invoke(t)):F(t)?i.push(l.invoke(t)):De(t,"module")}catch(e){throw F(t)&&(t=t[t.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ht("modulerr","Failed to instantiate module {0} due to:\n{1}",t,e.stack||e.message||e)}}function r(e){var t,n;for(t=0,n=e.length;t<n;t++){var i=e[t],r=l.get(i[0]);r[i[1]].apply(r,i[2])}}})),i}(e);return(h=d.get("$injector")).strictDi=t,b(f,(function(e){e&&h.invoke(e)})),h;function p(e){return function(t,n){if(!j(t))return e(t,n);b(t,L(e))}}function m(e,t){if(Ce(e,"service"),(z(t)||F(t))&&(t=l.instantiate(t)),!t.$get)throw Ht("pget","Provider '{0}' must define $get factory method.",e);return a[e+i]=t}function g(e,t){return function(){var n=h.invoke(t,this);if(O(n))throw Ht("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function _(e,t,n){return m(e,{$get:!1!==n?g(e,t):t})}function y(e,o){function l(t,i){if(e.hasOwnProperty(t)){if(e[t]===n)throw Ht("cdep","Circular dependency found: {0}",t+" <- "+r.join(" <- "));return e[t]}try{return r.unshift(t),e[t]=n,e[t]=o(t,i),e[t]}catch(i){throw e[t]===n&&delete e[t],i}finally{r.shift()}}function u(e,n,i){for(var r=[],o=Rt.$$annotate(e,t,i),a=0,s=o.length;a<s;a++){var u=o[a];if("string"!=typeof u)throw Ht("itkn","Incorrect injection token! Expected service name as string, got {0}",u);r.push(n&&n.hasOwnProperty(u)?n[u]:l(u,i))}return r}return{invoke:function(e,t,n,i){"string"==typeof n&&(i=n,n=null);var r,o=u(e,n,i);return F(e)&&(e=e[e.length-1]),r=e,s<=11||"function"!=typeof r||!/^(?:class\b|constructor\()/.test(Bt(r))?e.apply(t,o):(o.unshift(null),new(Function.prototype.bind.apply(e,o)))},instantiate:function(e,t,n){var i=F(e)?e[e.length-1]:e,r=u(e,t,n);return r.unshift(null),new(Function.prototype.bind.apply(i,r))},get:l,annotate:Rt.$$annotate,has:function(t){return a.hasOwnProperty(t+i)||e.hasOwnProperty(t)}}}}function Ft(){var t=!0;this.disableAutoScrolling=function(){t=!1},this.$get=["$window","$location","$rootScope",function(n,i,r){var o=n.document;function a(e){if(e){e.scrollIntoView();var t=function(){var e=s.yOffset;if(z(e))e=e();else if(K(e)){var t=e[0];e="fixed"!==n.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else N(e)||(e=0);return e}();if(t){var i=e.getBoundingClientRect().top;n.scrollBy(0,i-t)}}else n.scrollTo(0,0)}function s(e){var t,n,r;(e=B(e)?e:N(e)?e.toString():i.hash())?(t=o.getElementById(e))?a(t):(n=o.getElementsByName(e),r=null,Array.prototype.some.call(n,(function(e){if("a"===Q(e))return r=e,!0})),(t=r)?a(t):"top"===e&&a(null)):a(null)}return t&&r.$watch((function(){return i.hash()}),(function(t,n){var i,o;t===n&&""===t||(i=function(){r.$evalAsync(s)},"complete"===(o=o||e).document.readyState?o.setTimeout(i):l(o).on("load",i))})),s}]}Rt.$$annotate=function(e,t,n){var i,r;if("function"==typeof e){if(!(i=e.$inject)){if(i=[],e.length){if(t)throw B(n)&&n||(n=e.name||function(e){var t=Nt(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Ht("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);b(Nt(e)[1].split(Ot),(function(e){e.replace(It,(function(e,t,n){i.push(n)}))}))}e.$inject=i}}else F(e)?(De(e[r=e.length-1],"fn"),i=e.slice(0,r)):De(e,"fn",!0);return i};var zt=t("$animate"),Vt=1;function Ut(e,t){return e||t?e?t?(F(e)&&(e=e.join(" ")),F(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function Wt(e){return j(e)?e:{}}var qt=function(){this.$get=E},Gt=function(){var e=new Et,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){return{enabled:E,on:E,off:E,pin:E,push:function(a,s,l,u){u&&u(),(l=l||{}).from&&a.css(l.from),l.to&&a.css(l.to),(l.addClass||l.removeClass)&&function(n,a,s){var l=e.get(n)||{},u=r(l,a,!0),c=r(l,s,!1);(u||c)&&(e.put(n,l),t.push(n),1===t.length&&i.$$postDigest(o))}(a,l.addClass,l.removeClass);var c=new n;return c.complete(),c}};function r(e,t,n){var i=!1;return t&&b(t=B(t)?t.split(" "):F(t)?t:[],(function(t){t&&(i=!0,e[t]=n)})),i}function o(){b(t,(function(t){var n=e.get(t);if(n){var i=function(e){B(e)&&(e=e.split(" "));var t=Pe();return b(e,(function(e){e.length&&(t[e]=!0)})),t}(t.attr("class")),r="",o="";b(n,(function(e,t){e!==!!i[t]&&(e?r+=(r.length?" ":"")+t:o+=(o.length?" ":"")+t)})),b(t,(function(e){r&&gt(e,r),o&&mt(e,o)})),e.remove(t)}})),t.length=0}}]},Zt=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw zt("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";t.$$registeredAnimations[n.substr(1)]=r,e.factory(r,i)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)ng-animate(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw zt("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var i=function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Vt)return n}}(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,i,r,o){return i=i&&l(i),r=r&&l(r),t(n,i=i||r.parent(),r),e.push(n,"enter",Wt(o))},move:function(n,i,r,o){return i=i&&l(i),r=r&&l(r),t(n,i=i||r.parent(),r),e.push(n,"move",Wt(o))},leave:function(t,n){return e.push(t,"leave",Wt(n),(function(){t.remove()}))},addClass:function(t,n,i){return(i=Wt(i)).addClass=Ut(i.addclass,n),e.push(t,"addClass",i)},removeClass:function(t,n,i){return(i=Wt(i)).removeClass=Ut(i.removeClass,n),e.push(t,"removeClass",i)},setClass:function(t,n,i,r){return(r=Wt(r)).addClass=Ut(r.addClass,n),r.removeClass=Ut(r.removeClass,i),e.push(t,"setClass",r)},animate:function(t,n,i,r,o){return(o=Wt(o)).from=o.from?S(o.from,n):n,o.to=o.to?S(o.to,i):i,r=r||"ng-inline-animate",o.tempClasses=Ut(o.tempClasses,r),e.push(t,"animate",o)}}}]}],Jt=function(){this.$get=["$$rAF",function(e){var t=[];function n(n){t.push(n),t.length>1||e((function(){for(var e=0;e<t.length;e++)t[e]();t=[]}))}return function(){var e=!1;return n((function(){e=!0})),function(t){e?t():n(t)}}}]},Xt=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,i,r){function o(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){var n=i[0];n&&n.hidden?function(e){r(e,0,!1)}(e):t(e)},this._state=0}return o.chain=function(e,t){var n=0;!function i(){n!==e.length?e[n]((function(e){!1!==e?(n++,i()):t(!1)})):t(!0)}()},o.all=function(e,t){var n=0,i=!0;function r(r){i=i&&r,++n===e.length&&t(i)}b(e,(function(e){e.done(r)}))},o.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:E,getPromise:function(){if(!this.promise){var t=this;this.promise=e((function(e,n){t.done((function(t){!1===t?n():e()}))}))}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick((function(){t._resolve(e)})))},_resolve:function(e){2!==this._state&&(b(this._doneCallbacks,(function(t){t(e)})),this._doneCallbacks.length=0,this._state=2)}},o}]},Kt=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,i){var r=i||{};r.$$prepared||(r=te(r)),r.cleanupStyles&&(r.from=r.to=null),r.from&&(t.css(r.from),r.from=null);var o,a=new n;return{start:s,end:s};function s(){return e((function(){r.addClass&&(t.addClass(r.addClass),r.addClass=null),r.removeClass&&(t.removeClass(r.removeClass),r.removeClass=null),r.to&&(t.css(r.to),r.to=null),o||a.complete(),o=!0})),a}}}]};function Qt(e,t,n,i){var r=this,o=e.location,a=e.history,s=e.setTimeout,u=e.clearTimeout,c={};r.isMock=!1;var d=0,h=[];function f(e){try{e.apply(null,ae(arguments,1))}finally{if(0==--d)for(;h.length;)try{h.pop()()}catch(e){n.error(e)}}}r.$$completeOutstandingRequest=f,r.$$incOutstandingRequestCount=function(){d++},r.notifyWhenNoOutstandingRequests=function(e){0===d?e():h.push(e)};var p,m,g=o.href,v=t.find("base"),_=null,y=i.history?function(){try{return a.state}catch(e){}}:E;x(),m=p,r.url=function(t,n,s){if(O(s)&&(s=null),o!==e.location&&(o=e.location),a!==e.history&&(a=e.history),t){var l=m===s;if(g===t&&(!i.history||l))return r;var u=g&&Jn(g)===Jn(t);return g=t,m=s,!i.history||u&&l?(u||(_=t),n?o.replace(t):u?o.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(t):o.href=t,o.href!==t&&(_=t)):(a[n?"replaceState":"pushState"](s,"",t),x(),m=p),_&&(_=t),r}return _||o.href.replace(/%27/g,"'")},r.state=function(){return p};var w=[],L=!1;function M(){_=null,x(),S()}var k=null;function x(){ne(p=O(p=y())?null:p,k)&&(p=k),k=p}function S(){g===r.url()&&m===p||(g=r.url(),m=p,b(w,(function(e){e(r.url(),p)})))}r.onUrlChange=function(t){return L||(i.history&&l(e).on("popstate",M),l(e).on("hashchange",M),L=!0),w.push(t),t},r.$$applicationDestroyed=function(){l(e).off("hashchange popstate",M)},r.$$checkUrlChange=S,r.baseHref=function(){var e=v.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},r.defer=function(e,t){var n;return d++,n=s((function(){delete c[n],f(e)}),t||0),c[n]=!0,n},r.defer.cancel=function(e){return!!c[e]&&(delete c[e],u(e),f(E),!0)}}function en(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new Qt(e,i,t,n)}]}function tn(){this.$get=function(){var e={};function n(n,i){if(n in e)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",n);var r=0,o=S({},i,{id:n}),a=Pe(),s=i&&i.capacity||Number.MAX_VALUE,l=Pe(),u=null,c=null;return e[n]={put:function(e,t){if(!O(t))return s<Number.MAX_VALUE&&d(l[e]||(l[e]={key:e})),e in a||r++,a[e]=t,r>s&&this.remove(c.key),t},get:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;d(t)}return a[e]},remove:function(e){if(s<Number.MAX_VALUE){var t=l[e];if(!t)return;t===u&&(u=t.p),t===c&&(c=t.n),h(t.n,t.p),delete l[e]}e in a&&(delete a[e],r--)},removeAll:function(){a=Pe(),r=0,l=Pe(),u=c=null},destroy:function(){a=null,o=null,l=null,delete e[n]},info:function(){return S({},o,{size:r})}};function d(e){e!==u&&(c?c===e&&(c=e.n):c=e,h(e.n,e.p),h(e,u),(u=e).n=null)}function h(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return n.info=function(){var t={};return b(e,(function(e,n){t[n]=e.info()})),t},n.get=function(t){return e[t]},n}}function nn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var rn=t("$compile"),on=new function(){};function an(t,n){var i={},a="Directive",u=/^\s*directive:\s*([\w-]+)\s+(.*)$/,c=/(([\w-]+)(?::([^;]+))?;?)/,d=function(e){var t,n={},i="ngSrc,ngSrcset,src,srcset".split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}(),h=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,f=/^(on[a-z]+|formaction)$/,m=Pe();function g(e,t,n){var i=/^\s*([@&<]|=(\*?))(\??)\s*([\w$]*)\s*$/,r=Pe();return b(e,(function(e,o){if(e in m)r[o]=m[e];else{var a=e.match(i);if(!a)throw rn("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");r[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o},a[4]&&(m[e]=r[o])}})),r}function v(e,t){var n={isolateScope:null,bindToController:null};if(j(e.scope)&&(!0===e.bindToController?(n.bindToController=g(e.scope,t,!0),n.isolateScope={}):n.isolateScope=g(e.scope,t,!1)),j(e.bindToController)&&(n.bindToController=g(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw rn("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(n,r){return $e(n,"name"),Ce(n,"directive"),B(n)?(function(e){var t=e.charAt(0);if(!t||t!==o(t))throw rn("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw rn("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(n),$e(r,"directiveFactory"),i.hasOwnProperty(n)||(i[n]=[],t.factory(n+a,["$injector","$exceptionHandler",function(e,t){var r=[];return b(i[n],(function(i,o){try{var a=e.invoke(i);z(a)?a={compile:P(a)}:!a.compile&&a.link&&(a.compile=P(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=function(e){var t=e.require||e.controller&&e.name;return!F(t)&&j(t)&&b(t,(function(e,n){var i=e.match(h);e.substring(i[0].length)||(t[n]=i[0]+n)})),t}(a),a.restrict=function(e,t){if(e&&(!B(e)||!/[EACM]/.test(e)))throw rn("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(a.restrict,n),a.$$moduleName=i.$$moduleName,r.push(a)}catch(e){t(e)}})),r}])),i[n].push(r)):b(n,L(e)),this},this.component=function(e,t){var n=t.controller||function(){};function i(e){function i(t){return z(t)||F(t)?function(n,i){return e.invoke(t,this,{$element:n,$attrs:i})}:t}var r=t.template||t.templateUrl?t.template:"",o={controller:n,controllerAs:pn(t.controller)||t.controllerAs||"$ctrl",template:i(r),templateUrl:i(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return b(t,(function(e,t){"$"===t.charAt(0)&&(o[t]=e)})),o}return b(t,(function(e,t){"$"===t.charAt(0)&&(i[t]=e,z(n)&&(n[t]=e))})),i.$inject=["$injector"],this.directive(e,i)},this.aHrefSanitizationWhitelist=function(e){return I(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return I(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var _=!0;this.debugInfoEnabled=function(e){return I(e)?(_=e,this):_};var y=!0;this.preAssignBindingsEnabled=function(e){return I(e)?(y=e,this):y};var w=10;this.onChangesTtl=function(e){return arguments.length?(w=e,this):w};var M=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(M=e,this):M};var k=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(k=e,this):k},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,m,g,L,x,T,$,D,P){var Y,H=/^\w/,N=e.document.createElement("div"),R=M,V=k,U=w;function G(){try{if(!--U)throw Y=void 0,rn("infchng","{0} $onChanges() iterations reached. Aborting!\n",w);T.$apply((function(){for(var e=[],t=0,n=Y.length;t<n;++t)try{Y[t]()}catch(t){e.push(t)}if(Y=void 0,e.length)throw e}))}finally{U++}}function Z(e,t){if(t){var n,i,r,o=Object.keys(t);for(n=0,i=o.length;n<i;n++)this[r=o[n]]=t[r]}else this.$attr={};this.$$element=e}function X(e,t){try{e.addClass(t)}catch(e){}}Z.prototype={$normalize:un,$addClass:function(e){e&&e.length>0&&D.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&D.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=cn(e,t);n&&n.length&&D.addClass(this.$$element,n);var i=cn(t,e);i&&i.length&&D.removeClass(this.$$element,i)},$set:function(e,t,n,i){var r,o=St(this.$$element[0],e),a=xt[e],s=e;if(o?(this.$$element.prop(e,t),i=o):a&&(this[a]=t,s=a),this[e]=t,i?this.$attr[e]=i:(i=this.$attr[e])||(this.$attr[e]=i=Se(e,"-")),"a"===(r=Q(this.$$element))&&("href"===e||"xlinkHref"===e)||"img"===r&&"src"===e)this[e]=t=P(t,"src"===e);else if("img"===r&&"srcset"===e&&I(t)){for(var l="",u=J(t),c=/\s/.test(u)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,d=u.split(c),h=Math.floor(d.length/2),f=0;f<h;f++){var p=2*f;l+=P(J(d[p]),!0),l+=" "+J(d[p+1])}var g=J(d[2*f]).split(/\s/);l+=P(J(g[0]),!0),2===g.length&&(l+=" "+J(g[1])),this[e]=t=l}!1!==n&&(null===t||O(t)?this.$$element.removeAttr(i):H.test(i)?this.$$element.attr(i,t):function(e,t,n){N.innerHTML="<span "+t+">";var i=N.firstChild.attributes,r=i[0];i.removeNamedItem(r.name),r.value=n,e.attributes.setNamedItem(r)}(this.$$element[0],i,t));var v=this.$$observers;v&&b(v[s],(function(e){try{e(t)}catch(e){m(e)}}))},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers=Pe()),r=i[e]||(i[e]=[]);return r.push(t),T.$evalAsync((function(){r.$$inter||!n.hasOwnProperty(e)||O(n[e])||t(n[e])})),function(){ee(r,t)}}};var K=n.startSymbol(),te=n.endSymbol(),ie="{{"===K&&"}}"===te?A:function(e){return e.replace(/\{\{/g,K).replace(/}}/g,te)},re=/^ngAttr[A-Z]/,oe=/^(.+)Start$/;return le.$$addBindingInfo=_?function(e,t){var n=e.data("$binding")||[];F(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:E,le.$$addBindingClass=_?function(e){X(e,"ng-binding")}:E,le.$$addScopeInfo=_?function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)}:E,le.$$addScopeClass=_?function(e,t){X(e,t?"ng-isolate-scope":"ng-scope")}:E,le.$$createComment=function(t,n){var i="";return _&&(i=" "+(t||"")+": ",n&&(i+=n+" ")),e.document.createComment(i)},le;function le(t,n,i,r,o){t instanceof l||(t=l(t));for(var a=/\S+/,s=0,u=t.length;s<u;s++){var c=t[s];c.nodeType===Oe&&c.nodeValue.match(a)&&ot(c,t[s]=e.document.createElement("span"))}var d=ue(t,n,t,i,r,o);le.$$addScopeClass(t);var h=null;return function(e,n,i){$e(e,"scope"),o&&o.needsNewScope&&(e=e.$parent.$new());var r,a,s,u=(i=i||{}).parentBoundTranscludeFn,c=i.transcludeControllers,f=i.futureParentElement;if(u&&u.$$boundTransclude&&(u=u.$$boundTransclude),h||(a=(r=f)&&r[0],h=a&&"foreignobject"!==Q(a)&&p.call(a).match(/SVG/)?"svg":"html"),s="html"!==h?l(xe(h,l("<div>").append(t).html())):n?Lt.clone.call(t):t,c)for(var m in c)s.data("$"+m+"Controller",c[m].instance);return le.$$addScopeInfo(s,e),n&&n(s,e),d&&d(e,s,s,u),s}}function ue(e,t,n,i,r,o){for(var a,s,u,c,d,h,f,p=[],m=0;m<e.length;m++)a=new Z,(u=(s=de(e[m],[],a,0===m?i:void 0,r)).length?ge(s,e[m],a,t,n,null,[],[],o):null)&&u.scope&&le.$$addScopeClass(a.$$element),d=u&&u.terminal||!(c=e[m].childNodes)||!c.length?null:ue(c,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||d)&&(p.push(m,u,d),h=!0,f=f||u),o=null;return h?function(e,n,i,r){var o,a,s,u,c,d,h,m;if(f){var g=n.length;for(m=new Array(g),c=0;c<p.length;c+=3)m[h=p[c]]=n[h]}else m=n;for(c=0,d=p.length;c<d;)s=m[p[c++]],o=p[c++],a=p[c++],o?(o.scope?(u=e.$new(),le.$$addScopeInfo(l(s),u)):u=e,o(a,u,s,i,o.transcludeOnThisElement?ce(e,o.transclude,r):!o.templateOnThisElement&&r?r:!r&&t?ce(e,t):null)):a&&a(e,s.childNodes,void 0,r)}:null}function ce(e,t,n){function i(i,r,o,a,s){return i||((i=e.$new(!1,s)).$$transcluded=!0),t(i,r,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var r=i.$$slots=Pe();for(var o in t.$$slots)t.$$slots[o]?r[o]=ce(e,t.$$slots[o],n):r[o]=null;return i}function de(e,t,i,r,o){var a,l,d,h=e.nodeType,f=i.$attr;switch(h){case Ye:ye(t,un(l=Q(e)),"E",r,o);for(var p,m,g,v,_,y,b=e.attributes,w=0,L=b&&b.length;w<L;w++){var M=!1,k=!1;m=(p=b[w]).name,_=J(p.value),v=un(m),(y=re.test(v))&&(m=m.replace(ln,"").substr(8).replace(/_(.)/g,(function(e,t){return t.toUpperCase()})));var x=v.match(oe);x&&be(x[1])&&(M=m,k=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6)),f[g=un(m.toLowerCase())]=m,!y&&i.hasOwnProperty(g)||(i[g]=_,St(e,g)&&(i[g]=!0)),Te(e,t,_,g,y),ye(t,g,"A",r,o,M,k)}if("input"===l&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!V)break;if(j(d=e.className)&&(d=d.animVal),B(d)&&""!==d)for(;a=c.exec(d);)ye(t,g=un(a[2]),"C",r,o)&&(i[g]=J(a[3])),d=d.substr(a.index+a[0].length);break;case Oe:if(11===s)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===Oe;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);!function(e,t){var i=n(t,!0);i&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&le.$$addBindingClass(t),function(e,t){var r=t.parent();n||le.$$addBindingClass(r),le.$$addBindingInfo(r,i.expressions),e.$watch(i,(function(e){t[0].nodeValue=e}))}}})}(t,e.nodeValue);break;case Ie:if(!R)break;!function(e,t,n,i,r){try{var o=u.exec(e.nodeValue);if(o){var a=un(o[1]);ye(t,a,"M",i,r)&&(n[a]=J(o[2]))}}catch(e){}}(e,t,i,r,o)}return t.sort(Me),t}function he(e,t,n){var i=[],r=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw rn("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===Ye&&(e.hasAttribute(t)&&r++,e.hasAttribute(n)&&r--),i.push(e),e=e.nextSibling}while(r>0);else i.push(e);return l(i)}function fe(e,t,n){return function(i,r,o,a,s){return r=he(r[0],t,n),e(i,r,o,a,s)}}function me(e,t,n,i,r,o){var a;return e?le(t,n,i,r,o):function(){return a||(a=le(t,n,i,r,o),t=n=o=null),a.apply(this,arguments)}}function ge(e,t,n,i,r,o,a,s,u){u=u||{};for(var c,d,h,f,p,g=-Number.MAX_VALUE,v=u.newScopeDirective,_=u.controllerDirectives,w=u.newIsolateScopeDirective,L=u.templateDirective,M=u.nonTlbTranscludeDirective,k=!1,T=!1,$=u.hasElementTranscludeDirective,D=n.$$element=l(t),C=o,E=i,A=!1,P=!1,Y=0,I=e.length;Y<I;Y++){var H=(c=e[Y]).$$start,B=c.$$end;if(H&&(D=he(t,H,B)),h=void 0,g>c.priority)break;if((p=c.scope)&&(c.templateUrl||(j(p)?(ke("new/isolated scope",w||v,c,D),w=c):ke("new/isolated scope",w,c,D)),v=v||c),d=c.name,!A&&(c.replace&&(c.templateUrl||c.template)||c.transclude&&!c.$$tlb)){for(var N,R=Y+1;N=e[R++];)if(N.transclude&&!N.$$tlb||N.replace&&(N.templateUrl||N.template)){P=!0;break}A=!0}if(!c.templateUrl&&c.controller&&(_=_||Pe(),ke("'"+d+"' controller",_[d],c,D),_[d]=c),p=c.transclude)if(k=!0,c.$$tlb||(ke("transclusion",M,c,D),M=c),"element"===p)$=!0,g=c.priority,h=D,D=n.$$element=l(le.$$createComment(d,n[d])),t=D[0],De(r,ae(h),t),h[0].$$parentNode=h[0].parentNode,E=me(P,h,i,g,C&&C.name,{nonTlbTranscludeDirective:M});else{var V=Pe();if(h=l(lt(t)).contents(),j(p)){h=[];var U=Pe(),q=Pe();for(var G in b(p,(function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,U[e]=t,V[t]=null,q[t]=n})),b(D.contents(),(function(e){var t=U[un(Q(e))];t?(q[t]=!0,V[t]=V[t]||[],V[t].push(e)):h.push(e)})),b(q,(function(e,t){if(!e)throw rn("reqslot","Required transclusion slot `{0}` was not filled.",t)})),V)V[G]&&(V[G]=me(P,V[G],i))}D.empty(),(E=me(P,h,i,void 0,void 0,{needsNewScope:c.$$isolateScope||c.$$newScope})).$$slots=V}if(c.template)if(T=!0,ke("template",L,c,D),L=c,p=z(c.template)?c.template(D,n):c.template,p=ie(p),c.replace){if(C=c,h=nt(p)?[]:dn(xe(c.templateNamespace,J(p))),t=h[0],1!==h.length||t.nodeType!==Ye)throw rn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",d,"");De(r,D,t);var X={$attr:{}},K=de(t,[],X),ee=e.splice(Y+1,e.length-(Y+1));(w||v)&&_e(K,w,v),e=e.concat(K).concat(ee),we(n,X),I=e.length}else D.html(p);if(c.templateUrl)T=!0,ke("template",L,c,D),L=c,c.replace&&(C=c),re=Le(e.splice(Y,e.length-Y),D,n,r,k&&E,a,s,{controllerDirectives:_,newScopeDirective:v!==c&&v,newIsolateScopeDirective:w,templateDirective:L,nonTlbTranscludeDirective:M}),I=e.length;else if(c.compile)try{f=c.compile(D,n,E);var te=c.$$originalDirective||c;z(f)?ne(null,se(te,f),H,B):f&&ne(se(te,f.pre),se(te,f.post),H,B)}catch(e){m(e,pe(D))}c.terminal&&(re.terminal=!0,g=Math.max(g,c.priority))}return re.scope=v&&!0===v.scope,re.transcludeOnThisElement=k,re.templateOnThisElement=T,re.transclude=E,u.hasElementTranscludeDirective=$,re;function ne(e,t,n,i){e&&(n&&(e=fe(e,n,i)),e.require=c.require,e.directiveName=d,(w===c||c.$$isolateScope)&&(e=Ce(e,{isolateScope:!0})),a.push(e)),t&&(n&&(t=fe(t,n,i)),t.require=c.require,t.directiveName=d,(w===c||c.$$isolateScope)&&(t=Ce(t,{isolateScope:!0})),s.push(t))}function re(e,i,r,o,u){var c,d,h,f,p,g,M,k,T,D;for(var C in t===r?(T=n,k=n.$$element):T=new Z(k=l(r),n),p=i,w?f=i.$new(!0):v&&(p=i.$parent),u&&((M=function(e,t,n,i){var r;if(W(e)||(i=n,n=t,t=e,e=void 0),$&&(r=g),n||(n=$?k.parent():k),!i)return u(e,t,r,n,I);var o=u.$$slots[i];if(o)return o(e,t,r,n,I);if(O(o))throw rn("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',i,pe(k))}).$$boundTransclude=u,M.isSlotFilled=function(e){return!!u.$$slots[e]}),_&&(g=function(e,t,n,i,r,o,a){var s=Pe();for(var l in i){var u=i[l],c={$scope:u===a||u.$$isolateScope?r:o,$element:e,$attrs:t,$transclude:n},d=u.controller;"@"===d&&(d=t[u.name]);var h=x(d,c,!0,u.controllerAs);s[u.name]=h,e.data("$"+u.name+"Controller",h.instance)}return s}(k,T,M,_,f,i,w)),w&&(le.$$addScopeInfo(k,f,!0,!(L&&(L===w||L===w.$$originalDirective))),le.$$addScopeClass(k,!0),f.$$isolateBindings=w.$$isolateBindings,(D=Ae(i,T,f,f.$$isolateBindings,w)).removeWatches&&f.$on("$destroy",D.removeWatches)),g){var E=_[C],A=g[C],P=E.$$bindings.bindToController;if(y){A.bindingInfo=P?Ae(p,T,A.instance,P,E):{};var Y=A();Y!==A.instance&&(A.instance=Y,k.data("$"+E.name+"Controller",Y),A.bindingInfo.removeWatches&&A.bindingInfo.removeWatches(),A.bindingInfo=Ae(p,T,A.instance,P,E))}else A.instance=A(),k.data("$"+E.name+"Controller",A.instance),A.bindingInfo=Ae(p,T,A.instance,P,E)}for(b(_,(function(e,t){var n=e.require;e.bindToController&&!F(n)&&j(n)&&S(g[t].instance,ve(t,n,k,g))})),b(g,(function(e){var t=e.instance;if(z(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){m(e)}if(z(t.$onInit))try{t.$onInit()}catch(e){m(e)}z(t.$doCheck)&&(p.$watch((function(){t.$doCheck()})),t.$doCheck()),z(t.$onDestroy)&&p.$on("$destroy",(function(){t.$onDestroy()}))})),c=0,d=a.length;c<d;c++)Ee(h=a[c],h.isolateScope?f:i,k,T,h.require&&ve(h.directiveName,h.require,k,g),M);var I=i;for(w&&(w.template||null===w.templateUrl)&&(I=f),e&&e(I,r.childNodes,void 0,u),c=s.length-1;c>=0;c--)Ee(h=s[c],h.isolateScope?f:i,k,T,h.require&&ve(h.directiveName,h.require,k,g),M);b(g,(function(e){var t=e.instance;z(t.$postLink)&&t.$postLink()}))}}function ve(e,t,n,i){var r;if(B(t)){var o=t.match(h),a=t.substring(o[0].length),s=o[1]||o[3],l="?"===o[2];if("^^"===s?n=n.parent():r=(r=i&&i[a])&&r.instance,!r){var u="$"+a+"Controller";r=s?n.inheritedData(u):n.data(u)}if(!r&&!l)throw rn("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(F(t)){r=[];for(var c=0,d=t.length;c<d;c++)r[c]=ve(e,t[c],n,i)}else j(t)&&(r={},b(t,(function(t,o){r[o]=ve(e,t,n,i)})));return r||null}function _e(e,t,n){for(var i=0,r=e.length;i<r;i++)e[i]=C(e[i],{$$isolateScope:t,$$newScope:n})}function ye(e,n,r,o,s,l,u){if(n===s)return null;var c=null;if(i.hasOwnProperty(n))for(var d,h=t.get(n+a),f=0,p=h.length;f<p;f++)if(d=h[f],(O(o)||o>d.priority)&&-1!==d.restrict.indexOf(r)){if(l&&(d=C(d,{$$start:l,$$end:u})),!d.$$bindings){var m=d.$$bindings=v(d,d.name);j(m.isolateScope)&&(d.$$isolateBindings=m.isolateScope)}e.push(d),c=d}return c}function be(e){if(i.hasOwnProperty(e))for(var n=t.get(e+a),r=0,o=n.length;r<o;r++)if(n[r].multiElement)return!0;return!1}function we(e,t){var n=t.$attr,i=e.$attr;b(e,(function(i,r){"$"!==r.charAt(0)&&(t[r]&&t[r]!==i&&(i+=("style"===r?";":" ")+t[r]),e.$set(r,i,!0,n[r]))})),b(t,(function(t,r){e.hasOwnProperty(r)||"$"===r.charAt(0)||(e[r]=t,"class"!==r&&"style"!==r&&(i[r]=n[r]))}))}function Le(e,t,n,i,r,o,a,s){var u,c,d=[],h=t[0],f=e.shift(),p=C(f,{templateUrl:null,transclude:null,replace:null,$$originalDirective:f}),m=z(f.templateUrl)?f.templateUrl(t,n):f.templateUrl,v=f.templateNamespace;return t.empty(),g(m).then((function(g){var _,y,w,L;if(g=ie(g),f.replace){if(w=nt(g)?[]:dn(xe(v,J(g))),_=w[0],1!==w.length||_.nodeType!==Ye)throw rn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",f.name,m);y={$attr:{}},De(i,t,_);var M=de(_,[],y);j(f.scope)&&_e(M,!0),e=M.concat(e),we(n,y)}else _=h,t.html(g);for(e.unshift(p),u=ge(e,_,n,r,t,f,o,a,s),b(i,(function(e,n){e===_&&(i[n]=t[0])})),c=ue(t[0].childNodes,r);d.length;){var k=d.shift(),x=d.shift(),S=d.shift(),T=d.shift(),$=t[0];if(!k.$$destroyed){if(x!==h){var D=x.className;s.hasElementTranscludeDirective&&f.replace||($=lt(_)),De(S,l(x),$),X(l($),D)}L=u.transcludeOnThisElement?ce(k,u.transclude,T):T,u(c,k,$,i,L)}}d=null})),function(e,t,n,i,r){var o=r;t.$$destroyed||(d?d.push(t,n,i,o):(u.transcludeOnThisElement&&(o=ce(t,u.transclude,r)),u(c,t,n,i,o)))}}function Me(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function ke(e,t,n,i){function r(e){return e?" (module: "+e+")":""}if(t)throw rn("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,r(t.$$moduleName),n.name,r(n.$$moduleName),e,pe(i))}function xe(t,n){switch(t=o(t||"html")){case"svg":case"math":var i=e.document.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function Te(e,t,i,r,o){var a=function(e,t){if("srcdoc"===t)return $.HTML;var n=Q(e);if("src"===t||"ngSrc"===t){if(-1===["img","video","audio","source","track"].indexOf(n))return $.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t)return $.RESOURCE_URL}(e,r),s=!o,l=d[r]||o,u=n(i,s,a,l);if(u){if("multiple"===r&&"select"===Q(e))throw rn("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",pe(e));t.push({priority:100,compile:function(){return{pre:function(e,t,o){var s=o.$$observers||(o.$$observers=Pe());if(f.test(r))throw rn("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=o[r];c!==i&&(u=c&&n(c,!0,a,l),i=c),u&&(o[r]=u(e),(s[r]||(s[r]=[])).$$inter=!0,(o.$$observers&&o.$$observers[r].$$scope||e).$watch(u,(function(e,t){"class"===r&&e!==t?o.$updateClass(e,t):o.$set(r,e)})))}}}})}}function De(t,n,i){var r,o,a=n[0],s=n.length,u=a.parentNode;if(t)for(r=0,o=t.length;r<o;r++)if(t[r]===a){t[r++]=i;for(var c=r,d=c+s-1,h=t.length;c<h;c++,d++)d<h?t[c]=t[d]:delete t[c];t.length-=s-1,t.context===a&&(t.context=i);break}u&&u.replaceChild(i,a);var f=e.document.createDocumentFragment();for(r=0;r<s;r++)f.appendChild(n[r]);for(l.hasData(a)&&(l.data(i,l.data(a)),l(a).off("$destroy")),l.cleanData(f.querySelectorAll("*")),r=1;r<s;r++)delete n[r];n[0]=i,n.length=1}function Ce(e,t){return S((function(){return e.apply(null,arguments)}),e,t)}function Ee(e,t,n,i,r,o){try{e(t,n,i,r,o)}catch(e){m(e,pe(n))}}function Ae(e,t,i,o,a){var s,l=[],u={};function c(t,n,r){!z(i.$onChanges)||n===r||n!=n&&r!=r||(Y||(e.$$postDigest(G),Y=[]),s||(s={},Y.push(d)),s[t]&&(r=s[t].previousValue),s[t]=new sn(r,n))}function d(){i.$onChanges(s),s=void 0}return b(o,(function(o,s){var d,h,f,p,m,g=o.attrName,v=o.optional;switch(o.mode){case"@":v||r.call(t,g)||(i[s]=t[g]=void 0),m=t.$observe(g,(function(e){if(B(e)||q(e)){var t=i[s];c(s,e,t),i[s]=e}})),t.$$observers[g].$$scope=e,B(d=t[g])?i[s]=n(d)(e):q(d)&&(i[s]=d),u[s]=new sn(on,i[s]),l.push(m);break;case"=":if(!r.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;h=L(t[g]),p=h.literal?ne:function(e,t){return e===t||e!=e&&t!=t},f=h.assign||function(){throw d=i[s]=h(e),rn("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[g],g,a.name)},d=i[s]=h(e);var _=function(t){return p(t,i[s])||(p(t,d)?f(e,t=i[s]):i[s]=t),d=t};_.$stateful=!0,m=o.collection?e.$watchCollection(t[g],_):e.$watch(L(t[g],_),null,h.literal),l.push(m);break;case"<":if(!r.call(t,g)){if(v)break;t[g]=void 0}if(v&&!t[g])break;var y=(h=L(t[g])).literal,b=i[s]=h(e);u[s]=new sn(on,i[s]),m=e.$watch(h,(function(e,t){if(t===e){if(t===b||y&&ne(t,b))return;t=b}c(s,e,t),i[s]=e}),y),l.push(m);break;case"&":if((h=t.hasOwnProperty(g)?L(t[g]):E)===E&&v)break;i[s]=function(t){return h(e,t)}}})),{initialChanges:u,removeWatches:l.length&&function(){for(var e=0,t=l.length;e<t;++e)l[e]()}}}}]}function sn(e,t){this.previousValue=e,this.currentValue=t}an.$inject=["$provide","$$sanitizeUriProvider"],sn.prototype.isFirstChange=function(){return this.previousValue===on};var ln=/^((?:x|data)[:\-_])/i;function un(e){return Je(e.replace(ln,""))}function cn(e,t){var n="",i=e.split(/\s+/),r=t.split(/\s+/);e:for(var o=0;o<i.length;o++){for(var a=i[o],s=0;s<r.length;s++)if(a===r[s])continue e;n+=(n.length>0?" ":"")+a}return n}function dn(e){var t=(e=l(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===Ie||n.nodeType===Oe&&""===n.nodeValue.trim())&&h.call(e,t,1)}return e}var hn=t("$controller"),fn=/^(\S+)(\s+as\s+([\w$]+))?$/;function pn(e,t){if(t&&B(t))return t;if(B(e)){var n=fn.exec(e);if(n)return n[3]}}function mn(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){Ce(t,"controller"),j(t)?S(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(i,r){return function(t,a,s,l){var u,c,d,h;if(s=!0===s,l&&B(l)&&(h=l),B(t)){if(!(c=t.match(fn)))throw hn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(d=c[1],h=h||c[3],!(t=e.hasOwnProperty(d)?e[d]:Ee(a.$scope,d,!0)||(n?Ee(r,d,!0):void 0)))throw hn("ctrlreg","The controller with the name '{0}' is not registered.",d);De(t,d,!0)}if(s){var f=(F(t)?t[t.length-1]:t).prototype;return u=Object.create(f||null),h&&o(a,h,u,d||t.name),S((function(){var e=i.invoke(t,u,a,d);return e!==u&&(j(e)||z(e))&&(u=e,h&&o(a,h,u,d||t.name)),u}),{instance:u,identifier:h})}return u=i.instantiate(t,a,d),h&&o(a,h,u,d||t.name),u};function o(e,n,i,r){if(!e||!j(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,n);e.$scope[n]=i}}]}function gn(){this.$get=["$window",function(e){return l(e.document)}]}function vn(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}var _n=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof l&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},yn="application/json",bn={"Content-Type":yn+";charset=utf-8"},wn=/^\[|^\{(?!\{)/,Ln={"[":/]$/,"{":/}$/},Mn=/^\)]\}',?\n/,kn=t("$http"),xn=function(e){return function(){throw kn("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}};function Sn(e){return j(e)?R(e)?e.toISOString():ue(e):e}function Tn(){this.$get=function(){return function(e){if(!e)return"";var t=[];return w(e,(function(e,n){null===e||O(e)||(F(e)?b(e,(function(e){t.push(ye(n)+"="+ye(Sn(e)))})):t.push(ye(n)+"="+ye(Sn(e))))})),t.join("&")}}}function $n(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function e(n,i,r){null===n||O(n)||(F(n)?b(n,(function(t,n){e(t,i+"["+(j(t)?n:"")+"]")})):j(n)&&!R(n)?w(n,(function(t,n){e(t,i+(r?"":"[")+n+(r?"":"]"))})):t.push(ye(i)+"="+ye(Sn(n))))}(e,"",!0),t.join("&")}}}function Dn(e,t){if(B(e)){var n=e.replace(Mn,"").trim();if(n){var i=t("Content-Type");(i&&0===i.indexOf(yn)||(o=(r=n).match(wn))&&Ln[o[0]].test(r))&&(e=ce(n))}}var r,o;return e}function Cn(e){var t,n=Pe();function i(e,t){e&&(n[e]=n[e]?n[e]+", "+t:t)}return B(e)?b(e.split("\n"),(function(e){t=e.indexOf(":"),i(o(J(e.substr(0,t))),J(e.substr(t+1)))})):j(e)&&b(e,(function(e,t){i(o(t),J(e))})),n}function En(e){var t;return function(n){if(t||(t=Cn(e)),n){var i=t[o(n)];return void 0===i&&(i=null),i}return t}}function An(e,t,n,i){return z(i)?i(e,t,n):(b(i,(function(i){e=i(e,t,n)})),e)}function Pn(e){return 200<=e&&e<300}function Yn(){var e=this.defaults={transformResponse:[Dn],transformRequest:[function(e){return!j(e)||(t=e,"[object File]"===p.call(t))||function(e){return"[object Blob]"===p.call(e)}(e)||function(e){return"[object FormData]"===p.call(e)}(e)?e:ue(e);var t}],headers:{common:{Accept:"application/json, text/plain, */*"},post:Be(bn),put:Be(bn),patch:Be(bn)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return I(e)?(n=!!e,this):n};var i=!0;this.useLegacyPromiseExtensions=function(e){return I(e)?(i=!!e,this):i};var r=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,l,u,c,d,h){var f=u("$http");e.paramSerializer=B(e.paramSerializer)?h.get(e.paramSerializer):e.paramSerializer;var p=[];function m(r){if(!j(r))throw t("$http")("badreq","Http request configuration must be an object.  Received: {0}",r);if(!B(r.url))throw t("$http")("badreq","Http request configuration url must be a string.  Received: {0}",r.url);var u=S({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},r);u.headers=function(t){var n,i,r,a=e.headers,s=S({},t.headers);a=S({},a.common,a[o(t.method)]);e:for(n in a){for(r in i=o(n),s)if(o(r)===i)continue e;s[n]=a[n]}return function(e,t){var n,i={};return b(e,(function(e,r){z(e)?null!=(n=e(t))&&(i[r]=n):i[r]=e})),i}(s,Be(t))}(r),u.method=a(u.method),u.paramSerializer=B(u.paramSerializer)?h.get(u.paramSerializer):u.paramSerializer;var g=[],v=[],_=d.when(u);return b(p,(function(e){(e.request||e.requestError)&&g.unshift(e.request,e.requestError),(e.response||e.responseError)&&v.push(e.response,e.responseError)})),_=y(_,g),_=y(_=_.then((function(t){var i=t.headers,r=An(t.data,En(i),void 0,t.transformRequest);return O(r)&&b(i,(function(e,t){"content-type"===o(t)&&delete i[t]})),O(t.withCredentials)&&!O(e.withCredentials)&&(t.withCredentials=e.withCredentials),function(t,i){var r,o,a=d.defer(),u=a.promise,h=t.headers,p=function(e,t){return t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}(t.url,t.paramSerializer(t.params));if(m.pendingRequests.push(t),u.then(w,w),!t.cache&&!e.cache||!1===t.cache||"GET"!==t.method&&"JSONP"!==t.method||(r=j(t.cache)?t.cache:j(e.cache)?e.cache:f),r&&(I(o=r.get(p))?G(o)?o.then(y,y):F(o)?_(o[1],o[0],Be(o[2]),o[3]):_(o,200,{},"OK"):r.put(p,u)),O(o)){var g=dr(t.url)?l()[t.xsrfCookieName||e.xsrfCookieName]:void 0;g&&(h[t.xsrfHeaderName||e.xsrfHeaderName]=g),s(t.method,p,i,(function(e,t,i,o){function a(){_(t,e,i,o)}r&&(Pn(e)?r.put(p,[e,t,Cn(i),o]):r.remove(p)),n?c.$applyAsync(a):(a(),c.$$phase||c.$apply())}),h,t.timeout,t.withCredentials,t.responseType,v(t.eventHandlers),v(t.uploadEventHandlers))}return u;function v(e){if(e){var t={};return b(e,(function(e,i){t[i]=function(t){function i(){e(t)}n?c.$applyAsync(i):c.$$phase?i():c.$apply(i)}})),t}}function _(e,n,i,r){(Pn(n=n>=-1?n:0)?a.resolve:a.reject)({data:e,status:n,headers:En(i),config:t,statusText:r})}function y(e){_(e.data,e.status,Be(e.headers()),e.statusText)}function w(){var e=m.pendingRequests.indexOf(t);-1!==e&&m.pendingRequests.splice(e,1)}}(t,r).then(w,w)})),v),i?(_.success=function(e){return De(e,"fn"),_.then((function(t){e(t.data,t.status,t.headers,u)})),_},_.error=function(e){return De(e,"fn"),_.then(null,(function(t){e(t.data,t.status,t.headers,u)})),_}):(_.success=xn("success"),_.error=xn("error")),_;function y(e,t){for(var n=0,i=t.length;n<i;){var r=t[n++],o=t[n++];e=e.then(r,o)}return t.length=0,e}function w(e){var t=S({},e);return t.data=An(e.data,e.headers,e.status,u.transformResponse),Pn(e.status)?t:d.reject(t)}}return b(r,(function(e){p.unshift(B(e)?h.get(e):h.invoke(e))})),m.pendingRequests=[],function(e){b(arguments,(function(e){m[e]=function(t,n){return m(S({},n||{},{method:e,url:t}))}}))}("get","delete","head","jsonp"),function(e){b(arguments,(function(e){m[e]=function(t,n,i){return m(S({},i||{},{method:e,url:t,data:n}))}}))}("post","put","patch"),m.defaults=e,m}]}function On(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function In(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,i){return function(e,t,n,i,r){return function(a,s,l,u,c,d,h,f,p,m){if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"===o(a))var g=i.createCallback(s),v=function(e,t,n){e=e.replace("JSON_CALLBACK",t);var o=r.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){Ue(o,"load",a),Ue(o,"error",a),r.body.removeChild(o),o=null;var s=-1,l="unknown";e&&("load"!==e.type||i.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},Ve(o,"load",a),Ve(o,"error",a),r.body.appendChild(o),a}(s,g,(function(e,t){var n=200===e&&i.getResponse(g);M(u,e,n,"",t),i.removeCallback(g)}));else{var _=t(a,s);_.open(a,s,!0),b(c,(function(e,t){I(e)&&_.setRequestHeader(t,e)})),_.onload=function(){var e=_.statusText||"",t="response"in _?_.response:_.responseText,n=1223===_.status?204:_.status;0===n&&(n=t?200:"file"===cr(s).protocol?404:0),M(u,n,t,_.getAllResponseHeaders(),e)};var y=function(){M(u,-1,null,null,"")};if(_.onerror=y,_.onabort=y,_.ontimeout=y,b(p,(function(e,t){_.addEventListener(t,e)})),b(m,(function(e,t){_.upload.addEventListener(t,e)})),h&&(_.withCredentials=!0),f)try{_.responseType=f}catch(e){if("json"!==f)throw e}_.send(O(l)?null:l)}if(d>0)var w=n(L,d);else G(d)&&d.then(L);function L(){v&&v(),_&&_.abort()}function M(t,i,r,o,a){I(w)&&n.cancel(w),v=_=null,t(i,r,o,a),e.$$completeOutstandingRequest(E)}}}(e,i,e.defer,t,n[0])}]}var jn=v.$interpolateMinErr=t("$interpolate");function Hn(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){var o=e.length,a=t.length,s=new RegExp(e.replace(/./g,u),"g"),l=new RegExp(t.replace(/./g,u),"g");function u(e){return"\\\\\\"+e}function c(n){return n.replace(s,e).replace(l,t)}function d(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function h(s,l,u,h){var f;if(!s.length||-1===s.indexOf(e))return l||((f=P(c(s))).exp=s,f.expressions=[],f.$$watchDelegate=d),f;h=!!h;for(var p,m,g,v=0,_=[],y=[],b=s.length,w=[],L=[];v<b;){if(-1===(p=s.indexOf(e,v))||-1===(m=s.indexOf(t,p+o))){v!==b&&w.push(c(s.substring(v)));break}v!==p&&w.push(c(s.substring(v,p))),g=s.substring(p+o,m),_.push(g),y.push(n(g,x)),v=m+a,L.push(w.length),w.push("")}if(u&&w.length>1&&jn.throwNoconcat(s),!l||_.length){var M=function(e){for(var t=0,n=_.length;t<n;t++){if(h&&O(e[t]))return;w[L[t]]=e[t]}return w.join("")},k=function(e){return u?r.getTrusted(u,e):r.valueOf(e)};return S((function(e){var t=0,n=_.length,r=new Array(n);try{for(;t<n;t++)r[t]=y[t](e);return M(r)}catch(e){i(jn.interr(s,e))}}),{exp:s,expressions:_,$$watchDelegate:function(e,t){var n;return e.$watchGroup(y,(function(i,r){var o=M(i);z(t)&&t.call(this,o,i!==r?n:o,e),n=o}))}})}function x(e){try{return e=k(e),h&&!I(e)?e:function(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=ue(e)}return e}(e)}catch(e){i(jn.interr(s,e))}}}return h.startSymbol=function(){return e},h.endSymbol=function(){return t},h}]}function Bn(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,i,r){var o={};function a(a,s,l,u){var c=arguments.length>4,d=c?ae(arguments,4):[],h=t.setInterval,f=t.clearInterval,p=0,m=I(u)&&!u,g=(m?i:n).defer(),v=g.promise;return l=I(l)?l:0,v.$$intervalId=h((function(){m?r.defer(_):e.$evalAsync(_),g.notify(p++),l>0&&p>=l&&(g.resolve(p),f(v.$$intervalId),delete o[v.$$intervalId]),m||e.$apply()}),s),o[v.$$intervalId]=g,v;function _(){c?a.apply(null,d):a(p)}}return a.cancel=function(e){return!!(e&&e.$$intervalId in o)&&(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0)},a}]}jn.throwNoconcat=function(e){throw jn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",e)},jn.interr=function(e,t){return jn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var Nn=function(){this.$get=["$window",function(e){var t=e.angular.callbacks,n={};return{createCallback:function(e){var i="_"+(t.$$counter++).toString(36),r="angular.callbacks."+i,o=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(i);return n[r]=t[i]=o,r},wasCalled:function(e){return n[e].called},getResponse:function(e){return n[e].data},removeCallback:function(e){var i=n[e];delete t[i.id],delete n[e]}}}]},Rn=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Fn={http:80,https:443,ftp:21},zn=t("$location");function Vn(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=_e(t[n]);return t.join("/")}function Un(e,t){var n=cr(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=$(n.port)||Fn[n.protocol]||null}var Wn=/^\s*[\\/]{2,}/;function qn(e,t){if(Wn.test(e))throw zn("badpath",'Invalid url "{0}".',e);var n="/"!==e.charAt(0);n&&(e="/"+e);var i=cr(e);t.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=ge(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Gn(e,t){return e.slice(0,t.length)===t}function Zn(e,t){if(Gn(t,e))return t.substr(e.length)}function Jn(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function Xn(e){return e.replace(/(#.+)|#$/,"$1")}function Kn(e,t,n){this.$$html5=!0,n=n||"",Un(e,this),this.$$parse=function(e){var n=Zn(t,e);if(!B(n))throw zn("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);qn(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=ve(this.$$search),n=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(I(o=Zn(e,i))?(a=o,s=n&&I(o=Zn(n,o))?t+(Zn("/",o)||o):e+a):I(o=Zn(t,i))?s=t+o:t===i+"/"&&(s=t),s&&this.$$parse(s),!!s);var o,a,s}}function Qn(e,t,n){Un(e,this),this.$$parse=function(i){var r,o=Zn(e,i)||Zn(t,i);O(o)||"#"!==o.charAt(0)?this.$$html5?r=o:(r="",O(o)&&(e=i,this.replace())):O(r=Zn(n,o))&&(r=o),qn(r,this),this.$$path=function(e,t,n){var i,r=/^\/[A-Z]:(\/.*)/;return Gn(t,n)&&(t=t.replace(n,"")),r.exec(t)?e:(i=r.exec(e))?i[1]:e}(this.$$path,r,e),this.$$compose()},this.$$compose=function(){var t=ve(this.$$search),i=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return Jn(e)===Jn(t)&&(this.$$parse(t),!0)}}function ei(e,t,n){this.$$html5=!0,Qn.apply(this,arguments),this.$$parseLinkUrl=function(i,r){return r&&"#"===r[0]?(this.hash(r.slice(1)),!0):(e===Jn(i)?o=i:(a=Zn(t,i))?o=e+n+a:t===i+"/"&&(o=t),o&&this.$$parse(o),!!o);var o,a},this.$$compose=function(){var t=ve(this.$$search),i=this.$$hash?"#"+_e(this.$$hash):"";this.$$url=Vn(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+n+this.$$url}}var ti={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:ni("$$absUrl"),url:function(e){if(O(e))return this.$$url;var t=Rn.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:ni("$$protocol"),host:ni("$$host"),port:ni("$$port"),path:ii("$$path",(function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e})),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(B(e)||N(e))e=e.toString(),this.$$search=ge(e);else{if(!j(e))throw zn("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");b(e=te(e,{}),(function(t,n){null==t&&delete e[n]})),this.$$search=e}break;default:O(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:ii("$$hash",(function(e){return null!==e?e.toString():""})),replace:function(){return this.$$replace=!0,this}};function ni(e){return function(){return this[e]}}function ii(e,t){return function(n){return O(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function ri(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return I(t)?(e=t,this):e},this.html5Mode=function(e){return q(e)?(t.enabled=e,this):j(e)?(q(e.enabled)&&(t.enabled=e.enabled),q(e.requireBase)&&(t.requireBase=e.requireBase),(q(e.rewriteLinks)||B(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,o,a){var s,u,c,d,h=i.baseHref(),f=i.url();if(t.enabled){if(!h&&t.requireBase)throw zn("nobase","$location in HTML5 mode requires a <base> tag to be present!");c=(d=f).substring(0,d.indexOf("/",d.indexOf("//")+2))+(h||"/"),u=r.history?Kn:ei}else c=Jn(f),u=Qn;var p=function(e){return e.substr(0,Jn(e).lastIndexOf("/")+1)}(c);(s=new u(c,p,"#"+e)).$$parseLinkUrl(f,f),s.$$state=i.state();var m=/^\s*(javascript|mailto):/i;function g(e,t,n){var r=s.url(),o=s.$$state;try{i.url(e,t,n),s.$$state=i.state()}catch(e){throw s.url(r),s.$$state=o,e}}o.on("click",(function(e){var r=t.rewriteLinks;if(r&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var u=l(e.target);"a"!==Q(u[0]);)if(u[0]===o[0]||!(u=u.parent())[0])return;if(!B(r)||!O(u.attr(r))){var c=u.prop("href"),d=u.attr("href")||u.attr("xlink:href");j(c)&&"[object SVGAnimatedString]"===c.toString()&&(c=cr(c.animVal).href),m.test(c)||!c||u.attr("target")||e.isDefaultPrevented()||s.$$parseLinkUrl(c,d)&&(e.preventDefault(),s.absUrl()!==i.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}})),Xn(s.absUrl())!==Xn(f)&&i.url(s.absUrl(),!0);var v=!0;return i.onUrlChange((function(e,t){O(Zn(p,e))?a.location.href=e:(n.$evalAsync((function(){var i,r=s.absUrl(),o=s.$$state;e=Xn(e),s.$$parse(e),s.$$state=t,i=n.$broadcast("$locationChangeStart",e,r,t,o).defaultPrevented,s.absUrl()===e&&(i?(s.$$parse(r),s.$$state=o,g(r,!1,o)):(v=!1,_(r,o)))})),n.$$phase||n.$digest())})),n.$watch((function(){var e=Xn(i.url()),t=Xn(s.absUrl()),o=i.state(),a=s.$$replace,l=e!==t||s.$$html5&&r.history&&o!==s.$$state;(v||l)&&(v=!1,n.$evalAsync((function(){var t=s.absUrl(),i=n.$broadcast("$locationChangeStart",t,e,s.$$state,o).defaultPrevented;s.absUrl()===t&&(i?(s.$$parse(e),s.$$state=o):(l&&g(t,a,o===s.$$state?null:s.$$state),_(e,o)))}))),s.$$replace=!1})),s;function _(e,t){n.$broadcast("$locationChangeSuccess",s.absUrl(),e,s.$$state,t)}}]}function oi(){var e=!0,t=this;this.debugEnabled=function(t){return I(t)?(e=t,this):e},this.$get=["$window",function(n){return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:(i=o("debug"),function(){e&&i.apply(t,arguments)})};var i;function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},i=t[e]||t.log||E,o=!1;try{o=!!i.apply}catch(e){}return o?function(){var e=[];return b(arguments,(function(t){e.push(r(t))})),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}}]}b([ei,Qn,Kn],(function(e){e.prototype=Object.create(ti),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Kn||!this.$$html5)throw zn("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=O(t)?null:t,this}}));var ai=t("$parse"),si=[].constructor,li=(!1).constructor,ui=Function.constructor,ci=(0).constructor,di={}.constructor,hi="".constructor,fi=si.prototype,pi=li.prototype,mi=ui.prototype,gi=ci.prototype,vi=di.prototype,_i=hi.prototype,yi=mi.call,bi=mi.apply,wi=mi.bind,Li=vi.valueOf;function Mi(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw ai("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function ki(e){return e+""}function xi(e,t){if(e){if(e.constructor===e)throw ai("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw ai("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw ai("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw ai("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function Si(e,t){if(e){if(e.constructor===e)throw ai("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===yi||e===bi||e===wi)throw ai("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function Ti(e,t){if(e&&(e===si||e===li||e===ui||e===ci||e===di||e===hi||e===fi||e===pi||e===mi||e===gi||e===vi||e===_i))throw ai("isecaf","Assigning to a constructor or its prototype is disallowed! Expression: {0}",t)}var $i=Pe();b("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),(function(e){$i[e]=!0}));var Di={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ci=function(e){this.options=e};Ci.prototype={constructor:Ci,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),i=n+this.peek(2),r=$i[t],o=$i[n],a=$i[i];if(r||o||a){var s=a?i:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),i=t.charCodeAt(0);return n>=55296&&n<=56319&&i>=56320&&i<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var i=I(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw ai("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,i,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=o(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"===n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,r=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(i+=o,r){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else n+=Di[o]||o;r=!1}else if("\\"===o)r=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:i,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var Ei=function(e,t){this.lexer=e,this.options=t};function Ai(e,t){return void 0!==e?e:t}function Pi(e,t){return void 0===e?t:void 0===t?e:e+t}function Yi(e,t){var n,i,r;switch(e.type){case Ei.Program:n=!0,b(e.body,(function(e){Yi(e.expression,t),n=n&&e.expression.constant})),e.constant=n;break;case Ei.Literal:e.constant=!0,e.toWatch=[];break;case Ei.UnaryExpression:Yi(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Ei.BinaryExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Ei.LogicalExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case Ei.ConditionalExpression:Yi(e.test,t),Yi(e.alternate,t),Yi(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Ei.Identifier:e.constant=!1,e.toWatch=[e];break;case Ei.MemberExpression:Yi(e.object,t),e.computed&&Yi(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case Ei.CallExpression:r=!!e.filter&&function(e,t){return!e(t).$stateful}(t,e.callee.name),n=r,i=[],b(e.arguments,(function(e){Yi(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)})),e.constant=n,e.toWatch=r?i:[e];break;case Ei.AssignmentExpression:Yi(e.left,t),Yi(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case Ei.ArrayExpression:n=!0,i=[],b(e.elements,(function(e){Yi(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)})),e.constant=n,e.toWatch=i;break;case Ei.ObjectExpression:n=!0,i=[],b(e.properties,(function(e){Yi(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||i.push.apply(i,e.value.toWatch)})),e.constant=n,e.toWatch=i;break;case Ei.ThisExpression:case Ei.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Oi(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function Ii(e){return e.type===Ei.Identifier||e.type===Ei.MemberExpression}function ji(e){if(1===e.body.length&&Ii(e.body[0].expression))return{type:Ei.AssignmentExpression,left:e.body[0].expression,right:{type:Ei.NGValueParameter},operator:"="}}function Hi(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===Ei.Literal||e.body[0].expression.type===Ei.ArrayExpression||e.body[0].expression.type===Ei.ObjectExpression)}function Bi(e){return e.constant}function Ni(e,t){this.astBuilder=e,this.$filter=t}function Ri(e,t){this.astBuilder=e,this.$filter=t}Ei.Program="Program",Ei.ExpressionStatement="ExpressionStatement",Ei.AssignmentExpression="AssignmentExpression",Ei.ConditionalExpression="ConditionalExpression",Ei.LogicalExpression="LogicalExpression",Ei.BinaryExpression="BinaryExpression",Ei.UnaryExpression="UnaryExpression",Ei.CallExpression="CallExpression",Ei.MemberExpression="MemberExpression",Ei.Identifier="Identifier",Ei.Literal="Literal",Ei.ArrayExpression="ArrayExpression",Ei.Property="Property",Ei.ObjectExpression="ObjectExpression",Ei.ThisExpression="ThisExpression",Ei.LocalsExpression="LocalsExpression",Ei.NGValueParameter="NGValueParameter",Ei.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:Ei.Program,body:e}},expressionStatement:function(){return{type:Ei.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Ii(e))throw ai("lval","Trying to assign a value to a non l-value");e={type:Ei.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Ei.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Ei.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:Ei.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Ei.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Ei.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=te(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Ei.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:Ei.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Ei.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Ei.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Ei.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Ei.Identifier,name:e.text}},constant:function(){return{type:Ei.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Ei.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Ei.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Ei.ObjectExpression,properties:t}},throwError:function(e,t){throw ai("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw ai("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw ai("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,i){return this.peekAhead(0,e,t,n,i)},peekAhead:function(e,t,n,i,r){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===i||a===r||!t&&!n&&!i&&!r)return o}return!1},expect:function(e,t,n,i){var r=this.peek(e,t,n,i);return!!r&&(this.tokens.shift(),r)},selfReferential:{this:{type:Ei.ThisExpression},$locals:{type:Ei.LocalsExpression}}},Ni.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Yi(i,n.$filter);var r,o="";if(this.stage="assign",r=ji(i)){this.state.computing="assign";var a=this.nextId();this.recurse(r,a),this.return_(a),o="fn.assign="+this.generateFunction("assign","s,v,l")}var s=Oi(i.body);n.stage="inputs",b(s,(function(e,t){var i="fn"+t;n.state[i]={vars:[],body:[],own:{}},n.state.computing=i;var r=n.nextId();n.recurse(e,r),n.return_(r),n.state.inputs.push(i),e.watchId=t})),this.state.computing="fn",this.stage="main",this.recurse(i);var l='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+o+this.watchFns()+"return fn;",u=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",l)(this.$filter,Mi,xi,Si,ki,Ti,Ai,Pi,e);return this.state=this.stage=void 0,u.literal=Hi(i),u.constant=Bi(i),u},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return b(t,(function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))})),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return b(this.state.filters,(function(n,i){e.push(n+"=$filter("+t.escape(i)+")")})),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,i,r,o){var a,s,l,u,c,d=this;if(i=i||E,!o&&I(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,i,r,!0));switch(e.type){case Ei.Program:b(e.body,(function(t,n){d.recurse(t.expression,void 0,void 0,(function(e){s=e})),n!==e.body.length-1?d.current().body.push(s,";"):d.return_(s)}));break;case Ei.Literal:u=this.escape(e.value),this.assign(t,u),i(u);break;case Ei.UnaryExpression:this.recurse(e.argument,void 0,void 0,(function(e){s=e})),u=e.operator+"("+this.ifDefined(s,0)+")",this.assign(t,u),i(u);break;case Ei.BinaryExpression:this.recurse(e.left,void 0,void 0,(function(e){a=e})),this.recurse(e.right,void 0,void 0,(function(e){s=e})),u="+"===e.operator?this.plus(a,s):"-"===e.operator?this.ifDefined(a,0)+e.operator+this.ifDefined(s,0):"("+a+")"+e.operator+"("+s+")",this.assign(t,u),i(u);break;case Ei.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&&"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),i(t);break;case Ei.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),i(t);break;case Ei.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),Mi(e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),(function(){d.if_("inputs"===d.stage||"s",(function(){r&&1!==r&&d.if_(d.not(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))}))}),t&&d.lazyAssign(t,d.nonComputedMember("l",e.name))),(d.state.expensiveChecks||zi(e.name))&&d.addEnsureSafeObject(t),i(t);break;case Ei.MemberExpression:a=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,a,void 0,(function(){d.if_(d.notNull(a),(function(){r&&1!==r&&d.addEnsureSafeAssignContext(a),e.computed?(s=d.nextId(),d.recurse(e.property,s),d.getStringValue(s),d.addEnsureSafeMemberName(s),r&&1!==r&&d.if_(d.not(d.computedMember(a,s)),d.lazyAssign(d.computedMember(a,s),"{}")),u=d.ensureSafeObject(d.computedMember(a,s)),d.assign(t,u),n&&(n.computed=!0,n.name=s)):(Mi(e.property.name),r&&1!==r&&d.if_(d.not(d.nonComputedMember(a,e.property.name)),d.lazyAssign(d.nonComputedMember(a,e.property.name),"{}")),u=d.nonComputedMember(a,e.property.name),(d.state.expensiveChecks||zi(e.property.name))&&(u=d.ensureSafeObject(u)),d.assign(t,u),n&&(n.computed=!1,n.name=e.property.name))}),(function(){d.assign(t,"undefined")})),i(t)}),!!r);break;case Ei.CallExpression:t=t||this.nextId(),e.filter?(s=d.filter(e.callee.name),l=[],b(e.arguments,(function(e){var t=d.nextId();d.recurse(e,t),l.push(t)})),u=s+"("+l.join(",")+")",d.assign(t,u),i(t)):(s=d.nextId(),a={},l=[],d.recurse(e.callee,s,a,(function(){d.if_(d.notNull(s),(function(){d.addEnsureSafeFunction(s),b(e.arguments,(function(e){d.recurse(e,d.nextId(),void 0,(function(e){l.push(d.ensureSafeObject(e))}))})),a.name?(d.state.expensiveChecks||d.addEnsureSafeObject(a.context),u=d.member(a.context,a.name,a.computed)+"("+l.join(",")+")"):u=s+"("+l.join(",")+")",u=d.ensureSafeObject(u),d.assign(t,u)}),(function(){d.assign(t,"undefined")})),i(t)})));break;case Ei.AssignmentExpression:s=this.nextId(),a={},this.recurse(e.left,void 0,a,(function(){d.if_(d.notNull(a.context),(function(){d.recurse(e.right,s),d.addEnsureSafeObject(d.member(a.context,a.name,a.computed)),d.addEnsureSafeAssignContext(a.context),u=d.member(a.context,a.name,a.computed)+e.operator+s,d.assign(t,u),i(t||u)}))}),1);break;case Ei.ArrayExpression:l=[],b(e.elements,(function(e){d.recurse(e,d.nextId(),void 0,(function(e){l.push(e)}))})),u="["+l.join(",")+"]",this.assign(t,u),i(u);break;case Ei.ObjectExpression:l=[],c=!1,b(e.properties,(function(e){e.computed&&(c=!0)})),c?(t=t||this.nextId(),this.assign(t,"{}"),b(e.properties,(function(e){e.computed?(a=d.nextId(),d.recurse(e.key,a)):a=e.key.type===Ei.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,a,e.computed),s)}))):(b(e.properties,(function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,(function(e){l.push(d.escape(t.key.type===Ei.Identifier?t.key.name:""+t.key.value)+":"+e)}))})),u="{"+l.join(",")+"}",this.assign(t,u)),i(t||u);break;case Ei.ThisExpression:this.assign(t,"s"),i("s");break;case Ei.LocalsExpression:this.assign(t,"l"),i("l");break;case Ei.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),i[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var i=this.current().body;i.push("if(",e,"){"),t(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,i,r,o){var a=this;return function(){a.recurse(e,t,n,i,r,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(B(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(N(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw ai("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Ri.prototype={compile:function(e,t){var n,i,r=this,o=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,Yi(o,r.$filter),(n=ji(o))&&(i=this.recurse(n));var a,s=Oi(o.body);s&&(a=[],b(s,(function(e,t){var n=r.recurse(e);e.input=n,a.push(n),e.watchId=t})));var l=[];b(o.body,(function(e){l.push(r.recurse(e.expression))}));var u=0===o.body.length?E:1===o.body.length?l[0]:function(e,t){var n;return b(l,(function(i){n=i(e,t)})),n};return i&&(u.assign=function(e,t,n){return i(e,n,t)}),a&&(u.inputs=a),u.literal=Hi(o),u.constant=Bi(o),u},recurse:function(e,t,n){var i,r,o,a=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Ei.Literal:return this.value(e.value,t);case Ei.UnaryExpression:return r=this.recurse(e.argument),this["unary"+e.operator](r,t);case Ei.BinaryExpression:case Ei.LogicalExpression:return i=this.recurse(e.left),r=this.recurse(e.right),this["binary"+e.operator](i,r,t);case Ei.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case Ei.Identifier:return Mi(e.name,a.expression),a.identifier(e.name,a.expensiveChecks||zi(e.name),t,n,a.expression);case Ei.MemberExpression:return i=this.recurse(e.object,!1,!!n),e.computed||(Mi(e.property.name,a.expression),r=e.property.name),e.computed&&(r=this.recurse(e.property)),e.computed?this.computedMember(i,r,t,n,a.expression):this.nonComputedMember(i,r,a.expensiveChecks,t,n,a.expression);case Ei.CallExpression:return o=[],b(e.arguments,(function(e){o.push(a.recurse(e))})),e.filter&&(r=this.$filter(e.callee.name)),e.filter||(r=this.recurse(e.callee,!0)),e.filter?function(e,n,i,a){for(var s=[],l=0;l<o.length;++l)s.push(o[l](e,n,i,a));var u=r.apply(void 0,s,a);return t?{context:void 0,name:void 0,value:u}:u}:function(e,n,i,s){var l,u=r(e,n,i,s);if(null!=u.value){xi(u.context,a.expression),Si(u.value,a.expression);for(var c=[],d=0;d<o.length;++d)c.push(xi(o[d](e,n,i,s),a.expression));l=xi(u.value.apply(u.context,c),a.expression)}return t?{value:l}:l};case Ei.AssignmentExpression:return i=this.recurse(e.left,!0,1),r=this.recurse(e.right),function(e,n,o,s){var l=i(e,n,o,s),u=r(e,n,o,s);return xi(l.value,a.expression),Ti(l.context),l.context[l.name]=u,t?{value:u}:u};case Ei.ArrayExpression:return o=[],b(e.elements,(function(e){o.push(a.recurse(e))})),function(e,n,i,r){for(var a=[],s=0;s<o.length;++s)a.push(o[s](e,n,i,r));return t?{value:a}:a};case Ei.ObjectExpression:return o=[],b(e.properties,(function(e){e.computed?o.push({key:a.recurse(e.key),computed:!0,value:a.recurse(e.value)}):o.push({key:e.key.type===Ei.Identifier?e.key.name:""+e.key.value,computed:!1,value:a.recurse(e.value)})})),function(e,n,i,r){for(var a={},s=0;s<o.length;++s)o[s].computed?a[o[s].key(e,n,i,r)]=o[s].value(e,n,i,r):a[o[s].key]=o[s].value(e,n,i,r);return t?{value:a}:a};case Ei.ThisExpression:return function(e){return t?{value:e}:e};case Ei.LocalsExpression:return function(e,n){return t?{value:n}:n};case Ei.NGValueParameter:return function(e,n,i){return t?{value:i}:i}}},"unary+":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=I(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=I(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,i,r,o){var a=!e(n,i,r,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(i,r,o,a){var s=Pi(e(i,r,o,a),t(i,r,o,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a),l=t(i,r,o,a),u=(I(s)?s:0)-(I(l)?l:0);return n?{value:u}:u}},"binary*":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)*t(i,r,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)/t(i,r,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)%t(i,r,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)===t(i,r,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!==t(i,r,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)==t(i,r,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!=t(i,r,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<t(i,r,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>t(i,r,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<=t(i,r,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>=t(i,r,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)&&t(i,r,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)||t(i,r,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,i){return function(r,o,a,s){var l=e(r,o,a,s)?t(r,o,a,s):n(r,o,a,s);return i?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,i,r){return function(o,a,s,l){var u=a&&e in a?a:o;i&&1!==i&&u&&!u[e]&&(u[e]={});var c=u?u[e]:void 0;return t&&xi(c,r),n?{context:u,name:e,value:c}:c}},computedMember:function(e,t,n,i,r){return function(o,a,s,l){var u,c,d=e(o,a,s,l);return null!=d&&(Mi(u=ki(u=t(o,a,s,l)),r),i&&1!==i&&(Ti(d),d&&!d[u]&&(d[u]={})),xi(c=d[u],r)),n?{context:d,name:u,value:c}:c}},nonComputedMember:function(e,t,n,i,r,o){return function(a,s,l,u){var c=e(a,s,l,u);r&&1!==r&&(Ti(c),c&&!c[t]&&(c[t]={}));var d=null!=c?c[t]:void 0;return(n||zi(t))&&xi(d,o),i?{context:c,name:t,value:d}:d}},inputs:function(e,t){return function(n,i,r,o){return o?o[t]:e(n,i,r)}}};var Fi=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new Ei(e,n),this.astCompiler=n.csp?new Ri(this.ast,t):new Ni(this.ast,t)};function zi(e){return"constructor"===e}function Vi(e){return z(e.valueOf)?e.valueOf():Li.call(e)}function Ui(){var e,t,n=Pe(),i=Pe(),r={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){r[e]=t},this.setIdentifierFns=function(n,i){return e=n,t=i,this},this.$get=["$filter",function(o){var a=ie().noUnsafeEval,s={csp:a,expensiveChecks:!1,literals:te(r),isIdentifierStart:z(e)&&e,isIdentifierContinue:z(t)&&t},l={csp:a,expensiveChecks:!0,literals:te(r),isIdentifierStart:z(e)&&e,isIdentifierContinue:z(t)&&t},u=!1;return c.$$runningExpensiveChecks=function(){return u},c;function c(e,t,r){var a,c,d;switch(r=r||u,typeof e){case"string":e=e.trim();var v=r?i:n;if(!(a=v[d=e])){":"===e.charAt(0)&&":"===e.charAt(1)&&(c=!0,e=e.substring(2));var _=r?l:s,y=new Ci(_);(a=new Fi(y,o,_).parse(e)).constant?a.$$watchDelegate=m:c?a.$$watchDelegate=a.literal?p:f:a.inputs&&(a.$$watchDelegate=h),r&&(a=function e(t){if(!t)return t;i.$$watchDelegate=t.$$watchDelegate,i.assign=e(t.assign),i.constant=t.constant,i.literal=t.literal;for(var n=0;t.inputs&&n<t.inputs.length;++n)t.inputs[n]=e(t.inputs[n]);return i.inputs=t.inputs,i;function i(e,n,i,r){var o=u;u=!0;try{return t(e,n,i,r)}finally{u=o}}}(a)),v[d]=a}return g(a,t);case"function":return g(e,t);default:return g(E,t)}}function d(e,t){return null==e||null==t?e===t:("object"!=typeof e||"object"!=typeof(e=Vi(e)))&&(e===t||e!=e&&t!=t)}function h(e,t,n,i,r){var o,a=i.inputs;if(1===a.length){var s=d;return a=a[0],e.$watch((function(e){var t=a(e);return d(t,s)||(o=i(e,void 0,void 0,[t]),s=t&&Vi(t)),o}),t,n,r)}for(var l=[],u=[],c=0,h=a.length;c<h;c++)l[c]=d,u[c]=null;return e.$watch((function(e){for(var t=!1,n=0,r=a.length;n<r;n++){var s=a[n](e);(t||(t=!d(s,l[n])))&&(u[n]=s,l[n]=s&&Vi(s))}return t&&(o=i(e,void 0,void 0,u)),o}),t,n,r)}function f(e,t,n,i){var r,o;return r=e.$watch((function(e){return i(e)}),(function(e,n,i){o=e,z(t)&&t.apply(this,arguments),I(e)&&i.$$postDigest((function(){I(o)&&r()}))}),n)}function p(e,t,n,i){var r,o;return r=e.$watch((function(e){return i(e)}),(function(e,n,i){o=e,z(t)&&t.call(this,e,n,i),a(e)&&i.$$postDigest((function(){a(o)&&r()}))}),n);function a(e){var t=!0;return b(e,(function(e){I(e)||(t=!1)})),t}}function m(e,t,n,i){var r=e.$watch((function(e){return r(),i(e)}),t,n);return r}function g(e,t){if(!t)return e;var n=e.$$watchDelegate,i=!1,r=n!==p&&n!==f?function(n,r,o,a){var s=i&&a?a[0]:e(n,r,o,a);return t(s,n,r)}:function(n,i,r,o){var a=e(n,i,r,o),s=t(a,n,i);return I(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==h?r.$$watchDelegate=e.$$watchDelegate:t.$stateful||(r.$$watchDelegate=h,i=!e.inputs,r.inputs=e.inputs?e.inputs:[e]),r}}]}function Wi(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return Gi((function(t){e.$evalAsync(t)}),t)}]}function qi(){this.$get=["$browser","$exceptionHandler",function(e,t){return Gi((function(t){e.defer(t)}),t)}]}function Gi(e,n){var i=t("$q",TypeError);function r(){var e=new l;return e.resolve=a(e,e.resolve),e.reject=a(e,e.reject),e.notify=a(e,e.notify),e}function o(){this.$$state={status:0}}function a(e,t){return function(n){t.call(e,n)}}function s(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e((function(){!function(e){var t,i,r;r=e.pending,e.processScheduled=!1,e.pending=void 0;for(var o=0,a=r.length;o<a;++o){i=r[o][0],t=r[o][e.status];try{z(t)?i.resolve(t(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(e){i.reject(e),n(e)}}}(t)})))}function l(){this.promise=new o}function u(e){var t=new l;return t.reject(e),t.promise}function c(e,t,n){var i=null;try{z(n)&&(i=n())}catch(e){return u(e)}return G(i)?i.then((function(){return t(e)}),u):t(e)}function d(e,t,n,i){var r=new l;return r.resolve(e),r.promise.then(t,n,i)}S(o.prototype,{then:function(e,t,n){if(O(e)&&O(t)&&O(n))return this;var i=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),this.$$state.status>0&&s(this.$$state),i.promise},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then((function(t){return c(t,h,e)}),(function(t){return c(t,u,e)}),t)}}),S(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(i("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){var t,i=this,r=!1;try{(j(e)||z(e))&&(t=e&&e.then),z(t)?(this.promise.$$state.status=-1,t.call(e,(function(e){r||(r=!0,i.$$resolve(e))}),o,a(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,s(this.promise.$$state))}catch(e){o(e),n(e)}function o(e){r||(r=!0,i.$$reject(e))}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,s(this.promise.$$state)},notify:function(t){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&e((function(){for(var e,r,o=0,a=i.length;o<a;o++){r=i[o][0],e=i[o][3];try{r.notify(z(e)?e(t):t)}catch(e){n(e)}}}))}});var h=d;function f(e){if(!z(e))throw i("norslvr","Expected resolverFn, got '{0}'",e);var t=new l;return e((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}return f.prototype=o.prototype,f.defer=r,f.reject=u,f.when=d,f.resolve=h,f.all=function(e){var t=new l,n=0,i=F(e)?[]:{};return b(e,(function(e,r){n++,d(e).then((function(e){i[r]=e,--n||t.resolve(i)}),(function(e){t.reject(e)}))})),0===n&&t.resolve(i),t.promise},f.race=function(e){var t=r();return b(e,(function(e){d(e).then(t.resolve,t.reject)})),t.promise},f}function Zi(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,r=!!n,o=r?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=r,o}]}function Ji(){var e=10,n=t("$rootScope"),i=null,o=null;this.digestTtl=function(t){return arguments.length&&(e=t),e},this.$get=["$exceptionHandler","$parse","$browser",function(t,a,l){function u(e){e.currentScope.$$destroyed=!0}function c(){this.$id=M(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}c.prototype={constructor:c,$new:function(e,t){var n;return t=t||this,e?(n=new c).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=M(),this.$$ChildScope=null}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,(e||t!==this)&&n.$on("$destroy",u),n},$watch:function(e,t,n,r){var o=a(e);if(o.$$watchDelegate)return o.$$watchDelegate(this,t,n,o,e);var s=this,l=s.$$watchers,u={fn:t,last:L,get:o,exp:r||e,eq:!!n};return i=null,z(t)||(u.fn=E),l||((l=s.$$watchers=[]).$$digestWatchIndex=-1),l.unshift(u),l.$$digestWatchIndex++,_(this,1),function(){var e=ee(l,u);e>=0&&(_(s,-1),e<l.$$digestWatchIndex&&l.$$digestWatchIndex--),i=null}},$watchGroup:function(e,t){var n=new Array(e.length),i=new Array(e.length),r=[],o=this,a=!1,s=!0;if(!e.length){var l=!0;return o.$evalAsync((function(){l&&t(i,i,o)})),function(){l=!1}}if(1===e.length)return this.$watch(e[0],(function(e,r,o){i[0]=e,n[0]=r,t(i,e===r?i:n,o)}));function u(){a=!1,s?(s=!1,t(i,i,o)):t(i,n,o)}return b(e,(function(e,t){var s=o.$watch(e,(function(e,r){i[t]=e,n[t]=r,a||(a=!0,o.$evalAsync(u))}));r.push(s)})),function(){for(;r.length;)r.shift()()}},$watchCollection:function(e,t){m.$stateful=!0;var n,i,o,s=this,l=t.length>1,u=0,c=a(e,m),d=[],h={},f=!0,p=0;function m(e){var t,o,a,s;if(!O(n=e)){if(j(n))if(y(n)){i!==d&&(p=(i=d).length=0,u++),t=n.length,p!==t&&(u++,i.length=p=t);for(var l=0;l<t;l++)s=i[l],a=n[l],s!=s&&a!=a||s===a||(u++,i[l]=a)}else{for(o in i!==h&&(i=h={},p=0,u++),t=0,n)r.call(n,o)&&(t++,a=n[o],s=i[o],o in i?s!=s&&a!=a||s===a||(u++,i[o]=a):(p++,i[o]=a,u++));if(p>t)for(o in u++,i)r.call(n,o)||(p--,delete i[o])}else i!==n&&(i=n,u++);return u}}return this.$watch(c,(function(){if(f?(f=!1,t(n,n,s)):t(n,o,s),l)if(j(n))if(y(n)){o=new Array(n.length);for(var e=0;e<n.length;e++)o[e]=n[e]}else for(var i in o={},n)r.call(n,i)&&(o[i]=n[i]);else o=n}))},$digest:function(){var r,a,s,u,c,p,_,y,b,w=e,M=[];g("$digest"),l.$$checkUrlChange(),this===d&&null!==o&&(l.defer.cancel(o),k()),i=null;do{c=!1,_=this;for(var x=0;x<h.length;x++){try{(b=h[x]).scope.$eval(b.expression,b.locals)}catch(e){t(e)}i=null}h.length=0;e:do{if(u=_.$$watchers)for(u.$$digestWatchIndex=u.length;u.$$digestWatchIndex--;)try{if(r=u[u.$$digestWatchIndex])if((a=(0,r.get)(_))===(s=r.last)||(r.eq?ne(a,s):D(a)&&D(s))){if(r===i){c=!1;break e}}else c=!0,i=r,r.last=r.eq?te(a,null):a,(0,r.fn)(a,s===L?a:s,_),w<5&&(M[y=4-w]||(M[y]=[]),M[y].push({msg:z(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,newVal:a,oldVal:s}))}catch(e){t(e)}if(!(p=_.$$watchersCount&&_.$$childHead||_!==this&&_.$$nextSibling))for(;_!==this&&!(p=_.$$nextSibling);)_=_.$parent}while(_=p);if((c||h.length)&&!w--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",e,M)}while(c||h.length);for(v();m<f.length;)try{f[m++]()}catch(e){t(e)}f.length=m=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===d&&l.$$applicationDestroyed(),_(this,-this.$$watchersCount),this.$$listenerCount)w(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E,this.$on=this.$watch=this.$watchGroup=function(){return E},this.$$listeners={},this.$$nextSibling=null,function e(t){9===s&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return a(e)(this,t)},$evalAsync:function(e,t){d.$$phase||h.length||l.defer((function(){h.length&&d.$digest()})),h.push({scope:this,expression:a(e),locals:t})},$$postDigest:function(e){f.push(e)},$apply:function(e){try{g("$apply");try{return this.$eval(e)}finally{v()}}catch(e){t(e)}finally{try{d.$digest()}catch(e){throw t(e),e}}},$applyAsync:function(e){var t=this;e&&p.push((function(){t.$eval(e)})),e=a(e),null===o&&(o=l.defer((function(){d.$apply(k)})))},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do{i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++}while(i=i.$parent);var r=this;return function(){var i=n.indexOf(t);-1!==i&&(n[i]=null,w(r,1,e))}},$emit:function(e,n){var i,r,o,a=[],s=this,l=!1,u={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},c=oe([u],arguments,1);do{for(i=s.$$listeners[e]||a,u.currentScope=s,r=0,o=i.length;r<o;r++)if(i[r])try{i[r].apply(null,c)}catch(e){t(e)}else i.splice(r,1),r--,o--;if(l)return u.currentScope=null,u;s=s.$parent}while(s);return u.currentScope=null,u},$broadcast:function(e,n){var i=this,r=i,o=i,a={name:e,targetScope:i,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!i.$$listenerCount[e])return a;for(var s,l,u,c=oe([a],arguments,1);r=o;){for(a.currentScope=r,l=0,u=(s=r.$$listeners[e]||[]).length;l<u;l++)if(s[l])try{s[l].apply(null,c)}catch(e){t(e)}else s.splice(l,1),l--,u--;if(!(o=r.$$listenerCount[e]&&r.$$childHead||r!==i&&r.$$nextSibling))for(;r!==i&&!(o=r.$$nextSibling);)r=r.$parent}return a.currentScope=null,a}};var d=new c,h=d.$$asyncQueue=[],f=d.$$postDigestQueue=[],p=d.$$applyAsyncQueue=[],m=0;return d;function g(e){if(d.$$phase)throw n("inprog","{0} already in progress",d.$$phase);d.$$phase=e}function v(){d.$$phase=null}function _(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function w(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function L(){}function k(){for(;p.length;)try{p.shift()()}catch(e){t(e)}o=null}}]}function Xi(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return I(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return I(e)?(t=e,this):t},this.$get=function(){return function(n,i){var r,o=i?t:e;return""===(r=cr(n).href)||r.match(o)?n:"unsafe:"+r}}}Fi.prototype={constructor:Fi,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var Ki=t("$sce"),Qi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"};function er(e){var t=[];return I(e)&&b(e,(function(e){t.push(function(e){if("self"===e)return e;if(B(e)){if(e.indexOf("***")>-1)throw Ki("iwcard","Illegal sequence *** in string matcher.  String: {0}",e);return e=X(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(V(e))return new RegExp("^"+e.source+"$");throw Ki("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))})),t}function tr(){this.SCE_CONTEXTS=Qi;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=er(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=er(e)),t},this.$get=["$injector",function(n){var i=function(e){throw Ki("unsafe","Attempting to use an unsafe value in a safe context.")};function r(e,t){return"self"===e?dr(t):!!e.exec(t.href)}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}n.has("$sanitize")&&(i=n.get("$sanitize"));var a=o(),s={};return s[Qi.HTML]=o(a),s[Qi.CSS]=o(a),s[Qi.URL]=o(a),s[Qi.JS]=o(a),s[Qi.RESOURCE_URL]=o(s[Qi.URL]),{trustAs:function(e,t){var n=s.hasOwnProperty(e)?s[e]:null;if(!n)throw Ki("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||O(t)||""===t)return t;if("string"!=typeof t)throw Ki("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(n,o){if(null===o||O(o)||""===o)return o;var a=s.hasOwnProperty(n)?s[n]:null;if(a&&o instanceof a)return o.$$unwrapTrustedValue();if(n===Qi.RESOURCE_URL){if(function(n){var i,o,a=cr(n.toString()),s=!1;for(i=0,o=e.length;i<o;i++)if(r(e[i],a)){s=!0;break}if(s)for(i=0,o=t.length;i<o;i++)if(r(t[i],a)){s=!1;break}return s}(o))return o;throw Ki("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",o.toString())}if(n===Qi.HTML)return i(o);throw Ki("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof a?e.$$unwrapTrustedValue():e}}}]}function nr(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&s<8)throw Ki("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var i=Be(Qi);i.isEnabled=function(){return e},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,e||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=A),i.parseAs=function(e,n){var r=t(n);return r.literal&&r.constant?r:t(n,(function(t){return i.getTrusted(e,t)}))};var r=i.parseAs,a=i.getTrusted,l=i.trustAs;return b(Qi,(function(e,t){var n=o(t);i[Je("parse_as_"+n)]=function(t){return r(e,t)},i[Je("get_trusted_"+n)]=function(t){return a(e,t)},i[Je("trust_as_"+n)]=function(t){return l(e,t)}})),i}]}function ir(){this.$get=["$window","$document",function(e,t){var n,i,r={},a=!(e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,l=$((/android (\d+)/.exec(o((e.navigator||{}).userAgent))||[])[1]),u=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},d=/^(Moz|webkit|ms)(?=[A-Z])/,h=c.body&&c.body.style,f=!1,p=!1;if(h){for(var m in h)if(i=d.exec(m)){n=(n=i[0])[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in h&&"webkit"),f=!!("transition"in h||n+"Transition"in h),p=!!("animation"in h||n+"Animation"in h),!l||f&&p||(f=B(h.webkitTransition),p=B(h.webkitAnimation))}return{history:!(!a||l<4||u),hasEvent:function(e){if("input"===e&&s<=11)return!1;if(O(r[e])){var t=c.createElement("div");r[e]="on"+e in t}return r[e]},csp:ie(),vendorPrefix:n,transitions:f,animations:p,android:l}}]}var rr=t("$compile");function or(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,i,r){function o(a,s){o.totalPendingRequests++,B(a)&&!O(t.get(a))||(a=r.getTrustedResourceUrl(a));var l=n.defaults&&n.defaults.transformResponse;return F(l)?l=l.filter((function(e){return e!==Dn})):l===Dn&&(l=null),n.get(a,S({cache:t,transformResponse:l},e)).finally((function(){o.totalPendingRequests--})).then((function(e){return t.put(a,e.data),e.data}),(function(e){if(!s)throw rr("tpload","Failed to load template: {0} (HTTP status: {1} {2})",a,e.status,e.statusText);return i.reject(e)}))}return o.totalPendingRequests=0,o}]}function ar(){this.$get=["$rootScope","$browser","$location",function(e,t,n){return{findBindings:function(e,t,n){var i=e.getElementsByClassName("ng-binding"),r=[];return b(i,(function(e){var i=v.element(e).data("$binding");i&&b(i,(function(i){n?new RegExp("(^|\\s)"+X(t)+"(\\s|\\||$)").test(i)&&r.push(e):-1!==i.indexOf(t)&&r.push(e)}))})),r},findModels:function(e,t,n){
+for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var o="["+i[r]+"model"+(n?"=":"*=")+'"'+t+'"]',a=e.querySelectorAll(o);if(a.length)return a}},getLocation:function(){return n.url()},setLocation:function(t){t!==n.url()&&(n.url(t),e.$digest())},whenStable:function(e){t.notifyWhenNoOutstandingRequests(e)}}}]}function sr(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,r){var o={};function a(a,s,l){z(a)||(l=s,s=a,a=E);var u,c=ae(arguments,3),d=I(l)&&!l,h=(d?i:n).defer(),f=h.promise;return u=t.defer((function(){try{h.resolve(a.apply(null,c))}catch(e){h.reject(e),r(e)}finally{delete o[f.$$timeoutId]}d||e.$apply()}),s),f.$$timeoutId=u,o[u]=h,f}return a.cancel=function(e){return!!(e&&e.$$timeoutId in o)&&(o[e.$$timeoutId].reject("canceled"),delete o[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},a}]}var lr=e.document.createElement("a"),ur=cr(e.location.href);function cr(e){var t=e;return s&&(lr.setAttribute("href",t),t=lr.href),lr.setAttribute("href",t),{href:lr.href,protocol:lr.protocol?lr.protocol.replace(/:$/,""):"",host:lr.host,search:lr.search?lr.search.replace(/^\?/,""):"",hash:lr.hash?lr.hash.replace(/^#/,""):"",hostname:lr.hostname,port:lr.port,pathname:"/"===lr.pathname.charAt(0)?lr.pathname:"/"+lr.pathname}}function dr(e){var t=B(e)?cr(e):e;return t.protocol===ur.protocol&&t.host===ur.host}function hr(){this.$get=P(e)}function fr(e){var t=e[0]||{},n={},i="";function r(e){try{return decodeURIComponent(e)}catch(t){return e}}return function(){var e,o,a,s,l,u=function(e){try{return e.cookie||""}catch(e){return""}}(t);if(u!==i)for(e=(i=u).split("; "),n={},a=0;a<e.length;a++)(s=(o=e[a]).indexOf("="))>0&&(l=r(o.substring(0,s)),O(n[l])&&(n[l]=r(o.substring(s+1))));return n}}function pr(){this.$get=fr}function mr(e){var t="Filter";function n(i,r){if(j(i)){var o={};return b(i,(function(e,t){o[t]=n(t,e)})),o}return e.factory(i+t,r)}this.register=n,this.$get=["$injector",function(e){return function(n){return e.get(n+t)}}],n("currency",Lr),n("date",Yr),n("filter",gr),n("json",Or),n("limitTo",Hr),n("lowercase",Ir),n("number",Mr),n("orderBy",Nr),n("uppercase",jr)}function gr(){return function(e,n,i,r){if(!y(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}var a,s;switch(r=r||"$",_r(n)){case"function":a=n;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":a=function(e,t,n,i){var r=j(e)&&n in e;return!0===t?t=ne:z(t)||(t=function(e,t){return!(O(e)||(null===e||null===t?e!==t:j(t)||j(e)&&!Y(e)||(e=o(""+e),t=o(""+t),-1===e.indexOf(t))))}),function(o){return r&&!j(o)?vr(o,e[n],t,n,!1):vr(o,e,t,n,i)}}(n,i,r,s);break;default:return e}return Array.prototype.filter.call(e,a)}}function vr(e,t,n,i,r,o){var a=_r(e),s=_r(t);if("string"===s&&"!"===t.charAt(0))return!vr(e,t.substring(1),n,i,r);if(F(e))return e.some((function(e){return vr(e,t,n,i,r)}));switch(a){case"object":var l;if(r){for(l in e)if("$"!==l.charAt(0)&&vr(e[l],t,n,i,!0))return!0;return!o&&vr(e,t,n,i,!1)}if("object"===s){for(l in t){var u=t[l];if(!z(u)&&!O(u)){var c=l===i;if(!vr(c?e:e[l],u,n,i,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function _r(e){return null===e?"null":typeof e}fr.$inject=["$document"],mr.$inject=["$provide"];var yr=22,br=".",wr="0";function Lr(e){var t=e.NUMBER_FORMATS;return function(e,n,i){return O(n)&&(n=t.CURRENCY_SYM),O(i)&&(i=t.PATTERNS[1].maxFrac),null==e?e:kr(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function Mr(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:kr(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function kr(e,t,n,i,r){if(!B(e)&&!N(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",u="";if(a)u="∞";else{!function(e,t,n,i){var r=e.d,o=r.length-e.i,a=(t=O(t)?Math.min(Math.max(n,o),i):+t)+e.i,s=r[a];if(a>0){r.splice(Math.max(e.i,a));for(var l=a;l<r.length;l++)r[l]=0}else{o=Math.max(0,o),e.i=1,r.length=Math.max(1,a=t+1),r[0]=0;for(var u=1;u<a;u++)r[u]=0}if(s>=5)if(a-1<0){for(var c=0;c>a;c--)r.unshift(0),e.i++;r.unshift(1),e.i++}else r[a-1]++;for(;o<Math.max(0,t);o++)r.push(0);var d=r.reduceRight((function(e,t,n,i){return t+=e,i[n]=t%10,Math.floor(t/10)}),0);d&&(r.unshift(d),e.i++)}(o=function(e){var t,n,i,r,o,a=0;for((n=e.indexOf(br))>-1&&(e=e.replace(br,"")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charAt(i)===wr;i++);if(i===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===wr;)o--;for(n-=i,t=[],r=0;i<=o;i++,r++)t[r]=+e.charAt(i)}return n>yr&&(t=t.splice(0,yr-1),a=n-1,n=1),{d:t,e:a,i:n}}(l),r,t.minFrac,t.maxFrac);var c=o.d,d=o.i,h=o.e,f=[];for(s=c.reduce((function(e,t){return e&&!t}),!0);d<0;)c.unshift(0),d++;d>0?f=c.splice(d,c.length):(f=c,c=[0]);var p=[];for(c.length>=t.lgSize&&p.unshift(c.splice(-t.lgSize,c.length).join(""));c.length>t.gSize;)p.unshift(c.splice(-t.gSize,c.length).join(""));c.length&&p.unshift(c.join("")),u=p.join(n),f.length&&(u+=i+f.join("")),h&&(u+="e+"+h)}return e<0&&!s?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf}function xr(e,t,n,i){var r="";for((e<0||i&&e<=0)&&(i?e=1-e:(e=-e,r="-")),e=""+e;e.length<t;)e=wr+e;return n&&(e=e.substr(e.length-t)),r+e}function Sr(e,t,n,i,r){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),xr(a,t,i,r)}}function Tr(e,t,n){return function(i,r){var o=i["get"+e]();return r[a((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function $r(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Dr(e){return function(t){var n,i=$r(t.getFullYear()),r=(n=t,+new Date(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))-+i);return xr(1+Math.round(r/6048e5),e)}}function Cr(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}Lr.$inject=["$locale"],Mr.$inject=["$locale"];var Er={yyyy:Sr("FullYear",4,0,!1,!0),yy:Sr("FullYear",2,0,!0,!0),y:Sr("FullYear",1,0,!1,!0),MMMM:Tr("Month"),MMM:Tr("Month",!0),MM:Sr("Month",2,1),M:Sr("Month",1,1),LLLL:Tr("Month",!1,!0),dd:Sr("Date",2),d:Sr("Date",1),HH:Sr("Hours",2),H:Sr("Hours",1),hh:Sr("Hours",2,-12),h:Sr("Hours",1,-12),mm:Sr("Minutes",2),m:Sr("Minutes",1),ss:Sr("Seconds",2),s:Sr("Seconds",1),sss:Sr("Milliseconds",3),EEEE:Tr("Day"),EEE:Tr("Day",!0),a:function(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var i=-1*n;return(i>=0?"+":"")+(xr(Math[i>0?"floor":"ceil"](i/60),2)+xr(Math.abs(i%60),2))},ww:Dr(2),w:Dr(1),G:Cr,GG:Cr,GGG:Cr,GGGG:function(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}},Ar=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Pr=/^-?\d+$/;function Yr(e){var t=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,r){var o,a,s="",l=[];if(i=i||"mediumDate",i=e.DATETIME_FORMATS[i]||i,B(n)&&(n=Pr.test(n)?$(n):function(e){var n;if(n=e.match(t)){var i=new Date(0),r=0,o=0,a=n[8]?i.setUTCFullYear:i.setFullYear,s=n[8]?i.setUTCHours:i.setHours;n[9]&&(r=$(n[9]+n[10]),o=$(n[9]+n[11])),a.call(i,$(n[1]),$(n[2])-1,$(n[3]));var l=$(n[4]||0)-r,u=$(n[5]||0)-o,c=$(n[6]||0),d=Math.round(1e3*parseFloat("0."+(n[7]||0)));return s.call(i,l,u,c,d),i}return e}(n)),N(n)&&(n=new Date(n)),!R(n)||!isFinite(n.getTime()))return n;for(;i;)(a=Ar.exec(i))?i=(l=oe(l,a,1)).pop():(l.push(i),i=null);var u=n.getTimezoneOffset();return r&&(u=he(r,u),n=fe(n,r,!0)),b(l,(function(t){o=Er[t],s+=o?o(n,e.DATETIME_FORMATS,u):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")})),s}}function Or(){return function(e,t){return O(t)&&(t=2),ue(e,t)}}Yr.$inject=["$locale"];var Ir=P(o),jr=P(a);function Hr(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):$(t),D(t)?e:(N(e)&&(e=e.toString()),y(e)?(n=(n=!n||isNaN(n)?0:$(n))<0?Math.max(0,e.length+n):n,t>=0?Br(e,n,n+t):0===n?Br(e,t,e.length):Br(e,Math.max(0,n+t),n)):e)}}function Br(e,t,n){return B(e)?e.slice(t,n):d.call(e,t,n)}function Nr(e){return function(r,o,a,s){if(null==r)return r;if(!y(r))throw t("orderBy")("notarray","Expected array but received: {0}",r);F(o)||(o=[o]),0===o.length&&(o=["+"]);var l=o.map((function(t){var n=1,i=A;if(z(t))i=t;else if(B(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t)).constant)){var r=i();i=function(e){return e[r]}}return{get:i,descending:n}})),u=a?-1:1,c=z(s)?s:i,d=Array.prototype.map.call(r,(function(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:l.map((function(i){return function(e,t){var i=typeof e;return null===e?(i="string",e="null"):"object"===i&&(e=function(e){return z(e.valueOf)&&n(e=e.valueOf())?e:(Y(e)&&n(e=e.toString()),e)}(e)),{value:e,type:i,index:t}}(i.get(e),t)}))}}));return d.sort((function(e,t){for(var n=0,i=l.length;n<i;n++){var r=c(e.predicateValues[n],t.predicateValues[n]);if(r)return r*l[n].descending*u}return c(e.tieBreaker,t.tieBreaker)*u})),d.map((function(e){return e.value}))};function n(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function i(e,t){var n=0,i=e.type,r=t.type;if(i===r){var o=e.value,a=t.value;"string"===i?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===i&&(j(o)&&(o=e.index),j(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n=i<r?-1:1;return n}}function Rr(e){return z(e)&&(e={link:e}),e.restrict=e.restrict||"AC",P(e)}Nr.$inject=["$parse"];var Fr=P({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===p.call(t.prop("href"))?"xlink:href":"href";t.on("click",(function(e){t.attr(n)||e.preventDefault()}))}}}}),zr={};b(Mt,(function(e,t){if("multiple"!==e){var n=un("ng-"+t),i=r;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[n]&&r(e,0,i)}),zr[n]=function(){return{restrict:"A",priority:100,link:i}}}function r(e,i,r){e.$watch(r[n],(function(e){r.$set(t,!!e)}))}})),b(xt,(function(e,t){zr[t]=function(){return{priority:100,link:function(e,i,r){if("ngPattern"===t&&"/"===r.ngPattern.charAt(0)){var o=r.ngPattern.match(n);if(o)return void r.$set("ngPattern",new RegExp(o[1],o[2]))}e.$watch(r[t],(function(e){r.$set(t,e)}))}}}})),b(["src","srcset","href"],(function(e){var t=un("ng-"+e);zr[t]=function(){return{priority:99,link:function(n,i,r){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===p.call(i.prop("href"))&&(a="xlinkHref",r.$attr[a]="xlink:href",o=null),r.$observe(t,(function(t){t?(r.$set(a,t),s&&o&&i.prop(o,r[a])):"href"===e&&r.$set(a,null)}))}}}}));var Vr={$addControl:E,$$renameControl:function(e,t){e.$name=t},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E},Ur="ng-submitted";function Wr(e,t,n,i,r){var o=this,a=[];o.$error={},o.$$success={},o.$pending=void 0,o.$name=r(t.name||t.ngForm||"")(n),o.$dirty=!1,o.$pristine=!0,o.$valid=!0,o.$invalid=!1,o.$submitted=!1,o.$$parentForm=Vr,o.$rollbackViewValue=function(){b(a,(function(e){e.$rollbackViewValue()}))},o.$commitViewValue=function(){b(a,(function(e){e.$commitViewValue()}))},o.$addControl=function(e){Ce(e.$name,"input"),a.push(e),e.$name&&(o[e.$name]=e),e.$$parentForm=o},o.$$renameControl=function(e,t){var n=e.$name;o[n]===e&&delete o[n],o[t]=e,e.$name=t},o.$removeControl=function(e){e.$name&&o[e.$name]===e&&delete o[e.$name],b(o.$pending,(function(t,n){o.$setValidity(n,null,e)})),b(o.$error,(function(t,n){o.$setValidity(n,null,e)})),b(o.$$success,(function(t,n){o.$setValidity(n,null,e)})),ee(a,e),e.$$parentForm=Vr},Zo({ctrl:this,$element:e,set:function(e,t,n){var i=e[t];i?-1===i.indexOf(n)&&i.push(n):e[t]=[n]},unset:function(e,t,n){var i=e[t];i&&(ee(i,n),0===i.length&&delete e[t])},$animate:i}),o.$setDirty=function(){i.removeClass(e,Ro),i.addClass(e,Fo),o.$dirty=!0,o.$pristine=!1,o.$$parentForm.$setDirty()},o.$setPristine=function(){i.setClass(e,Ro,Fo+" "+Ur),o.$dirty=!1,o.$pristine=!0,o.$submitted=!1,b(a,(function(e){e.$setPristine()}))},o.$setUntouched=function(){b(a,(function(e){e.$setUntouched()}))},o.$setSubmitted=function(){i.addClass(e,Ur),o.$submitted=!0,o.$$parentForm.$setSubmitted()}}Wr.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var qr=function(e){return["$timeout","$parse",function(t,n){return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:Wr,compile:function(n,r){n.addClass(Ro).addClass(Bo);var o=r.name?"name":!(!e||!r.ngForm)&&"ngForm";return{pre:function(e,n,r,a){var s=a[0];if(!("action"in r)){var l=function(t){e.$apply((function(){s.$commitViewValue(),s.$setSubmitted()})),t.preventDefault()};Ve(n[0],"submit",l),n.on("$destroy",(function(){t((function(){Ue(n[0],"submit",l)}),0,!1)}))}(a[1]||s.$$parentForm).$addControl(s);var u=o?i(s.$name):E;o&&(u(e,s),r.$observe(o,(function(t){s.$name!==t&&(u(e,void 0),s.$$parentForm.$$renameControl(s,t),(u=i(s.$name))(e,s))}))),n.on("$destroy",(function(){s.$$parentForm.$removeControl(s),u(e,void 0),S(s,Vr)}))}}}};function i(e){return""===e?n('this[""]').assign:n(e).assign||E}}]},Gr=qr(),Zr=qr(!0),Jr=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Xr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Kr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Qr=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,eo=/^(\d{4,})-(\d{2})-(\d{2})$/,to=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,no=/^(\d{4,})-W(\d\d)$/,io=/^(\d{4,})-(\d\d)$/,ro=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,oo="keydown wheel mousedown",ao=Pe();b("date,datetime-local,month,time,week".split(","),(function(e){ao[e]=!0}));var so={text:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i)},date:ho("date",eo,co(eo,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ho("datetimelocal",to,co(to,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ho("time",ro,co(ro,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ho("week",no,(function(e,t){if(R(e))return e;if(B(e)){no.lastIndex=0;var n=no.exec(e);if(n){var i=+n[1],r=+n[2],o=0,a=0,s=0,l=0,u=$r(i),c=7*(r-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(i,0,u.getDate()+c,o,a,s,l)}}return NaN}),"yyyy-Www"),month:ho("month",io,co(io,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,i,r,o){var a,s;fo(0,t,0,i),uo(0,t,n,i,r,o),po(i),(I(n.min)||n.ngMin)&&(i.$validators.min=function(e){return i.$isEmpty(e)||O(a)||e>=a},n.$observe("min",(function(e){a=mo(e),i.$validate()}))),(I(n.max)||n.ngMax)&&(i.$validators.max=function(e){return i.$isEmpty(e)||O(s)||e<=s},n.$observe("max",(function(e){s=mo(e),i.$validate()})))},url:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||Xr.test(n)}},email:function(e,t,n,i,r,o){uo(0,t,n,i,r,o),lo(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||Kr.test(n)}},radio:function(e,t,n,i){O(n.name)&&t.attr("name",M()),t.on("click",(function(e){t[0].checked&&i.$setViewValue(n.value,e&&e.type)})),i.$render=function(){var e=n.value;t[0].checked=e==i.$viewValue},n.$observe("value",i.$render)},range:function(e,t,n,i,r,o){fo(0,t,0,i),po(i),uo(0,t,n,i,r,o);var a=i.$$hasNativeValidators&&"range"===t[0].type,s=a?0:void 0,l=a?100:void 0,u=a?1:void 0,c=t[0].validity,d=I(n.min),h=I(n.max),f=I(n.step),p=i.$render;function m(e,i){t.attr(e,n[e]),n.$observe(e,i)}i.$render=a&&I(c.rangeUnderflow)&&I(c.rangeOverflow)?function(){p(),i.$setViewValue(t.val())}:p,d&&(i.$validators.min=a?function(){return!0}:function(e,t){return i.$isEmpty(t)||O(s)||t>=s},m("min",(function(e){if(s=mo(e),!D(i.$modelValue))if(a){var n=t.val();s>n&&(n=s,t.val(n)),i.$setViewValue(n)}else i.$validate()}))),h&&(i.$validators.max=a?function(){return!0}:function(e,t){return i.$isEmpty(t)||O(l)||t<=l},m("max",(function(e){if(l=mo(e),!D(i.$modelValue))if(a){var n=t.val();l<n&&(t.val(l),n=l<s?s:l),i.$setViewValue(n)}else i.$validate()}))),f&&(i.$validators.step=a?function(){return!c.stepMismatch}:function(e,t){return i.$isEmpty(t)||O(u)||function(e,t,n){var i=Number(e);if(!go(i)||!go(t)||!go(n)){var r=Math.max(vo(i),vo(t),vo(n)),o=Math.pow(10,r);i*=o,t*=o,n*=o}return(i-t)%n==0}(t,s||0,u)},m("step",(function(e){u=mo(e),D(i.$modelValue)||(a&&i.$viewValue!==t.val()?i.$setViewValue(t.val()):i.$validate())})))},checkbox:function(e,t,n,i,r,o,a,s){var l=_o(s,e,"ngTrueValue",n.ngTrueValue,!0),u=_o(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("click",(function(e){i.$setViewValue(t[0].checked,e&&e.type)})),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return!1===e},i.$formatters.push((function(e){return ne(e,l)})),i.$parsers.push((function(e){return e?l:u}))},hidden:E,button:E,submit:E,reset:E,file:E};function lo(e){e.$formatters.push((function(t){return e.$isEmpty(t)?t:t.toString()}))}function uo(e,t,n,r,a,s){var l,u=o(t[0].type);if(!a.android){var c=!1;t.on("compositionstart",(function(){c=!0})),t.on("compositionend",(function(){c=!1,d()}))}var d=function(e){if(l&&(s.defer.cancel(l),l=null),!c){var i=t.val(),o=e&&e.type;"password"===u||n.ngTrim&&"false"===n.ngTrim||(i=J(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,o)}};if(a.hasEvent("input"))t.on("input",d);else{var h=function(e,t,n){l||(l=s.defer((function(){l=null,t&&t.value===n||d(e)})))};t.on("keydown",(function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||h(e,this,this.value)})),a.hasEvent("paste")&&t.on("paste cut",h)}t.on("change",d),ao[u]&&r.$$hasNativeValidators&&u===n.type&&t.on(oo,(function(e){if(!l){var t=this[i],n=t.badInput,r=t.typeMismatch;l=s.defer((function(){l=null,t.badInput===n&&t.typeMismatch===r||d(e)}))}})),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function co(e,t){return function(n,i){var r,o;if(R(n))return n;if(B(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Jr.test(n))return new Date(n);if(e.lastIndex=0,r=e.exec(n))return r.shift(),o=i?{yyyy:i.getFullYear(),MM:i.getMonth()+1,dd:i.getDate(),HH:i.getHours(),mm:i.getMinutes(),ss:i.getSeconds(),sss:i.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},b(r,(function(e,n){n<t.length&&(o[t[n]]=+e)})),new Date(o.yyyy,o.MM-1,o.dd,o.HH,o.mm,o.ss||0,1e3*o.sss||0)}return NaN}}function ho(e,t,n,i){return function(r,o,a,s,l,u,c){fo(0,o,0,s),uo(0,o,a,s,l,u);var d,h,f,p=s&&s.$options&&s.$options.timezone;function m(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function g(e){return I(e)&&!R(e)?n(e)||void 0:e}s.$$parserName=e,s.$parsers.push((function(e){if(s.$isEmpty(e))return null;if(t.test(e)){var i=n(e,d);return p&&(i=fe(i,p)),i}})),s.$formatters.push((function(e){if(e&&!R(e))throw Vo("datefmt","Expected `{0}` to be a date",e);return m(e)?((d=e)&&p&&(d=fe(d,p,!0)),c("date")(e,i,p)):(d=null,"")})),(I(a.min)||a.ngMin)&&(s.$validators.min=function(e){return!m(e)||O(h)||n(e)>=h},a.$observe("min",(function(e){h=g(e),s.$validate()}))),(I(a.max)||a.ngMax)&&(s.$validators.max=function(e){return!m(e)||O(f)||n(e)<=f},a.$observe("max",(function(e){f=g(e),s.$validate()})))}}function fo(e,t,n,r){var o=t[0];(r.$$hasNativeValidators=j(o.validity))&&r.$parsers.push((function(e){var n=t.prop(i)||{};return n.badInput||n.typeMismatch?void 0:e}))}function po(e){e.$$parserName="number",e.$parsers.push((function(t){return e.$isEmpty(t)?null:Qr.test(t)?parseFloat(t):void 0})),e.$formatters.push((function(t){if(!e.$isEmpty(t)){if(!N(t))throw Vo("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t}))}function mo(e){return I(e)&&!N(e)&&(e=parseFloat(e)),D(e)?void 0:e}function go(e){return(0|e)===e}function vo(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var i=/e-(\d+)$/.exec(t);if(i)return Number(i[1])}return 0}return t.length-n-1}function _o(e,t,n,i,r){var o;if(I(i)){if(!(o=e(i)).constant)throw Vo("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return o(t)}return r}var yo=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,a,s,l){if(l[0]){var u=o(s.type);"range"!==u||s.hasOwnProperty("ngInputRange")||(u="text"),(so[u]||so.text)(r,a,s,l[0],t,e,n,i)}}}}}],bo=/^(true|false|\d+)$/,wo=function(){return{restrict:"A",priority:100,compile:function(e,t){return bo.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,(function(e){n.$set("value",e)}))}}}},Lo=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,i){e.$$addBindingInfo(n,i.ngBind),n=n[0],t.$watch(i.ngBind,(function(e){n.textContent=O(e)?"":e}))}}}}],Mo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,r){var o=e(i.attr(r.$attr.ngBindTemplate));t.$$addBindingInfo(i,o.expressions),i=i[0],r.$observe("ngBindTemplate",(function(e){i.textContent=O(e)?"":e}))}}}}],ko=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,r){var o=t(r.ngBindHtml),a=t(r.ngBindHtml,(function(t){return e.valueOf(t)}));return n.$$addBindingClass(i),function(t,i,r){n.$$addBindingInfo(i,r.ngBindHtml),t.$watch(a,(function(){var n=o(t);i.html(e.getTrustedHtml(n)||"")}))}}}}],xo=P({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push((function(){e.$eval(n.ngChange)}))}});function So(e,t){return e="ngClass"+e,["$animate",function(n){return{restrict:"AC",link:function(o,a,s){var l;function u(e){var t=c(e,1);s.$addClass(t)}function c(e,t){var n=a.data("$classCounts")||Pe(),i=[];return b(e,(function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&i.push(e))})),a.data("$classCounts",n),i.join(" ")}function d(e){if(!0===t||(1&o.$index)===t){var s=r(e||[]);l?ne(e,l)||function(e,t){var r=i(t,e),o=i(e,t);r=c(r,1),o=c(o,-1),r&&r.length&&n.addClass(a,r),o&&o.length&&n.removeClass(a,o)}(r(l),s):u(s)}l=F(e)?e.map((function(e){return Be(e)})):Be(e)}s.$observe("class",(function(t){d(o.$eval(s[e]))})),"ngClass"!==e&&o.$watch("$index",(function(e,n){var i=1&e;if(i!==(1&n)){var o=r(l);i===t?u(o):function(e){var t=c(e,-1);s.$removeClass(t)}(o)}})),o.$watch(s[e],d,!0)}};function i(e,t){var n=[];e:for(var i=0;i<e.length;i++){for(var r=e[i],o=0;o<t.length;o++)if(r===t[o])continue e;n.push(r)}return n}function r(e){var t=[];return F(e)?(b(e,(function(e){t=t.concat(r(e))})),t):B(e)?e.split(" "):j(e)?(b(e,(function(e,n){e&&(t=t.concat(n.split(" ")))})),t):e}}]}var To=So("",!0),$o=So("Odd",0),Do=So("Even",1),Co=Rr({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Eo=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ao={},Po={blur:!0,focus:!0};b("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),(function(e){var t=un("ng-"+e);Ao[t]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,(function(n){var r=function(){a(t,{$event:n})};Po[e]&&i.$$phase?t.$evalAsync(r):t.$apply(r)}))}}}}]}));var Yo=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,o,a){var s,l,u;n.$watch(r.ngIf,(function(n){n?l||a((function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",r.ngIf),s={clone:n},e.enter(n,i.parent(),i)})):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),s&&(u=Ae(s.clone),e.leave(u).done((function(e){!1!==e&&(u=null)})),s=null))}))}}}],Oo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:v.noop,compile:function(i,r){var o=r.ngInclude||r.src,a=r.onload||"",s=r.autoscroll;return function(i,r,l,u,c){var d,h,f,p=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done((function(e){!1!==e&&(h=null)})),h=f,f=null)};i.$watch(o,(function(o){var l=function(e){!1===e||!I(s)||s&&!i.$eval(s)||t()},h=++p;o?(e(o,!0).then((function(e){if(!i.$$destroyed&&h===p){var t=i.$new();u.template=e;var s=c(t,(function(e){m(),n.enter(e,null,r).done(l)}));f=s,(d=t).$emit("$includeContentLoaded",o),i.$eval(a)}}),(function(){i.$$destroyed||h===p&&(m(),i.$emit("$includeContentError",o))})),i.$emit("$includeContentRequested",o)):(m(),u.template=null)}))}}}}],Io=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,o){if(p.call(i[0]).match(/SVG/))return i.empty(),void t(rt(o.template,e.document).childNodes)(n,(function(e){i.append(e)}),{futureParentElement:i});i.html(o.template),t(i.contents())(n)}}}],jo=Rr({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Ho=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,i){var r=t.attr(n.$attr.ngList)||", ",o="false"!==n.ngTrim,a=o?J(r):r;i.$parsers.push((function(e){if(!O(e)){var t=[];return e&&b(e.split(a),(function(e){e&&t.push(o?J(e):e)})),t}})),i.$formatters.push((function(e){if(F(e))return e.join(r)})),i.$isEmpty=function(e){return!e||!e.length}}}},Bo="ng-valid",No="ng-invalid",Ro="ng-pristine",Fo="ng-dirty",zo="ng-pending",Vo=t("ngModel"),Uo=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,i,r,o,a,s,l,u){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=u(n.name||"",!1)(e),this.$$parentForm=Vr;var c,d=r(n.ngModel),h=d.assign,f=d,p=h,m=null,g=this;this.$$setOptions=function(e){if(g.$options=e,e&&e.getterSetter){var t=r(n.ngModel+"()"),o=r(n.ngModel+"($$$p)");f=function(e){var n=d(e);return z(n)&&(n=t(e)),n},p=function(e,t){z(d(e))?o(e,{$$$p:t}):h(e,t)}}else if(!d.assign)throw Vo("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,pe(i))},this.$render=E,this.$isEmpty=function(e){return O(e)||""===e||null===e||e!=e},this.$$updateEmptyClasses=function(e){g.$isEmpty(e)?(o.removeClass(i,"ng-not-empty"),o.addClass(i,"ng-empty")):(o.removeClass(i,"ng-empty"),o.addClass(i,"ng-not-empty"))};var v=0;Zo({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:o}),this.$setPristine=function(){g.$dirty=!1,g.$pristine=!0,o.removeClass(i,Fo),o.addClass(i,Ro)},this.$setDirty=function(){g.$dirty=!0,g.$pristine=!1,o.removeClass(i,Ro),o.addClass(i,Fo),g.$$parentForm.$setDirty()},this.$setUntouched=function(){g.$touched=!1,g.$untouched=!0,o.setClass(i,"ng-untouched","ng-touched")},this.$setTouched=function(){g.$touched=!0,g.$untouched=!1,o.setClass(i,"ng-touched","ng-untouched")},this.$rollbackViewValue=function(){a.cancel(m),g.$viewValue=g.$$lastCommittedViewValue,g.$render()},this.$validate=function(){if(!D(g.$modelValue)){var e=g.$$lastCommittedViewValue,t=g.$$rawModelValue,n=g.$valid,i=g.$modelValue,r=g.$options&&g.$options.allowInvalid;g.$$runValidators(t,e,(function(e){r||n===e||(g.$modelValue=e?t:void 0,g.$modelValue!==i&&g.$$writeModelToScope())}))}},this.$$runValidators=function(e,t,n){var i,r,o,a,s=++v;function u(e,t){s===v&&g.$setValidity(e,t)}function d(e){s===v&&n(e)}a=g.$$parserName||"parse",(O(c)?(u(a,null),1):(c||(b(g.$validators,(function(e,t){u(t,null)})),b(g.$asyncValidators,(function(e,t){u(t,null)}))),u(a,c),c))?(o=!0,b(g.$validators,(function(n,i){var r=n(e,t);o=o&&r,u(i,r)})),!o&&(b(g.$asyncValidators,(function(e,t){u(t,null)})),1)?d(!1):(i=[],r=!0,b(g.$asyncValidators,(function(n,o){var a=n(e,t);if(!G(a))throw Vo("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",a);u(o,void 0),i.push(a.then((function(){u(o,!0)}),(function(){r=!1,u(o,!1)})))})),i.length?l.all(i).then((function(){d(r)}),E):d(!0))):d(!1)},this.$commitViewValue=function(){var e=g.$viewValue;a.cancel(m),(g.$$lastCommittedViewValue!==e||""===e&&g.$$hasNativeValidators)&&(g.$$updateEmptyClasses(e),g.$$lastCommittedViewValue=e,g.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){var t=g.$$lastCommittedViewValue;if(c=!O(t)||void 0)for(var n=0;n<g.$parsers.length;n++)if(O(t=g.$parsers[n](t))){c=!1;break}D(g.$modelValue)&&(g.$modelValue=f(e));var i=g.$modelValue,r=g.$options&&g.$options.allowInvalid;function o(){g.$modelValue!==i&&g.$$writeModelToScope()}g.$$rawModelValue=t,r&&(g.$modelValue=t,o()),g.$$runValidators(t,g.$$lastCommittedViewValue,(function(e){r||(g.$modelValue=e?t:void 0,o())}))},this.$$writeModelToScope=function(){p(e,g.$modelValue),b(g.$viewChangeListeners,(function(e){try{e()}catch(e){t(e)}}))},this.$setViewValue=function(e,t){g.$viewValue=e,g.$options&&!g.$options.updateOnDefault||g.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,i=0,r=g.$options;r&&I(r.debounce)&&(N(n=r.debounce)?i=n:N(n[t])?i=n[t]:N(n.default)&&(i=n.default)),a.cancel(m),i?m=a((function(){g.$commitViewValue()}),i):s.$$phase?g.$commitViewValue():e.$apply((function(){g.$commitViewValue()}))},e.$watch((function(){var t=f(e);if(t!==g.$modelValue&&(g.$modelValue==g.$modelValue||t==t)){g.$modelValue=g.$$rawModelValue=t,c=void 0;for(var n=g.$formatters,i=n.length,r=t;i--;)r=n[i](r);g.$viewValue!==r&&(g.$$updateEmptyClasses(r),g.$viewValue=g.$$lastCommittedViewValue=r,g.$render(),g.$$runValidators(g.$modelValue,g.$viewValue,E))}return t}))}],Wo=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Uo,priority:1,compile:function(t){return t.addClass(Ro).addClass("ng-untouched").addClass(Bo),{pre:function(e,t,n,i){var r=i[0],o=i[1]||r.$$parentForm;r.$$setOptions(i[2]&&i[2].$options),o.$addControl(r),n.$observe("name",(function(e){r.$name!==e&&r.$$parentForm.$$renameControl(r,e)})),e.$on("$destroy",(function(){r.$$parentForm.$removeControl(r)}))},post:function(t,n,i,r){var o=r[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,(function(e){o.$$debounceViewValueCommit(e&&e.type)})),n.on("blur",(function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))}))}}}}}],qo=/(\s+|^)default(\s+|$)/,Go=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=te(e.$eval(t.ngModelOptions)),I(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=J(this.$options.updateOn.replace(qo,(function(){return n.$options.updateOnDefault=!0," "})))):this.$options.updateOnDefault=!0}]}};function Zo(e){var t=e.ctrl,n=e.$element,i={},r=e.set,o=e.unset,a=e.$animate;function s(e,t){t&&!i[e]?(a.addClass(n,e),i[e]=!0):!t&&i[e]&&(a.removeClass(n,e),i[e]=!1)}function l(e,t){e=e?"-"+Se(e,"-"):"",s(Bo+e,!0===t),s(No+e,!1===t)}i[No]=!(i[Bo]=n.hasClass(Bo)),t.$setValidity=function(e,n,i){var a;O(n)?function(e,n,i){t[e]||(t[e]={}),r(t[e],n,i)}("$pending",e,i):function(e,n,i){t[e]&&o(t[e],n,i),Jo(t[e])&&(t[e]=void 0)}("$pending",e,i),q(n)?n?(o(t.$error,e,i),r(t.$$success,e,i)):(r(t.$error,e,i),o(t.$$success,e,i)):(o(t.$error,e,i),o(t.$$success,e,i)),t.$pending?(s(zo,!0),t.$valid=t.$invalid=void 0,l("",null)):(s(zo,!1),t.$valid=Jo(t.$error),t.$invalid=!t.$valid,l("",t.$valid)),l(e,a=t.$pending&&t.$pending[e]?void 0:!t.$error[e]&&(!!t.$$success[e]||null)),t.$$parentForm.$setValidity(e,a,t)}}function Jo(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var Xo=Rr({terminal:!0,priority:1e3}),Ko=t("ngOptions"),Qo=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,ea=["$compile","$document","$parse",function(t,n,i){var r=e.document.createElement("option"),o=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,i){i[0].registerOption=E},post:function(e,a,s,u){for(var c,d=u[0],h=u[1],f=s.multiple,p=0,m=a.children(),g=m.length;p<g;p++)if(""===m[p].value){c=m.eq(p);break}var v,_=!!c,w=!1,L=l(r.cloneNode(!1));L.val("?");var M=function(e,t,n){var r=e.match(Qo);if(!r)throw Ko("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,pe(t));var o=r[5]||r[7],a=r[6],s=/ as /.test(r[0])&&r[1],l=r[9],u=i(r[2]?r[1]:o),c=s&&i(s)||u,d=l&&i(l),h=l?function(e,t){return d(n,t)}:function(e){return Ct(e)},f=function(e,t){return h(e,b(e,t))},p=i(r[2]||r[1]),m=i(r[3]||""),g=i(r[4]||""),v=i(r[8]),_={},b=a?function(e,t){return _[a]=t,_[o]=e,_}:function(e){return _[o]=e,_};function w(e,t,n,i,r){this.selectValue=e,this.viewValue=t,this.label=n,this.group=i,this.disabled=r}function L(e){var t;if(!a&&y(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n);return t}return{trackBy:l,getTrackByValue:f,getWatchables:i(v,(function(e){for(var t=[],i=L(e=e||[]),o=i.length,a=0;a<o;a++){var s=e===i?a:i[a],l=e[s],u=b(l,s),c=h(l,u);if(t.push(c),r[2]||r[1]){var d=p(n,u);t.push(d)}if(r[4]){var f=g(n,u);t.push(f)}}return t})),getOptions:function(){for(var e=[],t={},i=v(n)||[],r=L(i),o=r.length,a=0;a<o;a++){var s=i===r?a:r[a],u=i[s],d=b(u,s),_=c(n,d),y=h(_,d),M=new w(y,_,p(n,d),m(n,d),g(n,d));e.push(M),t[y]=M}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[f(e)]},getViewValueFromOption:function(e){return l?te(e.viewValue):e.viewValue}}}}}(s.ngOptions,a,e),k=n[0].createDocumentFragment(),x=function(){_?w&&c.removeAttr("selected"):c.remove()},S=function(){L.remove()};function T(e,t){var n=r.cloneNode(!1);t.appendChild(n),function(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}(e,n)}function $(){var e=v&&d.readValue();if(v)for(var t=v.items.length-1;t>=0;t--){var n=v.items[t];I(n.group)?wt(n.element.parentNode):wt(n.element)}v=M.getOptions();var i={};if(_&&a.prepend(c),v.items.forEach((function(e){var t;I(e.group)?((t=i[e.group])||(t=o.cloneNode(!1),k.appendChild(t),t.label=null===e.group?"null":e.group,i[e.group]=t),T(e,t)):T(e,k)})),a[0].appendChild(k),h.$render(),!h.$isEmpty(e)){var r=d.readValue();(M.trackBy||f?ne(e,r):e===r)||(h.$setViewValue(r),h.$render())}}f?(h.$isEmpty=function(e){return!e||0===e.length},d.writeValue=function(e){v.items.forEach((function(e){e.element.selected=!1})),e&&e.forEach((function(e){var t=v.getOptionFromViewValue(e);t&&(t.element.selected=!0)}))},d.readValue=function(){var e=a.val()||[],t=[];return b(e,(function(e){var n=v.selectValueMap[e];n&&!n.disabled&&t.push(v.getViewValueFromOption(n))})),t},M.trackBy&&e.$watchCollection((function(){if(F(h.$viewValue))return h.$viewValue.map((function(e){return M.getTrackByValue(e)}))}),(function(){h.$render()}))):(d.writeValue=function(e){var t=v.selectValueMap[a.val()],n=v.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),n?(a[0].value!==n.selectValue&&(S(),x(),a[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):null===e||_?(S(),_||a.prepend(c),a.val(""),w&&(c.prop("selected",!0),c.attr("selected",!0))):(x(),a.prepend(L),a.val("?"),L.prop("selected",!0),L.attr("selected",!0))},d.readValue=function(){var e=v.selectValueMap[a.val()];return e&&!e.disabled?(x(),S(),v.getViewValueFromOption(e)):null},M.trackBy&&e.$watch((function(){return M.getTrackByValue(h.$viewValue)}),(function(){h.$render()}))),_?(c.remove(),t(c)(e),c[0].nodeType===Ie?(w=!1,d.registerOption=function(e,t){""===t.val()&&(w=!0,(c=t).removeClass("ng-scope"),h.$render(),t.on("$destroy",(function(){c=void 0,w=!1})))}):(c.removeClass("ng-scope"),w=!0)):c=l(r.cloneNode(!1)),a.empty(),$(),e.$watchCollection(M.getWatchables,$)}}}}],ta=["$locale","$interpolate","$log",function(e,t,n){var i=/{}/g,r=/^when(Minus)?(.+)$/;return{link:function(a,s,l){var u,c=l.count,d=l.$attr.when&&s.attr(l.$attr.when),h=l.offset||0,f=a.$eval(d)||{},p={},m=t.startSymbol(),g=t.endSymbol(),_=m+c+"-"+h+g,y=v.noop;function w(e){s.text(e||"")}b(l,(function(e,t){var n=r.exec(t);if(n){var i=(n[1]?"-":"")+o(n[2]);f[i]=s.attr(l.$attr[t])}})),b(f,(function(e,n){p[n]=t(e.replace(i,_))})),a.$watch(c,(function(t){var i=parseFloat(t),r=D(i);if(r||i in f||(i=e.pluralCat(i-h)),!(i===u||r&&D(u))){y();var o=p[i];O(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+d),y=E,w()):y=a.$watch(o,w),u=i}}))}}}],na=["$parse","$animate","$compile",function(e,n,i){var o=t("ngRepeat"),a=function(e,t,n,i,r,o,a){e[n]=i,r&&(e[r]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},s=function(e){return e.clone[0]},l=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,u){var c=u.ngRepeat,d=i.$$createComment("end ngRepeat",c),h=c.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!h)throw o("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",c);var f=h[1],p=h[2],m=h[3],g=h[4];if(!(h=f.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw o("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",f);var v,_,w,L,M=h[3]||h[1],k=h[2];if(m&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(m)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(m)))throw o("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",m);var x={$id:Ct};return g?v=e(g):(w=function(e,t){return Ct(t)},L=function(e){return e}),function(e,t,i,u,h){v&&(_=function(t,n,i){return k&&(x[k]=t),x[M]=n,x.$index=i,v(e,x)});var f=Pe();e.$watchCollection(p,(function(i){var u,p,g,v,x,S,T,$,D,C,E,A,P=t[0],Y=Pe();if(m&&(e[m]=i),y(i))D=i,$=_||w;else for(var O in $=_||L,D=[],i)r.call(i,O)&&"$"!==O.charAt(0)&&D.push(O);for(v=D.length,E=new Array(v),u=0;u<v;u++)if(x=i===D?u:D[u],S=i[x],T=$(x,S,u),f[T])C=f[T],delete f[T],Y[T]=C,E[u]=C;else{if(Y[T])throw b(E,(function(e){e&&e.scope&&(f[e.id]=e)})),o("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",c,T,S);E[u]={id:T,scope:void 0,clone:void 0},Y[T]=!0}for(var I in f){if(A=Ae((C=f[I]).clone),n.leave(A),A[0].parentNode)for(u=0,p=A.length;u<p;u++)A[u].$$NG_REMOVED=!0;C.scope.$destroy()}for(u=0;u<v;u++)if(x=i===D?u:D[u],S=i[x],(C=E[u]).scope){g=P;do{g=g.nextSibling}while(g&&g.$$NG_REMOVED);s(C)!==g&&n.move(Ae(C.clone),null,P),P=l(C),a(C.scope,u,M,S,k,x,v)}else h((function(e,t){C.scope=t;var i=d.cloneNode(!1);e[e.length++]=i,n.enter(e,null,P),P=i,C.clone=e,Y[C.id]=C,a(C.scope,u,M,S,k,x,v)}));f=Y}))}}}}],ia=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,(function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],ra=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,(function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})}))}}}],oa=Rr((function(e,t,n){e.$watch(n.ngStyle,(function(e,n){n&&e!==n&&b(n,(function(e,n){t.css(n,"")})),e&&t.css(e)}),!0)})),aa=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,r,o){var a=r.ngSwitch||r.on,s=[],l=[],u=[],c=[],d=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(a,(function(n){for(var i,r;u.length;)e.cancel(u.pop());for(i=0,r=c.length;i<r;++i){var a=Ae(l[i].clone);c[i].$destroy(),(u[i]=e.leave(a)).done(d(u,i))}l.length=0,c.length=0,(s=o.cases["!"+n]||o.cases["?"])&&b(s,(function(n){n.transclude((function(i,r){c.push(r);var o=n.element;i[i.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:i};l.push(a),e.enter(i,o.parent(),o)}))}))}))}}}],sa=Rr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){b(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter((function(e,t,n){return n[t-1]!==e})),(function(e){i.cases["!"+e]=i.cases["!"+e]||[],i.cases["!"+e].push({transclude:r,element:t})}))}}),la=Rr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:t})}}),ua=t("ngTransclude"),ca=["$compile",function(e){return{restrict:"EAC",terminal:!0,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,i,r,o){if(!o)throw ua("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",pe(t));i.ngTransclude===i.$attr.ngTransclude&&(i.ngTransclude="");var a=i.ngTransclude||i.ngTranscludeSlot;function s(){n(e,(function(e){t.append(e)}))}o((function(e,n){e.length?t.append(e):(s(),n.$destroy())}),null,a),a&&!o.isSlotFilled(a)&&s()}}}}],da=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var i=n.id,r=t[0].text;e.put(i,r)}}}}],ha={$setViewValue:E,$render:E},fa=["$element","$scope",function(t,n){var i=this,r=new Et;i.ngModelCtrl=ha,i.unknownOption=l(e.document.createElement("option")),i.renderUnknownOption=function(e){var n="? "+Ct(e)+" ?";i.unknownOption.val(n),t.prepend(i.unknownOption),t.val(n)},n.$on("$destroy",(function(){i.renderUnknownOption=E})),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),t.val()},i.writeValue=function(e){i.hasOption(e)?(i.removeUnknownOption(),t.val(e),""===e&&i.emptyOption.prop("selected",!0)):null==e&&i.emptyOption?(i.removeUnknownOption(),t.val("")):i.renderUnknownOption(e)},i.addOption=function(e,t){if(t[0].nodeType!==Ie){Ce(e,'"option value"'),""===e&&(i.emptyOption=t);var n,o=r.get(e)||0;r.put(e,o+1),i.ngModelCtrl.$render(),(n=t)[0].hasAttribute("selected")&&(n[0].selected=!0)}},i.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.remove(e),""===e&&(i.emptyOption=void 0)):r.put(e,t-1))},i.hasOption=function(e){return!!r.get(e)},i.registerOption=function(e,t,n,r,o){var a;r?n.$observe("value",(function(e){I(a)&&i.removeOption(a),a=e,i.addOption(e,t)})):o?e.$watch(o,(function(e,r){n.$set("value",e),r!==e&&i.removeOption(r),i.addOption(e,t)})):i.addOption(n.value,t),t.on("$destroy",(function(){i.removeOption(n.value),i.ngModelCtrl.$render()}))}}],pa=function(){return{restrict:"E",require:["select","?ngModel"],controller:fa,priority:1,link:{pre:function(e,t,n,i){var r=i[1];if(r){var o=i[0];if(o.ngModelCtrl=r,t.on("change",(function(){e.$apply((function(){r.$setViewValue(o.readValue())}))})),n.multiple){o.readValue=function(){var e=[];return b(t.find("option"),(function(t){t.selected&&e.push(t.value)})),e},o.writeValue=function(e){var n=new Et(e);b(t.find("option"),(function(e){e.selected=I(n.get(e.value))}))};var a,s=NaN;e.$watch((function(){s!==r.$viewValue||ne(a,r.$viewValue)||(a=Be(r.$viewValue),r.$render()),s=r.$viewValue})),r.$isEmpty=function(e){return!e||0===e.length}}}},post:function(e,t,n,i){var r=i[1];if(r){var o=i[0];r.$render=function(){o.writeValue(r.$viewValue)}}}}}},ma=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var i,r;return I(n.ngValue)?i=!0:I(n.value)?i=e(n.value,!0):(r=e(t.text(),!0))||n.$set("value",t.text()),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,i,r)}}}}],ga=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",(function(){i.$validate()})))}}},va=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){if(r){var o,a=i.ngPattern||i.pattern;i.$observe("pattern",(function(e){if(B(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,e,pe(n));o=e||void 0,r.$validate()})),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||O(o)||o.test(t)}}}}},_a=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=-1;n.$observe("maxlength",(function(e){var t=$(e);r=D(t)?-1:t,i.$validate()})),i.$validators.maxlength=function(e,t){return r<0||i.$isEmpty(t)||t.length<=r}}}}},ya=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=0;n.$observe("minlength",(function(e){r=$(e)||0,i.$validate()})),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=r}}}}};e.angular.bootstrap?e.console&&alert("WARNING: Tried to load angular more than once."):(function(){var t;if(!Te){var n=re();(u=O(n)?e.jQuery:n?e[n]:void 0)&&u.fn.on?(l=u,S(u.fn,{scope:Lt.scope,isolateScope:Lt.isolateScope,controller:Lt.controller,injector:Lt.injector,inheritedData:Lt.inheritedData}),t=u.cleanData,u.cleanData=function(e){for(var n,i,r=0;null!=(i=e[r]);r++)(n=u._data(i,"events"))&&n.$destroy&&u(i).triggerHandler("$destroy");t(e)}):l=st,v.element=l,Te=!0}}(),function(n){S(n,{bootstrap:Le,copy:te,extend:S,merge:T,equals:ne,element:l,forEach:b,injector:Rt,noop:E,bind:se,toJson:ue,fromJson:ce,identity:A,isUndefined:O,isDefined:I,isString:B,isFunction:z,isObject:j,isNumber:N,isElement:K,isArray:F,version:Re,isDate:R,lowercase:o,uppercase:a,callbacks:{$$counter:0},getTestability:ke,$$minErr:t,$$csp:ie,reloadWithDebugInfo:Me}),(c=function(e){var n=t("$injector"),i=t("ng");function r(e,t,n){return e[t]||(e[t]=n())}var o=r(e,"angular",Object);return o.$$minErr=o.$$minErr||t,r(o,"module",(function(){var e={};return function(t,o,a){return function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name","module")}(t),o&&e.hasOwnProperty(t)&&(e[t]=null),r(e,t,(function(){if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var e=[],i=[],r=[],s=u("$injector","invoke","push",i),l={_invokeQueue:e,_configBlocks:i,_runBlocks:r,requires:o,name:t,provider:c("$provide","provider"),factory:c("$provide","factory"),service:c("$provide","service"),value:u("$provide","value"),constant:u("$provide","constant","unshift"),decorator:c("$provide","decorator"),animation:c("$animateProvider","register"),filter:c("$filterProvider","register"),controller:c("$controllerProvider","register"),directive:c("$compileProvider","directive"),component:c("$compileProvider","component"),config:s,run:function(e){return r.push(e),this}};return a&&s(a),l;function u(t,n,i,r){return r||(r=e),function(){return r[i||"push"]([t,n,arguments]),l}}function c(n,i){return function(r,o){return o&&z(o)&&(o.$$moduleName=t),e.push([n,i,arguments]),l}}}))}}))}(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Xi}),e.provider("$compile",an).directive({a:Fr,input:yo,textarea:yo,form:Gr,script:da,select:pa,option:ma,ngBind:Lo,ngBindHtml:ko,ngBindTemplate:Mo,ngClass:To,ngClassEven:Do,ngClassOdd:$o,ngCloak:Co,ngController:Eo,ngForm:Zr,ngHide:ra,ngIf:Yo,ngInclude:Oo,ngInit:jo,ngNonBindable:Xo,ngPluralize:ta,ngRepeat:na,ngShow:ia,ngStyle:oa,ngSwitch:aa,ngSwitchWhen:sa,ngSwitchDefault:la,ngOptions:ea,ngTransclude:ca,ngModel:Wo,ngList:Ho,ngChange:xo,pattern:va,ngPattern:va,required:ga,ngRequired:ga,minlength:ya,ngMinlength:ya,maxlength:_a,ngMaxlength:_a,ngValue:wo,ngModelOptions:Go}).directive({ngInclude:Io}).directive(zr).directive(Ao),e.provider({$anchorScroll:Ft,$animate:Zt,$animateCss:Kt,$$animateJs:qt,$$animateQueue:Gt,$$AnimateRunner:Xt,$$animateAsyncRun:Jt,$browser:en,$cacheFactory:tn,$controller:mn,$document:gn,$exceptionHandler:vn,$filter:mr,$$forceReflow:_n,$interpolate:Hn,$interval:Bn,$http:Yn,$httpParamSerializer:Tn,$httpParamSerializerJQLike:$n,$httpBackend:In,$xhrFactory:On,$jsonpCallbacks:Nn,$location:ri,$log:oi,$parse:Ui,$rootScope:Ji,$q:Wi,$$q:qi,$sce:nr,$sceDelegate:tr,$sniffer:ir,$templateCache:nn,$templateRequest:or,$$testability:ar,$timeout:sr,$window:hr,$$rAF:Zi,$$jqLite:Dt,$$HashMap:At,$$cookieReader:pr})}])}(v),v.module("ngLocale",[],["$provide",function(e){e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var n=0|e,i=function(e,t){var n=t;void 0===n&&(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var i=Math.pow(10,n);return{v:n,f:(e*i|0)%i}}(e,t);return 1==n&&0==i.v?"one":"other"}})}]),l(e.document).ready((function(){!function(t,n){var i,r,o={};if(b(be,(function(e){var n=e+"app";!i&&t.hasAttribute&&t.hasAttribute(n)&&(i=t,r=t.getAttribute(n))})),b(be,(function(e){var n,o=e+"app";!i&&(n=t.querySelector("["+o.replace(":","\\:")+"]"))&&(i=n,r=n.getAttribute(o))})),i){if(!we)return void e.console.error("Angular: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");o.strictDi=null!==function(e,t){var n,i,r=be.length;for(i=0;i<r;++i)if(n=be[i]+"strict-di",B(n=e.getAttribute(n)))return n;return null}(i),n(i,r?[r]:[],o)}}(e.document,Le)})))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),
+/**
+ * @license AngularJS v1.5.11
+ * (c) 2010-2017 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+function(e,t){"use strict";var n,i,r,o,a=1,s="-add",l="-remove",u="ng-animate",c="$$ngAnimateChildren";void 0===e.ontransitionend&&void 0!==e.onwebkittransitionend?(n="WebkitTransition",i="webkitTransitionEnd transitionend"):(n="transition",i="transitionend"),void 0===e.onanimationend&&void 0!==e.onwebkitanimationend?(r="WebkitAnimation",o="webkitAnimationEnd animationend"):(r="animation",o="animationend");var d="Duration",h="TimingFunction",f="PlayState",p=r+"Delay",m=r+d,g=n+"Delay",v=n+d,_=t.$$minErr("ng");function y(e,t,n){if(!e)throw _("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function b(e,t){return e||t?e?t?(J(e)&&(e=e.join(" ")),J(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function w(e,t,n){var i="";return e=J(e)?e:e&&te(e)&&e.length?e.split(/\s+/):[],Z(e,(function(e,r){e&&e.length>0&&(i+=r>0?" ":"",i+=n?t+e:e+t)})),i}function L(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===a)return n}}function M(e){return function(t,n){n.addClass&&(function(e,t,n){Z(t,(function(t){e.addClass(t,n)}))}(e,t,n.addClass),n.addClass=null),n.removeClass&&(function(e,t,n){Z(t,(function(t){e.removeClass(t,n)}))}(e,t,n.removeClass),n.removeClass=null)}}function k(e){if(!(e=e||{}).$$prepared){var t=e.domOperation||re;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=re},e.$$prepared=!0}return e}function x(e,t){S(e,t),T(e,t)}function S(e,t){t.from&&(e.css(t.from),t.from=null)}function T(e,t){t.to&&(e.css(t.to),t.to=null)}function $(e,t,n){var i=t.options||{},r=n.options||{},o=(i.addClass||"")+" "+(r.addClass||""),a=(i.removeClass||"")+" "+(r.removeClass||""),u=function(e,t,n){var i={};e=o(e),t=o(t),Z(t,(function(e,t){i[t]=1})),n=o(n),Z(n,(function(e,t){i[t]=1===i[t]?null:-1}));var r={addClass:"",removeClass:""};function o(e){te(e)&&(e=e.split(" "));var t={};return Z(e,(function(e){e.length&&(t[e]=!0)})),t}return Z(i,(function(t,n){var i,o;1===t?(i="addClass",o=!e[n]||e[n+l]):-1===t&&(i="removeClass",o=e[n]||e[n+s]),o&&(r[i].length&&(r[i]+=" "),r[i]+=n)})),r}(e.attr("class"),o,a);r.preparationClasses&&(i.preparationClasses=P(r.preparationClasses,i.preparationClasses),delete r.preparationClasses);var c=i.domOperation!==re?i.domOperation:null;return G(i,r),c&&(i.domOperation=c),u.addClass?i.addClass=u.addClass:i.addClass=null,u.removeClass?i.removeClass=u.removeClass:i.removeClass=null,t.addClass=i.addClass,t.removeClass=i.removeClass,i}function D(e){return e instanceof ie?e[0]:e}function C(e,t){var n=t?"-"+t+"s":"";return A(e,[g,n]),[g,n]}function E(e,t){var n=t?"paused":"",i=r+f;return A(e,[i,n]),[i,n]}function A(e,t){var n=t[0],i=t[1];e.style[n]=i}function P(e,t){return e?t?e+" "+t:e:t}var Y=["$interpolate",function(e){return{link:function(t,n,i){var r=i.ngAnimateChildren;function o(e){e="on"===e||"true"===e,n.data(c,e)}te(r)&&0===r.length?n.data(c,!0):(o(e(r)(t)),i.$observe("ngAnimateChildren",o))}}}],O="$$animateCss",I=1e3,j=3,H=1.5,B={transitionDuration:v,transitionDelay:g,transitionProperty:n+"Property",animationDuration:m,animationDelay:p,animationIterationCount:r+"IterationCount"},N={transitionDuration:v,transitionDelay:g,animationDuration:m,animationDelay:p};function R(e,t){return[t?p:g,e+"s"]}function F(e,t,n){var i=Object.create(null),r=e.getComputedStyle(t)||{};return Z(n,(function(e,t){var n,o,a=r[e];if(a){var s=a.charAt(0);("-"===s||"+"===s||s>=0)&&(n=0,o=a.split(/\s*,\s*/),Z(o,(function(e){"s"===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,n=n?Math.max(e,n):e})),a=n),0===a&&(a=null),i[t]=a}})),i}function z(e){return 0===e||null!=e}function V(e,t){var i=n,r=e+"s";return t?i+=d:r+=" linear all",[i,r]}function U(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function W(e,t,n){Z(n,(function(n){e[n]=X(e[n])?e[n]:t.style.getPropertyValue(n)}))}var q,G,Z,J,X,K,Q,ee,te,ne,ie,re,oe=["$animateProvider",function(e){var t=U(),a=U();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,u,c,d,f,p,g,v){var _=M(u),y=0;function b(e,t){var n="$$ngAnimateParentKey",i=e.parentNode;return(i[n]||(i[n]=++y))+"-"+e.getAttribute("class")+"-"+t}var L=[];function $(e){L.push(e),g.waitUntilQuiet((function(){t.flush(),a.flush();for(var e=f(),n=0;n<L.length;n++)L[n](e);L.length=0}))}function P(n,i,r){var o=function(n,i,r,o){var a=t.get(r);return a||"infinite"===(a=F(e,n,o)).animationIterationCount&&(a.animationIterationCount=1),t.put(r,a),a}(n,0,r,B),a=o.animationDelay,s=o.transitionDelay;return o.maxDelay=a&&s?Math.max(a,s):a||s,o.maxDuration=Math.max(o.animationDuration*o.animationIterationCount,o.transitionDuration),o}return function(f,g){var y=g||{};y.$$prepared||(y=k(q(y)));var L={},M=D(f);if(!M||!M.parentNode||!v.enabled())return Ae();var Y,B,U,G,X,K,Q,ee,te,ne,ie=[],oe=f.attr("class"),ae=function(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}(y),se=[];if(0===y.duration||!p.animations&&!p.transitions)return Ae();var le=y.event&&J(y.event)?y.event.join(" "):y.event,ue="",ce="";le&&y.structural?ue=w(le,"ng-",!0):le&&(ue=le),y.addClass&&(ce+=w(y.addClass,s)),y.removeClass&&(ce.length&&(ce+=" "),ce+=w(y.removeClass,l)),y.applyClassesEarly&&ce.length&&_(f,y);var de,he,fe,pe=[ue,ce].join(" ").trim(),me=oe+" "+pe,ge=w(pe,"-active"),ve=ae.to&&Object.keys(ae.to).length>0;if(!((y.keyframeStyle||"").length>0||ve||pe))return Ae();if(y.stagger>0){var _e=parseFloat(y.stagger);he={transitionDelay:_e,animationDelay:_e,transitionDuration:0,animationDuration:0}}else de=b(M,me),he=function(n,i,r,o){var s;if(t.count(r)>0&&!(s=a.get(r))){var l=w(i,"-stagger");u.addClass(n,l),(s=F(e,n,o)).animationDuration=Math.max(s.animationDuration,0),s.transitionDuration=Math.max(s.transitionDuration,0),u.removeClass(n,l),a.put(r,s)}return s||{}}(M,pe,de,N);if(y.$$skipPreparationClasses||u.addClass(f,pe),y.transitionStyle){var ye=[n,y.transitionStyle];A(M,ye),ie.push(ye)}if(y.duration>=0){fe=M.style[n].length>0;var be=V(y.duration,fe);A(M,be),ie.push(be)}if(y.keyframeStyle){var we=[r,y.keyframeStyle];A(M,we),ie.push(we)}var Le=he?y.staggerIndex>=0?y.staggerIndex:t.count(de):0,Me=0===Le;Me&&!y.skipBlocking&&C(M,9999);var ke=P(M,0,de),xe=ke.maxDelay;K=Math.max(xe,0),ee=ke.maxDuration;var Se,Te={};return Te.hasTransitions=ke.transitionDuration>0,Te.hasAnimations=ke.animationDuration>0,Te.hasTransitionAll=Te.hasTransitions&&"all"===ke.transitionProperty,Te.applyTransitionDuration=ve&&(Te.hasTransitions&&!Te.hasTransitionAll||Te.hasAnimations&&!Te.hasTransitions),Te.applyAnimationDuration=y.duration&&Te.hasAnimations,Te.applyTransitionDelay=z(y.delay)&&(Te.applyTransitionDuration||Te.hasTransitions),Te.applyAnimationDelay=z(y.delay)&&Te.hasAnimations,Te.recalculateTimingStyles=ce.length>0,(Te.applyTransitionDuration||Te.applyAnimationDuration)&&(ee=y.duration?parseFloat(y.duration):ee,Te.applyTransitionDuration&&(Te.hasTransitions=!0,ke.transitionDuration=ee,fe=M.style[n+"Property"].length>0,ie.push(V(ee,fe))),Te.applyAnimationDuration&&(Te.hasAnimations=!0,ke.animationDuration=ee,ie.push([m,ee+"s"]))),0!==ee||Te.recalculateTimingStyles?(null!=y.delay&&("boolean"!=typeof y.delay&&(Se=parseFloat(y.delay),K=Math.max(Se,0)),Te.applyTransitionDelay&&ie.push(R(Se)),Te.applyAnimationDelay&&ie.push(R(Se,!0))),null==y.duration&&ke.transitionDuration>0&&(Te.recalculateTimingStyles=Te.recalculateTimingStyles||Me),Q=K*I,te=ee*I,y.skipBlocking||(Te.blockTransition=ke.transitionDuration>0,Te.blockKeyframeAnimation=ke.animationDuration>0&&he.animationDelay>0&&0===he.animationDuration),y.from&&(y.cleanupStyles&&W(L,M,Object.keys(y.from)),S(f,y)),Te.blockTransition||Te.blockKeyframeAnimation?Ee(ee):y.skipBlocking||C(M,!1),{$$willAnimate:!0,end:$e,start:function(){if(!Y)return G=new c(X={end:$e,cancel:De,resume:null,pause:null}),$(Ye),G}}):Ae();function $e(){Ce()}function De(){Ce(!0)}function Ce(e){if(!(Y||U&&B)){Y=!0,B=!1,y.$$skipPreparationClasses||u.removeClass(f,pe),u.removeClass(f,ge),E(M,!1),C(M,!1),Z(ie,(function(e){M.style[e[0]]=""})),_(f,y),x(f,y),Object.keys(L).length&&Z(L,(function(e,t){e?M.style.setProperty(t,e):M.style.removeProperty(t)})),y.onDone&&y.onDone(),se&&se.length&&f.off(se.join(" "),Pe);var t=f.data(O);t&&(d.cancel(t[0].timer),f.removeData(O)),G&&G.complete(!e)}}function Ee(e){Te.blockTransition&&C(M,e),Te.blockKeyframeAnimation&&E(M,!!e)}function Ae(){return G=new c({end:$e,cancel:De}),$(re),Ce(),{$$willAnimate:!1,start:function(){return G},end:$e}}function Pe(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),i=parseFloat(t.elapsedTime.toFixed(j));Math.max(n-ne,0)>=Q&&i>=ee&&(U=!0,Ce())}function Ye(){if(!Y)if(M.parentNode){var e=function(e){if(U)B&&e&&(B=!1,Ce());else if(B=!e,ke.animationDuration){var t=E(M,B);B?ie.push(t):(i=t,r=(n=ie).indexOf(i),i>=0&&n.splice(r,1))}var n,i,r},t=Le>0&&(ke.transitionDuration&&0===he.transitionDuration||ke.animationDuration&&0===he.animationDuration)&&Math.max(he.animationDelay,he.transitionDelay);t?d(a,Math.floor(t*Le*I),!1):a(),X.resume=function(){e(!0)},X.pause=function(){e(!1)}}else Ce();function a(){if(!Y){if(Ee(!1),Z(ie,(function(e){var t=e[0],n=e[1];M.style[t]=n})),_(f,y),u.addClass(f,ge),Te.recalculateTimingStyles){if(me=M.className+" "+pe,de=b(M,me),ke=P(M,0,de),xe=ke.maxDelay,K=Math.max(xe,0),0===(ee=ke.maxDuration))return void Ce();Te.hasTransitions=ke.transitionDuration>0,Te.hasAnimations=ke.animationDuration>0}if(Te.applyAnimationDelay&&(xe="boolean"!=typeof y.delay&&z(y.delay)?parseFloat(y.delay):xe,K=Math.max(xe,0),ke.animationDelay=xe,Se=R(xe,!0),ie.push(Se),M.style[Se[0]]=Se[1]),Q=K*I,te=ee*I,y.easing){var e,t=y.easing;Te.hasTransitions&&(e=n+h,ie.push([e,t]),M.style[e]=t),Te.hasAnimations&&(e=r+h,ie.push([e,t]),M.style[e]=t)}ke.transitionDuration&&se.push(i),ke.animationDuration&&se.push(o),ne=Date.now();var a=Q+H*te,l=ne+a,c=f.data(O)||[],p=!0;if(c.length){var m=c[0];(p=l>m.expectedEndTime)?d.cancel(m.timer):c.push(Ce)}if(p){var g=d(s,a,!1);c[0]={timer:g,expectedEndTime:l},c.push(Ce),f.data(O,c)}se.length&&f.on(se.join(" "),Pe),y.to&&(y.cleanupStyles&&W(L,M,Object.keys(y.to)),T(f,y))}}function s(){var e=f.data(O);if(e){for(var t=1;t<e.length;t++)e[t]();f.removeData(O)}}}}}]}],ae=["$$animationProvider",function(e){e.drivers.push("$$animateCssDriver");var t="ng-animate-shim",n="ng-anchor-out",i="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,r,o,a,s,l,u){if(!s.animations&&!s.transitions)return re;var c,d=u[0].body,h=D(a),f=ie((c=h).parentNode&&11===c.parentNode.nodeType||d.contains(h)?h:d);return function(r){return r.from&&r.to?function(r,a,s,l){var u=g(r),c=g(a),h=[];if(Z(l,(function(r){var a=function(r,a,s){var l=ie(D(a).cloneNode(!0)),u=p(_(l));a.addClass(t),s.addClass(t),l.addClass("ng-anchor"),f.append(l);var c,h=function(){var t=e(l,{addClass:n,delay:!0,from:v(a)});return t.$$willAnimate?t:null}();if(!h&&!(c=y()))return b();var g=h||c;return{start:function(){var e,t=g.start();return t.done((function(){if(t=null,!c&&(c=y()))return(t=c.start()).done((function(){t=null,b(),e.complete()})),t;b(),e.complete()})),e=new o({end:n,cancel:n});function n(){t&&t.end()}}};function v(e){var t={},n=D(e).getBoundingClientRect();return Z(["width","height","top","left"],(function(e){var i=n[e];switch(e){case"top":i+=d.scrollTop;break;case"left":i+=d.scrollLeft}t[e]=Math.floor(i)+"px"})),t}function _(e){return e.attr("class")||""}function y(){var t=p(_(s)),r=m(t,u),o=m(u,t),a=e(l,{to:v(s),addClass:i+" "+r,removeClass:n+" "+o,delay:!0});return a.$$willAnimate?a:null}function b(){l.remove(),a.removeClass(t),s.removeClass(t)}}(0,r.out,r.in);a&&h.push(a)})),u||c||0!==h.length)return{start:function(){var e=[];u&&e.push(u.start()),c&&e.push(c.start()),Z(h,(function(t){e.push(t.start())}));var t=new o({end:n,cancel:n});return o.all(e,(function(e){t.complete(e)})),t;function n(){Z(e,(function(e){e.end()}))}}}}(r.from,r.to,r.classes,r.anchors):g(r)};function p(e){return e.replace(/\bng-\S+\b/g,"")}function m(e,t){return te(e)&&(e=e.split(" ")),te(t)&&(t=t.split(" ")),e.filter((function(e){return-1===t.indexOf(e)})).join(" ")}function g(t){var n=t.element,i=t.options||{};t.structural&&(i.event=t.event,i.structural=!0,i.applyClassesEarly=!0,"leave"===t.event&&(i.onDone=i.domOperation)),i.preparationClasses&&(i.event=P(i.event,i.preparationClasses));var r=e(n,i);return r.$$willAnimate?r:null}}]}],se=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,i){var r=M(i);return function(e,t,i,a){var s=!1;3===arguments.length&&ee(i)&&(a=i,i=null),a=k(a),i||(i=e.attr("class")||"",a.addClass&&(i+=" "+a.addClass),a.removeClass&&(i+=" "+a.removeClass));var l,u,c,d,h,f=a.addClass,p=a.removeClass,m=o(i);if(m.length&&("leave"===t?(d="leave",c="afterLeave"):(d="before"+t.charAt(0).toUpperCase()+t.substr(1),c=t),"enter"!==t&&"move"!==t&&(l=b(e,t,a,m,d)),u=b(e,t,a,m,c)),l||u)return{$$willAnimate:!0,end:function(){return h?h.end():(v(),(h=new n).complete(!0)),h},start:function(){if(h)return h;var e;h=new n;var t=[];return l&&t.push((function(t){e=l(t)})),t.length?t.push((function(e){g(),e(!0)})):g(),u&&t.push((function(t){e=u(t)})),h.setHost({end:function(){r()},cancel:function(){r(!0)}}),n.chain(t,i),h;function i(e){v(),h.complete(e)}function r(t){s||((e||re)(t),i(t))}}};function g(){a.domOperation(),r(e,a)}function v(){s=!0,g(),x(e,a)}function _(e,t,i,r,o){var a;switch(i){case"animate":a=[t,r.from,r.to,o];break;case"setClass":a=[t,f,p,o];break;case"addClass":a=[t,f,o];break;case"removeClass":a=[t,p,o];break;default:a=[t,o]}a.push(r);var s=e.apply(e,a);if(s)if(Q(s.start)&&(s=s.start()),s instanceof n)s.done(o);else if(Q(s))return s;return re}function y(e,t,i,r,o){var a=[];return Z(r,(function(r){var s=r[o];s&&a.push((function(){var r,o,a=!1,l=function(e){a||(a=!0,(o||re)(e),r.complete(!e))};return r=new n({end:function(){l()},cancel:function(){l(!0)}}),o=_(s,e,t,i,(function(e){l(!1===e)})),r}))})),a}function b(e,t,i,r,o){var a,s,l=y(e,t,i,r,o);if(0===l.length&&("beforeSetClass"===o?(a=y(e,"removeClass",i,r,"beforeRemoveClass"),s=y(e,"addClass",i,r,"beforeAddClass")):"setClass"===o&&(a=y(e,"removeClass",i,r,"removeClass"),s=y(e,"addClass",i,r,"addClass")),a&&(l=l.concat(a)),s&&(l=l.concat(s))),0!==l.length)return function(e){var t=[];return l.length&&Z(l,(function(e){t.push(e())})),t.length?n.all(t,e):e(),function(e){Z(t,(function(t){e?t.cancel():t.end()}))}}}};function o(n){n=J(n)?n:n.split(" ");for(var i=[],r={},o=0;o<n.length;o++){var a=n[o],s=e.$$registeredAnimations[a];s&&!r[a]&&(i.push(t.get(s)),r[a]=!0)}return i}}]}],le=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){return function(e){if(e.from&&e.to){var i=n(e.from),r=n(e.to);if(!i&&!r)return;return{start:function(){var e=[];i&&e.push(i.start()),r&&e.push(r.start()),t.all(e,(function(e){n.complete(e)}));var n=new t({end:o(),cancel:o()});return n;function o(){return function(){Z(e,(function(e){e.end()}))}}}}}return n(e)};function n(t){var n=t.element,i=t.event,r=t.options,o=t.classes;return e(n,i,o,r)}}]}],ue="data-ng-animate",ce=["$animateProvider",function(t){var n=" ",i=this.rules={skip:[],cancel:[],join:[]};function r(e,t){if(e&&t){var i=function(e){if(!e)return null;var t=e.split(n),i=Object.create(null);return Z(t,(function(e){i[e]=!0})),i}(t);return e.split(n).some((function(e){return i[e]}))}}function o(e,t,n,r){return i[e].some((function(e){return e(t,n,r)}))}function u(e,t){var n=(e.addClass||"").length>0,i=(e.removeClass||"").length>0;return t?n&&i:n||i}i.join.push((function(e,t,n){return!t.structural&&u(t)})),i.skip.push((function(e,t,n){return!t.structural&&!u(t)})),i.skip.push((function(e,t,n){return"leave"===n.event&&t.structural})),i.skip.push((function(e,t,n){return n.structural&&2===n.state&&!t.structural})),i.cancel.push((function(e,t,n){return n.structural&&t.structural})),i.cancel.push((function(e,t,n){return 2===n.state&&t.structural})),i.cancel.push((function(e,t,n){if(n.structural)return!1;var i=t.addClass,o=t.removeClass,a=n.addClass,s=n.removeClass;return!(ne(i)&&ne(o)||ne(a)&&ne(s))&&(r(i,s)||r(o,a))})),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(n,i,r,d,h,f,p,m,g,v){var _=new h,b=new h,S=null,T=i.$watch((function(){return 0===m.totalPendingRequests}),(function(e){e&&(T(),i.$$postDigest((function(){i.$$postDigest((function(){null===S&&(S=!0)}))})))})),C=Object.create(null),E=t.classNameFilter(),A=E?function(e){return E.test(e)}:function(){return!0},Y=M(g);function O(e,t){return $(e,t,{})}var I=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))};function j(e,t,n){var i=L(t);return e.filter((function(e){return!(e.node===i&&(!n||e.callback===n))}))}function H(e,t){"close"!==e||t[0].parentNode||B.off(t)}var B={on:function(e,t,n){var i=L(t);C[e]=C[e]||[],C[e].push({node:i,callback:n}),ie(t).on("$destroy",(function(){_.get(i)||B.off(e,t,n)}))},off:function(e,t,n){if(1!==arguments.length||te(arguments[0])){var i=C[e];i&&(C[e]=1===arguments.length?null:j(i,t,n))}else for(var r in t=arguments[0],C)C[r]=j(C[r],t)},pin:function(e,t){y(K(e),"element","not an element"),y(K(t),"parentElement","not an element"),e.data("$ngAnimatePin",t)},push:function(e,t,h,m){return(h=h||{}).domOperation=m,function(e,t,h){var m,g,v=q(h);(e=function(e){if(e instanceof ie)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===a)return e;break;default:return ie(L(e))}if(e.nodeType===a)return ie(e)}(e))&&(m=D(e),g=e.parent()),v=k(v);var y,M=new p,T=(y=!1,function(e){y?e():i.$$postDigest((function(){y=!0,e()}))});if(J(v.addClass)&&(v.addClass=v.addClass.join(" ")),v.addClass&&!te(v.addClass)&&(v.addClass=null),J(v.removeClass)&&(v.removeClass=v.removeClass.join(" ")),v.removeClass&&!te(v.removeClass)&&(v.removeClass=null),v.from&&!ee(v.from)&&(v.from=null),v.to&&!ee(v.to)&&(v.to=null),!m)return re(),M;var E=[m.className,v.addClass,v.removeClass].join(" ");if(!A(E))return re(),M;var j=["enter","move","leave"].indexOf(t)>=0,B=d[0].hidden,z=!S||B||b.get(m),V=!z&&_.get(m)||{},U=!!V.state;if(z||U&&1===V.state||(z=!function(e,t,n){var i,o=ie(d[0].body),s=R(e,o)||"HTML"===e[0].nodeName,l=R(e,r),u=!1,h=b.get(D(e)),f=ie.data(e[0],"$ngAnimatePin");for(f&&(t=f),t=D(t);t&&(l||(l=R(t,r)),t.nodeType===a);){var p=_.get(t)||{};if(!u){var m=b.get(t);if(!0===m&&!1!==h){h=!0;break}!1===m&&(h=!1),u=p.structural}if(ne(i)||!0===i){var g=ie.data(t,c);X(g)&&(i=g)}if(u&&!1===i)break;if(s||(s=R(t,o)),s&&l)break;t=l||!(f=ie.data(t,"$ngAnimatePin"))?t.parentNode:D(f)}return(!u||i)&&!0!==h&&l&&s}(e,g)),z)return B&&Q(M,t,"start"),re(),B&&Q(M,t,"close"),M;j&&function(e){var t=D(e).querySelectorAll("["+ue+"]");Z(t,(function(e){var t=parseInt(e.getAttribute(ue),10),n=_.get(e);if(n)switch(t){case 2:n.runner.end();case 1:_.remove(e)}}))}(e);var W={structural:j,element:e,event:t,addClass:v.addClass,removeClass:v.removeClass,close:re,options:v,runner:M};if(U){if(o("skip",e,W,V))return 2===V.state?(re(),M):($(e,V,W),V.runner);if(o("cancel",e,W,V))if(2===V.state)V.runner.end();else{if(!V.structural)return $(e,V,W),V.runner;V.close()}else if(o("join",e,W,V)){if(2!==V.state)return function(e,t,n){var i="";t&&(i=w(t,"ng-",!0)),n.addClass&&(i=P(i,w(n.addClass,s))),n.removeClass&&(i=P(i,w(n.removeClass,l))),i.length&&(n.preparationClasses=i,e.addClass(i))}(e,j?t:null,v),t=W.event=V.event,v=$(e,V,W),V.runner;O(e,W)}}else O(e,W);var G=W.structural;if(G||(G="animate"===W.event&&Object.keys(W.options.to||{}).length>0||u(W)),!G)return re(),N(e),M;var K=(V.counter||0)+1;return W.counter=K,F(e,1,W),i.$$postDigest((function(){var n=_.get(m),i=!n;n=n||{};var r=(e.parent()||[]).length>0&&("animate"===n.event||n.structural||u(n));if(i||n.counter!==K||!r)return i&&(Y(e,v),x(e,v)),(i||j&&n.event!==t)&&(v.domOperation(),M.end()),void(r||N(e));t=!n.structural&&u(n,!0)?"setClass":n.event,F(e,2);var o=f(e,t,n.options);M.setHost(o),Q(M,t,"start",{}),o.done((function(n){re(!n);var i=_.get(m);i&&i.counter===K&&N(D(e)),Q(M,t,"close",{})}))})),M;function Q(t,i,r,o){T((function(){var t=function(e,t,n){var i=D(t),r=D(e),o=[],a=C[n];return a&&Z(a,(function(e){I.call(e.node,i)?o.push(e.callback):"leave"===n&&I.call(e.node,r)&&o.push(e.callback)})),o}(g,e,i);t.length?n((function(){Z(t,(function(t){t(e,r,o)})),H(r,e)})):H(r,e)})),t.progress(i,r,o)}function re(t){!function(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}(e,v),Y(e,v),x(e,v),v.domOperation(),M.complete(!t)}}(e,t,h)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!S;else{var i=K(e);if(i){var r=D(e);1===n?t=!b.get(r):b.put(r,!t)}else t=S=!!e}return t}};return B;function N(e){var t=D(e);t.removeAttribute(ue),_.remove(t)}function R(e,t){return D(e)===D(t)}function F(e,t,n){(n=n||{}).state=t;var i=D(e);i.setAttribute(ue,t);var r=_.get(i),o=r?G(r,n):n;_.put(i,o)}}]}],de=["$animateProvider",function(e){var t=this.drivers=[],n="$$animationRunner";function i(e){return e.data(n)}this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,r,o,a,s,l){var c=[],d=M(e);return function(h,f,p){p=k(p);var m=["enter","move","leave"].indexOf(f)>=0,g=new a({end:function(){M()},cancel:function(){M(!0)}});if(!t.length)return M(),g;!function(e,t){e.data(n,t)}(h,g);var v,_=b(h.attr("class"),b(p.addClass,p.removeClass)),y=p.tempClasses;return y&&(_+=" "+y,p.tempClasses=null),m&&(v="ng-"+f+"-prepare",e.addClass(h,v)),c.push({element:h,classes:_,event:f,structural:m,options:p,beforeStart:function(){h.addClass(u),y&&e.addClass(h,y),v&&(e.removeClass(h,v),v=null)},close:M}),h.on("$destroy",L),c.length>1?g:(r.$$postDigest((function(){var e=[];Z(c,(function(t){i(t.element)?e.push(t):t.close()})),c.length=0;var n=function(e){var t=[],n={};Z(e,(function(e,i){var r=D(e.element),o=e.event,a=["enter","move"].indexOf(o)>=0,s=e.structural?function(e){var t=e.hasAttribute("ng-animate-ref")?[e]:e.querySelectorAll("[ng-animate-ref]"),n=[];return Z(t,(function(e){var t=e.getAttribute("ng-animate-ref");t&&t.length&&n.push(e)})),n}(r):[];if(s.length){var l=a?"to":"from";Z(s,(function(e){var t=e.getAttribute("ng-animate-ref");n[t]=n[t]||{},n[t][l]={animationID:i,element:ie(e)}}))}else t.push(e)}));var i={},r={};return Z(n,(function(n,o){var a=n.from,s=n.to;if(a&&s){var l=e[a.animationID],u=e[s.animationID],c=a.animationID.toString();if(!r[c]){var d=r[c]={structural:!0,beforeStart:function(){l.beforeStart(),u.beforeStart()},close:function(){l.close(),u.close()},classes:w(l.classes,u.classes),from:l,to:u,anchors:[]};d.classes.length?t.push(d):(t.push(l),t.push(u))}r[c].anchors.push({out:a.element,in:s.element})}else{var h=a?a.animationID:s.animationID,f=h.toString();i[f]||(i[f]=!0,t.push(e[h]))}})),t}(e),r=[];Z(n,(function(e){r.push({domNode:D(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var n,r=e.close;if(i(e.anchors?e.from.element||e.to.element:e.element)){var a=function(e){for(var n=t.length-1;n>=0;n--){var i=t[n],r=o.get(i)(e);if(r)return r}}(e);a&&(n=a.start)}if(n){var s=n();s.done((function(e){r(!e)})),function(e,t){function n(e){var n=i(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}(e,s)}else r()}})})),l(function(e){var t,n={children:[]},i=new s;for(t=0;t<e.length;t++){var r=e[t];i.put(r.domNode,e[t]={domNode:r.domNode,fn:r.fn,children:[]})}for(t=0;t<e.length;t++)o(e[t]);return function(e){var t,n=[],i=[];for(t=0;t<e.children.length;t++)i.push(e.children[t]);var r=i.length,o=0,a=[];for(t=0;t<i.length;t++){var s=i[t];r<=0&&(r=o,o=0,n.push(a),a=[]),a.push(s.fn),s.children.forEach((function(e){o++,i.push(e)})),r--}return a.length&&n.push(a),n}(n);function o(e){if(e.processed)return e;e.processed=!0;var t,r=e.domNode,a=r.parentNode;for(i.put(r,e);a;){if(t=i.get(a)){t.processed||(t=o(t));break}a=a.parentNode}return(t||n).children.push(e),e}}(r))})),g);function w(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],i=0;i<e.length;i++){var r=e[i];if("ng-"!==r.substring(0,3))for(var o=0;o<t.length;o++)if(r===t[o]){n.push(r);break}}return n.join(" ")}function L(){var e=i(h);!e||"leave"===f&&p.$$domOperationFired||e.end()}function M(t){h.off("$destroy",L),function(e){e.removeData(n)}(h),d(h,p),x(h,p),p.domOperation(),y&&e.removeClass(h,y),h.removeClass(u),g.complete(!t)}}}]}];t.module("ngAnimate",[],(function(){re=t.noop,q=t.copy,G=t.extend,ie=t.element,Z=t.forEach,J=t.isArray,te=t.isString,ee=t.isObject,ne=t.isUndefined,X=t.isDefined,Q=t.isFunction,K=t.isElement})).directive("ngAnimateSwap",["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,i,r,o){var a,s;t.$watchCollection(i.ngAnimateSwap||i.for,(function(i){a&&e.leave(a),s&&(s.$destroy(),s=null),(i||0===i)&&(s=t.$new(),o(s,(function(t){a=t,e.enter(t,null,n)})))}))}}}]).directive("ngAnimateChildren",Y).factory("$$rAFScheduler",["$$rAF",function(e){var t,n;function i(e){t=t.concat(e),r()}return t=i.queue=[],i.waitUntilQuiet=function(t){n&&n(),n=e((function(){n=null,t(),r()}))},i;function r(){if(t.length){for(var i=t.shift(),o=0;o<i.length;o++)i[o]();n||e((function(){n||r()}))}}}]).provider("$$animateQueue",ce).provider("$$animation",de).provider("$animateCss",oe).provider("$$animateCssDriver",ae).provider("$$animateJs",se).provider("$$animateJsDriver",le)}(window,window.angular),
+/**
+ * @license AngularJS v1.5.11
+ * (c) 2010-2017 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+function(e,t){"use strict";var n,i,r,o,a,s,l,u,c=t.$$minErr("$sanitize");t.module("ngSanitize",[]).provider("$sanitize",(function(){var d=!1;this.$get=["$$sanitizeUri",function(e){return d&&i(M,w),function(t){var n=[];return l(t,u(n,(function(t,n){return!/^unsafe:/.test(e(t,n))}))),n.join("")}}],this.enableSvg=function(e){return o(e)?(d=e,this):d},n=t.bind,i=t.extend,r=t.forEach,o=t.isDefined,a=t.lowercase,s=t.noop,l=function(t,n){null==t?t="":"string"!=typeof t&&(t=""+t),h.innerHTML=t;var i=5;do{if(0===i)throw c("uinput","Failed to sanitize html because the input is unstable");i--,e.document.documentMode&&E(h),t=h.innerHTML,h.innerHTML=t}while(t!==h.innerHTML);for(var r=h.firstChild;r;){switch(r.nodeType){case 1:n.start(r.nodeName.toLowerCase(),D(r.attributes));break;case 3:n.chars(r.textContent)}var o;if(!((o=r.firstChild)||(1===r.nodeType&&n.end(r.nodeName.toLowerCase()),o=r.nextSibling)))for(;null==o&&(r=r.parentNode)!==h;)o=r.nextSibling,1===r.nodeType&&n.end(r.nodeName.toLowerCase());r=o}for(;r=h.firstChild;)h.removeChild(r)},u=function(e,t){var i=!1,o=n(e,e.push);return{start:function(e,n){e=a(e),!i&&L[e]&&(i=e),i||!0!==M[e]||(o("<"),o(e),r(n,(function(n,i){var r=a(i),s="img"===e&&"src"===r||"background"===r;!0!==T[r]||!0===k[r]&&!t(n,s)||(o(" "),o(i),o('="'),o(C(n)),o('"'))})),o(">"))},end:function(e){e=a(e),i||!0!==M[e]||!0===m[e]||(o("</"),o(e),o(">")),e==i&&(i=!1)},chars:function(e){i||o(C(e))}}};var h,f=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,p=/([^#-~ |!])/g,m=$("area,br,col,hr,img,wbr"),g=$("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),v=$("rp,rt"),_=i({},v,g),y=i({},g,$("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),b=i({},v,$("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),w=$("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),L=$("script,style"),M=i({},m,y,b,_),k=$("background,cite,href,longdesc,src,xlink:href"),x=$("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),S=$("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),T=i({},k,S,x);function $(e,t){var n,i={},r=e.split(",");for(n=0;n<r.length;n++)i[t?a(r[n]):r[n]]=!0;return i}function D(e){for(var t={},n=0,i=e.length;n<i;n++){var r=e[n];t[r.name]=r.value}return t}function C(e){return e.replace(/&/g,"&amp;").replace(f,(function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"})).replace(p,(function(e){return"&#"+e.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(t){for(;t;){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,i=0,r=n.length;i<r;i++){var o=n[i],a=o.name.toLowerCase();"xmlns:ns1"!==a&&0!==a.lastIndexOf("ns1:",0)||(t.removeAttributeNode(o),i--,r--)}var s=t.firstChild;s&&E(s),t=t.nextSibling}}!function(e){var t;if(!e.document||!e.document.implementation)throw c("noinert","Can't create an inert html document");var n=((t=e.document.implementation.createHTMLDocument("inert")).documentElement||t.getDocumentElement()).getElementsByTagName("body");if(1===n.length)h=n[0];else{var i=t.createElement("html");h=t.createElement("body"),i.appendChild(h),t.appendChild(i)}}(e)})),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,i=/^mailto:/i,r=t.$$minErr("linky"),o=t.isDefined,a=t.isFunction,l=t.isObject,c=t.isString;return function(t,d,h){if(null==t||""===t)return t;if(!c(t))throw r("notstring","Expected string but received: {0}",t);for(var f,p,m,g=a(h)?h:l(h)?function(){return h}:function(){return{}},v=t,_=[];f=v.match(n);)p=f[0],f[2]||f[4]||(p=(f[3]?"http://":"mailto:")+p),m=f.index,y(v.substr(0,m)),b(p,f[0].replace(i,"")),v=v.substring(m+f[0].length);return y(v),e(_.join(""));function y(e){var t,n;e&&_.push((t=e,u(n=[],s).chars(t),n.join("")))}function b(e,t){var n,i=g(e);for(n in _.push("<a "),i)_.push(n+'="'+i[n]+'" ');!o(d)||"target"in i||_.push('target="',d,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),y(t),_.push("</a>")}}}])}(window,window.angular),
+/**
+ * State-based routing for AngularJS
+ * @version v0.2.18
+ * @link http://angular-ui.github.com/
+ * @license MIT License, http://www.opensource.org/licenses/MIT
+ */
+"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){"use strict";var i,r=t.isDefined,o=t.isFunction,a=t.isString,s=t.isObject,l=t.isArray,u=t.forEach,c=t.extend,d=t.copy,h=t.toJson;function f(e,t){return c(new(c((function(){}),{prototype:e})),t)}function p(e){return u(arguments,(function(t){t!==e&&u(t,(function(t,n){e.hasOwnProperty(n)||(e[n]=t)}))})),e}function m(e){if(Object.keys)return Object.keys(e);var t=[];return u(e,(function(e,n){t.push(n)})),t}function g(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,i=Number(arguments[2])||0;for((i=i<0?Math.ceil(i):Math.floor(i))<0&&(i+=n);i<n;i++)if(i in e&&e[i]===t)return i;return-1}function v(e,t,n,i){var r,o=function(e,t){var n=[];for(var i in e.path){if(e.path[i]!==t.path[i])break;n.push(e.path[i])}return n}(n,i),a={},s=[];for(var l in o)if(o[l]&&o[l].params&&(r=m(o[l].params)).length)for(var u in r)g(s,r[u])>=0||(s.push(r[u]),a[r[u]]=e[r[u]]);return c({},a,t)}function _(e,t,n){if(!n)for(var i in n=[],e)n.push(i);for(var r=0;r<n.length;r++){var o=n[r];if(e[o]!=t[o])return!1}return!0}function y(e,t){var n={};return u(e,(function(e){n[e]=t[e]})),n}function b(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return u(n,(function(n){n in e&&(t[n]=e[n])})),t}function w(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var i in e)-1==g(n,i)&&(t[i]=e[i]);return t}function L(e,t){var n=l(e),i=n?[]:{};return u(e,(function(e,r){t(e,r)&&(i[n?i.length:r]=e)})),i}function M(e,t){var n=l(e)?[]:{};return u(e,(function(e,i){n[i]=t(e,i)})),n}function k(e,t){var i={},o=[],l=i,d=c(e.when(i),{$$promises:i,$$values:i});this.study=function(i){if(!s(i))throw new Error("'invocables' must be an object");var h=m(i||{}),f=[],v=[],_={};function y(e){return s(e)&&e.then&&e.$$promises}return u(i,(function e(n,r){if(2!==_[r]){if(v.push(r),1===_[r])throw v.splice(0,g(v,r)),new Error("Cyclic dependency: "+v.join(" -> "));if(_[r]=1,a(n))f.push(r,[function(){return t.get(n)}],o);else{var s=t.annotate(n);u(s,(function(t){t!==r&&i.hasOwnProperty(t)&&e(i[t],t)})),f.push(r,n,s)}v.pop(),_[r]=2}})),i=v=_=null,function(i,o,a){if(y(i)&&a===n&&(a=o,o=i,i=null),i){if(!s(i))throw new Error("'locals' must be an object")}else i=l;if(o){if(!y(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=d;var m=e.defer(),g=m.promise,v=g.$$promises={},_=c({},i),b=1+f.length/3,L=!1;function M(){--b||(L||p(_,o.$$values),g.$$values=_,g.$$promises=g.$$promises||!0,delete g.$$inheritedValues,m.resolve(_))}function k(e){g.$$failure=e,m.reject(e)}if(r(o.$$failure))return k(o.$$failure),g;o.$$inheritedValues&&p(_,w(o.$$inheritedValues,h)),c(v,o.$$promises),o.$$values?(L=p(_,w(o.$$values,h)),g.$$inheritedValues=w(o.$$values,h),M()):(o.$$inheritedValues&&(g.$$inheritedValues=w(o.$$inheritedValues,h)),o.then(M,k));for(var x=0,S=f.length;x<S;x+=3)i.hasOwnProperty(f[x])?M():T(f[x],f[x+1],f[x+2]);function T(n,o,s){var l=e.defer(),c=0;function d(e){l.reject(e),k(e)}function h(){if(!r(g.$$failure))try{l.resolve(t.invoke(o,a,_)),l.promise.then((function(e){_[n]=e,M()}),d)}catch(e){d(e)}}u(s,(function(e){v.hasOwnProperty(e)&&!i.hasOwnProperty(e)&&(c++,v[e].then((function(t){_[e]=t,--c||h()}),d))})),c||h(),v[n]=l.promise}return g}},this.resolve=function(e,t,n,i){return this.study(e)(t,n,i)}}function x(e,t,n){this.fromConfig=function(e,t,n){return r(e.template)?this.fromString(e.template,t):r(e.templateUrl)?this.fromUrl(e.templateUrl,t):r(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return o(e)?e(t):e},this.fromUrl=function(n,i){return o(n)&&(n=n(i)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then((function(e){return e.data}))},this.fromProvider=function(e,t,i){return n.invoke(e,null,i||{params:t})}}function S(e,t,r){t=c({params:{}},s(t)?t:{});var o,a,l,u,d=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,h=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,p="^",m=0,g=this.segments=[],v=r?r.params:{},_=this.params=r?r.params.$$new():new i.ParamSet,y=[];function b(t,n,r,o){if(y.push(t),v[t])return v[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(_[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return _[t]=new i.Param(t,n,r,o),_[t]}function w(e,t,n,i){var r=["",""],o=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return o;switch(n){case!1:r=["(",")"+(i?"?":"")];break;case!0:o=o.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["("+n+"|",")?"]}return o+r[0]+t+r[1]}function L(r,o){var a,s,l,u,c;return a=r[2]||r[3],c=t.params[a],l=e.substring(m,r.index),(s=o?r[4]:r[4]||("*"==r[1]?".*":null))&&(u=i.type(s)||f(i.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:l,type:u,cfg:c}}for(this.source=e;(o=d.exec(e))&&!((a=L(o,!1)).segment.indexOf("?")>=0);)l=b(a.id,a.type,a.cfg,"path"),p+=w(a.segment,l.type.pattern.source,l.squash,l.isOptional),g.push(a.segment),m=d.lastIndex;var M=(u=e.substring(m)).indexOf("?");if(M>=0){var k=this.sourceSearch=u.substring(M);if(u=u.substring(0,M),this.sourcePath=e.substring(0,m+M),k.length>0)for(m=0;o=h.exec(k);)l=b((a=L(o,!0)).id,a.type,a.cfg,"search"),m=d.lastIndex}else this.sourcePath=e,this.sourceSearch="";p+=w(u)+(!1===t.strict?"/?":"")+"$",g.push(u),this.regexp=new RegExp(p,t.caseInsensitive?"i":n),this.prefix=g[0],this.$$paramNames=y}function T(e){c(this,e)}function $(e,i){var s,u=[],d=null,h=!1;function f(e,t,n){if(!n)return!1;var i=e.invoke(t,t,{$match:n});return!r(i)||i}function p(i,r,o,l,c){var f,p=l.baseHref(),m=i.url();function g(e){if(!e||!e.defaultPrevented){f&&i.url(),f=n;var t,r=u.length;for(t=0;t<r;t++)if(s(u[t]))return;d&&s(d)}function s(e){var t=e(o,i);return!!t&&(a(t)&&i.replace().url(t),!0)}}function v(){return s=s||r.$on("$locationChangeSuccess",g)}return h||v(),{sync:function(){g()},listen:function(){return v()},update:function(e){e?m=i.url():i.url()!==m&&(i.url(m),i.replace())},push:function(e,t,r){var o=e.format(t||{});null!==o&&t&&t["#"]&&(o+="#"+t["#"]),i.url(o),f=r&&r.$$avoidResync?i.url():n,r&&r.replace&&i.replace()},href:function(n,r,o){if(!n.validates(r))return null;var a=e.html5Mode();t.isObject(a)&&(a=a.enabled),a=a&&c.history;var s=n.format(r);if(o=o||{},a||null===s||(s="#"+e.hashPrefix()+s),null!==s&&r&&r["#"]&&(s+="#"+r["#"]),s=function(e,t,n){return"/"===p?e:t?p.slice(0,-1)+e:n?p.slice(1)+e:e}(s,a,o.absolute),!o.absolute||!s)return s;var l=!a&&s?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,l,s].join("")}}}this.rule=function(e){if(!o(e))throw new Error("'rule' must be a function");return u.push(e),this},this.otherwise=function(e){if(a(e)){var t=e;e=function(){return t}}else if(!o(e))throw new Error("'rule' must be a function");return d=e,this},this.when=function(e,t){var n,r=a(t);if(a(e)&&(e=i.compile(e)),!r&&!o(t)&&!l(t))throw new Error("invalid 'handler' in when()");var s={matcher:function(e,t){return r&&(n=i.compile(t),t=["$match",function(e){return n.format(e)}]),c((function(n,i){return f(n,t,e.exec(i.path(),i.search()))}),{prefix:a(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return r&&(n=t,t=["$match",function(e){return t=e,n.replace(/\$(\$|\d{1,2})/,(function(e,n){return t["$"===n?0:Number(n)]}));var t}]),c((function(n,i){return f(n,t,e.exec(i.path()))}),{prefix:(i=e,o=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(i.source),null!=o?o[1].replace(/\\(.)/g,"$1"):"")});var i,o}},u={matcher:i.isMatcher(e),regex:e instanceof RegExp};for(var d in u)if(u[d])return this.rule(s[d](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),h=e},this.$get=p,p.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function D(e,h){var p,w,L={},k={},x="abstract",S={parent:function(e){if(r(e.parent)&&e.parent)return T(e.parent);var t=/^(.+)\.[^.]+$/.exec(e.name);return t?T(t[1]):p},data:function(e){return e.parent&&e.parent.data&&(e.data=e.self.data=f(e.parent.data,e.data)),e.data},url:function(e){var t=e.url,n={params:e.params||{}};if(a(t))return"^"==t.charAt(0)?h.compile(t.substring(1),n):(e.parent.navigable||p).url.concat(t,n);if(!t||h.isMatcher(t))return t;throw new Error("Invalid url '"+t+"' in state '"+e+"'")},navigable:function(e){return e.url?e:e.parent?e.parent.navigable:null},ownParams:function(e){var t=e.url&&e.url.params||new i.ParamSet;return u(e.params||{},(function(e,n){t[n]||(t[n]=new i.Param(n,null,e,"config"))})),t},params:function(e){var t=b(e.ownParams,e.ownParams.$$keys());return e.parent&&e.parent.params?c(e.parent.params.$$new(),t):new i.ParamSet},views:function(e){var t={};return u(r(e.views)?e.views:{"":e},(function(n,i){i.indexOf("@")<0&&(i+="@"+e.parent.name),t[i]=n})),t},path:function(e){return e.parent?e.parent.path.concat(e):[]},includes:function(e){var t=e.parent?c({},e.parent.includes):{};return t[e.name]=!0,t},$delegates:{}};function T(e,t){if(!e)return n;var i,r=a(e),o=r?e:e.name;if(0===(i=o).indexOf(".")||0===i.indexOf("^")){if(!t)throw new Error("No reference point given for path '"+o+"'");t=T(t);for(var s=o.split("."),l=0,u=s.length,c=t;l<u;l++)if(""!==s[l]||0!==l){if("^"!==s[l])break;if(!c.parent)throw new Error("Path '"+o+"' not valid for state '"+t.name+"'");c=c.parent}else c=t;s=s.slice(l).join("."),o=c.name+(c.name&&s?".":"")+s}var d=L[o];return!d||!r&&(r||d!==e&&d.self!==e)?n:d}function $(t){var n=(t=f(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}})).name;if(!a(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(L.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):a(t.parent)?t.parent:s(t.parent)&&a(t.parent.name)?t.parent.name:"";if(i&&!L[i])return function(e,t){k[e]||(k[e]=[]),k[e].push(t)}(i,t.self);for(var r in S)o(S[r])&&(t[r]=S[r](t,S.$delegates[r]));return L[n]=t,!t[x]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){w.$current.navigable==t&&_(e,n)||w.transitionTo(t,e,{inherit:!0,location:!1})}]),function(e){for(var t=k[e]||[];t.length;)$(t.shift())}(n),t}function D(e,h,k,S,$,D,C,E,A){var P=h.reject(new Error("transition superseded")),Y=h.reject(new Error("transition prevented")),O=h.reject(new Error("transition aborted")),I=h.reject(new Error("transition failed"));function j(e,n,i,r,a,s){var c=i?n:y(e.params.$$keys(),n),d={$stateParams:c};a.resolve=$.resolve(e.resolve,d,a.resolve,e);var f=[a.resolve.then((function(e){a.globals=e}))];return r&&f.push(r),h.all(f).then((function(){var n=[];return u(e.views,(function(i,r){var u=i.resolve&&i.resolve!==e.resolve?i.resolve:{};u.$template=[function(){return k.load(r,{view:i,locals:a.globals,params:c,notify:s.notify})||""}],n.push($.resolve(u,a.globals,a.resolve,e).then((function(n){if(o(i.controllerProvider)||l(i.controllerProvider)){var s=t.extend({},u,a.globals);n.$$controller=S.invoke(i.controllerProvider,null,s)}else n.$$controller=i.controller;n.$$state=e,n.$$controllerAs=i.controllerAs,a[r]=n})))})),h.all(n).then((function(){return a.globals}))})).then((function(e){return a}))}return p.locals={resolve:null,globals:{$stateParams:{}}},(w={params:{},current:p.self,$current:p,transition:null}).reload=function(e){return w.transitionTo(w.current,D,{reload:e||!0,inherit:!1,notify:!0})},w.go=function(e,t,n){return w.transitionTo(e,t,c({inherit:!0,relative:w.$current},n))},w.transitionTo=function(t,n,o){n=n||{},o=c({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var l=w.$current,u=w.params,m=l.path,g=T(t,o.relative),_=n["#"];if(!r(g)){var L={to:t,toParams:n,options:o},M=function(t,n,i,r){var o=e.$broadcast("$stateNotFound",t,n,i);if(o.defaultPrevented)return C.update(),O;if(!o.retry)return null;if(r.$retry)return C.update(),I;var a=w.transition=h.when(o.retry);return a.then((function(){return a!==w.transition?P:(t.options.$retry=!0,w.transitionTo(t.to,t.toParams,t.options))}),(function(){return O})),C.update(),a}(L,l.self,u,o);if(M)return M;if(n=L.toParams,g=T(t=L.to,(o=L.options).relative),!r(g)){if(!o.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+o.relative+"'")}}if(g[x])throw new Error("Cannot transition to abstract state '"+t+"'");if(o.inherit&&(n=v(D,n||{},w.$current,g)),!g.params.$$validates(n))return I;n=g.params.$$values(n);var k=(t=g).path,$=0,E=k[$],A=p.locals,H=[];if(o.reload){if(a(o.reload)||s(o.reload)){if(s(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var B=!0===o.reload?m[0]:T(o.reload);if(o.reload&&!B)throw new Error("No such reload state '"+(a(o.reload)?o.reload:o.reload.name)+"'");for(;E&&E===m[$]&&E!==B;)A=H[$]=E.locals,$++,E=k[$]}}else for(;E&&E===m[$]&&E.ownParams.$$equals(n,u);)A=H[$]=E.locals,$++,E=k[$];if(function(e,t,n,r,o,a){if(!a.reload&&e===n&&(o===n.locals||!1===e.self.reloadOnSearch&&function(e,t,n){var r=e.params.$$keys().filter((function(t){return"search"!=e.params[t].location})),o=b.apply({},[e.params].concat(r));return new i.ParamSet(o).$$equals(t,n)}(n,r,t)))return!0}(t,n,l,u,A,o))return _&&(n["#"]=_),w.params=n,d(w.params,D),d(y(t.params.$$keys(),D),t.locals.globals.$stateParams),o.location&&t.navigable&&t.navigable.url&&(C.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),C.update(!0)),w.transition=null,h.when(w.current);if(n=y(t.params.$$keys(),n||{}),_&&(n["#"]=_),o.notify&&e.$broadcast("$stateChangeStart",t.self,n,l.self,u,o).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,l.self,u),null==w.transition&&C.update(),Y;for(var N=h.when(A),R=$;R<k.length;R++,E=k[R])A=H[R]=f(A),N=j(E,n,E===t,N,A,o);var F=w.transition=N.then((function(){var i,r,a;if(w.transition!==F)return P;for(i=m.length-1;i>=$;i--)(a=m[i]).self.onExit&&S.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(i=$;i<k.length;i++)(r=k[i]).locals=H[i],r.self.onEnter&&S.invoke(r.self.onEnter,r.self,r.locals.globals);return w.transition!==F?P:(w.$current=t,w.current=t.self,w.params=n,d(w.params,D),w.transition=null,o.location&&t.navigable&&C.push(t.navigable.url,t.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&e.$broadcast("$stateChangeSuccess",t.self,n,l.self,u),C.update(!0),w.current)}),(function(i){return w.transition!==F?P:(w.transition=null,e.$broadcast("$stateChangeError",t.self,n,l.self,u,i).defaultPrevented||C.update(),h.reject(i))}));return F},w.is=function(e,t,i){var o=T(e,(i=c({relative:w.$current},i||{})).relative);return r(o)?w.$current===o&&(!t||_(o.params.$$values(t),D)):n},w.includes=function(e,t,i){if(i=c({relative:w.$current},i||{}),a(e)&&e.indexOf("*")>-1){if(!function(e){for(var t=e.split("."),n=w.$current.name.split("."),i=0,r=t.length;i<r;i++)"*"===t[i]&&(n[i]="*");return"**"===t[0]&&(n=n.slice(g(n,t[1]))).unshift("**"),"**"===t[t.length-1]&&(n.splice(g(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length==n.length&&n.join("")===t.join("")}(e))return!1;e=w.$current.name}var o=T(e,i.relative);return r(o)?!!r(w.$current.includes[o.name])&&(!t||_(o.params.$$values(t),D,m(t))):n},w.href=function(e,t,i){var o=T(e,(i=c({lossy:!0,inherit:!0,absolute:!1,relative:w.$current},i||{})).relative);if(!r(o))return null;i.inherit&&(t=v(D,t||{},w.$current,o));var a=o&&i.lossy?o.navigable:o;return a&&a.url!==n&&null!==a.url?C.href(a.url,y(o.params.$$keys().concat("#"),t||{}),{absolute:i.absolute}):null},w.get=function(e,t){if(0===arguments.length)return M(m(L),(function(e){return L[e].self}));var n=T(e,t||w.$current);return n&&n.self?n.self:null},w}(p=$({name:"",url:"^",views:null,abstract:!0})).navigable=null,this.decorator=function(e,t){return a(e)&&!r(t)?S[e]:o(t)&&a(e)?(S[e]&&!S.$delegates[e]&&(S.$delegates[e]=S[e]),S[e]=t,this):this},this.state=function(e,t){return s(e)?t=e:t.name=e,$(t),this},this.$get=D,D.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function C(){function e(e,t){return{load:function(e,n){var i;return(n=c({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},n)).view&&(i=t.fromConfig(n.view,n.params,n.locals)),i}}}this.$get=e,e.$inject=["$rootScope","$templateFactory"]}t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),k.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",k),x.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",x),S.prototype.concat=function(e,t){var n={caseInsensitive:i.caseInsensitive(),strict:i.strictMode(),squash:i.defaultSquashPolicy()};return new S(this.sourcePath+e+this.sourceSearch,c(n,t),this)},S.prototype.toString=function(){return this.source},S.prototype.exec=function(e,t){var n=this.regexp.exec(e);if(!n)return null;t=t||{};var i,o,a,s,l,u=this.parameters(),c=u.length,d=this.segments.length-1,h={};if(d!==n.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");function f(e){function t(e){return e.split("").reverse().join("")}var n=M(t(e).split(/-(?!\\)/),t);return M(n,(function(e){return e.replace(/\\-/g,"-")})).reverse()}for(i=0;i<d;i++){for(a=u[i],s=this.params[a],l=n[i+1],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);l&&!0===s.array&&(l=f(l)),r(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}for(;i<c;i++){for(h[a=u[i]]=this.params[a].value(t[a]),s=this.params[a],l=t[a],o=0;o<s.replace.length;o++)s.replace[o].from===l&&(l=s.replace[o].to);r(l)&&(l=s.type.decode(l)),h[a]=s.value(l)}return h},S.prototype.parameters=function(e){return r(e)?this.params[e]||null:this.$$paramNames},S.prototype.validates=function(e){return this.params.$$validates(e)},S.prototype.format=function(e){e=e||{};var t=this.segments,n=this.parameters(),i=this.params;if(!this.validates(e))return null;var r,o=!1,s=t.length-1,u=n.length,c=t[0];function d(e){return encodeURIComponent(e).replace(/-/g,(function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()}))}for(r=0;r<u;r++){var h=r<s,f=n[r],p=i[f],m=p.value(e[f]),g=p.isOptional&&p.type.equals(p.value(),m),v=!!g&&p.squash,_=p.type.encode(m);if(h){var y=t[r+1],b=r+1===s;if(!1===v)null!=_&&(l(_)?c+=M(_,d).join("-"):c+=encodeURIComponent(_)),c+=y;else if(!0===v){var w=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=y.match(w)[1]}else a(v)&&(c+=v+y);b&&!0===p.squash&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==_||g&&!1!==v)continue;if(l(_)||(_=[_]),0===_.length)continue;c+=(o?"&":"?")+f+"="+(_=M(_,encodeURIComponent).join("&"+f+"=")),o=!0}}return c},T.prototype.is=function(e,t){return!0},T.prototype.encode=function(e,t){return e},T.prototype.decode=function(e,t){return e},T.prototype.equals=function(e,t){return e==t},T.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},T.prototype.pattern=/.*/,T.prototype.toString=function(){return"{Type:"+this.name+"}"},T.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},T.prototype.$asArray=function(e,t){if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new function(e,t){function i(e,t){return function(){return e[t].apply(e,arguments)}}function o(e){return l(e)?e:r(e)?[e]:[]}function a(e){return!e}function s(e,i){return function(r){if(l(r)&&0===r.length)return r;var s=M(r=o(r),e);return!0===i?0===L(s,a).length:function(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}(s)}}var u;this.encode=s(i(e,"encode")),this.decode=s(i(e,"decode")),this.is=s(i(e,"is"),!0),this.equals=(u=i(e,"equals"),function(e,t){var n=o(e),i=o(t);if(n.length!==i.length)return!1;for(var r=0;r<n.length;r++)if(!u(n[r],i[r]))return!1;return!0}),this.pattern=e.pattern,this.$normalize=s(i(e,"$normalize")),this.name=e.name,this.$arrayMode=t}(this,e)},t.module("ui.router.util").provider("$urlMatcherFactory",(function e(){i=this;var d=!1,h=!0,p=!1;function v(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}var _,y={},b=!0,w=[],k={string:{encode:v,decode:function(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e},is:function(e){return null==e||!r(e)||"string"==typeof e},pattern:/[^/]*/},int:{encode:v,decode:function(e){return parseInt(e,10)},is:function(e){return r(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};function x(e){return o(e)||l(e)&&o(e[e.length-1])}function $(){for(;w.length;){var e=w.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(y[e.name],_.invoke(e.def))}}function D(e){c(this,e||{})}e.$$getDefaultValue=function(e){if(!x(e.value))return e.value;if(!_)throw new Error("Injectable functions cannot be called at configuration time");return _.invoke(e.value)},this.caseInsensitive=function(e){return r(e)&&(d=e),d},this.strictMode=function(e){return r(e)&&(h=e),h},this.defaultSquashPolicy=function(e){if(!r(e))return p;if(!0!==e&&!1!==e&&!a(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return p=e,e},this.compile=function(e,t){return new S(e,c({strict:h,caseInsensitive:d},t))},this.isMatcher=function(e){if(!s(e))return!1;var t=!0;return u(S.prototype,(function(n,i){o(n)&&(t=t&&r(e[i])&&o(e[i]))})),t},this.type=function(e,t,n){if(!r(t))return y[e];if(y.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return y[e]=new T(c({name:e},t)),n&&(w.push({name:e,def:n}),b||$()),this},u(k,(function(e,t){y[t]=new T(c({name:t},e))})),y=f(y,{}),this.$get=["$injector",function(e){return _=e,b=!1,$(),u(k,(function(e,t){y[t]||(y[t]=new T(e))})),this}],this.Param=function(e,i,o,u){var d=this;o=function(e){var t=s(e)?m(e):[];return-1===g(t,"value")&&-1===g(t,"type")&&-1===g(t,"squash")&&-1===g(t,"array")&&(e={value:e}),e.$$fn=x(e.value)?e.value:function(){return e.value},e}(o),i=function(n,i,r){if(n.type&&i)throw new Error("Param '"+e+"' has two type configurations.");return i||(n.type?t.isString(n.type)?y[n.type]:n.type instanceof T?n.type:new T(n.type):"config"===r?y.any:y.string)}(o,i,u);var h,f,v=(h={array:"search"===u&&"auto"},f=e.match(/\[\]$/)?{array:!0}:{},c(h,f,o).array);"string"!==(i=v?i.$asArray(v,"search"===u):i).name||v||"path"!==u||o.value!==n||(o.value="");var b=o.value!==n,w=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!r(n)||null==n)return p;if(!0===n||a(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(o,b),k=function(e,t,i,r){var o,s,u=[{from:"",to:i||t?n:""},{from:null,to:i||t?n:""}];return o=l(e.replace)?e.replace:[],a(r)&&o.push({from:r,to:n}),s=M(o,(function(e){return e.from})),L(u,(function(e){return-1===g(s,e.from)})).concat(o)}(o,v,b,w);c(this,{id:e,type:i,location:u,array:v,squash:w,replace:k,isOptional:b,value:function(e){return e=function(e){var t,n=M(L(d.replace,(t=e,function(e){return e.from===t})),(function(e){return e.to}));return n.length?n[0]:e}(e),r(e)?d.type.$normalize(e):function(){if(!_)throw new Error("Injectable functions cannot be called at configuration time");var e=_.invoke(o.$$fn);if(null!==e&&e!==n&&!d.type.is(e))throw new Error("Default value ("+e+") for parameter '"+d.id+"' is not an instance of Type ("+d.type.name+")");return e}()},dynamic:n,config:o,toString:function(){return"{Param:"+e+" "+i+" squash: '"+w+"' optional: "+b+"}"}})},D.prototype={$$new:function(){return f(this,c(new D,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,i=m(D.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),u(t,(function(t){u(m(t),(function(t){-1===g(e,t)&&-1===g(i,t)&&e.push(t)}))})),e},$$values:function(e){var t={},n=this;return u(n.$$keys(),(function(i){t[i]=n[i].value(e&&e[i])})),t},$$equals:function(e,t){var n=!0,i=this;return u(i.$$keys(),(function(r){var o=e&&e[r],a=t&&t[r];i[r].type.equals(o,a)||(n=!1)})),n},$$validates:function(e){var i,r,o,a,s,l=this.$$keys();for(i=0;i<l.length&&(r=this[l[i]],(o=e[l[i]])!==n&&null!==o||!r.isOptional);i++){if(a=r.type.$normalize(o),!r.type.is(a))return!1;if(s=r.type.encode(a),t.isString(s)&&!r.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=D})),t.module("ui.router.util").run(["$urlMatcherFactory",function(e){}]),$.$inject=["$locationProvider","$urlMatcherFactoryProvider"],t.module("ui.router.router").provider("$urlRouter",$),D.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],t.module("ui.router.state").factory("$stateParams",(function(){return{}})).provider("$state",D),C.$inject=[],t.module("ui.router.state").provider("$view",C),t.module("ui.router.state").provider("$uiViewScroll",(function(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n((function(){e[0].scrollIntoView()}),0,!1)}}]}));var E=t.version.major,A=t.version.minor;function P(e,n,i,r){var o=n.has?function(e){return n.has(e)?n.get(e):null}:function(e){try{return n.get(e)}catch(e){return null}},a=o("$animator"),s=o("$animate");return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,o,l){return function(n,o,u){var c,d,h,f,p=u.onload||"",m=u.autoscroll,g=function(e,n){var i={enter:function(e,t,n){t.after(e),n()},leave:function(e,t){e.remove(),t()}};if(e.noanimation)return i;function r(e){return 1===E&&A>=4?!!s.enabled(e):1===E&&A>=2?!!s.enabled():!!a}if(s)return{enter:function(e,n,o){r(e)?t.version.minor>2?s.enter(e,null,n).then(o):s.enter(e,null,n,o):i.enter(e,n,o)},leave:function(e,n){r(e)?t.version.minor>2?s.leave(e).then(n):s.leave(e,n):i.leave(e,n)}};if(a){var o=a&&a(n,e);return{enter:function(e,t,n){o.enter(e,null,t),n()},leave:function(e,t){o.leave(e),t()}}}return i}(u,n);function v(a){var s,v=O(n,u,o,r),_=v&&e.$current&&e.$current.locals[v];if((a||_!==f)&&!n._willBeDestroyed){s=n.$new(),f=e.$current.locals[v],s.$emit("$viewContentLoading",v);var y=l(s,(function(e){g.enter(e,o,(function(){h&&h.$emit("$viewContentAnimationEnded"),(t.isDefined(m)&&!m||n.$eval(m))&&i(e)})),function(){var e=c,t=h;function n(){e&&e.remove(),t&&t.$destroy()}t&&(t._willBeDestroyed=!0),d?(g.leave(d,(function(){n(),c=null})),c=d):(n(),c=null),d=null,h=null}()}));d=y,(h=s).$emit("$viewContentLoaded",v),h.$eval(p)}}n.$on("$stateChangeSuccess",(function(){v(!1)})),v(!0)}}}}function Y(e,t,n,i){return{restrict:"ECA",priority:-400,compile:function(r){var o=r.html();return function(r,a,s){var l=n.$current,u=O(r,s,a,i),c=l&&l.locals[u];if(c){a.data("$uiView",{name:u,state:c.$$state}),a.html(c.$template?c.$template:o);var d=e(a.contents());if(c.$$controller){c.$scope=r,c.$element=a;var h=t(c.$$controller,c);c.$$controllerAs&&(r[c.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}d(r)}}}}}function O(e,t,n,i){var r=i(t.uiView||t.name||"")(e),o=n.inheritedData("$uiView");return r.indexOf("@")>=0?r:r+"@"+(o?o.state.name:"")}function I(e,t){var n,i=e.match(/^\s*({[^}]*})\s*$/);if(i&&(e=t+"("+i[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function j(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function H(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function B(e,t,n,i,r){return function(o){var a=o.which||o.button,s=r();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var l=n((function(){t.go(s.state,s.params,s.options)}));o.preventDefault();var u=i.isAnchor&&!s.href?1:0;o.preventDefault=function(){u--<=0&&n.cancel(l)}}}}function N(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(i,r,o,a){var s=I(o.uiSref,e.current.name),l={state:s.state,href:null,params:null},u=H(r),d=a[1]||a[0];l.options=c(function(e,t){return{relative:j(e)||t.$current,inherit:!0}}(r,e),o.uiSrefOpts?i.$eval(o.uiSrefOpts):{});var h=function(n){n&&(l.params=t.copy(n)),l.href=e.href(s.state,l.params,l.options),d&&d.$$addStateInfo(s.state,l.params),null!==l.href&&o.$set(u.attr,l.href)};s.paramExpr&&(i.$watch(s.paramExpr,(function(e){e!==l.params&&h(e)}),!0),l.params=t.copy(i.$eval(s.paramExpr))),h(),u.clickable&&r.bind("click",B(r,e,n,u,(function(){return l})))}}}function R(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,r,o){var a=H(i),s=o[1]||o[0],l="["+[r.uiState,r.uiStateParams||null,r.uiStateOpts||null].map((function(e){return e||"null"})).join(", ")+"]",u={state:null,params:null,options:null,href:null};function c(t){u.state=t[0],u.params=t[1],u.options=t[2],u.href=e.href(u.state,u.params,u.options),s&&s.$$addStateInfo(u.state,u.params),u.href&&r.$set(a.attr,u.href)}n.$watch(l,c,!0),c(n.$eval(l)),a.clickable&&i.bind("click",B(i,e,t,a,(function(){return u})))}}}function F(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,i,r,o){var l,c,d=[],f={};l=n(r.uiSrefActiveEq||"",!1)(t);try{c=t.$eval(r.uiSrefActive)}catch(e){}function p(n,r,o){var l=e.get(n,j(i)),u=function(e,n){if(!a(e))throw new Error("state should be a string");return s(n)?e+h(n):(n=t.$eval(n),s(n)?e+h(n):e)}(n,r);d.push({state:l||{name:n},params:r,hash:u}),f[u]=o}function m(){for(var t=0;t<d.length;t++)n=d[t].state,r=d[t].params,e.includes(n.name,r)?g(i,f[d[t].hash]):v(i,f[d[t].hash]),_(d[t].state,d[t].params)?g(i,l):v(i,l);var n,r}function g(e,t){o((function(){e.addClass(t)}))}function v(e,t){e.removeClass(t)}function _(t,n){return e.is(t.name,n)}c=c||n(r.uiSrefActive||"",!1)(t),s(c)&&u(c,(function(n,i){if(a(n)){var r=I(n,e.current.name);p(r.state,t.$eval(r.paramExpr),i)}})),this.$$addStateInfo=function(e,t){s(c)&&d.length>0||(p(e,t,c),m())},t.$on("$stateChangeSuccess",m),m()}]}}function z(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function V(e){var t=function(t,n,i){return e.includes(t,n,i)};return t.$stateful=!0,t}P.$inject=["$state","$injector","$uiViewScroll","$interpolate"],Y.$inject=["$compile","$controller","$state","$interpolate"],t.module("ui.router.state").directive("uiView",P),t.module("ui.router.state").directive("uiView",Y),N.$inject=["$state","$timeout"],R.$inject=["$state","$timeout"],F.$inject=["$state","$stateParams","$interpolate"],t.module("ui.router.state").directive("uiSref",N).directive("uiSrefActive",F).directive("uiSrefActiveEq",F).directive("uiState",R),z.$inject=["$state"],V.$inject=["$state"],t.module("ui.router.state").filter("isState",z).filter("includedByState",V)}(window,window.angular),
+/*!
+ * Copyright 2015 Drifty Co.
+ * http://drifty.com/
+ *
+ * Ionic, v1.3.5
+ * A powerful HTML5 mobile app framework.
+ * http://ionicframework.com/
+ *
+ * By @maxlynch, @benjsperry, @adamdbradley <3
+ *
+ * Licensed under the MIT license. Please see LICENSE for more information.
+ *
+ */
+function(){var e=angular.module("ionic",["ngAnimate","ngSanitize","ui.router","ngIOS9UIWebViewPatch"]),t=angular.extend,n=angular.forEach,i=angular.isDefined,r=angular.isNumber,o=angular.isString,a=angular.element,s=angular.noop;e.factory("$ionicActionSheet",["$rootScope","$compile","$animate","$timeout","$ionicTemplateLoader","$ionicPlatform","$ionicBody","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c){return{show:function(o){var d=e.$new(!0);function h(e){e&&/icon/.test(e)&&(d.$actionSheetHasIcon=!0)}t(d,{cancel:s,destructiveButtonClicked:s,buttonClicked:s,$deregisterBackButton:s,buttons:[],cancelOnStateChange:!0},o||{});for(var f=0;f<d.buttons.length;f++)h(d.buttons[f].text);h(d.cancelText),h(d.destructiveText);var p=d.element=n('<ion-action-sheet ng-class="cssClass" buttons="buttons"></ion-action-sheet>')(d),m=a(p[0].querySelector(".action-sheet-wrapper")),g=d.cancelOnStateChange?e.$on("$stateChangeSuccess",(function(){d.cancel()})):s;return d.removeSheet=function(e){d.removed||(d.removed=!0,m.removeClass("action-sheet-up"),r((function(){u.removeClass("action-sheet-open")}),400),d.$deregisterBackButton(),g(),i.removeClass(p,"active").then((function(){d.$destroy(),p.remove(),d.cancel.$scope=m=null,(e||s)(o.buttons)})))},d.showSheet=function(e){d.removed||(u.append(p).addClass("action-sheet-open"),i.addClass(p,"active").then((function(){d.removed||(e||s)()})),r((function(){d.removed||m.addClass("action-sheet-up")}),20,!1))},d.$deregisterBackButton=l.registerBackButtonAction((function(){r(d.cancel)}),c.actionSheet),d.cancel=function(){d.removeSheet(o.cancel)},d.buttonClicked=function(e){!0===o.buttonClicked(e,o.buttons[e])&&d.removeSheet()},d.destructiveButtonClicked=function(){!0===o.destructiveButtonClicked()&&d.removeSheet()},d.showSheet(),d.cancel.$scope=d,d.cancel}}}]),a.prototype.addClass=function(e){var t,n,i,r,o,a;if(e&&"ng-scope"!=e&&"ng-isolate-scope"!=e)for(t=0;t<this.length;t++)if((r=this[t]).setAttribute)if(e.indexOf(" ")<0&&r.classList.add)r.classList.add(e);else{for(a=(" "+(r.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=e.split(" "),n=0;n<o.length;n++)i=o[n].trim(),-1===a.indexOf(" "+i+" ")&&(a+=i+" ");r.setAttribute("class",a.trim())}return this},a.prototype.removeClass=function(e){var t,n,i,r,o;if(e)for(t=0;t<this.length;t++)if((o=this[t]).getAttribute)if(e.indexOf(" ")<0&&o.classList.remove)o.classList.remove(e);else for(i=e.split(" "),n=0;n<i.length;n++)r=i[n],o.setAttribute("class",(" "+(o.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+r.trim()+" "," ").trim());return this},e.factory("$ionicBackdrop",["$document","$timeout","$$rAF","$rootScope",function(e,t,n,i){var r=a('<div class="backdrop">'),o=0;return e[0].body.appendChild(r[0]),{retain:function(){1==++o&&(r.addClass("visible"),i.$broadcast("backdrop.shown"),n((function(){o>=1&&r.addClass("active")})))},release:function(){1===o&&(r.removeClass("active"),i.$broadcast("backdrop.hidden"),t((function(){0===o&&r.removeClass("visible")}),400,!1)),o=Math.max(0,o-1)},getElement:function(){return r},_element:r}}]),e.factory("$ionicBind",["$parse","$interpolate",function(e,t){var i=/^\s*([@=&])(\??)\s*(\w*)\s*$/;return function(r,o,a){n(a||{},(function(n,a){var s,l,u=n.match(i)||[],c=u[3]||a;switch(u[1]){case"@":if(!o[c])return;o.$observe(c,(function(e){r[a]=e})),o[c]&&(r[a]=t(o[c])(r));break;case"=":if(!o[c])return;l=r.$watch(o[c],(function(e){r[a]=e})),r.$on("$destroy",l);break;case"&":if(o[c]&&o[c].match(RegExp(a+"(.*?)")))throw new Error('& expression binding "'+a+'" looks like it will recursively call "'+o[c]+'" and cause a stack overflow! Please choose a different scopeName.');s=e(o[c]),r[a]=function(e){return s(r,e)}}}))}}]),e.factory("$ionicBody",["$document",function(e){return{addClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.add(arguments[t]);return this},removeClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.remove(arguments[t]);return this},enableClass:function(e){var t=Array.prototype.slice.call(arguments).slice(1);return e?this.addClass.apply(this,t):this.removeClass.apply(this,t),this},append:function(t){return e[0].body.appendChild(t.length?t[0]:t),this},get:function(){return e[0].body}}}]),e.factory("$ionicClickBlock",["$document","$ionicBody","$timeout",function(e,t,n){var i,r,o;function a(e){e.preventDefault(),e.stopPropagation()}return{show:function(s){o=!0,n.cancel(r),r=n(this.hide,s||310,!1),o&&(i?i.classList.remove("click-block-hide"):((i=e[0].createElement("div")).className="click-block",t.append(i),i.addEventListener("touchstart",a),i.addEventListener("mousedown",a)),o=!1)},hide:function(){o=!1,n.cancel(r),i&&i.classList.add("click-block-hide")}}}]),e.factory("$ionicGesture",[function(){return{on:function(e,t,n,i){return window.ionic.onGesture(e,t,n[0],i)},off:function(e,t,n){return window.ionic.offGesture(e,t,n)}}}]),e.factory("$ionicHistory",["$rootScope","$state","$location","$window","$timeout","$ionicViewSwitcher","$ionicNavViewDelegate",function(e,n,r,o,a,s,l){var u,c,d,h,f,p=0,m={histories:{root:{historyId:"root",parentHistoryId:null,stack:[],cursor:-1}},views:{},backView:null,forwardView:null,currentView:null},g=function(){};function v(e){return e?m.views[e]:null}function _(e){return e?v(e.backViewId):null}function y(e){return e?m.histories[e]:null}function b(t){for(var n=t;n;){if(n.hasOwnProperty("$historyId"))return{historyId:n.$historyId,scope:n};n=n.$parent}return{historyId:"root",scope:e}}function w(e){var t;m.currentView=v(e),m.backView=_(m.currentView),m.forwardView=(t=m.currentView)?v(t.forwardViewId):null}function L(){var e;if(n&&n.params)for(var t in n.params)n.params.hasOwnProperty(t)&&((e=e||{})[t]=n.params[t]);return e}return g.prototype.initialize=function(e){if(e){for(var t in e)this[t]=e[t];return this}return null},g.prototype.go=function(){if(this.stateName)return n.go(this.stateName,this.stateParams);if(this.url&&this.url!==r.url()){if(m.backView===this)return o.history.go(-1);if(m.forwardView===this)return o.history.go(1);r.url(this.url)}return null},g.prototype.destroy=function(){this.scope&&(this.scope.$destroy&&this.scope.$destroy(),this.scope=null)},{register:function(e,t){var i,o,l,g,M=function(){var e;if(n&&n.current&&n.current.name){if(e=n.current.name,n.params)for(var t in n.params)n.params.hasOwnProperty(t)&&n.params[t]&&(e+="_"+t+"="+n.params[t]);return e}return ionic.Utils.nextUid()}(),x=(g=b(e),m.histories[g.historyId]||(m.histories[g.historyId]={historyId:g.historyId,parentHistoryId:b(g.scope.$parent).historyId,stack:[],cursor:-1}),y(g.historyId)),S=m.currentView,T=m.backView,$=m.forwardView,D=null,C=null,E="none",A=x.historyId,P=r.url();if(u!==M&&(u=M,p++),f)D=f.viewId,C=f.action,E=f.direction,f=null;else if(T&&T.stateId===M)D=T.viewId,A=T.historyId,C="moveBack",T.historyId===S.historyId?E="back":S&&(E="exit",(i=y(T.historyId))&&i.parentHistoryId===S.historyId?E="enter":(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId&&(E="swap"));else if($&&$.stateId===M)D=$.viewId,A=$.historyId,C="moveForward",$.historyId===S.historyId?E="forward":S&&(E="exit",S.historyId===x.parentHistoryId?E="enter":(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId&&(E="swap")),i=b(e),$.historyId&&i.scope&&(i.scope.$historyId=$.historyId,A=$.historyId);else if(S&&S.historyId!==A&&x.cursor>-1&&x.stack.length>0&&x.cursor<x.stack.length&&x.stack[x.cursor].stateId===M){var Y=x.stack[x.cursor];D=Y.viewId,A=Y.historyId,C="moveBack",E="swap",(i=y(S.historyId))&&i.parentHistoryId===A?E="exit":(i=y(A))&&i.parentHistoryId===S.historyId&&(E="enter"),(i=v(Y.backViewId))&&Y.historyId!==i.historyId&&(Object.keys(m.views).forEach((function(e){var t=m.views[e];t.backViewId===Y.viewId&&t.historyId!==Y.historyId&&(t.backViewId=null)})),x.stack[x.cursor].backViewId=S.viewId)}else{if(l=s.createViewEle(t),this.isAbstractEle(l,t))return{action:"abstractView",direction:"none",ele:l};if(D=ionic.Utils.nextUid(),S){if(S.forwardViewId=D,C="newView",$&&S.stateId!==$.stateId&&S.historyId===$.historyId&&(i=y($.historyId))){for(o=i.stack.length-1;o>=$.index;o--){var O=i.stack[o];O&&O.destroy&&O.destroy(),i.stack.splice(o)}A=$.historyId}x.historyId===S.historyId?E="forward":S.historyId!==x.historyId&&(E="enter",(i=y(S.historyId))&&i.parentHistoryId===x.parentHistoryId?E="swap":(i=y(i.parentHistoryId))&&i.historyId===x.historyId&&(E="exit"))}else C="initialView";p<2&&(E="none"),m.views[D]=this.createView({viewId:D,index:x.stack.length,historyId:x.historyId,backViewId:S&&S.viewId?S.viewId:null,forwardViewId:null,stateId:M,stateName:this.currentStateName(),stateParams:L(),url:P,canSwipeBack:k(l,t)}),x.stack.push(m.views[D])}if(d&&d(),a.cancel(h),c){if(c.disableAnimate&&(E="none"),c.disableBack&&(m.views[D].backViewId=null),c.historyRoot){for(o=0;o<x.stack.length;o++)x.stack[o].viewId===D?(x.stack[o].index=0,x.stack[o].backViewId=x.stack[o].forwardViewId=null):delete m.views[x.stack[o].viewId];x.stack=[m.views[D]]}c=null}if(w(D),m.backView&&A==m.backView.historyId&&M==m.backView.stateId&&P==m.backView.url)for(o=0;o<x.stack.length;o++)if(x.stack[o].viewId==D){C="dupNav",E="none",o>0&&(x.stack[o-1].forwardViewId=null),m.forwardView=null,m.currentView.index=m.backView.index,m.currentView.backViewId=m.backView.backViewId,m.backView=_(m.backView),x.stack.splice(o,1);break}return x.cursor=m.currentView.index,{viewId:D,action:C,direction:E,historyId:A,enableBack:this.enabledBack(m.currentView),isHistoryRoot:0===m.currentView.index,ele:l}},registerHistory:function(e){e.$historyId=ionic.Utils.nextUid()},createView:function(e){return(new g).initialize(e)},getViewById:v,viewHistory:function(){return m},currentView:function(e){return arguments.length&&(m.currentView=e),m.currentView},currentHistoryId:function(){return m.currentView?m.currentView.historyId:null},currentTitle:function(e){if(m.currentView)return arguments.length&&(m.currentView.title=e),m.currentView.title},backView:function(e){return arguments.length&&(m.backView=e),m.backView},backTitle:function(e){var t=e&&v(e.backViewId)||m.backView;return t&&t.title},forwardView:function(e){return arguments.length&&(m.forwardView=e),m.forwardView},currentStateName:function(){return n&&n.current?n.current.name:null},isCurrentStateNavView:function(e){return!!(n&&n.current&&n.current.views&&n.current.views[e])},goToHistoryRoot:function(e){if(e){var t=y(e);if(t&&t.stack.length){if(m.currentView&&m.currentView.viewId===t.stack[0].viewId)return;f={viewId:t.stack[0].viewId,action:"moveBack",direction:"back"},t.stack[0].go()}}},goBack:function(e){if(i(e)&&-1!==e){if(e>-1)return;var t=m.histories[this.currentHistoryId()],n=t.cursor+e+1;n<1&&(n=1),t.cursor=n,w(t.stack[n].viewId);for(var r=n-1,o=[],s=v(t.stack[r].forwardViewId);s&&(o.push(s.stateId||s.viewId),!(++r>=t.stack.length));)s=v(t.stack[r].forwardViewId);var l=this;o.length&&a((function(){l.clearCache(o)}),300)}m.backView&&m.backView.go()},removeBackView:function(){var e=m.histories[this.currentHistoryId()],t=e.cursor,n=e.stack[t],i=e.stack[t-1],r=e.stack[t-2];i&&r&&(e.stack.splice(t-1,1),this.clearCache([i.viewId]),n.backViewId=r.viewId,n.index=n.index-1,r.forwardViewId=n.viewId,m.backView=r,e.currentCursor+=-1)},enabledBack:function(e){var t=_(e);return!(!t||t.historyId!==e.historyId)},clearHistory:function(){var e=m.histories,t=m.currentView;if(e)for(var n in e)e[n].stack&&(e[n].stack=[],e[n].cursor=-1),t&&t.historyId===n?(t.backViewId=t.forwardViewId=null,e[n].stack.push(t)):e[n].destroy&&e[n].destroy();for(var i in m.views)i!==t.viewId&&delete m.views[i];t&&w(t.viewId)},clearCache:function(e){return a((function(){l._instances.forEach((function(t){t.clearCache(e)}))}))},nextViewOptions:function(n){return d&&d(),arguments.length&&(a.cancel(h),null===n?c=n:(t(c=c||{},n),c.expire&&(d=e.$on("$stateChangeSuccess",(function(){h=a((function(){c=null}),c.expire)}))))),c},isAbstractEle:function(e,t){return!!(t&&t.$$state&&t.$$state.self.abstract)||!(!e||!M(e)&&!M(e.children()))},isActiveScope:function(e){if(!e)return!1;for(var t,n=e,i=this.currentHistoryId();n;){if(n.$$disconnected)return!1;if(!t&&n.hasOwnProperty("$historyId")&&(t=!0),i){if(n.hasOwnProperty("$historyId")&&i==n.$historyId)return!0;if(n.hasOwnProperty("$activeHistoryId")&&i==n.$activeHistoryId){if(n.hasOwnProperty("$historyId"))return!0;if(!t)return!0}}t&&n.hasOwnProperty("$activeHistoryId")&&(t=!1),n=n.$parent}return!i||"root"==i}};function M(e){return e&&e.length&&/ion-side-menus|ion-tabs/i.test(e[0].tagName)}function k(e,t){if(t&&t.$$state&&!1===t.$$state.self.canSwipeBack)return!1;if(e&&"false"===e.attr("can-swipe-back"))return!1;var n=e.find("ion-view");return!n||"false"!==n.attr("can-swipe-back")}}]).run(["$rootScope","$state","$location","$document","$ionicPlatform","$ionicHistory","IONIC_BACK_PRIORITY",function(e,t,n,i,r,o,a){e.$on("$ionicView.beforeEnter",(function(){ionic.keyboard&&ionic.keyboard.hide&&ionic.keyboard.hide()})),e.$on("$ionicHistory.change",(function(e,i){if(!i)return null;var r=o.viewHistory(),a=i.historyId?r.histories[i.historyId]:null;if(a&&a.cursor>-1&&a.cursor<a.stack.length)return a.stack[a.cursor].go(i);!i.url&&i.uiSref&&(i.url=t.href(i.uiSref)),i.url&&(0===i.url.indexOf("#")&&(i.url=i.url.replace("#","")),i.url!==n.url()&&n.url(i.url))})),e.$ionicGoBack=function(e){o.goBack(e)},e.$on("$ionicView.afterEnter",(function(e,t){t&&t.title&&(i[0].title=t.title)})),r.registerBackButtonAction((function(e){var t=o.backView();return t?t.go():ionic.Platform.exitApp(),e.preventDefault(),!1}),a.view)}]),e.provider("$ionicConfig",(function(){var e=this;e.platform={};var t="platform",r={views:{maxCache:t,forwardCache:t,transition:t,swipeBackEnabled:t,swipeBackHitWidth:t},navBar:{alignTitle:t,positionPrimaryButtons:t,positionSecondaryButtons:t,transition:t},backButton:{icon:t,text:t,previousTitleText:t},form:{checkbox:t,toggle:t},scrolling:{jsScrolling:t},spinner:{icon:t},tabs:{style:t,position:t},templates:{maxPrefetch:t},platform:{}};function o(n,o){r.platform[n]=o,e.platform[n]={},function e(n,r){for(var o in n)o!=t&&n.hasOwnProperty(o)&&(angular.isObject(n[o])?(i(r[o])||(r[o]={}),e(n[o],r[o])):i(r[o])||(r[o]=null))}(r,r.platform[n]),a(r.platform[n],e.platform[n],"")}function a(e,i,o){n(e,(function(n,l){angular.isObject(e[l])?(i[l]={},a(e[l],i[l],o+"."+l)):i[l]=function(n){if(arguments.length)return e[l]=n,i;if(e[l]==t){var a=s(r.platform,ionic.Platform.platform()+o+"."+l);return a||!1===a?a:s(r.platform,"default"+o+"."+l)}return e[l]}}))}function s(e,t){t=t.split(".");for(var n=0;n<t.length;n++){if(!e||!i(e[t[n]]))return null;e=e[t[n]]}return e}a(r,e,""),o("default",{views:{maxCache:10,forwardCache:!1,transition:"ios",swipeBackEnabled:!0,swipeBackHitWidth:45},navBar:{alignTitle:"center",positionPrimaryButtons:"left",positionSecondaryButtons:"right",transition:"view"},backButton:{icon:"ion-ios-arrow-back",text:"Back",previousTitleText:!0},form:{checkbox:"circle",toggle:"large"},scrolling:{jsScrolling:!0},spinner:{icon:"ios"},tabs:{style:"standard",position:"bottom"},templates:{maxPrefetch:30}}),o("ios",{}),o("android",{views:{transition:"android",swipeBackEnabled:!1},navBar:{alignTitle:"left",positionPrimaryButtons:"right",positionSecondaryButtons:"right"},backButton:{icon:"ion-android-arrow-back",text:!1,previousTitleText:!1},form:{checkbox:"square",toggle:"small"},spinner:{icon:"android"},tabs:{style:"striped",position:"top"},scrolling:{jsScrolling:!1}}),o("windowsphone",{spinner:{icon:"android"}}),e.transitions={views:{},navBar:{}},e.transitions.views.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,r.opacity=t,i>-1&&(r.boxShadow="0 0 10px rgba(0,0,0,"+(o.shouldAnimate?.45*i:.3)+")"),r[ionic.CSS.TRANSFORM]="translate3d("+n+"%,0,0)",ionic.DomUtil.cachedStyles(e,r)}var o={run:function(i){"forward"==n?(r(e,1,99*(1-i),1-i),r(t,1-.1*i,-33*i,-1)):"back"==n?(r(e,1-.1*(1-i),-33*(1-i),-1),r(t,1,100*i,1-i)):(r(e,1,0,-1),r(t,0,0,-1))},shouldAnimate:i&&("forward"==n||"back"==n)};return o},e.transitions.navBar.ios=function(e,t,n,i){function r(e,t,n,i){var r={};r[ionic.CSS.TRANSITION_DURATION]=s.shouldAnimate?"":"0ms",r.opacity=1===t?"":t,e.setCss("buttons-left",r),e.setCss("buttons-right",r),e.setCss("back-button",r),r[ionic.CSS.TRANSFORM]="translate3d("+i+"px,0,0)",e.setCss("back-text",r),r[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e.setCss("title",r)}function o(e,t,n){if(e&&t){var i=(e.titleTextX()+e.titleWidth())*(1-n),o=t&&(t.titleTextX()-e.backButtonTextLeft())*(1-n)||0;r(e,n,i,o)}}function a(e,t,n){if(e&&t){var i=(-(e.titleTextX()-t.backButtonTextLeft())-e.titleLeftRight())*n;r(e,1-n,i,0)}}var s={run:function(n){var i=e.controller(),r=t&&t.controller();"back"==s.direction?(a(i,r,1-n),o(r,i,1-n)):(o(i,r,n),a(r,i,n))},direction:n,shouldAnimate:i&&("forward"==n||"back"==n)};return s},e.transitions.views.android=function(e,t,n,i){function r(e,t,n){var i={};i[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,i[ionic.CSS.TRANSFORM]="translate3d("+t+"%,0,0)",i.opacity=n,ionic.DomUtil.cachedStyles(e,i)}var o={run:function(i){"forward"==n?(r(e,99*(1-i),1),r(t,-100*i,1)):"back"==n?(r(e,-100*(1-i),1),r(t,100*i,1)):(r(e,0,1),r(t,0,0))},shouldAnimate:i=i&&("forward"==n||"back"==n)};return o},e.transitions.navBar.android=function(e,t,n,i){function r(e,t){if(e){var n={};n.opacity=1===t?"":t,e.setCss("buttons-left",n),e.setCss("buttons-right",n),e.setCss("back-button",n),e.setCss("back-text",n),e.setCss("title",n)}}return{run:function(n){r(e.controller(),n),r(t&&t.controller(),1-n)},shouldAnimate:i&&("forward"==n||"back"==n)}},e.transitions.views.none=function(t,n){return{run:function(i){e.transitions.views.android(t,n,!1,!1).run(i)},shouldAnimate:!1}},e.transitions.navBar.none=function(t,n){return{run:function(i){e.transitions.navBar.ios(t,n,!1,!1).run(i),e.transitions.navBar.android(t,n,!1,!1).run(i)},shouldAnimate:!1}},e.setPlatformConfig=o,e.$get=function(){return e}})).config(["$compileProvider",function(e){e.aHrefSanitizationWhitelist(/^\s*(https?|sms|tel|geo|ftp|mailto|file|ghttps?|ms-appx-web|ms-appx|x-wmapp0):/),e.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appx-web|x-wmapp0):|data:image\//)}]);var l='<div class="loading-container"><div class="loading"></div></div>';e.constant("$ionicLoadingConfig",{template:"<ion-spinner></ion-spinner>"}).factory("$ionicLoading",["$ionicLoadingConfig","$ionicBody","$ionicTemplateLoader","$ionicBackdrop","$timeout","$q","$log","$compile","$ionicPlatform","$rootScope","IONIC_BACK_PRIORITY",function(e,n,i,r,o,a,u,c,d,h,f){var p,m=s,g=s,v=s,_=a.when();return{show:function(n){var i=(n=t({},e||{},n||{})).delay||n.showDelay||0;return g(),v(),n.hideOnStateChange&&(g=h.$on("$stateChangeSuccess",b),v=h.$on("$stateChangeError",b)),o.cancel(_),(_=o(s,i)).then(y).then((function(e){return e.show(n)}))},hide:b,_getLoader:y};function y(){return p||(p=i.compile({template:l,appendTo:n.get()}).then((function(e){return e.show=function(t){var l=t.templateUrl?i.load(t.templateUrl):a.when(t.template||t.content||"");e.scope=t.scope||e.scope,e.isShown||(e.hasBackdrop=!t.noBackdrop&&!1!==t.showBackdrop,e.hasBackdrop&&(r.retain(),r.getElement().addClass("backdrop-loading"))),t.duration&&(o.cancel(e.durationTimeout),e.durationTimeout=o(angular.bind(e,e.hide),+t.duration)),m(),m=d.registerBackButtonAction(s,f.loading),l.then((function(t){if(t){var i=e.element.children();i.html(t),c(i.contents())(e.scope)}e.isShown&&(e.element.addClass("visible"),ionic.requestAnimationFrame((function(){e.isShown&&(e.element.addClass("active"),n.addClass("loading-active"))})))})),e.isShown=!0},e.hide=function(){m(),e.isShown&&(e.hasBackdrop&&(r.release(),r.getElement().removeClass("backdrop-loading")),e.element.removeClass("active"),n.removeClass("loading-active"),e.element.removeClass("visible"),ionic.requestAnimationFrame((function(){!e.isShown&&e.element.removeClass("visible")}))),o.cancel(e.durationTimeout),e.isShown=!1,e.element.children().html("")},e}))),p}function b(){return g(),v(),o.cancel(_),y().then((function(e){return e.hide()}))}}]),e.factory("$ionicModal",["$rootScope","$ionicBody","$compile","$timeout","$ionicPlatform","$ionicTemplateLoader","$$q","$log","$ionicClickBlock","$window","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c,d,h,f){var p=ionic.views.Modal.inherit({initialize:function(e){ionic.views.Modal.prototype.initialize.call(this,e),this.animation=e.animation||"slide-in-up"},show:function(e){var t=this;if(t.scope.$$destroyed)return c.error("Cannot call "+t.viewType+".show() after remove(). Please create a new "+t.viewType+" instance."),u.when();d.show(600),v.add(t);var i=a(t.modalEl);t.el.classList.remove("hide"),r((function(){t._isShown&&n.addClass(t.viewType+"-open")}),400,!1),t.el.parentElement||(i.addClass(t.animation),n.append(t.el));var l=i.data("$$ionicScrollController");return l&&l.resize(),e&&t.positionView&&(t.positionView(e,i),t._onWindowResize=function(){t._isShown&&t.positionView(e,i)},ionic.on("resize",t._onWindowResize,window)),i.addClass("ng-enter active").removeClass("ng-leave ng-leave-active"),t._isShown=!0,t._deregisterBackButton=o.registerBackButtonAction(t.hardwareBackButtonClose?angular.bind(t,t.hide):s,f.modal),ionic.views.Modal.prototype.show.call(t),r((function(){t._isShown&&(i.addClass("ng-enter-active"),ionic.trigger("resize"),t.scope.$parent&&t.scope.$parent.$broadcast(t.viewType+".shown",t),t.el.classList.add("active"),t.scope.$broadcast("$ionicHeader.align"),t.scope.$broadcast("$ionicFooter.align"),t.scope.$broadcast("$ionic.modalPresented"))}),20),r((function(){t._isShown&&(t.$el.on("touchmove",(function(e){ionic.DomUtil.getParentOrSelfWithClass(e.target,"scroll")||e.preventDefault()})),t.$el.on("click",(function(e){t.backdropClickToClose&&e.target===t.el&&v.isHighest(t)&&t.hide()})))}),400)},hide:function(){var e=this,t=a(e.modalEl);return d.show(600),v.remove(e),e.el.classList.remove("active"),t.addClass("ng-leave"),r((function(){e._isShown||(t.addClass("ng-leave-active").removeClass("ng-enter ng-enter-active active"),e.scope.$broadcast("$ionic.modalRemoved"))}),20,!1),e.$el.off("click"),e._isShown=!1,e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".hidden",e),e._deregisterBackButton&&e._deregisterBackButton(),ionic.views.Modal.prototype.hide.call(e),e.positionView&&ionic.off("resize",e._onWindowResize,window),r((function(){g.length||n.removeClass(e.viewType+"-open"),e.el.classList.add("hide")}),e.hideDelay||320)},remove:function(){var e,t,n=this;return n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".removed",n),n._isShown?t=n.hide():((e=u.defer()).resolve(),t=e.promise),t.then((function(){n.scope.$destroy(),n.$el.remove()}))},isShown:function(){return!!this._isShown}}),m=function(n,r){var o=r.scope&&r.scope.$new()||e.$new(!0);r.viewType=r.viewType||"modal",t(o,{$hasHeader:!1,$hasSubheader:!1,$hasFooter:!1,$hasSubfooter:!1,$hasTabs:!1,$hasTabsTop:!1});var a=i("<ion-"+r.viewType+">"+n+"</ion-"+r.viewType+">")(o);r.$el=a,r.el=a[0],r.modalEl=r.el.querySelector("."+r.viewType);var s=new p(r);return s.scope=o,r.scope||(o[r.viewType]=s),s},g=[],v={add:function(e){g.push(e)},remove:function(e){var t=g.indexOf(e);t>-1&&t<g.length&&g.splice(t,1)},isHighest:function(e){var t=g.indexOf(e);return t>-1&&t===g.length-1}};return{fromTemplate:function(e,t){return m(e,t||{})},fromTemplateUrl:function(e,t,n){var i;return angular.isFunction(t)&&(i=t,t=n),l.load(e).then((function(e){var n=m(e,t||{});return i&&i(n),n}))},stack:v}}]),e.service("$ionicNavBarDelegate",ionic.DelegateService(["align","showBackButton","showBar","title","changeTitle","setTitle","getTitle","back","getPreviousTitle"])),e.service("$ionicNavViewDelegate",ionic.DelegateService(["clearCache"])),e.constant("IONIC_BACK_PRIORITY",{view:100,sideMenu:150,modal:200,actionSheet:300,popup:400,loading:500}).provider("$ionicPlatform",(function(){return{$get:["$q","$ionicScrollDelegate",function(e,t){var n={onHardwareBackButton:function(e){ionic.Platform.ready((function(){document.addEventListener("backbutton",e,!1)}))},offHardwareBackButton:function(e){ionic.Platform.ready((function(){document.removeEventListener("backbutton",e)}))},$backButtonActions:{},registerBackButtonAction:function(e,t,i){n._hasBackButtonHandler||(n.$backButtonActions={},n.onHardwareBackButton(n.hardwareBackButtonClick),n._hasBackButtonHandler=!0);var r={id:i||ionic.Utils.nextUid(),priority:t||0,fn:e};return n.$backButtonActions[r.id]=r,function(){delete n.$backButtonActions[r.id]}},hardwareBackButtonClick:function(e){var t,i;for(i in n.$backButtonActions)(!t||n.$backButtonActions[i].priority>=t.priority)&&(t=n.$backButtonActions[i]);if(t)return t.fn(e),t},is:function(e){return ionic.Platform.is(e)},on:function(e,t){return ionic.Platform.ready((function(){document.addEventListener(e,t,!1)})),function(){ionic.Platform.ready((function(){document.removeEventListener(e,t)}))}},ready:function(n){var i=e.defer();return ionic.Platform.ready((function(){window.addEventListener("statusTap",(function(){t.scrollTop(!0)})),i.resolve(),n&&n()})),i.promise}};return n}]}})),e.factory("$ionicPopover",["$ionicModal","$ionicPosition","$document","$window",function(e,t,n,i){var r={viewType:"popover",hideDelay:1,animation:"none",positionView:function(e,n){var r=a(e.target||e),o=t.offset(r),s=n.prop("offsetWidth"),l=n.prop("offsetHeight"),u=i.innerWidth,c=i.innerHeight,d={left:o.left+o.width/2-s/2},h=a(n[0].querySelector(".popover-arrow"));d.left<6?d.left=6:d.left+s+6>u&&(d.left=u-s-6),o.top+o.height+l>c&&o.top-l>0?(d.top=o.top-l,n.addClass("popover-bottom")):(d.top=o.top+o.height,n.removeClass("popover-bottom")),h.css({left:o.left+o.width/2-h.prop("offsetWidth")/2-d.left+"px"}),n.css({top:d.top+"px",left:d.left+"px",marginLeft:"0",opacity:"1"})}};return{fromTemplate:function(t,n){return e.fromTemplate(t,ionic.Utils.extend({},r,n))},fromTemplateUrl:function(t,n){return e.fromTemplateUrl(t,ionic.Utils.extend({},r,n))}}}]);var u;e.factory("$ionicPopup",["$ionicTemplateLoader","$ionicBackdrop","$q","$timeout","$rootScope","$ionicBody","$compile","$ionicPlatform","$ionicModal","IONIC_BACK_PRIORITY",function(e,n,i,r,o,l,u,c,d,h){var f={stackPushDelay:75},p=[],m={show:v,alert:function(e){return v(t({buttons:[{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},confirm:function(e){return v(t({buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){return!1}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))},prompt:function(e){var n=o.$new(!0);n.data={},n.data.fieldtype=e.inputType?e.inputType:"text",n.data.response=e.defaultText?e.defaultText:"",n.data.placeholder=e.inputPlaceholder?e.inputPlaceholder:"",n.data.maxlength=e.maxLength?parseInt(e.maxLength):"";var i="";return e.template&&!1===/<[a-z][\s\S]*>/i.test(e.template)&&(i="<span>"+e.template+"</span>",delete e.template),v(t({template:i+'<input ng-model="data.response" type="{{ data.fieldtype }}"maxlength="{{ data.maxlength }}"placeholder="{{ data.placeholder }}">',scope:n,buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return n.data.response||""}}]},e||{}))},_createPopup:function(n){n=t({scope:null,title:"",buttons:[]},n||{});var c={};return c.scope=(n.scope||o).$new(),c.element=a('<div class="popup-container" ng-class="cssClass"><div class="popup"><div class="popup-head"><h3 class="popup-title" ng-bind-html="title"></h3><h5 class="popup-sub-title" ng-bind-html="subTitle" ng-if="subTitle"></h5></div><div class="popup-body"></div><div class="popup-buttons" ng-show="buttons.length"><button ng-repeat="button in buttons" ng-click="$buttonTapped(button, $event)" class="button" ng-class="button.type || \'button-default\'" ng-bind-html="button.text"></button></div></div></div>'),c.responseDeferred=i.defer(),l.get().appendChild(c.element[0]),u(c.element)(c.scope),t(c.scope,{title:n.title,buttons:n.buttons,subTitle:n.subTitle,cssClass:n.cssClass,$buttonTapped:function(e,t){var n=(e.onTap||s).apply(c,[t]);(t=t.originalEvent||t).defaultPrevented||c.responseDeferred.resolve(n)}}),i.when(n.templateUrl?e.load(n.templateUrl):n.template||n.content||"").then((function(e){var t=a(c.element[0].querySelector(".popup-body"));e?(t.html(e),u(t.contents())(c.scope)):t.remove()})),c.show=function(){c.isShown||c.removed||(d.stack.add(c),c.isShown=!0,ionic.requestAnimationFrame((function(){var e;c.isShown&&(c.element.removeClass("popup-hidden"),c.element.addClass("popup-showing active"),(e=c.element[0].querySelector("[autofocus]"))&&e.focus())})))},c.hide=function(e){if(e=e||s,!c.isShown)return e();d.stack.remove(c),c.isShown=!1,c.element.removeClass("active"),c.element.addClass("popup-hidden"),r(e,250,!1)},c.remove=function(){c.removed||(c.hide((function(){c.element.remove(),c.scope.$destroy()})),c.removed=!0)},c},_popupStack:p};return m;function g(){var e=p[p.length-1];e&&e.responseDeferred.resolve()}function v(e){var t=m._createPopup(e),i=0;return p.length>0?(i=f.stackPushDelay,r(p[p.length-1].hide,i,!1)):(l.addClass("popup-open"),n.retain(),m._backButtonActionDone=c.registerBackButtonAction(g,h.popup)),t.responseDeferred.promise.close=function(e){t.removed||t.responseDeferred.resolve(e)},t.responseDeferred.notify({close:t.responseDeferred.close}),p.push(t),r(t.show,i,!1),t.responseDeferred.promise.then((function(e){var i=p.indexOf(t);return-1!==i&&p.splice(i,1),t.remove(),p.length>0?p[p.length-1].show():(n.release(),r((function(){p.length||l.removeClass("popup-open")}),400,!1),(m._backButtonActionDone||s)()),e})),t.responseDeferred.promise}}]),e.factory("$ionicPosition",["$document","$window",function(e,t){function n(e){return"static"===("position",((n=e).currentStyle?n.currentStyle.position:t.getComputedStyle?t.getComputedStyle(n).position:n.style.position)||"static");var n}return{position:function(t){var i=this.offset(t),r={top:0,left:0},o=function(t){for(var i=e[0],r=t.offsetParent||i;r&&r!==i&&n(r);)r=r.offsetParent;return r||i}(t[0]);o!=e[0]&&((r=this.offset(a(o))).top+=o.clientTop-o.scrollTop,r.left+=o.clientLeft-o.scrollLeft);var s=t[0].getBoundingClientRect();return{width:s.width||t.prop("offsetWidth"),height:s.height||t.prop("offsetHeight"),top:i.top-r.top,left:i.left-r.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:i.width||n.prop("offsetWidth"),height:i.height||n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}}]),e.service("$ionicScrollDelegate",ionic.DelegateService(["resize","scrollTop","scrollBottom","scrollTo","scrollBy","zoomTo","zoomBy","getScrollPosition","anchorScroll","freezeScroll","freezeAllScrolls","getScrollView"])),e.service("$ionicSideMenuDelegate",ionic.DelegateService(["toggleLeft","toggleRight","getOpenRatio","isOpen","isOpenLeft","isOpenRight","canDragContent","edgeDragThreshold"])),e.service("$ionicSlideBoxDelegate",ionic.DelegateService(["update","slide","select","enableSlide","previous","next","stop","autoPlay","start","currentIndex","selected","slidesCount","count","loop"])),e.service("$ionicTabsDelegate",ionic.DelegateService(["select","selectedIndex","showBar"])),u=[],e.factory("$ionicTemplateCache",["$http","$templateCache","$timeout",function(e,t,i){var r,a=u;function s(e){if(void 0===e)return l();o(e)&&(e=[e]),n(e,(function(e){a.push(e)})),r&&l()}function l(){var n;if(s._runCount++,r=!0,0!==a.length){for(var u=0;u<4&&(n=a.pop());)o(n)&&e.get(n,{cache:t}),u++;a.length&&i(l,1e3)}}return s._runCount=0,s}]).config(["$stateProvider","$ionicConfigProvider",function(e,t){var n=e.state;e.state=function(i,r){if("object"==typeof r){var a=!1!==r.prefetchTemplate&&u.length<t.templates.maxPrefetch();if(a&&o(r.templateUrl)&&u.push(r.templateUrl),angular.isObject(r.views))for(var s in r.views)(a=!1!==r.views[s].prefetchTemplate&&u.length<t.templates.maxPrefetch())&&o(r.views[s].templateUrl)&&u.push(r.views[s].templateUrl)}return n.call(e,i,r)}}]).run(["$ionicTemplateCache",function(e){e()}]),e.factory("$ionicTemplateLoader",["$compile","$controller","$http","$q","$rootScope","$templateCache",function(e,n,i,r,o,s){return{load:function(e){return i.get(e,{cache:s}).then((function(e){return e.data&&e.data.trim()}))},compile:function(i){return((i=t({template:"",templateUrl:"",scope:null,controller:null,locals:{},appendTo:null},i||{})).templateUrl?this.load(i.templateUrl):r.when(i.template)).then((function(r){var s,l=i.scope||o.$new(),u=a("<div>").html(r).contents();return i.controller&&(s=n(i.controller,t(i.locals,{$scope:l})),u.children().data("$ngControllerController",s)),i.appendTo&&a(i.appendTo).append(u),e(u)(l),{element:u,scope:l}}))}}}]),e.factory("$ionicViewService",["$ionicHistory","$log",function(e,t){function i(e,n){t.warn("$ionicViewService"+e+" is deprecated, please use $ionicHistory"+n+" instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/")}i("","");var r={getCurrentView:"currentView",getBackView:"backView",getForwardView:"forwardView",getCurrentStateName:"currentStateName",nextViewOptions:"nextViewOptions",clearHistory:"clearHistory"};return n(r,(function(t,n){r[n]=function(){return i("."+n,"."+t),e[t].apply(this,arguments)}})),r}]),e.factory("$ionicViewSwitcher",["$timeout","$document","$q","$ionicClickBlock","$ionicConfig","$ionicNavBarDelegate",function(e,r,o,s,l,u){var c,d,h,f="webkitTransitionEnd transitionend",p="$fallbackTimer",m="$viewData",g="nav-view",v="active",_="cached",y=0;ionic.transition=ionic.transition||{},ionic.transition.isActive=!1;var b=ionic.DomUtil.cachedAttr,w=[],L={create:function(n,r,a,h,g,C){var E,A,P,Y=++y,O={init:function(e,t){L.isTransitioning(!0),O.loadViewElements(e),O.render(e,(function(){t&&t()}))},loadViewElements:function(e){var t,o,s,l,u,c=n.getViewElements(),d=(u=a,M(l=r).abstract?M(l).name:u?u.stateId||u.viewId:ionic.Utils.nextUid()),h=n.activeEleId();for(t=0,o=c.length;t<o&&((s=c.eq(t)).data("$eleId")===d?s.data("$noCache")?(s.data("$eleId",d+ionic.Utils.nextUid()),s.data("$destroyEle",!0)):E=s:i(h)&&s.data("$eleId")===h&&(A=s),!E||!A);t++);(P=!!E)||(E=e.ele||L.createViewEle(r)).data("$eleId",d),C&&n.activeEleId(d),e.ele=null},render:function(e,t){if(P)ionic.Utils.reconnectScope(E.scope());else{S(E,"stage");var i=k(r,E,e.direction,a);(l.transitions.views[i.transition]||l.transitions.views.none)(E,null,i.direction,!0).run(0),E.data(m,{viewId:i.viewId,historyId:i.historyId,stateName:i.stateName,stateParams:i.stateParams}),!1!==M(r).cache&&"false"!==M(r).cache&&"false"!=E.attr("cache-view")&&0!==l.views.maxCache()||E.data("$noCache",!0);var o=n.appendViewElement(E,r);delete i.direction,delete i.transition,o.$emit("$ionicView.loaded",i)}E.data("$accessed",Date.now()),t&&t()},transition:function(i,m,M){var T,$=k(r,E,i,a),D=t(t({},$),x(h));$.transitionId=D.transitionId=Y,$.fromCache=!!P,$.enableBack=!!m,$.renderStart=g,$.renderEnd=C,b(E.parent(),"nav-view-transition",$.transition),b(E.parent(),"nav-view-direction",$.direction),e.cancel(E.data(p));var I=(l.transitions.views[$.transition]||l.transitions.views.none)(E,A,$.direction,$.shouldAnimate&&M&&C);if(I.shouldAnimate&&(E.on(f,H),E.data(p,e(B,1100)),s.show(1100)),g&&(O.emit("before",$,D),S(E,"stage"),I.run(0)),C&&(T=o.defer(),w.push(T.promise)),g&&C)e((function(){ionic.requestAnimationFrame(j)}));else{if(!C)return S(E,"entering"),S(A,"leaving"),{run:I.run,cancel:function(t){t?(E.on(f,N),E.data(p,e(R,1100)),s.show(1100)):R(),I.shouldAnimate=t,I.run(0),I=null}};C&&j()}function j(){S(E,I.shouldAnimate?"entering":v),S(A,I.shouldAnimate?"leaving":_),I.run(1),u._instances.forEach((function(e){e.triggerTransitionStart(Y)})),I.shouldAnimate||B()}function H(e){e.target===this&&B()}function B(){B.x||(B.x=!0,E.off(f,H),e.cancel(E.data(p)),A&&e.cancel(A.data(p)),T&&T.resolve(n),Y===y&&(o.all(w).then(L.transitionEnd),O.emit("after",$,D),O.cleanup($)),u._instances.forEach((function(e){e.triggerTransitionEnd()})),c=d=a=h=E=A=null)}function N(e){e.target===this&&R()}function R(){S(E,_),S(A,v),E.off(f,N),e.cancel(E.data(p)),L.transitionEnd([n])}},emit:function(e,t,n){var i=D(E,t),r=D(A,n);!t.viewId||t.abstractView?r&&(r.$emit("$ionicView.beforeLeave",n),r.$emit("$ionicView.leave",n),r.$emit("$ionicView.afterLeave",n),r.$broadcast("$ionicParentView.beforeLeave",n),r.$broadcast("$ionicParentView.leave",n),r.$broadcast("$ionicParentView.afterLeave",n)):("after"==e&&(i&&(i.$emit("$ionicView.enter",t),i.$broadcast("$ionicParentView.enter",t)),r?(r.$emit("$ionicView.leave",n),r.$broadcast("$ionicParentView.leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&$(t.stateName,n.stateName)&&i.$emit("$ionicNavView.leave",n)),i&&(i.$emit("$ionicView."+e+"Enter",t),i.$broadcast("$ionicParentView."+e+"Enter",t)),r?(r.$emit("$ionicView."+e+"Leave",n),r.$broadcast("$ionicParentView."+e+"Leave",n)):i&&n&&n.viewId&&t.stateName!==n.stateName&&$(t.stateName,n.stateName)&&i.$emit("$ionicNavView."+e+"Leave",n))},cleanup:function(e){A&&"back"==e.direction&&!l.views.forwardCache()&&T(A);var t,i,r,o=n.getViewElements(),a=o.length,s=a-1>l.views.maxCache(),u=Date.now();for(t=0;t<a;t++)i=o.eq(t),s&&i.data("$accessed")<u?(u=i.data("$accessed"),r=o.eq(t)):i.data("$destroyEle")&&S(i)!=v&&T(i);T(r),E.data("$noCache")&&E.data("$destroyEle",!0)},enteringEle:function(){return E},leavingEle:function(){return A}};return O},transitionEnd:function(e){n(e,(function(e){e.transitionEnd()})),L.isTransitioning(!1),s.hide(),w=[]},nextTransition:function(e){c=e},nextDirection:function(e){d=e},isTransitioning:function(t){return arguments.length&&(ionic.transition.isActive=!!t,e.cancel(h),t&&(h=e((function(){L.isTransitioning(!1)}),999))),ionic.transition.isActive},createViewEle:function(e){var t=r[0].createElement("div");return e&&e.$template&&(t.innerHTML=e.$template,1===t.children.length)?(t.children[0].classList.add("pane"),e.$$state&&e.$$state.self&&e.$$state.self.abstract?angular.element(t.children[0]).attr("abstract","true"):e.$$state&&e.$$state.self&&angular.element(t.children[0]).attr("state",e.$$state.self.name),a(t.children[0])):(t.className="pane",a(t))},viewEleIsActive:function(e,t){S(e,t?v:_)},getTransitionData:k,navViewAttr:S,destroyViewEle:T};return L;function M(e){return e&&e.$$state&&e.$$state.self||{}}function k(e,n,i,r){var o=M(e),a=c||b(n,"view-transition")||o.viewTransition||l.views.transition()||"ios",s=l.navBar.transition();return i=d||b(n,"view-direction")||o.viewDirection||i||"none",t(x(r),{transition:a,navBarTransition:"view"===s?a:s,direction:i,shouldAnimate:"none"!==a&&"none"!==i})}function x(e){return{viewId:(e=e||{}).viewId,historyId:e.historyId,stateId:e.stateId,stateName:e.stateName,stateParams:e.stateParams}}function S(e,t){if(!(arguments.length>1))return b(e,g);b(e,g,t)}function T(e){if(e&&e.length){var t=e.scope();t&&(t.$emit("$ionicView.unloaded",e.data(m)),t.$destroy()),e.remove()}}function $(e,t){var n=e.lastIndexOf("."),i=t.lastIndexOf(".");return!(n<0||i<0)&&e.substring(0,n)===t.substring(0,i)}function D(e,t){if(!e)return null;var n=angular.element(e).attr("abstract"),i=angular.element(e).attr("state");if("true"!==n)return i===t.stateName?angular.element(e).scope():null;for(var r=function(e){for(var t=[],n=angular.element(e).find("ion-nav-view"),i=0;i<n.length;i++){for(var r=angular.element(n[i]).children(),o=[],a=0;a<r.length;a++)o=o.concat(r[a]);t=t.concat(o)}return t}(e),o=0;o<r.length;o++)if(angular.element(r[o]).attr("state")===t.stateName)return t.abstractView=!0,angular.element(r[o]).scope();return null}}]),
+/**
+ * ==================  angular-ios9-uiwebview.patch.js v1.1.1 ==================
+ *
+ * This patch works around iOS9 UIWebView regression that causes infinite digest
+ * errors in Angular.
+ *
+ * The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular
+ * have the workaround baked in.
+ *
+ * To apply this patch load/bundle this file with your application and add a
+ * dependency on the "ngIOS9UIWebViewPatch" module to your main app module.
+ *
+ * For example:
+ *
+ * ```
+ * angular.module('myApp', ['ngRoute'])`
+ * ```
+ *
+ * becomes
+ *
+ * ```
+ * angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch'])
+ * ```
+ *
+ *
+ * More info:
+ * - https://openradar.appspot.com/22186109
+ * - https://github.com/angular/angular.js/issues/12241
+ * - https://github.com/ionic-team/ionic/issues/4082
+ *
+ *
+ * @license AngularJS
+ * (c) 2010-2015 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+angular.module("ngIOS9UIWebViewPatch",["ng"]).config(["$provide",function(e){"use strict";e.decorator("$browser",["$delegate","$window",function(e,t){return n=t.navigator.userAgent,/(iPhone|iPad|iPod).* OS 9_\d/.test(n)&&!/Version\/9\./.test(n)?function(e){var t=null,n=e.url;function i(){t=null}return e.url=function(){return arguments.length?(t=arguments[0],n.apply(e,arguments)):t||n.apply(e,arguments)},window.addEventListener("popstate",i,!1),window.addEventListener("hashchange",i,!1),e}(e):e;var n}])}]),e.config(["$provide",function(e){e.decorator("$compile",["$delegate",function(e){return e.$$addScopeInfo=function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)},e}])}]),e.config(["$provide",function(e){e.decorator("$location",["$delegate","$timeout",function(e,t){return e.__hash=e.hash,e.hash=function(n){return i(n)&&n.length>0&&t((function(){var e=document.querySelector(".scroll-content");e&&(e.scrollTop=0)}),0,!1),e.__hash(n)},e}])}]),e.controller("$ionicHeaderBar",["$scope","$element","$attrs","$q","$ionicConfig","$ionicHistory",function(e,t,n,i,r,o){var a=this,s="",l="",u=0,c=0,d="",h=!1,f=!0,p=!0,m=!1;a.beforeEnter=function(t){e.$broadcast("$ionicView.beforeEnter",t)},a.title=function(e){return arguments.length&&e!==s&&(v("title").innerHTML=e,s=e),s},a.enableBack=function(e,t){return arguments.length&&(h=e,t||a.updateBackButton()),h},a.showBack=function(e,t){return arguments.length&&(f=e,t||a.updateBackButton()),f},a.showNavBack=function(e){p=e,a.updateBackButton()},a.updateBackButton=function(){var e;(f&&p&&h)!==m&&(m=f&&p&&h,(e=v("back-button"))&&e.classList[m?"remove":"add"]("hide")),h&&(e=e||v("back-button"))&&(a.backButtonIcon!==r.backButton.icon()&&(e=v("back-button .icon"))&&(a.backButtonIcon=r.backButton.icon(),e.className="icon "+a.backButtonIcon),a.backButtonText!==r.backButton.text()&&(e=v("back-button .back-text"))&&(e.textContent=a.backButtonText=r.backButton.text()))},a.titleTextWidth=function(){var e=v("title");if(e)for(var t=angular.element(e).children(),n=0;n<t.length;n++)if(angular.element(t[n]).hasClass("nav-bar-title")){e=t[n];break}var i=ionic.DomUtil.getTextBounds(e);return Math.min(i&&i.width||30)},a.titleWidth=function(){var e=a.titleTextWidth(),t=v("title").offsetWidth;return t<e&&(e=t+(u-c-5)),e},a.titleTextX=function(){return t[0].offsetWidth/2-a.titleWidth()/2},a.titleLeftRight=function(){return u-c},a.backButtonTextLeft=function(){for(var e=0,t=v("back-text");t;)e+=t.offsetLeft,t=t.parentElement;return e},a.resetBackButton=function(e){if(r.backButton.previousTitleText()){var t=v("previous-title");if(t){t.classList.remove("hide");var n=e&&o.getViewById(e.viewId),i=o.backTitle(n);i!==l&&(l=t.innerHTML=i)}var a=v("default-title");a&&a.classList.remove("hide")}},a.align=function(e){var i=v("title");e=e||n.alignTitle||r.navBar.alignTitle();var o=a.calcWidths(e,!1);if(f&&l&&r.backButton.previousTitleText()){var s=a.calcWidths(e,!0),u=t[0].offsetWidth-s.titleLeft-s.titleRight;a.titleTextWidth()<=u&&(o=s)}return a.updatePositions(i,o.titleLeft,o.titleRight,o.buttonsLeft,o.buttonsRight,o.css,o.showPrevTitle)},a.calcWidths=function(e,n){var i,r,o,a,s,l,u,c,d,h=v("title"),p=v("back-button"),m=t[0].childNodes,g=0,_=0,y=0,b=0,w="",L=0;for(i=0;i<m.length;i++){if(u=0,1==(s=m[i]).nodeType){if(s===h){d=!0;continue}if(s.classList.contains("hide"))continue;if(f&&s===p){for(r=0;r<s.childNodes.length;r++)if(1==(a=s.childNodes[r]).nodeType)if(a.classList.contains("back-text"))for(o=0;o<a.children.length;o++)if(l=a.children[o],n){if(l.classList.contains("default-title"))continue;L+=l.offsetWidth}else{if(l.classList.contains("previous-title"))continue;L+=l.offsetWidth}else L+=a.offsetWidth;else 3==a.nodeType&&a.nodeValue.trim()&&(L+=(c=ionic.DomUtil.getTextBounds(a))&&c.width||0);u=L||s.offsetWidth}else u=s.offsetWidth}else 3==s.nodeType&&s.nodeValue.trim()&&(u=(c=ionic.DomUtil.getTextBounds(s))&&c.width||0);d?_+=u:g+=u}if("left"==e)w="title-left",g&&(y=g+15),_&&(b=_+15);else if("right"==e)w="title-right",g&&(y=g+15),_&&(b=_+15);else{var M=Math.max(g,_)+10;M>10&&(y=b=M)}return{backButtonWidth:L,buttonsLeft:g,buttonsRight:_,titleLeft:y,titleRight:b,showPrevTitle:n,css:w}},a.updatePositions=function(e,n,o,s,l,h,f){var p=i.defer();if(e&&(n!==u&&(e.style.left=n?n+"px":"",u=n),o!==c&&(e.style.right=o?o+"px":"",c=o),h!==d&&(h&&e.classList.add(h),d&&e.classList.remove(d),d=h)),r.backButton.previousTitleText()){var m=v("previous-title"),g=v("default-title");m&&m.classList[f?"remove":"add"]("hide"),g&&g.classList[f?"add":"remove"]("hide")}return ionic.requestAnimationFrame((function(){if(e&&e.offsetWidth+10<e.scrollWidth){var n=l+5,i=t[0].offsetWidth-u-a.titleTextWidth()-20;(o=i<n?n:i)!==c&&(e.style.right=o+"px",c=o)}p.resolve()})),p.promise},a.setCss=function(e,t){ionic.DomUtil.cachedStyles(v(e),t)};var g={};function v(e){return g[e]||(g[e]=t[0].querySelector("."+e)),g[e]}e.$on("$destroy",(function(){for(var e in g)g[e]=null}))}]),e.controller("$ionInfiniteScroll",["$scope","$attrs","$element","$timeout",function(e,t,n,r){var o=this;function a(){ionic.requestAnimationFrame((function(){n[0].classList.add("active")})),o.isLoading=!0,e.$parent&&e.$parent.$apply(t.onInfinite||"")}function s(){ionic.requestAnimationFrame((function(){n[0].classList.remove("active")})),r((function(){o.jsScrolling&&o.scrollView.resize(),(o.jsScrolling&&o.scrollView.__container&&o.scrollView.__container.offsetHeight>0||!o.jsScrolling)&&o.checkBounds()}),30,!1),o.isLoading=!1}function l(e){var n=(t.distance||"2.5%").trim();return-1!==n.indexOf("%")?e*(1-parseFloat(n)/100):e-parseFloat(n)}o.isLoading=!1,e.icon=function(){return i(t.icon)?t.icon:"ion-load-d"},e.spinner=function(){return i(t.spinner)?t.spinner:""},e.$on("scroll.infiniteScrollComplete",(function(){s()})),e.$on("$destroy",(function(){o.scrollCtrl&&o.scrollCtrl.$element&&o.scrollCtrl.$element.off("scroll",o.checkBounds),o.scrollEl&&o.scrollEl.removeEventListener&&o.scrollEl.removeEventListener("scroll",o.checkBounds)})),o.checkBounds=ionic.Utils.throttle((function(){if(!o.isLoading){var e={};if(o.jsScrolling){e=o.getJSMaxScroll();var t=o.scrollView.getValues();(-1!==e.left&&t.left>=e.left||-1!==e.top&&t.top>=e.top)&&a()}else(-1!==(e=o.getNativeMaxScroll()).left&&o.scrollEl.scrollLeft>=e.left-o.scrollEl.clientWidth||-1!==e.top&&o.scrollEl.scrollTop>=e.top-o.scrollEl.clientHeight)&&a()}}),300),o.getJSMaxScroll=function(){var e=o.scrollView.getScrollMax();return{left:o.scrollView.options.scrollingX?l(e.left):-1,top:o.scrollView.options.scrollingY?l(e.top):-1}},o.getNativeMaxScroll=function(){var e={left:o.scrollEl.scrollWidth,top:o.scrollEl.scrollHeight},t=window.getComputedStyle(o.scrollEl)||{};return{left:!e.left||"scroll"!==t.overflowX&&"auto"!==t.overflowX&&"scroll"!==o.scrollEl.style["overflow-x"]?-1:l(e.left),top:!e.top||"scroll"!==t.overflowY&&"auto"!==t.overflowY&&"scroll"!==o.scrollEl.style["overflow-y"]?-1:l(e.top)}},o.__finishInfiniteScroll=s}]),e.service("$ionicListDelegate",ionic.DelegateService(["showReorder","showDelete","canSwipeItems","closeOptionButtons"])).controller("$ionicList",["$scope","$attrs","$ionicListDelegate","$ionicHistory",function(e,t,n,i){var r=this,o=!0,a=!1,s=!1,l=n._registerInstance(r,t.delegateHandle,(function(){return i.isActiveScope(e)}));e.$on("$destroy",l),r.showReorder=function(e){return arguments.length&&(a=!!e),a},r.showDelete=function(e){return arguments.length&&(s=!!e),s},r.canSwipeItems=function(e){return arguments.length&&(o=!!e),o},r.closeOptionButtons=function(){r.listView&&r.listView.clearDragEffects()}}]),e.controller("$ionicNavBar",["$scope","$element","$attrs","$compile","$timeout","$ionicNavBarDelegate","$ionicConfig","$ionicHistory",function(e,t,r,o,s,l,u,c){var d,h,f,p="primaryButtons",m="secondaryButtons",g="backButton",v="primaryButtons secondaryButtons leftButtons rightButtons title".split(" "),_=this,y=[],b={},w=!0;t.parent().data("$ionNavBarController",_);var L=r.delegateHandle||"navBar"+ionic.Utils.nextUid(),M=l._registerInstance(_,L);function k(e,t){var n=console.warn||alert;n&&n.call(console,"navBarController."+e+" is deprecated, please use "+t+" instead")}function x(e){if(b[e])return a(b[e])}function S(){for(var e=0;e<y.length;e++)if(y[e].isActive)return y[e]}function T(e,t){e&&ionic.DomUtil.cachedAttr(e.containerEle(),"nav-bar",t)}function $(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}_.init=function(){t.addClass("nav-bar-container"),ionic.DomUtil.cachedAttr(t,"nav-bar-transition",u.views.transition()),_.createHeaderBar(!1),_.createHeaderBar(!0),e.$emit("ionNavBar.init",L)},_.createHeaderBar=function(s){var l=a('<div class="nav-bar-block">');ionic.DomUtil.cachedAttr(l,"nav-bar",s?"active":"cached");var c=r.alignTitle||u.navBar.alignTitle(),d=a("<ion-header-bar>").addClass(r.class).attr("align-title",c);i(r.noTapScroll)&&d.attr("no-tap-scroll",r.noTapScroll);var h,f,_=a('<div class="title title-'+c+'">'),b={},w={};b[g]=x(g),b[g]&&d.append(b[g]),d.append(_),n(v,(function(e){b[e]=x(e),S(b[e],e)}));for(var L=0;L<d[0].children.length;L++)d[0].children[L].classList.add("header-item");l.append(d),t.append(o(l)(e.$new()));var M=d.data("$ionHeaderBarController");M.backButtonIcon=u.backButton.icon(),M.backButtonText=u.backButton.text();var k={isActive:s,title:function(e){M.title(e)},setItem:function(e,t){k.removeItem(t),e?("title"===t&&k.title(""),S(e,t),b[t]&&b[t].addClass("hide"),w[t]=e):b[t]&&b[t].removeClass("hide")},removeItem:function(e){w[e]&&(w[e].scope().$destroy(),w[e].remove(),w[e]=null)},containerEle:function(){return l},headerBarEle:function(){return d},afterLeave:function(){n(v,(function(e){k.removeItem(e)})),M.resetBackButton()},controller:function(){return M},destroy:function(){for(var e in n(v,(function(e){k.removeItem(e)})),l.scope().$destroy(),b)b[e]&&(b[e].removeData(),b[e]=null);h&&h.removeData(),f&&f.removeData(),_.removeData(),d.removeData(),l.remove(),l=d=_=h=f=null}};function S(e,t){e&&("title"===t?_.append(e):"rightButtons"==t||t==m&&"left"!=u.navBar.positionSecondaryButtons()||t==p&&"right"==u.navBar.positionPrimaryButtons()?(f||(f=a('<div class="buttons buttons-right">'),d.append(f)),t==m?f.append(e):f.prepend(e)):(h||(h=a('<div class="buttons buttons-left">'),b[g]?b[g].after(h):d.prepend(h)),t==m?h.append(e):h.prepend(e)))}return y.push(k),k},_.navElement=function(e,t){return i(t)&&(b[e]=t),b[e]},_.update=function(e){var t=!e.hasHeaderBar&&e.showNavBar;e.transition=u.views.transition(),t||(e.direction="none"),_.enable(t);var i=_.isInitialized?function(){for(var e=0;e<y.length;e++)if(!y[e].isActive)return y[e]}():S(),r=_.isInitialized?S():null,o=i.controller();o.enableBack(e.enableBack,!0),o.showBack(e.showBack,!0),o.updateBackButton(),_.title(e.title,i),_.showBar(t),e.navBarItems&&n(v,(function(t){i.setItem(e.navBarItems[t],t)})),_.transition(i,r,e),_.isInitialized=!0,$("")},_.transition=function(e,n,i){var r=e.controller(),o=u.transitions.navBar[i.navBarTransition]||u.transitions.navBar.none,a=i.transitionId;r.beforeEnter(i);var l=o(e,n,i.direction,i.shouldAnimate&&_.isInitialized);function c(){for(var t=0;t<y.length;t++)y[t].isActive=!1;e.isActive=!0,T(e,"active"),T(n,"cached"),_.activeTransition=l=h=null}ionic.DomUtil.cachedAttr(t,"nav-bar-transition",i.navBarTransition),ionic.DomUtil.cachedAttr(t,"nav-bar-direction",i.direction),l.shouldAnimate&&i.renderEnd?T(e,"stage"):(T(e,"entering"),T(n,"leaving")),r.resetBackButton(i),l.run(0),_.activeTransition={run:function(e){l.shouldAnimate=!1,l.direction="back",l.run(e)},cancel:function(t,i,r){$(i),T(n,"active"),T(e,"cached"),l.shouldAnimate=t,l.run(0),_.activeTransition=l=null,r.showBar!==_.showBar()&&_.showBar(r.showBar),r.showBackButton!==_.showBackButton()&&_.showBackButton(r.showBackButton)},complete:function(e,t){$(t),l.shouldAnimate=e,l.run(1),h=c}},s(r.align,16),(d=function(){f===a&&(T(e,"entering"),T(n,"leaving"),l.run(1),h=function(){f!=a&&l.shouldAnimate||c()},d=null)})()},_.triggerTransitionStart=function(e){f=e,d&&d()},_.triggerTransitionEnd=function(){h&&h()},_.showBar=function(t){return arguments.length&&(_.visibleBar(t),e.$parent.$hasHeader=!!t),!!e.$parent.$hasHeader},_.visibleBar=function(e){e&&!w?(t.removeClass("hide"),_.align()):!e&&w&&t.addClass("hide"),w=e},_.enable=function(e){_.visibleBar(e);for(var t=0;t<l._instances.length;t++)l._instances[t]!==_&&l._instances[t].visibleBar(!1)},_.showBackButton=function(t){if(arguments.length){for(var n=0;n<y.length;n++)y[n].controller().showNavBack(!!t);e.$isBackButtonShown=!!t}return e.$isBackButtonShown},_.showActiveBackButton=function(e){var t=S();if(t)return arguments.length?t.controller().showBack(e):t.controller().showBack()},_.title=function(t,n){return i(t)&&(t=t||"",(n=n||S())&&n.title(t),e.$title=t,c.currentTitle(t)),e.$title},_.align=function(e,t){(t=t||S())&&t.controller().align(e)},_.hasTabsTop=function(e){t[e?"addClass":"removeClass"]("nav-bar-tabs-top")},_.hasBarSubheader=function(e){t[e?"addClass":"removeClass"]("nav-bar-has-subheader")},_.changeTitle=function(e){k("changeTitle(val)","title(val)"),_.title(e)},_.setTitle=function(e){k("setTitle(val)","title(val)"),_.title(e)},_.getTitle=function(){return k("getTitle()","title()"),_.title()},_.back=function(){k("back()","$ionicHistory.goBack()"),c.goBack()},_.getPreviousTitle=function(){k("getPreviousTitle()","$ionicHistory.backTitle()"),c.goBack()},e.$on("$destroy",(function(){e.$parent.$hasHeader=!1,t.parent().removeData("$ionNavBarController");for(var n=0;n<y.length;n++)y[n].destroy();t.remove(),t=y=null,M()}))}]),e.controller("$ionicNavView",["$scope","$element","$attrs","$compile","$controller","$ionicNavBarDelegate","$ionicNavViewDelegate","$ionicHistory","$ionicViewSwitcher","$ionicConfig","$ionicScrollDelegate","$ionicSideMenuDelegate",function(e,n,i,r,o,a,s,l,u,c,d,h){var f,p,m,g,v,_="active",y=this,b=!1,w=u.navViewAttr;function L(e,t){for(var i,r,o=n.children(),a=0,s=o.length;a<s;a++)if(i=o.eq(a),w(i)==_){(r=i.scope())&&r.$emit(e.name.replace("Tabs","View"),t),r&&r.$broadcast(e.name.replace("Tabs","ParentView"),t);break}}function M(e){ionic.DomUtil.cachedAttr(n,"nav-swipe",e)}function k(e,t){var n=S();n&&n.hasTabsTop(t)}function x(e,t){var n=S();n&&n.hasBarSubheader(t)}function S(){if(p)for(var e=0;e<a._instances.length;e++)if(a._instances[e].$$delegateHandle==p)return a._instances[e];return n.inheritedData("$ionNavBarController")}y.scope=e,y.element=n,y.init=function(){var t=i.name||"",r=n.parent().inheritedData("$uiView"),o=r&&r.state?r.state.name:"";t.indexOf("@")<0&&(t=t+"@"+o);var a={name:t,state:null};n.data("$uiView",a);var l=s._registerInstance(y,i.delegateHandle);return e.$on("$destroy",(function(){l(),y.isSwipeFreeze&&d.freezeAllScrolls(!1)})),e.$on("$ionicHistory.deselect",y.cacheCleanup),e.$on("$ionicTabs.top",k),e.$on("$ionicSubheader",x),e.$on("$ionicTabs.beforeLeave",L),e.$on("$ionicTabs.afterLeave",L),e.$on("$ionicTabs.leave",L),ionic.Platform.ready((function(){ionic.Platform.isWebView()&&ionic.Platform.isIOS()&&y.initSwipeBack()})),a},y.register=function(n){var i=t({},l.currentView()),r=l.register(e,n);y.update(r);var o=l.getViewById(r.viewId)||{},a=g!==r.viewId;y.render(r,n,o,i,a,!0)},y.update=function(e){b=!0,f=e.direction;var t=n.parent().inheritedData("$ionNavViewController");t&&(t.isPrimary(!1),"enter"!==f&&"exit"!==f||(t.direction(f),"enter"===f&&(f="none")))},y.render=function(e,t,n,i,r,o){var a=u.create(y,t,n,i,r,o);a.init(e,(function(){a.transition(y.direction(),e.enableBack,!v),g=v=null}))},y.beforeEnter=function(e){if(b){p=e.navBarDelegate;var t=S();t&&t.update(e),M("")}},y.activeEleId=function(e){return arguments.length&&(m=e),m},y.transitionEnd=function(){var e,t,i,r=n.children();for(e=0,t=r.length;e<t;e++)(i=r.eq(e)).data("$eleId")===m?w(i,_):"leaving"!==w(i)&&w(i)!==_&&"cached"!==w(i)||(i.data("$destroyEle")||i.data("$noCache")?u.destroyViewEle(i):(w(i,"cached"),ionic.Utils.disconnectScope(i.scope())));M(""),y.isSwipeFreeze&&d.freezeAllScrolls(!1)},y.cacheCleanup=function(){for(var e=n.children(),t=0,i=e.length;t<i;t++)e.eq(t).data("$destroyEle")&&u.destroyViewEle(e.eq(t))},y.clearCache=function(e){var t,i,r,o,a,s,l=n.children();for(r=0,o=l.length;r<o;r++)if(t=l.eq(r),e)for(s=t.data("$eleId"),a=0;a<e.length;a++)s===e[a]&&u.destroyViewEle(t);else"cached"==w(t)?u.destroyViewEle(t):w(t)==_&&(i=t.scope())&&i.$broadcast("$ionicView.clearCache")},y.getViewElements=function(){return n.children()},y.appendViewElement=function(t,i){var a=r(t);n.append(t);var s=e.$new();if(i&&i.$$controller){i.$scope=s;var l=o(i.$$controller,i);i.$$controllerAs&&(s[i.$$controllerAs]=l),n.children().data("$ngControllerController",l)}return a(s),s},y.title=function(e){var t=S();t&&t.title(e)},y.enableBackButton=function(e){var t=S();t&&t.enableBackButton(e)},y.showBackButton=function(e){var t=S();return!t||(arguments.length?t.showActiveBackButton(e):t.showActiveBackButton())},y.showBar=function(e){var t=S();return!t||(arguments.length?t.showBar(e):t.showBar())},y.isPrimary=function(e){return arguments.length&&(b=e),b},y.direction=function(e){return arguments.length&&(f=e),f},y.initSwipeBack=function(){var t,i,r,o,a,s,f,p,m,_=c.views.swipeBackHitWidth(),w={};function L(e){if(b&&c.views.swipeBackEnabled()&&!h.isOpenRight()&&!((p=T(e))>_)){r=l.backView();var o=l.currentView();if(r&&r.historyId===o.historyId&&!1!==o.canSwipeBack){f||(f=window.innerWidth),y.isSwipeFreeze=d.freezeAllScrolls(!0);var g={direction:"back"};m=[],w={showBar:y.showBar(),showBackButton:y.showBackButton()};var v=u.create(y,g,r,o,!0,!1);v.loadViewElements(g),v.render(g),t=v.transition("back",l.enabledBack(r),!0),i=S(),a=ionic.onGesture("drag",k,n[0]),s=ionic.onGesture("release",x,n[0])}}}function k(e){if(b&&t){var n=T(e);if(m.push({t:Date.now(),x:n}),n>=f-15)x(e);else{var r=Math.min(Math.max($(n),0),1);t.run(r),i&&i.activeTransition&&i.activeTransition.run(r)}}}function x(e){if(b&&t&&m&&m.length>1){for(var n=Date.now(),o=T(e),l=m[m.length-1],u=m.length-2;u>=0&&!(n-l.t>200);u--)l=m[u];var c=o>=m[m.length-2].x,h=$(o),p=Math.abs(l.x-o)/(n-l.t);if(g=r.viewId,v=h<.03||h>.97,c&&(h>.5||p>.1)){var _=p>.5||p<.05||o>f-45?"fast":"slow";M(v?"":_),r.go(),i&&i.activeTransition&&i.activeTransition.complete(!v,_)}else M(v?"":"fast"),g=null,t.cancel(!v),i&&i.activeTransition&&i.activeTransition.cancel(!v,"fast",w),v=null}ionic.offGesture(a,"drag",k),ionic.offGesture(s,"release",x),f=t=m=null,y.isSwipeFreeze=d.freezeAllScrolls(!1)}function T(e){return ionic.tap.pointerCoord(e.gesture.srcEvent).x}function $(e){return(e-p)/f}o=ionic.onGesture("dragstart",L,n[0]),e.$on("$destroy",(function(){ionic.offGesture(o,"dragstart",L),ionic.offGesture(a,"drag",k),ionic.offGesture(s,"release",x),y.element=t=i=null}))}}]),e.controller("$ionicRefresher",["$scope","$attrs","$element","$ionicBind","$timeout",function(e,t,n,r,o){var a,s,l,u,c,d=!1,h=!1,f=0,p=0,m=60,g=!1,v=500,_=null,y=null,b=!0;function w(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],_=Math.floor(e.touches[0].screenY)}function L(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],_=e.touches[0].screenY}function M(){_=null,(b||d)&&(d?(d=!1,f=0,p>m?(A(),$(m,v)):($(0,v,E),h=!1)):(f=0,h=!1,T(!1)))}function k(e){if(e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],(_||"mousemove"!=e.type)&&b&&!(e.touches.length>1)){if(null===_&&(_=e.touches[0].screenY),y=e.touches[0].screenY-_,ionic.Platform.isAndroid()&&4.4===ionic.Platform.version()&&!ionic.Platform.isCrosswalk()&&0===a.scrollTop&&y>0&&(d=!0,e.preventDefault()),y-f<=0||0!==a.scrollTop)return h&&(h=!1,T(!1)),d&&function(e,t){e.scrollTop=t;var n=document.createEvent("UIEvents");n.initUIEvent("scroll",!0,!0,window,1),e.dispatchEvent(n)}(a,y- -1*f),void(0!==p&&S(0));y>0&&0===a.scrollTop&&!h&&(f=y),e.preventDefault(),h||(h=!0,T(!0)),d=!0,S((y-f)/3),!g&&p>m?(g=!0,ionic.requestAnimationFrame(C)):g&&p<m&&(g=!1,ionic.requestAnimationFrame(E))}}function x(e){b=0===e.target.scrollTop||d}function S(e){s.style[ionic.CSS.TRANSFORM]="translate3d(0px, "+e+"px, 0px)",p=e}function T(e){e?ionic.requestAnimationFrame((function(){s.classList.add("overscroll"),P()})):ionic.requestAnimationFrame((function(){s.classList.remove("overscroll"),Y(),E()}))}function $(e,t,n){var i=Date.now(),r=p;r!==e?ionic.requestAnimationFrame((function o(){var a=Date.now(),s=Math.min(1,(a-i)/t),l=function(e){return--e*e*e+1}(s);S(Math.floor(l*(e-r)+r)),s<1?ionic.requestAnimationFrame(o):(e<5&&e>-5&&(h=!1,T(!1)),n&&n())})):n()}function D(){s&&(ionic.off(l,L,s),ionic.off(u,k,s),ionic.off(c,M,s),ionic.off("mousedown",w,s),ionic.off("mousemove",k,s),ionic.off("mouseup",M,s)),a&&ionic.off("scroll",x,a),a=null,s=null}function C(){n[0].classList.add("active"),e.$onPulling()}function E(){o((function(){n.removeClass("active refreshing refreshing-tail"),g&&(g=!1)}),150)}function A(){n[0].classList.add("refreshing");var t=e.$onRefresh();t&&t.then&&t.finally((function(){e.$broadcast("scroll.refreshComplete")}))}function P(){n[0].classList.remove("invisible")}function Y(){n[0].classList.add("invisible")}function O(){n[0].classList.add("refreshing-tail")}i(t.pullingIcon)||t.$set("pullingIcon","ion-android-arrow-down"),e.showSpinner=!i(t.refreshingIcon)&&"none"!=t.spinner,e.showIcon=i(t.refreshingIcon),r(e,t,{pullingIcon:"@",pullingText:"@",refreshingIcon:"@",refreshingText:"@",spinner:"@",disablePullingRotation:"@",$onRefresh:"&onRefresh",$onPulling:"&onPulling"}),e.$on("scroll.refreshComplete",(function(){o((function(){ionic.requestAnimationFrame(O),$(0,v,E),o((function(){h&&(h=!1,T(!1))}),v)}),v)})),window.navigator.pointerEnabled?(l="pointerdown",u="pointermove",c="pointerup"):window.navigator.msPointerEnabled?(l="MSPointerDown",u="MSPointerMove",c="MSPointerUp"):(l="touchstart",u="touchmove",c="touchend"),this.init=function(){if(a=n.parent().parent()[0],s=n.parent()[0],!(a&&a.classList.contains("ionic-scroll")&&s&&s.classList.contains("scroll")))throw new Error("Refresher must be immediate child of ion-content or ion-scroll");ionic.on(l,L,s),ionic.on(u,k,s),ionic.on(c,M,s),ionic.on("mousedown",w,s),ionic.on("mousemove",k,s),ionic.on("mouseup",M,s),ionic.on("scroll",x,a),e.$on("$destroy",D)},this.getRefresherDomMethods=function(){return{activate:C,deactivate:E,start:A,show:P,hide:Y,tail:O}},this.__handleTouchmove=k,this.__getScrollChild=function(){return s},this.__getScrollParent=function(){return a}}]),e.controller("$ionicScroll",["$scope","scrollViewOptions","$timeout","$window","$location","$document","$ionicScrollDelegate","$ionicHistory",function(e,t,n,r,o,s,l,u){var c=this;c.__timeout=n,c._scrollViewOptions=t,c.isNative=function(){return!!t.nativeScrolling};var d,h=c.element=t.el,f=c.$element=a(h);d=c.isNative()?c.scrollView=new ionic.views.ScrollNative(t):c.scrollView=new ionic.views.Scroll(t),(f.parent().length?f.parent():f).data("$$ionicScrollController",c);var p=l._registerInstance(c,t.delegateHandle,(function(){return u.isActiveScope(e)}));i(t.bouncing)||ionic.Platform.ready((function(){d&&d.options&&(d.options.bouncing=!0,ionic.Platform.isAndroid()&&(d.options.bouncing=!1,d.options.deceleration=.95))}));var m=angular.bind(d,d.resize);angular.element(r).on("resize",m);var g=function(t){var n=(t.originalEvent||t).detail||{};e.$onScroll&&e.$onScroll({event:t,scrollTop:n.scrollTop||0,scrollLeft:n.scrollLeft||0})};f.on("scroll",g),e.$on("$destroy",(function(){p(),d&&d.__cleanup&&d.__cleanup(),angular.element(r).off("resize",m),f&&f.off("scroll",g),c._scrollViewOptions&&(c._scrollViewOptions.el=null),t&&(t.el=null),d=c.scrollView=t=c._scrollViewOptions=h=c.$element=f=null})),n((function(){d&&d.run&&d.run()})),c.getScrollView=function(){return d},c.getScrollPosition=function(){return d.getValues()},c.resize=function(){return n(m,0,!1).then((function(){f&&f.triggerHandler("scroll-resize")}))},c.scrollTop=function(e){c.resize().then((function(){d&&d.scrollTo(0,0,!!e)}))},c.scrollBottom=function(e){c.resize().then((function(){if(d){var t=d.getScrollMax();d.scrollTo(t.left,t.top,!!e)}}))},c.scrollTo=function(e,t,n){c.resize().then((function(){d&&d.scrollTo(e,t,!!n)}))},c.zoomTo=function(e,t,n,i){c.resize().then((function(){d&&d.zoomTo(e,!!t,n,i)}))},c.zoomBy=function(e,t,n,i){c.resize().then((function(){d&&d.zoomBy(e,!!t,n,i)}))},c.scrollBy=function(e,t,n){c.resize().then((function(){d&&d.scrollBy(e,t,!!n)}))},c.anchorScroll=function(e){c.resize().then((function(){if(d){var t=o.hash(),n=t&&s[0].getElementById(t);if(t&&n){var i=n,r=0,a=0;do{null!==i&&(r+=i.offsetLeft),null!==i&&(a+=i.offsetTop),i=i.offsetParent}while(i.attributes!=c.element.attributes&&i.offsetParent);d.scrollTo(r,a,!!e)}else d.scrollTo(0,0,!!e)}}))},c.freezeScroll=d.freeze,c.freezeScrollShut=d.freezeShut,c.freezeAllScrolls=function(e){for(var t=0;t<l._instances.length;t++)l._instances[t].freezeScroll(e)},c._setRefresher=function(e,t,n){c.refresher=t;var i=c.refresher.clientHeight||60;d.activatePullToRefresh(i,n)}}]),e.controller("$ionicSideMenus",["$scope","$attrs","$ionicSideMenuDelegate","$ionicPlatform","$ionicBody","$ionicHistory","$ionicScrollDelegate","IONIC_BACK_PRIORITY","$rootScope",function(e,t,n,i,o,a,l,u,c){var d,h,f,p,m,g,v,_=this,y=!0;_.$scope=e,_.initialize=function(e){_.left=e.left,_.right=e.right,_.setContent(e.content),_.dragThresholdX=e.dragThresholdX||10,a.registerHistory(_.$scope)},_.setContent=function(e){e&&(_.content=e,_.content.onDrag=function(e){_._handleDrag(e)},_.content.endDrag=function(e){_._endDrag(e)})},_.isOpenLeft=function(){return _.getOpenAmount()>0},_.isOpenRight=function(){return _.getOpenAmount()<0},_.toggleLeft=function(e){if(!v&&_.left.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t<=0),_.content.enableAnimation(),e?(_.openPercentage(100),c.$emit("$ionicSideMenuOpen","left")):(_.openPercentage(0),c.$emit("$ionicSideMenuClose","left"))}},_.toggleRight=function(e){if(!v&&_.right.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t>=0),_.content.enableAnimation(),e?(_.openPercentage(-100),c.$emit("$ionicSideMenuOpen","right")):(_.openPercentage(0),c.$emit("$ionicSideMenuClose","right"))}},_.toggle=function(e){"right"==e?_.toggleRight():_.toggleLeft()},_.close=function(){_.openPercentage(0),c.$emit("$ionicSideMenuClose","left"),c.$emit("$ionicSideMenuClose","right")},_.getOpenAmount=function(){return _.content&&_.content.getTranslateX()||0},_.getOpenRatio=function(){var e=_.getOpenAmount();return e>=0?e/_.left.width:e/_.right.width},_.isOpen=function(){return 0!==_.getOpenAmount()},_.getOpenPercentage=function(){return 100*_.getOpenRatio()},_.openPercentage=function(e){var t=e/100;_.left&&e>=0?_.openAmount(_.left.width*t):_.right&&e<0&&_.openAmount(_.right.width*t),o.enableClass(0!==e,"menu-open"),_.content.setCanScroll(0==e)},_.openAmount=function(e){var t=_.left&&_.left.width||0,n=_.right&&_.right.width||0;(!_.left||!_.left.isEnabled)&&e>0||(!_.right||!_.right.isEnabled)&&e<0?_.content.setTranslateX(0):h&&e>t?_.content.setTranslateX(t):d&&e<-n?_.content.setTranslateX(-n):(_.content.setTranslateX(e),h=e>0,d=e<0,e>0?(_.right&&_.right.pushDown&&_.right.pushDown(),_.left&&_.left.bringUp&&_.left.bringUp()):(_.right&&_.right.bringUp&&_.right.bringUp(),_.left&&_.left.pushDown&&_.left.pushDown()))},_.snapToRest=function(e){_.content.enableAnimation(),f=!1;var t=_.getOpenRatio();if(0!==t){var n=e.gesture.velocityX,i=e.gesture.direction;t>0&&t<.5&&"right"==i&&n<.3?_.openPercentage(0):t>.5&&"left"==i&&n<.3?_.openPercentage(100):t<0&&t>-.5&&"left"==i&&n<.3?_.openPercentage(0):t<.5&&"right"==i&&n<.3?_.openPercentage(-100):"right"==i&&t>=0&&(t>=.5||n>.3)?_.openPercentage(100):"left"==i&&t<=0&&(t<=-.5||n>.3)?_.openPercentage(-100):_.openPercentage(0)}else _.openPercentage(0)},_.enableMenuWithBackViews=function(e){return arguments.length&&(y=!!e),y},_.isAsideExposed=function(){return!!v},_.exposeAside=function(e){(_.left&&_.left.isEnabled||_.right&&_.right.isEnabled)&&(_.close(),v=e,_.left&&_.left.isEnabled&&_.right&&_.right.isEnabled?_.content.setMarginLeftAndRight(v?_.left.width:0,v?_.right.width:0):_.left&&_.left.isEnabled?_.content.setMarginLeft(v?_.left.width:0):_.right&&_.right.isEnabled&&_.content.setMarginRight(v?_.right.width:0),_.$scope.$emit("$ionicExposeAside",v))},_.activeAsideResizing=function(e){o.enableClass(e,"aside-resizing")},_._endDrag=function(e){v||(f&&_.snapToRest(e),p=null,m=null,g=null)},_._handleDrag=function(t){!v&&e.dragContent&&(p?m=t.gesture.touches[0].pageX:(p=t.gesture.touches[0].pageX,m=p),!f&&Math.abs(m-p)>_.dragThresholdX&&(p=m,f=!0,_.content.disableAnimation(),g=_.getOpenAmount()),f&&_.openAmount(g+(m-p)))},_.canDragContent=function(t){return arguments.length&&(e.dragContent=!!t),e.dragContent},_.edgeThreshold=25,_.edgeThresholdEnabled=!1,_.edgeDragThreshold=function(e){return arguments.length&&(r(e)&&e>0?(_.edgeThreshold=e,_.edgeThresholdEnabled=!0):_.edgeThresholdEnabled=!!e),_.edgeThresholdEnabled},_.isDraggableTarget=function(t){var n=_.edgeThresholdEnabled&&!_.isOpen(),i=t.gesture.startEvent&&t.gesture.startEvent.center&&t.gesture.startEvent.center.pageX,r=!n||i<=_.edgeThreshold||i>=_.content.element.offsetWidth-_.edgeThreshold,o=a.backView(),s=!!y||!o;if(!s){var l=a.currentView()||{};return r&&o.historyId!==l.historyId}return(e.dragContent||_.isOpen())&&r&&!t.gesture.srcEvent.defaultPrevented&&s&&!t.target.tagName.match(/input|textarea|select|object|embed/i)&&!t.target.isContentEditable&&!(t.target.dataset?t.target.dataset.preventScroll:"true"==t.target.getAttribute("data-prevent-scroll"))},e.sideMenuContentTranslateX=0;var b=s,w=angular.bind(_,_.close);e.$watch((function(){return 0!==_.getOpenAmount()}),(function(e){b(),e&&(b=i.registerBackButtonAction(w,u.sideMenu))}));var L=n._registerInstance(_,t.delegateHandle,(function(){return a.isActiveScope(e)}));e.$on("$destroy",(function(){L(),b(),_.$scope=null,_.content&&(_.content.setCanScroll(!0),_.content.element=null,_.content=null)})),_.initialize({left:{width:275},right:{width:275}})}]),function(t){var n={a:"animate",an:"attributeName",at:"animateTransform",c:"circle",da:"stroke-dasharray",os:"stroke-dashoffset",f:"fill",lc:"stroke-linecap",rc:"repeatCount",sw:"stroke-width",t:"transform",v:"values"},i={v:"0,32,32;360,32,32",an:"transform",type:"rotate",rc:"indefinite",dur:"750ms"};function r(e,t,i){e.setAttribute(n[t]||t,i)}function o(e,t){var n=e.split(";"),i=n.slice(t),r=n.slice(0,n.length-i.length);return(n=i.concat(r).reverse()).join(";")+";"+n[0]}var a={sw:4,lc:"round",line:[{fn:function(e,t){return{y1:"ios"==t?17:12,y2:"ios"==t?29:20,t:"translate(32,32) rotate("+(30*e+(e<6?180:-180))+")",a:[{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:o("0;.1;.15;.25;.35;.45;.55;.65;.7;.85;1",e),rc:"indefinite"}},t:1}]}},t:12}]},s={android:{c:[{sw:6,da:128,os:82,r:26,cx:32,cy:32,f:"none"}]},ios:a,"ios-small":a,bubbles:{sw:0,c:[{fn:function(e){return{cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",a:[{fn:function(){return{an:"r",dur:"750ms",v:o("1;2;3;4;5;6;7;8",e),rc:"indefinite"}},t:1}]}},t:8}]},circles:{c:[{fn:function(e){return{r:5,cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:o(".3;.3;.3;.4;.7;.85;.9;1",e),rc:"indefinite"}},t:1}]}},t:8}]},crescent:{c:[{sw:4,da:128,os:82,r:26,cx:32,cy:32,f:"none",at:[i]}]},dots:{c:[{fn:function(e){return{cx:16+16*e,cy:32,sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:o(".5;.6;.8;1;.8;.6;.5",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"r",dur:"750ms",v:o("4;5;6;5;4;3;3",e),rc:"indefinite"}},t:1}]}},t:3}]},lines:{sw:7,lc:"round",line:[{fn:function(e){return{x1:10+14*e,x2:10+14*e,a:[{fn:function(){return{an:"y1",dur:"750ms",v:o("16;18;28;18;16",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"y2",dur:"750ms",v:o("48;44;36;46;48",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:o("1;.8;.5;.4;1",e),rc:"indefinite"}},t:1}]}},t:4}]},ripple:{f:"none","fill-rule":"evenodd",sw:3,circle:[{fn:function(e){return{cx:32,cy:32,a:[{fn:function(){return{an:"r",begin:-1*e+"s",dur:"2s",v:"0;24",keyTimes:"0;1",keySplines:"0.1,0.2,0.3,1",calcMode:"spline",rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",begin:-1*e+"s",dur:"2s",v:".2;1;.2;0",rc:"indefinite"}},t:1}]}},t:2}]},spiral:{defs:[{linearGradient:[{id:"sGD",gradientUnits:"userSpaceOnUse",x1:55,y1:46,x2:2,y2:46,stop:[{offset:.1,class:"stop1"},{offset:1,class:"stop2"}]}]}],g:[{sw:4,lc:"round",f:"none",path:[{stroke:"url(#sGD)",d:"M4,32 c0,15,12,28,28,28c8,0,16-4,21-9"},{d:"M60,32 C60,16,47.464,4,32,4S4,16,4,32"}],at:[i]}]}},l={android:function(e){var n={};this.stop=!1;var i,o=0,a=0,s=e.querySelector("g"),l=e.querySelector("circle");function u(){if(!n.stop){var e=function(e,t){return(e/=325)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}(Date.now()-i),c=1,d=0,h=188-58*e,f=182-182*e;o%2&&(c=-1,d=-64,h=128- -58*e,f=182*e);var p=[0,-101,-90,-11,-180,79,-270,-191][o];r(l,"da",Math.max(Math.min(h,188),128)),r(l,"os",Math.max(Math.min(f,182),0)),r(l,"t","scale("+c+",1) translate("+d+",0) rotate("+p+",32,32)"),(a+=4.1)>359&&(a=0),r(s,"t","rotate("+a+",32,32)"),e>=1&&(++o>7&&(o=0),i=Date.now()),t.requestAnimationFrame(u)}}return function(){return i=Date.now(),u(),n}}};e.controller("$ionicSpinner",["$element","$attrs","$ionicConfig",function(e,t,i){var o,a;this.init=function(){o=t.icon||i.spinner.icon();var a=document.createElement("div");return function e(t,i,o,a){var s,l,u,c=document.createElement(n[t]||t);for(s in i)if(angular.isArray(i[s]))for(l=0;l<i[s].length;l++)if(i[s][l].fn)for(u=0;u<i[s][l].t;u++)e(s,i[s][l].fn(u,a),c,a);else e(s,i[s][l],c,a);else r(c,s,i[s]);o.appendChild(c)}("svg",{viewBox:"0 0 64 64",g:[s[o]]},a,o),e.html(a.innerHTML),this.start(),o},this.start=function(){l[o]&&(a=l[o](e[0])())},this.stop=function(){l[o]&&(a.stop=!0)}}])}(ionic),e.controller("$ionicTab",["$scope","$ionicHistory","$attrs","$location","$state",function(e,t,n,i,r){this.$scope=e,this.hrefMatchesState=function(){return n.href&&0===i.path().indexOf(n.href.replace(/^#/,"").replace(/\/$/,""))},this.srefMatchesState=function(){return n.uiSref&&r.includes(n.uiSref.split("(")[0])},this.navNameMatchesState=function(){return this.navViewName&&t.isCurrentStateNavView(this.navViewName)},this.tabMatchesState=function(){return this.hrefMatchesState()||this.srefMatchesState()||this.navNameMatchesState()}}]),e.controller("$ionicTabs",["$scope","$element","$ionicHistory",function(e,t,i){var o,a=this,l=null,u=null,c=!0;a.tabs=[],a.selectedIndex=function(){return a.tabs.indexOf(l)},a.selectedTab=function(){return l},a.previousSelectedTab=function(){return u},a.add=function(e){i.registerHistory(e),a.tabs.push(e)},a.remove=function(e){var t=a.tabs.indexOf(e);if(-1!==t){if(e.$tabSelected)if(a.deselect(e),1===a.tabs.length);else{var n=t===a.tabs.length-1?t-1:t+1;a.select(a.tabs[n])}a.tabs.splice(t,1)}},a.deselect=function(e){e.$tabSelected&&(u=l,l=o=null,e.$tabSelected=!1,(e.onDeselect||s)(),e.$broadcast&&e.$broadcast("$ionicHistory.deselect"))},a.select=function(t,u){var c;if(r(t)){if((c=t)>=a.tabs.length)return;t=a.tabs[c]}else c=a.tabs.indexOf(t);1===arguments.length&&(u=!(!t.navViewName&&!t.uiSref)),l&&l.$historyId==t.$historyId?u&&i.goToHistoryRoot(t.$historyId):o!==c&&(n(a.tabs,(function(e){a.deselect(e)})),l=t,o=c,a.$scope&&a.$scope.$parent&&(a.$scope.$parent.$activeHistoryId=t.$historyId),t.$tabSelected=!0,(t.onSelect||s)(),u&&e.$emit("$ionicHistory.change",{type:"tab",tabIndex:c,historyId:t.$historyId,navViewName:t.navViewName,hasNavView:!!t.navViewName,title:t.title,url:t.href,uiSref:t.uiSref}),e.$broadcast("tabSelected",{selectedTab:t,selectedTabIndex:c}))},a.hasActiveScope=function(){for(var e=0;e<a.tabs.length;e++)if(i.isActiveScope(a.tabs[e]))return!0;return!1},a.showBar=function(e){return arguments.length&&(e?t.removeClass("tabs-item-hide"):t.addClass("tabs-item-hide"),c=!!e),c}}]),e.controller("$ionicView",["$scope","$element","$attrs","$compile","$rootScope",function(e,n,r,o,a){var s,l,u,c=this,d={},h=[],f=e.$on("ionNavBar.init",(function(e,t){e.stopPropagation(),l=t}));function p(){var t=i(r.viewTitle)?"viewTitle":i(r.title)&&"title";t&&(m(r[t]),h.push(r.$observe(t,m))),i(r.hideBackButton)&&h.push(e.$watch(r.hideBackButton,(function(e){s.showBackButton(!e)}))),i(r.hideNavBar)&&h.push(e.$watch(r.hideNavBar,(function(e){s.showBar(!e)})))}function m(e){i(e)&&e!==u&&(u=e,s.title(u))}function g(){for(var e=0;e<h.length;e++)h[e]();h=[]}function v(t){if(t)return o(t)(e.$new())}function _(t){return!!e.$eval(r[t])}c.init=function(){f();var t=n.inheritedData("$ionModalController");(s=n.inheritedData("$ionNavViewController"))&&!t&&(e.$on("$ionicView.beforeEnter",c.beforeEnter),e.$on("$ionicView.afterEnter",p),e.$on("$ionicView.beforeLeave",g))},c.beforeEnter=function(n,o){if(o&&!o.viewNotified){o.viewNotified=!0,a.$$phase||e.$digest(),u=i(r.viewTitle)?r.viewTitle:r.title;var c={};for(var h in d)c[h]=v(d[h]);s.beforeEnter(t(o,{title:u,showBack:!_("hideBackButton"),navBarItems:c,navBarDelegate:l||null,showNavBar:!_("hideNavBar"),hasHeaderBar:!1})),g()}},c.navElement=function(e,t){d[e]=t}}]),e.directive("ionActionSheet",["$document",function(e){return{restrict:"E",scope:!0,replace:!0,link:function(t,n){var i=function(e){27==e.which&&(t.cancel(),t.$apply())};t.$on("$destroy",(function(){n.remove(),e.unbind("keyup",i)})),e.bind("keyup",i),n.bind("click",(function(e){e.target==n[0]&&(t.cancel(),t.$apply())}))},template:'<div class="action-sheet-backdrop"><div class="action-sheet-wrapper"><div class="action-sheet" ng-class="{\'action-sheet-has-icons\': $actionSheetHasIcon}"><div class="action-sheet-group action-sheet-options"><div class="action-sheet-title" ng-if="titleText" ng-bind-html="titleText"></div><button class="button action-sheet-option" ng-click="buttonClicked($index)" ng-class="b.className" ng-repeat="b in buttons" ng-bind-html="b.text"></button><button class="button destructive action-sheet-destructive" ng-if="destructiveText" ng-click="destructiveButtonClicked()" ng-bind-html="destructiveText"></button></div><div class="action-sheet-group action-sheet-cancel" ng-if="cancelText"><button class="button" ng-click="cancel()" ng-bind-html="cancelText"></button></div></div></div></div>'}}]),e.directive("ionCheckbox",["$ionicConfig",function(e){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-checkbox"><div class="checkbox checkbox-input-hidden disable-pointer-events"><input type="checkbox"><i class="checkbox-icon"></i></div><div class="item-content disable-pointer-events" ng-transclude></div></label>',compile:function(t,r){var o=t.find("input");n({name:r.name,"ng-value":r.ngValue,"ng-model":r.ngModel,"ng-checked":r.ngChecked,"ng-disabled":r.ngDisabled,"ng-true-value":r.ngTrueValue,"ng-false-value":r.ngFalseValue,"ng-change":r.ngChange,"ng-required":r.ngRequired,required:r.required},(function(e,t){i(e)&&o.attr(t,e)})),t[0].querySelector(".checkbox").classList.add("checkbox-"+e.form.checkbox())}}}]),e.directive("collectionRepeat",f).factory("$ionicCollectionManager",p);var c="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",d=/height:.*?px;\s*width:.*?px/,h=3;function f(e,t,n,r,o,a){return{restrict:"A",priority:1e3,transclude:"element",$$tlb:!0,require:"^^$ionicScroll",link:function(r,s,l,u,c){var d=u.scrollView,f=s[0],p=angular.element('<div class="collection-repeat-container">')[0];if(f.parentNode.replaceChild(p,f),d.options.scrollingX&&d.options.scrollingY)throw new Error("collection-repeat expected a parent x or y scrollView, not an xy scrollView.");var m=l.collectionRepeat,g=m.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!g)throw new Error("collection-repeat expected expression in form of '_item_ in _collection_[ track by _id_]' but got '"+l.collectionRepeat+"'.");var v,_=g[1],y=g[2],b=t(y),w={},L={},M={},k=[],x=l.itemRenderBuffer||l.collectionBufferSize,S=angular.isDefined(x)?parseInt(x):h,T=l.itemHeight||l.collectionItemHeight,$=l.itemWidth||l.collectionItemWidth,D=function(){var e=angular.element(d.__content.querySelector(".collection-repeat-after-container"));if(!e.length){var t=!1,n=[].filter.call(d.__content.childNodes,(function(e){return ionic.DomUtil.contains(e,p)?(t=!0,!1):t}));e=angular.element('<span class="collection-repeat-after-container">'),d.options.scrollingX&&e.addClass("horizontal"),e.append(n),d.__content.appendChild(e[0])}return e}(),C=function(){var e;return e={dataLength:0,width:0,height:0,resizeRequiresRefresh:function(t,n){var i=e.dataLength&&t&&n&&(t!==e.width||n!==e.height);return e.width=t,e.height=n,!!i},dataChangeRequiresRefresh:function(t){var n=t.length>0||t.length<e.dataLength;return e.dataLength=t.length,!!n}}}();T?j(T,w):w.computed=!0,$?j($,L):L.computed=!0,u.$element.on("scroll-resize",I),angular.element(n).on("resize",Y);var E,A,P=o.$on("$ionicExposeAside",ionic.animationFrameThrottle((function(){u.scrollView.resize(),Y()})));function Y(){C.resizeRequiresRefresh(d.__clientWidth,d.__clientHeight)&&I()}function O(){return v||(v=new e({afterItemsNode:D[0],containerNode:p,heightData:w,widthData:L,forceRefreshImages:!(!i(l.forceRefreshImages)||"false"===l.forceRefreshImages),keyExpression:_,renderBuffer:S,scope:r,scrollView:u.scrollView,transclude:c}))}function I(){var e=k.length>0;if(e&&(w.computed||L.computed)&&function(){E||c(A=r.$new(),(function(e){e[0].removeAttribute("collection-repeat"),E=e[0]})),A[_]=(b(r)||[])[0],o.$$phase||A.$digest(),p.appendChild(E);var e=n.getComputedStyle(E);M.width=parseInt(e.width),M.height=parseInt(e.height),p.removeChild(E)}(),e&&w.computed){if(w.value=M.height,!w.value)throw new Error('collection-repeat tried to compute the height of repeated elements "'+m+'", but was unable to. Please provide the "item-height" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!w.dynamic&&w.getValue&&(w.value=w.getValue());if(e&&L.computed){if(L.value=M.width,!L.value)throw new Error('collection-repeat tried to compute the width of repeated elements "'+m+'", but was unable to. Please provide the "item-width" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!L.dynamic&&L.getValue&&(L.value=L.getValue());O().refreshLayout()}function j(e,n){if(e){var i;try{i=t(e)}catch(n){e.trim().match(/\d+(px|%)$/)&&(e='"'+e+'"'),i=t(e)}var r=e.replace(/(\'|\"|px|%)/g,"").trim(),o=r.length&&!/([a-zA-Z]|\$|:|\?)/.test(r);if(n.attrValue=e,o)if(e.indexOf("%")>-1){var a=parseFloat(i())/100;n.getValue=n===w?function(){return Math.floor(a*d.__clientHeight)}:function(){return Math.floor(a*d.__clientWidth)}}else n.value=parseInt(i());else n.dynamic=!0,n.getValue=n===w?function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*d.__clientHeight):parseInt(n)}:function(e,t){var n=i(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*d.__clientWidth):parseInt(n)}}}a(I,0,!1),r.$watchCollection(b,(function(e){if(k=e||(e=[]),!angular.isArray(e))throw new Error("collection-repeat expected an array for '"+y+"', but got a "+typeof value);r.$$postDigest((function(){O().setData(k),C.dataChangeRequiresRefresh(k)&&I()}))})),r.$on("$destroy",(function(){angular.element(n).off("resize",Y),P(),u.$element&&u.$element.off("scroll-resize",I),E&&E.parentNode&&E.parentNode.removeChild(E),A&&A.$destroy(),A=E=null,v&&v.destroy(),v=null}))}}}function p(e,t,n){var i={primaryPos:0,secondaryPos:0,primarySize:0,secondarySize:0,rowPrimarySize:0};return function(r){var o,a,s=r.afterItemsNode,l=r.containerNode,u=r.forceRefreshImages,h=r.heightData,f=r.widthData,p=r.keyExpression,m=r.renderBuffer,g=r.scope,v=r.scrollView,_=r.transclude,y=[],b={},w=h.getValue||function(){return h.value},L=function(e,t){return b[p]=t,b.$index=e,w(g,b)},M=f.getValue||function(){return f.value},k=function(e,t){return b[p]=t,b.$index=e,M(g,b)},x=!!v.options.scrollingY,S=x?f.dynamic||f.value!==v.__clientWidth:h.dynamic||h.value!==v.__clientHeight,T=!h.dynamic&&!f.dynamic,$="PRIMARY",D="SECONDARY",C=x?"translate3d(SECONDARYpx,PRIMARYpx,0)":"translate3d(PRIMARYpx,SECONDARYpx,0)",E=x?"height: PRIMARYpx; width: SECONDARYpx;":"height: SECONDARYpx; width: PRIMARYpx;",A=0,P=0,Y=-1,O=-1,I=-1,j=-1,H=[],B=[],N=[],R={},F=0,z=x?function(){v.setDimensions(null,null,null,V.getContentSize(),!0)}:function(){v.setDimensions(null,null,V.getContentSize(),null,!0)},V=x?new function(){this.getItemPrimarySize=L,this.getItemSecondarySize=k,this.getScrollValue=function(){return Math.max(0,Math.min(v.__scrollTop-A,v.__maxScrollTop-A-P))},this.refreshDirection=function(){this.scrollPrimarySize=v.__clientHeight,this.scrollSecondarySize=v.__clientWidth,this.estimatedPrimarySize=o,this.estimatedSecondarySize=a,this.estimatedItemsAcross=S&&Math.floor(v.__clientWidth/a)||1}}:new function(){this.getItemPrimarySize=k,this.getItemSecondarySize=L,this.getScrollValue=function(){return Math.max(0,Math.min(v.__scrollLeft-A,v.__maxScrollLeft-A-P))},this.refreshDirection=function(){this.scrollPrimarySize=v.__clientWidth,this.scrollSecondarySize=v.__clientHeight,this.estimatedPrimarySize=a,this.estimatedSecondarySize=o,this.estimatedItemsAcross=S&&Math.floor(v.__clientHeight/o)||1}};(S?function(){this.getEstimatedSecondaryPos=function(e){return e%this.estimatedItemsAcross*this.estimatedSecondarySize},this.getEstimatedPrimaryPos=function(e){return Math.floor(e/this.estimatedItemsAcross)*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)*this.estimatedItemsAcross}}:function(){this.getEstimatedSecondaryPos=function(){return 0},this.getEstimatedPrimaryPos=function(e){return e*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)}}).call(V),(T?function(){this.getContentSize=function(){return this.getEstimatedPrimaryPos(y.length-1)+this.estimatedPrimarySize+A+P};var e={};this.getDimensions=function(t){return e.primaryPos=this.getEstimatedPrimaryPos(t),e.secondaryPos=this.getEstimatedSecondaryPos(t),e.primarySize=this.estimatedPrimarySize,e.secondarySize=this.estimatedSecondarySize,e},this.updateRenderRange=function(e,t){Y=Math.max(0,this.getEstimatedIndex(e)),O=Math.min(y.length-1,this.getEstimatedIndex(t)+this.estimatedItemsAcross-1),j=Math.max(0,this.getEstimatedPrimaryPos(Y)),I=this.getEstimatedPrimaryPos(O)+this.estimatedPrimarySize}}:function(){var e,t=this,n=ionic.debounce(z,25,!0),r=S?function(n){var r,a,s;for(r=Math.max(e,0);r<=n&&(s=o[r]);r++)a=o[r-1]||i,s.secondarySize=Math.min(t.getItemSecondarySize(r,y[r]),t.scrollSecondarySize),s.secondaryPos=a.secondaryPos+a.secondarySize,0===r||s.secondaryPos+s.secondarySize>t.scrollSecondarySize?(s.secondaryPos=0,s.primarySize=t.getItemPrimarySize(r,y[r]),s.primaryPos=a.primaryPos+a.rowPrimarySize,s.rowStartIndex=r,s.rowPrimarySize=s.primarySize):(s.primarySize=t.getItemPrimarySize(r,y[r]),s.primaryPos=a.primaryPos,s.rowStartIndex=a.rowStartIndex,o[s.rowStartIndex].rowPrimarySize=s.rowPrimarySize=Math.max(o[s.rowStartIndex].rowPrimarySize,s.primarySize),s.rowPrimarySize=Math.max(s.primarySize,s.rowPrimarySize))}:function(n){var r,a,s;for(r=Math.max(0,e);r<=n&&(s=o[r]);r++)a=o[r-1]||i,s.primarySize=t.getItemPrimarySize(r,y[r]),s.secondarySize=t.scrollSecondarySize,s.primaryPos=a.primaryPos+a.primarySize,s.secondaryPos=0},o=[];this.getContentSize=function(){var t=o[e]||i;return(t.primaryPos+t.primarySize||0)+this.getEstimatedPrimaryPos(y.length-e-1)+A+P},this.onDestroy=function(){o.length=0},this.onRefreshData=function(){var t,n;for(t=o.length,n=y.length;t<n;t++)o.push({});e=-1},this.onRefreshLayout=function(){e=-1},this.getDimensions=function(t){return t=Math.min(t,y.length-1),e<t&&(t>.9*y.length?(r(y.length-1),e=y.length-1,z()):(r(t),e=t,n())),o[t]};var a=-1,s=-1;this.updateRenderRange=function(e,t){var n,i,r,o;if(this.getDimensions(2*this.getEstimatedIndex(t)),-1===a||0===e)n=0;else if(e>=s)for(n=a,i=y.length;n<i&&!((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>=e);n++);else for(n=a;n>=0;n--)if((r=this.getDimensions(n))&&r.primaryPos<=e){n=S?r.rowStartIndex:n;break}for(Y=Math.min(Math.max(0,n),y.length-1),j=-1!==Y?this.getDimensions(Y).primaryPos:-1,n=Y+1,i=y.length;n<i;n++)if((r=this.getDimensions(n))&&r.primaryPos+r.rowPrimarySize>t){if(S)for(o=r;n<i-1&&(r=this.getDimensions(n+1)).primaryPos===o.primaryPos;)n++;break}O=Math.min(n,y.length-1),I=-1!==O?(r=this.getDimensions(O)).primaryPos+(r.rowPrimarySize||r.primarySize):-1,s=e,a=Y}}).call(V);var U=x?"getContentHeight":"getContentWidth",W=v.options[U];v.options[U]=angular.bind(V,V.getContentSize),v.__$callback=v.__callback,v.__callback=function(e,t,n,i){var r=V.getScrollValue();(-1===Y||r+V.scrollPrimarySize>I||r<j)&&Z(),v.__$callback(e,t,n,i)};var q=!1,G=!1;function Z(t){if(!Z.destroyed){var r,o,a,l,h,f=V.getScrollValue(),g=f+V.scrollPrimarySize;for(r in V.updateRenderRange(f,g),Y=Math.max(0,Y-m),O=Math.min(y.length-1,O+m),R)(r<Y||r>O)&&(a=R[r],delete R[r],B.push(a),a.isShown=!1);for(r=Y;r<=O;r++)r>=y.length||R[r]&&!t||(a=R[r]||(R[r]=B.length?B.pop():H.length?H.shift():new J),N.push(a),a.isShown=!0,(h=a.scope).$index=r,h[p]=y[r],h.$first=0===r,h.$last=r===y.length-1,h.$middle=!(h.$first||h.$last),h.$odd=!(h.$even=0==(1&r)),h.$$disconnected&&ionic.Utils.reconnectScope(a.scope),l=V.getDimensions(r),a.secondaryPos===l.secondaryPos&&a.primaryPos===l.primaryPos||(a.node.style[ionic.CSS.TRANSFORM]=C.replace($,a.primaryPos=l.primaryPos).replace(D,a.secondaryPos=l.secondaryPos)),a.secondarySize===l.secondarySize&&a.primarySize===l.primarySize||(a.node.style.cssText=a.node.style.cssText.replace(d,E.replace($,(a.primarySize=l.primarySize)+1).replace(D,a.secondarySize=l.secondarySize))));for(O===y.length-1&&(l=V.getDimensions(y.length-1)||i,s.style[ionic.CSS.TRANSFORM]=C.replace($,l.primaryPos+l.primarySize).replace(D,0));B.length;)(a=B.pop()).scope.$broadcast("$collectionRepeatLeave"),ionic.Utils.disconnectScope(a.scope),H.push(a),a.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",a.primaryPos=a.secondaryPos=null;if(u)for(r=0,o=N.length;r<o&&(a=N[r]);r++)if(a.images)for(var v,_=0,b=a.images.length;_<b&&(v=a.images[_]);_++){var w=v.src;v.src=c,v.src=w}if(t)for(var L=e.$$phase;N.length;)a=N.pop(),L||a.scope.$digest();else!function t(){var i;t.running||(t.running=!0,n((function(){for(var n=e.$$phase;N.length;)(i=N.pop()).isShown&&(n||i.scope.$digest());t.running=!1})))}()}}function J(){var e=this;this.scope=g.$new(),this.id="item"+F++,_(this.scope,(function(t){e.element=t,e.element.data("$$collectionRepeatItem",e),e.node=t[0],e.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",e.node.style.cssText+=" height: 0px; width: 0px;",ionic.Utils.disconnectScope(e.scope),l.appendChild(e.node),e.images=t[0].getElementsByTagName("img")}))}this.refreshLayout=function(){y.length?(o=L(0,y[0]),a=k(0,y[0])):(o=100,a=100);var e=getComputedStyle(s)||{},n=s.firstElementChild&&getComputedStyle(s.firstElementChild)||{},i=s.lastElementChild&&getComputedStyle(s.lastElementChild)||{};P=(parseInt(e[x?"height":"width"])||0)+(n&&parseInt(n[x?"marginTop":"marginLeft"])||0)+(i&&parseInt(i[x?"marginBottom":"marginRight"])||0),A=0;var r=l;do{A+=r[x?"offsetTop":"offsetLeft"]}while(ionic.DomUtil.contains(v.__content,r=r.offsetParent));var u=l.previousElementSibling,c=u?t.getComputedStyle(u):{},d=parseInt(c[x?"marginBottom":"marginRight"]||0);if(l.style[ionic.CSS.TRANSFORM]=C.replace($,-d).replace(D,0),A-=d,v.__clientHeight&&v.__clientWidth||(v.__clientWidth=v.__container.clientWidth,v.__clientHeight=v.__container.clientHeight),(V.onRefreshLayout||angular.noop)(),V.refreshDirection(),z(),!q)for(var h=Math.max(20,3*m),f=0;f<h;f++)H.push(new J);(q=!0)&&G&&((v.__scrollLeft>v.__maxScrollLeft||v.__scrollTop>v.__maxScrollTop)&&v.resize(),Z(!0))},this.setData=function(e){y=e,(V.onRefreshData||angular.noop)(),G=!0},this.destroy=function(){Z.destroyed=!0,H.forEach((function(e){e.scope.$destroy(),e.scope=e.element=e.node=e.images=null})),H.length=N.length=B.length=0,R={},v.options[U]=W,v.__callback=v.__$callback,v.resize(),(V.onDestroy||angular.noop)()}}}function m(e){return["$document","$timeout",function(t,n){return{restrict:"E",controller:"$ionicHeaderBar",compile:function(i){return i.addClass(e?"bar bar-header":"bar bar-footer"),n((function(){e&&t[0].getElementsByClassName("tabs-top").length&&i.addClass("has-tabs-top")})),{pre:function(t,n,i,r){e?(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subheader");t.$hasHeader=n&&!i,t.$hasSubheader=n&&i,t.$emit("$ionicSubheader",t.$hasSubheader)})),t.$on("$destroy",(function(){delete t.$hasHeader,delete t.$hasSubheader})),r.align(),t.$on("$ionicHeader.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))}))):(t.$watch((function(){return n[0].className}),(function(e){var n=-1===e.indexOf("ng-hide"),i=-1!==e.indexOf("bar-subfooter");t.$hasFooter=n&&!i,t.$hasSubfooter=n&&i})),t.$on("$destroy",(function(){delete t.$hasFooter,delete t.$hasSubfooter})),t.$watch("$hasTabs",(function(e){n.toggleClass("has-tabs",!!e)})),r.align(),t.$on("$ionicFooter.align",(function(){ionic.requestAnimationFrame((function(){r.align()}))})))}}}}}]}f.$inject=["$ionicCollectionManager","$parse","$window","$$rAF","$rootScope","$timeout"],p.$inject=["$rootScope","$window","$$rAF"],e.directive("ionContent",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",require:"^?ionNavView",scope:!0,priority:800,compile:function(e,o){var l,u;e.addClass("scroll-content ionic-scroll"),"false"!=o.scroll?((l=a('<div class="scroll"></div>')).append(e.contents()),e.append(l)):e.addClass("scroll-content-false");var c="false"!==o.overflowScroll&&("true"===o.overflowScroll||!r.scrolling.jsScrolling());return c&&(c=!e[0].querySelector("[collection-repeat]")),{pre:function(e,r,a){var d=e.$parent;if(e.$watch((function(){return(d.$hasHeader?" has-header":"")+(d.$hasSubheader?" has-subheader":"")+(d.$hasFooter?" has-footer":"")+(d.$hasSubfooter?" has-subfooter":"")+(d.$hasTabs?" has-tabs":"")+(d.$hasTabsTop?" has-tabs-top":"")}),(function(e,t){r.removeClass(t),r.addClass(e)})),e.$hasHeader=e.$hasSubheader=e.$hasFooter=e.$hasSubfooter=e.$hasTabs=e.$hasTabsTop=!1,n(e,a,{$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",hasBouncing:"@",padding:"@",direction:"@",scrollbarX:"@",scrollbarY:"@",startX:"@",startY:"@",scrollEventInterval:"@"}),e.direction=e.direction||"y",i(a.padding)&&e.$watch(a.padding,(function(e){(l||r).toggleClass("padding",!!e)})),"false"===a.scroll);else{var h={};c?(r.addClass("overflow-scroll"),h={el:r[0],delegateHandle:o.delegateHandle,startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,nativeScrolling:!0}):h={el:r[0],delegateHandle:o.delegateHandle,locking:"true"===(o.locking||"true"),bouncing:e.$eval(e.hasBouncing),startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,scrollEventInterval:parseInt(e.scrollEventInterval,10)||10,scrollingComplete:function(){e.$onScrollComplete({scrollTop:u.scrollView.__scrollTop,scrollLeft:u.scrollView.__scrollLeft})}},u=t("$ionicScroll",{$scope:e,scrollViewOptions:h}),e.scrollCtrl=u,e.$on("$destroy",(function(){h&&(h.scrollingComplete=s,delete h.el),l=null,r=null,o.$$element=null}))}}}}}}]),e.directive("exposeAsideWhen",["$window",function(e){return{restrict:"A",require:"^ionSideMenus",link:function(t,n,i,r){var o=e.innerWidth,a=e.innerHeight;function s(){var t="large"==i.exposeAsideWhen?"(min-width:768px)":i.exposeAsideWhen;r.exposeAside(e.matchMedia(t).matches),r.activeAsideResizing(!1)}ionic.on("resize",(function(){o===e.innerWidth&&a===e.innerHeight||(o=e.innerWidth,a=e.innerHeight,r.activeAsideResizing(!0),l())}),e);var l=ionic.debounce((function(){t.$apply(s)}),300,!1);t.$evalAsync(s)}}}]),"onHold onTap onDoubleTap onTouch onRelease onDragStart onDrag onDragEnd onDragUp onDragRight onDragDown onDragLeft onSwipe onSwipeUp onSwipeRight onSwipeDown onSwipeLeft".split(" ").forEach((function(t){var n;e.directive(t,(n=t,["$ionicGesture","$parse",function(e,t){var i=n.substr(2).toLowerCase();return function(r,o,a){var s=t(a[n]),l=function(e){r.$apply((function(){s(r,{$event:e})}))},u=e.on(i,l,o);r.$on("$destroy",(function(){e.off(u,i,l)}))}}]))})),e.directive("ionHeaderBar",m(!0)).directive("ionFooterBar",m(!1)),e.directive("ionInfiniteScroll",["$timeout",function(e){return{restrict:"E",require:["?^$ionicScroll","ionInfiniteScroll"],template:function(e,t){return t.icon?'<i class="icon {{icon()}} icon-refreshing {{scrollingType}}"></i>':'<ion-spinner icon="{{spinner()}}"></ion-spinner>'},scope:!0,controller:"$ionInfiniteScroll",link:function(t,n,r,o){var a=o[1],s=a.scrollCtrl=o[0];if(a.jsScrolling=!s.isNative())a.scrollView=s.scrollView,t.scrollingType="js-scrolling",s.$element.on("scroll",a.checkBounds);else{var l=ionic.DomUtil.getParentOrSelfWithClass(n[0].parentNode,"overflow-scroll");if(a.scrollEl=l,!l)throw"Infinite scroll must be used inside a scrollable div";a.scrollEl.addEventListener("scroll",a.checkBounds)}(!i(r.immediateCheck)||t.$eval(r.immediateCheck))&&e((function(){a.checkBounds()}))}}}]);var g=-1;function v(e){e.stopPropagation()}e.directive("ionInput",[function(){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t,this.setInputAriaLabeledBy=function(e){var n=t[0].querySelectorAll("input,textarea");n.length&&n[0].setAttribute("aria-labelledby",e)},this.focus=function(){var e=t[0].querySelectorAll("input,textarea");e.length&&e[0].focus()}}]}}]),e.directive("ionLabel",[function(){return{restrict:"E",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.addClass("input-label"),t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&(i.setInputAriaLabeledBy(o),t.on("click",(function(){i.focus()})))}}}}]),e.directive("inputLabel",[function(){return{restrict:"C",require:"?^ionInput",compile:function(){return function(e,t,n,i){var r=t[0];t.attr("aria-label",t.text());var o=r.id||"_label-"+ ++g;r.id||t.attr("id",o),i&&i.setInputAriaLabeledBy(o)}}}}]),e.directive("ionItem",["$$rAF",function(e){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t}],scope:!0,compile:function(t,n){var r=i(n.href)||i(n.ngHref)||i(n.uiSref);if(r||/ion-(delete|option|reorder)-button/i.test(t.html())){var o=a(r?"<a></a>":"<div></div>");o.addClass("item-content"),(i(n.href)||i(n.ngHref))&&(o.attr("ng-href","{{$href()}}"),i(n.target)&&o.attr("target","{{$target()}}")),o.append(t.contents()),t.addClass("item item-complex").append(o)}else t.addClass("item");return function(t,n,i){t.$href=function(){return i.href||i.ngHref},t.$target=function(){return i.target};var r=n[0].querySelector(".item-content");r&&t.$on("$collectionRepeatLeave",(function(){r&&r.$$ionicOptionsOpen&&(r.style[ionic.CSS.TRANSFORM]="",r.style[ionic.CSS.TRANSITION]="none",e((function(){r.style[ionic.CSS.TRANSITION]=""})),r.$$ionicOptionsOpen=!1)}))}}}}]),e.directive("ionDeleteButton",(function(){function e(e){e.stopPropagation()}return{restrict:"E",require:["^^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),function(t,n,i,r){var o=r[0],s=r[1],l=a('<div class="item-left-edit item-delete enable-pointer-events"></div>');function u(){(s=s||n.controller("ionList"))&&s.showDelete()&&l.addClass("visible active")}l.append(n),o.$element.append(l).addClass("item-left-editable"),n.on("click",e),u(),t.$on("$ionic.reconnectScope",u)}}}})),e.directive("itemFloatingLabel",(function(){return{restrict:"C",link:function(e,t){var n=t[0],i=n.querySelector("input, textarea"),r=n.querySelector(".input-label");if(i&&r){var o=function(){i.value?r.classList.add("has-input"):r.classList.remove("has-input")};i.addEventListener("input",o);var s=a(i).controller("ngModel");s&&(s.$render=function(){i.value=s.$viewValue||"",o()}),e.$on("$destroy",(function(){i.removeEventListener("input",o)}))}}}})),e.directive("ionOptionButton",[function(){function e(e){e.stopPropagation()}return{restrict:"E",require:"^ionItem",priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button",!0),function(t,n,i,r){r.optionsContainer||(r.optionsContainer=a('<div class="item-options invisible"></div>'),r.$element.prepend(r.optionsContainer)),r.optionsContainer.prepend(n),r.$element.addClass("item-right-editable"),n.on("click",e)}}}}]),e.directive("ionReorderButton",["$parse",function(e){return{restrict:"E",require:["^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),t[0].setAttribute("data-prevent-scroll",!0),function(t,n,i,r){var o=r[0],s=r[1],l=e(i.onReorder);t.$onReorder=function(e,n){l(t,{$fromIndex:e,$toIndex:n})},i.ngClick||i.onClick||i.onclick||(n[0].onclick=function(e){return e.stopPropagation(),!1});var u=a('<div data-prevent-scroll="true" class="item-right-edit item-reorder enable-pointer-events"></div>');u.append(n),o.$element.append(u).addClass("item-right-editable"),s&&s.showReorder()&&u.addClass("visible active")}}}}]),e.directive("keyboardAttach",(function(){return function(e,t){var n;function i(e){if(!ionic.Platform.isAndroid()||ionic.Platform.isFullScreen){var i=e.keyboardHeight||e.detail&&e.detail.keyboardHeight;t.css("bottom",i+"px"),(n=t.controller("$ionicScroll"))&&(n.scrollView.__container.style.bottom=i+function(e){return e.clientHeight}(t[0])+"px")}}function r(){ionic.Platform.isAndroid()&&!ionic.Platform.isFullScreen||(t.css("bottom",""),n&&(n.scrollView.__container.style.bottom=""))}ionic.on("native.keyboardshow",i,window),ionic.on("native.keyboardhide",r,window),ionic.on("native.showkeyboard",i,window),ionic.on("native.hidekeyboard",r,window),e.$on("$destroy",(function(){ionic.off("native.keyboardshow",i,window),ionic.off("native.keyboardhide",r,window),ionic.off("native.showkeyboard",i,window),ionic.off("native.hidekeyboard",r,window)}))}})),e.directive("ionList",["$timeout",function(e){return{restrict:"E",require:["ionList","^?$ionicScroll"],controller:"$ionicList",compile:function(t,n){var r=a('<div class="list">').append(t.contents()).addClass(n.type);return t.append(r),function(t,r,o,s){var l=s[0],u=s[1];e((function(){var o=l.listView=new ionic.views.ListView({el:r[0],listEl:r.children()[0],scrollEl:u&&u.element,scrollView:u&&u.scrollView,onReorder:function(t,n,i){var r=a(t).scope();r&&r.$onReorder&&e((function(){r.$onReorder(n,i)}))},canSwipe:function(){return l.canSwipeItems()}});function s(e,t){t()&&e.addClass("visible")||e.removeClass("active"),ionic.requestAnimationFrame((function(){t()&&e.addClass("active")||e.removeClass("visible")}))}t.$on("$destroy",(function(){o&&(o.deregister&&o.deregister(),o=null)})),i(n.canSwipe)&&t.$watch("!!("+n.canSwipe+")",(function(e){l.canSwipeItems(e)})),i(n.showDelete)&&t.$watch("!!("+n.showDelete+")",(function(e){l.showDelete(e)})),i(n.showReorder)&&t.$watch("!!("+n.showReorder+")",(function(e){l.showReorder(e)})),t.$watch((function(){return l.showDelete()}),(function(e,t){(e||t)&&(e&&l.closeOptionButtons(),l.canSwipeItems(!e),r.children().toggleClass("list-left-editing",e),r.toggleClass("disable-pointer-events",e),s(a(r[0].getElementsByClassName("item-delete")),l.showDelete))})),t.$watch((function(){return l.showReorder()}),(function(e,t){(e||t)&&(e&&l.closeOptionButtons(),l.canSwipeItems(!e),r.children().toggleClass("list-right-editing",e),r.toggleClass("disable-pointer-events",e),s(a(r[0].getElementsByClassName("item-reorder")),l.showReorder))}))}))}}}}]),e.directive("menuClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,i){i.bind("click",(function(){var n=i.inheritedData("$ionSideMenusController");n&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t((function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})}),300),n.close())}))}}}]),e.directive("menuToggle",(function(){return{restrict:"AC",link:function(e,t,n){e.$on("$ionicView.beforeEnter",(function(e,n){n.enableBack?t.inheritedData("$ionSideMenusController").enableMenuWithBackViews()||t.addClass("hide"):t.removeClass("hide")})),t.bind("click",(function(){var e=t.inheritedData("$ionSideMenusController");e&&e.toggle(n.menuToggle)}))}}})),e.directive("ionModal",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="modal-backdrop"><div class="modal-backdrop-bg"></div><div class="modal-wrapper" ng-transclude></div></div>'}}]),e.directive("ionModalView",(function(){return{restrict:"E",compile:function(e){e.addClass("modal")}}})),e.directive("ionNavBackButton",["$ionicConfig","$document",function(e,t){return{restrict:"E",require:"^ionNavBar",compile:function(n,i){var r,o=t[0].createElement("button");for(var a in i.$attr)o.setAttribute(i.$attr[a],i[a]);i.ngClick||o.setAttribute("ng-click","$ionicGoBack()"),o.className="button back-button hide buttons "+(n.attr("class")||""),o.innerHTML=n.html()||"";for(var s,l,u,c=h(n[0]),d=0;d<n[0].childNodes.length;d++)1===(r=n[0].childNodes[d]).nodeType?h(r)?c=!0:r.classList.contains("default-title")?l=!0:r.classList.contains("previous-title")&&(u=!0):s||3!==r.nodeType||(s=!!r.nodeValue.trim());function h(e){return/ion-|icon/.test(e.className)}var f=e.backButton.icon();if(!c&&f&&"none"!==f&&(o.innerHTML='<i class="icon '+f+'"></i> '+o.innerHTML,o.className+=" button-clear"),!s){var p=t[0].createElement("span");p.className="back-text",!l&&e.backButton.text()&&(p.innerHTML+='<span class="default-title">'+e.backButton.text()+"</span>"),!u&&e.backButton.previousTitleText()&&(p.innerHTML+='<span class="previous-title"></span>'),o.appendChild(p)}return n.attr("class","hide"),n.empty(),{pre:function(e,t,n,i){i.navElement("backButton",o.outerHTML),o=null}}}}}]),e.directive("ionNavBar",(function(){return{restrict:"E",controller:"$ionicNavBar",scope:!0,link:function(e,t,n,i){i.init()}}})),e.directive("ionNavButtons",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i="left";/^primary|secondary|right$/i.test(n.side||"")&&(i=n.side.toLowerCase());var r=e[0].createElement("span");r.className=i+"-buttons",r.innerHTML=t.html();var o=i+"Buttons";return t.attr("class","hide"),t.empty(),{pre:function(e,t,n,i){var a=t.parent().data("$ionViewController");a?a.navElement(o,r.outerHTML):i.navElement(o,r.outerHTML),r=null}}}}}]),e.directive("navDirection",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextDirection(i.navDirection)}))}}}]),e.directive("ionNavTitle",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var i=e[0].createElement("span");for(var r in n.$attr)i.setAttribute(n.$attr[r],n[r]);return i.classList.add("nav-bar-title"),i.innerHTML=t.html(),t.attr("class","hide"),t.empty(),{pre:function(e,t,n,r){var o=t.parent().data("$ionViewController");o?o.navElement("title",i.outerHTML):r.navElement("title",i.outerHTML),i=null}}}}}]),e.directive("navTransition",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,i){n.bind("click",(function(){e.nextTransition(i.navTransition)}))}}}]),e.directive("ionNavView",["$state","$ionicConfig",function(e,t){return{restrict:"E",terminal:!0,priority:2e3,transclude:!0,controller:"$ionicNavView",compile:function(n,i,r){return n.addClass("view-container"),ionic.DomUtil.cachedAttr(n,"nav-view-transition",t.views.transition()),function(t,n,i,o){var a;r(t,(function(e){n.append(e)}));var s=o.init();function l(t){var n=e.$current&&e.$current.locals[s.name];n&&(t||n!==a)&&(a=n,s.state=n.$$state,o.register(n))}t.$on("$stateChangeSuccess",(function(){l(!1)})),t.$on("$viewContentLoading",(function(){l(!1)})),l(!0)}}}}]),e.config(["$provide",function(e){e.decorator("ngClickDirective",["$delegate",function(e){return e.shift(),e}])}]).factory("$ionicNgClick",["$parse",function(e){return function(t,n,i){var r=angular.isFunction(i)?i:e(i);n.on("click",(function(e){t.$apply((function(){r(t,{$event:e})}))})),n.onclick=s}}]).directive("ngClick",["$ionicNgClick",function(e){return function(t,n,i){e(t,n,i.ngClick)}}]).directive("ionStopEvent",(function(){return{restrict:"A",link:function(e,t,n){t.bind(n.ionStopEvent,v)}}})),e.directive("ionPane",(function(){return{restrict:"E",link:function(e,t){t.addClass("pane")}}})),e.directive("ionPopover",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="popover-backdrop"><div class="popover-wrapper" ng-transclude></div></div>'}}]),e.directive("ionPopoverView",(function(){return{restrict:"E",compile:function(e){e.append(a('<div class="popover-arrow">')),e.addClass("popover")}}})),e.directive("ionRadio",(function(){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-radio"><input type="radio" name="radio-group"><div class="radio-content"><div class="item-content disable-pointer-events" ng-transclude></div><i class="radio-icon disable-pointer-events icon ion-checkmark"></i></div></label>',compile:function(e,t){t.icon&&e.find("i").removeClass("ion-checkmark").addClass(t.icon);var r=e.find("input");return n({name:t.name,value:t.value,disabled:t.disabled,"ng-value":t.ngValue,"ng-model":t.ngModel,"ng-disabled":t.ngDisabled,"ng-change":t.ngChange,"ng-required":t.ngRequired,required:t.required},(function(e,t){i(e)&&r.attr(t,e)})),function(e,t,n){e.getValue=function(){return e.ngValue||n.value}}}}})),e.directive("ionRefresher",[function(){return{restrict:"E",replace:!0,require:["?^$ionicScroll","ionRefresher"],controller:"$ionicRefresher",template:'<div class="scroll-refresher invisible" collection-repeat-ignore><div class="ionic-refresher-content" ng-class="{\'ionic-refresher-with-text\': pullingText || refreshingText}"><div class="icon-pulling" ng-class="{\'pulling-rotation-disabled\':disablePullingRotation}"><i class="icon {{pullingIcon}}"></i></div><div class="text-pulling" ng-bind-html="pullingText"></div><div class="icon-refreshing"><ion-spinner ng-if="showSpinner" icon="{{spinner}}"></ion-spinner><i ng-if="showIcon" class="icon {{refreshingIcon}}"></i></div><div class="text-refreshing" ng-bind-html="refreshingText"></div></div></div>',link:function(e,t,n,i){var r=i[0],o=i[1];!r||r.isNative()?o.init():(t[0].classList.add("js-scrolling"),r._setRefresher(e,t[0],o.getRefresherDomMethods()),e.$on("scroll.refreshComplete",(function(){e.$evalAsync((function(){r.scrollView&&r.scrollView.finishPullToRefresh()}))})))}}}]),e.directive("ionScroll",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",scope:!0,controller:function(){},compile:function(e,o){e.addClass("scroll-view ionic-scroll");var s=a('<div class="scroll"></div>');s.append(e.contents()),e.append(s);var l="false"!==o.overflowScroll&&("true"===o.overflowScroll||!r.scrolling.jsScrolling());return{pre:function(e,r,o){n(e,o,{direction:"@",paging:"@",$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",scroll:"@",scrollbarX:"@",scrollbarY:"@",zooming:"@",minZoom:"@",maxZoom:"@"}),e.direction=e.direction||"y",i(o.padding)&&e.$watch(o.padding,(function(e){s.toggleClass("padding",!!e)})),!0===e.$eval(e.paging)&&s.addClass("scroll-paging"),e.direction||(e.direction="y");var a=!0===e.$eval(e.paging);l&&r.addClass("overflow-scroll"),r.addClass("scroll-"+e.direction);var u={el:r[0],delegateHandle:o.delegateHandle,locking:"true"===(o.locking||"true"),bouncing:e.$eval(o.hasBouncing),paging:a,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,zooming:!0===e.$eval(e.zooming),maxZoom:e.$eval(e.maxZoom)||3,minZoom:e.$eval(e.minZoom)||.5,preventDefault:!0,nativeScrolling:l,scrollingComplete:function(){e.$onScrollComplete&&e.$onScrollComplete({scrollTop:c.scrollView.__scrollTop,scrollLeft:c.scrollView.__scrollLeft})}};a&&(u.speedMultiplier=.8,u.bouncing=!1);var c=t("$ionicScroll",{$scope:e,scrollViewOptions:u})}}}}}]),e.directive("ionSideMenu",(function(){return{restrict:"E",require:"^ionSideMenus",scope:!0,compile:function(e,t){return angular.isUndefined(t.isEnabled)&&t.$set("isEnabled","true"),angular.isUndefined(t.width)&&t.$set("width","275"),e.addClass("menu menu-"+t.side),function(e,n,i,r){e.side=i.side||"left";var o=r[e.side]=new ionic.views.SideMenu({width:t.width,el:n[0],isEnabled:!0});e.$watch(i.width,(function(e){var t=+e;t&&t==e&&o.setWidth(+e)})),e.$watch(i.isEnabled,(function(e){o.setIsEnabled(!!e)}))}}}})),e.directive("ionSideMenuContent",["$timeout","$ionicGesture","$window",function(e,t,n){return{restrict:"EA",require:"^ionSideMenus",scope:!0,compile:function(r,o){return r.addClass("menu-content pane"),{pre:function(a,s,l,u){var c=null,d=null;function h(e){0!==u.getOpenAmount()?(u.close(),e.gesture.srcEvent.preventDefault(),c=null,d=null):c||(c=ionic.tap.pointerCoord(e.gesture.srcEvent))}function f(e){u.isDraggableTarget(e)&&"x"==g(e)&&(u._handleDrag(e),e.gesture.srcEvent.preventDefault())}function p(e){"x"==g(e)&&e.gesture.srcEvent.preventDefault()}function m(e){u._endDrag(e),c=null,d=null}function g(e){if(d)return d;if(e&&e.gesture){if(c){var t=ionic.tap.pointerCoord(e.gesture.srcEvent),n=Math.abs(t.x-c.x),i=Math.abs(t.y-c.y),r=n<i?"y":"x";return Math.max(n,i)>30&&(d=r),r}c=ionic.tap.pointerCoord(e.gesture.srcEvent)}return"y"}i(o.dragContent)?a.$watch(o.dragContent,(function(e){u.canDragContent(e)})):u.canDragContent(!0),i(o.edgeDragThreshold)&&a.$watch(o.edgeDragThreshold,(function(e){u.edgeDragThreshold(e)}));var v={element:r[0],onDrag:function(){},endDrag:function(){},setCanScroll:function(e){var t=s[0].querySelector(".scroll");if(t){var n=angular.element(t.parentElement);if(n){var i=n.scope();i.scrollCtrl&&i.scrollCtrl.freezeScrollShut(!e)}}},getTranslateX:function(){return a.sideMenuContentTranslateX||0},setTranslateX:ionic.animationFrameThrottle((function(t){var n=v.offsetX+t;s[0].style[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e((function(){a.sideMenuContentTranslateX=t}))})),setMarginLeft:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),s[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",s[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",s[0].style.width="",v.offsetX=0)})),setMarginRight:ionic.animationFrameThrottle((function(e){e?(e=parseInt(e,10),s[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(s[0].style.width="",v.offsetX=0),s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)"})),setMarginLeftAndRight:ionic.animationFrameThrottle((function(e,t){var i=(e=e&&parseInt(e,10)||0)+(t=t&&parseInt(t,10)||0);i>0?(s[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",s[0].style.width=n.innerWidth-i+"px",v.offsetX=e):(s[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",s[0].style.width="",v.offsetX=0)})),enableAnimation:function(){a.animationEnabled=!0,s[0].classList.add("menu-animated")},disableAnimation:function(){a.animationEnabled=!1,s[0].classList.remove("menu-animated")},offsetX:0};u.setContent(v);var _={stop_browser_behavior:!1,prevent_default_directions:["left","right"]},y=t.on("tap",h,s,_),b=t.on("dragright",f,s,_),w=t.on("dragleft",f,s,_),L=t.on("dragup",p,s,_),M=t.on("dragdown",p,s,_),k=t.on("release",m,s,_);a.$on("$destroy",(function(){v&&(v.element=null,v=null),t.off(w,"dragleft",f),t.off(b,"dragright",f),t.off(L,"dragup",p),t.off(M,"dragdown",p),t.off(k,"release",m),t.off(y,"tap",h)}))}}}}}]),e.directive("ionSideMenus",["$ionicBody",function(e){return{restrict:"ECA",controller:"$ionicSideMenus",compile:function(t,n){return n.$set("class",(n.class||"")+" view"),{pre:function(t,n,i,r){r.enableMenuWithBackViews(t.$eval(i.enableMenuWithBackViews)),t.$on("$ionicExposeAside",(function(n,i){t.$exposeAside||(t.$exposeAside={}),t.$exposeAside.active=i,e.enableClass(i,"aside-open")})),t.$on("$ionicView.beforeEnter",(function(e,n){n.historyId&&(t.$activeHistoryId=n.historyId)})),t.$on("$destroy",(function(){e.removeClass("menu-open","aside-open")}))}}}}}]),e.directive("ionSlideBox",["$animate","$timeout","$compile","$ionicSlideBoxDelegate","$ionicHistory","$ionicScrollDelegate",function(e,t,n,r,o,s){return{restrict:"E",replace:!0,transclude:!0,scope:{autoPlay:"=",doesContinue:"@",slideInterval:"@",showPager:"@",pagerClick:"&",disableScroll:"@",onSlideChanged:"&",activeSlide:"=?",bounce:"@"},controller:["$scope","$element","$attrs",function(e,n,a){var l=this,u=!0===e.$eval(e.doesContinue),c=!1!==e.$eval(e.bounce),d=i(a.autoPlay)&&e.autoPlay?e.$eval(e.slideInterval)||4e3:0,h=new ionic.views.Slider({el:n[0],auto:d,continuous:u,startSlide:e.activeSlide,bouncing:c,slidesChanged:function(){e.currentSlide=h.currentIndex(),t((function(){}))},callback:function(n){e.currentSlide=n,e.onSlideChanged({index:e.currentSlide,$index:e.currentSlide}),e.$parent.$broadcast("slideBox.slideChanged",n),e.activeSlide=n,t((function(){}))},onDrag:function(){f(!0)},onDragEnd:function(){f(!1)}});function f(e){e&&!l.isScrollFreeze?s.freezeAllScrolls(e):!e&&l.isScrollFreeze&&s.freezeAllScrolls(!1),l.isScrollFreeze=e}h.enableSlide(!0!==e.$eval(a.disableScroll)),e.$watch("activeSlide",(function(e){i(e)&&h.slide(e)})),e.$on("slideBox.nextSlide",(function(){h.next()})),e.$on("slideBox.prevSlide",(function(){h.prev()})),e.$on("slideBox.setSlide",(function(e,t){h.slide(t)})),this.__slider=h;var p=r._registerInstance(h,a.delegateHandle,(function(){return o.isActiveScope(e)}));e.$on("$destroy",(function(){p(),h.kill()})),this.slidesCount=function(){return h.slidesCount()},this.onPagerClick=function(t){e.pagerClick({index:t})},t((function(){h.load()}))}],template:'<div class="slider"><div class="slider-slides" ng-transclude></div></div>',link:function(t,r,o){var s;function l(){if(!s){var e=t.$new();s=a("<ion-pager></ion-pager>"),r.append(s),s=n(s)(e)}return s}e.enabled(r,!1),i(o.showPager)||(t.showPager=!0,l().toggleClass("hide",!1)),o.$observe("showPager",(function(e){void 0!==e&&(e=t.$eval(e),l().toggleClass("hide",!e))}))}}}]).directive("ionSlide",(function(){return{restrict:"E",require:"?^ionSlideBox",compile:function(e){e.addClass("slider-slide")}}})).directive("ionPager",(function(){return{restrict:"E",replace:!0,require:"^ionSlideBox",template:'<div class="slider-pager"><span class="slider-pager-page" ng-repeat="slide in numSlides() track by $index" ng-class="{active: $index == currentSlide}" ng-click="pagerClick($index)"><i class="icon ion-record"></i></span></div>',link:function(e,t,n,i){e.pagerClick=function(e){i.onPagerClick(e)},e.numSlides=function(){return new Array(i.slidesCount())},e.$watch("currentSlide",(function(e){!function(e){for(var n=t[0].children,i=n.length,r=0;r<i;r++)r==e?n[r].classList.add("active"):n[r].classList.remove("active")}(e)}))}}})),e.directive("ionSlides",["$animate","$timeout","$compile",function(e,t,n){return{restrict:"E",transclude:!0,scope:{options:"=",slider:"="},template:'<div class="swiper-container"><div class="swiper-wrapper" ng-transclude></div><div ng-hide="!showPager" class="swiper-pagination"></div></div>',controller:["$scope","$element",function(e,i){var r=this;this.update=function(){t((function(){if(r.__slider){r.__slider.update(),r._options.loop&&r.__slider.createLoop();var t=r.__slider.slides.length;t>10&&(e.showPager=!1),r.__slider.activeIndex>t-1&&r.__slider.slideTo(t-1)}}))},this.rapidUpdate=ionic.debounce((function(){r.update()}),50),this.getSlider=function(){return r.__slider};var o=e.options||{},a=angular.extend({pagination:i.children().children()[1],paginationClickable:!0,lazyLoading:!0,preloadImages:!1},o);this._options=a,t((function(){var t=new ionic.views.Swiper(i.children()[0],a,e,n);e.$emit("$ionicSlides.sliderInitialized",{slider:t}),r.__slider=t,e.slider=r.__slider,e.$on("$destroy",(function(){t.destroy(),r.__slider=null}))})),t((function(){r.rapidUpdate()}),200)}],link:function(e){e.showPager=!0}}}]).directive("ionSlidePage",[function(){return{restrict:"E",require:"?^ionSlides",transclude:!0,replace:!0,template:'<div class="swiper-slide" ng-transclude></div>',link:function(e,t,n,i){i.rapidUpdate(),e.$on("$destroy",(function(){i.rapidUpdate()}))}}}]),e.directive("ionSpinner",(function(){return{restrict:"E",controller:"$ionicSpinner",link:function(e,t,n,i){var r=i.init();t.addClass("spinner spinner-"+r),t.on("$destroy",(function(){i.stop()}))}}})),e.directive("ionTab",["$compile","$ionicConfig","$ionicBind","$ionicViewSwitcher",function(e,t,n,r){function o(e,t){return i(t)?" "+e+'="'+t+'"':""}return{restrict:"E",require:["^ionTabs","ionTab"],controller:"$ionicTab",scope:!0,compile:function(i,s){for(var l="<ion-tab-nav"+o("ng-click",s.ngClick)+o("title",s.title)+o("icon",s.icon)+o("icon-on",s.iconOn)+o("icon-off",s.iconOff)+o("badge",s.badge)+o("badge-style",s.badgeStyle)+o("hidden",s.hidden)+o("disabled",s.disabled)+o("class",s.class)+"></ion-tab-nav>",u=document.createElement("div"),c=0;c<i[0].children.length;c++)u.appendChild(i[0].children[c].cloneNode(!0));var d,h,f=u.childElementCount;return i.empty(),f&&("ION-NAV-VIEW"===u.children[0].tagName&&(d=u.children[0].getAttribute("name"),u.children[0].classList.add("view-container"),h=!0),1===f&&(u=u.children[0]),h||u.classList.add("pane"),u.classList.add("tab-content")),function(i,o,s,c){var h,p,m=c[0],g=c[1],v=!1;function _(){g.tabMatchesState()&&m.select(i,!1)}i.$tabSelected=!1,n(i,s,{onSelect:"&",onDeselect:"&",title:"@",uiSref:"@",href:"@"}),m.add(i),i.$on("$destroy",(function(){i.$tabsDestroy||m.remove(i),y.isolateScope().$destroy(),y.remove(),y=u=p=null})),o[0].removeAttribute("title"),d&&(g.navViewName=i.navViewName=d),i.$on("$stateChangeSuccess",_),_();var y=a(l);function b(){h&&h.$destroy(),v&&p&&p.remove(),u.innerHTML="",v=h=p=null}y.data("$ionTabsController",m),y.data("$ionTabController",g),m.$tabsElement.append(e(y)(i)),i.$watch("$tabSelected",(function(n){n&&f?(v||(h=i.$new(),p=a(u),r.viewEleIsActive(p,!0),m.$element.append(p),e(p)(h),v=!0),r.viewEleIsActive(p,!0)):v&&p&&(t.views.maxCache()>0?r.viewEleIsActive(p,!1):b())})),i.$on("$ionicView.afterEnter",(function(){r.viewEleIsActive(p,i.$tabSelected)})),i.$on("$ionicView.clearCache",(function(){i.$tabSelected||b()}))}}}}]),e.directive("ionTabNav",[function(){return{restrict:"E",replace:!0,require:["^ionTabs","^ionTab"],template:"<a ng-class=\"{'has-badge':badge, 'tab-hidden':isHidden(), 'tab-item-active': isTabActive()}\" "+' ng-disabled="disabled()" class="tab-item"><span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span><i class="icon {{getIcon()}}" ng-if="getIcon()"></i><span class="tab-title" ng-bind-html="title"></span></a>',scope:{title:"@",icon:"@",iconOn:"@",iconOff:"@",badge:"=",hidden:"@",disabled:"&",badgeStyle:"@",class:"@"},link:function(e,t,n,i){var r=i[0],o=i[1];t[0].removeAttribute("title"),e.selectTab=function(e){e.preventDefault(),r.select(o.$scope,!0)},n.ngClick||t.on("click",(function(t){e.$apply((function(){e.selectTab(t)}))})),e.isHidden=function(){return"true"===n.hidden||!0===n.hidden},e.getIconOn=function(){return e.iconOn||e.icon},e.getIconOff=function(){return e.iconOff||e.icon},e.isTabActive=function(){return r.selectedTab()===o.$scope},e.getIcon=function(){return r.selectedTab()===o.$scope?e.iconOn||e.icon:e.iconOff||e.icon}}}}]),e.directive("ionTabs",["$ionicTabsDelegate","$ionicConfig",function(e,t){return{restrict:"E",scope:!0,controller:"$ionicTabs",compile:function(n){var i=a('<div class="tab-nav tabs">');return i.append(n.contents()),n.append(i).addClass("tabs-"+t.tabs.position()+" tabs-"+t.tabs.style()),{pre:function(t,n,r,o){var s=e._registerInstance(o,r.delegateHandle,o.hasActiveScope);function l(e,t){e.stopPropagation();var n=o.previousSelectedTab();n&&n.$broadcast(e.name.replace("NavView","Tabs"),t)}o.$scope=t,o.$element=n,o.$tabsElement=a(n[0].querySelector(".tabs")),t.$watch((function(){return n[0].className}),(function(e){var n=-1!==e.indexOf("tabs-top"),i=-1!==e.indexOf("tabs-item-hide");t.$hasTabs=!n&&!i,t.$hasTabsTop=n&&!i,t.$emit("$ionicTabs.top",t.$hasTabsTop)})),t.$on("$ionicNavView.beforeLeave",l),t.$on("$ionicNavView.afterLeave",l),t.$on("$ionicNavView.leave",l),t.$on("$destroy",(function(){t.$tabsDestroy=!0,s(),o.$tabsElement=o.$element=o.$scope=i=null,delete t.$hasTabs,delete t.$hasTabsTop}))},post:function(e,t,n,i){i.selectedTab()||i.select(0)}}}}}]),e.directive("ionTitle",[function(){return{restrict:"E",compile:function(e){e.addClass("title")}}}]),e.directive("ionToggle",["$timeout","$ionicConfig",function(e,t){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<div class="item item-toggle"><div ng-transclude></div><label class="toggle"><input type="checkbox"><div class="track"><div class="handle"></div></div></label></div>',compile:function(e,r){var o=e.find("input");return n({name:r.name,"ng-value":r.ngValue,"ng-model":r.ngModel,"ng-checked":r.ngChecked,"ng-disabled":r.ngDisabled,"ng-true-value":r.ngTrueValue,"ng-false-value":r.ngFalseValue,"ng-change":r.ngChange,"ng-required":r.ngRequired,required:r.required},(function(e,t){i(e)&&o.attr(t,e)})),r.toggleClass&&e[0].getElementsByTagName("label")[0].classList.add(r.toggleClass),e.addClass("toggle-"+t.form.toggle()),function(e,t){var n=t[0].getElementsByTagName("label")[0],i=n.children[0],r=n.children[1],o=r.children[0],s=a(i).controller("ngModel");e.toggle=new ionic.views.Toggle({el:n,track:r,checkbox:i,handle:o,onChange:function(){s&&(s.$setViewValue(i.checked),e.$apply())}}),e.$on("$destroy",(function(){e.toggle.destroy()}))}}}}]),e.directive("ionView",(function(){return{restrict:"EA",priority:1e3,controller:"$ionicView",compile:function(e){return e.addClass("pane"),e[0].removeAttribute("title"),function(e,t,n,i){i.init()}}}}))}(),n=function(e){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";e.exports=function(){var e;try{e=n(1)}catch(e){}if(e&&e.version||(e=window.angular),!e||!e.version)throw new Error("ionic-material could not load angular module :(");var t=e.module("ionic-material",["ionic"]);return n(2)(t),n(3)(t),"ionic-material"}()},function(t,n,i){if(void 0===e){var r=new Error('Cannot find module "angular"');throw r.code="MODULE_NOT_FOUND",r}t.exports=e},function(e,t,n){"use strict";
+/*!
+	 * Fork by Zach Fitzgerald and other contributors of Ionic Material
+	 *
+	 * Waves v0.5.4
+	 * http://fian.my.id/Waves
+	 *
+	 * Copyright 2014 Alfiana E. Sibuea and other contributors
+	 *
+	 * Released under the MIT license
+	 * https://github.com/fians/Waves/blob/master/LICENSE
+	 *
+	 */e.exports=function(e){function t(){var e,t=t||{};if(document&&document.querySelectorAll&&document.querySelectorAll.bind)try{e=document.querySelectorAll.bind(document)}catch(e){}else if(window&&window.angular&&window.angular.element)e=window.angular.element;else{var n=function(e,t,n){var i=e.length;t=null==t?0:t<0?Math.max(i+t,0):Math.min(t,i),n=null==n?i:n<0?Math.max(i+n,0):Math.min(n,i);for(var r=[];t<n;)r.push(e[t++]);return r};e=function(e,t,i){var r=n(arguments,2);return function(){return e.apply(t,r.concat(n(arguments)))}}(document.querySelectorAll,document)}if(!e)throw new Error("ionic material ink module could not create reference of DOM nodes");function i(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+":"+e[n]+";");return t}var r={duration:500,show:function(e){if(2===e.button)return!1;var t=document.createElement("div"),n=this.dataset.inkColor,o=this.dataset.inkOpacity,a=n||o;t.className="ink-ripple",this.appendChild(t);var s,l,u,c,d=(u={top:0,left:0},s=(c=this&&this.ownerDocument).documentElement,void 0!==this.getBoundingClientRect&&(u=this.getBoundingClientRect()),l=function(e){return null!==(t=e)&&t===t.window?e:9===e.nodeType&&e.defaultView;var t}(c),{top:u.top+l.pageYOffset-s.clientTop,left:u.left+l.pageXOffset-s.clientLeft}),h=e.pageY-d.top,f=e.pageX-d.left,p="scale("+this.clientWidth/100*2.5+")";"touches"in e&&(h=e.touches[0].pageY-d.top,f=e.touches[0].pageX-d.left),t.setAttribute("data-hold",Date.now()),t.setAttribute("data-scale",p),t.setAttribute("data-x",f),t.setAttribute("data-y",h);var m,g={top:h+"px",left:f+"px"};if(t.className=t.className+" ink-notransition",a){var v;if(n){var _=(m=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n))?{r:parseInt(m[1],16),g:parseInt(m[2],16),b:parseInt(m[3],16)}:null;v=_.r+","+_.g+","+_.b}else v="0,0,0";o||(o=.2);var y="rgba("+v+","+o+")";g["background-color"]=y}t.setAttribute("style",i(g)),t.className=t.className.replace("ink-notransition",""),g["-webkit-transform"]=p,g["-moz-transform"]=p,g["-ms-transform"]=p,g["-o-transform"]=p,g.transform=p,g.opacity="1",g["-webkit-transition-duration"]=r.duration+"ms",g["-moz-transition-duration"]=r.duration+"ms",g["-o-transition-duration"]=r.duration+"ms",g["transition-duration"]=r.duration+"ms",t.setAttribute("style",i(g))},hide:function(){for(var e=this,t=(e.clientWidth,null),n=e.children.length,o=0;o<n;o++)-1===e.children[o].className.indexOf("ink-ripple")||(t=e.children[o]);if(!t)return!1;var a=t.getAttribute("data-x"),s=t.getAttribute("data-y"),l=t.getAttribute("data-scale"),u=500-(Date.now()-Number(t.getAttribute("data-hold")));u<0&&(u=0),setTimeout((function(){var n={top:s+"px",left:a+"px",opacity:"0","-webkit-transition-duration":r.duration+"ms","-moz-transition-duration":r.duration+"ms","-o-transition-duration":r.duration+"ms","transition-duration":r.duration+"ms","-webkit-transform":l,"-moz-transform":l,"-ms-transform":l,"-o-transform":l,transform:l};t.setAttribute("style",i(n)),setTimeout((function(){try{e.removeChild(t)}catch(e){return!1}}),r.duration)}),u)},wrapInput:function(e){for(var t=0;t<e.length;t++){var n=e[t];if("input"===n.tagName.toLowerCase()){var i=n.parentNode;if("i"===i.tagName.toLowerCase()&&-1!==i.className.indexOf("ink")&&-1!==i.className.indexOf("tab-item")&&-1!==i.className.indexOf("button-fab")&&-1!==i.className.indexOf("button-raised")&&-1!==i.className.indexOf("button-flat")&&-1!==i.className.indexOf("button-clear")&&-1!==i.className.indexOf("button")&&-1!==i.className.indexOf("item"))return!1;var r=document.createElement("i");r.className=n.className+" ink-input-wrapper";var o=n.getAttribute("style");o||(o=""),r.setAttribute("style",o),n.className="ink-button-input",n.removeAttribute("style"),i.replaceChild(r,n),r.appendChild(n)}}}};return t.displayEffect=function(t){"duration"in(t=t||{})&&(r.duration=t.duration);var n=".ink,.tab-item,.button-fab,.button-raised,.button-flat,.button-clear,a.item,.popup .button";r.wrapInput(e(n)),Array.prototype.forEach.call(e(n),(function(e){"ontouchstart"in window?(e.addEventListener("touchstart",r.show,!1),e.addEventListener("touchend",r.hide,!1),e.addEventListener("touchcancel",r.hide,!1)):(e.addEventListener("mousedown",r.show,!1),e.addEventListener("mouseup",r.hide,!1),e.addEventListener("mouseleave",r.hide,!1))}))},t}e.factory("ionicMaterialInk",t),t.inject=[]}},function(e,t,n){e.exports=function(e){function t(){"use strict";function e(){return window.innerHeight}function t(e,t){for(var n=0;n<t;n++){var i=e[n];i.className+=" in",i.className+=" done"}}return{blinds:function(n){var i=2,r=.5,o=.8,a=".animate-blinds .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid blinds selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=t.left*n.leftOffsetPercentage+t.top;parseFloat(i/f/n.finishDelayThrottle).toFixed(2),l[e].className+=" done"}}),f*n.finishSpeedPercent),t(l,u)},fadeSlideIn:function(n){var i=2,r=.72,o=.8,a=".animate-fade-slide-in .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideIn selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},fadeSlideInRight:function(n){var i=2,r=.72,o=.8,a=".animate-fade-slide-in-right .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid fadeSlideInRight selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<u&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},panInLeft:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=r.className.lastIndexOf("animate-pan-in-left");r.className=r.className.substr(0,o)}},pushDown:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}},ripple:function(n){var i=2,r=.72,o=.8,a=".animate-ripple .item",s=1100;if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||i,n.finishSpeedPercent=n.finishSpeedPercent||r,n.leftOffsetPercentage=n.leftOffsetPercentage||o,n.startVelocity=n.startVelocity||s,void 0===n.selector&&(n.selector=a),void 0===n.selector||""===n.selector)return alert("invalid ripple selector"),!1;for(var l=document.querySelectorAll(n.selector),u=l.length,c=0,d=e(),h=0;h<l.length&&l[h].offsetTop<d;h++)c+=1;var f=n.startVelocity;for(h=0;h<c;h++){var p=l[h],m=p.getBoundingClientRect(),g=m.left*n.leftOffsetPercentage+m.top,v=parseFloat(g/f).toFixed(2);p.style.webkitTransitionDelay=v+"s",p.style.transitionDelay=v+"s",p.className+=" in"}setTimeout((function(){for(var e=0;e<c;e++){var t=l[e].getBoundingClientRect(),i=(t.left*n.leftOffsetPercentage+t.top)/f/n.finishDelayThrottle;parseFloat(i).toFixed(2)}l[0].className+=" done"}),f*n.finishSpeedPercent),t(l,u)},slideUp:function(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return alert("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,i=0;i<n;i++){var r=t[i],o=e.selector.split(".")[1],a=r.className.lastIndexOf(o);r.className=r.className.substr(0,a)}}}}e.factory("ionicMaterialMotion",t),t.$inject=[]}}])},"object"==typeof exports&&"object"==typeof module?module.exports=n(function(){try{return require("angular")}catch(e){}}()):"function"==typeof define&&define.amd?define(["angular"],n):"object"==typeof exports?exports.ionicMaterial=n(function(){try{return require("angular")}catch(e){}}()):this.ionicMaterial=n(this.angular),
+/**
+ * @license AngularJS v1.5.11
+ * (c) 2010-2017 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+function(e,t){"use strict";var n=t.$$minErr("$resource"),i=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;function r(e,n){for(var i in n=n||{},t.forEach(n,(function(e,t){delete n[t]})),e)!e.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=e[i]);return n}t.module("ngResource",["ng"]).provider("$resource",(function(){var e=/^https?:\/\/[^/]*/,o=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},delete:{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(a,s,l,u){var c=t.noop,d=t.forEach,h=t.extend,f=t.copy,p=t.isArray,m=t.isDefined,g=t.isFunction,v=t.isNumber;function _(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function y(e,t){this.template=e,this.defaults=h({},o.defaults,t),this.urlParams={}}return y.prototype={setUrlParams:function(t,i,r){var o,a,s=this,l=r||s.template,u="",c=s.urlParams={};d(l.split(/\W/),(function(e){if("hasOwnProperty"===e)throw n("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(l)&&(c[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(l)})})),l=(l=l.replace(/\\:/g,":")).replace(e,(function(e){return u=e,""})),i=i||{},d(s.urlParams,(function(e,t){o=i.hasOwnProperty(t)?i[t]:s.defaults[t],m(o)&&null!==o?(a=e.isQueryParamValue?_(o,!0):function(e){return _(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}(o),l=l.replace(new RegExp(":"+t+"(\\W|$)","g"),(function(e,t){return a+t}))):l=l.replace(new RegExp("(/?):"+t+"(\\W|$)","g"),(function(e,t,n){return"/"===n.charAt(0)?n:t+n}))})),s.defaults.stripTrailingSlashes&&(l=l.replace(/\/+$/,"")||"/"),l=l.replace(/\/\.(?=\w+($|\?))/,"."),t.url=u+l.replace(/\/\\\./,"/."),d(i,(function(e,n){s.urlParams[n]||(t.params=t.params||{},t.params[n]=e)}))}},function e(_,b,w,L){var M=new y(_,L);function k(e,r){var o={};return r=h({},b,r),d(r,(function(r,a){g(r)&&(r=r(e)),o[a]=r&&r.charAt&&"@"===r.charAt(0)?function(e,r){if(!function(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&i.test("."+e)}(r))throw n("badmember",'Dotted member path "@{0}" is invalid.',r);for(var o=r.split("."),a=0,s=o.length;a<s&&t.isDefined(e);a++){var l=o[a];e=null!==e?e[l]:void 0}return e}(e,r.substr(1)):r})),o}function x(e){return e.resource}function S(e){r(e||{},this)}return w=h({},o.defaults.actions,w),S.prototype.toJSON=function(){var e=h({},this);return delete e.$promise,delete e.$resolved,delete e.$cancelRequest,e},d(w,(function(e,t){var i=/^(POST|PUT|PATCH)$/i.test(e.method),o=e.timeout,_=m(e.cancellable)?e.cancellable:M.defaults.cancellable;o&&!v(o)&&(s.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,o=null),S[t]=function(s,m,v,y){var b,w,L,T={};switch(arguments.length){case 4:L=y,w=v;case 3:case 2:if(!g(m)){T=s,b=m,w=v;break}if(g(s)){w=s,L=m;break}w=m,L=v;case 1:g(s)?w=s:i?b=s:T=s;break;case 0:break;default:throw n("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var $,D,C=this instanceof S,E=C?b:e.isArray?[]:new S(b),A={},P=e.interceptor&&e.interceptor.response||x,Y=e.interceptor&&e.interceptor.responseError||void 0;d(e,(function(e,t){switch(t){default:A[t]=f(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}})),!C&&_&&($=l.defer(),A.timeout=$.promise,o&&(D=u($.resolve,o))),i&&(A.data=b),M.setUrlParams(A,h({},k(b,e.params||{}),T),e.url);var O=a(A).then((function(i){var o=i.data;if(o){if(p(o)!==!!e.isArray)throw n("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",t,e.isArray?"array":"object",p(o)?"array":"object",A.method,A.url);if(e.isArray)E.length=0,d(o,(function(e){"object"==typeof e?E.push(new S(e)):E.push(e)}));else{var a=E.$promise;r(o,E),E.$promise=a}}return i.resource=E,i}),(function(e){return(L||c)(e),l.reject(e)}));return O.finally((function(){E.$resolved=!0,!C&&_&&(E.$cancelRequest=c,u.cancel(D),$=D=A.timeout=null)})),O=O.then((function(e){var t=P(e);return(w||c)(t,e.headers,e.status,e.statusText),t}),Y),C?O:(E.$promise=O,E.$resolved=!1,_&&(E.$cancelRequest=$.resolve),E)},S.prototype["$"+t]=function(e,n,i){g(e)&&(i=n,n=e,e={});var r=S[t].call(this,e,this,n,i);return r.$promise||r}})),S.bind=function(t){var n=h({},b,t);return e(_,n,w,L)},S}}]}))}(window,window.angular),
+/*!
+ * angular-translate - v2.18.1 - 2018-05-19
+ * 
+ * Copyright (c) 2018 The angular-translate team, Pascal Precht; Licensed MIT
+ */
+function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t()})):"object"==typeof module&&module.exports?module.exports=t():t()}(0,(function(){function e(e){"use strict";var t=e.storageKey(),n=e.storage(),i=function(){var i=e.preferredLanguage();angular.isString(i)?e.use(i):n.put(t,e.use())};i.displayName="fallbackFromIncorrectStorageValue",n?n.get(t)?e.use(n.get(t)).catch(i):i():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function t(e,t,n,i){"use strict";var r,o,a,s,l,u,c,d,h,f,p,m,g,v,_,y,b={},w=[],L=e,M=[],k="translate-cloak",x=!1,S=!1,T=".",$=!1,D=!1,C=0,E=!0,A="default",P={default:function(e){return(e||"").split("-").join("_")},java:function(e){var t=(e||"").split("-").join("_"),n=t.split("_");return n.length>1?n[0].toLowerCase()+"_"+n[1].toUpperCase():t},bcp47:function(e){var t=(e||"").split("_").join("-"),n=t.split("-");switch(n.length){case 1:n[0]=n[0].toLowerCase();break;case 2:n[0]=n[0].toLowerCase(),4===n[1].length?n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase():n[1]=n[1].toUpperCase();break;case 3:n[0]=n[0].toLowerCase(),n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase(),n[2]=n[2].toUpperCase();break;default:return t}return n.join("-")},"iso639-1":function(e){return(e||"").split("_").join("-").split("-")[0].toLowerCase()}},Y=function(){if(angular.isFunction(i.getLocale))return i.getLocale();var e,n,r=t.$get().navigator,o=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(r.languages))for(e=0;e<r.languages.length;e++)if((n=r.languages[e])&&n.length)return n;for(e=0;e<o.length;e++)if((n=r[o[e]])&&n.length)return n;return null};Y.displayName="angular-translate/service: getFirstBrowserLanguage";var O=function(){var e=Y()||"";return P[A]&&(e=P[A](e)),e};O.displayName="angular-translate/service: getLocale";var I=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},j=function(){return this.toString().replace(/^\s+|\s+$/g,"")},H=function(e){return angular.isString(e)?e.toLowerCase():e},B=function(e){if(e){for(var t,n=[],i=H(e),r=0,a=w.length;r<a;r++)n.push(H(w[r]));if((r=I(n,i))>-1)return w[r];if(o)for(var s in o)if(o.hasOwnProperty(s)){var l=!1,u=Object.prototype.hasOwnProperty.call(o,s)&&H(s)===H(e);if("*"===s.slice(-1)&&(l=H(s.slice(0,-1))===H(e.slice(0,s.length-1))),(u||l)&&(t=o[s],I(n,H(t))>-1))return t}var c=e.split("_");return c.length>1&&I(n,H(c[0]))>-1?c[0]:void 0}},N=function(e,t){if(!e&&!t)return b;if(e&&!t){if(angular.isString(e))return b[e]}else angular.isObject(b[e])||(b[e]={}),angular.extend(b[e],R(t));return this};this.translations=N,this.cloakClassName=function(e){return e?(k=e,this):k},this.nestedObjectDelimeter=function(e){return e?(T=e,this):T};var R=function(e,t,n,i){var r,o,a;for(r in t||(t=[]),n||(n={}),e)Object.prototype.hasOwnProperty.call(e,r)&&(a=e[r],angular.isObject(a)?R(a,t.concat(r),n,r):(o=t.length?""+t.join(T)+T+r:r,t.length&&r===i&&(n[""+t.join(T)]="@:"+o),n[o]=a));return n};R.displayName="flatObject",this.addInterpolation=function(e){return M.push(e),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(e){return f=e,this},this.useSanitizeValueStrategy=function(e){return n.useStrategy(e),this},this.preferredLanguage=function(e){return e?(F(e),this):r};var F=function(e){return e&&(r=e),r};this.translationNotFoundIndicator=function(e){return this.translationNotFoundIndicatorLeft(e),this.translationNotFoundIndicatorRight(e),this},this.translationNotFoundIndicatorLeft=function(e){return e?(g=e,this):g},this.translationNotFoundIndicatorRight=function(e){return e?(v=e,this):v},this.fallbackLanguage=function(e){return z(e),this};var z=function(e){return e?(angular.isString(e)?(s=!0,a=[e]):angular.isArray(e)&&(s=!1,a=e),angular.isString(r)&&I(a,r)<0&&a.push(r),this):s?a[0]:a};this.use=function(e){if(e){if(!b[e]&&!p)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+e+"'");return l=e,this}return l},this.resolveClientLocale=function(){return O()};var V=function(e){return e?(L=e,this):d?d+L:L};this.storageKey=V,this.useUrlLoader=function(e,t){return this.useLoader("$translateUrlLoader",angular.extend({url:e},t))},this.useStaticFilesLoader=function(e){return this.useLoader("$translateStaticFilesLoader",e)},this.useLoader=function(e,t){return p=e,m=t||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(e){return c=e,this},this.storagePrefix=function(e){return e?(d=e,this):e},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(e){return h=e,this},this.usePostCompiling=function(e){return x=!!e,this},this.forceAsyncReload=function(e){return S=!!e,this},this.uniformLanguageTag=function(e){return e?angular.isString(e)&&(e={standard:e}):e={},A=e.standard,this},this.determinePreferredLanguage=function(e){var t=e&&angular.isFunction(e)?e():O();return r=w.length&&B(t)||t,this},this.registerAvailableLanguageKeys=function(e,t){return e?(w=e,t&&(o=t),this):w},this.useLoaderCache=function(e){return!1===e?_=void 0:!0===e?_=!0:void 0===e?_="$translationCache":e&&(_=e),this},this.directivePriority=function(e){return void 0===e?C:(C=e,this)},this.statefulFilter=function(e){return void 0===e?E:(E=e,this)},this.postProcess=function(e){return y=e||void 0,this},this.keepContent=function(e){return D=!!e,this},this.$get=["$log","$injector","$rootScope","$q",function(e,t,n,i){var o,d,A,P=t.get(f||"$translateDefaultInterpolation"),Y=!1,H={},U={},W=function(e,t,n,s,u,h){!l&&r&&(l=r);var f=u&&u!==l?B(u)||u:l;if(u&&oe(u),angular.isArray(e))return function(e){for(var r={},o=[],a=function(e){var o=i.defer(),a=function(t){r[e]=t,o.resolve([e,t])};return W(e,t,n,s,u,h).then(a,a),o.promise},l=0,c=e.length;l<c;l++)o.push(a(e[l]));return i.all(o).then((function(){return r}))}(e);var p=i.defer();e&&(e=j.apply(e));var m=function(){var e=U[f]||U[r];if(d=0,c&&!e){var t=o.get(L);if(e=U[t],a&&a.length){var n=I(a,t);d=0===n?1:0,I(a,r)<0&&a.push(r)}}return e}();if(m){var g=function(){u||(f=l),ne(e,t,n,s,f,h).then(p.resolve,p.reject)};g.displayName="promiseResolved",m.finally(g).catch(angular.noop)}else ne(e,t,n,s,f,h).then(p.resolve,p.reject);return p.promise},q=function(e){return g&&(e=[g,e].join(" ")),v&&(e=[e,v].join(" ")),e},G=function(e){l=e,c&&o.put(W.storageKey(),l),n.$emit("$translateChangeSuccess",{language:e}),P.setLocale(l);var t=function(e,t){H[t].setLocale(l)};t.displayName="eachInterpolatorLocaleSetter",angular.forEach(H,t),n.$emit("$translateChangeEnd",{language:e})},Z=function(e){if(!e)throw"No language key specified for loading.";var r=i.defer();n.$emit("$translateLoadingStart",{language:e}),Y=!0;var o=_;"string"==typeof o&&(o=t.get(o));var a=angular.extend({},m,{key:e,$http:angular.extend({},{cache:o},m.$http)}),s=function(t){var i={};n.$emit("$translateLoadingSuccess",{language:e}),angular.isArray(t)?angular.forEach(t,(function(e){angular.extend(i,R(e))})):angular.extend(i,R(t)),Y=!1,r.resolve({key:e,table:i}),n.$emit("$translateLoadingEnd",{language:e})};s.displayName="onLoaderSuccess";var l=function(e){n.$emit("$translateLoadingError",{language:e}),r.reject(e),n.$emit("$translateLoadingEnd",{language:e})};return l.displayName="onLoaderError",t.get(p)(a).then(s,l),r.promise};if(c&&(!(o=t.get(c)).get||!o.put))throw new Error("Couldn't use storage '"+c+"', missing get() or put() method!");if(M.length){var J=function(e){var n=t.get(e);n.setLocale(r||l),H[n.getInterpolationIdentifier()]=n};J.displayName="interpolationFactoryAdder",angular.forEach(M,J)}var X=function(e,t,n,r,o){var a=i.defer(),s=function(i){if(Object.prototype.hasOwnProperty.call(i,t)&&null!==i[t]){r.setLocale(e);var s=i[t];if("@:"===s.substr(0,2))X(e,s.substr(2),n,r,o).then(a.resolve,a.reject);else{var u=r.interpolate(i[t],n,"service",o,t);u=re(t,i[t],u,n,e),a.resolve(u)}r.setLocale(l)}else a.reject()};return s.displayName="fallbackTranslationResolver",function(e){var t=i.defer();if(Object.prototype.hasOwnProperty.call(b,e))t.resolve(b[e]);else if(U[e]){var n=function(e){N(e.key,e.table),t.resolve(e.table)};n.displayName="translationTableResolver",U[e].then(n,t.reject)}else t.reject();return t.promise}(e).then(s,a.reject),a.promise},K=function(e,t,n,i,r){var o,a=b[e];if(a&&Object.prototype.hasOwnProperty.call(a,t)&&null!==a[t]){if(i.setLocale(e),o=i.interpolate(a[t],n,"filter",r,t),o=re(t,a[t],o,n,e,r),!angular.isString(o)&&angular.isFunction(o.$$unwrapTrustedValue)){var s=o.$$unwrapTrustedValue();if("@:"===s.substr(0,2))return K(e,s.substr(2),n,i,r)}else if("@:"===o.substr(0,2))return K(e,o.substr(2),n,i,r);i.setLocale(l)}return o},Q=function(e,n,i,r){return h?t.get(h)(e,l,n,i,r):e},ee=function(e,t,n,r,o,s){var l=i.defer();if(e<a.length){var u=a[e];X(u,t,n,r,s).then((function(e){l.resolve(e)}),(function(){return ee(e+1,t,n,r,o,s).then(l.resolve,l.reject)}))}else if(o)l.resolve(o);else{var c=Q(t,n,o);h&&c?l.resolve(c):l.reject(q(t))}return l.promise},te=function(e,t,n,i,r){var o;if(e<a.length){var s=a[e];(o=K(s,t,n,i,r))||""===o||(o=te(e+1,t,n,i))}return o},ne=function(e,t,n,r,o,s){var l=i.defer(),u=o?b[o]:b,c=n?H[n]:P;if(u&&Object.prototype.hasOwnProperty.call(u,e)&&null!==u[e]){var f=u[e];if("@:"===f.substr(0,2))W(f.substr(2),t,n,r,o,s).then(l.resolve,l.reject);else{var p=c.interpolate(f,t,"service",s,e);p=re(e,f,p,t,o),l.resolve(p)}}else{var m;h&&!Y&&(m=Q(e,t,r)),o&&a&&a.length?function(e,t,n,i,r){return ee(A>0?A:d,e,t,n,i,r)}(e,t,c,r,s).then((function(e){l.resolve(e)}),(function(e){l.reject(q(e))})):h&&!Y&&m?r?l.resolve(r):l.resolve(m):r?l.resolve(r):l.reject(q(e))}return l.promise},ie=function(e,t,n,i,r){var o,s=i?b[i]:b,l=P;if(H&&Object.prototype.hasOwnProperty.call(H,n)&&(l=H[n]),s&&Object.prototype.hasOwnProperty.call(s,e)&&null!==s[e]){var u=s[e];"@:"===u.substr(0,2)?o=ie(u.substr(2),t,n,i,r):(o=l.interpolate(u,t,"filter",r,e),o=re(e,u,o,t,i,r))}else{var c;h&&!Y&&(c=Q(e,t,r)),i&&a&&a.length?(d=0,o=function(e,t,n,i){return te(A>0?A:d,e,t,n,i)}(e,t,l,r)):o=h&&!Y&&c?c:q(e)}return o},re=function(e,n,i,r,o,a){var s=y;return s&&("string"==typeof s&&(s=t.get(s)),s)?s(e,n,i,r,o,a):i},oe=function(e){b[e]||!p||U[e]||(U[e]=Z(e).then((function(e){return N(e.key,e.table),e})))};W.preferredLanguage=function(e){return e&&F(e),r},W.cloakClassName=function(){return k},W.nestedObjectDelimeter=function(){return T},W.fallbackLanguage=function(e){if(null!=e){if(z(e),p&&a&&a.length)for(var t=0,n=a.length;t<n;t++)U[a[t]]||(U[a[t]]=Z(a[t]));W.use(W.use())}return s?a[0]:a},W.useFallbackLanguage=function(e){if(null!=e)if(e){var t=I(a,e);t>-1&&(A=t)}else A=0},W.proposedLanguage=function(){return u},W.storage=function(){return o},W.negotiateLocale=B,W.use=function(e){if(!e)return l;var t=i.defer();t.promise.then(null,angular.noop),n.$emit("$translateChangeStart",{language:e});var r=B(e);return w.length>0&&!r?i.reject(e):(r&&(e=r),u=e,!S&&b[e]||!p||U[e]?U[e]?U[e].then((function(e){return u===e.key&&G(e.key),t.resolve(e.key),e}),(function(e){return!l&&a&&a.length>0&&a[0]!==e?W.use(a[0]).then(t.resolve,t.reject):t.reject(e)})):(t.resolve(e),G(e)):(U[e]=Z(e).then((function(n){return N(n.key,n.table),t.resolve(n.key),u===e&&G(n.key),n}),(function(e){return n.$emit("$translateChangeError",{language:e}),t.reject(e),n.$emit("$translateChangeEnd",{language:e}),i.reject(e)})),U[e].finally((function(){!function(e){u===e&&(u=void 0),U[e]=void 0}(e)})).catch(angular.noop)),t.promise)},W.resolveClientLocale=function(){return O()},W.storageKey=function(){return V()},W.isPostCompilingEnabled=function(){return x},W.isForceAsyncReloadEnabled=function(){return S},W.isKeepContent=function(){return D},W.refresh=function(e){if(!p)throw new Error("Couldn't refresh translation table, no loader registered!");n.$emit("$translateRefreshStart",{language:e});var t=i.defer(),r={};function o(e){var t=Z(e);return U[e]=t,t.then((function(t){b[e]={},N(e,t.table),r[e]=!0}),angular.noop),t}if(t.promise.then((function(){for(var e in b)b.hasOwnProperty(e)&&(e in r||delete b[e]);l&&G(l)}),angular.noop).finally((function(){n.$emit("$translateRefreshEnd",{language:e})})),e)b[e]?o(e).then(t.resolve,t.reject):t.reject();else{var s=a&&a.slice()||[];l&&-1===s.indexOf(l)&&s.push(l),i.all(s.map(o)).then(t.resolve,t.reject)}return t.promise},W.instant=function(e,t,n,i,o){var s=i&&i!==l?B(i)||i:l;if(null===e||angular.isUndefined(e))return e;if(i&&oe(i),angular.isArray(e)){for(var u={},c=0,d=e.length;c<d;c++)u[e[c]]=W.instant(e[c],t,n,i,o);return u}if(angular.isString(e)&&e.length<1)return e;e&&(e=j.apply(e));var f,p,m=[];r&&m.push(r),s&&m.push(s),a&&a.length&&(m=m.concat(a));for(var _=0,y=m.length;_<y;_++){var w=m[_];if(b[w]&&void 0!==b[w][e]&&(f=ie(e,t,n,s,o)),void 0!==f)break}return f||""===f||(g||v?f=q(e):(f=P.interpolate(e,t,"filter",o),h&&!Y&&(p=Q(e,t,o)),h&&!Y&&p&&(f=p))),f},W.versionInfo=function(){return"2.18.1"},W.loaderCache=function(){return _},W.directivePriority=function(){return C},W.statefulFilter=function(){return E},W.isReady=function(){return $};var ae=i.defer();ae.promise.then((function(){$=!0})),W.onReady=function(e){var t=i.defer();return angular.isFunction(e)&&t.promise.then(e),$?t.resolve():ae.promise.then(t.resolve),t.promise},W.getAvailableLanguageKeys=function(){return w.length>0?w:null},W.getTranslationTable=function(e){return(e=e||W.use())&&b[e]?angular.copy(b[e]):null};var se=n.$on("$translateReady",(function(){ae.resolve(),se(),se=null})),le=n.$on("$translateChangeEnd",(function(){ae.resolve(),le(),le=null}));if(p){if(angular.equals(b,{})&&W.use()&&W.use(W.use()),a&&a.length)for(var ue=function(e){return N(e.key,e.table),n.$emit("$translateChangeEnd",{language:e.key}),e},ce=0,de=a.length;ce<de;ce++){var he=a[ce];!S&&b[he]||(U[he]=Z(he).then(ue))}}else n.$emit("$translateReady",{language:W.use()});return W}]}function n(e,t){"use strict";var n={setLocale:function(e){},getInterpolationIdentifier:function(){return"default"},useSanitizeValueStrategy:function(e){return t.useStrategy(e),this},interpolate:function(n,i,r,o,a){var s;return i=i||{},i=t.sanitize(i,"params",o,r),angular.isNumber(n)?s=""+n:angular.isString(n)?(s=e(n)(i),s=t.sanitize(s,"text",o,r)):s="",s}};return n}function i(e,t,n,i,r){"use strict";var o=function(){return this.toString().replace(/^\s+|\s+$/g,"")},a=function(e){return angular.isString(e)?e.toLowerCase():e};return{restrict:"AE",scope:!0,priority:e.directivePriority(),compile:function(s,l){var u=l.translateValues?l.translateValues:void 0,c=l.translateInterpolation?l.translateInterpolation:void 0,d=l.translateSanitizeStrategy?l.translateSanitizeStrategy:void 0,h=s[0].outerHTML.match(/translate-value-+/i),f="^(.*)("+t.startSymbol()+".*"+t.endSymbol()+")(.*)",p="^(.*)"+t.startSymbol()+"(.*)"+t.endSymbol()+"(.*)";return function(s,m,g){s.interpolateParams={},s.preText="",s.postText="",s.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(s);var v={},_=function(e){if(angular.isFunction(_._unwatchOld)&&(_._unwatchOld(),_._unwatchOld=void 0),angular.equals(e,"")||!angular.isDefined(e)){var n=o.apply(m.text()),i=n.match(f);if(angular.isArray(i)){s.preText=i[1],s.postText=i[3],v.translate=t(i[2])(s.$parent);var r=n.match(p);angular.isArray(r)&&r[2]&&r[2].length&&(_._unwatchOld=s.$watch(r[2],(function(e){v.translate=e,k()})))}else v.translate=n||void 0}else v.translate=e;k()},y=function(e){g.$observe(e,(function(t){v[e]=t,k()}))};!function(e,t,n){if(t.translateValues&&angular.extend(e,i(t.translateValues)(s.$parent)),h)for(var r in n)Object.prototype.hasOwnProperty.call(t,r)&&"translateValue"===r.substr(0,14)&&"translateValues"!==r&&(e[a(r.substr(14,1))+r.substr(15)]=n[r])}(s.interpolateParams,g,l);var b=!0;for(var w in g.$observe("translate",(function(e){void 0===e?_(""):""===e&&b||(v.translate=e,k()),b=!1})),g)g.hasOwnProperty(w)&&"translateAttr"===w.substr(0,13)&&w.length>13&&y(w);if(g.$observe("translateDefault",(function(e){s.defaultText=e,k()})),d&&g.$observe("translateSanitizeStrategy",(function(e){s.sanitizeStrategy=i(e)(s.$parent),k()})),u&&g.$observe("translateValues",(function(e){e&&s.$parent.$watch((function(){angular.extend(s.interpolateParams,i(e)(s.$parent))}))})),h){var L=function(e){g.$observe(e,(function(t){var n=a(e.substr(14,1))+e.substr(15);s.interpolateParams[n]=t}))};for(var M in g)Object.prototype.hasOwnProperty.call(g,M)&&"translateValue"===M.substr(0,14)&&"translateValues"!==M&&L(M)}var k=function(){for(var e in v)v.hasOwnProperty(e)&&void 0!==v[e]&&x(e,v[e],s,s.interpolateParams,s.defaultText,s.translateNamespace)},x=function(t,n,i,r,o,a){n?(a&&"."===n.charAt(0)&&(n=a+n),e(n,r,c,o,i.translateLanguage,i.sanitizeStrategy).then((function(e){S(e,i,!0,t)}),(function(e){S(e,i,!1,t)}))):S(n,i,!1,t)},S=function(t,i,r,o){if(r||void 0!==i.defaultText&&(t=i.defaultText),"translate"===o){(r||!r&&!e.isKeepContent()&&void 0===g.translateKeepContent)&&m.empty().append(i.preText+t+i.postText);var a=e.isPostCompilingEnabled(),s=void 0!==l.translateCompile,u=s&&"false"!==l.translateCompile;(a&&!s||u)&&n(m.contents())(i)}else{var c=g.$attr[o];"data-"===c.substr(0,5)&&(c=c.substr(5)),c=c.substr(15),m.attr(c,t)}};(u||h||g.translateDefault)&&s.$watch("interpolateParams",k,!0),s.$on("translateLanguageChanged",k);var T=r.$on("$translateChangeSuccess",k);m.text().length?g.translate?_(g.translate):_(""):g.translate&&_(g.translate),k(),s.$on("$destroy",T)}}}}function r(e,t){"use strict";return{restrict:"A",priority:e.directivePriority(),link:function(n,i,r){var a,s,l,u={},c=function(){angular.forEach(a,(function(t,o){t&&(u[o]=!0,n.translateNamespace&&"."===t.charAt(0)&&(t=n.translateNamespace+t),e(t,s,r.translateInterpolation,void 0,n.translateLanguage,l).then((function(e){i.attr(o,e)}),(function(e){i.attr(o,e)})))})),angular.forEach(u,(function(e,t){a[t]||(i.removeAttr(t),delete u[t])}))};o(n,r.translateAttr,(function(e){a=e}),c),o(n,r.translateValues,(function(e){s=e}),c),o(n,r.translateSanitizeStrategy,(function(e){l=e}),c),r.translateValues&&n.$watch(r.translateValues,c,!0),n.$on("translateLanguageChanged",c);var d=t.$on("$translateChangeSuccess",c);c(),n.$on("$destroy",d)}}}function o(e,t,n,i){"use strict";t&&("::"===t.substr(0,2)?t=t.substr(2):e.$watch(t,(function(e){n(e),i()}),!0),n(e.$eval(t)))}function a(e,t){"use strict";return{compile:function(n){var i=function(t){t.addClass(e.cloakClassName())},r=function(t){t.removeClass(e.cloakClassName())};return i(n),function(n,o,a){var s=r.bind(this,o),l=i.bind(this,o);a.translateCloak&&a.translateCloak.length?(a.$observe("translateCloak",(function(t){e(t).then(s,l)})),t.$on("$translateChangeSuccess",(function(){e(a.translateCloak).then(s,l)}))):e.onReady(s)}}}}function s(){"use strict";return{restrict:"A",scope:!0,compile:function(){return{pre:function(e,t,n){e.translateNamespace=function e(t){return t.translateNamespace?t.translateNamespace:t.$parent?e(t.$parent):void 0}(e),e.translateNamespace&&"."===n.translateNamespace.charAt(0)?e.translateNamespace+=n.translateNamespace:e.translateNamespace=n.translateNamespace}}}}}function l(){"use strict";return{restrict:"A",scope:!0,compile:function(){return function(e,t,n){n.$observe("translateLanguage",(function(t){e.translateLanguage=t})),e.$watch("translateLanguage",(function(){e.$broadcast("translateLanguageChanged")}))}}}}function u(e,t){"use strict";var n=function(n,i,r,o){if(!angular.isObject(i)){var a=this||{__SCOPE_IS_NOT_AVAILABLE:"More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f"};i=e(i)(a)}return t.instant(n,i,r,o)};return t.statefulFilter()&&(n.$stateful=!0),n}function c(e){"use strict";return e("translations")}return e.$inject=["$translate"],t.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],n.$inject=["$interpolate","$translateSanitization"],i.$inject=["$translate","$interpolate","$compile","$parse","$rootScope"],r.$inject=["$translate","$rootScope"],a.$inject=["$translate","$rootScope"],u.$inject=["$parse","$translate"],c.$inject=["$cacheFactory"],angular.module("pascalprecht.translate",["ng"]).run(e),e.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",(function(){"use strict";var e,t,n,i=null,r=!1,o=!1;(n={sanitize:function(e,t){return"text"===t&&(e=s(e)),e},escape:function(e,t){return"text"===t&&(e=a(e)),e},sanitizeParameters:function(e,t){return"params"===t&&(e=u(e,s)),e},escapeParameters:function(e,t){return"params"===t&&(e=u(e,a)),e},sce:function(e,t,n){return"text"===t?e=l(e):"params"===t&&"filter"!==n&&(e=u(e,a)),e},sceParameters:function(e,t){return"params"===t&&(e=u(e,l)),e}}).escaped=n.escapeParameters,this.addStrategy=function(e,t){return n[e]=t,this},this.removeStrategy=function(e){return delete n[e],this},this.useStrategy=function(e){return r=!0,i=e,this},this.$get=["$injector","$log",function(a,s){var l={};return a.has("$sanitize")&&(e=a.get("$sanitize")),a.has("$sce")&&(t=a.get("$sce")),{useStrategy:function(e){return function(t){e.useStrategy(t)}}(this),sanitize:function(e,t,u,c){return i||r||o||(s.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),o=!0),u||null===u||(u=i),u?(c||(c="service"),function(e,t,i,r){return angular.forEach(r,(function(r){if(angular.isFunction(r))e=r(e,t,i);else if(angular.isFunction(n[r]))e=n[r](e,t,i);else{if(!angular.isString(n[r]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+r+"'");if(!l[n[r]])try{l[n[r]]=a.get(n[r])}catch(e){throw l[n[r]]=function(){},new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+r+"'")}e=l[n[r]](e,t,i)}})),e}(e,t,c,angular.isArray(u)?u:[u])):e}}}];var a=function(e){var t=angular.element("<div></div>");return t.text(e),t.html()},s=function(t){if(!e)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return e(t)},l=function(e){if(!t)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return t.trustAsHtml(e)},u=function(e,t,n){if(angular.isDate(e))return e;if(angular.isObject(e)){var i=angular.isArray(e)?[]:{};if(n){if(n.indexOf(e)>-1)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object")}else n=[];return n.push(e),angular.forEach(e,(function(e,r){angular.isFunction(e)||(i[r]=u(e,t,n))})),n.splice(-1,1),i}return angular.isNumber(e)?e:!0===e||!1===e?e:angular.isUndefined(e)||null===e?e:t(e)}})),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",t),t.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",n),n.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",i),i.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateAttr",r),r.displayName="translateAttrDirective",angular.module("pascalprecht.translate").directive("translateCloak",a),a.displayName="translateCloakDirective",angular.module("pascalprecht.translate").directive("translateNamespace",s),s.displayName="translateNamespaceDirective",angular.module("pascalprecht.translate").directive("translateLanguage",l),l.displayName="translateLanguageDirective",angular.module("pascalprecht.translate").filter("translate",u),u.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",c),c.displayName="$translationCache","pascalprecht.translate"})),
+/**
+ * @license AngularJS v1.5.11
+ * (c) 2010-2017 Google, Inc. http://angularjs.org
+ * License: MIT
+ */
+function(e,t){"use strict";var n,i,r,o;function a(){return["$animate",function(e){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(t,n,r,o,a){var s,l,u,c=n[0],d=r.ngMessage||r.when,h=r.ngMessageExp||r.whenExp,f=function(e){s=e?i(e)?e:e.split(/[\s,]+/):null,o.reRender()};h?(f(t.$eval(h)),t.$watchCollection(h,f)):f(d),o.register(c,u={test:function(e){return function(e,t){if(e)return i(e)?e.indexOf(t)>=0:e.hasOwnProperty(t)}(s,e)},attach:function(){l||a((function(t,i){e.enter(t,null,n);var r=(l=t).$$attachId=o.getAttachId();l.on("$destroy",(function(){l&&l.$$attachId===r&&(o.deregister(c),u.detach()),i.$destroy()}))}))},detach:function(){if(l){var t=l;l=null,e.leave(t)}}})}}}]}t.module("ngMessages",[],(function(){n=t.forEach,i=t.isArray,r=t.isString,o=t.element})).directive("ngMessages",["$animate",function(e){return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(r,o,a){var s=this,l=0,u=0;this.getAttachId=function(){return u++};var c,d,h=this.messages={};function f(e,t){for(var n=t,i=[];n&&n!==e;){var r=n.$$ngMessageNode;if(r&&r.length)return h[r];n.childNodes.length&&-1===i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,i.push(n))}}this.render=function(l){c=!1,d=l=l||{};for(var u=t(o,a.ngMessagesMultiple)||t(o,a.multiple),h=[],f={},p=s.head,m=!1,g=0;null!=p;){g++;var v=p.message,_=!1;m||n(l,(function(e,t){if(!_&&i(e)&&v.test(t)){if(f[t])return;f[t]=!0,_=!0,v.attach()}})),_?m=!u:h.push(v),p=p.next}n(h,(function(e){e.detach()})),h.length!==g?e.setClass(r,"ng-active","ng-inactive"):e.setClass(r,"ng-inactive","ng-active")},o.$watchCollection(a.ngMessages||a.for,s.render),r.on("$destroy",(function(){n(h,(function(e){e.message.detach()}))})),this.reRender=function(){c||(c=!0,o.$evalAsync((function(){c&&d&&s.render(d)})))},this.register=function(e,t){var n=l.toString();h[n]={message:t},function(e,t,n){var i=h[n];if(s.head){var r=f(e,t);r?(i.next=r.next,r.next=i):(i.next=s.head,s.head=i)}else s.head=i}(r[0],e,n),e.$$ngMessageNode=n,l++,s.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,function(e,t,n){var i=h[n],r=f(e,t);r?r.next=i.next:s.head=i.next}(r[0],e,t),delete h[t],s.reRender()}}]};function t(e,t){return r(t)&&0===t.length||i(e.$eval(t))}function i(e){return r(e)?e.length:!!e}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){return{restrict:"AE",require:"^^ngMessages",link:function(t,o,a){var s=a.ngMessagesInclude||a.src;e(s).then((function(e){t.$$destroyed||(r(e)&&!e.trim()?i(o,s):n(e)(t,(function(e){o.after(e),i(o,s)})))}))}};function i(e,i){var r=n.$$createComment?n.$$createComment("ngMessagesInclude",i):t[0].createComment(" ngMessagesInclude: "+i+" "),a=o(r);e.after(a),e.remove()}}]).directive("ngMessage",a()).directive("ngMessageExp",a())}(window,window.angular),function(e,t,n){"use strict";t.module("ngApi",[]).factory("Api",["$q","$rootScope",function(e,n){var i=function(e,t){this.gantt=e,this.apiId=t,this.eventListeners=[]};function r(e,t,i,r){return n.$on(e,(function(){var e=Array.prototype.slice.call(arguments);e.splice(0,1),t.apply(r||i,e)}))}return i.prototype.suppressEvents=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerEvent=function(t,i){var o=this;o[t]||(o[t]={});var a=o[t];a.on||(a.on={},a.raise={},a.raisePromise={});var s="event:api:"+this.apiId+":"+t+":"+i;a.raise[i]=function(){n.$emit.apply(n,[s].concat(Array.prototype.slice.call(arguments)))},a.raisePromise[i]=function(){var t=n.$$listenerCount[s];if(!t)return e.when();var i=e.defer();t>1&&((i={promise:i.promise,notify:i.notify,raw:i,count:0,errors:[],results:[]}).checkFinish=function(){i.count<t||(i.count=0,i.errors.length?(1==i.errors.length?i.raw.reject(i.errors[0]):i.raw.reject(i.errors),i.errors=[]):(i.raw.resolve(i.results),i.results=[]))},i.resolve=function(e){i.results.push(e),i.count++,i.checkFinish()},i.reject=function(e){i.errors.push(e),i.count++,i.checkFinish()});var r=[s].concat(Array.prototype.slice.call(arguments)).concat([i]);return n.$emit.apply(n,r),i.promise},a.on[i]=function(e,t,n){var i={handler:t,dereg:r(s,t,o.gantt,n),eventId:s,scope:e,_this:n};o.eventListeners.push(i);var a=function(){i.dereg();var e=o.eventListeners.indexOf(i);o.eventListeners.splice(e,1)};return e.$on("$destroy",(function(){a()})),a}},i.prototype.hasListeners=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach((function(e){a=i.eventListeners.filter((function(t){return e===t.handler}))})),a.forEach((function(e){e.dereg()})),n(),a.forEach((function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)}))},i.prototype.registerMethod=function(e,t,n,i){this[e]||(this[e]={}),this[e][t]=function(){n.apply(i||this.app,arguments)}},i}])}(window,window.angular),
+/**
+ * angular-cache
+ * @version 4.6.0 - Homepage <https://github.com/jmdobry/angular-cache>
+ * @copyright (c) 2013-2016 angular-cache project authors
+ * @license MIT <https://github.com/jmdobry/angular-cache/blob/master/LICENSE>
+ * @overview angular-cache is a very useful replacement for Angular's $cacheFactory.
+ */
+function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t("undefined"==typeof angular?require("angular"):angular):"function"==typeof define&&define.amd?define("angular-cache",["angular"],t):e.angularCacheModuleName=t(e.angular)}(this,(function(e){"use strict";e="default"in e?e.default:e;var t={};t.typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var n=function(e,t,n){for(var i=e[n],r=t(i);n>0;){var o=Math.floor((n+1)/2)-1,a=e[o];if(r>=t(a))break;e[o]=i,e[n]=a,n=o}},i=function(e,t,n){for(var i=e.length,r=e[n],o=t(r);;){var a=2*(n+1),s=a-1,l=null;if(s<i&&t(e[s])<o&&(l=s),a<i&&t(e[a])<(null===l?o:t(e[s]))&&(l=a),null===l)break;e[n]=e[l],e[l]=r,n=l}};function r(e,t){if(e||(e=function(e){return e}),t||(t=function(e,t){return e===t}),"function"!=typeof e)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof t)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=e,this.compareFunc=t,this.heap=[]}var o=r.prototype;o.push=function(e){this.heap.push(e),n(this.heap,this.weightFunc,this.heap.length-1)},o.peek=function(){return this.heap[0]},o.pop=function(){var e=this.heap[0],t=this.heap.pop();return this.heap.length>0&&(this.heap[0]=t,i(this.heap,this.weightFunc,0)),e},o.remove=function(e){for(var t=this.heap.length,r=0;r<t;r++)if(this.compareFunc(this.heap[r],e)){var o=this.heap[r],a=this.heap.pop();return r!==t-1&&(this.heap[r]=a,n(this.heap,this.weightFunc,r),i(this.heap,this.weightFunc,r)),o}return null},o.removeAll=function(){this.heap=[]},o.size=function(){return this.heap.length};var a=null;try{a=window.Promise}catch(e){}var s={isNumber:function(e){return"number"==typeof e},isString:function(e){return"string"==typeof e},isObject:function(e){return null!==e&&"object"===(void 0===e?"undefined":t.typeof(e))},isFunction:function(e){return"function"==typeof e},fromJson:function(e){return JSON.parse(e)},equals:function(e,t){return e===t},Promise:a};function l(e){var t=[],n=void 0;if(!s.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&t.push(n);return t}function u(e){return e&&"function"==typeof e.then}function c(e){return s.isNumber(e)?e.toString():e}function d(e){var t={},n=void 0;if(!s.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&(t[n]=n);return t}var h={capacity:Number.MAX_VALUE,maxAge:Number.MAX_VALUE,deleteOnExpire:"none",onExpire:null,cacheFlushInterval:null,recycleFreq:1e3,storageMode:"memory",storageImpl:null,disabled:!1,storagePrefix:"cachefactory.caches.",storeOnResolve:!1,storeOnReject:!1},f={};function p(e,n){if(e in f)throw new Error(e+" already exists!");if(!s.isString(e))throw new Error("cacheId must be a string!");var i={},o={},a=null,p=new r((function(e){return e.expires}),s.equals),m=new r((function(e){return e.accessed}),s.equals),g=f[e]={$$id:e,destroy:function(){clearInterval(this.$$cacheFlushIntervalId),clearInterval(this.$$recycleFreqId),this.removeAll(),a&&(a().removeItem(this.$$prefix+".keys"),a().removeItem(this.$$prefix)),a=null,i=null,m=null,p=null,this.$$prefix=null,delete f[this.$$id]},disable:function(){this.$$disabled=!0},enable:function(){delete this.$$disabled},get:function(e,n){var r,l=this;if(Array.isArray(e)){var u=(r=[],e.forEach((function(e){var t=l.get(e,n);null!=t&&r.push(t)})),{v:r});if("object"===(void 0===u?"undefined":t.typeof(u)))return u.v}else if(e=c(e),this.$$disabled)return;if(n=n||{},!s.isString(e))throw new Error("key must be a string!");if(n&&!s.isObject(n))throw new Error("options must be an object!");if(n.onExpire&&!s.isFunction(n.onExpire))throw new Error("options.onExpire must be a function!");var d=void 0;if(a){if(o[e])return o[e];var h=a().getItem(this.$$prefix+".data."+e);if(!h)return;d=s.fromJson(h)}else if(s.isObject(i)){if(!(e in i))return;d=i[e]}var f=d.value,p=(new Date).getTime();return a?(m.remove({key:e,accessed:d.accessed}),d.accessed=p,m.push({key:e,accessed:p})):(m.remove(d),d.accessed=p,m.push(d)),"passive"===this.$$deleteOnExpire&&"expires"in d&&d.expires<p?(this.remove(e),this.$$onExpire?this.$$onExpire(e,d.value,n.onExpire):n.onExpire&&n.onExpire.call(this,e,d.value),f=void 0):a&&a().setItem(this.$$prefix+".data."+e,JSON.stringify(d)),f},info:function(e){if(e){var t=void 0;if(a){var n=a().getItem(this.$$prefix+".data."+e);return n?{created:(t=s.fromJson(n)).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return s.isObject(i)&&e in i?{created:(t=i[e]).created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}:void 0}return{id:this.$$id,capacity:this.$$capacity,maxAge:this.$$maxAge,deleteOnExpire:this.$$deleteOnExpire,onExpire:this.$$onExpire,cacheFlushInterval:this.$$cacheFlushInterval,recycleFreq:this.$$recycleFreq,storageMode:this.$$storageMode,storageImpl:a?a():void 0,disabled:!!this.$$disabled,size:m&&m.size()||0}},keys:function(){if(a){var e=a().getItem(this.$$prefix+".keys");return e?s.fromJson(e):[]}return l(i)},keySet:function(){if(a){var e=a().getItem(this.$$prefix+".keys"),t={};if(e)for(var n=s.fromJson(e),r=0;r<n.length;r++)t[n[r]]=n[r];return t}return d(i)},put:function(e,t,n){var r=this;n||(n={});var l="storeOnResolve"in n?!!n.storeOnResolve:this.$$storeOnResolve,d="storeOnReject"in n?!!n.storeOnReject:this.$$storeOnReject,h=function(t,n){return function(i){if(t&&(delete o[e],s.isObject(i)&&"status"in i&&"data"in i?(i=[i.status,i.data,i.headers(),i.statusText],r.put(e,i)):r.put(e,i)),n){if(s.Promise)return s.Promise.reject(i);throw i}return i}};if(!this.$$disabled&&s.isObject(i)&&null!=t){if(e=c(e),!s.isString(e))throw new Error("key must be a string!");var f=(new Date).getTime(),g={key:e,value:u(t)?t.then(h(l,!1),h(d,!0)):t,created:void 0===n.created?f:n.created,accessed:void 0===n.accessed?f:n.accessed};if(n.maxAge&&(g.maxAge=n.maxAge),void 0===n.expires?g.expires=g.created+(g.maxAge||this.$$maxAge):g.expires=n.expires,a){if(u(g.value))return o[e]=g.value,o[e];var v=a().getItem(this.$$prefix+".keys"),_=v?s.fromJson(v):[];a().getItem(this.$$prefix+".data."+e)&&this.remove(e),p.push({key:e,expires:g.expires}),m.push({key:e,accessed:g.accessed}),a().setItem(this.$$prefix+".data."+e,JSON.stringify(g));for(var y=!1,b=0;b<_.length;b++)if(_[b]===e){y=!0;break}y||_.push(e),a().setItem(this.$$prefix+".keys",JSON.stringify(_))}else i[e]&&this.remove(e),p.push(g),m.push(g),i[e]=g,delete o[e];return m.size()>this.$$capacity&&this.remove(m.peek().key),t}},remove:function(e){if(delete o[e+=""],a){var t=a().getItem(this.$$prefix+".data."+e);if(t){var n=s.fromJson(t);m.remove({key:e,accessed:n.accessed}),p.remove({key:e,expires:n.expires}),a().removeItem(this.$$prefix+".data."+e);var r=a().getItem(this.$$prefix+".keys"),l=r?s.fromJson(r):[],u=l.indexOf(e);return u>=0&&l.splice(u,1),a().setItem(this.$$prefix+".keys",JSON.stringify(l)),n.value}}else if(s.isObject(i)){var c=i[e]?i[e].value:void 0;return m.remove(i[e]),p.remove(i[e]),i[e]=null,delete i[e],c}},removeAll:function(){if(a){m.removeAll(),p.removeAll();var e=a().getItem(this.$$prefix+".keys");if(e)for(var t=s.fromJson(e),n=0;n<t.length;n++)this.remove(t[n]);a().setItem(this.$$prefix+".keys",JSON.stringify([]))}else if(s.isObject(i)){for(var r in m.removeAll(),p.removeAll(),i)i[r]=null;i={}}else m.removeAll(),p.removeAll(),i={};o={}},removeExpired:function(){for(var e=(new Date).getTime(),t={},n=void 0,i=void 0;(i=p.peek())&&i.expires<=e;)t[i.key]=i.value?i.value:null,p.pop();if(a)for(n in t){var r=a().getItem(this.$$prefix+".data."+n);r&&(t[n]=s.fromJson(r).value,this.remove(n))}else for(n in t)this.remove(n);if(this.$$onExpire)for(n in t)this.$$onExpire(n,t[n]);return t},setCacheFlushInterval:function(e){var t=this;if(null===e)delete t.$$cacheFlushInterval;else{if(!s.isNumber(e))throw new Error("cacheFlushInterval must be a number!");if(e<0)throw new Error("cacheFlushInterval must be greater than zero!");e!==t.$$cacheFlushInterval&&(t.$$cacheFlushInterval=e,clearInterval(t.$$cacheFlushIntervalId),t.$$cacheFlushIntervalId=setInterval((function(){t.removeAll()}),t.$$cacheFlushInterval))}},setCapacity:function(e){if(null===e)delete this.$$capacity;else{if(!s.isNumber(e))throw new Error("capacity must be a number!");if(e<0)throw new Error("capacity must be greater than zero!");this.$$capacity=e}for(var t={};m.size()>this.$$capacity;)t[m.peek().key]=this.remove(m.peek().key);return t},setDeleteOnExpire:function(e,t){if(null===e)delete this.$$deleteOnExpire;else{if(!s.isString(e))throw new Error("deleteOnExpire must be a string!");if("none"!==e&&"passive"!==e&&"aggressive"!==e)throw new Error('deleteOnExpire must be "none", "passive" or "aggressive"!');this.$$deleteOnExpire=e}!1!==t&&this.setRecycleFreq(this.$$recycleFreq)},setMaxAge:function(e){if(null===e)this.$$maxAge=Number.MAX_VALUE;else{if(!s.isNumber(e))throw new Error("maxAge must be a number!");if(e<0)throw new Error("maxAge must be greater than zero!");this.$$maxAge=e}var t=void 0,n=void 0,r=void 0;if(p.removeAll(),a){var o=a().getItem(this.$$prefix+".keys");for(n=o?s.fromJson(o):[],t=0;t<n.length;t++){r=n[t];var u=a().getItem(this.$$prefix+".data."+r);if(u){var c=s.fromJson(u);this.$$maxAge===Number.MAX_VALUE?c.expires=Number.MAX_VALUE:c.expires=c.created+(c.maxAge||this.$$maxAge),p.push({key:r,expires:c.expires})}}}else for(n=l(i),t=0;t<n.length;t++)r=n[t],this.$$maxAge===Number.MAX_VALUE?i[r].expires=Number.MAX_VALUE:i[r].expires=i[r].created+(i[r].maxAge||this.$$maxAge),p.push(i[r]);return"aggressive"===this.$$deleteOnExpire?this.removeExpired():{}},setOnExpire:function(e){if(null===e)delete this.$$onExpire;else{if(!s.isFunction(e))throw new Error("onExpire must be a function!");this.$$onExpire=e}},setOptions:function(e,t){if(e=e||{},t=!!t,!s.isObject(e))throw new Error("cacheOptions must be an object!");"storagePrefix"in e?this.$$storagePrefix=e.storagePrefix:t&&(this.$$storagePrefix=h.storagePrefix),this.$$prefix=this.$$storagePrefix+this.$$id,"disabled"in e?this.$$disabled=!!e.disabled:t&&(this.$$disabled=h.disabled),"deleteOnExpire"in e?this.setDeleteOnExpire(e.deleteOnExpire,!1):t&&this.setDeleteOnExpire(h.deleteOnExpire,!1),"recycleFreq"in e?this.setRecycleFreq(e.recycleFreq):t&&this.setRecycleFreq(h.recycleFreq),"maxAge"in e?this.setMaxAge(e.maxAge):t&&this.setMaxAge(h.maxAge),"storeOnResolve"in e?this.$$storeOnResolve=!!e.storeOnResolve:t&&(this.$$storeOnResolve=h.storeOnResolve),"storeOnReject"in e?this.$$storeOnReject=!!e.storeOnReject:t&&(this.$$storeOnReject=h.storeOnReject),"capacity"in e?this.setCapacity(e.capacity):t&&this.setCapacity(h.capacity),"cacheFlushInterval"in e?this.setCacheFlushInterval(e.cacheFlushInterval):t&&this.setCacheFlushInterval(h.cacheFlushInterval),"onExpire"in e?this.setOnExpire(e.onExpire):t&&this.setOnExpire(h.onExpire),"storageMode"in e||"storageImpl"in e?this.setStorageMode(e.storageMode||h.storageMode,e.storageImpl||h.storageImpl):t&&this.setStorageMode(h.storageMode,h.storageImpl)},setRecycleFreq:function(e){if(null===e)delete this.$$recycleFreq;else{if(!s.isNumber(e))throw new Error("recycleFreq must be a number!");if(e<0)throw new Error("recycleFreq must be greater than zero!");this.$$recycleFreq=e}clearInterval(this.$$recycleFreqId),"aggressive"===this.$$deleteOnExpire?function(e){e.$$recycleFreqId=setInterval((function(){e.removeExpired()}),e.$$recycleFreq)}(this):delete this.$$recycleFreqId},setStorageMode:function(e,t){if(!s.isString(e))throw new Error("storageMode must be a string!");if("memory"!==e&&"localStorage"!==e&&"sessionStorage"!==e)throw new Error('storageMode must be "memory", "localStorage" or "sessionStorage"!');var n=a,r=i,o=!1,l={};function u(e,t){var n=this.keys(),i=n.length;if(i){for(var r=void 0,a=s.isObject(t),u=0;u<i;u++){if(r=n[u],e){var c=e().getItem(this.$$prefix+".data."+r);c&&(l[r]=s.fromJson(c))}else a&&(l[r]=t[r]);this.remove(r)}o=!0}}if(this.$$initializing||u.call(this,n,r),this.$$storageMode=e,t){if(!s.isObject(t))throw new Error("storageImpl must be an object!");if(!("setItem"in t&&"function"==typeof t.setItem))throw new Error('storageImpl must implement "setItem(key, value)"!');if(!("getItem"in t&&"function"==typeof t.getItem))throw new Error('storageImpl must implement "getItem(key)"!');if(!("removeItem"in t)||"function"!=typeof t.removeItem)throw new Error('storageImpl must implement "removeItem(key)"!');a=function(){return t}}else if("localStorage"===this.$$storageMode)try{localStorage.setItem("cachefactory","cachefactory"),localStorage.removeItem("cachefactory"),a=function(){return localStorage}}catch(e){a=null,this.$$storageMode="memory"}else if("sessionStorage"===this.$$storageMode)try{sessionStorage.setItem("cachefactory","cachefactory"),sessionStorage.removeItem("cachefactory"),a=function(){return sessionStorage}}catch(e){a=null,this.$$storageMode="memory"}else a=null,this.$$storageMode="memory";if(this.$$initializing&&u.call(this,a,i),o){var c=void 0;for(var d in l)c=l[d],this.put(d,c.value,{created:c.created,accessed:c.accessed,expires:c.expires})}},touch:function(e,t){var n=this;if(e){var i=this.get(e,{onExpire:function(e,t){return n.put(e,t)}});i&&this.put(e,i,t)}else for(var r=this.keys(),o=0;o<r.length;o++)this.touch(r[o],t)},values:function(){for(var e=this.keys(),t=[],n=0;n<e.length;n++)t.push(this.get(e[n]));return t}};return g.$$initializing=!0,g.setOptions(n,!0),g.$$initializing=!1,g}function m(e,t){return p(e,t)}return m.createCache=p,m.defaults=h,m.info=function(){var e=l(f),t={size:e.length,caches:{}};for(var n in h)h.hasOwnProperty(n)&&(t[n]=h[n]);for(var i=0;i<e.length;i++){var r=e[i];t.caches[r]=f[r].info()}return t},m.get=function(e){return f[e]},m.keySet=function(){return d(f)},m.keys=function(){return l(f)},m.destroy=function(e){f[e]&&(f[e].destroy(),delete f[e])},m.destroyAll=function(){for(var e in f)f[e].destroy();f={}},m.clearAll=function(){for(var e in f)f[e].removeAll()},m.removeExpiredFromAll=function(){var e={};for(var t in f)e[t]=f[t].removeExpired();return e},m.enableAll=function(){for(var e in f)f[e].$$disabled=!1},m.disableAll=function(){for(var e in f)f[e].$$disabled=!0},m.touchAll=function(){for(var e in f)f[e].touch()},m.utils=s,m.BinaryHeap=r,m.utils.equals=e.equals,m.utils.isObject=e.isObject,m.utils.fromJson=e.fromJson,e.module("angular-cache",[]).provider("BinaryHeap",(function(){this.$get=function(){return m.BinaryHeap}})).provider("CacheFactory",(function(){this.defaults=m.defaults,this.defaults.storagePrefix="angular-cache.caches.",this.$get=["$q",function(e){return m.utils.Promise=e,m}]})),"angular-cache"})),function(){"use strict";function e(e,t,n,i,r){function o(e){return angular.isString(e)?(e=e.split(/\s*,\s*/)).some((function(e){return!!t.matchMedia(d[e]).matches||void 0})):void 0}var a=r.config.rules,s=r.config.extraRules||{},l=r.config.nobind||!1,u=r.config.debounce||250,c={bootstrap:{lg:"(min-width: 1200px)",md:"(min-width: 992px) and (max-width: 1199px)",sm:"(min-width: 768px) and (max-width: 991px)",xs:"(max-width: 767px)"},matchmedia:{print:"print",screen:"screen",phone:"(max-width: 767px)",tablet:"(min-width: 768px) and (max-width: 991px)",desktop:"(min-width: 992px)",portrait:"(orientation: portrait)",landscape:"(orientation: landscape)"}},d={},h={is:o,bind:function(t,n){var i=null,r=o(t),a={active:r,unbind:null};if(!l){var s=(n=n||e).$on("screenmatch::resize",(function(){i=r,r=o(t),i!==r&&(a.active=r)}));a.unbind=function(){s()}}return a},once:function(t,n,r){var a=!1,s=null,u=o(t);if(angular.isFunction(n)&&(u&&(a=!0,i((function(){n()}))),!l&&!a))var c=(r=r||e).$on("screenmatch::resize",(function(){s=u,(u=o(t))&&s!==u&&(a=!0,i((function(){n()}))),a&&c()}))},when:function(t,n,r,a){var s=null,u=o(t);if(angular.isUndefined(a)&&!angular.isUndefined(r)&&(angular.isFunction(r)||(a=r,r=void 0)),angular.isFunction(n)&&(angular.isFunction(r)||angular.isUndefined(r))&&(u?i((function(){n()})):r&&i((function(){r()})),!l))return{cancel:(a=a||e).$on("screenmatch::resize",(function(){s=u,u=o(t),s!==u&&(u?i((function(){n()})):r&&i((function(){r()})))}))}}};return function(){if(d=angular.isObject(a)&&!angular.equals({},a)?a:c[a]||c.bootstrap,!angular.equals({},s)&&angular.isObject(s)){var e={};angular.forEach(s,(function(t,n){angular.isString(t)&&(e[n]=t)})),angular.extend(d,e)}}(),l||function(){var i=angular.element(t),r=!1;i.on("resize",(function(){if(!r)var t=n((function(){e.$broadcast("screenmatch::resize",!0),r&&(n.cancel(t),r=!1)}),u);r=!0}))}(),h}function t(e,t){var n=e[0];return{link:function(e,i,r){var o=r.asmScreen,a=t.bind(o,e);r.ngIf=function(){return a.active},n.link.apply(n,arguments)},terminal:n.terminal,transclude:n.transclude,priority:n.priority,restrict:n.restrict}}function n(e){(angular.isUndefined(e.matchMedia)||!angular.isFunction(e.matchMedia("all").addListener))&&(e.matchMedia=function(){var t=e.styleMedia||e.media;if(!t){var n,i=document.createElement("style"),r=document.getElementsByTagName("script")[0];i.type="text/css",i.id="matchmediajs-test",r.parentNode.insertBefore(i,r),n="getComputedStyle"in e&&e.getComputedStyle(i,null)||i.currentStyle,t={matchMedium:function(e){var t="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return i.styleSheet?i.styleSheet.cssText=t:i.textContent=t,"1px"===n.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}angular.module("angular.screenmatch",[]).run(n).provider("screenmatchConfig",(function(){this.config={},this.$get=function(){return{config:this.config}}})).factory("screenmatch",e).directive("asmScreen",t),e.$inject=["$rootScope","$window","$interval","$timeout","screenmatchConfig"],t.$inject=["ngIfDirective","screenmatch"],n.$inject=["$window"]}(),function(){"use strict";function e(e,t){function n(t,n,i){n!==i&&e.$broadcast("$$rebind::"+t)}Object.keys(t).forEach((function(i){e.$watch(t[i],n.bind(null,i),"object"==typeof e[t[i]])}))}function t(e){function t(e,t,n){return function(e,i,r){var o,a,s,l,u;if("string"!=typeof i||!t.test(i))return e.call(this,i,r);for(o=i.split(":"),u=[];o.length;)if((a=o.shift())&&a.trim()){if(!n.test(a)){l=[a].concat(o).join(":");break}u.push(a)}return l||(l=u.splice(-1,1)[0]),(s=e.call(this,"::"+l,r)).$$watchDelegate=function(e,t){function n(e,n){t.forEach((function(t){e.$on("$$rebind::"+t,n)}))}if(e.$$watchDelegate.wrapped)return e.$$watchDelegate;var i=function(e,t,i,r,o){var a=e.bind(this,t,i,r,o);return n(t,a),a()}.bind(this,e.$$watchDelegate);return i.wrapped=!0,i}(s,u),s}.bind(null,e)}t.$inject=["$delegate","bindNotifierRegex","bindNotifierKeyRegex"],e.decorator("$parse",t)}t.$inject=["$provide"],angular.module("angular.bind.notifier",[]).constant("bindNotifierKeyRegex",/^[a-zA-Z0-9][\w-]*$/).constant("bindNotifierRegex",/^[\s]*:([a-zA-Z0-9][\w-]*):(.+\n?)+$/).factory("$Notifier",(function(){return function(t,n){if(!t)throw new Error("No $scope given");if(!n)throw new Error("No notifier object given");e(t,n)}})).directive("bindNotifier",(function(){return{restrict:"A",scope:!0,compile:function(t,n){var i={};return n.bindNotifier.replace(/[\{\}\s]/g,"").split(",").forEach((function(e){var t=e.split(":");i[t[0]]=t[1]})),function(t){e(t,i)}}}})).config(t)}(),r=function(e,t,n){var i=e,r=t||0,o=0;this.getRawData=function(){return i},"string"==typeof e?(o=n||i.length,this.getByteAt=function(e){return 255&i.charCodeAt(e+r)},this.getBytesAt=function(e,t){for(var n=[],o=0;o<t;o++)n[o]=255&i.charCodeAt(e+o+r);return n}):"unknown"==typeof e&&(o=n||IEBinary_getLength(i),this.getByteAt=function(e){return IEBinary_getByteAt(i,e+r)},this.getBytesAt=function(e,t){return new VBArray(IEBinary_getBytesAt(i,e+r,t)).toArray()}),this.getLength=function(){return o},this.getSByteAt=function(e){var t=this.getByteAt(e);return t>127?t-256:t},this.getShortAt=function(e,t){var n=t?(this.getByteAt(e)<<8)+this.getByteAt(e+1):(this.getByteAt(e+1)<<8)+this.getByteAt(e);return n<0&&(n+=65536),n},this.getSShortAt=function(e,t){var n=this.getShortAt(e,t);return n>32767?n-65536:n},this.getLongAt=function(e,t){var n=this.getByteAt(e),i=this.getByteAt(e+1),r=this.getByteAt(e+2),o=this.getByteAt(e+3),a=t?(((n<<8)+i<<8)+r<<8)+o:(((o<<8)+r<<8)+i<<8)+n;return a<0&&(a+=4294967296),a},this.getSLongAt=function(e,t){var n=this.getLongAt(e,t);return n>2147483647?n-4294967296:n},this.getStringAt=function(e,t){for(var n=[],i=this.getBytesAt(e,t),r=0;r<t;r++)n[r]=String.fromCharCode(i[r]);return n.join("")},this.getCharAt=function(e){return String.fromCharCode(this.getByteAt(e))},this.toBase64=function(){return window.btoa(i)},this.fromBase64=function(e){i=window.atob(e)}},o=function(){var e=!1,t={36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRation",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",40965:"InteroperabilityIFDPointer",42016:"ImageUniqueID"},n={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright"},i={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential"},r={ExposureProgram:{0:"Not defined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Not defined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},Components:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"}};function o(e){return!!e.exifdata}function a(t){if(255!=t.getByteAt(0)||216!=t.getByteAt(1))return!1;for(var n,i=2,r=t.getLength();i<r;){if(255!=t.getByteAt(i))return e&&alert("Not a valid marker at offset "+i+", found: "+t.getByteAt(i)),!1;if(22400==(n=t.getByteAt(i+1)))return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));if(225==n)return e&&alert("Found 0xFFE1 marker"),u(t,i+4,t.getShortAt(i+2,!0));i+=2+t.getShortAt(i+2,!0)}}function s(t,n,i,r,o){var a,s,u,c=t.getShortAt(i,o),d={};for(u=0;u<c;u++)a=i+12*u+2,!(s=r[t.getShortAt(a,o)])&&e&&alert("Unknown tag: "+t.getShortAt(a,o)),d[s]=l(t,a,n,0,o);return d}function l(e,t,n,i,r){var o,a,s,l,u,c=e.getShortAt(t+2,r),d=e.getLongAt(t+4,r),h=e.getLongAt(t+8,r)+n;switch(c){case 1:case 7:if(1==d)return e.getByteAt(t+8,r);for(o=d>4?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getByteAt(o+f);return a;case 2:return o=d>4?h:t+8,e.getStringAt(o,d-1);case 3:if(1==d)return e.getShortAt(t+8,r);for(o=d>2?h:t+8,a=[],f=0;f<d;f++)a[f]=e.getShortAt(o+2*f,r);return a;case 4:if(1==d)return e.getLongAt(t+8,r);a=[];for(var f=0;f<d;f++)a[f]=e.getLongAt(h+4*f,r);return a;case 5:if(1==d)return l=e.getLongAt(h,r),u=e.getLongAt(h+4,r),(s=new Number(l/u)).numerator=l,s.denominator=u,s;for(a=[],f=0;f<d;f++)l=e.getLongAt(h+8*f,r),u=e.getLongAt(h+4+8*f,r),a[f]=new Number(l/u),a[f].numerator=l,a[f].denominator=u;return a;case 9:if(1==d)return e.getSLongAt(t+8,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+4*f,r);return a;case 10:if(1==d)return e.getSLongAt(h,r)/e.getSLongAt(h+4,r);for(a=[],f=0;f<d;f++)a[f]=e.getSLongAt(h+8*f,r)/e.getSLongAt(h+4+8*f,r);return a}}function u(o,a){if("Exif"!=o.getStringAt(a,4))return e&&alert("Not valid EXIF data! "+o.getStringAt(a,4)),!1;var l,u,c,d,h,f=a+6;if(18761==o.getShortAt(f))l=!1;else{if(19789!=o.getShortAt(f))return e&&alert("Not valid TIFF data! (no 0x4949 or 0x4D4D)"),!1;l=!0}if(42!=o.getShortAt(f+2,l))return e&&alert("Not valid TIFF data! (no 0x002A)"),!1;if(8!=o.getLongAt(f+4,l))return e&&alert("Not valid TIFF data! (First offset not 8)",o.getShortAt(f+4,l)),!1;if((u=s(o,f,f+8,n,l)).ExifIFDPointer)for(c in d=s(o,f,f+u.ExifIFDPointer,t,l)){switch(c){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":d[c]=r[c][d[c]];break;case"ExifVersion":case"FlashpixVersion":d[c]=String.fromCharCode(d[c][0],d[c][1],d[c][2],d[c][3]);break;case"ComponentsConfiguration":d[c]=r.Components[d[c][0]]+r.Components[d[c][1]]+r.Components[d[c][2]]+r.Components[d[c][3]]}u[c]=d[c]}if(u.GPSInfoIFDPointer)for(c in h=s(o,f,f+u.GPSInfoIFDPointer,i,l)){switch(c){case"GPSVersionID":h[c]=h[c][0]+"."+h[c][1]+"."+h[c][2]+"."+h[c][3]}u[c]=h[c]}return u}return{readFromBinaryFile:function(e){return a(e)},pretty:function(e){if(!o(e))return"";var t,n=e.exifdata,i="";for(t in n)n.hasOwnProperty(t)&&("object"==typeof n[t]?n[t]instanceof Number?i+=t+" : "+n[t]+" ["+n[t].numerator+"/"+n[t].denominator+"]\r\n":i+=t+" : ["+n[t].length+" values]\r\n":i+=t+" : "+n[t]+"\r\n");return i},getTag:function(e,t){if(o(e))return e.exifdata[t]},getAllTags:function(e){if(!o(e))return{};var t,n=e.exifdata,i={};for(t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);return i},getData:function(e,t){return!!e.complete&&(o(e)?t&&t.call(e):function(e,t){BinaryAjax(e.src,(function(n){var i=a(n.binaryResponse);e.exifdata=i||{},t&&t.call(e)}))}(e,t),!0)},Tags:t,TiffTags:n,GPSTags:i,StringValues:r}}(),angular.module("ImageCropper",[]).directive("imageCrop",(function(){return{template:'<div id="image-crop-{{ rand }}" class="ng-image-crop ng-image-crop--{{ shape }}" ng-style="moduleStyles"><section ng-style="sectionStyles" ng-show="step==1"></section><section ng-style="sectionStyles" ng-show="step==2"><canvas class="cropping-canvas" width="{{ canvasWidth }}" height="{{ canvasHeight }}" ng-mousemove="onCanvasMouseMove($event)" ng-mousedown="onCanvasMouseDown($event)"></canvas><div ng-style="croppingGuideStyles" class="cropping-guide"></div><div class="zoom-handle" ng-mousemove="onHandleMouseMove($event)" ng-mousedown="onHandleMouseDown($event)" ng-mouseup="onHandleMouseUp($event)"><span>&larr; zoom &rarr;</span></div></section><section ng-style="sectionStyles" class="image-crop-section-final" ng-show="step==3"><img class="image-crop-final" ng-src="{{ croppedDataUri }}" /></section></div>',replace:!0,restrict:"AE",scope:{crop:"=",width:"@",height:"@",shape:"@",src:"=",resultBlob:"=",result:"=",step:"=",padding:"@",maxSize:"@"},link:function(e,t,n){var i=e.padding?Number(e.padding):200;e.rand=Math.round(99999*Math.random()),e.step=e.step||1,e.shape=e.shape||"circle",e.width=parseInt(e.width,10)||300,e.height=parseInt(e.height,10)||300,e.canvasWidth=e.width+i,e.canvasHeight=e.height+i;var a=t[0],s=a.getElementsByClassName("cropping-canvas")[0],l=a.getElementsByClassName("zoom-handle")[0],u=a.getElementsByClassName("image-crop-final")[0],c=new Image,d=new FileReader,h=0,f=0,p=0,m=0,g=!1,v=0,_=0,y=!1,b=h,w=f,L=0,M=0,k=1,x=0,S=0,T=2,$=0,D=i/2,C=0,E=i/2,A=e.maxSize?Number(e.maxSize):null,P=s.getContext("2d"),Y=null;function O(e){var t=atob(e.split(",")[1]),n=new r(t,0,t.length);Y=o.readFromBinaryFile(n),function(e){return new Promise((function(t,n){if(!A)return t(e);var i=new Image;i.src=e,i.onload=function(){var n=i.height,r=i.width;if(n<=A&&r<=A)return t(e);var o=r/n;o>1?(r=A,n=A/o):(r=A*o,n=A),r=Math.round(r),n=Math.round(n);var a=document.createElement("canvas");a.width=r,a.height=n;var s=a.getContext("2d");s.drawImage(i,0,0,i.width,i.height,0,0,a.width,a.height),s.save();var l=a.toDataURL();t(l)}}))}(e).then((function(e){return Y&&Y.Orientation&&Y.Orientation>1?function(e,t){return new Promise((function(n,i){var r=new Image;r.src=e,r.onload=function(){var e=document.createElement("canvas");t.Orientation>=5?(e.width=r.height,e.height=r.width):(e.width=r.width,e.height=r.height);var i=e.getContext("2d");switch(t.Orientation){case 1:break;case 2:i.translate(r.width,0),i.scale(-1,1);break;case 3:i.translate(r.width,r.height),i.rotate(Math.PI);break;case 4:i.translate(0,r.height),i.scale(1,-1);break;case 5:i.rotate(.5*Math.PI),i.scale(1,-1);break;case 6:i.rotate(.5*Math.PI),i.translate(0,-r.height);break;case 7:i.rotate(.5*Math.PI),i.translate(r.width,-r.height),i.scale(-1,1);break;case 8:i.rotate(-.5*Math.PI),i.translate(-r.width,0)}i.drawImage(r,0,0),i.save();var o=e.toDataURL();n(o)}}))}(e,Y):e})).then((function(e){c.src=e})).catch((function(e){alert(e)}))}function I(e,t){return L=e=(e=e<$?$:e)>D?D:e,M=t=(t=t<C?C:t)>E?E:t,P.clearRect(0,0,s.width,s.height),P.drawImage(c,e,t,b,w),e==$||e==D||t==C||t==E}function j(e){return Math.round(1e3*e)/1e3}function H(){$=s.width-c.width*k-i/2,C=s.height-c.height*k-i/2}function B(e){if(e){var t=j(k+e);if(!(t<S||t>T)){k=t,H(),b=c.width*k,w=c.height*k;var n=p*k,i=m*k;n<$?n=$:n>D&&(n=D),i<C?i=C:i>E&&(i=E),P.clearRect(0,0,s.width,s.height),P.drawImage(c,n,i,b,w)}}}function N(e,t){document.documentElement.addEventListener(e,t,!1)}function R(e,t){document.documentElement.removeEventListener(e,t)}e.moduleStyles={width:e.width+i+"px",height:e.height+i+"px"},e.sectionStyles={width:e.width+i+"px",height:e.height+i+"px"},e.croppingGuideStyles={width:e.width+"px",height:e.height+"px",top:i/2+"px",left:i/2+"px"},d.onload=function(e){O(this.resultBlob)},c.onload=function(){e.step=2,e.$apply(),P.drawImage(c,0,0),h=c.width,f=c.height,e.width,this.width,e.height,this.height,b=h,w=f,S=h>=f?(s.height-i)/f:(s.width-i)/h,x=j(Math.sqrt(Math.pow(s.width,2)+Math.pow(s.height,2))),H(),I(Math.round(($+D)/2),Math.round((C+E)/2))},e.$watch("src",(function(){e.src?3!=e.step&&("Blob"==typeof e.src?d.readAsDataURL(e.src):O(e.src)):(e.step=1,k=1,p=0,m=0,g=!1,v=0,_=0,y=!1,P.clearRect(0,0,s.width,s.height),c.src="")})),e.$watch("crop",(function(){e.crop&&(e.doCrop(),e.crop=!1)})),u.onload=function(){var t=document.createElement("canvas");t.width=this.width-i,t.height=this.height-i,t.style.display="none",t.getContext("2d").drawImage(u,-i/2,-i/2),a.getElementsByClassName("image-crop-section-final")[0].appendChild(t);var n=t.toDataURL();e.result=n,e.resultBlob=function(e){var t,n;t=-1!==e.split(",")[0].indexOf("base64")?atob(e.split(",")[1]):decodeURI(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0];for(var i=new Array,r=0;r<t.length;r++)i[r]=t.charCodeAt(r);return new Blob([new Uint8Array(i)],{type:n})}(n),e.$apply()},e.doCrop=function(){e.croppedDataUri=s.toDataURL(),e.step=3},e.onCanvasMouseUp=function(t){g&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,g=!1,p=L,m=M,R("mouseup",e.onCanvasMouseUp),R("touchend",e.onCanvasMouseUp),R("mousemove",e.onCanvasMouseMove),R("touchmove",e.onCanvasMouseMove))},s.addEventListener("touchend",e.onCanvasMouseUp,!1),e.onCanvasMouseDown=function(t){v="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,y=!1,g=!0,N("mouseup",e.onCanvasMouseUp),N("mousemove",e.onCanvasMouseMove)},s.addEventListener("touchstart",e.onCanvasMouseDown,!1),e.onHandleMouseDown=function(t){t.preventDefault(),t.stopPropagation(),v=F="touchstart"===t.type?t.changedTouches[0].clientX:t.clientX,_=z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,g=!1,y=!0,N("mouseup",e.onHandleMouseUp),N("touchend",e.onHandleMouseUp),N("mousemove",e.onHandleMouseMove),N("touchmove",e.onHandleMouseMove)},l.addEventListener("touchstart",e.onHandleMouseDown,!1),e.onHandleMouseUp=function(t){y&&(t.preventDefault(),t.stopPropagation(),v=0,_=0,y=!1,p=L,m=M,R("mouseup",e.onHandleMouseUp),R("touchend",e.onHandleMouseUp),R("mousemove",e.onHandleMouseMove),R("touchmove",e.onHandleMouseMove))},l.addEventListener("touchend",e.onHandleMouseUp,!1),e.onCanvasMouseMove=function(e){if(e.preventDefault(),e.stopPropagation(),g){var t=v-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=_-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);I(p-t,m-n)}},s.addEventListener("touchmove",e.onCanvasMouseMove,!1);var F=null,z=null;e.onHandleMouseMove=function(e){if(e.stopPropagation(),e.preventDefault(),!y)return!1;var t=F-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=z-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);F="touchmove"===e.type?e.changedTouches[0].clientX:e.clientX,z="touchmove"===e.type?e.changedTouches[0].clientY:e.clientY,B(function(e,t){var n=j(Math.sqrt(Math.pow(e,2)+Math.pow(t,2))/x),i=j((T-S)*n*.6);return e>0?-i:i}(t,n))},l.addEventListener("touchmove",e.onHandleMouseMove,!1),e.onHandleMouseWheel=function(e){e.preventDefault(),B(e.deltaY>0?-.05:.05)},s.addEventListener("mousewheel",e.onHandleMouseWheel),l.addEventListener("mousewheel",e.onHandleMouseWheel)}}})),function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(this,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={exports:{},id:i,loaded:!1};return e[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){"use strict";e.exports="ngFileSaver",angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",n(1)]).factory("FileSaverUtils",[n(2)]).factory("Blob",["$window",n(3)]).factory("SaveAs",[n(5)])},function(e,t){"use strict";e.exports=function(e,t,n){return{saveAs:function(e,i,r){return n.isBlobInstance(e)||n.handleErrors("Data argument should be a blob instance"),n.isString(i)||n.handleErrors("Filename argument should be a string"),function(e,i,r){try{t(e,i,r)}catch(e){n.handleErrors(e.message)}}(e,i,r)}}}},function(e,t){"use strict";e.exports=function(){return{handleErrors:function(e){throw new Error(e)},isString:function(e){return"string"==typeof e||e instanceof String},isUndefined:function(e){return void 0===e},isBlobInstance:function(e){return e instanceof Blob}}}},function(e,t,n){"use strict";n(4),e.exports=function(e){return e.Blob}},function(e,t){
+/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
+!function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(e){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},i=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},r=n.prototype,o=i.prototype,a=e.FileReaderSync,s=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),u=l.length,c=e.URL||e.webkitURL||e,d=c.createObjectURL,h=c.revokeObjectURL,f=c,p=e.btoa,m=e.atob,g=e.ArrayBuffer,v=e.Uint8Array,_=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(i.fake=o.fake=!0;u--;)s.prototype[l[u]]=u+1;return c.createObjectURL||(f=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(_),n.origin=t&&t[1])),n}),f.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof i?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):p?t+";base64,"+p(e.data):t+","+encodeURIComponent(e.data)):d?d.call(c,e):void 0},f.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(c,e)},r.append=function(e){var n=this.data;if(v&&(e instanceof g||e instanceof v)){for(var r="",o=new v(e),l=0,u=o.length;l<u;l++)r+=String.fromCharCode(o[l]);n.push(r)}else if("Blob"===t(e)||"File"===t(e)){if(!a)throw new s("NOT_READABLE_ERR");var c=new a;n.push(c.readAsBinaryString(e))}else e instanceof i?"base64"===e.encoding&&m?n.push(m(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!=typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},r.getBlob=function(e){return arguments.length||(e=null),new i(this.data.join(""),e,"raw")},r.toString=function(){return"[object BlobBuilder]"},o.slice=function(e,t,n){var r=arguments.length;return r<3&&(n=null),new i(this.data.slice(e,r>1?t:this.data.length),n,this.encoding)},o.toString=function(){return"[object Blob]"},o.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var i=n&&n.type||"",r=new t;if(e)for(var o=0,a=e.length;o<a;o++)Uint8Array&&e[o]instanceof Uint8Array?r.append(e[o].buffer):r.append(e[o]);var s=r.getBlob(i);return!s.slice&&s.webkitSlice&&(s.slice=s.webkitSlice),s};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(e,t,n){"use strict";e.exports=function(){return n(6).saveAs||function(){}}},function(e,t,n){var i,r=r||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,n=function(){return e.URL||e.webkitURL||e},i=t.createElementNS("http://www.w3.org/1999/xhtml","a"),r="download"in i,o=/constructor/i.test(e.HTMLElement)||e.safari,a=/CriOS\/[\d]+/.test(navigator.userAgent),s=function(t){(e.setImmediate||e.setTimeout)((function(){throw t}),0)},l=function(e){setTimeout((function(){"string"==typeof e?n().revokeObjectURL(e):e.remove()}),4e4)},u=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},c=function(t,c,d){d||(t=u(t));var h,f=this,p="application/octet-stream"===t.type,m=function(){!function(e,t,n){for(var i=(t=[].concat(t)).length;i--;){var r=e["on"+t[i]];if("function"==typeof r)try{r.call(e,e)}catch(e){s(e)}}}(f,"writestart progress write writeend".split(" "))};if(f.readyState=f.INIT,r)return h=n().createObjectURL(t),void setTimeout((function(){i.href=h,i.download=c,function(e){var t=new MouseEvent("click");e.dispatchEvent(t)}(i),m(),l(h),f.readyState=f.DONE}));!function(){if((a||p&&o)&&e.FileReader){var i=new FileReader;return i.onloadend=function(){var t=a?i.result:i.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,f.readyState=f.DONE,m()},i.readAsDataURL(t),void(f.readyState=f.INIT)}h||(h=n().createObjectURL(t)),p?e.location.href=h:e.open(h,"_blank")||(e.location.href=h),f.readyState=f.DONE,m(),l(h)}()},d=c.prototype;return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=u(e)),navigator.msSaveOrOpenBlob(e,t)}:(d.abort=function(){},d.readyState=d.INIT=0,d.WRITING=1,d.DONE=2,d.error=d.onwritestart=d.onprogress=d.onwrite=d.onabort=d.onerror=d.onwriteend=null,function(e,t,n){return new c(e,t||e.name||"download",n)})}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */void 0!==e&&e.exports?e.exports.saveAs=r:null!==n(7)&&null!==n(8)&&(void 0===(i=function(){return r}.call(t,n,t,e))||(e.exports=i))},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=t}).call(t,{})}])})),
+/*** Directives and services for responding to idle users in AngularJS
+* @author Mike Grabski <me@mikegrabski.com>
+* @version v1.3.2
+* @link https://github.com/HackedByChinese/ng-idle.git
+* @license MIT
+*/
+function(e,t,n){"use strict";t.module("ngIdle",["ngIdle.keepalive","ngIdle.idle","ngIdle.countdown","ngIdle.title","ngIdle.localStorage"]),t.module("ngIdle.keepalive",[]).provider("Keepalive",(function(){var e={http:null,interval:600};this.http=function(n){if(!n)throw new Error("Argument must be a string containing a URL, or an object containing the HTTP request configuration.");t.isString(n)&&(n={url:n,method:"GET"}),n.cache=!1,e.http=n};var n=this.interval=function(t){if(t=parseInt(t),isNaN(t)||t<=0)throw new Error("Interval must be expressed in seconds and be greater than 0.");e.interval=t};this.$get=["$rootScope","$log","$interval","$http",function(i,r,o,a){var s={ping:null};function l(e){i.$broadcast("KeepaliveResponse",e.data,e.status)}function u(){i.$broadcast("Keepalive"),t.isObject(e.http)&&a(e.http).then(l).catch(l)}return{_options:function(){return e},setInterval:n,start:function(){return o.cancel(s.ping),s.ping=o(u,1e3*e.interval),s.ping},stop:function(){o.cancel(s.ping)},ping:function(){u()}}}]})),t.module("ngIdle.idle",["ngIdle.keepalive","ngIdle.localStorage"]).provider("Idle",(function(){var e={idle:1200,timeout:30,autoResume:"idle",interrupt:"mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll",windowInterrupt:null,keepalive:!0},n=this.timeout=function(n){if(!1===n)e.timeout=0;else{if(!(t.isNumber(n)&&n>=0))throw new Error("Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.");e.timeout=n}};this.interrupt=function(t){e.interrupt=t},this.windowInterrupt=function(t){e.windowInterrupt=t};var i=this.idle=function(t){if(t<=0)throw new Error("Idle must be a value in seconds, greater than 0.");e.idle=t};this.autoResume=function(t){e.autoResume=!0===t?"idle":!1===t?"off":t},this.keepalive=function(t){e.keepalive=!0===t},this.$get=["$interval","$log","$rootScope","$document","Keepalive","IdleLocalStorage","$window",function(r,o,a,s,l,u,c){var d={idle:null,timeout:null,idling:!1,running:!1,countdown:null},h=(new Date).getTime();function f(){e.keepalive&&(d.running&&l.ping(),l.start())}function p(){e.keepalive&&l.stop()}function m(){d.idling=!d.idling;var t=d.idling?"IdleStart":"IdleEnd";d.idling?(a.$broadcast(t),p(),e.timeout&&(d.countdown=e.timeout,g(),d.timeout=r(g,1e3,e.timeout,!1))):(f(),a.$broadcast(t)),r.cancel(d.idle)}function g(){d.idling&&(d.countdown<=0?v():(a.$broadcast("IdleWarn",d.countdown),d.countdown--))}function v(){p(),r.cancel(d.idle),r.cancel(d.timeout),d.idling=!0,d.running=!1,d.countdown=0,a.$broadcast("IdleTimeout")}function _(e,t,n){var i=e.running();e.unwatch(),t(n),i&&e.watch()}function y(e){e?u.set("expiry",{id:h,time:e}):u.remove("expiry")}var b={_options:function(){return e},_getNow:function(){return new Date},getIdle:function(){return e.idle},getTimeout:function(){return e.timeout},setIdle:function(e){_(this,i,e)},setTimeout:function(e){_(this,n,e)},isExpired:function(){var e,t=(e=u.get("expiry"))&&e.time?new Date(e.time):null;return null!==t&&t<=this._getNow()},running:function(){return d.running},idling:function(){return d.idling},watch:function(t){r.cancel(d.idle),r.cancel(d.timeout);var n=e.timeout?e.timeout:0;t||y(new Date((new Date).getTime()+1e3*(e.idle+n))),d.idling?m():d.running||f(),d.running=!0,d.idle=r(m,1e3*e.idle,0,!1)},unwatch:function(){r.cancel(d.idle),r.cancel(d.timeout),d.idling=!1,d.running=!1,y(null),p()},interrupt:function(t){d.running&&(e.timeout&&this.isExpired()?v():(function(e){a.$broadcast("IdleInterrupt",e)}(t),(t||"idle"===e.autoResume||"notIdle"===e.autoResume&&!d.idling)&&this.watch(t)))}},w={clientX:null,clientY:null,swap:function(e){var t={clientX:this.clientX,clientY:this.clientY};return this.clientX=e.clientX,this.clientY=e.clientY,t},hasMoved:function(e){var t=this.swap(e);return!(null!==this.clientX&&!e.movementX&&!e.movementY)||t.clientX!=e.clientX||t.clientY!=e.clientY}};if(s.find("html").on(e.interrupt,(function(e){"mousemove"===e.type&&e.originalEvent&&0===e.originalEvent.movementX&&0===e.originalEvent.movementY||("mousemove"!==e.type||w.hasMoved(e))&&b.interrupt()})),e.windowInterrupt)for(var L=e.windowInterrupt.split(" "),M=function(){b.interrupt()},k=0;k<L.length;k++)c.addEventListener?c.addEventListener(L[k],M,!1):c.attachEvent(L[k],M);var x=function(e){if("ngIdle.expiry"===e.key&&e.newValue&&e.newValue!==e.oldValue){if(t.fromJson(e.newValue).id===h)return;b.interrupt(!0)}};return c.addEventListener?c.addEventListener("storage",x,!1):c.attachEvent&&c.attachEvent("onstorage",x),b}]})),t.module("ngIdle.countdown",["ngIdle.idle"]).directive("idleCountdown",["Idle",function(e){return{restrict:"A",scope:{value:"=idleCountdown"},link:function(t){t.value=e.getTimeout(),t.$on("IdleWarn",(function(e,n){t.$evalAsync((function(){t.value=n}))})),t.$on("IdleTimeout",(function(){t.$evalAsync((function(){t.value=0}))}))}}}]),t.module("ngIdle.title",[]).provider("Title",(function(){var e={enabled:!0},n=this.enabled=function(t){e.enabled=!0===t};this.$get=["$document","$interpolate",function(i,r){var o={original:null,idle:"{{minutes}}:{{seconds}} until your session times out!",timedout:"Your session has expired."};return{setEnabled:n,isEnabled:function(){return e.enabled},original:function(e){if(t.isUndefined(e))return o.original;o.original=e},store:function(e){!e&&o.original||(o.original=this.value())},value:function(e){if(t.isUndefined(e))return i[0].title;i[0].title=e},idleMessage:function(e){if(t.isUndefined(e))return o.idle;o.idle=e},timedOutMessage:function(e){if(t.isUndefined(e))return o.timedout;o.timedout=e},setAsIdle:function(e){this.store();var t,n={totalSeconds:e};n.minutes=Math.floor(e/60),n.seconds=(t=e-60*n.minutes,new Array(2-String(t).length+1).join("0")+t),this.value(r(this.idleMessage())(n))},setAsTimedOut:function(){this.store(),this.value(this.timedOutMessage())},restore:function(){this.original()&&this.value(this.original())}}}]})).directive("title",["Title",function(e){return{restrict:"E",link:function(t,n,i){e.isEnabled()&&!i.idleDisabled&&(e.store(!0),t.$on("IdleStart",(function(){e.original(n[0].innerText)})),t.$on("IdleWarn",(function(t,n){e.setAsIdle(n)})),t.$on("IdleEnd",(function(){e.restore()})),t.$on("IdleTimeout",(function(){e.setAsTimedOut()})))}}}]),t.module("ngIdle.localStorage",[]).service("IdleStorageAccessor",["$window",function(e){return{get:function(){return e.localStorage}}}]).service("IdleLocalStorage",["IdleStorageAccessor",function(e){function i(){var e={};this.setItem=function(t,n){e[t]=n},this.getItem=function(t){return void 0!==e[t]?e[t]:null},this.removeItem=function(t){e[t]=n}}var r=function(){try{var t=e.get();return t.setItem("ngIdleStorage",""),t.removeItem("ngIdleStorage"),t}catch(e){return new i}}();return{set:function(e,n){r.setItem("ngIdle."+e,t.toJson(n))},get:function(e){return t.fromJson(r.getItem("ngIdle."+e))},remove:function(e){r.removeItem("ngIdle."+e)},_wrapped:function(){return r}}}])}(window,window.angular),
+/**
+ *  angular-simple-logger
+ *
+ * @version: 0.1.7
+ * @author: Nicholas McCready
+ * @date: Tue Jan 26 2016 10:15:01 GMT-0500 (EST)
+ * @license: MIT
+ */
+function(e,t){t.module("nemLogging",[]),t.module("nemLogging").provider("nemDebug",(function(){return this.$get=function(){return null},this.debug=null,this}));var n=function(e,t){return function(){return e.apply(t,arguments)}},i=[].slice;t.module("nemLogging").provider("nemSimpleLogger",["nemDebugProvider",function(e){var t,r,o,a,s,l,u,c,d,h,f,p;for(f=e.debug,o={},t={},d=c=0,h=(a=["debug","info","warn","error","log"]).length;c<h;d=++c)p=a[d],t[p]=d;return l=function(e,t,n){if(e>=t)return n()},s=function(e){var t,n,i;if(t=!1,!e)return t;for(n=0,i=a.length;n<i&&(t=null!=e[p=a[n]]&&"function"==typeof e[p]);n++);return t},u=function(e,t){var n,i,r,s;for(null==o[e]&&(o[e]=f(e)),n=o[e],s={},i=0,r=a.length;i<r;i++)s[p=a[i]]="debug"===p?n:t[p];return s},r=function(){function e(e){var r,o,u,c,d;if(this.$log=e,this.spawn=n(this.spawn,this),!this.$log)throw"internalLogger undefined";if(!s(this.$log))throw"@$log is invalid";for(this.doLog=!0,c={},d=this,r=function(e){return c[e]=function(){var n;if(n=1<=arguments.length?i.call(arguments,0):[],d.doLog)return l(t[e],d.currentLevel,(function(){var t;return(t=d.$log)[e].apply(t,n)}))},d[e]=c[e]},o=0,u=a.length;o<u;o++)r(a[o]);this.LEVELS=t,this.currentLevel=t.error}return e.prototype.spawn=function(t){if("string"==typeof t){if(!s(this.$log))throw"@$log is invalid";if(!f)throw"nemDebug is undefined this is probably the light version of this library sep debug logggers is not supported!";return u(t,this.$log)}return new e(t||this.$log)},e}(),this.decorator=["$log",function(e){var n;return(n=new r(e)).currentLevel=t.debug,n}],this.$get=["$log",function(e){return new r(e)}],this}])}(window,angular),
+/*!
+*  ui-leaflet 2.0.0 2016-10-04
+*  ui-leaflet - An AngularJS directive to easily interact with Leaflet maps
+*  git: https://github.com/angular-ui/ui-leaflet
+*/
+function(e){"use strict";e.module("ui-leaflet",["nemLogging"]).directive("leaflet",["$q","leafletData","leafletMapDefaults","leafletHelpers","leafletMapEvents",function(e,t,n,i,r){return{restrict:"EA",replace:!0,scope:{center:"=",lfCenter:"=",defaults:"=",maxbounds:"=",bounds:"=",markers:"=",legend:"=",geojson:"=",paths:"=",tiles:"=",layers:"=",controls:"=",decorations:"=",eventBroadcast:"=",watchOptions:"=",id:"@"},transclude:!0,template:'<div class="angular-leaflet-map"><div ng-transclude></div></div>',controller:["$scope",function(t){this._leafletMap=e.defer(),this.getMap=function(){return this._leafletMap.promise},this.getLeafletScope=function(){return t}}],link:function(e,o,a,s){var l=i.isDefined,u=n.setDefaults(e.defaults,a.id),c=r.getAvailableMapEvents(),d=r.addEvents;function h(){isNaN(a.width)?o.css("width",a.width):o.css("width",a.width+"px")}function f(){isNaN(a.height)?o.css("height",a.height):o.css("height",a.height+"px")}e.mapId=a.id,t.setDirectiveControls({},a.id);var p=new L.Map(o[0],n.getMapCreationDefaults(a.id));if(s._leafletMap.resolve(p),l(a.width)&&(h(),e.$watch((function(){return o[0].getAttribute("width")}),(function(){h(),p.invalidateSize()}))),l(a.height)&&(f(),e.$watch((function(){return o[0].getAttribute("height")}),(function(){f(),p.invalidateSize()}))),l(a.center)||l(a.lfCenter)||p.setView([u.center.lat,u.center.lng],u.center.zoom),!l(a.tiles)&&!l(a.layers)){var m=L.tileLayer(u.tileLayer,u.tileLayerOptions);m.addTo(p),t.setTiles(m,a.id)}l(p.zoomControl)&&l(u.zoomControlPosition)&&p.zoomControl.setPosition(u.zoomControlPosition),l(p.zoomControl)&&!1===u.zoomControl&&p.zoomControl.removeFrom(p),l(p.zoomsliderControl)&&l(u.zoomsliderControl)&&!1===u.zoomsliderControl&&p.zoomsliderControl.removeFrom(p),l(a.eventBroadcast)||d(p,a.id,c,"eventName",e,"broadcast"),p.whenReady((function(){t.setMap(p,a.id)})),e.$on("$destroy",(function(){n.reset(),p.remove(),t.unresolveMap(a.id)})),e.$on("invalidateSize",(function(){p.invalidateSize()}))}}}]),e.module("ui-leaflet").factory("eventManager",[function(){var e=function(){this.listeners={}};return e.prototype={addEventListener:function(e,t,n){for(var i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);i=i.length>3?i.splice(3,i.length-1):[],void 0!==this.listeners[e]?this.listeners[e].push({scope:n,callback:t,args:i}):this.listeners[e]=[{scope:n,callback:t,args:i}]},removeEventListener:function(e,t,n){if(void 0!==this.listeners[e]){for(var i=this.listeners[e].length,r=[],o=0;o<i;o++){var a=this.listeners[e][o];a.scope===n&&a.callback===t||r.push(a)}this.listeners[e]=r}},hasEventListener:function(e,t,n){if(void 0!==this.listeners[e]){var i=this.listeners[e].length;if(void 0===t&&void 0===n)return i>0;for(var r=0;r<i;r++){var o=this.listeners[e][r];if((!n||o.scope===n)&&o.callback===t)return!0}}return!1},dispatch:function(e,t){for(var n={type:e,target:t},i=[],r=arguments.length,o=0;o<r;o++)i.push(arguments[o]);if(i=i.length>2?i.splice(2,i.length-1):[],i=[n].concat(i),void 0!==this.listeners[e])for(var a=this.listeners[e].length,s=0;s<a;s++){var l=this.listeners[e][s];if(l&&l.callback){var u=i.concat(l.args);l.callback.apply(l.scope,u)}}},getEvents:function(){var e="";for(var t in this.listeners)for(var n=this.listeners[t].length,i=0;i<n;i++){var r=this.listeners[t][i];e+=r.scope&&r.scope.className?r.scope.className:"anonymous",e+=" listen for '"+t+"'\n"}return e}},e}]).service("eventManager",["EventManager",function(e){return new e}]),e.module("ui-leaflet").factory("leafletBoundsHelpers",["leafletLogger","leafletHelpers",function(t,n){var i=n.isArray,r=n.isNumber,o=n.isFunction,a=n.isDefined,s=t;function l(t){return e.isDefined(t)&&e.isDefined(t.southWest)&&e.isDefined(t.northEast)&&e.isNumber(t.southWest.lat)&&e.isNumber(t.southWest.lng)&&e.isNumber(t.northEast.lat)&&e.isNumber(t.northEast.lng)}return{createLeafletBounds:function(e){if(l(e))return L.latLngBounds([e.southWest.lat,e.southWest.lng],[e.northEast.lat,e.northEast.lng])},isValidBounds:l,createBoundsFromArray:function(e){if(i(e)&&2===e.length&&i(e[0])&&i(e[1])&&2===e[0].length&&2===e[1].length&&r(e[0][0])&&r(e[0][1])&&r(e[1][0])&&r(e[1][1]))return{northEast:{lat:e[0][0],lng:e[0][1]},southWest:{lat:e[1][0],lng:e[1][1]}};s.error("[AngularJS - Leaflet] The bounds array is not valid.")},createBoundsFromLeaflet:function(e){if(a(e)&&o(e.getNorthEast)&&o(e.getSouthWest)){var t=e.getNorthEast(),n=e.getSouthWest();return{northEast:{lat:t.lat,lng:t.lng},southWest:{lat:n.lat,lng:n.lng}}}s.error("[AngularJS - Leaflet] The leaflet bounds is not valid object.")}}}]),e.module("ui-leaflet").factory("leafletControlHelpers",["$rootScope","leafletLogger","leafletHelpers","leafletLayerHelpers","leafletMapDefaults",function(t,n,i,r,o){var a=i.isDefined,s=i.isObject,l=r.createLayer,u={},c=i.errorHeader+" [Controls] ",d=n,h=function(e,t,n){if(!o.getDefaults(n).controls.layers.visible)return!1;var i=!1;return s(e)&&Object.keys(e).forEach((function(t){var n=e[t];a(n.layerOptions)&&!1===n.layerOptions.showOnSelector||(i=!0)})),s(t)&&Object.keys(t).forEach((function(e){var n=t[e];a(n.layerParams)&&!1===n.layerParams.showOnSelector||(i=!0)})),i},f={draw:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Draw)||(d.error(c+" Draw plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Draw(e)}},scale:{isPluginLoaded:function(){return!0},checkValidParams:function(){return!0},createControl:function(e){return new L.control.scale(e)}},fullscreen:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Fullscreen)||(d.error(c+" Fullscreen plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Fullscreen(e)}},search:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Search)||(d.error(c+" Search plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Search(e)}},custom:{},minimap:{isPluginLoaded:function(){return!!e.isDefined(L.Control.MiniMap)||(d.error(c+" Minimap plugin is not loaded."),!1)},checkValidParams:function(e){return!!a(e.layer)||(d.warn(c+' minimap "layer" option should be defined.'),!1)},createControl:function(e){var t=l(e.layer);if(a(t))return new L.Control.MiniMap(t,e);d.warn(c+' minimap control "layer" could not be created.')}}};return{layersControlMustBeVisible:h,isValidControlType:function(e){return-1!==Object.keys(f).indexOf(e)},createControl:function(e,t){if(f[e].checkValidParams(t))return f[e].createControl(t)},updateLayersControl:function(t,n,i,r,s,l){var c,d=u[n],f=h(r,s,n);if(a(d)&&i){for(c in l.baselayers)d.removeLayer(l.baselayers[c]);for(c in l.overlays)d.removeLayer(l.overlays[c]);t.removeControl(d),delete u[n]}if(f){for(c in d=function(t){var n=o.getDefaults(t),i={collapsed:n.controls.layers.collapsed,position:n.controls.layers.position,autoZIndex:!1};return e.extend(i,n.controls.layers.options),n.controls.layers&&a(n.controls.layers.control)?n.controls.layers.control.apply(this,[[],[],i]):new L.control.layers([],[],i)}(n),u[n]=d,r)(!a(r[c].layerOptions)||!1!==r[c].layerOptions.showOnSelector)&&a(l.baselayers[c])&&d.addBaseLayer(l.baselayers[c],r[c].name);for(c in s)(!a(s[c].layerParams)||!1!==s[c].layerParams.showOnSelector)&&a(l.overlays[c])&&d.addOverlay(l.overlays[c],s[c].name);t.addControl(d)}return f},destroyMapLayersControl:function(e){delete u[e]}}}]),e.module("ui-leaflet").service("leafletData",["leafletLogger","$q","leafletHelpers",function(e,t,n){var i=n.getDefer,r=n.getUnresolvedDefer,o=n.setResolvedDefer,a={},s=this,l=["map","tiles","layers","paths","markers","geoJSON","UTFGrid","decorations","directiveControls"];l.forEach((function(e){a[e]={}})),this.unresolveMap=function(e){var t=n.obtainEffectiveMapId(a.map,e);l.forEach((function(e){a[e][t]=void 0}))},l.forEach((function(e){var t,n=(t=e).charAt(0).toUpperCase()+t.slice(1);s["set"+n]=function(t,n){r(a[e],n).resolve(t),o(a[e],n)},s["get"+n]=function(t){return i(a[e],t).promise}}))}]),e.module("ui-leaflet").service("leafletDirectiveControlsHelpers",["leafletLogger","leafletData","leafletHelpers",function(t,n,i){var r=i.isDefined,o=i.isString,a=i.isObject,s=i.errorHeader,l=t,u=s+"[leafletDirectiveControlsHelpers";return{extend:function(t,i,s,c){var d=u+".extend] ",h={};if(r(i)){if(o(i)&&r(s)&&r(c))h[i]={create:s,clean:c};else{if(!a(i)||r(s)||r(c))return void l.error(d+"incorrect arguments");h=i}n.getDirectiveControls().then((function(i){e.extend(i,h),n.setDirectiveControls(i,t)}))}else l.error(d+"thingToAddName cannot be undefined")}}}]),e.module("ui-leaflet").service("leafletGeoJsonHelpers",["leafletHelpers","leafletIterators",function(t,n){var i=t,r=n,o=function(e,t){return this.lat=e,this.lng=t,this},a=function(e){if(i.isUndefined(e))return!1;if(i.isArray(e)){if(2===e.length&&i.isNumber(e[0])&&i.isNumber(e[1]))return!0}else if(i.isDefined(e.type)&&"Point"===e.type&&i.isArray(e.coordinates)&&2===e.coordinates.length&&i.isNumber(e.coordinates[0])&&i.isNumber(e.coordinates[1]))return!0;return r.all(["lat","lng"],(function(t){return i.isDefined(e[t])&&i.isNumber(e[t])}))};return{getLat:function(e){return Array.isArray(e)&&2===e.length?e[1]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[1]:+e.lat},getLng:function(e){return Array.isArray(e)&&2===e.length?e[0]:i.isDefined(e.type)&&"Point"===e.type?+e.coordinates[0]:+e.lng},validateCoords:a,getCoords:function(t){if(t&&a(t)){var n=null;if(Array.isArray(t)&&2===t.length)n=new o(t[1],t[0]);else{if(!i.isDefined(t.type)||"Point"!==t.type)return t;n=new o(t.coordinates[1],t.coordinates[0])}return e.extend(t,n)}}}}]),e.module("ui-leaflet").service("leafletHelpers",["$q","$log","$timeout",function(t,n,i){var r="[ui-leaflet] ",o=e.copy;function a(t,i){var o,a;if(e.isDefined(i))o=i;else if(0===Object.keys(t).length)o="main";else if(Object.keys(t).length>=1)for(a in t)t.hasOwnProperty(a)&&(o=a);else n.error(r+"- You have more than 1 map on the DOM, you must provide the map ID to the leafletData.getXXX call");return o}function s(n,i){var r,o=a(n,i);return e.isDefined(n[o])&&!0!==n[o].resolvedDefer?r=n[o].defer:(r=t.defer(),n[o]={defer:r,resolvedDefer:!1}),r}var l=function(t){return e.isDefined(t)&&null!==t},u=/([\:\-\_]+(.))/g,c=/^moz([A-Z])/,d=/^((?:x|data)[\:\-_])/i,h=function(e){return e.replace(u,(function(e,t,n,i){return i?n.toUpperCase():n})).replace(c,"Moz$1")};return{watchTrapDelayMilliSec:10,modelChangeInDirective:function(e,t,n){if(!e)throw new Error(r+"trapObj is undefined");if(!t)throw new Error(r+"trapField is undefined");e[t]=!0;var o=n();return i((function(){e[t]=!1}),10),o},camelCase:h,directiveNormalize:function(e){return h(e.replace(d,""))},copy:o,clone:o,errorHeader:r,getObjectValue:function(t,n){var i;if(t&&e.isObject(t))return null!==n&&e.isString(n)?(i=t,n.split(".").forEach((function(e){i&&(i=i[e])})),i):n},getObjectArrayPath:function(e){return e.split(".").reduce((function(e,t){return e+'["'+t+'"]'}))},getObjectDotPath:function(e){return e.reduce((function(e,t){return e+"."+t}))},defaultTo:function(e,t){return l(e)?e:t},isTruthy:function(e){return"true"===e||!0===e},isEmpty:function(e){return 0===Object.keys(e).length},isUndefinedOrEmpty:function(t){return e.isUndefined(t)||null===t||0===Object.keys(t).length},isDefined:l,isUndefined:function(e){return!l(e)},isNumber:e.isNumber,isString:e.isString,isArray:e.isArray,isObject:e.isObject,isFunction:e.isFunction,equals:e.equals,isValidCenter:function(t){return e.isDefined(t)&&e.isNumber(t.lat)&&e.isNumber(t.lng)&&e.isNumber(t.zoom)},isValidPoint:function(t){return!!e.isDefined(t)&&(e.isArray(t)?2===t.length&&e.isNumber(t[0])&&e.isNumber(t[1]):e.isNumber(t.lat)&&e.isNumber(t.lng))},isSameCenterOnMap:function(e,t){var n=t.getCenter(),i=t.getZoom();return!(!e.lat||!e.lng||n.lat.toFixed(4)!==e.lat.toFixed(4)||n.lng.toFixed(4)!==e.lng.toFixed(4)||i!==e.zoom)},safeApply:function(e,t){var n=e.$root.$$phase;"$apply"===n||"$digest"===n?e.$eval(t):e.$evalAsync(t)},obtainEffectiveMapId:a,getDefer:function(t,n){var i=a(t,n);return e.isDefined(t[i])&&!1!==t[i].resolvedDefer?t[i].defer:s(t,n)},getUnresolvedDefer:s,setResolvedDefer:function(e,t){e[a(e,t)].resolvedDefer=!0},rangeIsSupported:function(){var e=document.createElement("input");return e.setAttribute("type","range"),"range"===e.type},FullScreenControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.Fullscreen)}},MiniMapControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.MiniMap)}},AwesomeMarkersPlugin:{isLoaded:function(){return e.isDefined(L.AwesomeMarkers)&&e.isDefined(L.AwesomeMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.AwesomeMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},VectorMarkersPlugin:{isLoaded:function(){return e.isDefined(L.VectorMarkers)&&e.isDefined(L.VectorMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.VectorMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},DomMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.DomMarkers)||!e.isDefined(L.DomMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.DomMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},PolylineDecoratorPlugin:{isLoaded:function(){return!!e.isDefined(L.PolylineDecorator)},is:function(e){return!!this.isLoaded()&&e instanceof L.PolylineDecorator},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},MakiMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.MakiMarkers)||!e.isDefined(L.MakiMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.MakiMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},ExtraMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.ExtraMarkers)||!e.isDefined(L.ExtraMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.ExtraMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},LabelPlugin:{isLoaded:function(){return e.isDefined(L.Label)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},MarkerClusterPlugin:{isLoaded:function(){return e.isDefined(L.MarkerClusterGroup)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},GeoJSONPlugin:{isLoaded:function(){return e.isDefined(L.TileLayer.GeoJSON)},is:function(e){return!!this.isLoaded()&&e instanceof L.TileLayer.GeoJSON}},CartoDB:{isLoaded:function(){return cartodb},is:function(){return!0}},Leaflet:{DivIcon:{is:function(e){return e instanceof L.DivIcon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}},Icon:{is:function(e){return e instanceof L.Icon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}}},watchOptions:{type:"watchDeep",individual:{type:"watchDeep"}}}}]),e.module("ui-leaflet").service("leafletIterators",["leafletLogger","leafletHelpers",function(e,t){var n,i,r,o,a,s=t,l=t.errorHeader+"leafletIterators: ",u=Object.keys,c=s.isFunction,d=s.isObject,h=e,f=Math.pow(2,53)-1,p=function(e){return e};i=u,n=function(e){var t=arguments.length;if(t<2||null===e)return e;for(var n=1;n<t;n++)for(var r=arguments[n],o=i(r),a=o.length,s=0;s<a;s++){var l=o[s];e[l]=r[l]}return e},r=function(e){return e=n({},e),function(t){return function(e,t){var n=u(t),i=n.length;if(null===e)return!i;for(var r=Object(e),o=0;o<i;o++){var a=n[o];if(t[a]!==r[a]||!(a in r))return!1}return!0}(t,e)}},o=a=function(e,t,n){t=function(e,t,n){return null===e?p:c(e)?function(e,t,n){return void 0===t?e:function(){return e.apply(t,arguments)}}(e,t):d(e)?r(e):(i=e,function(e){return null===e?void 0:e[i]});var i}(t,n);for(var i=!function(e){var t=null!==e&&e.length;return s.isNumber(t)&&t>=0&&t<=f}(e)&&u(e),o=(i||e).length,a=0;a<o;a++){var l=i?i[a]:a;if(!t(e[l],l,e))return!1}return!0};var m=function(e,t,n,i){return!(n||s.isDefined(e)&&s.isDefined(t))||!s.isFunction(t)&&(i=s.defaultTo(t,"cb"),h.error(l+i+" is not a function"),!0)},g=function(e,t){!function(e,t,n){if(!m(void 0,n,!0,"internalCb")&&!m(e,t))for(var i in e)e.hasOwnProperty(i)&&n(e[i],i)}(e,t,(function(e,n){t(e,n)}))};return{each:g,forEach:g,every:o,all:a}}]),e.module("ui-leaflet").factory("leafletLayerHelpers",["$rootScope","$q","leafletLogger","leafletHelpers","leafletIterators",function(t,n,i,r,o){var a=r,s=r.isString,l=r.isObject,u=r.isArray,c=r.isDefined,d=r.errorHeader,h=o,f=i,p=function(n){if(a.UTFGridPlugin.isLoaded()){var i=new L.UtfGrid(n.url,n.pluginOptions),r={model:n.$parent};return i.on("mouseover",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseover",r)})),i.on("mouseout",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseout",r)})),i.on("click",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridClick",r)})),i.on("mousemove",(function(n){e.extend(r,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMousemove",r)})),i}f.error("[AngularJS - Leaflet] The UTFGrid plugin is not loaded.")},m={xyz:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer(e.url,e.options)}},geoJSON:{mustHaveUrl:!0,createLayer:function(e){if(a.GeoJSONPlugin.isLoaded())return new L.TileLayer.GeoJSON(e.url,e.pluginOptions,e.options)}},geoJSONShape:{mustHaveUrl:!1,createLayer:function(e){return new L.GeoJSON(e.data,e.options)}},geoJSONAwesomeMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.AwesomeMarkers.icon(e.icon)})}})}},geoJSONVectorMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.VectorMarkers.icon(e.icon)})}})}},cartodbTiles:{mustHaveKey:!0,createLayer:function(e){var t=c(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return t+="/api/v1/map/"+e.key+"/{z}/{x}/{y}.png",L.tileLayer(t,e.options)}},cartodbUTFGrid:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(e){var t=c(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return e.url=t+"/api/v1/map/"+e.key+"/"+e.layer+"/{z}/{x}/{y}.grid.json",p(e)}},cartodbInteractive:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(t){var n=c(t.url)?t.url+"/"+t.user:"//"+t.user+".cartodb.com",i=n+"/api/v1/map/"+t.key+"/{z}/{x}/{y}.png",r=[L.tileLayer(i,t.options)],o=function(t,i,r){var o=e.copy(i);o.url=n+"/api/v1/map/"+o.key+"/"+r+"/{z}/{x}/{y}.grid.json",t.push(p(o))};if(u(t.layer))for(var a=0;a<t.layer.length;a++)o(r,t,t.layer[a]);else o(r,t,t.layer);return L.layerGroup(r)}},wms:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wms(e.url,e.options)}},wmts:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wmts(e.url,e.options)}},group:{mustHaveUrl:!1,createLayer:function(e){var t=[];return h.each(e.options.layers,(function(e){t.push(g(e))})),e.options.loadedDefer=function(){var t=[];if(c(e.options.layers))for(var n=0;n<e.options.layers.length;n++){var i=e.options.layers[n].layerOptions.loadedDefer;c(i)&&t.push(i)}return t},L.layerGroup(t)}},featureGroup:{mustHaveUrl:!1,createLayer:function(){return L.featureGroup()}},markercluster:{mustHaveUrl:!1,createLayer:function(e){if(a.MarkerClusterPlugin.isLoaded())return new L.MarkerClusterGroup(e.options);f.warn(d+" The markercluster plugin is not loaded.")}},imageOverlay:{mustHaveUrl:!0,mustHaveBounds:!0,createLayer:function(e){return L.imageOverlay(e.url,e.bounds,e.options)}},iip:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.iip(e.url,e.options)}},custom:{createLayer:function(t){if(t.layer instanceof L.Class)return e.copy(t.layer);f.error("[AngularJS - Leaflet] A custom layer must be a leaflet Class")}},cartodb:{mustHaveUrl:!0,createLayer:function(e){return cartodb.createLayer(e.map,e.url)}}};function g(e){if(function(e){return s(e.type)?-1===Object.keys(m).indexOf(e.type)?(f.error("[AngularJS - Leaflet] A layer must have a valid type: "+Object.keys(m)),!1):m[e.type].mustHaveUrl&&!s(e.url)?(f.error("[AngularJS - Leaflet] A base layer must have an url"),!1):m[e.type].mustHaveData&&!c(e.data)?(f.error('[AngularJS - Leaflet] The base layer must have a "data" array attribute'),!1):m[e.type].mustHaveLayer&&!c(e.layer)?(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have an layer defined"),!1):m[e.type].mustHaveBounds&&!c(e.bounds)?(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have bounds defined"),!1):!(m[e.type].mustHaveKey&&!c(e.key)&&(f.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have key defined"),1)):(f.error("[AngularJS - Leaflet] A layer must have a valid type defined."),!1)}(e)){if(s(e.name)){for(var t in l(e.layerParams)||(e.layerParams={}),l(e.layerOptions)||(e.layerOptions={}),e.layerParams)e.layerOptions[t]=e.layerParams[t];var n={url:e.url,data:e.data,options:e.layerOptions,layer:e.layer,icon:e.icon,type:e.layerType,bounds:e.bounds,key:e.key,apiKey:e.apiKey,pluginOptions:e.pluginOptions,user:e.user,$parent:e};return m[e.type].createLayer(n)}f.error("[AngularJS - Leaflet] A base layer must have a name")}}return{createLayer:g,layerTypes:m,safeAddLayer:function(e,t){t&&"function"==typeof t.addTo?t.addTo(e):e.addLayer(t)},safeRemoveLayer:function(t,n,i){if(c(i)&&c(i.loadedDefer))if(e.isFunction(i.loadedDefer)){var r=i.loadedDefer();f.debug("Loaded Deferred",r);var o=r.length;if(o>0)for(var a=function(){0==--o&&t.removeLayer(n)},s=0;s<r.length;s++)r[s].promise.then(a);else t.removeLayer(n)}else i.loadedDefer.promise.then((function(){t.removeLayer(n)}));else t.removeLayer(n)},changeOpacityListener:function(e){return function(t){c(t.setOpacity)&&t.setOpacity(e)}}}}]),e.module("ui-leaflet").factory("leafletLegendHelpers",["$http","$q","$log","leafletHelpers",function(e,t,n,i){var r={},o=i.isDefined,a=function(e,t,n,i){if(e.innerHTML="",t.error)e.innerHTML+='<div class="info-title alert alert-danger">'+t.error.message+"</div>";else if("arcgis"===n)for(var r=0;r<t.layers.length;r++){var o=t.layers[r];e.innerHTML+='<div class="info-title" data-layerid="'+o.layerId+'">'+o.layerName+"</div>";for(var a=0;a<o.legend.length;a++){var s=o.legend[a];e.innerHTML+='<div class="inline" data-layerid="'+o.layerId+'"><img src="data:'+s.contentType+";base64,"+s.imageData+'" /></div><div class="info-label" data-layerid="'+o.layerId+'">'+s.label+"</div>"}}else"image"===n&&(e.innerHTML='<img src="'+i+'"/>')};return{getOnAddLegend:function(e,t,n,i){return function(){var r=L.DomUtil.create("div",t);return L.Browser.touch?L.DomEvent.on(r,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(r),L.DomEvent.on(r,"mousewheel",L.DomEvent.stopPropagation)),a(r,e,n,i),r}},getOnAddArrayLegend:function(e,t){return function(){for(var n=L.DomUtil.create("div",t),i=0;i<e.colors.length;i++)n.innerHTML+='<div class="outline"><i style="background:'+e.colors[i]+'"></i></div><div class="info-label">'+e.labels[i]+"</div>";return L.Browser.touch?L.DomEvent.on(n,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(n),L.DomEvent.on(n,"mousewheel",L.DomEvent.stopPropagation)),n}},updateLegend:a,addLegendURL:function(n,i){var a=t.defer();return o(r[n])||(r[n]=[]),r[n].push({c:i,d:a}),1===r[n].length&&function t(n){var i=r[n],o=i[0];e(o.c).then((function(e){i.shift(),o.d.resolve(e),i.length>0&&t(n)}),(function(e){i.shift(),o.d.reject(e),i.length>0&&t(n)}))}(n),a.promise}}}]),e.module("ui-leaflet").factory("leafletMapDefaults",["$q","leafletHelpers",function(t,n){var i=n.isDefined,r=n.isObject,o=n.obtainEffectiveMapId,a={};return{reset:function(){a={}},getDefaults:function(e){var t=o(a,e);return a[t]},getMapCreationDefaults:function(e){var t=o(a,e),n=a[t],r={maxZoom:n.maxZoom,keyboard:n.keyboard,dragging:n.dragging,zoomControl:n.zoomControl,doubleClickZoom:n.doubleClickZoom,scrollWheelZoom:n.scrollWheelZoom,tap:n.tap,touchZoom:n.touchZoom,attributionControl:n.attributionControl,worldCopyJump:n.worldCopyJump,crs:n.crs,trackResize:n.trackResize};if(i(n.minZoom)&&(r.minZoom=n.minZoom),i(n.zoomAnimation)&&(r.zoomAnimation=n.zoomAnimation),i(n.fadeAnimation)&&(r.fadeAnimation=n.fadeAnimation),i(n.markerZoomAnimation)&&(r.markerZoomAnimation=n.markerZoomAnimation),n.map)for(var s in n.map)r[s]=n.map[s];return r},setDefaults:function(t,n){var s={keyboard:!0,dragging:!0,worldCopyJump:!1,doubleClickZoom:!0,scrollWheelZoom:!0,tap:!0,touchZoom:!0,zoomControl:!0,zoomsliderControl:!1,zoomControlPosition:"topleft",attributionControl:!0,controls:{layers:{visible:!0,position:"topright",collapsed:!0}},nominatim:{server:" http://nominatim.openstreetmap.org/search"},crs:L.CRS.EPSG3857,tileLayer:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",tileLayerOptions:{attribution:'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},path:{weight:10,opacity:1,color:"#0000ff"},center:{lat:0,lng:0,zoom:1},trackResize:!0};i(t)&&(s.doubleClickZoom=i(t.doubleClickZoom)?t.doubleClickZoom:s.doubleClickZoom,s.scrollWheelZoom=i(t.scrollWheelZoom)?t.scrollWheelZoom:s.doubleClickZoom,s.tap=i(t.tap)?t.tap:s.tap,s.touchZoom=i(t.touchZoom)?t.touchZoom:s.doubleClickZoom,s.zoomControl=i(t.zoomControl)?t.zoomControl:s.zoomControl,s.zoomsliderControl=i(t.zoomsliderControl)?t.zoomsliderControl:s.zoomsliderControl,s.attributionControl=i(t.attributionControl)?t.attributionControl:s.attributionControl,s.tileLayer=i(t.tileLayer)?t.tileLayer:s.tileLayer,s.zoomControlPosition=i(t.zoomControlPosition)?t.zoomControlPosition:s.zoomControlPosition,s.keyboard=i(t.keyboard)?t.keyboard:s.keyboard,s.dragging=i(t.dragging)?t.dragging:s.dragging,s.trackResize=i(t.trackResize)?t.trackResize:s.trackResize,i(t.controls)&&e.extend(s.controls,t.controls),r(t.crs)?s.crs=t.crs:i(L.CRS[t.crs])&&(s.crs=L.CRS[t.crs]),i(t.center)&&e.copy(t.center,s.center),i(t.tileLayerOptions)&&e.copy(t.tileLayerOptions,s.tileLayerOptions),i(t.maxZoom)&&(s.maxZoom=t.maxZoom),i(t.minZoom)&&(s.minZoom=t.minZoom),i(t.zoomAnimation)&&(s.zoomAnimation=t.zoomAnimation),i(t.fadeAnimation)&&(s.fadeAnimation=t.fadeAnimation),i(t.markerZoomAnimation)&&(s.markerZoomAnimation=t.markerZoomAnimation),i(t.worldCopyJump)&&(s.worldCopyJump=t.worldCopyJump),i(t.map)&&(s.map=t.map),i(t.path)&&(s.path=t.path));var l=o(a,n);return a[l]=s,s}}}]),e.module("ui-leaflet").service("leafletMarkersHelpers",["$rootScope","$timeout","leafletHelpers","leafletLogger","$compile","leafletGeoJsonHelpers","leafletWatchHelpers",function(t,n,i,r,o,a,s){var l=i.isDefined,u=i.defaultTo,c=i.MarkerClusterPlugin,d=i.AwesomeMarkersPlugin,h=i.VectorMarkersPlugin,f=i.MakiMarkersPlugin,p=i.ExtraMarkersPlugin,m=i.DomMarkersPlugin,g=i.safeApply,v=i,_=i.isString,y=i.isNumber,b=i.isObject,w={},M=a,k=i.errorHeader,x=s.maybeWatch,S=r,T=function(e){var t="";return["_icon","_latlng","_leaflet_id","_map","_shadow"].forEach((function(n){t+=n+": "+u(e[n],"undefined")+" \n"})),"[leafletMarker] : \n"+t},$=function(t){return e.element(w[t]._map._container).parent().length>0},D=function(n){if(l(n)&&l(n.type)&&"awesomeMarker"===n.type)return d.isLoaded()||S.error(k+" The AwesomeMarkers Plugin is not loaded."),new L.AwesomeMarkers.icon(n);if(l(n)&&l(n.type)&&"vectorMarker"===n.type)return h.isLoaded()||S.error(k+" The VectorMarkers Plugin is not loaded."),new L.VectorMarkers.icon(n);if(l(n)&&l(n.type)&&"makiMarker"===n.type)return f.isLoaded()||S.error(k+"The MakiMarkers Plugin is not loaded."),new L.MakiMarkers.icon(n);if(l(n)&&l(n.type)&&"extraMarker"===n.type)return p.isLoaded()||S.error(k+"The ExtraMarkers Plugin is not loaded."),new L.ExtraMarkers.icon(n);if(l(n)&&l(n.type)&&"div"===n.type)return new L.divIcon(n);if(l(n)&&l(n.type)&&"dom"===n.type){m.isLoaded()||S.error(k+"The DomMarkers Plugin is not loaded.");var i=e.isFunction(n.getMarkerScope)?n.getMarkerScope().$new():t,r=o(n.template)(i),a=e.copy(n);return a.ngElement=r,a.element=r[0],e.isFunction(n.getMarkerScope)&&(a.scope=i),new L.DomMarkers.icon(a)}return l(n)&&l(n.type)&&"icon"===n.type?n.icon:l(n)&&l(n.iconUrl)?new L.Icon(n):new L.Icon.Default({iconUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAGmklEQVRYw7VXeUyTZxjvNnfELFuyIzOabermMZEeQC/OclkO49CpOHXOLJl/CAURuYbQi3KLgEhbrhZ1aDwmaoGqKII6odATmH/scDFbdC7LvFqOCc+e95s2VG50X/LLm/f4/Z7neY/ne18aANCmAr5E/xZf1uDOkTcGcWR6hl9247tT5U7Y6SNvWsKT63P58qbfeLJG8M5qcgTknrvvrdDbsT7Ml+tv82X6vVxJE33aRmgSyYtcWVMqX97Yv2JvW39UhRE2HuyBL+t+gK1116ly06EeWFNlAmHxlQE0OMiV6mQCScusKRlhS3QLeVJdl1+23h5dY4FNB3thrbYboqptEFlphTC1hSpJnbRvxP4NWgsE5Jyz86QNNi/5qSUTGuFk1gu54tN9wuK2wc3o+Wc13RCmsoBwEqzGcZsxsvCSy/9wJKf7UWf1mEY8JWfewc67UUoDbDjQC+FqK4QqLVMGGR9d2wurKzqBk3nqIT/9zLxRRjgZ9bqQgub+DdoeCC03Q8j+0QhFhBHR/eP3U/zCln7Uu+hihJ1+bBNffLIvmkyP0gpBZWYXhKussK6mBz5HT6M1Nqpcp+mBCPXosYQfrekGvrjewd59/GvKCE7TbK/04/ZV5QZYVWmDwH1mF3xa2Q3ra3DBC5vBT1oP7PTj4C0+CcL8c7C2CtejqhuCnuIQHaKHzvcRfZpnylFfXsYJx3pNLwhKzRAwAhEqG0SpusBHfAKkxw3w4627MPhoCH798z7s0ZnBJ/MEJbZSbXPhER2ih7p2ok/zSj2cEJDd4CAe+5WYnBCgR2uruyEw6zRoW6/DWJ/OeAP8pd/BGtzOZKpG8oke0SX6GMmRk6GFlyAc59K32OTEinILRJRchah8HQwND8N435Z9Z0FY1EqtxUg+0SO6RJ/mmXz4VuS+DpxXC3gXmZwIL7dBSH4zKE50wESf8qwVgrP1EIlTO5JP9Igu0aexdh28F1lmAEGJGfh7jE6ElyM5Rw/FDcYJjWhbeiBYoYNIpc2FT/SILivp0F1ipDWk4BIEo2VuodEJUifhbiltnNBIXPUFCMpthtAyqws/BPlEF/VbaIxErdxPphsU7rcCp8DohC+GvBIPJS/tW2jtvTmmAeuNO8BNOYQeG8G/2OzCJ3q+soYB5i6NhMaKr17FSal7GIHheuV3uSCY8qYVuEm1cOzqdWr7ku/R0BDoTT+DT+ohCM6/CCvKLKO4RI+dXPeAuaMqksaKrZ7L3FE5FIFbkIceeOZ2OcHO6wIhTkNo0ffgjRGxEqogXHYUPHfWAC/lADpwGcLRY3aeK4/oRGCKYcZXPVoeX/kelVYY8dUGf8V5EBRbgJXT5QIPhP9ePJi428JKOiEYhYXFBqou2Guh+p/mEB1/RfMw6rY7cxcjTrneI1FrDyuzUSRm9miwEJx8E/gUmqlyvHGkneiwErR21F3tNOK5Tf0yXaT+O7DgCvALTUBXdM4YhC/IawPU+2PduqMvuaR6eoxSwUk75ggqsYJ7VicsnwGIkZBSXKOUww73WGXyqP+J2/b9c+gi1YAg/xpwck3gJuucNrh5JvDPvQr0WFXf0piyt8f8/WI0hV4pRxxkQZdJDfDJNOAmM0Ag8jyT6hz0WGXWuP94Yh2jcfjmXAGvHCMslRimDHYuHuDsy2QtHuIavznhbYURq5R57KpzBBRZKPJi8eQg48h4j8SDdowifdIrEVdU+gbO6QNvRRt4ZBthUaZhUnjlYObNagV3keoeru3rU7rcuceqU1mJBxy+BWZYlNEBH+0eH4vRiB+OYybU2hnblYlTvkHinM4m54YnxSyaZYSF6R3jwgP7udKLGIX6r/lbNa9N6y5MFynjWDtrHd75ZvTYAPO/6RgF0k76mQla3FGq7dO+cH8sKn0Vo7nDllwAhqwLPkxrHwWmHJOo+AKJ4rab5OgrM7rVu8eWb2Pu0Dh4eDgXoOfvp7Y7QeqknRmvcTBEyq9m/HQQSCSz6LHq3z0yzsNySRfMS253wl2KyRDbcZPcfJKjZmSEOjcxyi+Y8dUOtsIEH6R2wNykdqrkYJ0RV92H0W58pkfQk7cKevsLK10Py8SdMGfXNXATY+pPbyJR/ET6n9nIfztNtZYRV9XniQu9IA2vOVgy4ir7GCLVmmd+zjkH0eAF9Po6K61pmCXHxU5rHMYd1ftc3owjwRSVRzLjKvqZEty6cRUD7jGqiOdu5HG6MdHjNcNYGqfDm5YRzLBBCCDl/2bk8a8gdbqcfwECu62Fg/HrggAAAABJRU5ErkJggg==",shadowUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAC5ElEQVRYw+2YW4/TMBCF45S0S1luXZCABy5CgLQgwf//S4BYBLTdJLax0fFqmB07nnQfEGqkIydpVH85M+NLjPe++dcPc4Q8Qh4hj5D/AaQJx6H/4TMwB0PeBNwU7EGQAmAtsNfAzoZkgIa0ZgLMa4Aj6CxIAsjhjOCoL5z7Glg1JAOkaicgvQBXuncwJAWjksLtBTWZe04CnYRktUGdilALppZBOgHGZcBzL6OClABvMSVIzyBjazOgrvACf1ydC5mguqAVg6RhdkSWQFj2uxfaq/BrIZOLEWgZdALIDvcMcZLD8ZbLC9de4yR1sYMi4G20S4Q/PWeJYxTOZn5zJXANZHIxAd4JWhPIloTJZhzMQduM89WQ3MUVAE/RnhAXpTycqys3NZALOBbB7kFrgLesQl2h45Fcj8L1tTSohUwuxhy8H/Qg6K7gIs+3kkaigQCOcyEXCHN07wyQazhrmIulvKMQAwMcmLNqyCVyMAI+BuxSMeTk3OPikLY2J1uE+VHQk6ANrhds+tNARqBeaGc72cK550FP4WhXmFmcMGhTwAR1ifOe3EvPqIegFmF+C8gVy0OfAaWQPMR7gF1OQKqGoBjq90HPMP01BUjPOqGFksC4emE48tWQAH0YmvOgF3DST6xieJgHAWxPAHMuNhrImIdvoNOKNWIOcE+UXE0pYAnkX6uhWsgVXDxHdTfCmrEEmMB2zMFimLVOtiiajxiGWrbU52EeCdyOwPEQD8LqyPH9Ti2kgYMf4OhSKB7qYILbBv3CuVTJ11Y80oaseiMWOONc/Y7kJYe0xL2f0BaiFTxknHO5HaMGMublKwxFGzYdWsBF174H/QDknhTHmHHN39iWFnkZx8lPyM8WHfYELmlLKtgWNmFNzQcC1b47gJ4hL19i7o65dhH0Negbca8vONZoP7doIeOC9zXm8RjuL0Gf4d4OYaU5ljo3GYiqzrWQHfJxA6ALhDpVKv9qYeZA8eM3EhfPSCmpuD0AAAAASUVORK5CYII=",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]})},C=function(e){l(w[e])&&delete w[e]},E=function(e){e.options.icon.options.ngElement&&e.options.icon.options.ngElement.remove(),e.options.icon.options.scope&&e.options.icon.options.scope.$destroy()},A=function(e,t,n){if(e.closePopup(),e.options.icon&&e.options.icon.options&&"dom"===e.options.icon.options.type&&E(e),l(n)&&l(n.overlays))for(var i in n.overlays)if((n.overlays[i]instanceof L.LayerGroup||n.overlays[i]instanceof L.FeatureGroup)&&n.overlays[i].hasLayer(e))return void n.overlays[i].removeLayer(e);if(l(w))for(var r in w)w[r].hasLayer(e)&&w[r].removeLayer(e);t.hasLayer(e)&&t.removeLayer(e)},P=function(i,r,a){var s=e.isFunction(r.getMessageScope)?r.getMessageScope():t;if(!l(r.compileMessage)||r.compileMessage){if(!l(i._popup)||!l(i._popup._contentNode))return S.error(k+"Popup is invalid or does not have any content."),!1;!function(e,t){o(e._popup._contentNode)(t)}(i,s),function e(t,i,r){(t._popup._contentNode.innerText||t._popup._contentNode.textContent).length<1&&n((function(){e(t,i,r)}));var o=t._popup._contentNode.offsetWidth;return t._popup._updateLayout(),t._popup._updatePosition(),t._popup.options.autoPan&&function(e,t){var n=e._popup._container.offsetHeight,i=new L.Point(e._popup._containerLeft,-n-e._popup._containerBottom);null!==t.layerPointToContainerPoint(i)&&e._popup._adjustPan()}(t,r),o}(i,r,a)}},Y=function(n,i){var r=e.isFunction(i.getMessageScope)?i.getMessageScope():t,a=e.isFunction(i.getLabelScope)?i.getLabelScope():r,s=!l(i.compileMessage)||i.compileMessage;v.LabelPlugin.isLoaded()&&l(i.label)&&(l(i.label.options)&&!0===i.label.options.noHide&&n.showLabel(),s&&l(n.label)&&o(n.label._container)(a))},O=function(t,n,i,r,o,a,s){if(l(n)){if(!M.validateCoords(t))return S.warn("There are problems with lat-lng data, please verify your marker model"),void A(i,s,a);var u=t===n;if(l(t.iconAngle)&&n.iconAngle!==t.iconAngle&&i.setIconAngle(t.iconAngle),_(t.layer)||_(n.layer)&&(l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&(a.overlays[n.layer].removeLayer(i),i.closePopup()),s.hasLayer(i)||s.addLayer(i)),(y(t.opacity)||y(parseFloat(t.opacity)))&&t.opacity!==n.opacity&&i.setOpacity(t.opacity),_(t.layer)&&n.layer!==t.layer){if(_(n.layer)&&l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(i)&&a.overlays[n.layer].removeLayer(i),i.closePopup(),s.hasLayer(i)&&s.removeLayer(i),!l(a.overlays[t.layer]))return void S.error(k+"You must use a name of an existing layer");var c=a.overlays[t.layer];if(!(c instanceof L.LayerGroup||c instanceof L.FeatureGroup))return void S.error(k+'A marker can only be added to a layer of type "group" or "featureGroup"');c.addLayer(i),s.hasLayer(i)&&!0===t.focus&&i.openPopup()}if(!0!==t.draggable&&!0===n.draggable&&l(i.dragging)&&i.dragging.disable(),!0===t.draggable&&!0!==n.draggable&&(i.dragging?i.dragging.enable():L.Handler.MarkerDrag&&(i.dragging=new L.Handler.MarkerDrag(i),i.options.draggable=!0,i.dragging.enable())),b(t.icon)||b(n.icon)&&("dom"===n.icon.type&&E(i),i.setIcon(D()),i.closePopup(),i.unbindPopup(),_(t.message)&&i.bindPopup(t.message,t.popupOptions)),b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)){var d=!1;i.dragging&&(d=i.dragging.enabled()),"dom"===n.icon.type&&E(i),i.setIcon(D(t.icon)),d&&i.dragging.enable(),i.closePopup(),i.unbindPopup(),_(t.message)&&(i.bindPopup(t.message,t.popupOptions),s.hasLayer(i)&&!0===t.focus&&i.openPopup())}!_(t.message)&&_(n.message)&&(i.closePopup(),i.unbindPopup()),v.LabelPlugin.isLoaded()&&(l(t.label)&&l(t.label.message)?"label"in n&&"message"in n.label&&!e.equals(t.label.message,n.label.message)?i.updateLabelContent(t.label.message):!e.isFunction(i.getLabel)||e.isFunction(i.getLabel)&&!l(i.getLabel())?(i.bindLabel(t.label.message,t.label.options),Y(i,t)):Y(i,t):"label"in t&&!("message"in t.label)||e.isFunction(i.unbindLabel)&&i.unbindLabel()),_(t.message)&&!_(n.message)&&i.bindPopup(t.message,t.popupOptions),_(t.message)&&_(n.message)&&t.message!==n.message&&i.setPopupContent(t.message);var h=!1;!0!==t.focus&&!0===n.focus&&(i.closePopup(),h=!0),(!0===t.focus&&(!l(n.focus)||!1===n.focus)||u&&!0===t.focus)&&(i.openPopup(),h=!0),n.zIndexOffset!==t.zIndexOffset&&i.setZIndexOffset(t.zIndexOffset);var f=i.getLatLng();_(t.layer)&&v.MarkerClusterPlugin.is(a.overlays[t.layer])?h?t.lat===n.lat&&t.lng===n.lng||(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):f.lat!==t.lat||f.lng!==t.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):t.lat!==n.lat||t.lng!==n.lng?(a.overlays[t.layer].removeLayer(i),i.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(i)):b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)&&(a.overlays[t.layer].removeLayer(i),a.overlays[t.layer].addLayer(i)):f.lat===t.lat&&f.lng===t.lng||i.setLatLng([t.lat,t.lng])}};return{resetMarkerGroup:C,resetMarkerGroups:function(){w={}},resetUnusedMarkerGroups:function(){for(var e in w)$(e)||C(e)},deleteMarker:A,manageOpenPopup:P,manageOpenLabel:Y,createMarker:function(e){if(l(e)&&M.validateCoords(e)){var t=M.getCoords(e);if(l(t)){var n={icon:D(e.icon),title:l(e.title)?e.title:"",draggable:!!l(e.draggable)&&e.draggable,clickable:!l(e.clickable)||e.clickable,riseOnHover:!!l(e.riseOnHover)&&e.riseOnHover,zIndexOffset:l(e.zIndexOffset)?e.zIndexOffset:0,iconAngle:l(e.iconAngle)?e.iconAngle:0};for(var i in e)e.hasOwnProperty(i)&&!n.hasOwnProperty(i)&&(n[i]=e[i]);var r=new L.marker(t,n);return _(e.message)||r.unbindPopup(),r}S.error(k+"Unable to get coordinates from markerData.")}else S.error(k+"The marker definition is not valid.")},addMarkerToGroup:function(e,t,n,i){_(t)?c.isLoaded()?(l(w[t])||(w[t]=new L.MarkerClusterGroup(n),i.addLayer(w[t])),w[t].addLayer(e)):S.error(k+"The MarkerCluster plugin is not loaded."):S.error(k+"The marker group you have specified is invalid.")},listenMarkerEvents:function(e,t,n,i,r){e.on("popupopen",(function(){g(n,(function(){(l(e._popup)||l(e._popup._contentNode))&&(t.focus=!0,P(e,t,r))}))})),e.on("popupclose",(function(){g(n,(function(){t.focus=!1}))})),e.on("add",(function(){g(n,(function(){"label"in t&&Y(e,t)}))}))},updateMarker:O,addMarkerWatcher:function(e,t,n,i,r,o){var a=v.getObjectArrayPath("markers."+t);x(n,a,o,(function(t,n,o){if(!l(t))return A(e,r,i),void o();O(t,n,e,0,0,i,r)}))},string:T,log:function(e,t){(t?console:S).debug(T(e))},getModelFromModels:function(e,t,n){if(l(e)){if(t)return n?e[n][t]:e[t];S.error(k+"marker id missing in getMarker")}},getLayerModels:function(e,t){if(l(e))return t?e[t]:e}}}]),e.module("ui-leaflet").factory("leafletPathsHelpers",["$rootScope","leafletLogger","leafletHelpers",function(e,t,n){var i=n.isDefined,r=n.isArray,o=n.isNumber,a=n.isValidPoint,s=t,l=["stroke","weight","color","opacity","fill","fillColor","fillOpacity","dashArray","lineCap","lineJoin","clickable","pointerEvents","className","smoothFactor","noClip"];function u(e){return e.filter((function(e){return a(e)})).map((function(e){return c(e)}))}function c(e){return r(e)?new L.LatLng(e[0],e[1]):new L.LatLng(e.lat,e.lng)}function d(e){return e.map((function(e){return u(e)}))}var h=function(e,t){for(var n={},r=0;r<l.length;r++){var o=l[r];i(t[o])&&(n[o]=t[o])}e.setStyle(t)},f=function(e){if(!r(e))return!1;for(var t=0;t<e.length;t++){var n=e[t];if(!a(n))return!1}return!0},p={polyline:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polyline([],e)},setPath:function(e,t){e.setLatLngs(u(t.latlngs)),h(e,t)}},multiPolyline:{isValid:function(e){var t=e.latlngs;if(!r(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.multiPolyline([[[0,0],[1,1]]],e)},setPath:function(e,t){e.setLatLngs(d(t.latlngs)),h(e,t)}},polygon:{isValid:function(e){var t=e.latlngs;return f(t)},createPath:function(e){return new L.Polygon([],e)},setPath:function(e,t){e.setLatLngs(u(t.latlngs)),h(e,t)}},multiPolygon:{isValid:function(e){var t=e.latlngs;if(!r(t))return!1;for(var n in t){var i=t[n];if(!f(i))return!1}return!0},createPath:function(e){return new L.MultiPolygon([[[0,0],[1,1],[0,1]]],e)},setPath:function(e,t){e.setLatLngs(d(t.latlngs)),h(e,t)}},rectangle:{isValid:function(e){var t=e.latlngs;if(!r(t)||2!==t.length)return!1;for(var n in t){var i=t[n];if(!a(i))return!1}return!0},createPath:function(e){return new L.Rectangle([[0,0],[1,1]],e)},setPath:function(e,t){e.setBounds(new L.LatLngBounds(u(t.latlngs))),h(e,t)}},circle:{isValid:function(e){var t=e.latlngs;return a(t)&&o(e.radius)},createPath:function(e){return new L.Circle([0,0],1,e)},setPath:function(e,t){e.setLatLng(c(t.latlngs)),i(t.radius)&&e.setRadius(t.radius),h(e,t)}},circleMarker:{isValid:function(e){var t=e.latlngs;return a(t)&&o(e.radius)},createPath:function(e){return new L.CircleMarker([0,0],e)},setPath:function(e,t){e.setLatLng(c(t.latlngs)),i(t.radius)&&e.setRadius(t.radius),h(e,t)}}};return{setPathOptions:function(e,t,n){i(t)||(t="polyline"),p[t].setPath(e,n)},createPath:function(e,t,n){i(t.type)||(t.type="polyline");var r=function(e,t){for(var n={},r=0;r<l.length;r++){var o=l[r];i(e[o])?n[o]=e[o]:i(t.path[o])&&(n[o]=t.path[o])}return n}(t,n),o=function(e){var t={};return e.latlngs&&(t.latlngs=e.latlngs),e.radius&&(t.radius=e.radius),t}(t);if(p[t.type].isValid(o))return p[t.type].createPath(r);s.error("[AngularJS - Leaflet] Invalid data passed to the "+t.type+" path")}}}]),e.module("ui-leaflet").service("leafletWatchHelpers",(function(){return{maybeWatch:function(e,t,n,i){return function(e,t,n,i,r){var o=e[t](n,(function(e,t){r(e,t,o),null===i.type&&o()}),"watchDeep"===i.type);return o}(e,"watchCollection"===n.type?"$watchCollection":"$watch",t,n,i)}}})),e.module("ui-leaflet").service("leafletLogger",["nemSimpleLogger",function(e){return e.spawn()}]),e.module("ui-leaflet").factory("nominatimService",["$q","$http","leafletHelpers","leafletMapDefaults",function(e,t,n,i){var r=n.isDefined;return{query:function(n,o){var a=i.getDefaults(o).nominatim.server,s=e.defer();return t.get(a,{params:{format:"json",limit:1,q:n}}).success((function(e){e.length>0&&r(e[0].boundingbox)?s.resolve(e[0]):s.reject("[Nominatim] Invalid address")})),s.promise}}}]),e.module("ui-leaflet").directive("bounds",["leafletLogger","$timeout","$http","leafletHelpers","nominatimService","leafletBoundsHelpers",function(t,n,i,r,o,a){var s=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,i,l,u){var c=r.isDefined,d=a.createLeafletBounds,h=u[0].getLeafletScope(),f=u[0],p=r.errorHeader+" [Bounds] ";f.getMap().then((function(i){var r;h.$on("boundsChanged",(function(t){var r=t.currentScope,o=i.getBounds();if(!function(e){return 0===e._southWest.lat&&0===e._southWest.lng&&0===e._northEast.lat&&0===e._northEast.lng}(o)&&!r.settingBoundsFromScope){r.settingBoundsFromLeaflet=!0;var a={northEast:{lat:o._northEast.lat,lng:o._northEast.lng},southWest:{lat:o._southWest.lat,lng:o._southWest.lng},options:o.options};e.equals(r.bounds,a)||(r.bounds=a),n((function(){r.settingBoundsFromLeaflet=!1}))}})),h.$watch("bounds",(function(e){if(!t.settingBoundsFromLeaflet){if(c(e.address)&&e.address!==r)return t.settingBoundsFromScope=!0,o.query(e.address,l.id).then((function(e){var t=e.boundingbox,n=[[t[0],t[2]],[t[1],t[3]]];i.fitBounds(n)}),(function(e){s.error(p+" "+e+".")})),r=e.address,void n((function(){t.settingBoundsFromScope=!1}));var a=d(e);a&&!i.getBounds().equals(a)&&(t.settingBoundsFromScope=!0,i.fitBounds(a,e.options),n((function(){t.settingBoundsFromScope=!1})))}}),!0)}))}}}]);var t=["center","lfCenter"],n={};t.forEach((function(t){n[t]=["leafletLogger","$q","$location","$timeout","leafletMapDefaults","leafletHelpers","leafletBoundsHelpers","leafletMapEvents",function(n,i,r,o,a,s,l,u){var c,d=s.isDefined,h=s.isNumber,f=s.isSameCenterOnMap,p=s.safeApply,m=s.isValidCenter,g=l.isValidBounds,v=s.isUndefinedOrEmpty,_=s.errorHeader,y=n;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:function(){c=i.defer(),this.getCenter=function(){return c.promise}},link:function(n,i,s,b){var w=b.getLeafletScope(),L=w[t];b.getMap().then((function(n){var i,b,M,k,x=a.getDefaults(s.id);if(-1!==s[t].search("-"))return y.error(_+' The "center" variable can\'t use a "-" on its key name: "'+s[t]+'".'),void n.setView([x.center.lat,x.center.lng],x.center.zoom);if(i=w.bounds,b=L,d(i)&&g(i)&&v(b))n.fitBounds(l.createLeafletBounds(w.bounds),w.bounds.options),L=n.getCenter(),p(w,(function(i){e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1})})),p(w,(function(e){var t=n.getBounds();e.bounds={northEast:{lat:t._northEast.lat,lng:t._northEast.lng},southWest:{lat:t._southWest.lat,lng:t._southWest.lng}}}));else{if(!d(L))return y.error(_+' The "center" property is not defined in the main scope'),void n.setView([x.center.lat,x.center.lng],x.center.zoom);d(L.lat)&&d(L.lng)||d(L.autoDiscover)||e.copy(x.center,L)}if("yes"===s.urlHashCenter){var S=function(){var e,t=r.search(),n=s.urlHashParam?s.urlHashParam:"c";if(d(t[n])){var i=t[n].split(":");3===i.length&&(e={lat:parseFloat(i[0]),lng:parseFloat(i[1]),zoom:parseInt(i[2],10)})}return e};M=S(),w.$on("$locationChangeSuccess",(function(i){var r=i.currentScope,o=S();d(o)&&!f(o,n)&&e.extend(r[t],{lat:o.lat,lng:o.lng,zoom:o.zoom})}))}w.$watch(t,(function(t){if(!w.settingCenterFromLeaflet){if(d(M)&&(e.copy(M,t),M=void 0),m(t)||!0===t.autoDiscover)return!0===t.autoDiscover?(h(t.zoom)||n.setView([x.center.lat,x.center.lng],x.center.zoom),void(h(t.zoom)&&t.zoom>x.center.zoom?n.locate({setView:!0,maxZoom:t.zoom}):d(x.maxZoom)?n.locate({setView:!0,maxZoom:x.maxZoom}):n.locate({setView:!0}))):void(k&&f(t,n)||(w.settingCenterFromScope=!0,n.setView([t.lat,t.lng],t.zoom),u.notifyCenterChangedToBounds(w,n),o((function(){w.settingCenterFromScope=!1}))));y.warn(_+" invalid 'center'")}}),!0),n.whenReady((function(){k=!0})),n.on("moveend",(function(){c.resolve(),u.notifyCenterUrlHashChanged(w,n,s,r.search()),f(L,n)||w.settingCenterFromScope||(w.settingCenterFromLeaflet=!0,p(w,(function(i){w.settingCenterFromScope||e.extend(i[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1}),u.notifyCenterChangedToBounds(w,n),o((function(){w.settingCenterFromLeaflet=!1}))})))})),!0===L.autoDiscover&&n.on("locationerror",(function(){y.warn(_+" The Geolocation API is unauthorized on this page."),m(L)?(n.setView([L.lat,L.lng],L.zoom),u.notifyCenterChangedToBounds(w,n)):(n.setView([x.center.lat,x.center.lng],x.center.zoom),u.notifyCenterChangedToBounds(w,n))}))}))}}}]})),t.forEach((function(t){e.module("ui-leaflet").directive(t,n[t])})),e.module("ui-leaflet").directive("controls",["leafletLogger","leafletHelpers","leafletControlHelpers",function(e,t,n){var i=e;return{restrict:"A",scope:!1,replace:!1,require:"?^leaflet",link:function(e,r,o,a){if(a){var s=n.createControl,l=n.isValidControlType,u=a.getLeafletScope(),c=t.isDefined,d=t.isArray,h={},f=t.errorHeader+" [Controls] ";e.$on("$destroy",(function(){n.destroyMapLayersControl(e.mapId)})),a.getMap().then((function(e){u.$watchCollection("controls",(function(t){for(var n in h)c(t[n])||(e.hasControl(h[n])&&e.removeControl(h[n]),delete h[n]);for(var r in t){var o,a=c(t[r].type)?t[r].type:r;if(!l(a))return void i.error(f+" Invalid control type: "+a+".");if("custom"!==a)o=s(a,t[r]),e.addControl(o),h[r]=o;else{var u=t[r];if(d(u))for(var p=0;p<u.length;p++){var m=u[p];e.addControl(m),h[r]=c(h[r])?h[r].concat([m]):[m]}else e.addControl(u),h[r]=u}}}))}))}}}}]),e.module("ui-leaflet").directive("decorations",["leafletLogger","leafletHelpers",function(t,n){var i=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,r,o,a){var s=a.getLeafletScope(),l=n.PolylineDecoratorPlugin,u=n.isDefined,c={};function d(e,t){if(u(e)&&u(t)&&u(t.coordinates)&&u(t.patterns))return e.setPaths(t.coordinates),e.setPatterns(t.patterns),e}a.getMap().then((function(t){s.$watch("decorations",(function(n){for(var r in c)u(n[r])&&e.equals(n[r],c)||(t.removeLayer(c[r]),delete c[r]);for(var o in n){var a=n[o],s=(u(h=a)&&u(h.coordinates)&&(l.isLoaded()||i.error("[AngularJS - Leaflet] The PolylineDecorator Plugin is not loaded.")),L.polylineDecorator(h.coordinates));u(s)&&(c[o]=s,t.addLayer(s),d(s,a))}var h}),!0)}))}}}]),e.module("ui-leaflet").directive("eventBroadcast",["leafletLogger","$rootScope","leafletHelpers","leafletMapEvents","leafletIterators",function(e,t,n,i,r){var o=e;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,a,s){var l=n.isObject,u=n.isDefined,c=s.getLeafletScope(),d=c.eventBroadcast,h=i.getAvailableMapEvents(),f=i.addEvents;s.getMap().then((function(e){var t=[],n="broadcast";u(d.map)?l(d.map)?("emit"!==d.map.logic&&"broadcast"!==d.map.logic?o.warn("[AngularJS - Leaflet] Available event propagation logic are: 'emit' or 'broadcast'."):n=d.map.logic,l(d.map.enable)&&d.map.enable.length>=0?r.each(d.map.enable,(function(e){-1===t.indexOf(e)&&-1!==h.indexOf(e)&&t.push(e)})):o.warn("[AngularJS - Leaflet] event-broadcast.map.enable must be an object check your model.")):o.warn("[AngularJS - Leaflet] event-broadcast.map must be an object check your model."):t=h,f(e,a.id,t,"eventName",c,n)}))}}}]),e.module("ui-leaflet").directive("geojson",["$timeout","leafletLogger","leafletData","leafletHelpers","leafletWatchHelpers","leafletDirectiveControlsHelpers","leafletIterators","leafletGeoJsonEvents",function(t,n,i,r,o,a,s,l){var u=o.maybeWatch,c=r.watchOptions,d=a.extend,h=r,f=s,p={changeFromDirective:!1};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,n,o,a){var s=r.isDefined,m=a.getLeafletScope(),g={},v=!1;a.getMap().then((function(t){var n;n=m.watchOptions&&m.watchOptions.geojson?m.watchOptions.geojson:c;var a=h.isDefined(o.geojsonNested)&&h.isTruthy(o.geojsonNested),_=function(){if(g){var e=function(e){s(e)&&t.hasLayer(e)&&t.removeLayer(e)};a?f.each(g,(function(t){e(t)})):e(g)}},y=function(n,a){if(s(n)&&s(n.data)){var u=function(t,n){return e.isFunction(t.onEachFeature)?t.onEachFeature:function(e,i){r.LabelPlugin.isLoaded()&&s(e.properties.description)&&i.bindLabel(e.properties.description),l.bindEvents(o.id,i,null,e,m,n,{resetStyleOnMouseout:t.resetStyleOnMouseout,mapId:o.id})}}(n,a);s(n.options)||h.modelChangeInDirective(p,"changeFromDirective",(function(){n.options={style:n.style,filter:n.filter,onEachFeature:u,pointToLayer:n.pointToLayer}}));var c=L.geoJson(n.data,n.options);a&&h.isString(a)?g[a]=c:g=c,c.addTo(t),v||(v=!0,i.setGeoJSON(g,o.id))}},b=function(e){if(_(),a){if(!e||!Object.keys(e).length)return;f.each(e,(function(e,t){y(e,t)}))}else y(e)};d(o.id,"geojson",b,_),u(m,"geojson",n,(function(e){p.changeFromDirective||b(e)}))}))}}}]),e.module("ui-leaflet").directive("layercontrol",["$filter","leafletLogger","leafletData","leafletHelpers",function(t,n,i,r){var o=n;return{restrict:"E",scope:{icons:"=?",autoHideOpacity:"=?",showGroups:"=?",title:"@",baseTitle:"@",overlaysTitle:"@"},replace:!0,transclude:!1,require:"^leaflet",controller:["$scope","$element","$sce",function(t,n,a){o.debug("[Angular Directive - Layers] layers",t,n);var s=r.safeApply,l=r.isDefined;e.extend(t,{baselayer:"",oldGroup:"",layerProperties:{},groupProperties:{},rangeIsSupported:r.rangeIsSupported(),changeBaseLayer:function(e,n){r.safeApply(t,(function(n){n.baselayer=e,i.getMap().then((function(r){i.getLayers().then((function(i){if(!r.hasLayer(i.baselayers[e])){for(var o in n.layers.baselayers)n.layers.baselayers[o].icon=n.icons.unradio,r.hasLayer(i.baselayers[o])&&r.removeLayer(i.baselayers[o]);r.addLayer(i.baselayers[e]),n.layers.baselayers[e].icon=t.icons.radio}}))}))})),n.preventDefault()},moveLayer:function(e,n,i){var r=Object.keys(t.layers.baselayers).length;if(n>=1+r&&n<=t.overlaysArray.length+r){var o;for(var a in t.layers.overlays)if(t.layers.overlays[a].index===n){o=t.layers.overlays[a];break}o&&s(t,(function(){o.index=e.index,e.index=n}))}i.stopPropagation(),i.preventDefault()},initIndex:function(e,n){var i=Object.keys(t.layers.baselayers).length;e.index=l(e.index)?e.index:n+i+1},initGroup:function(e){t.groupProperties[e]=t.groupProperties[e]?t.groupProperties[e]:{}},toggleOpacity:function(e,n){if(n.visible){if(t.autoHideOpacity&&!t.layerProperties[n.name].opacityControl)for(var i in t.layerProperties)t.layerProperties[i].opacityControl=!1;t.layerProperties[n.name].opacityControl=!t.layerProperties[n.name].opacityControl}e.stopPropagation(),e.preventDefault()},toggleLegend:function(e){t.layerProperties[e.name].showLegend=!t.layerProperties[e.name].showLegend},showLegend:function(e){return e.legend&&t.layerProperties[e.name].showLegend},unsafeHTML:function(e){return a.trustAsHtml(e)},getOpacityIcon:function(e){return e.visible&&t.layerProperties[e.name].opacityControl?t.icons.close:t.icons.open},getGroupIcon:function(e){return e.visible?t.icons.check:t.icons.uncheck},changeGroupVisibility:function(e){if(l(t.groupProperties[e])){var n=t.groupProperties[e].visible;for(var i in t.layers.overlays){var r=t.layers.overlays[i];r.group===e&&(r.visible=n)}}}});var u=n.get(0);L.Browser.touch?L.DomEvent.on(u,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(u),L.DomEvent.on(u,"mousewheel",L.DomEvent.stopPropagation))}],template:'<div class="angular-leaflet-control-layers" ng-show="overlaysArray.length"><h4 ng-if="title">{{ title }}</h4><div class="lf-baselayers"><h5 class="lf-title" ng-if="baseTitle">{{ baseTitle }}</h5><div class="lf-row" ng-repeat="(key, layer) in baselayersArray"><label class="lf-icon-bl" ng-click="changeBaseLayer(key, $event)"><input class="leaflet-control-layers-selector" type="radio" name="lf-radio" ng-show="false" ng-checked="baselayer === key" ng-value="key" /> <i class="lf-icon lf-icon-radio" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label></div></div><div class="lf-overlays"><h5 class="lf-title" ng-if="overlaysTitle">{{ overlaysTitle }}</h5><div class="lf-container"><div class="lf-row" ng-repeat="layer in (o = (overlaysArray | orderBy:\'index\':order))" ng-init="initIndex(layer, $index)"><label class="lf-icon-ol-group" ng-if="showGroups &amp;&amp; layer.group &amp;&amp; layer.group != o[$index-1].group"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-change="changeGroupVisibility(layer.group)" ng-model="groupProperties[layer.group].visible"/> <i class="lf-icon lf-icon-check" ng-class="getGroupIcon(groupProperties[layer.group])"></i><div class="lf-text">{{ layer.group }}</div></label><label class="lf-icon-ol"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-model="layer.visible"/> <i class="lf-icon lf-icon-check" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label><div class="lf-icons"><i class="lf-icon lf-up" ng-class="icons.up" ng-click="moveLayer(layer, layer.index - orderNumber, $event)"></i> <i class="lf-icon lf-down" ng-class="icons.down" ng-click="moveLayer(layer, layer.index + orderNumber, $event)"></i> <i class="lf-icon lf-toggle-legend" ng-class="icons.toggleLegend" ng-if="layer.legend" ng-click="toggleLegend(layer)"></i> <i class="lf-icon lf-open" ng-class="getOpacityIcon(layer)" ng-click="toggleOpacity($event, layer)"></i></div><div class="lf-legend" ng-if="showLegend(layer)" ng-bind-html="unsafeHTML(layer.legend)"></div><div class="lf-opacity clearfix" ng-if="layer.visible &amp;&amp; layerProperties[layer.name].opacityControl"><label ng-if="rangeIsSupported" class="pull-left" style="width: 50%">0</label><label ng-if="rangeIsSupported" class="pull-left text-right" style="width: 50%">100</label><input ng-if="rangeIsSupported" class="clearfix" type="range" min="0" max="1" step="0.05" class="lf-opacity-control" ng-model="layerProperties[layer.name].layerOptions.opacity"/><h6 ng-if="!rangeIsSupported">Range is not supported in this browser</h6></div></div></div></div></div>',link:function(t,n,o,a){var s=r.isDefined,l=a.getLeafletScope(),u=l.layers;t.$watch("icons",(function(){var n={uncheck:"fa fa-square-o",check:"fa fa-check-square-o",radio:"fa fa-dot-circle-o",unradio:"fa fa-circle-o",up:"fa fa-angle-up",down:"fa fa-angle-down",open:"fa fa-angle-double-down",close:"fa fa-angle-double-up",toggleLegend:"fa fa-pencil-square-o"};s(t.icons)?(e.extend(n,t.icons),e.extend(t.icons,n)):t.icons=n})),o.order=!s(o.order)||"normal"!==o.order&&"reverse"!==o.order?"normal":o.order,t.order="normal"===o.order,t.orderNumber="normal"===o.order?-1:1,t.layers=u,a.getMap().then((function(e){l.$watch("layers.baselayers",(function(n){var r={};i.getLayers().then((function(i){var o;for(o in n){var a=n[o];a.icon=t.icons[e.hasLayer(i.baselayers[o])?"radio":"unradio"],r[o]=a}t.baselayersArray=r}))})),l.$watch("layers.overlays",(function(e){var n=[],r={};i.getLayers().then((function(){var i;for(i in e){var o=e[i];o.icon=t.icons[o.visible?"check":"uncheck"],n.push(o),s(t.layerProperties[o.name])||(s(o.layerOptions.opacity)&&(o.layerOptions.opacity=1),t.layerProperties[o.name]={opacityControl:!1,showLegend:!0,layerOptions:o.layerOptions}),s(o.group)&&(s(t.groupProperties[o.group])||(t.groupProperties[o.group]={visible:!1}),r[o.group]=s(r[o.group])?r[o.group]:{count:0,visibles:0},r[o.group].count++,o.visible&&r[o.group].visibles++)}for(i in r)t.groupProperties[i].visible=r[i].visibles===r[i].count;t.overlaysArray=n}))}),!0)}))}}}]),e.module("ui-leaflet").directive("layers",["leafletLogger","$q","leafletData","leafletHelpers","leafletLayerHelpers","leafletControlHelpers",function(t,n,i,r,o,a){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:["$scope",function(e){e._leafletLayers=n.defer(),this.getLayers=function(){return e._leafletLayers.promise}}],link:function(t,n,s,l){var u=r.isDefined,c={},d=l.getLeafletScope(),h=d.layers,f=o.createLayer,p=o.safeAddLayer,m=o.safeRemoveLayer,g=o.changeOpacityListener,v=a.updateLayersControl,_=!1;t.$on("$destroy",(function(){a.destroyMapLayersControl(t.mapId)})),l.getMap().then((function(n){t._leafletLayers.resolve(c),i.setLayers(c,s.id),c.baselayers={},c.overlays={};var r=s.id,o=!1;for(var a in h.baselayers){var l=f(h.baselayers[a]);u(l)?(c.baselayers[a]=l,!0===h.baselayers[a].top&&(p(n,c.baselayers[a]),o=!0)):delete h.baselayers[a]}for(a in!o&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(h.baselayers)[0]]),h.overlays){h.overlays[a].type;var y=f(h.overlays[a]);u(y)?(c.overlays[a]=y,!0===h.overlays[a].visible&&p(n,c.overlays[a])):delete h.overlays[a]}d.$watch("layers.baselayers",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,t,h.overlays,c),!0;for(var o in c.baselayers)u(t[o])&&!t[o].doRefresh||(n.hasLayer(c.baselayers[o])&&n.removeLayer(c.baselayers[o]),delete c.baselayers[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1));for(var a in t)if(u(c.baselayers[a]))!0!==t[a].top||n.hasLayer(c.baselayers[a])?!1===t[a].top&&n.hasLayer(c.baselayers[a])&&n.removeLayer(c.baselayers[a]):p(n,c.baselayers[a]);else{var s=f(t[a]);u(s)&&(c.baselayers[a]=s,!0===t[a].top&&p(n,c.baselayers[a]))}var l=!1;for(var d in c.baselayers)if(n.hasLayer(c.baselayers[d])){l=!0;break}!l&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(c.baselayers)[0]]),_=v(n,r,_,t,h.overlays,c)}),!0),d.$watch("layers.overlays",(function(t,i){if(e.equals(t,i))return _=v(n,r,_,h.baselayers,t,c),!0;for(var o in c.overlays)if(!u(t[o])||t[o].doRefresh){if(n.hasLayer(c.overlays[o])){var a=u(t[o])?t[o].layerOptions:null;m(n,c.overlays[o],a)}delete c.overlays[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1)}for(var s in t){if(u(c.overlays[s])){t[s].visible&&!n.hasLayer(c.overlays[s])?p(n,c.overlays[s]):!1===t[s].visible&&n.hasLayer(c.overlays[s])&&m(n,c.overlays[s],t[s].layerOptions);var l=c.overlays[s];n.hasLayer(c.overlays[s])&&(t[s].layerOptions.opacity!==i[s].layerOptions.opacity&&(u(l.setOpacity)&&l.setOpacity(t[s].layerOptions.opacity),u(l.getLayers)&&u(l.eachLayer)&&l.eachLayer(g(t[s].layerOptions.opacity))),u(t[s].index)&&l.setZIndex&&t[s].index!==i[s].index&&l.setZIndex(t[s].index))}else{var d=f(t[s]);if(!u(d))continue;c.overlays[s]=d,!0===t[s].visible&&p(n,c.overlays[s]),u(t[s].index)&&c.overlays[s].setZIndex&&c.overlays[s].setZIndex(t[s].index)}t[s].visible&&n._loaded&&t[s].data&&"heatmap"===t[s].type&&(c.overlays[s].setData(t[s].data),c.overlays[s].update())}_=v(n,r,_,h.baselayers,t,c)}),!0)}))}}}]),e.module("ui-leaflet").directive("legend",["leafletLogger","$http","$timeout","leafletHelpers","leafletLegendHelpers",function(e,t,n,i,r){var o=e,a=i.errorHeader+" [Legend] ";return{restrict:"A",scope:!1,replace:!1,require:"leaflet",transclude:!1,link:function(e,t,n,s){var l,u,c,d,h=i.isArray,f=i.isString,p=i.isDefined,m=i.isFunction,g=s.getLeafletScope(),v=g.legend;g.$watch("legend",(function(e){p(e)&&(l=e.legendClass?e.legendClass:"legend",u=e.position||"bottomright",d=e.type||"arcgis")}),!0);var _=function(e,t,n){t&&t.layers&&t.layers.length>0&&(p(c)?r.updateLegend(c.getContainer(),t,d,n):((c=L.control({position:u})).onAdd=r.getOnAddLegend(t,l,d,n),c.addTo(e)),p(v.loadedData)&&m(v.loadedData)&&v.loadedData())};s.getMap().then((function(e){g.$watch("legend",(function(t){p(t)?p(t.url)||"arcgis"!==d||h(t.colors)&&h(t.labels)&&t.colors.length===t.labels.length?p(t.url)?o.info(a+" loading legend service."):(p(c)&&(c.removeFrom(e),c=null),c=L.control({position:u}),"arcgis"===d&&(c.onAdd=r.getOnAddArrayLegend(t,l)),c.addTo(e)):o.warn(a+" legend.colors and legend.labels must be set."):p(c)&&(c.removeFrom(e),c=null)})),g.$watch("legend.url",(function(t){if(p(t))if(h(t)||f(t))for(var i,s=f(t)?[t]:t,l=function(n,r){return function(l){p(l.data.error)?o.warn(a+"Error loadin legend from: "+r,l.data.error.message):i&&i.layers&&i.layers.length>0?i.layers=i.layers.concat(l.data.layers):i=l.data,n===s.length-1&&_(e,i,t)}},u=function(e){o.warn(a+" legend.url not loaded.",e)},c=0;c<s.length;c++)r.addLegendURL(n.id,{url:s[c],method:"GET"}).then(l(c)).catch(u);else o.warn(a+" legend.url must be an array or string.")})),g.$watch("legend.legendData",(function(t){o.debug("legendData",t),!p(g.legend.url)&&p(t)&&_(e,t)}),!0)}))}}}]),e.module("ui-leaflet").directive("markers",["leafletLogger","$rootScope","$q","leafletData","leafletHelpers","leafletMapDefaults","leafletMarkersHelpers","leafletMarkerEvents","leafletIterators","leafletWatchHelpers","leafletDirectiveControlsHelpers",function(t,n,i,r,o,a,s,l,u,c,d){var h=o.isDefined,f=o.errorHeader,p=o,m=o.isString,g=s.addMarkerWatcher,v=s.updateMarker,_=s.listenMarkerEvents,y=s.addMarkerToGroup,b=s.createMarker,w=s.deleteMarker,M=s.getModelFromModels,k=s.getLayerModels,x=s.resetUnusedMarkerGroups,S=u,T=o.watchOptions,$=c.maybeWatch,D=d.extend,C=t,E={changeFromDirective:!1},A=function(e,t,n,i,r,o,a,s,u,c){S.each(t,(function(t,d){if(!c[d])if(-1===d.search("-")){var w=p.getObjectDotPath(u?[u,d]:[d]),k=function(e,t,n){if(Object.keys(e).length){if(n&&m(n)){if(!e[n]||!Object.keys(e[n]).length)return;return e[n][t]}return e[t]}}(o,d,u);p.modelChangeInDirective(E,"changeFromDirective",(function(){if(h(k)){var c=M(n,d,u);v(t,c,k,w,a,r,i)}else{var x=b(t),S=(t?t.layer:void 0)||u;if(!h(x))return void C.error(f+" Received invalid data on the marker "+d+".");if(function(e,t,n,i){i&&m(i)?(h(t[i])||(t[i]={}),t[i][n]=e):t[n]=e}(x,o,d,u),h(t.message)&&x.bindPopup(t.message,t.popupOptions),h(t.group)){var T=h(t.groupOption)?t.groupOption:null;y(x,t.group,T,i)}if(p.LabelPlugin.isLoaded()&&h(t.label)&&h(t.label.message)&&x.bindLabel(t.label.message,t.label.options),h(t)&&(h(t.layer)||h(u))){if(!function(e,t,n,i,r,o){if(!m(e))return C.error(f+" A layername must be a string"),!1;if(!h(t))return C.error(f+" You must add layers to the directive if the markers are going to use this functionality."),!1;if(!h(t.overlays)||!h(t.overlays[e]))return C.error(f+' A marker can only be added to a layer of type "group"'),!1;var a=t.overlays[e];return a instanceof L.LayerGroup||a instanceof L.FeatureGroup?(a.addLayer(i),null===r&&o.hasLayer(i)&&!0===n.focus&&i.openPopup(),!0):(C.error(f+' Adding a marker to an overlay needs a overlay of the type "group" or "featureGroup"'),!1)}(S,r,t,x,s.individual.type,i))return}else h(t.group)||(i.addLayer(x),null===s.individual.type&&!0===t.focus&&x.openPopup());null!==s.individual.type&&g(x,w,a,r,i,s.individual),_(x,t,a,s.individual.type,i),l.bindEvents(e,x,w,t,a,S)}}))}else C.error('The marker can\'t use a "-" on his key name: "'+d+'".')}))},P=function(t,n,i,r,o){var a,s,l=!1,u=!1,c=h(n);for(var d in i)l||(C.debug(f+"[markers] destroy: "),l=!0),c&&(s=t[d],a=n[d],u=r&&e.equals(s,a)),h(t)&&Object.keys(t).length&&h(t[d])&&Object.keys(t[d]).length&&!u||o&&p.isFunction(o)&&o(s,a,d)},Y=function(e,t,n,i,r){P(e,t,n,!1,(function(e,t,o){C.debug(f+"[marker] is deleting marker: "+o),w(n[o],i,r),delete n[o]}))},O=function(e,t,n){var i={};return P(e,t,n,!0,(function(e,t,n){C.debug(f+"[marker] is already rendered, marker: "+n),i[n]=e})),i};return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,t,n,o){var a=o[0],s=a.getLeafletScope();a.getMap().then((function(t){var a,l,u={};a=h(o[1])?o[1].getLayers:function(){var e=i.defer();return e.resolve(),e.promise},l=s.watchOptions&&s.watchOptions.markers?s.watchOptions.markers:T;var c=h(n.markersNested)&&p.isTruthy(n.markersNested);a().then((function(i){var o=function(e,n){x(),c?S.each(e,(function(e,r){var o=k(n,r);Y(e,o,u[r],t,i)})):Y(e,n,u,t,i)},a=function(e,r){o(e,r);var a=null;c?S.each(e,(function(o,c){var d=k(r,c),h=k(e,c);a=O(h,d,u[c]),A(n.id,o,r,t,i,u,s,l,c,a)})):(a=O(e,r,u),A(n.id,e,r,t,i,u,s,l,void 0,a))};D(n.id,"markers",a,o),r.setMarkers(u,n.id),$(s,"markers",l,(function(e,t){E.changeFromDirective||a(e,t)})),e.$on("$destroy",(function(){Y(s.markers,{},u,t,i)}))}))}))}}}]),e.module("ui-leaflet").directive("maxbounds",["leafletLogger","leafletMapDefaults","leafletBoundsHelpers","leafletHelpers",function(e,t,n,i){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,r,o){var a=o.getLeafletScope(),s=n.isValidBounds,l=i.isNumber;o.getMap().then((function(e){a.$watch("maxbounds",(function(t){if(s(t)){var i=n.createLeafletBounds(t);l(t.pad)&&(i=i.pad(t.pad)),e.setMaxBounds(i),r.center||r.lfCenter||e.fitBounds(i)}else e.setMaxBounds()}))}))}}}]),e.module("ui-leaflet").directive("paths",["leafletLogger","$q","leafletData","leafletMapDefaults","leafletHelpers","leafletPathsHelpers","leafletPathEvents","leafletWatchHelpers",function(e,t,n,i,r,o,a,s){var l=e;return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,u,c,d){var h=d[0],f=r.isDefined,p=r.isString,m=h.getLeafletScope(),g=m.paths,v=o.createPath,_=a.bindPathEvents,y=o.setPathOptions,b=s.maybeWatch;h.getMap().then((function(e){var o,a,s=i.getDefaults(c.id);(o=f(d[1])?d[1].getLayers:function(){var e=t.defer();return e.resolve(),e.promise},f(g))&&(a=m.watchOptions&&m.watchOptions.paths?m.watchOptions.paths:{type:"watchCollection",individual:{type:"watchDeep"}},o().then((function(t){var i={};n.setPaths(i,c.id);var o=function(n,i,r){b(m,'paths["'+i+'"]',r,(function(i,r,o){if(!f(i)){if(f(r.layer))for(var a in t.overlays)t.overlays[a].removeLayer(n);return e.removeLayer(n),void o()}y(n,i.type,i)}))};b(m,"paths",a,(function(n){!function(n){for(var u in function(t){for(var n in i)f(t[n])||(e.removeLayer(i[n]),delete i[n])}(n),n)if(0!==u.search("\\$"))if(-1===u.search("-")){if(!f(i[u])){var d=n[u],h=v(u,n[u],s);if(f(h)&&f(d.message)&&h.bindPopup(d.message,d.popupOptions),r.LabelPlugin.isLoaded()&&f(d.label)&&f(d.label.message)&&h.bindLabel(d.label.message,d.label.options),f(d)&&f(d.layer)){if(!p(d.layer)){l.error("[AngularJS - Leaflet] A layername must be a string");continue}if(!f(t)){l.error("[AngularJS - Leaflet] You must add layers to the directive if the markers are going to use this functionality.");continue}if(!f(t.overlays)||!f(t.overlays[d.layer])){l.error('[AngularJS - Leaflet] A path can only be added to a layer of type "group"');continue}var g=t.overlays[d.layer];if(!(g instanceof L.LayerGroup||g instanceof L.FeatureGroup)){l.error('[AngularJS - Leaflet] Adding a path to an overlay needs a overlay of the type "group" or "featureGroup"');continue}i[u]=h,g.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d)}else f(h)&&(i[u]=h,e.addLayer(h),null!==a.individual.type?o(h,u,a.individual):y(h,d.type,d));_(c.id,h,u,d,m)}}else l.error('[AngularJS - Leaflet] The path name "'+u+'" is not valid. It must not include "-" and a number.')}(n)}))})))}))}}}]),e.module("ui-leaflet").directive("tiles",["leafletLogger","leafletData","leafletMapDefaults","leafletHelpers",function(t,n,i,r){var o=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,a,s,l){var u=r.isDefined,c=l.getLeafletScope(),d=c.tiles;u(d)&&u(d.url)?l.getMap().then((function(t){var r,o=i.getDefaults(s.id);c.$watch("tiles",(function(i){var a=o.tileLayerOptions,l=o.tileLayer;if(u(i.url)||!u(r))return u(r)?u(i.url)&&u(i.options)&&!e.equals(i.options,a)?(t.removeLayer(r),a=o.tileLayerOptions,e.copy(i.options,a),l=i.url,(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id)):void(u(i.url)&&r.setUrl(i.url)):(u(i.options)&&e.copy(i.options,a),u(i.url)&&(l=i.url),(r=L.tileLayer(l,a)).addTo(t),void n.setTiles(r,s.id));t.removeLayer(r)}),!0)})):o.warn("[AngularJS - Leaflet] The 'tiles' definition doesn't have the 'url' property.")}}}]),e.module("ui-leaflet").directive("watchOptions",["$log","$rootScope","$q","leafletData","leafletHelpers",function(t,n,i,r,o){var a=o.isDefined,s=o.errorHeader,l=o.isObject,u=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,n,i,r){var o=r[0].getLeafletScope(),c=function(e){return"watch"===e||"watchCollection"===e||"watchDeep"===e||null===e};a(o.watchOptions)&&l(o.watchOptions)&&e.forEach(["markers","geojson","paths"],(function(e){a(o.watchOptions[e])&&(c(o.watchOptions[e].type)||u.error(s+" watchOptions."+e+".type is not a valid type."),a(o.watchOptions[e].individual)?c(o.watchOptions[e].individual.type)||u.error(s+" watchOptions."+e+".individual.type is not a valid type."):u.error(s+" watchOptions."+e+".type.individual must be defined."))}))}}}]),e.module("ui-leaflet").factory("leafletEventsHelpersFactory",["$rootScope","$q","leafletLogger","leafletHelpers",function(t,n,i,r){var o=r.safeApply,a=r.isDefined,s=r.isObject,l=r.isArray,u=r.errorHeader,c=i,d=function(e,t){this.rootBroadcastName=e,c.debug("leafletEventsHelpersFactory: lObjectType: "+t+"rootBroadcastName: "+e),this.lObjectType=t};return d.prototype.getAvailableEvents=function(){return[]},d.prototype.genDispatchEvent=function(e,t,n,i,r,o,a,s,l){var u=this;return(e=e||"")&&(e="."+e),function(d){var h=u.rootBroadcastName+e+"."+t;c.debug(h),u.fire(i,h,n,d,d.target||r,a,o,s,l)}},d.prototype.fire=function(n,i,r,s,l,u,c,d,h){o(n,(function(){var o={leafletEvent:s,leafletObject:l,modelName:c,model:u};a(d)&&e.extend(o,{layerName:d}),"emit"===r?n.$emit(i,o):t.$broadcast(i,o)}))},d.prototype.bindEvents=function(e,t,n,i,r,o,d){var h=[],f=this;if(a(r.eventBroadcast))if(s(r.eventBroadcast))if(a(r.eventBroadcast[f.lObjectType]))if(s(r.eventBroadcast[f.lObjectType])){a(r.eventBroadcast[this.lObjectType].logic)&&"emit"!==r.eventBroadcast[f.lObjectType].logic&&"broadcast"!==r.eventBroadcast[f.lObjectType].logic&&c.warn(u+"Available event propagation logic are: 'emit' or 'broadcast'.");var p=!1,m=!1;a(r.eventBroadcast[f.lObjectType].enable)&&l(r.eventBroadcast[f.lObjectType].enable)&&(p=!0),a(r.eventBroadcast[f.lObjectType].disable)&&l(r.eventBroadcast[f.lObjectType].disable)&&(m=!0),p&&m?c.warn(u+"can not enable and disable events at the same time"):p||m?p?r.eventBroadcast[this.lObjectType].enable.forEach((function(e){-1!==h.indexOf(e)?c.warn(u+"This event "+e+" is already enabled"):-1===f.getAvailableEvents().indexOf(e)?c.warn(u+"This event "+e+" does not exist"):h.push(e)})):(h=this.getAvailableEvents(),r.eventBroadcast[f.lObjectType].disable.forEach((function(e){var t=h.indexOf(e);-1===t?c.warn(u+"This event "+e+" does not exist or has been already disabled"):h.splice(t,1)}))):c.warn(u+"must enable or disable events")}else c.warn(u+"event-broadcast."+[f.lObjectType]+" must be an object check your model.");else h=this.getAvailableEvents();else c.error(u+"event-broadcast must be an object check your model.");else h=this.getAvailableEvents();return h.forEach((function(a){t.on(a,f.genDispatchEvent(e,a,"emit",r,t,n,i,o,d))})),"emit"},d}]).service("leafletEventsHelpers",["leafletEventsHelpersFactory",function(e){return new e}]),e.module("ui-leaflet").factory("leafletGeoJsonEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletData",function(e,t,n,i,r,o){var a=i.safeApply,s=r,l=function(){s.call(this,"leafletDirectiveGeoJson","geojson")};return(l.prototype=new s).genDispatchEvent=function(t,n,i,r,l,u,c,d,h){var f=s.prototype.genDispatchEvent.call(this,t,n,i,r,l,u,c,d),p=this;return function(t){"mouseout"===n&&(h.resetStyleOnMouseout&&o.getGeoJSON(h.mapId).then((function(e){(d?e[d]:e).resetStyle(t.target)})),a(r,(function(){e.$broadcast(p.rootBroadcastName+".mouseout",t)}))),f(t)}},l.prototype.getAvailableEvents=function(){return["click","dblclick","mouseover","mouseout"]},new l}]),e.module("ui-leaflet").factory("leafletLabelEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory",function(e,t,n,i,r){var o=i,a=r,s=function(){a.call(this,"leafletDirectiveLabel","markers")};return(s.prototype=new a).genDispatchEvent=function(e,t,n,i,r,o,s,l){var u=o.replace("markers.","");return a.prototype.genDispatchEvent.call(this,e,t,n,i,r,u,s,l)},s.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu"]},s.prototype.genEvents=function(e,t,n,i,r,a,s,l){var u=this,c=this.getAvailableEvents(),d=o.getObjectArrayPath("markers."+a);c.forEach((function(t){r.label.on(t,u.genDispatchEvent(e,t,n,i,r.label,d,s,l))}))},s.prototype.bindEvents=function(e,t,n,i,r,o){},new s}]),e.module("ui-leaflet").factory("leafletMapEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpers","leafletIterators",function(e,t,n,i,r,o){var a=i.isDefined,s=r.fire,l=function(e,t,i,r){return r&&(r+="."),function(o){var a="leafletDirectiveMap."+r+t;n.debug(a),s(e,a,i,o,o.target,e)}};return{getAvailableMapEvents:function(){return["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","contextmenu","focus","blur","preclick","load","unload","viewreset","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomanim","zoomend","zoomlevelschange","resize","autopanstart","layeradd","layerremove","baselayerchange","overlayadd","overlayremove","locationfound","locationerror","popupopen","popupclose","draw:created","draw:edited","draw:deleted","draw:drawstart","draw:drawstop","draw:editstart","draw:editstop","draw:deletestart","draw:deletestop"]},genDispatchMapEvent:l,notifyCenterChangedToBounds:function(e){e.$broadcast("boundsChanged")},notifyCenterUrlHashChanged:function(e,t,n,i){if(a(n.urlHashCenter)){var r=t.getCenter(),o=r.lat.toFixed(4)+":"+r.lng.toFixed(4)+":"+t.getZoom();a(i.c)&&i.c===o||e.$emit("centerUrlHash",o)}},addEvents:function(e,t,n,i,r,a){o.each(n,(function(n){var o={};o[i]=n,t||(t=e._container.id||""),e.on(n,l(r,n,a,t),o)}))}}}]),e.module("ui-leaflet").factory("leafletMarkerEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletLabelEvents",function(e,t,n,i,r,o){var a=i.safeApply,s=i.isDefined,l=i,u=o,c=r,d=function(){c.call(this,"leafletDirectiveMarker","markers")};return(d.prototype=new c).genDispatchEvent=function(t,n,i,r,o,s,l,u){var d=c.prototype.genDispatchEvent.call(this,t,n,i,r,o,s,l,u);return function(t){"click"===n?a(r,(function(){e.$broadcast("leafletDirectiveMarkersClick",s)})):"dragend"===n&&(a(r,(function(){l.lat=o.getLatLng().lat,l.lng=o.getLatLng().lng})),l.message&&!0===l.focus&&o.openPopup()),d(t)}},d.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","dragstart","drag","dragend","move","remove","popupopen","popupclose","touchend","touchstart","touchmove","touchcancel","touchleave"]},d.prototype.bindEvents=function(e,t,n,i,r,o){var a=c.prototype.bindEvents.call(this,e,t,n,i,r,o);l.LabelPlugin.isLoaded()&&s(t.label)&&u.genEvents(e,n,a,r,t,i,o)},new d}]);var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};e.module("ui-leaflet").factory("leafletPathEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletLabelEvents","leafletEventsHelpers",function(e,t,n,r,o,a){var s=r.isDefined,l=r.isObject,u=r,c=r.errorHeader,d=o,h=a.fire,f=n,p=function(e,t,n,i,r,o,a,s){return(e=e||"")&&(e="."+e),function(l){var u="leafletDirectivePath"+e+"."+t;f.debug(u),h(i,u,n,l,l.target||r,a,o,s)}},m=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"]};return{getAvailablePathEvents:m,bindPathEvents:function(e,t,n,r,o){var a,h,m=[],g="broadcast";if(s(o.eventBroadcast))if(l(o.eventBroadcast))if(s(o.eventBroadcast.path))if(l(o.eventBroadcast.paths))f.warn(c+"event-broadcast.path must be an object check your model.");else{void 0!==o.eventBroadcast.path.logic&&null!==o.eventBroadcast.path.logic&&("emit"!==o.eventBroadcast.path.logic&&"broadcast"!==o.eventBroadcast.path.logic?f.warn(c+"Available event propagation logic are: 'emit' or 'broadcast'."):"emit"===o.eventBroadcast.path.logic&&(g="emit"));var v=!1,_=!1;if(void 0!==o.eventBroadcast.path.enable&&null!==o.eventBroadcast.path.enable&&"object"===i(o.eventBroadcast.path.enable)&&(v=!0),void 0!==o.eventBroadcast.path.disable&&null!==o.eventBroadcast.path.disable&&"object"===i(o.eventBroadcast.path.disable)&&(_=!0),v&&_)f.warn(c+"can not enable and disable events at the same time");else if(v||_)if(v)for(a=0;a<o.eventBroadcast.path.enable.length;a++)h=o.eventBroadcast.path.enable[a],-1!==m.indexOf(h)?f.warn(c+"This event "+h+" is already enabled"):-1===["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"].indexOf(h)?f.warn(c+"This event "+h+" does not exist"):m.push(h);else for(m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"],a=0;a<o.eventBroadcast.path.disable.length;a++){h=o.eventBroadcast.path.disable[a];var y=m.indexOf(h);-1===y?f.warn(c+"This event "+h+" does not exist or has been already disabled"):m.splice(y,1)}else f.warn(c+"must enable or disable events")}else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];else f.error(c+"event-broadcast must be an object check your model.");else m=["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"];for(a=0;a<m.length;a++)h=m[a],t.on(h,p(e,h,g,o,m,n));u.LabelPlugin.isLoaded()&&s(t.label)&&d.genEvents(e,n,g,o,t,r)}}}])}(angular),function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color .1s linear;-moz-transition:background-color .1s linear;-o-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}"),function(e){try{e=angular.module("ion-digit-keyboard.templates")}catch(t){e=angular.module("ion-digit-keyboard.templates",[])}e.run(["$templateCache",function(e){e.put("keyboard.tpl.html","<div class=\"digit-keyboard align-{{align}} keyboard-{{theme}} animation-{{animation}} {{roundButtons ? 'round-buttons' : ''}} {{showLetters == false ? 'no-letters' : ''}} {{(ngShow == false || ngHide == true) ? 'ng-hide' : ''}}\" style=\"width: {{width}};\"><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(1)><div class=digit-keyboard-key-number>1<div class=digit-keyboard-key-letters></div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(2)><div class=digit-keyboard-key-number>2<div class=digit-keyboard-key-letters>ABC</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(3)><div class=digit-keyboard-key-number>3<div class=digit-keyboard-key-letters>DEF</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(4)><div class=digit-keyboard-key-number>4<div class=digit-keyboard-key-letters>GHI</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(5)><div class=digit-keyboard-key-number>5<div class=digit-keyboard-key-letters>JKL</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(6)><div class=digit-keyboard-key-number>6<div class=digit-keyboard-key-letters>MNO</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(7)><div class=digit-keyboard-key-number>7<div class=digit-keyboard-key-letters>PQRS</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(8)><div class=digit-keyboard-key-number>8<div class=digit-keyboard-key-letters>TUV</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(9)><div class=digit-keyboard-key-number>9<div class=digit-keyboard-key-letters>WXYZ</div></div></div></div></div><div class=digit-keyboard-row><div class=\"digit-keyboard-key-wrapper {{showLeftAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=leftAction($event) style={{leftStyle}}><div class=digit-keyboard-key-action ng-bind-html=leftHtml style={{leftFontSize}}></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(0)><div class=digit-keyboard-key-number style=\"margin-top: -0.30em;\">0</div></div></div><div class=\"digit-keyboard-key-wrapper {{showRightAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=rightAction($event) style={{rightStyle}}><div class=digit-keyboard-key-action ng-bind-html=rightHtml style={{rightFontSize}}></div></div></div></div></div>")}])}(),angular.module("ion-digit-keyboard.directive",[]).directive("ionDigitKeyboard",["$timeout","$ionicScrollDelegate","$templateCache",function(e,t,n){var i=150;return{restrict:"EA",template:n.get("keyboard.tpl.html"),replace:!0,scope:{settings:"=settings",ngShow:"=",ngHide:"="},link:function(n,r,o){function a(){1==c&&(l.style.bottom="0px",l.style.height=u)}function s(){e((function(){if(1==c){var e=r[0].offsetHeight;u=l.style.height,l.style.height="auto",l.style.bottom=e+1+"px"}}),i+10)}void 0===n.settings&&(n.settings={});var l,u,c=!0,d="ion-content",h={},f={};n.leftStyle="",n.rightStyle="",n.leftFontSize="",n.rightFontSize="",n.showLetters=void 0!==n.settings.showLetters&&n.settings.showLetters,n.roundButtons=void 0!==n.settings.roundButtons&&n.settings.roundButtons,n.numberAction=n.settings.action||function(){},n.width=n.settings.width||"100%",n.align=n.settings.align||"center",n.animation=n.settings.animation||"slide-up",n.theme=n.settings.theme||"stable",void 0!==n.settings.leftButton&&"object"==typeof n.settings.leftButton.style&&(void 0!==n.settings.leftButton.style.color&&(n.leftStyle+="color: "+n.settings.leftButton.style.color+";"),void 0!==n.settings.leftButton.style.bgColor&&(h.default=n.settings.leftButton.style.bgColor,n.leftStyle+="background-color: "+h.default+";"),void 0!==n.settings.leftButton.style.activeBgColor&&(h.active=n.settings.leftButton.style.activeBgColor),void 0!==n.settings.leftButton.style.borderColor&&(n.leftStyle+="border-color: "+n.settings.leftButton.style.borderColor+" !important;"),void 0!==n.settings.leftButton.style.fontSize&&(n.leftFontSize="font-size: "+n.settings.leftButton.style.fontSize+" !important;")),void 0!==n.settings.rightButton&&"object"==typeof n.settings.rightButton.style&&(void 0!==n.settings.rightButton.style.color&&(n.rightStyle+="color: "+n.settings.rightButton.style.color+";"),void 0!==n.settings.rightButton.style.bgColor&&(f.default=n.settings.rightButton.style.bgColor,n.rightStyle+="background-color: "+f.default+";"),void 0!==n.settings.rightButton.style.activeBgColor&&(f.active=n.settings.rightButton.style.activeBgColor),void 0!==n.settings.rightButton.style.borderColor&&(n.rightStyle+="border-color: "+n.settings.rightButton.style.borderColor+" !important;"),void 0!==n.settings.rightButton.style.fontSize&&(n.rightFontSize="font-size: "+n.settings.rightButton.style.fontSize+" !important;")),n.showLeftAction=!1,void 0!==n.settings.leftButton&&(n.leftHtml=n.settings.leftButton.html,n.showLeftAction=!0,n.leftAction=function(e){if(h.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===h.default&&(h.default=t.style.backgroundColor),t.style.backgroundColor=h.active,setTimeout((function(){t.style.backgroundColor=h.default}),100)}n.settings.leftButton.action()}),n.showRightAction=!1,void 0!==n.settings.rightButton&&(n.rightHtml=n.settings.rightButton.html,n.showRightAction=!0,n.rightAction=function(e){if(f.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===f.default&&(f.default=t.style.backgroundColor),t.style.backgroundColor=f.active,setTimeout((function(){t.style.backgroundColor=f.default}),100)}n.settings.rightButton.action()}),("object"==typeof n.settings.resizeContent||"boolean"==typeof n.settings.resizeContent)&&("object"==typeof n.settings.resizeContent?(c=void 0===n.settings.resizeContent.enable||n.settings.resizeContent.enable,d=void 0===n.settings.resizeContent.element?"ion-content":n.settings.resizeContent.element):"boolean"==typeof n.settings.resizeContent&&(c=n.settings.resizeContent)),l=r[0].parentElement.querySelectorAll(d)[0],n.$watch("ngShow",(function(){!0===n.ngShow?s():!1===n.ngShow&&a(),t.resize()})),n.$watch("ngHide",(function(){!0===n.ngHide?a():!1===n.ngHide&&s(),t.resize()}))}}}]),angular.module("ion-digit-keyboard",["ionic","ion-digit-keyboard.templates","ion-digit-keyboard.directive"]),function(e){"use strict";if("object"==typeof exports)module.exports=e("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js"));else if("function"==typeof define&&define.amd)define(["angular","chart"],e);else{if("undefined"==typeof angular)throw new Error("AngularJS framework needs to be included, see https://angularjs.org/");if("undefined"==typeof Chart)throw new Error("Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/");e(angular,Chart)}}((function(e,t){"use strict";t.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",t.defaults.global.tooltips.mode="label",t.defaults.global.elements.line.borderWidth=2,t.defaults.global.elements.rectangle.borderWidth=2,t.defaults.global.legend.display=!1,t.defaults.global.colors=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var n="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return n&&(t.defaults.global.animation=!1),e.module("chart.js",[]).provider("ChartJs",(function(){var n={responsive:!0},i={Chart:t,getOptions:function(t){var i=t&&n[t]||{};return e.extend({},n,i)}};this.setOptions=function(t,r){r?n[t]=e.merge(n[t]||{},r):(r=t,n=e.merge(n,r)),e.merge(i.Chart.defaults,n)},this.$get=function(){return i}})).factory("ChartJsFactory",["ChartJs","$timeout",function(i,r){function o(e,t,n){var r=v(e,t);if(function(e){return e.chartData&&e.chartData.length}(t)&&b(e,t,n,r)){var o=n[0],a=o.getContext("2d");t.chartGetColor=function(e){return"function"==typeof e.chartGetColor?e.chartGetColor:d}(t);var s=function(e,t){var n=u(e,t);return Array.isArray(t.chartData[0])?m(t.chartLabels,t.chartData,t.chartSeries||[],n,t.chartDatasetOverride):g(t.chartLabels,t.chartData,n,t.chartDatasetOverride)}(e,t);w(t),t.chart=new i.Chart(a,{type:e,data:s,options:r}),t.$emit("chart-create",t.chart),_(o,t)}}function a(e,t){return!!(e&&t&&e.length&&t.length)&&(Array.isArray(e[0])?e.length===t.length&&e.every((function(e,n){return e.length===t[n].length})):t.reduce(s,0)>0&&e.length===t.length)}function s(e,t){return e+t}function l(t,n,i){var r={point:void 0,points:void 0};return function(o){var a=t.chart.getElementAtEvent||t.chart.getPointAtEvent,s=t.chart.getElementsAtEvent||t.chart.getPointsAtEvent;if(s){var l=s.call(t.chart,o),u=a?a.call(t.chart,o)[0]:void 0;!1!==i&&(e.equals(r.points,l)||e.equals(r.point,u))||(r.point=u,r.points=l,t[n](l,o,u))}}}function u(n,r){for(var o=e.copy(r.chartColors||i.getOptions(n).chartColors||t.defaults.global.colors),a=o.length<r.chartData.length;o.length<r.chartData.length;)o.push(r.chartGetColor());return a&&(r.chartColors=o),o.map(c)}function c(e){return"string"==typeof e&&"r"===e[0]?h(function(e){var t=e.match(/^rgba?\(([\d,.]+)\)$/);if(!t)throw new Error("Cannot parse rgb value");return(e=t[1].split(",")).map(Number)}(e)):"string"==typeof e&&"#"===e[0]?h(function(e){var t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}(e.substr(1))):"object"==typeof e&&null!==e?e:d()}function d(){return h([f(0,255),f(0,255),f(0,255)])}function h(e){var t=e[3]||1;return{backgroundColor:p(e=e.slice(0,3),.2),pointBackgroundColor:p(e,t),pointHoverBackgroundColor:p(e,.8),borderColor:p(e,t),pointBorderColor:"#fff",pointHoverBorderColor:p(e,t)}}function f(e,t){return Math.floor(Math.random()*(t-e+1))+e}function p(e,t){return n?"rgb("+e.join(",")+")":"rgba("+e.concat(t).join(",")+")"}function m(t,n,i,r,o){return{labels:t,datasets:n.map((function(t,n){var a=e.extend({},r[n],{label:i[n],data:t});return o&&o.length>=n&&e.merge(a,o[n]),a}))}}function g(t,n,i,r){var o={labels:t,datasets:[{data:n,backgroundColor:i.map((function(e){return e.pointBackgroundColor})),hoverBackgroundColor:i.map((function(e){return e.backgroundColor}))}]};return r&&e.merge(o.datasets[0],r),o}function v(t,n){return e.extend({},i.getOptions(t),n.chartOptions)}function _(t,n){t.onclick=n.chartClick?l(n,"chartClick",!1):e.noop,t.onmousemove=n.chartHover?l(n,"chartHover",!0):e.noop}function y(e){return!e||Array.isArray(e)&&!e.length||"object"==typeof e&&!Object.keys(e).length}function b(e,t,n,i){return!i.responsive||0!==n[0].clientHeight||(r((function(){o(e,t,n)}),50,!1),!1)}function w(e){e.chart&&(e.chart.destroy(),e.$emit("chart-destroy",e.chart))}return function(t){return{restrict:"CA",scope:{chartGetColor:"=?",chartType:"=",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColors:"=?",chartClick:"=?",chartHover:"=?",chartDatasetOverride:"=?"},link:function(i,r){function s(n,a){if(!y(n)&&!e.equals(n,a)){var s=t||i.chartType;s&&o(s,i,r)}}n&&window.G_vmlCanvasManager.initElement(r[0]),i.$watch("chartData",(function(e,n){if(e&&e.length&&(!Array.isArray(e[0])||e[0].length)){var s=t||i.chartType;return s?i.chart&&a(e,n)?function(e,t){Array.isArray(t.chartData[0])?t.chart.data.datasets.forEach((function(t,n){t.data=e[n]})):t.chart.data.datasets[0].data=e,t.chart.update(),t.$emit("chart-update",t.chart)}(e,i):void o(s,i,r):void 0}w(i)}),!0),i.$watch("chartSeries",s,!0),i.$watch("chartLabels",s,!0),i.$watch("chartOptions",s,!0),i.$watch("chartColors",s,!0),i.$watch("chartDatasetOverride",s,!0),i.$watch("chartType",(function(t,n){y(t)||e.equals(t,n)||o(t,i,r)}),!1),i.$on("$destroy",(function(){w(i)})),i.$on("$resize",(function(){i.chart&&i.chart.resize()}))}}}}]).directive("chartBase",["ChartJsFactory",function(e){return new e}]).directive("chartLine",["ChartJsFactory",function(e){return new e("line")}]).directive("chartBar",["ChartJsFactory",function(e){return new e("bar")}]).directive("chartHorizontalBar",["ChartJsFactory",function(e){return new e("horizontalBar")}]).directive("chartRadar",["ChartJsFactory",function(e){return new e("radar")}]).directive("chartDoughnut",["ChartJsFactory",function(e){return new e("doughnut")}]).directive("chartPie",["ChartJsFactory",function(e){return new e("pie")}]).directive("chartPolarArea",["ChartJsFactory",function(e){return new e("polarArea")}]).directive("chartBubble",["ChartJsFactory",function(e){return new e("bubble")}]).name})),function(e){var t=function(e){var t=e.module("FBAngular",[]);return t.factory("Fullscreen",["$document","$rootScope",function(t,n){var i=t[0],r=n.$new();t.on("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",(function(){r.$emit("FBFullscreen.change",o.isEnabled())}));var o={$on:e.bind(r,r.$on),all:function(e){o.enable(i.documentElement,e)},enable:function(e,t){e.requestFullScreen?e.requestFullScreen(t):e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()},cancel:function(){i.cancelFullScreen?i.cancelFullScreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen?i.webkitExitFullscreen():i.msExitFullscreen&&i.msExitFullscreen()},isEnabled:function(){return!!(i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement||i.msFullscreenElement)},toggleAll:function(){o.isEnabled()?o.cancel():o.all()},isSupported:function(){var e=i.documentElement;return!!(e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen)}};return o}]),t.directive("fullscreen",["Fullscreen",function(e){return{link:function(t,n,i){if(i.fullscreen){t.$watch(i.fullscreen,(function(t){var i=e.isEnabled();t&&!i?(e.enable(n[0]),n.addClass("isInFullScreen")):!t&&i&&(e.cancel(),n.removeClass("isInFullScreen"))}));var r=e.$on("FBFullscreen.change",(function(e,r){r||t.$evalAsync((function(){t.$eval(i.fullscreen+"= false"),n.removeClass("isInFullScreen")}))}));t.$on("$destroy",(function(){r()}))}else{if(void 0!==i.onlyWatchedProperty)return;n.on("click",(function(t){e.enable(n[0])}))}}}}]),t};"function"==typeof define&&define.amd?define("FBAngular",["angular"],(function(e){return t(e)})):"undefined"!=typeof module&&module.exports?module.exports=t(e.angular).name:t(e.angular)}(window),function(){var e=("undefined"!=typeof module&&null!==module?module.exports:void 0)||(window.Base58={});e.alphabet="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",e.alphabetMap={};for(var t=0;t<e.alphabet.length;t++)e.alphabetMap[e.alphabet.charAt(t)]=t;e.encode=function(n){var i,r,o;if(0===n.length)return"";for(t=void 0,o=void 0,r=[0],t=0;t<n.length;){for(o=0;o<r.length;)r[o]<<=8,o++;for(r[0]+=n[t],i=0,o=0;o<r.length;)r[o]+=i,i=r[o]/58|0,r[o]%=58,++o;for(;i;)r.push(i%58),i=i/58|0;t++}for(t=0;0===n[t]&&t<n.length-1;)r.push(0),t++;return r.reverse().map((function(t){return e.alphabet[t]})).join("")},e.decode=function(n){var i,r,o,a;if(0===n.length)return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(0):new Buffer(0);for(t=void 0,a=void 0,i=[0],t=0;t<n.length;){if(!((r=n[t])in e.alphabetMap))throw"Base58.decode received unacceptable input. Character '"+r+"' is not in the Base58 alphabet.";for(a=0;a<i.length;)i[a]*=58,a++;for(i[0]+=e.alphabetMap[r],o=0,a=0;a<i.length;)i[a]+=o,o=i[a]>>8,i[a]&=255,++a;for(;o;)i.push(255&o),o>>=8;t++}for(t=0;"1"===n[t]&&t<n.length-1;)i.push(0),t++;return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(i.reverse()):new Buffer(i.reverse())}}.call(this),function(){"use strict";function e(e,t){t?(d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}var t="object"==typeof window?window:{},n=!t.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n&&(t=global);var i=!t.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,r="function"==typeof define&&define.amd,o="undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),s=[-2147483648,8388608,32768,128],l=[24,16,8,0],u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],d=[],h=function(t,n){return function(i){return new e(n,!0).update(i)[t]()}},f=function(t){var i=h("hex",t);n&&(i=p(i,t)),i.create=function(){return new e(t)},i.update=function(e){return i.create().update(e)};for(var r=0;r<c.length;++r){var o=c[r];i[o]=h(o,t)}return i},p=function(e,t){var n=require("crypto"),i=require("buffer").Buffer,r=t?"sha224":"sha256";return function(t){if("string"==typeof t)return n.createHash(r).update(t,"utf8").digest("hex");if(o&&t instanceof ArrayBuffer)t=new Uint8Array(t);else if(void 0===t.length)return e(t);return n.createHash(r).update(new i(t)).digest("hex")}};e.prototype.update=function(e){if(!this.finalized){var n="string"!=typeof e;n&&o&&e instanceof t.ArrayBuffer&&(e=new Uint8Array(e));for(var i,r,a=0,s=e.length||0,u=this.blocks;s>a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),n)for(r=this.start;s>a&&64>r;++a)u[r>>2]|=e[a]<<l[3&r++];else for(r=this.start;s>a&&64>r;++a)128>(i=e.charCodeAt(a))?u[r>>2]|=i<<l[3&r++]:2048>i?(u[r>>2]|=(192|i>>6)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):55296>i||i>=57344?(u[r>>2]|=(224|i>>12)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]):(i=65536+((1023&i)<<10|1023&e.charCodeAt(++a)),u[r>>2]|=(240|i>>18)<<l[3&r++],u[r>>2]|=(128|i>>12&63)<<l[3&r++],u[r>>2]|=(128|i>>6&63)<<l[3&r++],u[r>>2]|=(128|63&i)<<l[3&r++]);this.lastByteIndex=r,this.bytes+=r-this.start,r>=64?(this.block=u[16],this.start=r-64,this.hash(),this.hashed=!0):this.start=r}return this}},e.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=s[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[15]=this.bytes<<3,this.hash()}},e.prototype.hash=function(){var e,t,n,i,r,o,a,s,l,c=this.h0,d=this.h1,h=this.h2,f=this.h3,p=this.h4,m=this.h5,g=this.h6,v=this.h7,_=this.blocks;for(e=16;64>e;++e)t=((r=_[e-15])>>>7|r<<25)^(r>>>18|r<<14)^r>>>3,n=((r=_[e-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,_[e]=_[e-16]+t+_[e-7]+n<<0;for(l=d&h,e=0;64>e;e+=4)this.first?(this.is224?(o=300032,v=(r=_[0]-1413257819)-150054599<<0,f=r+24177077<<0):(o=704751109,v=(r=_[0]-210244248)-1521486534<<0,f=r+143694565<<0),this.first=!1):(t=(c>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),i=(o=c&d)^c&h^l,v=f+(r=v+(n=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7))+(p&m^~p&g)+u[e]+_[e])<<0,f=r+(t+i)<<0),t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),i=(a=f&c)^f&d^o,g=h+(r=g+(n=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7))+(v&p^~v&m)+u[e+1]+_[e+1])<<0,t=((h=r+(t+i)<<0)>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10),i=(s=h&f)^h&c^a,m=d+(r=m+(n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7))+(g&v^~g&p)+u[e+2]+_[e+2])<<0,t=((d=r+(t+i)<<0)>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10),i=(l=d&h)^d&f^s,p=c+(r=p+(n=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7))+(m&g^~m&v)+u[e+3]+_[e+3])<<0,c=r+(t+i)<<0;this.h0=this.h0+c<<0,this.h1=this.h1+d<<0,this.h2=this.h2+h<<0,this.h3=this.h3+f<<0,this.h4=this.h4+p<<0,this.h5=this.h5+m<<0,this.h6=this.h6+g<<0,this.h7=this.h7+v<<0},e.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,s=this.h6,l=this.h7,u=a[e>>28&15]+a[e>>24&15]+a[e>>20&15]+a[e>>16&15]+a[e>>12&15]+a[e>>8&15]+a[e>>4&15]+a[15&e]+a[t>>28&15]+a[t>>24&15]+a[t>>20&15]+a[t>>16&15]+a[t>>12&15]+a[t>>8&15]+a[t>>4&15]+a[15&t]+a[n>>28&15]+a[n>>24&15]+a[n>>20&15]+a[n>>16&15]+a[n>>12&15]+a[n>>8&15]+a[n>>4&15]+a[15&n]+a[i>>28&15]+a[i>>24&15]+a[i>>20&15]+a[i>>16&15]+a[i>>12&15]+a[i>>8&15]+a[i>>4&15]+a[15&i]+a[r>>28&15]+a[r>>24&15]+a[r>>20&15]+a[r>>16&15]+a[r>>12&15]+a[r>>8&15]+a[r>>4&15]+a[15&r]+a[o>>28&15]+a[o>>24&15]+a[o>>20&15]+a[o>>16&15]+a[o>>12&15]+a[o>>8&15]+a[o>>4&15]+a[15&o]+a[s>>28&15]+a[s>>24&15]+a[s>>20&15]+a[s>>16&15]+a[s>>12&15]+a[s>>8&15]+a[s>>4&15]+a[15&s];return this.is224||(u+=a[l>>28&15]+a[l>>24&15]+a[l>>20&15]+a[l>>16&15]+a[l>>12&15]+a[l>>8&15]+a[l>>4&15]+a[15&l]),u},e.prototype.toString=e.prototype.hex,e.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,i=this.h3,r=this.h4,o=this.h5,a=this.h6,s=this.h7,l=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,r>>24&255,r>>16&255,r>>8&255,255&r,o>>24&255,o>>16&255,o>>8&255,255&o,a>>24&255,a>>16&255,a>>8&255,255&a];return this.is224||l.push(s>>24&255,s>>16&255,s>>8&255,255&s),l},e.prototype.array=e.prototype.digest,e.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};var m=f();m.sha256=m,m.sha224=f(!0),i?module.exports=m:(t.sha256=m.sha256,t.sha224=m.sha224,r&&define((function(){return m})))}(),angular.module("ngCordova",["ngCordova.plugins"]),angular.module("ngCordova.plugins.3dtouch",[]).factory("$cordova3DTouch",["$q",function(e){var t=[],n={},i=function(e){return function(t){for(var n in e)t.type===n&&e[n]()}};return{isAvailable:function(){var t=e.defer();return window.cordova?window.ThreeDeeTouch?window.ThreeDeeTouch.isAvailable((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Could not find 3D touch plugin"):t.reject("Not supported in browser"),t.promise},addQuickAction:function(r,o,a,s,l,u){var c=e.defer(),d={type:r,title:o,subtitle:l};return a&&(d.iconType=a),s&&(d.iconTemplate=s),this.isAvailable().then((function(){t.push(d),n[r]=u,window.ThreeDeeTouch.configureQuickActions(t),window.ThreeDeeTouch.onHomeIconPressed=i(n),c.resolve(t)}),(function(e){c.reject(e)})),c.promise},addQuickActionHandler:function(t,r){var o=e.defer();return this.isAvailable().then((function(){n[t]=r,window.ThreeDeeTouch.onHomeIconPressed=i(n),o.resolve(!0)}),(function(e){o.reject(e)})),o.promise},enableLinkPreview:function(){var t=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.enableLinkPreview(),t.resolve(!0)}),(function(e){t.reject(e)})),t.promise},addForceTouchHandler:function(t){var n=e.defer();return this.isAvailable().then((function(){window.ThreeDeeTouch.watchForceTouches(t),n.resolve(!0)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.actionSheet",[]).factory("$cordovaActionSheet",["$q","$window",function(e,t){return{show:function(n){var i=e.defer();return t.plugins.actionsheet.show(n,(function(e){i.resolve(e)})),i.promise},hide:function(){return t.plugins.actionsheet.hide()}}}]),angular.module("ngCordova.plugins.adMob",[]).factory("$cordovaAdMob",["$q","$window",function(e,t){return{createBannerView:function(n){var i=e.defer();return t.plugins.AdMob.createBannerView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createInterstitialView:function(n){var i=e.defer();return t.plugins.AdMob.createInterstitialView(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestAd:function(n){var i=e.defer();return t.plugins.AdMob.requestAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showAd:function(n){var i=e.defer();return t.plugins.AdMob.showAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},requestInterstitialAd:function(n){var i=e.defer();return t.plugins.AdMob.requestInterstitialAd(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise}}}]),angular.module("ngCordova.plugins.appAvailability",[]).factory("$cordovaAppAvailability",["$q",function(e){return{check:function(t){var n=e.defer();return appAvailability.check(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.appRate",[]).provider("$cordovaAppRate",[function(){this.setPreferences=function(e){e&&angular.isObject(e)&&(AppRate.preferences.useLanguage=e.language||null,AppRate.preferences.displayAppName=e.appName||"",AppRate.preferences.promptAgainForEachNewVersion=e.promptForNewVersion||!0,AppRate.preferences.openStoreInApp=e.openStoreInApp||!1,AppRate.preferences.usesUntilPrompt=e.usesUntilPrompt||3,AppRate.preferences.useCustomRateDialog=e.useCustomRateDialog||!1,AppRate.preferences.storeAppURL.ios=e.iosURL||null,AppRate.preferences.storeAppURL.android=e.androidURL||null,AppRate.preferences.storeAppURL.blackberry=e.blackberryURL||null,AppRate.preferences.storeAppURL.windows8=e.windowsURL||null)},this.setCustomLocale=function(e){var t={title:"Rate %@",message:"If you enjoy using %@, would you mind taking a moment to rate it? It won’t take more than a minute. Thanks for your support!",cancelButtonLabel:"No, Thanks",laterButtonLabel:"Remind Me Later",rateButtonLabel:"Rate It Now"};t=angular.extend(t,e),AppRate.preferences.customLocale=t},this.$get=["$q",function(e){return{promptForRating:function(t){var n=e.defer(),i=AppRate.promptForRating(t);return n.resolve(i),n.promise},navigateToAppStore:function(){var t=e.defer(),n=AppRate.navigateToAppStore();return t.resolve(n),t.promise},onButtonClicked:function(e){AppRate.preferences.callbacks.onButtonClicked=e.bind(this)},onRateDialogShow:function(e){AppRate.preferences.callbacks.onRateDialogShow=e.bind(this)}}}]}]),angular.module("ngCordova.plugins.appVersion",[]).factory("$cordovaAppVersion",["$q",function(e){return{getAppName:function(){var t=e.defer();return cordova.getAppVersion.getAppName((function(e){t.resolve(e)})),t.promise},getPackageName:function(){var t=e.defer();return cordova.getAppVersion.getPackageName((function(e){t.resolve(e)})),t.promise},getVersionNumber:function(){var t=e.defer();return cordova.getAppVersion.getVersionNumber((function(e){t.resolve(e)})),t.promise},getVersionCode:function(){var t=e.defer();return cordova.getAppVersion.getVersionCode((function(e){t.resolve(e)})),t.promise}}}]),angular.module("ngCordova.plugins.backgroundGeolocation",[]).factory("$cordovaBackgroundGeolocation",["$q","$window",function(e,t){return{init:function(){t.navigator.geolocation.getCurrentPosition((function(e){return e}))},configure:function(n){this.init();var i=e.defer();return t.plugins.backgroundGeoLocation.configure((function(e){i.notify(e),t.plugins.backgroundGeoLocation.finish()}),(function(e){i.reject(e)}),n),this.start(),i.promise},start:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.start((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},stop:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.stop((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.badge",[]).factory("$cordovaBadge",["$q",function(e){return{hasPermission:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?t.resolve(!0):t.reject("You do not have permission")})),t.promise},promptForPermission:function(){return cordova.plugins.notification.badge.promptForPermission()},set:function(t,n,i){var r=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?r.resolve(cordova.plugins.notification.badge.set(t,n,i)):r.reject("You do not have permission to set Badge")})),r.promise},get:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?cordova.plugins.notification.badge.get((function(e){t.resolve(e)})):t.reject("You do not have permission to get Badge")})),t.promise},clear:function(t,n){var i=e.defer();return cordova.plugins.notification.badge.hasPermission((function(e){e?i.resolve(cordova.plugins.notification.badge.clear(t,n)):i.reject("You do not have permission to clear Badge")})),i.promise},increase:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.increase(t,n,i))}),(function(){r.reject("You do not have permission to increase Badge")})),r.promise},decrease:function(t,n,i){var r=e.defer();return this.hasPermission().then((function(){r.resolve(cordova.plugins.notification.badge.decrease(t,n,i))}),(function(){r.reject("You do not have permission to decrease Badge")})),r.promise},configure:function(e){return cordova.plugins.notification.badge.configure(e)}}}]),angular.module("ngCordova.plugins.barcodeScanner",[]).factory("$cordovaBarcodeScanner",["$q",function(e){return{scan:function(t){var n=e.defer();return cordova.plugins.barcodeScanner.scan((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},encode:function(t,n){var i=e.defer();return t=t||"TEXT_TYPE",cordova.plugins.barcodeScanner.encode(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.batteryStatus",[]).factory("$cordovaBatteryStatus",["$rootScope","$window","$timeout",function(e,t,n){var i=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:status",t)}))},r=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:critical",t)}))},o=function(t){n((function(){e.$broadcast("$cordovaBatteryStatus:low",t)}))};return document.addEventListener("deviceready",(function(){navigator.battery&&(t.addEventListener("batterystatus",i,!1),t.addEventListener("batterycritical",r,!1),t.addEventListener("batterylow",o,!1))}),!1),!0}]).run(["$injector",function(e){e.get("$cordovaBatteryStatus")}]),angular.module("ngCordova.plugins.beacon",[]).factory("$cordovaBeacon",["$window","$rootScope","$timeout","$q",function(e,t,n,i){var r=null,o=null,a=null,s=null,l=null,u=null,c=null,d=null;return document.addEventListener("deviceready",(function(){if(e.cordova&&e.cordova.plugins&&e.cordova.plugins.locationManager){var i=new e.cordova.plugins.locationManager.Delegate;i.didDetermineStateForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didDetermineStateForRegion",e)})),r&&r(e)},i.didStartMonitoringForRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didStartMonitoringForRegion",e)})),o&&o(e)},i.didExitRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didExitRegion",e)})),a&&a(e)},i.didEnterRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didEnterRegion",e)})),s&&s(e)},i.didRangeBeaconsInRegion=function(e){n((function(){t.$broadcast("$cordovaBeacon:didRangeBeaconsInRegion",e)})),l&&l(e)},i.peripheralManagerDidStartAdvertising=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidStartAdvertising",e)})),u&&u(e)},i.peripheralManagerDidUpdateState=function(e){n((function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidUpdateState",e)})),c&&c(e)},i.didChangeAuthorizationStatus=function(e){n((function(){t.$broadcast("$cordovaBeacon:didChangeAuthorizationStatus",e)})),d&&d(e)},e.cordova.plugins.locationManager.setDelegate(i)}}),!1),{setCallbackDidDetermineStateForRegion:function(e){r=e},setCallbackDidStartMonitoringForRegion:function(e){o=e},setCallbackDidExitRegion:function(e){a=e},setCallbackDidEnterRegion:function(e){s=e},setCallbackDidRangeBeaconsInRegion:function(e){l=e},setCallbackPeripheralManagerDidStartAdvertising:function(e){u=e},setCallbackPeripheralManagerDidUpdateState:function(e){c=e},setCallbackDidChangeAuthorizationStatus:function(e){d=e},createBeaconRegion:function(t,n,i,r,o){return i=i||void 0,r=r||void 0,new e.cordova.plugins.locationManager.BeaconRegion(t,n,i,r,o)},isBluetoothEnabled:function(){return i.when(e.cordova.plugins.locationManager.isBluetoothEnabled())},enableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.enableBluetooth())},disableBluetooth:function(){return i.when(e.cordova.plugins.locationManager.disableBluetooth())},startMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.startMonitoringForRegion(t))},stopMonitoringForRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopMonitoringForRegion(t))},requestStateForRegion:function(t){return i.when(e.cordova.plugins.locationManager.requestStateForRegion(t))},startRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.startRangingBeaconsInRegion(t))},stopRangingBeaconsInRegion:function(t){return i.when(e.cordova.plugins.locationManager.stopRangingBeaconsInRegion(t))},getAuthorizationStatus:function(){return i.when(e.cordova.plugins.locationManager.getAuthorizationStatus())},requestWhenInUseAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestWhenInUseAuthorization())},requestAlwaysAuthorization:function(){return i.when(e.cordova.plugins.locationManager.requestAlwaysAuthorization())},getMonitoredRegions:function(){return i.when(e.cordova.plugins.locationManager.getMonitoredRegions())},getRangedRegions:function(){return i.when(e.cordova.plugins.locationManager.getRangedRegions())},isRangingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isRangingAvailable())},isMonitoringAvailableForClass:function(t){return i.when(e.cordova.plugins.locationManager.isMonitoringAvailableForClass(t))},
+startAdvertising:function(t,n){return i.when(e.cordova.plugins.locationManager.startAdvertising(t,n))},stopAdvertising:function(){return i.when(e.cordova.plugins.locationManager.stopAdvertising())},isAdvertisingAvailable:function(){return i.when(e.cordova.plugins.locationManager.isAdvertisingAvailable())},isAdvertising:function(){return i.when(e.cordova.plugins.locationManager.isAdvertising())},disableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.disableDebugLogs())},enableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.enableDebugNotifications())},disableDebugNotifications:function(){return i.when(e.cordova.plugins.locationManager.disableDebugNotifications())},enableDebugLogs:function(){return i.when(e.cordova.plugins.locationManager.enableDebugLogs())},appendToDeviceLog:function(t){return i.when(e.cordova.plugins.locationManager.appendToDeviceLog(t))}}}]),angular.module("ngCordova.plugins.ble",[]).factory("$cordovaBLE",["$q","$timeout","$log",function(e,t,n){return{scan:function(n,i){var r=e.defer();return ble.startScan(n,(function(e){r.notify(e)}),(function(e){r.reject(e)})),t((function(){ble.stopScan((function(){r.resolve()}),(function(e){r.reject(e)}))}),1e3*i),r.promise},startScan:function(e,t,n){return ble.startScan(e,t,n)},stopScan:function(){var t=e.defer();return ble.stopScan((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise},connect:function(t){var n=e.defer();return ble.connect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},disconnect:function(t){var n=e.defer();return ble.disconnect(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(t,n,i){var r=e.defer();return ble.read(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},write:function(t,n,i,r){var o=e.defer();return ble.write(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeWithoutResponse:function(t,n,i,r){var o=e.defer();return ble.writeWithoutResponse(t,n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},writeCommand:function(e,t,i,r){return n.warning("writeCommand is deprecated, use writeWithoutResponse"),this.writeWithoutResponse(e,t,i,r)},startNotification:function(e,t,n,i,r){return ble.startNotification(e,t,n,i,r)},stopNotification:function(t,n,i){var r=e.defer();return ble.stopNotification(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},isConnected:function(t){var n=e.defer();return ble.isConnected(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},enable:function(){var t=e.defer();return ble.enable((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},isEnabled:function(){var t=e.defer();return ble.isEnabled((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.bluetoothSerial",[]).factory("$cordovaBluetoothSerial",["$q","$window",function(e,t){return{connect:function(n){var i=e.defer(),r=e.defer(),o=!1;return t.bluetoothSerial.connect(n,(function(){o=!0,i.resolve(r)}),(function(e){!1===o&&r.reject(e),i.reject(e)})),i.promise},connectInsecure:function(n){var i=e.defer();return t.bluetoothSerial.connectInsecure(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},disconnect:function(){var n=e.defer();return t.bluetoothSerial.disconnect((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},list:function(){var n=e.defer();return t.bluetoothSerial.list((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},discoverUnpaired:function(){var n=e.defer();return t.bluetoothSerial.discoverUnpaired((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},setDeviceDiscoveredListener:function(){var n=e.defer();return t.bluetoothSerial.setDeviceDiscoveredListener((function(e){n.notify(e)})),n.promise},clearDeviceDiscoveredListener:function(){t.bluetoothSerial.clearDeviceDiscoveredListener()},showBluetoothSettings:function(){var n=e.defer();return t.bluetoothSerial.showBluetoothSettings((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},isEnabled:function(){var n=e.defer();return t.bluetoothSerial.isEnabled((function(){n.resolve()}),(function(){n.reject()})),n.promise},enable:function(){var n=e.defer();return t.bluetoothSerial.enable((function(){n.resolve()}),(function(){n.reject()})),n.promise},isConnected:function(){var n=e.defer();return t.bluetoothSerial.isConnected((function(){n.resolve()}),(function(){n.reject()})),n.promise},available:function(){var n=e.defer();return t.bluetoothSerial.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},read:function(){var n=e.defer();return t.bluetoothSerial.read((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},readUntil:function(n){var i=e.defer();return t.bluetoothSerial.readUntil(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},write:function(n){var i=e.defer();return t.bluetoothSerial.write(n,(function(){i.resolve()}),(function(e){i.reject(e)})),i.promise},subscribe:function(n){var i=e.defer();return t.bluetoothSerial.subscribe(n,(function(e){i.notify(e)}),(function(e){i.reject(e)})),i.promise},subscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.subscribeRawData((function(e){n.notify(e)}),(function(e){n.reject(e)})),n.promise},unsubscribe:function(){var n=e.defer();return t.bluetoothSerial.unsubscribe((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},unsubscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.unsubscribeRawData((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},clear:function(){var n=e.defer();return t.bluetoothSerial.clear((function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},readRSSI:function(){var n=e.defer();return t.bluetoothSerial.readRSSI((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.brightness",[]).factory("$cordovaBrightness",["$q","$window",function(e,t){return{get:function(){var n=e.defer();return t.cordova?t.cordova.plugins.brightness.getBrightness((function(e){n.resolve(e)}),(function(e){n.reject(e)})):n.reject("Not supported without cordova.js"),n.promise},set:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setBrightness(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise},setKeepScreenOn:function(n){var i=e.defer();return t.cordova?t.cordova.plugins.brightness.setKeepScreenOn(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})):i.reject("Not supported without cordova.js"),i.promise}}}]),angular.module("ngCordova.plugins.calendar",[]).factory("$cordovaCalendar",["$q","$window",function(e,t){return{createCalendar:function(n){var i=e.defer(),r=t.plugins.calendar.getCreateCalendarOptions();return"string"==typeof n?r.calendarName=n:r=angular.extend(r,n),t.plugins.calendar.createCalendar(r,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteCalendar:function(n){var i=e.defer();return t.plugins.calendar.deleteCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventWithOptions:function(n){var i=e.defer(),r=[],o=window.plugins.calendar.getCalendarOptions(),a={title:null,location:null,notes:null,startDate:null,endDate:null};for(var s in r=Object.keys(a),n)-1===r.indexOf(s)?o[s]=n[s]:a[s]=n[s];return t.plugins.calendar.createEventWithOptions(a.title,a.location,a.notes,new Date(a.startDate),new Date(a.endDate),o,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInteractively:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInteractively(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},createEventInNamedCalendar:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,calendarName:null};return r=angular.extend(r,n),t.plugins.calendar.createEventInNamedCalendar(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.calendarName,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},findEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.findEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},listEventsInRange:function(n,i){var r=e.defer();return t.plugins.calendar.listEventsInRange(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},listCalendars:function(){var n=e.defer();return t.plugins.calendar.listCalendars((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},findAllEventsInNamedCalendar:function(n){var i=e.defer();return t.plugins.calendar.findAllEventsInNamedCalendar(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},modifyEvent:function(n){var i=e.defer(),r={title:null,location:null,notes:null,startDate:null,endDate:null,newTitle:null,newLocation:null,newNotes:null,newStartDate:null,newEndDate:null};return r=angular.extend(r,n),t.plugins.calendar.modifyEvent(r.title,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),r.newTitle,r.newLocation,r.newNotes,new Date(r.newStartDate),new Date(r.newEndDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},deleteEvent:function(n){var i=e.defer(),r={newTitle:null,location:null,notes:null,startDate:null,endDate:null};return r=angular.extend(r,n),t.plugins.calendar.deleteEvent(r.newTitle,r.location,r.notes,new Date(r.startDate),new Date(r.endDate),(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.camera",[]).factory("$cordovaCamera",["$q",function(e){return{getPicture:function(t){var n=e.defer();return navigator.camera?(navigator.camera.getPicture((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},cleanup:function(){var t=e.defer();return navigator.camera.cleanup((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.capture",[]).factory("$cordovaCapture",["$q",function(e){return{captureAudio:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureAudio((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureImage:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureImage((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)},captureVideo:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureVideo((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise):(n.resolve(null),n.promise)}}}]),angular.module("ngCordova.plugins.cardIO",[]).provider("$cordovaNgCardIO",[function(){var e=["card_type","redacted_card_number","card_number","expiry_month","expiry_year","short_expiry_year","cvv","zip"],t={expiry:!0,cvv:!0,zip:!1,suppressManual:!1,suppressConfirm:!1,hideLogo:!0};this.setCardIOResponseFields=function(t){t&&angular.isArray(t)&&(e=t)},this.setScanerConfig=function(e){e&&angular.isObject(e)&&(t.expiry=e.expiry||!0,t.cvv=e.cvv||!0,t.zip=e.zip||!1,t.suppressManual=e.suppressManual||!1,t.suppressConfirm=e.suppressConfirm||!1,t.hideLogo=e.hideLogo||!0)},this.$get=["$q",function(n){return{scanCard:function(){var i=n.defer();return CardIO.scan(t,(function(t){if(null===t)i.reject(null);else{for(var n={},r=0,o=e.length;o>r;r++){var a=e[r];n[a]="short_expiry_year"===a?String(t.expiry_year).substr(2,2)||"":t[a]||""}i.resolve(n)}}),(function(){i.reject(null)})),i.promise}}}]}]),angular.module("ngCordova.plugins.clipboard",[]).factory("$cordovaClipboard",["$q","$window",function(e,t){return{copy:function(n){var i=e.defer();return t.cordova.plugins.clipboard.copy(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},paste:function(){var n=e.defer();return t.cordova.plugins.clipboard.paste((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.contacts",[]).factory("$cordovaContacts",["$q",function(e){return{save:function(t){var n=e.defer();return navigator.contacts.create(t).save((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},remove:function(t){var n=e.defer();return navigator.contacts.create(t).remove((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},clone:function(e){return navigator.contacts.create(e).clone(e)},find:function(t){var n=e.defer(),i=t.fields||["id","displayName"];return delete t.fields,0===Object.keys(t).length?navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)})):navigator.contacts.find(i,(function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},pickContact:function(){var t=e.defer();return navigator.contacts.pickContact((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.datePicker",[]).factory("$cordovaDatePicker",["$window","$q",function(e,t){return{show:function(n){var i=t.defer();return n=n||{date:new Date,mode:"date"},e.datePicker.show(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.device",[]).factory("$cordovaDevice",[function(){return{getDevice:function(){return device},getCordova:function(){return device.cordova},getModel:function(){return device.model},getName:function(){return device.name},getPlatform:function(){return device.platform},getUUID:function(){return device.uuid},getVersion:function(){return device.version},getManufacturer:function(){return device.manufacturer}}}]),angular.module("ngCordova.plugins.deviceMotion",[]).factory("$cordovaDeviceMotion",["$q",function(e){return{getCurrentAcceleration:function(){var t=e.defer();return angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.getCurrentAcceleration)?(t.reject("Device do not support watchAcceleration"),t.promise):(navigator.accelerometer.getCurrentAcceleration((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise)},watchAcceleration:function(t){var n=e.defer();if(angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.watchAcceleration))return n.reject("Device do not support watchAcceleration"),n.promise;var i=navigator.accelerometer.watchAcceleration((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.accelerometer.clearWatch(i)},n.promise.clearWatch=function(e){navigator.accelerometer.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.accelerometer.clearWatch(e)}}}]),angular.module("ngCordova.plugins.deviceOrientation",[]).factory("$cordovaDeviceOrientation",["$q",function(e){var t={frequency:3e3};return{getCurrentHeading:function(){var t=e.defer();return navigator.compass?(navigator.compass.getCurrentHeading((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise):(t.reject("No compass on Device"),t.promise)},watchHeading:function(n){var i=e.defer();if(!navigator.compass)return i.reject("No compass on Device"),i.promise;var r=angular.extend(t,n),o=navigator.compass.watchHeading((function(e){i.notify(e)}),(function(e){i.reject(e)}),r);return i.promise.cancel=function(){navigator.compass.clearWatch(o)},i.promise.clearWatch=function(e){navigator.compass.clearWatch(e||o)},i.promise.watchID=o,i.promise},clearWatch:function(e){return navigator.compass.clearWatch(e)}}}]),angular.module("ngCordova.plugins.dialogs",[]).factory("$cordovaDialogs",["$q","$window",function(e,t){return{alert:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.alert(n,(function(){o.resolve()}),i,r):(t.alert(n),o.resolve()),o.promise},confirm:function(n,i,r){var o=e.defer();return t.navigator.notification?navigator.notification.confirm(n,(function(e){o.resolve(e)}),i,r):t.confirm(n)?o.resolve(1):o.resolve(2),o.promise},prompt:function(n,i,r,o){var a=e.defer();if(t.navigator.notification)navigator.notification.prompt(n,(function(e){a.resolve(e)}),i,r,o);else{var s=t.prompt(n,o);null!==s?a.resolve({input1:s,buttonIndex:1}):a.resolve({input1:s,buttonIndex:2})}return a.promise},beep:function(e){return navigator.notification.beep(e)},activityStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStart(n,t),i.resolve()):i.reject(t,n),i.promise},activityStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStop(),t.resolve()):t.reject(),t.promise},progressStart:function(t,n){var i=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStart(n,t),i.resolve()):i.reject(t,n),i.promise},progressStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStop(),t.resolve()):t.reject(),t.promise},progressValue:function(t){var n=e.defer();return"android"===cordova.platformId?(navigator.notification.progressValue(t),n.resolve()):n.reject(t),n.promise}}}]),angular.module("ngCordova.plugins.emailComposer",[]).factory("$cordovaEmailComposer",["$q",function(e){return{isAvailable:function(){var t=e.defer();return cordova.plugins.email.isAvailable((function(e){e?t.resolve():t.reject()})),t.promise},open:function(t){var n=e.defer();return cordova.plugins.email.open(t,(function(){n.reject()})),n.promise},addAlias:function(e,t){cordova.plugins.email.addAlias(e,t)}}}]),angular.module("ngCordova.plugins.facebook",[]).provider("$cordovaFacebook",[function(){this.browserInit=function(e,t){this.appID=e,this.appVersion=t||"v2.0",facebookConnectPlugin.browserInit(this.appID,this.appVersion)},this.$get=["$q",function(e){return{login:function(t){var n=e.defer();return facebookConnectPlugin.login(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},showDialog:function(t){var n=e.defer();return facebookConnectPlugin.showDialog(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},api:function(t,n){var i=e.defer();return facebookConnectPlugin.api(t,n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},getAccessToken:function(){var t=e.defer();return facebookConnectPlugin.getAccessToken((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLoginStatus:function(){var t=e.defer();return facebookConnectPlugin.getLoginStatus((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},logout:function(){var t=e.defer();return facebookConnectPlugin.logout((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]}]),angular.module("ngCordova.plugins.facebookAds",[]).factory("$cordovaFacebookAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FacebookAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FacebookAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FacebookAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FacebookAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FacebookAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FacebookAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FacebookAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FacebookAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.file",[]).constant("$cordovaFileError",{1:"NOT_FOUND_ERR",2:"SECURITY_ERR",3:"ABORT_ERR",4:"NOT_READABLE_ERR",5:"ENCODING_ERR",6:"NO_MODIFICATION_ALLOWED_ERR",7:"INVALID_STATE_ERR",8:"SYNTAX_ERR",9:"INVALID_MODIFICATION_ERR",10:"QUOTA_EXCEEDED_ERR",11:"TYPE_MISMATCH_ERR",12:"PATH_EXISTS_ERR"}).provider("$cordovaFile",[function(){this.$get=["$q","$window","$cordovaFileError",function(e,t,n){return{getFreeDiskSpace:function(){var t=e.defer();return cordova.exec((function(e){t.resolve(e)}),(function(e){t.reject(e)}),"File","getFreeDiskSpace",[]),t.promise},checkDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isDirectory?o.resolve(e):o.reject({code:13,message:"input is not a directory"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},checkFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){!0===e.isFile?o.resolve(e):o.reject({code:13,message:"input is not a file"})}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},createDir:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("directory cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},createFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");var s={create:!0,exclusive:o=!o};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,s,(function(e){a.resolve(e)}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},removeDir:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeFile:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.remove((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeRecursively:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1},(function(e){e.removeRecursively((function(){o.resolve({success:!0,fileRemoved:e})}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},writeFile:function(i,r,o,a){var s=e.defer();/^\//.test(r)&&s.reject("file-name cannot start with /");var l={create:!0,exclusive:a=!a};try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,l,(function(e){e.createWriter((function(e){!0===l.append&&e.seek(e.length),l.truncate&&e.truncate(l.truncate),e.onwriteend=function(e){this.error?s.reject(this.error):s.resolve(e)},e.write(o),s.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},writeExistingFile:function(i,r,o){var a=e.defer();/^\//.test(r)&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.createWriter((function(e){e.seek(e.length),e.onwriteend=function(e){this.error?a.reject(this.error):a.resolve(e)},e.write(o),a.promise.abort=function(){e.abort()}}))}),(function(e){e.message=n[e.code],a.reject(e)}))}),(function(e){e.message=n[e.code],a.reject(e)}))}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},readAsText:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsText(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsDataURL:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsDataURL(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsBinaryString:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsBinaryString(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsArrayBuffer:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1},(function(e){e.file((function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsArrayBuffer(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},moveFile:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getFile(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},moveDir:function(n,i,r,o){var a=e.defer();o=o||i,(/^\//.test(i)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,(function(e){e.getDirectory(i,{create:!1},(function(e){t.resolveLocalFileSystemURL(r,(function(t){e.moveTo(t,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}),(function(e){a.reject(e)}))}catch(e){a.reject(e)}return a.promise},copyDir:function(i,r,o,a){var s=e.defer();a=a||r,(/^\//.test(r)||/^\//.test(a))&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getDirectory(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},copyFile:function(i,r,o,a){var s=e.defer();a=a||r,/^\//.test(r)&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(i,(function(e){e.getFile(r,{create:!1,exclusive:!1},(function(e){t.resolveLocalFileSystemURL(o,(function(t){e.copyTo(t,a,(function(e){s.resolve(e)}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}),(function(e){e.message=n[e.code],s.reject(e)}))}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},readFileMetadata:function(i,r){var o=e.defer();/^\//.test(r)&&o.reject("directory cannot start with /");try{var a=i+r;t.resolveLocalFileSystemURL(a,(function(e){e.file((function(e){o.resolve(e)}),(function(e){e.message=n[e.code],o.reject(e)}))}),(function(e){e.message=n[e.code],o.reject(e)}))}catch(e){e.message=n[e.code],o.reject(e)}return o.promise}}}]}]),angular.module("ngCordova.plugins.fileOpener2",[]).factory("$cordovaFileOpener2",["$q",function(e){return{open:function(t,n){var i=e.defer();return cordova.plugins.fileOpener2.open(t,n,{error:function(e){i.reject(e)},success:function(){i.resolve()}}),i.promise},uninstall:function(t){var n=e.defer();return cordova.plugins.fileOpener2.uninstall(t,{error:function(e){n.reject(e)},success:function(){n.resolve()}}),n.promise},appIsInstalled:function(t){var n=e.defer();return cordova.plugins.fileOpener2.appIsInstalled(t,{success:function(e){n.resolve(e)}}),n.promise}}}]),angular.module("ngCordova.plugins.fileTransfer",[]).factory("$cordovaFileTransfer",["$q","$timeout",function(e,t){return{download:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.download(l,i,a.resolve,a.reject,o,r),a.promise},upload:function(n,i,r,o){var a=e.defer(),s=new FileTransfer,l=r&&!1===r.encodeURI?n:encodeURI(n);return r&&void 0!==r.timeout&&null!==r.timeout&&(t((function(){s.abort()}),r.timeout),r.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.upload(i,l,a.resolve,a.reject,r,o),a.promise}}}]),angular.module("ngCordova.plugins.flashlight",[]).factory("$cordovaFlashlight",["$q","$window",function(e,t){return{available:function(){var n=e.defer();return t.plugins.flashlight.available((function(e){n.resolve(e)})),n.promise},switchOn:function(){var n=e.defer();return t.plugins.flashlight.switchOn((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},switchOff:function(){var n=e.defer();return t.plugins.flashlight.switchOff((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},toggle:function(){var n=e.defer();return t.plugins.flashlight.toggle((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.flurryAds",[]).factory("$cordovaFlurryAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.FlurryAds.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.FlurryAds.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.FlurryAds.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.FlurryAds.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.FlurryAds.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.FlurryAds.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.FlurryAds.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.FlurryAds.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.ga",[]).factory("$cordovaGA",["$q","$window",function(e,t){return{init:function(n,i){var r=e.defer();return i=i>=0?i:10,t.plugins.gaPlugin.init((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n,i),r.promise},trackEvent:function(n,i,r,o,a,s){var l=e.defer();return t.plugins.gaPlugin.trackEvent((function(e){l.resolve(e)}),(function(e){l.reject(e)}),r,o,a,s),l.promise},trackPage:function(n,i,r){var o=e.defer();return t.plugins.gaPlugin.trackPage((function(e){o.resolve(e)}),(function(e){o.reject(e)}),r),o.promise},setVariable:function(n,i,r,o){var a=e.defer();return t.plugins.gaPlugin.setVariable((function(e){a.resolve(e)}),(function(e){a.reject(e)}),r,o),a.promise},exit:function(){var n=e.defer();return t.plugins.gaPlugin.exit((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.geolocation",[]).factory("$cordovaGeolocation",["$q",function(e){return{getCurrentPosition:function(t){var n=e.defer();return navigator.geolocation.getCurrentPosition((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},watchPosition:function(t){var n=e.defer(),i=navigator.geolocation.watchPosition((function(e){n.notify(e)}),(function(e){n.reject(e)}),t);return n.promise.cancel=function(){navigator.geolocation.clearWatch(i)},n.promise.clearWatch=function(e){navigator.geolocation.clearWatch(e||i)},n.promise.watchID=i,n.promise},clearWatch:function(e){return navigator.geolocation.clearWatch(e)}}}]),angular.module("ngCordova.plugins.globalization",[]).factory("$cordovaGlobalization",["$q",function(e){return{getPreferredLanguage:function(){var t=e.defer();return navigator.globalization.getPreferredLanguage((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getLocaleName:function(){var t=e.defer();return navigator.globalization.getLocaleName((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getFirstDayOfWeek:function(){var t=e.defer();return navigator.globalization.getFirstDayOfWeek((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},dateToString:function(t,n){var i=e.defer();return navigator.globalization.dateToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToDate:function(t,n){var i=e.defer();return navigator.globalization.stringToDate(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getDatePattern:function(t){var n=e.defer();return navigator.globalization.getDatePattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getDateNames:function(t){var n=e.defer();return navigator.globalization.getDateNames((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},isDayLightSavingsTime:function(t){var n=e.defer();return navigator.globalization.isDayLightSavingsTime(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},numberToString:function(t,n){var i=e.defer();return navigator.globalization.numberToString(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},stringToNumber:function(t,n){var i=e.defer();return navigator.globalization.stringToNumber(t,(function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},getNumberPattern:function(t){var n=e.defer();return navigator.globalization.getNumberPattern((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},getCurrencyPattern:function(t){var n=e.defer();return navigator.globalization.getCurrencyPattern(t,(function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.googleAds",[]).factory("$cordovaGoogleAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.AdMob.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.AdMob.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.AdMob.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.AdMob.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.AdMob.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.AdMob.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.AdMob.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.AdMob.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.googleAnalytics",[]).factory("$cordovaGoogleAnalytics",["$q","$window",function(e,t){return{startTrackerWithId:function(n){var i=e.defer();return t.analytics.startTrackerWithId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setUserId:function(n){var i=e.defer();return t.analytics.setUserId(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},debugMode:function(){var n=e.defer();return t.analytics.debugMode((function(e){n.resolve(e)}),(function(){n.reject()})),n.promise},trackView:function(n){var i=e.defer();return t.analytics.trackView(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},addCustomDimension:function(n,i){var r=e.defer(),o=parseInt(n,10);return isNaN(o)&&r.reject('Parameter "key" must be an integer.'),t.analytics.addCustomDimension(o,i,(function(){r.resolve()}),(function(e){r.reject(e)})),r.promise},trackEvent:function(n,i,r,o){var a=e.defer();return t.analytics.trackEvent(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},trackException:function(n,i){var r=e.defer();return t.analytics.trackException(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},trackTiming:function(n,i,r,o){var a=e.defer();return t.analytics.trackTiming(n,i,r,o,(function(e){a.resolve(e)}),(function(e){a.reject(e)})),a.promise},addTransaction:function(n,i,r,o,a,s){var l=e.defer();return t.analytics.addTransaction(n,i,r,o,a,s,(function(e){l.resolve(e)}),(function(e){l.reject(e)})),l.promise},addTransactionItem:function(n,i,r,o,a,s,l){var u=e.defer();return t.analytics.addTransactionItem(n,i,r,o,a,s,l,(function(e){u.resolve(e)}),(function(e){u.reject(e)})),u.promise}}}]),angular.module("ngCordova.plugins.googleMap",[]).factory("$cordovaGoogleMap",["$q","$window",function(e,t){var n=null;return{getMap:function(i){var r=e.defer();if(t.plugin.google.maps){var o=document.getElementById("map_canvas");(n=t.plugin.google.maps.Map.getMap(i)).setDiv(o),r.resolve(n)}else r.reject(null);return r.promise},isMapLoaded:function(){return!!n},addMarker:function(t){var i=e.defer();return n.addMarker(t,(function(e){i.resolve(e)})),i.promise},getMapTypeIds:function(){return t.plugin.google.maps.mapTypeId},setVisible:function(t){var i=e.defer();return n.setVisible(t),i.promise},cleanup:function(){n=null}}}]),angular.module("ngCordova.plugins.googlePlayGame",[]).factory("$cordovaGooglePlayGame",["$q",function(e){return{auth:function(){var t=e.defer();return googleplaygame.auth((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},signout:function(){var t=e.defer();return googleplaygame.signout((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},isSignedIn:function(){var t=e.defer();return googleplaygame.isSignedIn((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showPlayer:function(){var t=e.defer();return googleplaygame.showPlayer((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},submitScore:function(t){var n=e.defer();return googleplaygame.submitScore(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAllLeaderboards:function(){var t=e.defer();return googleplaygame.showAllLeaderboards((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise},showLeaderboard:function(t){var n=e.defer();return googleplaygame.showLeaderboard(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},unlockAchievement:function(t){var n=e.defer();return googleplaygame.unlockAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},incrementAchievement:function(t){var n=e.defer();return googleplaygame.incrementAchievement(t,(function(e){return n.resolve(e)}),(function(e){return n.reject(e)})),n.promise},showAchievements:function(){var t=e.defer();return googleplaygame.showAchievements((function(e){return t.resolve(e)}),(function(e){return t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.googlePlus",[]).factory("$cordovaGooglePlus",["$q","$window",function(e,t){return{login:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.login({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},silentLogin:function(n){var i=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.trySilentLogin({iOSApiKey:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},logout:function(){var n=e.defer();t.plugins.googleplus.logout((function(e){n.resolve(e)}))},disconnect:function(){var n=e.defer();t.plugins.googleplus.disconnect((function(e){n.resolve(e)}))},isAvailable:function(){var n=e.defer();return t.plugins.googleplus.isAvailable((function(e){e?n.resolve(e):n.reject(e)})),n.promise}}}]),angular.module("ngCordova.plugins.healthKit",[]).factory("$cordovaHealthKit",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugins.healthkit.available((function(e){n.resolve(e)}),(function(e){n.reject(e)})),n.promise},checkAuthStatus:function(n){var i=e.defer();return n=n||"HKQuantityTypeIdentifierHeight",t.plugins.healthkit.checkAuthStatus({type:n},(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},requestAuthorization:function(n,i){var r=e.defer();return n=n||["HKCharacteristicTypeIdentifierDateOfBirth","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight"],i=i||["HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierDistanceCycling"],t.plugins.healthkit.requestAuthorization({readTypes:n,writeTypes:i},(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},readDateOfBirth:function(){var n=e.defer();return t.plugins.healthkit.readDateOfBirth((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},readGender:function(){var n=e.defer();return t.plugins.healthkit.readGender((function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveWeight({unit:i||"lb",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readWeight:function(n){var i=e.defer();return t.plugins.healthkit.readWeight({unit:n||"lb"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},saveHeight:function(n,i,r){var o=e.defer();return t.plugins.healthkit.saveHeight({unit:i||"in",amount:n,date:r||new Date},(function(e){o.resolve(e)}),(function(e){o.resolve(e)})),o.promise},readHeight:function(n){var i=e.defer();return t.plugins.healthkit.readHeight({unit:n||"in"},(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},findWorkouts:function(){var n=e.defer();return t.plugins.healthkit.findWorkouts({},(function(e){n.resolve(e)}),(function(e){n.resolve(e)})),n.promise},saveWorkout:function(n){var i=e.defer();return t.plugins.healthkit.saveWorkout(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise},querySampleType:function(n){var i=e.defer();return t.plugins.healthkit.querySampleType(n,(function(e){i.resolve(e)}),(function(e){i.resolve(e)})),i.promise}}}]),angular.module("ngCordova.plugins.httpd",[]).factory("$cordovaHttpd",["$q",function(e){return{startServer:function(t){var n=e.defer();return cordova.plugins.CorHttpd.startServer(t,(function(){n.resolve()}),(function(){n.reject()})),n.promise},stopServer:function(){var t=e.defer();return cordova.plugins.CorHttpd.stopServer((function(){t.resolve()}),(function(){t.reject()})),t.promise},getURL:function(){var t=e.defer();return cordova.plugins.CorHttpd.getURL((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise},getLocalPath:function(){var t=e.defer();return cordova.plugins.CorHttpd.getLocalPath((function(e){t.resolve(e)}),(function(){t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.iAd",[]).factory("$cordovaiAd",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.iAd.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.iAd.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.iAd.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.iAd.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.iAd.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.iAd.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.iAd.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.iAd.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.imagePicker",[]).factory("$cordovaImagePicker",["$q","$window",function(e,t){return{getPictures:function(n){var i=e.defer();return t.imagePicker.getPictures((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.inAppBrowser",[]).provider("$cordovaInAppBrowser",[function(){var e,t=this.defaultOptions={};this.setDefaultOptions=function(e){t=angular.extend(t,e)},this.$get=["$rootScope","$q","$window","$timeout",function(n,i,r,o){return{open:function(a,s,l){var u=i.defer();if(l&&!angular.isObject(l))return u.reject("options must be an object"),u.promise;var c=angular.extend({},t,l),d=[];angular.forEach(c,(function(e,t){d.push(t+"="+e)}));var h=d.join();return(e=r.open(a,s,h)).addEventListener("loadstart",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:loadstart",e)}))}),!1),e.addEventListener("loadstop",(function(e){u.resolve(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loadstop",e)}))}),!1),e.addEventListener("loaderror",(function(e){u.reject(e),o((function(){n.$broadcast("$cordovaInAppBrowser:loaderror",e)}))}),!1),e.addEventListener("exit",(function(e){o((function(){n.$broadcast("$cordovaInAppBrowser:exit",e)}))}),!1),u.promise},close:function(){e.close(),e=null},show:function(){e.show()},executeScript:function(t){var n=i.defer();return e.executeScript(t,(function(e){n.resolve(e)})),n.promise},insertCSS:function(t){var n=i.defer();return e.insertCSS(t,(function(e){n.resolve(e)})),n.promise}}}]}]),angular.module("ngCordova.plugins.insomnia",[]).factory("$cordovaInsomnia",["$window",function(e){return{keepAwake:function(){return e.plugins.insomnia.keepAwake()},allowSleepAgain:function(){return e.plugins.insomnia.allowSleepAgain()}}}]),angular.module("ngCordova.plugins.instagram",[]).factory("$cordovaInstagram",["$q",function(e){return{share:function(t){var n=e.defer();return window.Instagram?(Instagram.share(t.image,t.caption,(function(e){e?n.reject(e):n.resolve(!0)})),n.promise):(console.error("Tried to call Instagram.share but the Instagram plugin isn't installed!"),n.resolve(null),n.promise)},isInstalled:function(){var t=e.defer();return window.Instagram?(Instagram.isInstalled((function(e,n){e?t.reject(e):t.resolve(n)})),t.promise):(console.error("Tried to call Instagram.isInstalled but the Instagram plugin isn't installed!"),t.resolve(null),t.promise)}}}]),angular.module("ngCordova.plugins.keyboard",[]).factory("$cordovaKeyboard",["$rootScope",function(e){var t=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:show")}))},n=function(){e.$evalAsync((function(){e.$broadcast("$cordovaKeyboard:hide")}))};return document.addEventListener("deviceready",(function(){cordova.plugins.Keyboard&&(window.addEventListener("native.keyboardshow",t,!1),window.addEventListener("native.keyboardhide",n,!1))})),{hideAccessoryBar:function(e){return cordova.plugins.Keyboard.hideKeyboardAccessoryBar(e)},close:function(){return cordova.plugins.Keyboard.close()},show:function(){return cordova.plugins.Keyboard.show()},disableScroll:function(e){return cordova.plugins.Keyboard.disableScroll(e)},isVisible:function(){return cordova.plugins.Keyboard.isVisible},clearShowWatch:function(){document.removeEventListener("native.keyboardshow",t),e.$$listeners["$cordovaKeyboard:show"]=[]},clearHideWatch:function(){document.removeEventListener("native.keyboardhide",n),e.$$listeners["$cordovaKeyboard:hide"]=[]}}}]),angular.module("ngCordova.plugins.keychain",[]).factory("$cordovaKeychain",["$q",function(e){return{getForKey:function(t,n){var i=e.defer();return(new Keychain).getForKey(i.resolve,i.reject,t,n),i.promise},setForKey:function(t,n,i){var r=e.defer();return(new Keychain).setForKey(r.resolve,r.reject,t,n,i),r.promise},removeForKey:function(t,n){var i=e.defer();return(new Keychain).removeForKey(i.resolve,i.reject,t,n),i.promise}}}]),angular.module("ngCordova.plugins.launchNavigator",[]).factory("$cordovaLaunchNavigator",["$q",function(e){return{navigate:function(t,n,i){var r=e.defer();return launchnavigator.navigate(t,n,(function(){r.resolve()}),(function(e){r.reject(e)}),i),r.promise}}}]),angular.module("ngCordova.plugins.localNotification",[]).factory("$cordovaLocalNotification",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return document.addEventListener("deviceready",(function(){t.cordova&&t.cordova.plugins&&t.cordova.plugins.notification&&t.cordova.plugins.notification.local&&(t.cordova.plugins.notification.local.on("schedule",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:schedule",e,t)}))})),t.cordova.plugins.notification.local.on("trigger",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:trigger",e,t)}))})),t.cordova.plugins.notification.local.on("update",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:update",e,t)}))})),t.cordova.plugins.notification.local.on("clear",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:clear",e,t)}))})),t.cordova.plugins.notification.local.on("clearall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:clearall",e)}))})),t.cordova.plugins.notification.local.on("cancel",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:cancel",e,t)}))})),t.cordova.plugins.notification.local.on("cancelall",(function(e){i((function(){n.$broadcast("$cordovaLocalNotification:cancelall",e)}))})),t.cordova.plugins.notification.local.on("click",(function(e,t){i((function(){n.$broadcast("$cordovaLocalNotification:click",e,t)}))})))}),!1),{schedule:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},add:function(n,i){console.warn('Deprecated: use "schedule" instead.');var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.schedule(n,(function(e){r.resolve(e)}),i),r.promise},update:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.update(n,(function(e){r.resolve(e)}),i),r.promise},clear:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.clear(n,(function(e){r.resolve(e)}),i),r.promise},clearAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.clearAll((function(e){i.resolve(e)}),n),i.promise},cancel:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.cancel(n,(function(e){r.resolve(e)}),i),r.promise},cancelAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.cancelAll((function(e){i.resolve(e)}),n),i.promise},isPresent:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isPresent(n,(function(e){r.resolve(e)}),i),r.promise},isScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isScheduled(n,(function(e){r.resolve(e)}),i),r.promise},isTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.isTriggered(n,(function(e){r.resolve(e)}),i),r.promise},hasPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.hasPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},registerPermission:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},promptForPermission:function(n){console.warn('Deprecated: use "registerPermission" instead.');var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission((function(e){e?i.resolve(e):i.reject(e)}),n),i.promise},getAllIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllIds((function(e){i.resolve(e)}),n),i.promise},getIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getIds((function(e){i.resolve(e)}),n),i.promise},getScheduledIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getScheduledIds((function(e){i.resolve(e)}),n),i.promise},getTriggeredIds:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getTriggeredIds((function(e){i.resolve(e)}),n),i.promise},get:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.get(n,(function(e){r.resolve(e)}),i),r.promise},getAll:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAll((function(e){i.resolve(e)}),n),i.promise},getScheduled:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getScheduled(n,(function(e){r.resolve(e)}),i),r.promise},getAllScheduled:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllScheduled((function(e){i.resolve(e)}),n),i.promise},getTriggered:function(n,i){var r=e.defer();return i=i||null,t.cordova.plugins.notification.local.getTriggered(n,(function(e){r.resolve(e)}),i),r.promise},getAllTriggered:function(n){var i=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllTriggered((function(e){i.resolve(e)}),n),i.promise},getDefaults:function(){return t.cordova.plugins.notification.local.getDefaults()},setDefaults:function(e){t.cordova.plugins.notification.local.setDefaults(e)}}}]),angular.module("ngCordova.plugins.mMediaAds",[]).factory("$cordovaMMediaAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.mMedia.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.mMedia.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.mMedia.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.mMedia.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.mMedia.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.mMedia.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.mMedia.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.mMedia.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.media",[]).service("NewMedia",["$q","$interval",function(e,t){function n(e){angular.isDefined(u)||(u=t((function(){0>h&&(h=e.getDuration(),a&&h>0&&a.notify({duration:h})),e.getCurrentPosition((function(e){e>-1&&(d=e)}),(function(e){alert("Error getting pos="+e)})),a&&a.notify({position:d})}),1e3))}function i(){angular.isDefined(u)&&(t.cancel(u),u=void 0)}function r(){d=-1,h=-1}function o(e){this.media=new Media(e,(function(e){i(),r(),a.resolve(e)}),(function(e){i(),r(),a.reject(e)}),(function(e){c=e,a.notify({status:c})}))}var a,s,l,u,c=null,d=-1,h=-1;return o.prototype.play=function(t){return a=e.defer(),"object"!=typeof t&&(t={}),this.media.play(t),n(this.media),a.promise},o.prototype.pause=function(){i(),this.media.pause()},o.prototype.stop=function(){this.media.stop()},o.prototype.release=function(){this.media.release(),this.media=void 0},o.prototype.seekTo=function(e){this.media.seekTo(e)},o.prototype.setVolume=function(e){this.media.setVolume(e)},o.prototype.startRecord=function(){this.media.startRecord()},o.prototype.stopRecord=function(){this.media.stopRecord()},o.prototype.currentTime=function(){return s=e.defer(),this.media.getCurrentPosition((function(e){s.resolve(e)})),s.promise},o.prototype.getDuration=function(){return l=e.defer(),this.media.getDuration((function(e){l.resolve(e)})),l.promise},o}]).factory("$cordovaMedia",["NewMedia",function(e){return{newMedia:function(t){return new e(t)}}}]),angular.module("ngCordova.plugins.mobfoxAds",[]).factory("$cordovaMobFoxAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MobFox.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MobFox.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MobFox.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MobFox.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MobFox.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MobFox.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MobFox.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MobFox.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins",["ngCordova.plugins.3dtouch","ngCordova.plugins.actionSheet","ngCordova.plugins.adMob","ngCordova.plugins.appAvailability","ngCordova.plugins.appRate","ngCordova.plugins.appVersion","ngCordova.plugins.backgroundGeolocation","ngCordova.plugins.badge","ngCordova.plugins.barcodeScanner","ngCordova.plugins.batteryStatus","ngCordova.plugins.beacon","ngCordova.plugins.ble","ngCordova.plugins.bluetoothSerial","ngCordova.plugins.brightness","ngCordova.plugins.calendar","ngCordova.plugins.camera","ngCordova.plugins.capture","ngCordova.plugins.clipboard","ngCordova.plugins.contacts","ngCordova.plugins.datePicker","ngCordova.plugins.device","ngCordova.plugins.deviceMotion","ngCordova.plugins.deviceOrientation","ngCordova.plugins.dialogs","ngCordova.plugins.emailComposer","ngCordova.plugins.facebook","ngCordova.plugins.facebookAds","ngCordova.plugins.file","ngCordova.plugins.fileTransfer","ngCordova.plugins.fileOpener2","ngCordova.plugins.flashlight","ngCordova.plugins.flurryAds","ngCordova.plugins.ga","ngCordova.plugins.geolocation","ngCordova.plugins.globalization","ngCordova.plugins.googleAds","ngCordova.plugins.googleAnalytics","ngCordova.plugins.googleMap","ngCordova.plugins.googlePlayGame","ngCordova.plugins.googlePlus","ngCordova.plugins.healthKit","ngCordova.plugins.httpd","ngCordova.plugins.iAd","ngCordova.plugins.imagePicker","ngCordova.plugins.inAppBrowser","ngCordova.plugins.instagram","ngCordova.plugins.keyboard","ngCordova.plugins.keychain","ngCordova.plugins.launchNavigator","ngCordova.plugins.localNotification","ngCordova.plugins.media","ngCordova.plugins.mMediaAds","ngCordova.plugins.mobfoxAds","ngCordova.plugins.mopubAds","ngCordova.plugins.nativeAudio","ngCordova.plugins.network","ngCordova.plugins.pinDialog","ngCordova.plugins.preferences","ngCordova.plugins.printer","ngCordova.plugins.progressIndicator","ngCordova.plugins.push","ngCordova.plugins.push_v5","ngCordova.plugins.sms","ngCordova.plugins.socialSharing","ngCordova.plugins.spinnerDialog","ngCordova.plugins.splashscreen","ngCordova.plugins.sqlite","ngCordova.plugins.statusbar","ngCordova.plugins.toast","ngCordova.plugins.touchid","ngCordova.plugins.vibration","ngCordova.plugins.videoCapturePlus","ngCordova.plugins.zip","ngCordova.plugins.insomnia"]),angular.module("ngCordova.plugins.mopubAds",[]).factory("$cordovaMoPubAds",["$q","$window",function(e,t){return{setOptions:function(n){var i=e.defer();return t.MoPub.setOptions(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},createBanner:function(n){var i=e.defer();return t.MoPub.createBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},removeBanner:function(){var n=e.defer();return t.MoPub.removeBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},showBanner:function(n){var i=e.defer();return t.MoPub.showBanner(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showBannerAtXY:function(n,i){var r=e.defer();return t.MoPub.showBannerAtXY(n,i,(function(){r.resolve()}),(function(){r.reject()})),r.promise},hideBanner:function(){var n=e.defer();return t.MoPub.hideBanner((function(){n.resolve()}),(function(){n.reject()})),n.promise},prepareInterstitial:function(n){var i=e.defer();return t.MoPub.prepareInterstitial(n,(function(){i.resolve()}),(function(){i.reject()})),i.promise},showInterstitial:function(){var n=e.defer();return t.MoPub.showInterstitial((function(){n.resolve()}),(function(){n.reject()})),n.promise}}}]),angular.module("ngCordova.plugins.nativeAudio",[]).factory("$cordovaNativeAudio",["$q","$window",function(e,t){return{preloadSimple:function(n,i){var r=e.defer();return t.plugins.NativeAudio.preloadSimple(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise},preloadComplex:function(n,i,r,o,a){var s=e.defer();return t.plugins.NativeAudio.preloadComplex(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},play:function(n,i){var r=e.defer();return t.plugins.NativeAudio.play(n,(function(e){r.resolve(e)}),(function(e){r.reject(e)}),i),r.promise},stop:function(n){var i=e.defer();return t.plugins.NativeAudio.stop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},loop:function(n){var i=e.defer();return t.plugins.NativeAudio.loop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},unload:function(n){var i=e.defer();return t.plugins.NativeAudio.unload(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},setVolumeForComplexAsset:function(n,i){var r=e.defer();return t.plugins.NativeAudio.setVolumeForComplexAsset(n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.network",[]).factory("$cordovaNetwork",["$rootScope","$timeout",function(e,t){var n=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:offline",n)}))},i=function(){var n=navigator.connection.type;t((function(){e.$broadcast("$cordovaNetwork:online",n)}))};return document.addEventListener("deviceready",(function(){navigator.connection&&(document.addEventListener("offline",n,!1),document.addEventListener("online",i,!1))})),{getNetwork:function(){return navigator.connection.type},isOnline:function(){var e=navigator.connection.type;return e!==Connection.UNKNOWN&&e!==Connection.NONE},isOffline:function(){var e=navigator.connection.type;return e===Connection.UNKNOWN||e===Connection.NONE},clearOfflineWatch:function(){document.removeEventListener("offline",n),e.$$listeners["$cordovaNetwork:offline"]=[]},clearOnlineWatch:function(){document.removeEventListener("online",i),e.$$listeners["$cordovaNetwork:online"]=[]}}}]).run(["$injector",function(e){e.get("$cordovaNetwork")}]),angular.module("ngCordova.plugins.pinDialog",[]).factory("$cordovaPinDialog",["$q","$window",function(e,t){return{prompt:function(n,i,r){var o=e.defer();return t.plugins.pinDialog.prompt(n,(function(e){o.resolve(e)}),i,r),o.promise}}}]),angular.module("ngCordova.plugins.preferences",[]).factory("$cordovaPreferences",["$window","$q",function(e,t){return{pluginNotEnabledMessage:"Plugin not enabled",decoratePromise:function(e){e.success=function(t){return e.then(t),e},e.error=function(t){return e.then(null,t),e}},store:function(n,i,r){function o(e){s.resolve(e)}function a(e){s.reject(new Error(e))}var s=t.defer(),l=s.promise;return e.plugins?(3===arguments.length?e.plugins.appPreferences.store(r,n,i):e.plugins.appPreferences.store(n,i)).then(o,a):s.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(l),l},fetch:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.fetch(i,n):e.plugins.appPreferences.fetch(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},remove:function(n,i){function r(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;return e.plugins?(2===arguments.length?e.plugins.appPreferences.remove(i,n):e.plugins.appPreferences.remove(n)).then(r,o):a.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(s),s},show:function(){var n=t.defer(),i=n.promise;return e.plugins?e.plugins.appPreferences.show().then((function(e){n.resolve(e)}),(function(e){n.reject(new Error(e))})):n.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(i),i}}}]),angular.module("ngCordova.plugins.printer",[]).factory("$cordovaPrinter",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugin.printer.isAvailable((function(e){n.resolve(e)})),n.promise},print:function(n,i){var r=e.defer();return t.plugin.printer.print(n,i,(function(){r.resolve()})),r.promise}}}]),angular.module("ngCordova.plugins.progressIndicator",[]).factory("$cordovaProgress",[function(){return{show:function(e){var t=e||"Please wait...";return ProgressIndicator.show(t)},showSimple:function(e){var t=e||!1;return ProgressIndicator.showSimple(t)},showSimpleWithLabel:function(e,t){var n=e||!1,i=t||"Loading...";return ProgressIndicator.showSimpleWithLabel(n,i)},showSimpleWithLabelDetail:function(e,t,n){var i=e||!1,r=t||"Loading...",o=n||"Please wait";return ProgressIndicator.showSimpleWithLabelDetail(i,r,o)},showDeterminate:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showDeterminate(n,i)},showDeterminateWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showDeterminateWithLabel(i,r,o)},showAnnular:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showAnnular(n,i)},showAnnularWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showAnnularWithLabel(i,r,o)},showBar:function(e,t){var n=e||!1,i=t||5e4;return ProgressIndicator.showBar(n,i)},showBarWithLabel:function(e,t,n){var i=e||!1,r=t||5e4,o=n||"Loading...";return ProgressIndicator.showBarWithLabel(i,r,o)},showSuccess:function(e,t){var n=e||!1,i=t||"Success";return ProgressIndicator.showSuccess(n,i)},showText:function(e,t,n){var i=e||!1,r=t||"Warning",o=n||"center";return ProgressIndicator.showText(i,r,o)},hide:function(){return ProgressIndicator.hide()}}}]),angular.module("ngCordova.plugins.push",[]).factory("$cordovaPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{onNotification:function(e){i((function(){n.$broadcast("$cordovaPush:notificationReceived",e)}))},register:function(n){var i,r=e.defer();return void 0!==n&&void 0===n.ecb&&(i=null===document.querySelector("[ng-app]")?"document.body":"document.querySelector('[ng-app]')",n.ecb="angular.element("+i+").injector().get('$cordovaPush').onNotification"),t.plugins.pushNotification.register((function(e){r.resolve(e)}),(function(e){r.reject(e)}),n),r.promise},unregister:function(n){var i=e.defer();return t.plugins.pushNotification.unregister((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.plugins.pushNotification.setApplicationIconBadgeNumber((function(e){i.resolve(e)}),(function(e){i.reject(e)}),n),i.promise}}}]),angular.module("ngCordova.plugins.push_v5",[]).factory("$cordovaPushV5",["$q","$rootScope","$timeout",function(e,t,n){var i;return{initialize:function(t){var n=e.defer();return i=PushNotification.init(t),n.resolve(i),n.promise},onNotification:function(){n((function(){i.on("notification",(function(e){t.$emit("$cordovaPushV5:notificationReceived",e)}))}))},onError:function(){n((function(){i.on("error",(function(e){t.$emit("$cordovaPushV5:errorOccurred",e)}))}))},register:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.on("registration",(function(e){t.resolve(e.registrationId)})),t.promise},unregister:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.unregister((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},getBadgeNumber:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.getApplicationIconBadgeNumber((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise},setBadgeNumber:function(t){var n=e.defer();return void 0===i?n.reject(new Error("init must be called before any other operation")):i.setApplicationIconBadgeNumber((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t),n.promise},finish:function(){var t=e.defer();return void 0===i?t.reject(new Error("init must be called before any other operation")):i.finish((function(e){t.resolve(e)}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.recentsControl",[]).factory("$cordovaRecents",(function(){return{setColor:function(e){return RecentsControl.setColor(e)},setDescription:function(e){return RecentsControl.setDescription(e)},setOptions:function(e,t){return RecentsControl.setOptions(e,t)}}})),angular.module("ngCordova.plugins.screenshot",[]).factory("$cordovaScreenshot",["$q",function(e){return{captureToFile:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.save((function(e,t){e?o.reject(e):o.resolve(t.filePath)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)},captureToUri:function(t){var n=t||{},i=n.extension||"jpg",r=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.URI((function(e,t){e?o.reject(e):o.resolve(t.URI)}),i,r,n.filename),o.promise):(o.resolve(null),o.promise)}}}]),angular.module("ngCordova.plugins.serial",[]).factory("$cordovaSerial",["$q",function(e){return{requestPermission:function(t){var n=e.defer();return serial.requestPermission(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},open:function(t){var n=e.defer();return serial.open(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},write:function(t){var n=e.defer();return serial.write(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},writeHex:function(t){var n=e.defer();return serial.writeHex(t,(function(){n.resolve()}),(function(e){n.reject(e)})),n.promise},read:function(){var t=e.defer();return serial.read((function(e){var n=new Uint8Array(e);t.resolve(n)}),(function(e){t.reject(e)})),t.promise},registerReadCallback:function(e,t){serial.registerReadCallback((function(t){var n=new Uint8Array(t);e(n)}),t)},close:function(){var t=e.defer();return serial.close((function(){t.resolve()}),(function(e){t.reject(e)})),t.promise}}}]),angular.module("ngCordova.plugins.sms",[]).factory("$cordovaSms",["$q",function(e){return{send:function(t,n,i){var r=e.defer();return sms.send(t,n,i,(function(e){r.resolve(e)}),(function(e){r.reject(e)})),r.promise}}}]),angular.module("ngCordova.plugins.socialSharing",[]).factory("$cordovaSocialSharing",["$q","$window",function(e,t){return{share:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,o=o||null,t.plugins.socialsharing.share(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareWithOptions:function(n){var i=e.defer();return t.plugins.socialsharing.shareWithOptions(n,(function(){i.resolve(!0)}),(function(){i.reject(!1)})),i.promise},shareViaTwitter:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaTwitter(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaWhatsApp:function(n,i,r){var o=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaWhatsApp(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebook:function(n,i,r){var o=e.defer();return n=n||null,i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebook(n,i,r,(function(){o.resolve(!0)}),(function(){o.reject(!1)})),o.promise},shareViaFacebookWithPasteMessageHint:function(n,i,r,o){var a=e.defer();return i=i||null,r=r||null,t.plugins.socialsharing.shareViaFacebookWithPasteMessageHint(n,i,r,o,(function(){a.resolve(!0)}),(function(){a.reject(!1)})),a.promise},shareViaSMS:function(n,i){var r=e.defer();return t.plugins.socialsharing.shareViaSMS(n,i,(function(){r.resolve(!0)}),(function(){r.reject(!1)})),r.promise},shareViaEmail:function(n,i,r,o,a,s){var l=e.defer();return r=r||null,o=o||null,a=a||null,s=s||null,t.plugins.socialsharing.shareViaEmail(n,i,r,o,a,s,(function(){l.resolve(!0)}),(function(){l.reject(!1)})),l.promise},shareVia:function(n,i,r,o,a){var s=e.defer();return i=i||null,r=r||null,o=o||null,a=a||null,t.plugins.socialsharing.shareVia(n,i,r,o,a,(function(){s.resolve(!0)}),(function(){s.reject(!1)})),s.promise},canShareViaEmail:function(){var n=e.defer();return t.plugins.socialsharing.canShareViaEmail((function(){n.resolve(!0)}),(function(){n.reject(!1)})),n.promise},canShareVia:function(n,i,r,o,a){var s=e.defer();return t.plugins.socialsharing.canShareVia(n,i,r,o,a,(function(e){s.resolve(e)}),(function(e){s.reject(e)})),s.promise},available:function(){var t=e.defer();return window.plugins.socialsharing.available((function(e){e?t.resolve():t.reject()})),t.promise}}}]),angular.module("ngCordova.plugins.spinnerDialog",[]).factory("$cordovaSpinnerDialog",["$window",function(e){return{show:function(t,n,i,r){return i=i||!1,e.plugins.spinnerDialog.show(t,n,i,r)},hide:function(){return e.plugins.spinnerDialog.hide()}}}]),angular.module("ngCordova.plugins.splashscreen",[]).factory("$cordovaSplashscreen",[function(){return{hide:function(){return navigator.splashscreen.hide()},show:function(){return navigator.splashscreen.show()}}}]),angular.module("ngCordova.plugins.sqlite",[]).factory("$cordovaSQLite",["$q","$window",function(e,t){return{openDB:function(e,n){return angular.isObject(e)&&!angular.isString(e)?(void 0!==n&&(e.bgType=n),t.sqlitePlugin.openDatabase(e)):t.sqlitePlugin.openDatabase({name:e,bgType:n})},execute:function(t,n,i){var r=e.defer();return t.transaction((function(e){e.executeSql(n,i,(function(e,t){r.resolve(t)}),(function(e,t){r.reject(t)}))})),r.promise},insertCollection:function(t,n,i){var r=e.defer(),o=i.slice(0);return t.transaction((function(e){!function t(){var i=o.splice(0,1)[0];try{e.executeSql(n,i,(function(e,n){0===o.length?r.resolve(n):t()}),(function(e,t){r.reject(t)}))}catch(e){r.reject(e)}}()})),r.promise},nestedExecute:function(t,n,i,r,o){var a=e.defer();return t.transaction((function(e){e.executeSql(n,r,(function(e,t){a.resolve(t),e.executeSql(i,o,(function(e,t){a.resolve(t)}))}))}),(function(e,t){a.reject(t)})),a.promise},deleteDB:function(n){var i=e.defer();return t.sqlitePlugin.deleteDatabase(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise}}}]),angular.module("ngCordova.plugins.statusbar",[]).factory("$cordovaStatusbar",[function(){return{overlaysWebView:function(e){return StatusBar.overlaysWebView(!!e)},STYLES:{DEFAULT:0,LIGHT_CONTENT:1,BLACK_TRANSLUCENT:2,BLACK_OPAQUE:3},style:function(e){switch(e){case 0:return StatusBar.styleDefault();case 1:return StatusBar.styleLightContent();case 2:return StatusBar.styleBlackTranslucent();case 3:return StatusBar.styleBlackOpaque();default:return StatusBar.styleDefault()}},styleColor:function(e){return StatusBar.backgroundColorByName(e)},styleHex:function(e){return StatusBar.backgroundColorByHexString(e)},hide:function(){return StatusBar.hide()},show:function(){return StatusBar.show()},isVisible:function(){return StatusBar.isVisible}}}]),angular.module("ngCordova.plugins.toast",[]).factory("$cordovaToast",["$q","$window",function(e,t){return{showShortTop:function(n){var i=e.defer();return t.plugins.toast.showShortTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortCenter:function(n){var i=e.defer();return t.plugins.toast.showShortCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showShortBottom:function(n){var i=e.defer();return t.plugins.toast.showShortBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongTop:function(n){var i=e.defer();return t.plugins.toast.showLongTop(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongCenter:function(n){var i=e.defer();return t.plugins.toast.showLongCenter(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showLongBottom:function(n){var i=e.defer();return t.plugins.toast.showLongBottom(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},showWithOptions:function(n){var i=e.defer();return t.plugins.toast.showWithOptions(n,(function(e){i.resolve(e)}),(function(e){i.reject(e)})),i.promise},show:function(n,i,r){var o=e.defer();return t.plugins.toast.show(n,i,r,(function(e){o.resolve(e)}),(function(e){o.reject(e)})),o.promise},hide:function(){var n=e.defer();try{t.plugins.toast.hide(),n.resolve()}catch(e){n.reject(e&&e.message)}return n.promise}}}]),angular.module("ngCordova.plugins.touchid",[]).factory("$cordovaTouchID",["$q",function(e){return{checkSupport:function(){var t=e.defer();return window.cordova?touchid.checkSupport((function(e){t.resolve(e)}),(function(e){t.reject(e)})):t.reject("Not supported without cordova.js"),t.promise},authenticate:function(t){var n=e.defer();return window.cordova?touchid.authenticate((function(e){n.resolve(e)}),(function(e){n.reject(e)}),t):n.reject("Not supported without cordova.js"),n.promise}}}]),angular.module("ngCordova.plugins.tts",[]).factory("$cordovaTTS",(function(){return{speak:function(e,t,n){return TTS.speak(e,t,n)}}})),angular.module("ngCordova.plugins.upsPush",[]).factory("$cordovaUpsPush",["$q","$window","$rootScope","$timeout",function(e,t,n,i){return{register:function(r){var o=e.defer();return t.push.register((function(e){i((function(){n.$broadcast("$cordovaUpsPush:notificationReceived",e)}))}),(function(){o.resolve()}),(function(e){o.reject(e)}),r),o.promise},unregister:function(n){var i=e.defer();return t.push.unregister((function(){i.resolve()}),(function(e){i.reject(e)}),n),i.promise},setBadgeNumber:function(n){var i=e.defer();return t.push.setApplicationIconBadgeNumber((function(){i.resolve()}),n),i.promise}}}]),angular.module("ngCordova.plugins.vibration",[]).factory("$cordovaVibration",[function(){return{vibrate:function(e){return navigator.notification.vibrate(e)},vibrateWithPattern:function(e,t){return navigator.notification.vibrateWithPattern(e,t)},cancelVibration:function(){return navigator.notification.cancelVibration()}}}]),angular.module("ngCordova.plugins.videoCapturePlus",[]).provider("$cordovaVideoCapturePlus",[function(){var e={};this.setLimit=function(t){e.limit=t},this.setMaxDuration=function(t){e.duration=t},this.setHighQuality=function(t){e.highquality=t},this.useFrontCamera=function(t){e.frontcamera=t},this.setPortraitOverlay=function(t){e.portraitOverlay=t},this.setLandscapeOverlay=function(t){e.landscapeOverlay=t},this.setOverlayText=function(t){e.overlayText=t},this.$get=["$q","$window",function(t,n){return{captureVideo:function(i){var r=t.defer();return n.plugins.videocaptureplus?(n.plugins.videocaptureplus.captureVideo(r.resolve,r.reject,angular.extend({},e,i)),r.promise):(r.resolve(null),r.promise)}}}]}]),angular.module("ngCordova.plugins.zip",[]).factory("$cordovaZip",["$q","$window",function(e,t){return{unzip:function(n,i){var r=e.defer();return t.zip.unzip(n,i,(function(e){0===e?r.resolve():r.reject()}),(function(e){r.notify(e)})),r.promise}}}]),function(e,t,n){var i=e.L,r={version:"0.7.7"};"object"==typeof module&&"object"==typeof module.exports?module.exports=r:"function"==typeof define&&define.amd&&define(r),r.noConflict=function(){return e.L=i,this},e.L=r,r.Util={extend:function(e){var t,n,i,r,o=Array.prototype.slice.call(arguments,1);for(n=0,i=o.length;i>n;n++)for(t in r=o[n]||{})r.hasOwnProperty(t)&&(e[t]=r[t]);return e},bind:function(e,t){var n=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return e.apply(t,n||arguments)}},stamp:function(){var e=0,t="_leaflet_id";return function(n){return n[t]=n[t]||++e,n[t]}}(),invokeEach:function(e,t,n){var i,r;if("object"==typeof e){for(i in r=Array.prototype.slice.call(arguments,3),e)t.apply(n,[i,e[i]].concat(r));return!0}return!1},limitExecByInterval:function(e,t,n){var i,r;return function o(){var a=arguments;return i?void(r=!0):(i=!0,setTimeout((function(){i=!1,r&&(o.apply(n,a),r=!1)}),t),void e.apply(n,a))}},falseFn:function(){return!1},formatNum:function(e,t){var n=Math.pow(10,t||5);return Math.round(e*n)/n},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},splitWords:function(e){return r.Util.trim(e).split(/\s+/)},setOptions:function(e,t){return e.options=r.extend({},e.options,t),e.options},getParamString:function(e,t,n){var i=[];for(var r in e)i.push(encodeURIComponent(n?r.toUpperCase():r)+"="+encodeURIComponent(e[r]));return(t&&-1!==t.indexOf("?")?"&":"?")+i.join("&")},template:function(e,t){return e.replace(/\{ *([\w_]+) *\}/g,(function(e,i){var r=t[i];if(r===n)throw new Error("No value provided for variable "+e);return"function"==typeof r&&(r=r(t)),r}))},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function t(t){var n,i,r=["webkit","moz","o","ms"];for(n=0;n<r.length&&!i;n++)i=e[r[n]+t];return i}function n(t){var n=+new Date,r=Math.max(0,16-(n-i));return i=n+r,e.setTimeout(t,r)}var i=0,o=e.requestAnimationFrame||t("RequestAnimationFrame")||n,a=e.cancelAnimationFrame||t("CancelAnimationFrame")||t("CancelRequestAnimationFrame")||function(t){e.clearTimeout(t)};r.Util.requestAnimFrame=function(t,i,a,s){return t=r.bind(t,i),a&&o===n?void t():o.call(e,t,s)},r.Util.cancelAnimFrame=function(t){t&&a.call(e,t)}}(),r.extend=r.Util.extend,r.bind=r.Util.bind,r.stamp=r.Util.stamp,r.setOptions=r.Util.setOptions,r.Class=function(){},r.Class.extend=function(e){var t=function(){this.initialize&&this.initialize.apply(this,arguments),this._initHooks&&this.callInitHooks()},n=function(){};n.prototype=this.prototype;var i=new n;for(var o in i.constructor=t,t.prototype=i,this)this.hasOwnProperty(o)&&"prototype"!==o&&(t[o]=this[o]);e.statics&&(r.extend(t,e.statics),delete e.statics),e.includes&&(r.Util.extend.apply(null,[i].concat(e.includes)),delete e.includes),e.options&&i.options&&(e.options=r.extend({},i.options,e.options)),r.extend(i,e),i._initHooks=[];var a=this;return t.__super__=a.prototype,i.callInitHooks=function(){if(!this._initHooksCalled){a.prototype.callInitHooks&&a.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=i._initHooks.length;t>e;e++)i._initHooks[e].call(this)}},t},r.Class.include=function(e){r.extend(this.prototype,e)},r.Class.mergeOptions=function(e){r.extend(this.prototype.options,e)},r.Class.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n="function"==typeof e?e:function(){this[e].apply(this,t)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n)};var o="_leaflet_events";r.Mixin={},r.Mixin.Events={addEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h=this[o]=this[o]||{},f=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)s={action:t,context:n||this},l=e[i],f?(c=(u=l+"_idx")+"_len",(d=h[u]=h[u]||{})[f]||(d[f]=[],h[c]=(h[c]||0)+1),d[f].push(s)):(h[l]=h[l]||[],h[l].push(s));return this},hasEventListeners:function(e){var t=this[o];return!!t&&(e in t&&t[e].length>0||e+"_idx"in t&&t[e+"_idx_len"]>0)},removeEventListener:function(e,t,n){if(!this[o])return this;if(!e)return this.clearAllEventListeners();if(r.Util.invokeEach(e,this.removeEventListener,this,t,n))return this;var i,a,s,l,u,c,d,h,f=this[o],p=n&&n!==this&&r.stamp(n);for(i=0,a=(e=r.Util.splitWords(e)).length;a>i;i++)if(d=(c=(s=e[i])+"_idx")+"_len",h=f[c],t){if(l=p&&h?h[p]:f[s]){for(u=l.length-1;u>=0;u--)l[u].action!==t||n&&l[u].context!==n||(l.splice(u,1)[0].action=r.Util.falseFn);n&&h&&0===l.length&&(delete h[p],f[d]--)}}else delete f[s],delete f[c],delete f[d];return this},clearAllEventListeners:function(){return delete this[o],this},fireEvent:function(e,t){if(!this.hasEventListeners(e))return this;var n,i,a,s,l,u=r.Util.extend({},t,{type:e,target:this}),c=this[o];if(c[e])for(i=0,a=(n=c[e].slice()).length;a>i;i++)n[i].action.call(n[i].context,u);for(l in s=c[e+"_idx"])if(n=s[l].slice())for(i=0,a=n.length;a>i;i++)n[i].action.call(n[i].context,u);return this},addOneTimeEventListener:function(e,t,n){if(r.Util.invokeEach(e,this.addOneTimeEventListener,this,t,n))return this;var i=r.bind((function(){this.removeEventListener(e,t,n).removeEventListener(e,i,n)}),this);return this.addEventListener(e,t,n).addEventListener(e,i,n)}},r.Mixin.Events.on=r.Mixin.Events.addEventListener,r.Mixin.Events.off=r.Mixin.Events.removeEventListener,r.Mixin.Events.once=r.Mixin.Events.addOneTimeEventListener,r.Mixin.Events.fire=r.Mixin.Events.fireEvent,function(){var i="ActiveXObject"in e,o=i&&!t.addEventListener,a=navigator.userAgent.toLowerCase(),s=-1!==a.indexOf("webkit"),l=-1!==a.indexOf("chrome"),u=-1!==a.indexOf("phantom"),c=-1!==a.indexOf("android"),d=-1!==a.search("android [23]"),h=-1!==a.indexOf("gecko"),f=typeof orientation!=n+"",p=!e.PointerEvent&&e.MSPointerEvent,m=e.PointerEvent&&e.navigator.pointerEnabled||p,g="devicePixelRatio"in e&&e.devicePixelRatio>1||"matchMedia"in e&&e.matchMedia("(min-resolution:144dpi)")&&e.matchMedia("(min-resolution:144dpi)").matches,v=t.documentElement,_=i&&"transition"in v.style,y="WebKitCSSMatrix"in e&&"m11"in new e.WebKitCSSMatrix&&!d,b="MozPerspective"in v.style,w="OTransition"in v.style,L=!e.L_DISABLE_3D&&(_||y||b||w)&&!u,M=!e.L_NO_TOUCH&&!u&&(m||"ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch);r.Browser={ie:i,ielt9:o,webkit:s,gecko:h&&!s&&!e.opera&&!i,android:c,android23:d,chrome:l,ie3d:_,webkit3d:y,gecko3d:b,opera3d:w,any3d:L,mobile:f,mobileWebkit:f&&s,mobileWebkit3d:f&&y,mobileOpera:f&&e.opera,touch:M,msPointer:p,pointer:m,retina:g}}(),r.Point=function(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t},r.Point.prototype={clone:function(){return new r.Point(this.x,this.y)},add:function(e){return this.clone()._add(r.point(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(r.point(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(e){var t=(e=r.point(e)).x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return(e=r.point(e)).x===this.x&&e.y===this.y},contains:function(e){return e=r.point(e),Math.abs(e.x)<=Math.abs(this.x)&&Math.abs(e.y)<=Math.abs(this.y)},toString:function(){return"Point("+r.Util.formatNum(this.x)+", "+r.Util.formatNum(this.y)+")"}},r.point=function(e,t,i){return e instanceof r.Point?e:r.Util.isArray(e)?new r.Point(e[0],e[1]):e===n||null===e?e:new r.Point(e,t,i)},r.Bounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.Bounds.prototype={extend:function(e){return e=r.point(e),this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(e.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(e.y,this.max.y)):(this.min=e.clone(),this.max=e.clone()),this},getCenter:function(e){return new r.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return new r.Point(this.min.x,this.max.y)},getTopRight:function(){return new r.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(e){var t,n;return(e="number"==typeof e[0]||e instanceof r.Point?r.point(e):r.bounds(e))instanceof r.Bounds?(t=e.min,n=e.max):t=n=e,t.x>=this.min.x&&n.x<=this.max.x&&t.y>=this.min.y&&n.y<=this.max.y},intersects:function(e){e=r.bounds(e);var t=this.min,n=this.max,i=e.min,o=e.max,a=o.x>=t.x&&i.x<=n.x,s=o.y>=t.y&&i.y<=n.y;return a&&s},isValid:function(){return!(!this.min||!this.max)}},r.bounds=function(e,t){return!e||e instanceof r.Bounds?e:new r.Bounds(e,t)},r.Transformation=function(e,t,n,i){this._a=e,this._b=t,this._c=n,this._d=i},r.Transformation.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t=t||1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t=t||1,new r.Point((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}},r.DomUtil={get:function(e){return"string"==typeof e?t.getElementById(e):e},getStyle:function(e,n){var i=e.style[n];if(!i&&e.currentStyle&&(i=e.currentStyle[n]),(!i||"auto"===i)&&t.defaultView){var r=t.defaultView.getComputedStyle(e,null);i=r?r[n]:null}return"auto"===i?null:i},getViewportOffset:function(e){var n,i=0,o=0,a=e,s=t.body,l=t.documentElement;do{if(i+=a.offsetTop||0,o+=a.offsetLeft||0,i+=parseInt(r.DomUtil.getStyle(a,"borderTopWidth"),10)||0,o+=parseInt(r.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,n=r.DomUtil.getStyle(a,"position"),a.offsetParent===s&&"absolute"===n)break;if("fixed"===n){i+=s.scrollTop||l.scrollTop||0,o+=s.scrollLeft||l.scrollLeft||0;break}if("relative"===n&&!a.offsetLeft){var u=r.DomUtil.getStyle(a,"width"),c=r.DomUtil.getStyle(a,"max-width"),d=a.getBoundingClientRect();("none"!==u||"none"!==c)&&(o+=d.left+a.clientLeft),i+=d.top+(s.scrollTop||l.scrollTop||0);break}a=a.offsetParent}while(a);a=e;do{if(a===s)break;i-=a.scrollTop||0,o-=a.scrollLeft||0,a=a.parentNode}while(a);return new r.Point(o,i)},documentIsLtr:function(){return r.DomUtil._docIsLtrCached||(r.DomUtil._docIsLtrCached=!0,r.DomUtil._docIsLtr="ltr"===r.DomUtil.getStyle(t.body,"direction")),r.DomUtil._docIsLtr},create:function(e,n,i){var r=t.createElement(e);return r.className=n,i&&i.appendChild(r),r},hasClass:function(e,t){if(e.classList!==n)return e.classList.contains(t);var i=r.DomUtil._getClass(e);return i.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(i)},addClass:function(e,t){if(e.classList!==n)for(var i=r.Util.splitWords(t),o=0,a=i.length;a>o;o++)e.classList.add(i[o]);else if(!r.DomUtil.hasClass(e,t)){var s=r.DomUtil._getClass(e);r.DomUtil._setClass(e,(s?s+" ":"")+t)}},removeClass:function(e,t){e.classList!==n?e.classList.remove(t):r.DomUtil._setClass(e,r.Util.trim((" "+r.DomUtil._getClass(e)+" ").replace(" "+t+" "," ")))},_setClass:function(e,t){e.className.baseVal===n?e.className=t:e.className.baseVal=t},_getClass:function(e){return e.className.baseVal===n?e.className:e.className.baseVal},setOpacity:function(e,t){if("opacity"in e.style)e.style.opacity=t;else if("filter"in e.style){var n=!1,i="DXImageTransform.Microsoft.Alpha";try{n=e.filters.item(i)}catch(e){if(1===t)return}t=Math.round(100*t),n?(n.Enabled=100!==t,n.Opacity=t):e.style.filter+=" progid:"+i+"(opacity="+t+")"}},testProp:function(e){for(var n=t.documentElement.style,i=0;i<e.length;i++)if(e[i]in n)return e[i];return!1},getTranslateString:function(e){var t=r.Browser.webkit3d,n=(t?",0":"")+")";return"translate"+(t?"3d":"")+"("+e.x+"px,"+e.y+"px"+n},getScaleString:function(e,t){return r.DomUtil.getTranslateString(t.add(t.multiplyBy(-1*e)))+" scale("+e+") "},setPosition:function(e,t,n){e._leaflet_pos=t,!n&&r.Browser.any3d?e.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(t):(e.style.left=t.x+"px",e.style.top=t.y+"px")},getPosition:function(e){return e._leaflet_pos}},r.DomUtil.TRANSFORM=r.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),r.DomUtil.TRANSITION=r.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),r.DomUtil.TRANSITION_END="webkitTransition"===r.DomUtil.TRANSITION||"OTransition"===r.DomUtil.TRANSITION?r.DomUtil.TRANSITION+"End":"transitionend",function(){if("onselectstart"in t)r.extend(r.DomUtil,{disableTextSelection:function(){r.DomEvent.on(e,"selectstart",r.DomEvent.preventDefault)},enableTextSelection:function(){r.DomEvent.off(e,"selectstart",r.DomEvent.preventDefault)}});else{var n=r.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);r.extend(r.DomUtil,{disableTextSelection:function(){if(n){var e=t.documentElement.style;this._userSelect=e[n],e[n]="none"}},enableTextSelection:function(){n&&(t.documentElement.style[n]=this._userSelect,delete this._userSelect)}})}r.extend(r.DomUtil,{disableImageDrag:function(){r.DomEvent.on(e,"dragstart",r.DomEvent.preventDefault)},enableImageDrag:function(){r.DomEvent.off(e,"dragstart",r.DomEvent.preventDefault)}})}(),r.LatLng=function(e,t,i){if(e=parseFloat(e),t=parseFloat(t),isNaN(e)||isNaN(t))throw new Error("Invalid LatLng object: ("+e+", "+t+")");this.lat=e,this.lng=t,i!==n&&(this.alt=parseFloat(i))},r.extend(r.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),r.LatLng.prototype={equals:function(e){return!!e&&(e=r.latLng(e),Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng))<=r.LatLng.MAX_MARGIN)},toString:function(e){return"LatLng("+r.Util.formatNum(this.lat,e)+", "+r.Util.formatNum(this.lng,e)+")"},distanceTo:function(e){e=r.latLng(e);var t=r.LatLng.DEG_TO_RAD,n=(e.lat-this.lat)*t,i=(e.lng-this.lng)*t,o=this.lat*t,a=e.lat*t,s=Math.sin(n/2),l=Math.sin(i/2),u=s*s+l*l*Math.cos(o)*Math.cos(a);return 12756274*Math.atan2(Math.sqrt(u),Math.sqrt(1-u))},wrap:function(e,t){var n=this.lng;return n=(n+(t=t||180))%(t-(e=e||-180))+(e>n||n===t?t:e),new r.LatLng(this.lat,n)}},r.latLng=function(e,t){return e instanceof r.LatLng?e:r.Util.isArray(e)?"number"==typeof e[0]||"string"==typeof e[0]?new r.LatLng(e[0],e[1],e[2]):null:e===n||null===e?e:"object"==typeof e&&"lat"in e?new r.LatLng(e.lat,"lng"in e?e.lng:e.lon):t===n?null:new r.LatLng(e,t)},r.LatLngBounds=function(e,t){if(e)for(var n=t?[e,t]:e,i=0,r=n.length;r>i;i++)this.extend(n[i])},r.LatLngBounds.prototype={extend:function(e){if(!e)return this;var t=r.latLng(e);return(e=null!==t?t:r.latLngBounds(e))instanceof r.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(e.lat,this._southWest.lat),this._southWest.lng=Math.min(e.lng,this._southWest.lng),this._northEast.lat=Math.max(e.lat,this._northEast.lat),this._northEast.lng=Math.max(e.lng,this._northEast.lng)):(this._southWest=new r.LatLng(e.lat,e.lng),this._northEast=new r.LatLng(e.lat,e.lng)):e instanceof r.LatLngBounds&&(this.extend(e._southWest),this.extend(e._northEast)),this},pad:function(e){var t=this._southWest,n=this._northEast,i=Math.abs(t.lat-n.lat)*e,o=Math.abs(t.lng-n.lng)*e;return new r.LatLngBounds(new r.LatLng(t.lat-i,t.lng-o),new r.LatLng(n.lat+i,n.lng+o))},getCenter:function(){return new r.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new r.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new r.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(e){e="number"==typeof e[0]||e instanceof r.LatLng?r.latLng(e):r.latLngBounds(e);var t,n,i=this._southWest,o=this._northEast;return e instanceof r.LatLngBounds?(t=e.getSouthWest(),n=e.getNorthEast()):t=n=e,t.lat>=i.lat&&n.lat<=o.lat&&t.lng>=i.lng&&n.lng<=o.lng},intersects:function(e){e=r.latLngBounds(e);var t=this._southWest,n=this._northEast,i=e.getSouthWest(),o=e.getNorthEast(),a=o.lat>=t.lat&&i.lat<=n.lat,s=o.lng>=t.lng&&i.lng<=n.lng;return a&&s},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(e){return!!e&&(e=r.latLngBounds(e),this._southWest.equals(e.getSouthWest())&&this._northEast.equals(e.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},r.latLngBounds=function(e,t){return!e||e instanceof r.LatLngBounds?e:new r.LatLngBounds(e,t)},r.Projection={},r.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=e.lng*t,a=i*t;return a=Math.log(Math.tan(Math.PI/4+a/2)),new r.Point(o,a)},unproject:function(e){var t=r.LatLng.RAD_TO_DEG,n=e.x*t,i=(2*Math.atan(Math.exp(e.y))-Math.PI/2)*t;return new r.LatLng(i,n)}},r.Projection.LonLat={project:function(e){return new r.Point(e.lng,e.lat)},unproject:function(e){return new r.LatLng(e.y,e.x)}},r.CRS={latLngToPoint:function(e,t){var n=this.projection.project(e),i=this.scale(t);return this.transformation._transform(n,i)},pointToLatLng:function(e,t){var n=this.scale(t),i=this.transformation.untransform(e,n);return this.projection.unproject(i)},project:function(e){return this.projection.project(e)},scale:function(e){return 256*Math.pow(2,e)},getSize:function(e){var t=this.scale(e);return r.point(t,t)}},r.CRS.Simple=r.extend({},r.CRS,{projection:r.Projection.LonLat,transformation:new r.Transformation(1,0,-1,0),scale:function(e){return Math.pow(2,e)}}),r.CRS.EPSG3857=r.extend({},r.CRS,{code:"EPSG:3857",projection:r.Projection.SphericalMercator,transformation:new r.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(e){return this.projection.project(e).multiplyBy(6378137)}}),r.CRS.EPSG900913=r.extend({},r.CRS.EPSG3857,{code:"EPSG:900913"}),r.CRS.EPSG4326=r.extend({},r.CRS,{code:"EPSG:4326",projection:r.Projection.LonLat,transformation:new r.Transformation(1/360,.5,-1/360,.5)}),r.Map=r.Class.extend({includes:r.Mixin.Events,options:{crs:r.CRS.EPSG3857,fadeAnimation:r.DomUtil.TRANSITION&&!r.Browser.android23,trackResize:!0,markerZoomAnimation:r.DomUtil.TRANSITION&&r.Browser.any3d},initialize:function(e,t){t=r.setOptions(this,t),this._initContainer(e),this._initLayout(),this._onResize=r.bind(this._onResize,this),this._initEvents(),t.maxBounds&&this.setMaxBounds(t.maxBounds),t.center&&t.zoom!==n&&this.setView(r.latLng(t.center),t.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(t.layers)},setView:function(e,t){return t=t===n?this.getZoom():t,this._resetView(r.latLng(e),this._limitZoom(t)),this},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=this._limitZoom(e),this)},zoomIn:function(e,t){return this.setZoom(this._zoom+(e||1),t)},zoomOut:function(e,t){return this.setZoom(this._zoom-(e||1),t)},setZoomAround:function(e,t,n){var i=this.getZoomScale(t),o=this.getSize().divideBy(2),a=(e instanceof r.Point?e:this.latLngToContainerPoint(e)).subtract(o).multiplyBy(1-1/i),s=this.containerPointToLatLng(o.add(a));return this.setView(s,t,{zoom:n})},fitBounds:function(e,t){t=t||{},e=e.getBounds?e.getBounds():r.latLngBounds(e);var n=r.point(t.paddingTopLeft||t.padding||[0,0]),i=r.point(t.paddingBottomRight||t.padding||[0,0]),o=this.getBoundsZoom(e,!1,n.add(i));o=t.maxZoom?Math.min(t.maxZoom,o):o;var a=i.subtract(n).divideBy(2),s=this.project(e.getSouthWest(),o),l=this.project(e.getNorthEast(),o),u=this.unproject(s.add(l).divideBy(2).add(a),o);return this.setView(u,o,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e){return this.fire("movestart"),this._rawPanBy(r.point(e)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(e){return e=r.latLngBounds(e),this.options.maxBounds=e,e?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(e,t){var n=this.getCenter(),i=this._limitCenter(n,this._zoom,e);return n.equals(i)?this:this.panTo(i,t)},addLayer:function(e){var t=r.stamp(e);return this._layers[t]?this:(this._layers[t]=e,!e.options||isNaN(e.options.maxZoom)&&isNaN(e.options.minZoom)||(this._zoomBoundLayers[t]=e,this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,e.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(e),this)},removeLayer:function(e){var t=r.stamp(e);return this._layers[t]?(this._loaded&&e.onRemove(this),delete this._layers[t],this._loaded&&this.fire("layerremove",{layer:e}),this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels()),this.options.zoomAnimation&&r.TileLayer&&e instanceof r.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,e.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(e){return!!e&&r.stamp(e)in this._layers},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},invalidateSize:function(e){if(!this._loaded)return this;e=r.extend({animate:!1,pan:!0},!0===e?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var n=this.getSize(),i=t.divideBy(2).round(),o=n.divideBy(2).round(),a=i.subtract(o);return a.x||a.y?(e.animate&&e.pan?this.panBy(a):(e.pan&&this._rawPanBy(a),this.fire("move"),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(r.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:t,newSize:n})):this},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&&n.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(e){this._container._leaflet=n}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds(),t=this.unproject(e.getBottomLeft()),n=this.unproject(e.getTopRight());return new r.LatLngBounds(t,n)},getMinZoom:function(){return this.options.minZoom===n?this._layersMinZoom===n?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===n?this._layersMaxZoom===n?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(e,t,n){e=r.latLngBounds(e);var i,o=this.getMinZoom()-(t?1:0),a=this.getMaxZoom(),s=this.getSize(),l=e.getNorthWest(),u=e.getSouthEast(),c=!0;n=r.point(n||[0,0]);do{o++,i=this.project(u,o).subtract(this.project(l,o)).add(n),c=t?i.x<s.x||i.y<s.y:s.contains(i)}while(c&&a>=o);return c&&t?null:t?o:o-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new r.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var e=this._getTopLeftPoint();return new r.Bounds(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e){var t=this.options.crs;return t.scale(e)/t.scale(this._zoom)},getScaleZoom:function(e){return this._zoom+Math.log(e)/Math.LN2},project:function(e,t){return t=t===n?this._zoom:t,this.options.crs.latLngToPoint(r.latLng(e),t)},unproject:function(e,t){return t=t===n?this._zoom:t,this.options.crs.pointToLatLng(r.point(e),t)},layerPointToLatLng:function(e){var t=r.point(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){return this.project(r.latLng(e))._round()._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(e){return r.point(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return r.point(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(r.point(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(r.latLng(e)))},mouseEventToContainerPoint:function(e){return r.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=r.DomUtil.get(e);if(!t)throw new Error("Map container not found.");if(t._leaflet)throw new Error("Map container is already initialized.");t._leaflet=!0},_initLayout:function(){var e=this._container;r.DomUtil.addClass(e,"leaflet-container"+(r.Browser.touch?" leaflet-touch":"")+(r.Browser.retina?" leaflet-retina":"")+(r.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var t=r.DomUtil.getStyle(e,"position");"absolute"!==t&&"relative"!==t&&"fixed"!==t&&(e.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var e=this._panes={};this._mapPane=e.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=e.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),e.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),e.shadowPane=this._createPane("leaflet-shadow-pane"),e.overlayPane=this._createPane("leaflet-overlay-pane"),e.markerPane=this._createPane("leaflet-marker-pane"),e.popupPane=this._createPane("leaflet-popup-pane");var t=" leaflet-zoom-hide";this.options.markerZoomAnimation||(r.DomUtil.addClass(e.markerPane,t),r.DomUtil.addClass(e.shadowPane,t),r.DomUtil.addClass(e.popupPane,t))},_createPane:function(e,t){return r.DomUtil.create("div",e,t||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(e){for(var t=0,n=(e=e?r.Util.isArray(e)?e:[e]:[]).length;n>t;t++)this.addLayer(e[t])},_resetView:function(e,t,n,i){var o=this._zoom!==t;i||(this.fire("movestart"),o&&this.fire("zoomstart")),this._zoom=t,this._initialCenter=e,this._initialTopLeftPoint=this._getNewTopLeftPoint(e),n?this._initialTopLeftPoint._add(this._getMapPanePos()):r.DomUtil.setPosition(this._mapPane,new r.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!n}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(o||i)&&this.fire("zoomend"),this.fire("moveend",{hard:!n})},_rawPanBy:function(e){r.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var e,t=1/0,i=-1/0,r=this._getZoomSpan();for(e in this._zoomBoundLayers){var o=this._zoomBoundLayers[e];isNaN(o.options.minZoom)||(t=Math.min(t,o.options.minZoom)),isNaN(o.options.maxZoom)||(i=Math.max(i,o.options.maxZoom))}e===n?this._layersMaxZoom=this._layersMinZoom=n:(this._layersMaxZoom=i,this._layersMinZoom=t),r!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){if(r.DomEvent){t=t||"on",r.DomEvent[t](this._container,"click",this._onMouseClick,this);var n,i,o=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(n=0,i=o.length;i>n;n++)r.DomEvent[t](this._container,o[n],this._fireMouseEvent,this);this.options.trackResize&&r.DomEvent[t](e,"resize",this._onResize,this)}},_onResize:function(){r.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=r.Util.requestAnimFrame((function(){this.invalidateSize({debounceMoveend:!0})}),this,!1,this._container)},_onMouseClick:function(e){!this._loaded||!e._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||r.DomEvent._skipped(e)||(this.fire("preclick"),this._fireMouseEvent(e))},_fireMouseEvent:function(e){if(this._loaded&&!r.DomEvent._skipped(e)){var t=e.type;if(t="mouseenter"===t?"mouseover":"mouseleave"===t?"mouseout":t,this.hasEventListeners(t)){"contextmenu"===t&&r.DomEvent.preventDefault(e);var n=this.mouseEventToContainerPoint(e),i=this.containerPointToLayerPoint(n),o=this.layerPointToLatLng(i);this.fire(t,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var e=0,t=this._handlers.length;t>e;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,this):this.on("load",e,t),this},_layerAdd:function(e){e.onAdd(this),this.fire("layeradd",{layer:e})},_getMapPanePos:function(){return r.DomUtil.getPosition(this._mapPane)},_moved:function(){var e=this._getMapPanePos();return e&&!e.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._round()},_latLngToNewLayerPoint:function(e,t,n){var i=this._getNewTopLeftPoint(n,t).add(this._getMapPanePos());return this.project(e,t)._subtract(i)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var i=this.project(e,t),o=this.getSize().divideBy(2),a=new r.Bounds(i.subtract(o),i.add(o)),s=this._getBoundsOffset(a,n,t);return this.unproject(i.add(s),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),i=new r.Bounds(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(i,t))},_getBoundsOffset:function(e,t,n){var i=this.project(t.getNorthWest(),n).subtract(e.min),o=this.project(t.getSouthEast(),n).subtract(e.max),a=this._rebound(i.x,-o.x),s=this._rebound(i.y,-o.y);return new r.Point(a,s)},_rebound:function(e,t){return e+t>0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom();return Math.max(t,Math.min(n,e))}}),r.map=function(e,t){return new r.Map(e,t)},r.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(e){var t=r.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,i=Math.max(Math.min(n,e.lat),-n),o=this.R_MAJOR,a=this.R_MINOR,s=e.lng*t*o,l=i*t,u=a/o,c=Math.sqrt(1-u*u),d=c*Math.sin(l);d=Math.pow((1-d)/(1+d),.5*c);var h=Math.tan(.5*(.5*Math.PI-l))/d;return l=-o*Math.log(h),new r.Point(s,l)},unproject:function(e){for(var t,n=r.LatLng.RAD_TO_DEG,i=this.R_MAJOR,o=this.R_MINOR,a=e.x*n/i,s=o/i,l=Math.sqrt(1-s*s),u=Math.exp(-e.y/i),c=Math.PI/2-2*Math.atan(u),d=15,h=.1;Math.abs(h)>1e-7&&--d>0;)t=l*Math.sin(c),c+=h=Math.PI/2-2*Math.atan(u*Math.pow((1-t)/(1+t),.5*l))-c;return new r.LatLng(c*n,a)}},r.CRS.EPSG3395=r.extend({},r.CRS,{code:"EPSG:3395",projection:r.Projection.Mercator,transformation:function(){var e=r.Projection.Mercator.R_MAJOR,t=.5/(Math.PI*e);return new r.Transformation(t,.5,-t,.5)}()}),r.TileLayer=r.Class.extend({includes:r.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:r.Browser.mobile,updateWhenIdle:r.Browser.mobile},initialize:function(e,t){(t=r.setOptions(this,t)).detectRetina&&r.Browser.retina&&t.maxZoom>0&&(t.tileSize=Math.floor(t.tileSize/2),t.zoomOffset++,t.minZoom>0&&t.minZoom--,this.options.maxZoom--),t.bounds&&(t.bounds=r.latLngBounds(t.bounds)),this._url=e;var n=this.options.subdomains;"string"==typeof n&&(this.options.subdomains=n.split(""))},onAdd:function(e){this._map=e,this._animated=e._zoomAnimated,this._initContainer(),e.on({viewreset:this._reset,moveend:this._update},this),this._animated&&e.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=r.Util.limitExecByInterval(this._update,150,this),e.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this._container.parentNode.removeChild(this._container),e.off({viewreset:this._reset,moveend:this._update},this),this._animated&&e.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||e.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var e=this._map._panes.tilePane;return this._container&&(e.appendChild(this._container),this._setAutoZIndex(e,Math.max)),this},bringToBack:function(){var e=this._map._panes.tilePane;return this._container&&(e.insertBefore(this._container,e.firstChild),this._setAutoZIndex(e,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},setUrl:function(e,t){return this._url=e,t||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==n&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e,t){var n,i,r,o=e.children,a=-t(1/0,-1/0);for(i=0,r=o.length;r>i;i++)o[i]!==this._container&&(n=parseInt(o[i].style.zIndex,10),isNaN(n)||(a=t(a,n)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+t(1,-1)},_updateOpacity:function(){var e,t=this._tiles;if(r.Browser.ielt9)for(e in t)r.DomUtil.setOpacity(t[e],this.options.opacity);else r.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var e=this._map._panes.tilePane;if(!this._container){if(this._container=r.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var t="leaflet-tile-container";this._bgBuffer=r.DomUtil.create("div",t,this._container),this._tileContainer=r.DomUtil.create("div",t,this._container)}else this._tileContainer=this._container;e.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(e){for(var t in this._tiles)this.fire("tileunload",{tile:this._tiles[t]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&e&&e.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var e=this._map,t=e.getZoom()+this.options.zoomOffset,n=this.options.maxNativeZoom,i=this.options.tileSize;return n&&t>n&&(i=Math.round(e.getZoomScale(t)/e.getZoomScale(n)*i)),i},_update:function(){if(this._map){var e=this._map,t=e.getPixelBounds(),n=e.getZoom(),i=this._getTileSize();if(!(n>this.options.maxZoom||n<this.options.minZoom)){var o=r.bounds(t.min.divideBy(i)._floor(),t.max.divideBy(i)._floor());this._addTilesFromCenterOut(o),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&&this._removeOtherTiles(o)}}},_addTilesFromCenterOut:function(e){var n,i,o,a=[],s=e.getCenter();for(n=e.min.y;n<=e.max.y;n++)for(i=e.min.x;i<=e.max.x;i++)o=new r.Point(i,n),this._tileShouldBeLoaded(o)&&a.push(o);var l=a.length;if(0!==l){a.sort((function(e,t){return e.distanceTo(s)-t.distanceTo(s)}));var u=t.createDocumentFragment();for(this._tilesToLoad||this.fire("loading"),this._tilesToLoad+=l,i=0;l>i;i++)this._addTile(a[i],u);this._tileContainer.appendChild(u)}},_tileShouldBeLoaded:function(e){if(e.x+":"+e.y in this._tiles)return!1;var t=this.options;if(!t.continuousWorld){var n=this._getWrapTileNum();if(t.noWrap&&(e.x<0||e.x>=n.x)||e.y<0||e.y>=n.y)return!1}if(t.bounds){var i=this._getTileSize(),r=e.multiplyBy(i),o=r.add([i,i]),a=this._map.unproject(r),s=this._map.unproject(o);if(t.continuousWorld||t.noWrap||(a=a.wrap(),s=s.wrap()),!t.bounds.intersects([a,s]))return!1}return!0},_removeOtherTiles:function(e){var t,n,i,r;for(r in this._tiles)t=r.split(":"),n=parseInt(t[0],10),i=parseInt(t[1],10),(n<e.min.x||n>e.max.x||i<e.min.y||i>e.max.y)&&this._removeTile(r)},_removeTile:function(e){var t=this._tiles[e];this.fire("tileunload",{tile:t,url:t.src}),this.options.reuseTiles?(r.DomUtil.removeClass(t,"leaflet-tile-loaded"),this._unusedTiles.push(t)):t.parentNode===this._tileContainer&&this._tileContainer.removeChild(t),r.Browser.android||(t.onload=null,t.src=r.Util.emptyImageUrl),delete this._tiles[e]},_addTile:function(e,t){var n=this._getTilePos(e),i=this._getTile();r.DomUtil.setPosition(i,n,r.Browser.chrome),this._tiles[e.x+":"+e.y]=i,this._loadTile(i,e),
+i.parentNode!==this._tileContainer&&t.appendChild(i)},_getZoomForUrl:function(){var e=this.options,t=this._map.getZoom();return e.zoomReverse&&(t=e.maxZoom-t),t+=e.zoomOffset,e.maxNativeZoom?Math.min(t,e.maxNativeZoom):t},_getTilePos:function(e){var t=this._map.getPixelOrigin(),n=this._getTileSize();return e.multiplyBy(n).subtract(t)},getTileUrl:function(e){return r.Util.template(this._url,r.extend({s:this._getSubdomain(e),z:e.z,x:e.x,y:e.y},this.options))},_getWrapTileNum:function(){return this._map.options.crs.getSize(this._map.getZoom()).divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(e){var t=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(e.x=(e.x%t.x+t.x)%t.x),this.options.tms&&(e.y=t.y-e.y-1),e.z=this._getZoomForUrl()},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var e=this._unusedTiles.pop();return this._resetTile(e),e}return this._createTile()},_resetTile:function(){},_createTile:function(){var e=r.DomUtil.create("img","leaflet-tile");return e.style.width=e.style.height=this._getTileSize()+"px",e.galleryimg="no",e.onselectstart=e.onmousemove=r.Util.falseFn,r.Browser.ielt9&&this.options.opacity!==n&&r.DomUtil.setOpacity(e,this.options.opacity),r.Browser.mobileWebkit3d&&(e.style.WebkitBackfaceVisibility="hidden"),e},_loadTile:function(e,t){e._layer=this,e.onload=this._tileOnLoad,e.onerror=this._tileOnError,this._adjustTilePoint(t),e.src=this.getTileUrl(t),this.fire("tileloadstart",{tile:e,url:e.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&r.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(r.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var e=this._layer;this.src!==r.Util.emptyImageUrl&&(r.DomUtil.addClass(this,"leaflet-tile-loaded"),e.fire("tileload",{tile:this,url:this.src})),e._tileLoaded()},_tileOnError:function(){var e=this._layer;e.fire("tileerror",{tile:this,url:this.src});var t=e.options.errorTileUrl;t&&(this.src=t),e._tileLoaded()}}),r.tileLayer=function(e,t){return new r.TileLayer(e,t)},r.TileLayer.WMS=r.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(e,t){this._url=e;var n=r.extend({},this.defaultWmsParams),i=t.tileSize||this.options.tileSize;for(var o in t.detectRetina&&r.Browser.retina?n.width=n.height=2*i:n.width=n.height=i,t)this.options.hasOwnProperty(o)||"crs"===o||(n[o]=t[o]);this.wmsParams=n,r.setOptions(this,t)},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[t]=this._crs.code,r.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._map,n=this.options.tileSize,i=e.multiplyBy(n),o=i.add([n,n]),a=this._crs.project(t.unproject(i,e.z)),s=this._crs.project(t.unproject(o,e.z)),l=this._wmsVersion>=1.3&&this._crs===r.CRS.EPSG4326?[s.y,a.x,a.y,s.x].join(","):[a.x,s.y,s.x,a.y].join(","),u=r.Util.template(this._url,{s:this._getSubdomain(e)});return u+r.Util.getParamString(this.wmsParams,u,!0)+"&BBOX="+l},setParams:function(e,t){return r.extend(this.wmsParams,e),t||this.redraw(),this}}),r.tileLayer.wms=function(e,t){return new r.TileLayer.WMS(e,t)},r.TileLayer.Canvas=r.TileLayer.extend({options:{async:!1},initialize:function(e){r.setOptions(this,e)},redraw:function(){for(var e in this._map&&(this._reset({hard:!0}),this._update()),this._tiles)this._redrawTile(this._tiles[e]);return this},_redrawTile:function(e){this.drawTile(e,e._tilePoint,this._map._zoom)},_createTile:function(){var e=r.DomUtil.create("canvas","leaflet-tile");return e.width=e.height=this.options.tileSize,e.onselectstart=e.onmousemove=r.Util.falseFn,e},_loadTile:function(e,t){e._layer=this,e._tilePoint=t,this._redrawTile(e),this.options.async||this.tileDrawn(e)},drawTile:function(){},tileDrawn:function(e){this._tileOnLoad.call(e)}}),r.tileLayer.canvas=function(e){return new r.TileLayer.Canvas(e)},r.ImageOverlay=r.Class.extend({includes:r.Mixin.Events,options:{opacity:1},initialize:function(e,t,n){this._url=e,this._bounds=r.latLngBounds(t),r.setOptions(this,n)},onAdd:function(e){this._map=e,this._image||this._initImage(),e._panes.overlayPane.appendChild(this._image),e.on("viewreset",this._reset,this),e.options.zoomAnimation&&r.Browser.any3d&&e.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(e){e.getPanes().overlayPane.removeChild(this._image),e.off("viewreset",this._reset,this),e.options.zoomAnimation&&e.off("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var e=this._map._panes.overlayPane;return this._image&&e.insertBefore(this._image,e.firstChild),this},setUrl:function(e){this._url=e,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=r.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&r.Browser.any3d?r.DomUtil.addClass(this._image,"leaflet-zoom-animated"):r.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),r.extend(this._image,{galleryimg:"no",onselectstart:r.Util.falseFn,onmousemove:r.Util.falseFn,onload:r.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var t=this._map,n=this._image,i=t.getZoomScale(e.zoom),o=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),s=t._latLngToNewLayerPoint(o,e.zoom,e.center),l=t._latLngToNewLayerPoint(a,e.zoom,e.center)._subtract(s),u=s._add(l._multiplyBy(.5*(1-1/i)));n.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(u)+" scale("+i+") "},_reset:function(){var e=this._image,t=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),n=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(t);r.DomUtil.setPosition(e,t),e.style.width=n.x+"px",e.style.height=n.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){r.DomUtil.setOpacity(this._image,this.options.opacity)}}),r.imageOverlay=function(e,t,n){return new r.ImageOverlay(e,t,n)},r.Icon=r.Class.extend({options:{className:""},initialize:function(e){r.setOptions(this,e)},createIcon:function(e){return this._createIcon("icon",e)},createShadow:function(e){return this._createIcon("shadow",e)},_createIcon:function(e,t){var n,i=this._getIconUrl(e);if(!i){if("icon"===e)throw new Error("iconUrl not set in Icon options (see the docs).");return null}return n=t&&"IMG"===t.tagName?this._createImg(i,t):this._createImg(i),this._setIconStyles(n,e),n},_setIconStyles:function(e,t){var n,i=this.options,o=r.point(i[t+"Size"]);!(n="shadow"===t?r.point(i.shadowAnchor||i.iconAnchor):r.point(i.iconAnchor))&&o&&(n=o.divideBy(2,!0)),e.className="leaflet-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),o&&(e.style.width=o.x+"px",e.style.height=o.y+"px")},_createImg:function(e,n){return(n=n||t.createElement("img")).src=e,n},_getIconUrl:function(e){return r.Browser.retina&&this.options[e+"RetinaUrl"]?this.options[e+"RetinaUrl"]:this.options[e+"Url"]}}),r.icon=function(e){return new r.Icon(e)},r.Icon.Default=r.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(e){var t=e+"Url";if(this.options[t])return this.options[t];r.Browser.retina&&"icon"===e&&(e+="-2x");var n=r.Icon.Default.imagePath;if(!n)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return n+"/marker-"+e+".png"}}),r.Icon.Default.imagePath=function(){var e,n,i,r,o=t.getElementsByTagName("script"),a=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(e=0,n=o.length;n>e;e++)if((i=o[e].src).match(a))return((r=i.split(a)[0])?r+"/":"")+"images"}(),r.Marker=r.Class.extend({includes:r.Mixin.Events,options:{icon:new r.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(e,t){r.setOptions(this,t),this._latlng=r.latLng(e)},onAdd:function(e){this._map=e,e.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),e.options.zoomAnimation&&e.options.markerZoomAnimation&&e.on("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),e.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update(),this},setIcon:function(e){return this.options.icon=e,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var e=this.options,t=this._map,n=t.options.zoomAnimation&&t.options.markerZoomAnimation?"leaflet-zoom-animated":"leaflet-zoom-hide",i=e.icon.createIcon(this._icon),o=!1;i!==this._icon&&(this._icon&&this._removeIcon(),o=!0,e.title&&(i.title=e.title),e.alt&&(i.alt=e.alt)),r.DomUtil.addClass(i,n),e.keyboard&&(i.tabIndex="0"),this._icon=i,this._initInteraction(),e.riseOnHover&&r.DomEvent.on(i,"mouseover",this._bringToFront,this).on(i,"mouseout",this._resetZIndex,this);var a=e.icon.createShadow(this._shadow),s=!1;a!==this._shadow&&(this._removeShadow(),s=!0),a&&r.DomUtil.addClass(a,n),this._shadow=a,e.opacity<1&&this._updateOpacity();var l=this._map._panes;o&&l.markerPane.appendChild(this._icon),a&&s&&l.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&r.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(e){r.DomUtil.setPosition(this._icon,e),this._shadow&&r.DomUtil.setPosition(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon.style.zIndex=this._zIndex+e},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(this.options.clickable){var e=this._icon,t=["dblclick","mousedown","mouseover","mouseout","contextmenu"];r.DomUtil.addClass(e,"leaflet-clickable"),r.DomEvent.on(e,"click",this._onMouseClick,this),r.DomEvent.on(e,"keypress",this._onKeyPress,this);for(var n=0;n<t.length;n++)r.DomEvent.on(e,t[n],this._fireMouseEvent,this);r.Handler.MarkerDrag&&(this.dragging=new r.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_onMouseClick:function(e){var t=this.dragging&&this.dragging.moved();(this.hasEventListeners(e.type)||t)&&r.DomEvent.stopPropagation(e),t||(this.dragging&&this.dragging._enabled||!this._map.dragging||!this._map.dragging.moved())&&this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){13===e.keyCode&&this.fire("click",{originalEvent:e,latlng:this._latlng})},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng}),"contextmenu"===e.type&&this.hasEventListeners(e.type)&&r.DomEvent.preventDefault(e),"mousedown"!==e.type?r.DomEvent.stopPropagation(e):r.DomEvent.preventDefault(e)},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},_updateOpacity:function(){r.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&&r.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),r.marker=function(e,t){return new r.Marker(e,t)},r.DivIcon=r.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:!1},createIcon:function(e){var n=e&&"DIV"===e.tagName?e:t.createElement("div"),i=this.options;return!1!==i.html?n.innerHTML=i.html:n.innerHTML="",i.bgPos&&(n.style.backgroundPosition=-i.bgPos.x+"px "+-i.bgPos.y+"px"),this._setIconStyles(n,"icon"),n},createShadow:function(){return null}}),r.divIcon=function(e){return new r.DivIcon(e)},r.Map.mergeOptions({closePopupOnClick:!0}),r.Popup=r.Class.extend({includes:r.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:"",zoomAnimation:!0},initialize:function(e,t){r.setOptions(this,e),this._source=t,this._animated=r.Browser.any3d&&this.options.zoomAnimation,this._isOpen=!1},onAdd:function(e){this._map=e,this._container||this._initLayout();var t=e.options.fadeAnimation;t&&r.DomUtil.setOpacity(this._container,0),e._panes.popupPane.appendChild(this._container),e.on(this._getEvents(),this),this.update(),t&&r.DomUtil.setOpacity(this._container,1),this.fire("open"),e.fire("popupopen",{popup:this}),this._source&&this._source.fire("popupopen",{popup:this})},addTo:function(e){return e.addLayer(this),this},openOn:function(e){return e.openPopup(this),this},onRemove:function(e){e._panes.popupPane.removeChild(this._container),r.Util.falseFn(this._container.offsetWidth),e.off(this._getEvents(),this),e.options.fadeAnimation&&r.DomUtil.setOpacity(this._container,0),this._map=null,this.fire("close"),e.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=r.latLng(e),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,this.update(),this},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},_getEvents:function(){var e={viewreset:this._updatePosition};return this._animated&&(e.zoomanim=this._zoomAnimation),("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(e.preclick=this._close),this.options.keepInView&&(e.moveend=this._adjustPan),e},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var e,t="leaflet-popup",n=t+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),i=this._container=r.DomUtil.create("div",n);this.options.closeButton&&((e=this._closeButton=r.DomUtil.create("a",t+"-close-button",i)).href="#close",e.innerHTML="&#215;",r.DomEvent.disableClickPropagation(e),r.DomEvent.on(e,"click",this._onCloseButtonClick,this));var o=this._wrapper=r.DomUtil.create("div",t+"-content-wrapper",i);r.DomEvent.disableClickPropagation(o),this._contentNode=r.DomUtil.create("div",t+"-content",o),r.DomEvent.disableScrollPropagation(this._contentNode),r.DomEvent.on(o,"contextmenu",r.DomEvent.stopPropagation),this._tipContainer=r.DomUtil.create("div",t+"-tip-container",i),this._tip=r.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateContent:function(){if(this._content){if("string"==typeof this._content)this._contentNode.innerHTML=this._content;else{for(;this._contentNode.hasChildNodes();)this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire("contentupdate")}},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width="",t.whiteSpace="nowrap";var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+"px",t.whiteSpace="",t.height="";var i=e.offsetHeight,o=this.options.maxHeight,a="leaflet-popup-scrolled";o&&i>o?(t.height=o+"px",r.DomUtil.addClass(e,a)):r.DomUtil.removeClass(e,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var e=this._map.latLngToLayerPoint(this._latlng),t=this._animated,n=r.point(this.options.offset);t&&r.DomUtil.setPosition(this._container,e),this._containerBottom=-n.y-(t?0:e.y),this._containerLeft=-Math.round(this._containerWidth/2)+n.x+(t?0:e.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);r.DomUtil.setPosition(this._container,t)},_adjustPan:function(){if(this.options.autoPan){var e=this._map,t=this._container.offsetHeight,n=this._containerWidth,i=new r.Point(this._containerLeft,-t-this._containerBottom);this._animated&&i._add(r.DomUtil.getPosition(this._container));var o=e.layerPointToContainerPoint(i),a=r.point(this.options.autoPanPadding),s=r.point(this.options.autoPanPaddingTopLeft||a),l=r.point(this.options.autoPanPaddingBottomRight||a),u=e.getSize(),c=0,d=0;o.x+n+l.x>u.x&&(c=o.x+n-u.x+l.x),o.x-c-s.x<0&&(c=o.x-s.x),o.y+t+l.y>u.y&&(d=o.y+t-u.y+l.y),o.y-d-s.y<0&&(d=o.y-s.y),(c||d)&&e.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(e){this._close(),r.DomEvent.stop(e)}}),r.popup=function(e,t){return new r.Popup(e,t)},r.Map.include({openPopup:function(e,t,n){if(this.closePopup(),!(e instanceof r.Popup)){var i=e;e=new r.Popup(n).setLatLng(t).setContent(i)}return e._isOpen=!0,this._popup=e,this.addLayer(e)},closePopup:function(e){return e&&e!==this._popup||(e=this._popup,this._popup=null),e&&(this.removeLayer(e),e._isOpen=!1),this}}),r.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(e,t){var n=r.point(this.options.icon.options.popupAnchor||[0,0]);return n=n.add(r.Popup.prototype.options.offset),t&&t.offset&&(n=n.add(t.offset)),t=r.extend({offset:n},t),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),e instanceof r.Popup?(r.setOptions(e,t),this._popup=e,e._source=this):this._popup=new r.Popup(t,this).setContent(e),this},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}}),r.LayerGroup=r.Class.extend({initialize:function(e){var t,n;if(this._layers={},e)for(t=0,n=e.length;n>t;t++)this.addLayer(e[t])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&&this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return!!e&&(e in this._layers||this.getLayerId(e)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(e){var t,n,i=Array.prototype.slice.call(arguments,1);for(t in this._layers)(n=this._layers[t])[e]&&n[e].apply(n,i);return this},onAdd:function(e){this._map=e,this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e),this._map=null},addTo:function(e){return e.addLayer(this),this},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];for(var t in this._layers)e.push(this._layers[t]);return e},setZIndex:function(e){return this.invoke("setZIndex",e)},getLayerId:function(e){return r.stamp(e)}}),r.layerGroup=function(e){return new r.LayerGroup(e)},r.FeatureGroup=r.LayerGroup.extend({includes:r.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(e){return this.hasLayer(e)?this:("on"in e&&e.on(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.addLayer.call(this,e),this._popupContent&&e.bindPopup&&e.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&&(e=this._layers[e]),"off"in e&&e.off(r.FeatureGroup.EVENTS,this._propagateEvent,this),r.LayerGroup.prototype.removeLayer.call(this,e),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:e})):this},bindPopup:function(e,t){return this._popupContent=e,this._popupOptions=t,this.invoke("bindPopup",e,t)},openPopup:function(e){for(var t in this._layers){this._layers[t].openPopup(e);break}return this},setStyle:function(e){return this.invoke("setStyle",e)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var e=new r.LatLngBounds;return this.eachLayer((function(t){e.extend(t instanceof r.Marker?t.getLatLng():t.getBounds())})),e},_propagateEvent:function(e){e=r.extend({layer:e.target,target:this},e),this.fire(e.type,e)}}),r.featureGroup=function(e){return new r.FeatureGroup(e)},r.Path=r.Class.extend({includes:[r.Mixin.Events],statics:{CLIP_PADDING:function(){var t=((r.Browser.mobile?1280:2e3)/Math.max(e.outerWidth,e.outerHeight)-1)/2;return Math.max(0,Math.min(.5,t))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(e){r.setOptions(this,e)},onAdd:function(e){this._map=e,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),e.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){e._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,r.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),e.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(e){return r.setOptions(this,e),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),r.Map.include({_updatePathViewport:function(){var e=r.Path.CLIP_PADDING,t=this.getSize(),n=r.DomUtil.getPosition(this._mapPane).multiplyBy(-1)._subtract(t.multiplyBy(e)._round()),i=n.add(t.multiplyBy(1+2*e)._round());this._pathViewport=new r.Bounds(n,i)}}),r.Path.SVG_NS="http://www.w3.org/2000/svg",r.Browser.svg=!(!t.createElementNS||!t.createElementNS(r.Path.SVG_NS,"svg").createSVGRect),r.Path=r.Path.extend({statics:{SVG:r.Browser.svg},bringToFront:function(){var e=this._map._pathRoot,t=this._container;return t&&e.lastChild!==t&&e.appendChild(t),this},bringToBack:function(){var e=this._map._pathRoot,t=this._container,n=e.firstChild;return t&&n!==t&&e.insertBefore(t,n),this},getPathString:function(){},_createElement:function(e){return t.createElementNS(r.Path.SVG_NS,e)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&r.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var e=this.getPathString();e||(e="M0 0"),this._path.setAttribute("d",e)},_initEvents:function(){if(this.options.clickable){(r.Browser.svg||!r.Browser.vml)&&r.DomUtil.addClass(this._path,"leaflet-clickable"),r.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var e=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],t=0;t<e.length;t++)r.DomEvent.on(this._container,e[t],this._fireMouseEvent,this)}},_onMouseClick:function(e){this._map.dragging&&this._map.dragging.moved()||this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(this._map&&this.hasEventListeners(e.type)){var t=this._map,n=t.mouseEventToContainerPoint(e),i=t.containerPointToLayerPoint(n),o=t.layerPointToLatLng(i);this.fire(e.type,{latlng:o,layerPoint:i,containerPoint:n,originalEvent:e}),"contextmenu"===e.type&&r.DomEvent.preventDefault(e),"mousemove"!==e.type&&r.DomEvent.stopPropagation(e)}}}),r.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=r.Path.prototype._createElement("svg"),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&&r.Browser.any3d?(r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated"),this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):r.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide"),this.on("moveend",this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(e){var t=this.getZoomScale(e.zoom),n=this._getCenterOffset(e.center)._multiplyBy(-t)._add(this._pathViewport.min);this._pathRoot.style[r.DomUtil.TRANSFORM]=r.DomUtil.getTranslateString(n)+" scale("+t+") ",this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max,i=n.x-t.x,o=n.y-t.y,a=this._pathRoot,s=this._panes.overlayPane;r.Browser.mobileWebkit&&s.removeChild(a),r.DomUtil.setPosition(a,t),a.setAttribute("width",i),a.setAttribute("height",o),a.setAttribute("viewBox",[t.x,t.y,i,o].join(" ")),r.Browser.mobileWebkit&&s.appendChild(a)}}}),r.Path.include({bindPopup:function(e,t){return e instanceof r.Popup?this._popup=e:((!this._popup||t)&&(this._popup=new r.Popup(t,this)),this._popup.setContent(e)),this._popupHandlersAdded||(this.on("click",this._openPopup,this).on("remove",this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this._openPopup).off("remove",this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(e){return this._popup&&(e=e||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:e})),this},closePopup:function(){return this._popup&&this._popup._close(),this},_openPopup:function(e){this._popup.setLatLng(e.latlng),this._map.openPopup(this._popup)}}),r.Browser.vml=!r.Browser.svg&&function(){try{var e=t.createElement("div");e.innerHTML='<v:shape adj="1"/>';var n=e.firstChild;return n.style.behavior="url(#default#VML)",n&&"object"==typeof n.adj}catch(e){return!1}}(),r.Path=r.Browser.svg||!r.Browser.vml?r.Path:r.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return t.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(e){return t.createElement("<lvml:"+e+' class="lvml">')}}catch(e){return function(e){return t.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var e=this._container=this._createElement("shape");r.DomUtil.addClass(e,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&r.DomUtil.addClass(e,"leaflet-clickable"),e.coordsize="1 1",this._path=this._createElement("path"),e.appendChild(this._path),this._map._pathRoot.appendChild(e)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var e=this._stroke,t=this._fill,n=this.options,i=this._container;i.stroked=n.stroke,i.filled=n.fill,n.stroke?(e||((e=this._stroke=this._createElement("stroke")).endcap="round",i.appendChild(e)),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=r.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",n.lineCap&&(e.endcap=n.lineCap.replace("butt","flat")),n.lineJoin&&(e.joinstyle=n.lineJoin)):e&&(i.removeChild(e),this._stroke=null),n.fill?(t||(t=this._fill=this._createElement("fill"),i.appendChild(t)),t.color=n.fillColor||n.color,t.opacity=n.fillOpacity):t&&(i.removeChild(t),this._fill=null)},_updatePath:function(){var e=this._container.style;e.display="none",this._path.v=this.getPathString()+" ",e.display=""}}),r.Map.include(r.Browser.svg||!r.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var e=this._pathRoot=t.createElement("div");e.className="leaflet-vml-container",this._panes.overlayPane.appendChild(e),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),r.Browser.canvas=!!t.createElement("canvas").getContext,r.Path=r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?r.Path:r.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(e){return r.setOptions(this,e),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(e){e.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!r.Path._updateRequest&&(r.Path._updateRequest=r.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){r.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var e=this.options;e.stroke&&(this._ctx.lineWidth=e.weight,this._ctx.strokeStyle=e.color),e.fill&&(this._ctx.fillStyle=e.fillColor||e.color),e.lineCap&&(this._ctx.lineCap=e.lineCap),e.lineJoin&&(this._ctx.lineJoin=e.lineJoin)},_drawPath:function(){var e,t,n,i,o,a;for(this._ctx.beginPath(),e=0,n=this._parts.length;n>e;e++){for(t=0,i=this._parts[e].length;i>t;t++)o=this._parts[e][t],a=(0===t?"move":"line")+"To",this._ctx[a](o.x,o.y);this instanceof r.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var e=this._ctx,t=this.options;this._drawPath(),e.save(),this._updateStyle(),t.fill&&(e.globalAlpha=t.fillOpacity,e.fill(t.fillRule||"evenodd")),t.stroke&&(e.globalAlpha=t.opacity,e.stroke()),e.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(e){this._containsPoint(e.layerPoint)&&this.fire(e.type,e)},_onMouseMove:function(e){this._map&&!this._map._animatingZoom&&(this._containsPoint(e.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",e)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",e)))}}),r.Map.include(r.Path.SVG&&!e.L_PREFER_CANVAS||!r.Browser.canvas?{}:{_initPathRoot:function(){var e,n=this._pathRoot;n||((n=this._pathRoot=t.createElement("canvas")).style.position="absolute",(e=this._canvasCtx=n.getContext("2d")).lineCap="round",e.lineJoin="round",this._panes.overlayPane.appendChild(n),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max.subtract(t),i=this._pathRoot;r.DomUtil.setPosition(i,t),i.width=n.x,i.height=n.y,i.getContext("2d").translate(-t.x,-t.y)}}}),r.LineUtil={simplify:function(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=this._reducePoints(e,n),this._simplifyDP(e,n)},pointToSegmentDistance:function(e,t,n){return Math.sqrt(this._sqClosestPointOnSegment(e,t,n,!0))},closestPointOnSegment:function(e,t,n){return this._sqClosestPointOnSegment(e,t,n)},_simplifyDP:function(e,t){var i=e.length,r=new(typeof Uint8Array!=n+""?Uint8Array:Array)(i);r[0]=r[i-1]=1,this._simplifyDPStep(e,r,t,0,i-1);var o,a=[];for(o=0;i>o;o++)r[o]&&a.push(e[o]);return a},_simplifyDPStep:function(e,t,n,i,r){var o,a,s,l=0;for(a=i+1;r-1>=a;a++)(s=this._sqClosestPointOnSegment(e[a],e[i],e[r],!0))>l&&(o=a,l=s);l>n&&(t[o]=1,this._simplifyDPStep(e,t,n,i,o),this._simplifyDPStep(e,t,n,o,r))},_reducePoints:function(e,t){for(var n=[e[0]],i=1,r=0,o=e.length;o>i;i++)this._sqDist(e[i],e[r])>t&&(n.push(e[i]),r=i);return o-1>r&&n.push(e[o-1]),n},clipSegment:function(e,t,n,i){var r,o,a,s=i?this._lastCode:this._getBitCode(e,n),l=this._getBitCode(t,n);for(this._lastCode=l;;){if(!(s|l))return[e,t];if(s&l)return!1;r=s||l,o=this._getEdgeIntersection(e,t,r,n),a=this._getBitCode(o,n),r===s?(e=o,s=a):(t=o,l=a)}},_getEdgeIntersection:function(e,t,n,i){var o=t.x-e.x,a=t.y-e.y,s=i.min,l=i.max;return 8&n?new r.Point(e.x+o*(l.y-e.y)/a,l.y):4&n?new r.Point(e.x+o*(s.y-e.y)/a,s.y):2&n?new r.Point(l.x,e.y+a*(l.x-e.x)/o):1&n?new r.Point(s.x,e.y+a*(s.x-e.x)/o):void 0},_getBitCode:function(e,t){var n=0;return e.x<t.min.x?n|=1:e.x>t.max.x&&(n|=2),e.y<t.min.y?n|=4:e.y>t.max.y&&(n|=8),n},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i},_sqClosestPointOnSegment:function(e,t,n,i){var o,a=t.x,s=t.y,l=n.x-a,u=n.y-s,c=l*l+u*u;return c>0&&((o=((e.x-a)*l+(e.y-s)*u)/c)>1?(a=n.x,s=n.y):o>0&&(a+=l*o,s+=u*o)),l=e.x-a,u=e.y-s,i?l*l+u*u:new r.Point(a,s)}},r.Polyline=r.Path.extend({initialize:function(e,t){r.Path.prototype.initialize.call(this,t),this._latlngs=this._convertLatLngs(e)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var e=0,t=this._latlngs.length;t>e;e++)this._originalPoints[e]=this._map.latLngToLayerPoint(this._latlngs[e])},getPathString:function(){for(var e=0,t=this._parts.length,n="";t>e;e++)n+=this._getPathPartStr(this._parts[e]);return n},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._latlngs=this._convertLatLngs(e),this.redraw()},addLatLng:function(e){return this._latlngs.push(r.latLng(e)),this.redraw()},spliceLatLngs:function(){var e=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),e},closestLayerPoint:function(e){for(var t,n,i=1/0,o=this._parts,a=null,s=0,l=o.length;l>s;s++)for(var u=o[s],c=1,d=u.length;d>c;c++){t=u[c-1],n=u[c];var h=r.LineUtil._sqClosestPointOnSegment(e,t,n,!0);i>h&&(i=h,a=r.LineUtil._sqClosestPointOnSegment(e,t,n))}return a&&(a.distance=Math.sqrt(i)),a},getBounds:function(){return new r.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(e,t){var n,i,o=t?e:[];for(n=0,i=e.length;i>n;n++){if(r.Util.isArray(e[n])&&"number"!=typeof e[n][0])return;o[n]=r.latLng(e[n])}return o},_initEvents:function(){r.Path.prototype._initEvents.call(this)},_getPathPartStr:function(e){for(var t,n=r.Path.VML,i=0,o=e.length,a="";o>i;i++)t=e[i],n&&t._round(),a+=(i?"L":"M")+t.x+" "+t.y;return a},_clipPoints:function(){var e,t,n,i=this._originalPoints,o=i.length;if(this.options.noClip)this._parts=[i];else{this._parts=[];var a=this._parts,s=this._map._pathViewport,l=r.LineUtil;for(e=0,t=0;o-1>e;e++)(n=l.clipSegment(i[e],i[e+1],s,e))&&(a[t]=a[t]||[],a[t].push(n[0]),(n[1]!==i[e+1]||e===o-2)&&(a[t].push(n[1]),t++))}},_simplifyPoints:function(){for(var e=this._parts,t=r.LineUtil,n=0,i=e.length;i>n;n++)e[n]=t.simplify(e[n],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),r.Path.prototype._updatePath.call(this))}}),r.polyline=function(e,t){return new r.Polyline(e,t)},r.PolyUtil={},r.PolyUtil.clipPolygon=function(e,t){var n,i,o,a,s,l,u,c,d,h=[1,4,2,8],f=r.LineUtil;for(i=0,u=e.length;u>i;i++)e[i]._code=f._getBitCode(e[i],t);for(a=0;4>a;a++){for(c=h[a],n=[],i=0,o=(u=e.length)-1;u>i;o=i++)s=e[i],l=e[o],s._code&c?l._code&c||((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)):(l._code&c&&((d=f._getEdgeIntersection(l,s,c,t))._code=f._getBitCode(d,t),n.push(d)),n.push(s));e=n}return e},r.Polygon=r.Polyline.extend({options:{fill:!0},initialize:function(e,t){r.Polyline.prototype.initialize.call(this,e,t),this._initWithHoles(e)},_initWithHoles:function(e){var t,n,i;if(e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0])for(this._latlngs=this._convertLatLngs(e[0]),this._holes=e.slice(1),t=0,n=this._holes.length;n>t;t++)(i=this._holes[t]=this._convertLatLngs(this._holes[t]))[0].equals(i[i.length-1])&&i.pop();(e=this._latlngs).length>=2&&e[0].equals(e[e.length-1])&&e.pop()},projectLatlngs:function(){var e,t,n,i;if(r.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes)for(e=0,n=this._holes.length;n>e;e++)for(this._holePoints[e]=[],t=0,i=this._holes[e].length;i>t;t++)this._holePoints[e][t]=this._map.latLngToLayerPoint(this._holes[e][t])},setLatLngs:function(e){return e&&r.Util.isArray(e[0])&&"number"!=typeof e[0][0]?(this._initWithHoles(e),this.redraw()):r.Polyline.prototype.setLatLngs.call(this,e)},_clipPoints:function(){var e=this._originalPoints,t=[];if(this._parts=[e].concat(this._holePoints),!this.options.noClip){for(var n=0,i=this._parts.length;i>n;n++){var o=r.PolyUtil.clipPolygon(this._parts[n],this._map._pathViewport);o.length&&t.push(o)}this._parts=t}},_getPathPartStr:function(e){return r.Polyline.prototype._getPathPartStr.call(this,e)+(r.Browser.svg?"z":"x")}}),r.polygon=function(e,t){return new r.Polygon(e,t)},function(){function e(e){return r.FeatureGroup.extend({initialize:function(e,t){this._layers={},this._options=t,this.setLatLngs(e)},setLatLngs:function(t){var n=0,i=t.length;for(this.eachLayer((function(e){i>n?e.setLatLngs(t[n++]):this.removeLayer(e)}),this);i>n;)this.addLayer(new e(t[n++],this._options));return this},getLatLngs:function(){var e=[];return this.eachLayer((function(t){e.push(t.getLatLngs())})),e}})}r.MultiPolyline=e(r.Polyline),r.MultiPolygon=e(r.Polygon),r.multiPolyline=function(e,t){return new r.MultiPolyline(e,t)},r.multiPolygon=function(e,t){return new r.MultiPolygon(e,t)}}(),r.Rectangle=r.Polygon.extend({initialize:function(e,t){r.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return[(e=r.latLngBounds(e)).getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}}),r.rectangle=function(e,t){return new r.Rectangle(e,t)},r.Circle=r.Path.extend({initialize:function(e,t,n){r.Path.prototype.initialize.call(this,n),this._latlng=r.latLng(e),this._mRadius=t},options:{fill:!0},setLatLng:function(e){return this._latlng=r.latLng(e),this.redraw()},setRadius:function(e){return this._mRadius=e,this.redraw()},projectLatlngs:function(){var e=this._getLngRadius(),t=this._latlng,n=this._map.latLngToLayerPoint([t.lat,t.lng-e]);this._point=this._map.latLngToLayerPoint(t),this._radius=Math.max(this._point.x-n.x,1)},getBounds:function(){var e=this._getLngRadius(),t=this._mRadius/40075017*360,n=this._latlng;return new r.LatLngBounds([n.lat-t,n.lng-e],[n.lat+t,n.lng+e])},getLatLng:function(){return this._latlng},getPathString:function(){var e=this._point,t=this._radius;return this._checkIfEmpty()?"":r.Browser.svg?"M"+e.x+","+(e.y-t)+"A"+t+","+t+",0,1,1,"+(e.x-.1)+","+(e.y-t)+" z":(e._round(),t=Math.round(t),"AL "+e.x+","+e.y+" "+t+","+t+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(r.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var e=this._map._pathViewport,t=this._radius,n=this._point;return n.x-t>e.max.x||n.y-t>e.max.y||n.x+t<e.min.x||n.y+t<e.min.y}}),r.circle=function(e,t,n){return new r.Circle(e,t,n)},r.CircleMarker=r.Circle.extend({options:{radius:10,weight:2},initialize:function(e,t){r.Circle.prototype.initialize.call(this,e,null,t),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){r.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(e){return r.Circle.prototype.setLatLng.call(this,e),this._popup&&this._popup._isOpen&&this._popup.setLatLng(e),this},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius}}),r.circleMarker=function(e,t){return new r.CircleMarker(e,t)},r.Polyline.include(r.Path.CANVAS?{_containsPoint:function(e,t){var n,i,o,a,s,l,u=this.options.weight/2;for(r.Browser.touch&&(u+=10),n=0,a=this._parts.length;a>n;n++)for(i=0,o=(s=(l=this._parts[n]).length)-1;s>i;o=i++)if((t||0!==i)&&u>=r.LineUtil.pointToSegmentDistance(e,l[o],l[i]))return!0;return!1}}:{}),r.Polygon.include(r.Path.CANVAS?{_containsPoint:function(e){var t,n,i,o,a,s,l,u,c=!1;if(r.Polyline.prototype._containsPoint.call(this,e,!0))return!0;for(o=0,l=this._parts.length;l>o;o++)for(a=0,s=(u=(t=this._parts[o]).length)-1;u>a;s=a++)n=t[a],i=t[s],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(c=!c);return c}}:{}),r.Circle.include(r.Path.CANVAS?{_drawPath:function(){var e=this._point;this._ctx.beginPath(),this._ctx.arc(e.x,e.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(e){var t=this._point,n=this.options.stroke?this.options.weight/2:0;return e.distanceTo(t)<=this._radius+n}}:{}),r.CircleMarker.include(r.Path.CANVAS?{_updateStyle:function(){r.Path.prototype._updateStyle.call(this)}}:{}),r.GeoJSON=r.FeatureGroup.extend({initialize:function(e,t){r.setOptions(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t,n,i,o=r.Util.isArray(e)?e:e.features;if(o){for(t=0,n=o.length;n>t;t++)((i=o[t]).geometries||i.geometry||i.features||i.coordinates)&&this.addData(o[t]);return this}var a=this.options;if(!a.filter||a.filter(e)){var s=r.GeoJSON.geometryToLayer(e,a.pointToLayer,a.coordsToLatLng,a);return s.feature=r.GeoJSON.asFeature(e),s.defaultOptions=s.options,this.resetStyle(s),a.onEachFeature&&a.onEachFeature(e,s),this.addLayer(s)}},resetStyle:function(e){var t=this.options.style;t&&(r.Util.extend(e.options,e.defaultOptions),this._setLayerStyle(e,t))},setStyle:function(e){this.eachLayer((function(t){this._setLayerStyle(t,e)}),this)},_setLayerStyle:function(e,t){"function"==typeof t&&(t=t(e.feature)),e.setStyle&&e.setStyle(t)}}),r.extend(r.GeoJSON,{geometryToLayer:function(e,t,n,i){var o,a,s,l,u="Feature"===e.type?e.geometry:e,c=u.coordinates,d=[];switch(n=n||this.coordsToLatLng,u.type){case"Point":return o=n(c),t?t(e,o):new r.Marker(o);case"MultiPoint":for(s=0,l=c.length;l>s;s++)o=n(c[s]),d.push(t?t(e,o):new r.Marker(o));return new r.FeatureGroup(d);case"LineString":return a=this.coordsToLatLngs(c,0,n),new r.Polyline(a,i);case"Polygon":if(2===c.length&&!c[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(c,1,n),new r.Polygon(a,i);case"MultiLineString":return a=this.coordsToLatLngs(c,1,n),new r.MultiPolyline(a,i);case"MultiPolygon":return a=this.coordsToLatLngs(c,2,n),new r.MultiPolygon(a,i);case"GeometryCollection":for(s=0,l=u.geometries.length;l>s;s++)d.push(this.geometryToLayer({geometry:u.geometries[s],type:"Feature",properties:e.properties},t,n,i));return new r.FeatureGroup(d);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(e){return new r.LatLng(e[1],e[0],e[2])},coordsToLatLngs:function(e,t,n){var i,r,o,a=[];for(r=0,o=e.length;o>r;r++)i=t?this.coordsToLatLngs(e[r],t-1,n):(n||this.coordsToLatLng)(e[r]),a.push(i);return a},latLngToCoords:function(e){var t=[e.lng,e.lat];return e.alt!==n&&t.push(e.alt),t},latLngsToCoords:function(e){for(var t=[],n=0,i=e.length;i>n;n++)t.push(r.GeoJSON.latLngToCoords(e[n]));return t},getFeature:function(e,t){return e.feature?r.extend({},e.feature,{geometry:t}):r.GeoJSON.asFeature(t)},asFeature:function(e){return"Feature"===e.type?e:{type:"Feature",properties:{},geometry:e}}});var a={toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"Point",coordinates:r.GeoJSON.latLngToCoords(this.getLatLng())})}};r.Marker.include(a),r.Circle.include(a),r.CircleMarker.include(a),r.Polyline.include({toGeoJSON:function(){return r.GeoJSON.getFeature(this,{type:"LineString",coordinates:r.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),r.Polygon.include({toGeoJSON:function(){var e,t,n,i=[r.GeoJSON.latLngsToCoords(this.getLatLngs())];if(i[0].push(i[0][0]),this._holes)for(e=0,t=this._holes.length;t>e;e++)(n=r.GeoJSON.latLngsToCoords(this._holes[e])).push(n[0]),i.push(n);return r.GeoJSON.getFeature(this,{type:"Polygon",coordinates:i})}}),function(){function e(e){return function(){var t=[];return this.eachLayer((function(e){t.push(e.toGeoJSON().geometry.coordinates)})),r.GeoJSON.getFeature(this,{type:e,coordinates:t})}}r.MultiPolyline.include({toGeoJSON:e("MultiLineString")}),r.MultiPolygon.include({toGeoJSON:e("MultiPolygon")}),r.LayerGroup.include({toGeoJSON:function(){var t,n=this.feature&&this.feature.geometry,i=[];if(n&&"MultiPoint"===n.type)return e("MultiPoint").call(this);var o=n&&"GeometryCollection"===n.type;return this.eachLayer((function(e){e.toGeoJSON&&(t=e.toGeoJSON(),i.push(o?t.geometry:r.GeoJSON.asFeature(t)))})),o?r.GeoJSON.getFeature(this,{geometries:i,type:"GeometryCollection"}):{type:"FeatureCollection",features:i}}})}(),r.geoJson=function(e,t){return new r.GeoJSON(e,t)},r.DomEvent={addListener:function(e,t,n,i){var o,a,s,l=r.stamp(n),u="_leaflet_"+t+l;return e[u]?this:(o=function(t){return n.call(i||e,t||r.DomEvent._getEvent())},r.Browser.pointer&&0===t.indexOf("touch")?this.addPointerListener(e,t,o,l):(r.Browser.touch&&"dblclick"===t&&this.addDoubleTapListener&&this.addDoubleTapListener(e,o,l),"addEventListener"in e?"mousewheel"===t?(e.addEventListener("DOMMouseScroll",o,!1),e.addEventListener(t,o,!1)):"mouseenter"===t||"mouseleave"===t?(a=o,s="mouseenter"===t?"mouseover":"mouseout",o=function(t){return r.DomEvent._checkMouse(e,t)?a(t):void 0},e.addEventListener(s,o,!1)):"click"===t&&r.Browser.android?(a=o,o=function(e){return r.DomEvent._filterClick(e,a)},e.addEventListener(t,o,!1)):e.addEventListener(t,o,!1):"attachEvent"in e&&e.attachEvent("on"+t,o),e[u]=o,this))},removeListener:function(e,t,n){var i=r.stamp(n),o="_leaflet_"+t+i,a=e[o];return a?(r.Browser.pointer&&0===t.indexOf("touch")?this.removePointerListener(e,t,i):r.Browser.touch&&"dblclick"===t&&this.removeDoubleTapListener?this.removeDoubleTapListener(e,i):"removeEventListener"in e?"mousewheel"===t?(e.removeEventListener("DOMMouseScroll",a,!1),e.removeEventListener(t,a,!1)):"mouseenter"===t||"mouseleave"===t?e.removeEventListener("mouseenter"===t?"mouseover":"mouseout",a,!1):e.removeEventListener(t,a,!1):"detachEvent"in e&&e.detachEvent("on"+t,a),e[o]=null,this):this},stopPropagation:function(e){return e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,r.DomEvent._skipped(e),this},disableScrollPropagation:function(e){var t=r.DomEvent.stopPropagation;return r.DomEvent.on(e,"mousewheel",t).on(e,"MozMousePixelScroll",t)},disableClickPropagation:function(e){for(var t=r.DomEvent.stopPropagation,n=r.Draggable.START.length-1;n>=0;n--)r.DomEvent.on(e,r.Draggable.START[n],t);return r.DomEvent.on(e,"click",r.DomEvent._fakeStop).on(e,"dblclick",t)},preventDefault:function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this},stop:function(e){return r.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,t){if(!t)return new r.Point(e.clientX,e.clientY);var n=t.getBoundingClientRect();return new r.Point(e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop)},getWheelDelta:function(e){var t=0;return e.wheelDelta&&(t=e.wheelDelta/120),e.detail&&(t=-e.detail/3),t},_skipEvents:{},_fakeStop:function(e){r.DomEvent._skipEvents[e.type]=!0},_skipped:function(e){var t=this._skipEvents[e.type];return this._skipEvents[e.type]=!1,t},_checkMouse:function(e,t){var n=t.relatedTarget;if(!n)return!0;try{for(;n&&n!==e;)n=n.parentNode}catch(e){return!1}return n!==e},_getEvent:function(){var t=e.event;if(!t)for(var n=arguments.callee.caller;n&&(!(t=n.arguments[0])||e.Event!==t.constructor);)n=n.caller;return t},_filterClick:function(e,t){var n=e.timeStamp||e.originalEvent.timeStamp,i=r.DomEvent._lastClick&&n-r.DomEvent._lastClick;return i&&i>100&&500>i||e.target._simulatedClick&&!e._simulated?void r.DomEvent.stop(e):(r.DomEvent._lastClick=n,t(e))}},r.DomEvent.on=r.DomEvent.addListener,r.DomEvent.off=r.DomEvent.removeListener,r.Draggable=r.Class.extend({includes:r.Mixin.Events,statics:{START:r.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(e,t){this._element=e,this._dragStartTarget=t||e},enable:function(){if(!this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.on(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var e=r.Draggable.START.length-1;e>=0;e--)r.DomEvent.off(this._dragStartTarget,r.Draggable.START[e],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(e){if(this._moved=!1,!e.shiftKey&&(1===e.which||1===e.button||e.touches)&&(r.DomEvent.stopPropagation(e),!r.Draggable._disabled&&(r.DomUtil.disableImageDrag(),r.DomUtil.disableTextSelection(),!this._moving))){var n=e.touches?e.touches[0]:e;this._startPoint=new r.Point(n.clientX,n.clientY),this._startPos=this._newPos=r.DomUtil.getPosition(this._element),r.DomEvent.on(t,r.Draggable.MOVE[e.type],this._onMove,this).on(t,r.Draggable.END[e.type],this._onUp,this)}},_onMove:function(e){if(e.touches&&e.touches.length>1)this._moved=!0;else{var n=e.touches&&1===e.touches.length?e.touches[0]:e,i=new r.Point(n.clientX,n.clientY).subtract(this._startPoint);(i.x||i.y)&&(r.Browser.touch&&Math.abs(i.x)+Math.abs(i.y)<3||(r.DomEvent.preventDefault(e),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=r.DomUtil.getPosition(this._element).subtract(i),r.DomUtil.addClass(t.body,"leaflet-dragging"),this._lastTarget=e.target||e.srcElement,r.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(i),this._moving=!0,r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))}},_updatePosition:function(){this.fire("predrag"),r.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){for(var e in r.DomUtil.removeClass(t.body,"leaflet-dragging"),this._lastTarget&&(r.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),r.Draggable.MOVE)r.DomEvent.off(t,r.Draggable.MOVE[e],this._onMove).off(t,r.Draggable.END[e],this._onUp);r.DomUtil.enableImageDrag(),r.DomUtil.enableTextSelection(),this._moved&&this._moving&&(r.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),r.Handler=r.Class.extend({initialize:function(e){this._map=e},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),r.Map.mergeOptions({dragging:!0,inertia:!r.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:r.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),r.Map.Drag=r.Handler.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new r.Draggable(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),e.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),e.on("viewreset",this._onViewReset,this),e.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var e=this._map;e._panAnim&&e._panAnim.stop(),e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var e=this._lastTime=+new Date,t=this._lastPos=this._draggable._newPos;this._positions.push(t),this._times.push(e),e-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var e=this._map.getSize()._divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,i=this._draggable._newPos.x,r=(i-t+n)%e+t-n,o=(i+t+n)%e-t-n,a=Math.abs(r+n)<Math.abs(o+n)?r:o;this._draggable._newPos.x=a},_onDragEnd:function(e){var t=this._map,n=t.options,i=+new Date-this._lastTime,o=!n.inertia||i>n.inertiaThreshold||!this._positions[0];if(t.fire("dragend",e),o)t.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),s=(this._lastTime+i-this._times[0])/1e3,l=n.easeLinearity,u=a.multiplyBy(l/s),c=u.distanceTo([0,0]),d=Math.min(n.inertiaMaxSpeed,c),h=u.multiplyBy(d/c),f=d/(n.inertiaDeceleration*l),p=h.multiplyBy(-f/2).round();p.x&&p.y?(p=t._limitOffset(p,t.options.maxBounds),r.Util.requestAnimFrame((function(){t.panBy(p,{duration:f,easeLinearity:l,noMoveStart:!0})}))):t.fire("moveend")}}}),r.Map.addInitHook("addHandler","dragging",r.Map.Drag),r.Map.mergeOptions({doubleClickZoom:!0}),r.Map.DoubleClickZoom=r.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom()+(e.originalEvent.shiftKey?-1:1);"center"===t.options.doubleClickZoom?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}}),r.Map.addInitHook("addHandler","doubleClickZoom",r.Map.DoubleClickZoom),r.Map.mergeOptions({scrollWheelZoom:!0}),r.Map.ScrollWheelZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),r.DomEvent.on(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault),this._delta=0},removeHooks:function(){r.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),r.DomEvent.off(this._map._container,"MozMousePixelScroll",r.DomEvent.preventDefault)},_onWheelScroll:function(e){var t=r.DomEvent.getWheelDelta(e);this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||(this._startTime=+new Date);var n=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(r.bind(this._performZoom,this),n),r.DomEvent.preventDefault(e),r.DomEvent.stopPropagation(e)},_performZoom:function(){var e=this._map,t=this._delta,n=e.getZoom();t=t>0?Math.ceil(t):Math.floor(t),t=Math.max(Math.min(t,4),-4),t=e._limitZoom(n+t)-n,this._delta=0,this._startTime=null,t&&("center"===e.options.scrollWheelZoom?e.setZoom(n+t):e.setZoomAround(this._lastMousePos,n+t))}}),r.Map.addInitHook("addHandler","scrollWheelZoom",r.Map.ScrollWheelZoom),r.extend(r.DomEvent,{_touchstart:r.Browser.msPointer?"MSPointerDown":r.Browser.pointer?"pointerdown":"touchstart",_touchend:r.Browser.msPointer?"MSPointerUp":r.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(e,n,i){function o(e){var t;if(r.Browser.pointer?(p.push(e.pointerId),t=p.length):t=e.touches.length,!(t>1)){var n=Date.now(),i=n-(s||n);l=e.touches?e.touches[0]:e,u=i>0&&c>=i,s=n}}function a(e){if(r.Browser.pointer){var t=p.indexOf(e.pointerId);if(-1===t)return;p.splice(t,1)}if(u){if(r.Browser.pointer){var i,o={};for(var a in l)i=l[a],o[a]="function"==typeof i?i.bind(l):i;l=o}l.type="dblclick",n(l),s=null}}var s,l,u=!1,c=250,d="_leaflet_",h=this._touchstart,f=this._touchend,p=[];e[d+h+i]=o,e[d+f+i]=a;var m=r.Browser.pointer?t.documentElement:e;return e.addEventListener(h,o,!1),m.addEventListener(f,a,!1),r.Browser.pointer&&m.addEventListener(r.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(e,n){var i="_leaflet_";return e.removeEventListener(this._touchstart,e[i+this._touchstart+n],!1),(r.Browser.pointer?t.documentElement:e).removeEventListener(this._touchend,e[i+this._touchend+n],!1),r.Browser.pointer&&t.documentElement.removeEventListener(r.DomEvent.POINTER_CANCEL,e[i+this._touchend+n],!1),this}}),r.extend(r.DomEvent,{POINTER_DOWN:r.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:r.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:r.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:r.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(e,t,n,i){switch(t){case"touchstart":return this.addPointerListenerStart(e,t,n,i);case"touchend":return this.addPointerListenerEnd(e,t,n,i);case"touchmove":return this.addPointerListenerMove(e,t,n,i);default:throw"Unknown touch event type"}},addPointerListenerStart:function(e,n,i,o){var a=this._pointers,s=function(e){"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&r.DomEvent.preventDefault(e);for(var t=!1,n=0;n<a.length;n++)if(a[n].pointerId===e.pointerId){t=!0;break}t||a.push(e),e.touches=a.slice(),e.changedTouches=[e],i(e)};if(e["_leaflet_touchstart"+o]=s,e.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocumentListener){var l=function(e){for(var t=0;t<a.length;t++)if(a[t].pointerId===e.pointerId){a.splice(t,1);break}};t.documentElement.addEventListener(this.POINTER_UP,l,!1),t.documentElement.addEventListener(this.POINTER_CANCEL,l,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(e,t,n,i){function r(e){if(e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&"mouse"!==e.pointerType||0!==e.buttons){for(var t=0;t<o.length;t++)if(o[t].pointerId===e.pointerId){o[t]=e;break}e.touches=o.slice(),e.changedTouches=[e],n(e)}}var o=this._pointers;return e["_leaflet_touchmove"+i]=r,e.addEventListener(this.POINTER_MOVE,r,!1),this},addPointerListenerEnd:function(e,t,n,i){var r=this._pointers,o=function(e){for(var t=0;t<r.length;t++)if(r[t].pointerId===e.pointerId){r.splice(t,1);break}e.touches=r.slice(),e.changedTouches=[e],n(e)};return e["_leaflet_touchend"+i]=o,e.addEventListener(this.POINTER_UP,o,!1),e.addEventListener(this.POINTER_CANCEL,o,!1),this},removePointerListener:function(e,t,n){var i=e["_leaflet_"+t+n];switch(t){case"touchstart":e.removeEventListener(this.POINTER_DOWN,i,!1);break;case"touchmove":e.removeEventListener(this.POINTER_MOVE,i,!1);break;case"touchend":e.removeEventListener(this.POINTER_UP,i,!1),e.removeEventListener(this.POINTER_CANCEL,i,!1)}return this}}),r.Map.mergeOptions({touchZoom:r.Browser.touch&&!r.Browser.android23,bounceAtZoomLimits:!0}),r.Map.TouchZoom=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(e.touches&&2===e.touches.length&&!n._animatingZoom&&!this._zooming){var i=n.mouseEventToLayerPoint(e.touches[0]),o=n.mouseEventToLayerPoint(e.touches[1]),a=n._getCenterLayerPoint();this._startCenter=i.add(o)._divideBy(2),this._startDist=i.distanceTo(o),this._moved=!1,this._zooming=!0,this._centerOffset=a.subtract(this._startCenter),n._panAnim&&n._panAnim.stop(),r.DomEvent.on(t,"touchmove",this._onTouchMove,this).on(t,"touchend",this._onTouchEnd,this),r.DomEvent.preventDefault(e)}},_onTouchMove:function(e){var t=this._map;if(e.touches&&2===e.touches.length&&this._zooming){var n=t.mouseEventToLayerPoint(e.touches[0]),i=t.mouseEventToLayerPoint(e.touches[1]);this._scale=n.distanceTo(i)/this._startDist,this._delta=n._add(i)._divideBy(2)._subtract(this._startCenter),1!==this._scale&&(t.options.bounceAtZoomLimits||!(t.getZoom()===t.getMinZoom()&&this._scale<1||t.getZoom()===t.getMaxZoom()&&this._scale>1))&&(this._moved||(r.DomUtil.addClass(t._mapPane,"leaflet-touching"),t.fire("movestart").fire("zoomstart"),this._moved=!0),r.Util.cancelAnimFrame(this._animRequest),this._animRequest=r.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),r.DomEvent.preventDefault(e))}},_updateOnMove:function(){var e=this._map,t=this._getScaleOrigin(),n=e.layerPointToLatLng(t),i=e.getScaleZoom(this._scale);e._animateZoom(n,i,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(this._moved&&this._zooming){var e=this._map;this._zooming=!1,r.DomUtil.removeClass(e._mapPane,"leaflet-touching"),r.Util.cancelAnimFrame(this._animRequest),r.DomEvent.off(t,"touchmove",this._onTouchMove).off(t,"touchend",this._onTouchEnd);var n=this._getScaleOrigin(),i=e.layerPointToLatLng(n),o=e.getZoom(),a=e.getScaleZoom(this._scale)-o,s=a>0?Math.ceil(a):Math.floor(a),l=e._limitZoom(o+s),u=e.getZoomScale(l)/this._scale;e._animateZoom(i,l,n,u)}else this._zooming=!1},_getScaleOrigin:function(){var e=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(e)}}),r.Map.addInitHook("addHandler","touchZoom",r.Map.TouchZoom),r.Map.mergeOptions({tap:!0,tapTolerance:15}),r.Map.Tap=r.Handler.extend({addHooks:function(){r.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){r.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(e){if(e.touches){if(r.DomEvent.preventDefault(e),this._fireClick=!0,e.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var n=e.touches[0],i=n.target;this._startPos=this._newPos=new r.Point(n.clientX,n.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.addClass(i,"leaflet-active"),this._holdTimeout=setTimeout(r.bind((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",n))}),this),1e3),r.DomEvent.on(t,"touchmove",this._onMove,this).on(t,"touchend",this._onUp,this)}},_onUp:function(e){if(clearTimeout(this._holdTimeout),r.DomEvent.off(t,"touchmove",this._onMove,this).off(t,"touchend",this._onUp,this),this._fireClick&&e&&e.changedTouches){var n=e.changedTouches[0],i=n.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&r.DomUtil.removeClass(i,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",n)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(e){var t=e.touches[0];this._newPos=new r.Point(t.clientX,t.clientY)},_simulateEvent:function(n,i){var r=t.createEvent("MouseEvents");r._simulated=!0,i.target._simulatedClick=!0,r.initMouseEvent(n,!0,!0,e,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(r)}}),r.Browser.touch&&!r.Browser.pointer&&r.Map.addInitHook("addHandler","tap",r.Map.Tap),r.Map.mergeOptions({boxZoom:!0}),r.Map.BoxZoom=r.Handler.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._moved=!1},addHooks:function(){r.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){r.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(e){return this._moved=!1,!(!e.shiftKey||1!==e.which&&1!==e.button)&&(r.DomUtil.disableTextSelection(),r.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(e),void r.DomEvent.on(t,"mousemove",this._onMouseMove,this).on(t,"mouseup",this._onMouseUp,this).on(t,"keydown",this._onKeyDown,this))},_onMouseMove:function(e){this._moved||(this._box=r.DomUtil.create("div","leaflet-zoom-box",this._pane),r.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var t=this._startLayerPoint,n=this._box,i=this._map.mouseEventToLayerPoint(e),o=i.subtract(t),a=new r.Point(Math.min(i.x,t.x),Math.min(i.y,t.y));r.DomUtil.setPosition(n,a),this._moved=!0,n.style.width=Math.max(0,Math.abs(o.x)-4)+"px",n.style.height=Math.max(0,Math.abs(o.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),r.DomUtil.enableTextSelection(),r.DomUtil.enableImageDrag(),r.DomEvent.off(t,"mousemove",this._onMouseMove).off(t,"mouseup",this._onMouseUp).off(t,"keydown",this._onKeyDown)},_onMouseUp:function(e){this._finish();var t=this._map,n=t.mouseEventToLayerPoint(e);if(!this._startLayerPoint.equals(n)){var i=new r.LatLngBounds(t.layerPointToLatLng(this._startLayerPoint),t.layerPointToLatLng(n));t.fitBounds(i),t.fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(e){27===e.keyCode&&this._finish()}}),r.Map.addInitHook("addHandler","boxZoom",r.Map.BoxZoom),r.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),r.Map.Keyboard=r.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(e){this._map=e,this._setPanOffset(e.options.keyboardPanOffset),this._setZoomOffset(e.options.keyboardZoomOffset)},addHooks:function(){var e=this._map._container;-1===e.tabIndex&&(e.tabIndex="0"),r.DomEvent.on(e,"focus",this._onFocus,this).on(e,"blur",this._onBlur,this).on(e,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var e=this._map._container;r.DomEvent.off(e,"focus",this._onFocus,this).off(e,"blur",this._onBlur,this).off(e,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var n=t.body,i=t.documentElement,r=n.scrollTop||i.scrollTop,o=n.scrollLeft||i.scrollLeft;this._map._container.focus(),e.scrollTo(o,r)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(e){var t,n,i=this._panKeys={},r=this.keyCodes;for(t=0,n=r.left.length;n>t;t++)i[r.left[t]]=[-1*e,0];for(t=0,n=r.right.length;n>t;t++)i[r.right[t]]=[e,0];for(t=0,n=r.down.length;n>t;t++)i[r.down[t]]=[0,e];for(t=0,n=r.up.length;n>t;t++)i[r.up[t]]=[0,-1*e]},_setZoomOffset:function(e){var t,n,i=this._zoomKeys={},r=this.keyCodes;for(t=0,n=r.zoomIn.length;n>t;t++)i[r.zoomIn[t]]=e;for(t=0,n=r.zoomOut.length;n>t;t++)i[r.zoomOut[t]]=-e},_addHooks:function(){r.DomEvent.on(t,"keydown",this._onKeyDown,this)},_removeHooks:function(){r.DomEvent.off(t,"keydown",this._onKeyDown,this)},_onKeyDown:function(e){var t=e.keyCode,n=this._map;if(t in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;n.panBy(this._panKeys[t]),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else{if(!(t in this._zoomKeys))return;n.setZoom(n.getZoom()+this._zoomKeys[t])}r.DomEvent.stop(e)}}),r.Map.addInitHook("addHandler","keyboard",r.Map.Keyboard),r.Handler.MarkerDrag=r.Handler.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||(this._draggable=new r.Draggable(e,e)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),r.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),r.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var e=this._marker,t=e._shadow,n=r.DomUtil.getPosition(e._icon),i=e._map.layerPointToLatLng(n);t&&r.DomUtil.setPosition(t,n),e._latlng=i,e.fire("move",{latlng:i}).fire("drag")},_onDragEnd:function(e){this._marker.fire("moveend").fire("dragend",e)}}),r.Control=r.Class.extend({options:{position:"topright"},initialize:function(e){r.setOptions(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),i=e._controlCorners[n];return r.DomUtil.addClass(t,"leaflet-control"),-1!==n.indexOf("bottom")?i.insertBefore(t,i.firstChild):i.appendChild(t),this},removeFrom:function(e){var t=this.getPosition();return e._controlCorners[t].removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(e),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),r.control=function(e){return new r.Control(e)},r.Map.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.removeFrom(this),this},_initControlPos:function(){function e(e,o){var a=n+e+" "+n+o;t[e+o]=r.DomUtil.create("div",a,i)}var t=this._controlCorners={},n="leaflet-",i=this._controlContainer=r.DomUtil.create("div",n+"control-container",this._container);e("top","left"),e("top","right"),e("bottom","left"),e("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),r.Control.Zoom=r.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(e){var t="leaflet-control-zoom",n=r.DomUtil.create("div",t+" leaflet-bar");return this._map=e,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,t+"-in",n,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,t+"-out",n,this._zoomOut,this),this._updateDisabled(),e.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(e){e.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(e,t,n,i,o,a){var s=r.DomUtil.create("a",n,i);s.innerHTML=e,s.href="#",s.title=t;var l=r.DomEvent.stopPropagation;return r.DomEvent.on(s,"click",l).on(s,"mousedown",l).on(s,"dblclick",l).on(s,"click",r.DomEvent.preventDefault).on(s,"click",o,a).on(s,"click",this._refocusOnMap,a),s},_updateDisabled:function(){var e=this._map,t="leaflet-disabled";r.DomUtil.removeClass(this._zoomInButton,t),r.DomUtil.removeClass(this._zoomOutButton,t),e._zoom===e.getMinZoom()&&r.DomUtil.addClass(this._zoomOutButton,t),e._zoom===e.getMaxZoom()&&r.DomUtil.addClass(this._zoomInButton,t)}}),r.Map.mergeOptions({zoomControl:!0}),r.Map.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new r.Control.Zoom,this.addControl(this.zoomControl))})),r.control.zoom=function(e){return new r.Control.Zoom(e)},r.Control.Attribution=r.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(e){r.setOptions(this,e),this._attributions={}},onAdd:function(e){for(var t in this._container=r.DomUtil.create("div","leaflet-control-attribution"),r.DomEvent.disableClickPropagation(this._container),e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return e.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(e){e.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e?(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update(),this):void 0},removeAttribution:function(e){return e?(this._attributions[e]&&(this._attributions[e]--,this._update()),this):void 0},_update:function(){if(this._map){var e=[];for(var t in this._attributions)this._attributions[t]&&e.push(t);var n=[];this.options.prefix&&n.push(this.options.prefix),e.length&&n.push(e.join(", ")),this._container.innerHTML=n.join(" | ")}},_onLayerAdd:function(e){e.layer.getAttribution&&this.addAttribution(e.layer.getAttribution())},_onLayerRemove:function(e){e.layer.getAttribution&&this.removeAttribution(e.layer.getAttribution())}}),r.Map.mergeOptions({attributionControl:!0}),r.Map.addInitHook((function(){this.options.attributionControl&&(this.attributionControl=(new r.Control.Attribution).addTo(this))})),r.control.attribution=function(e){return new r.Control.Attribution(e)},r.Control.Scale=r.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(e){this._map=e;var t="leaflet-control-scale",n=r.DomUtil.create("div",t),i=this.options;return this._addScales(i,t,n),e.on(i.updateWhenIdle?"moveend":"move",this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(e,t,n){e.metric&&(this._mScale=r.DomUtil.create("div",t+"-line",n)),e.imperial&&(this._iScale=r.DomUtil.create("div",t+"-line",n))},_update:function(){var e=this._map.getBounds(),t=e.getCenter().lat,n=6378137*Math.PI*Math.cos(t*Math.PI/180)*(e.getNorthEast().lng-e.getSouthWest().lng)/180,i=this._map.getSize(),r=this.options,o=0;i.x>0&&(o=n*(r.maxWidth/i.x)),this._updateScales(r,o)},_updateScales:function(e,t){e.metric&&t&&this._updateMetric(t),e.imperial&&t&&this._updateImperial(t)},_updateMetric:function(e){var t=this._getRoundNum(e);this._mScale.style.width=this._getScaleWidth(t/e)+"px",this._mScale.innerHTML=1e3>t?t+" m":t/1e3+" km"},_updateImperial:function(e){var t,n,i,r=3.2808399*e,o=this._iScale;r>5280?(t=r/5280,n=this._getRoundNum(t),o.style.width=this._getScaleWidth(n/t)+"px",o.innerHTML=n+" mi"):(i=this._getRoundNum(r),o.style.width=this._getScaleWidth(i/r)+"px",o.innerHTML=i+" ft")},_getScaleWidth:function(e){return Math.round(this.options.maxWidth*e)-10},_getRoundNum:function(e){var t=Math.pow(10,(Math.floor(e)+"").length-1),n=e/t;return t*(n>=10?10:n>=5?5:n>=3?3:n>=2?2:1)}}),r.control.scale=function(e){return new r.Control.Scale(e)},r.Control.Layers=r.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(e,t,n){for(var i in r.setOptions(this,n),this._layers={},this._lastZIndex=0,this._handlingClick=!1,e)this._addLayer(e[i],i);for(i in t)this._addLayer(t[i],i,!0)},onAdd:function(e){return this._initLayout(),this._update(),e.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(e){e.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._update(),this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._update(),this},removeLayer:function(e){var t=r.stamp(e);return delete this._layers[t],this._update(),this},_initLayout:function(){var e="leaflet-control-layers",t=this._container=r.DomUtil.create("div",e);t.setAttribute("aria-haspopup",!0),r.Browser.touch?r.DomEvent.on(t,"click",r.DomEvent.stopPropagation):r.DomEvent.disableClickPropagation(t).disableScrollPropagation(t);var n=this._form=r.DomUtil.create("form",e+"-list");if(this.options.collapsed){r.Browser.android||r.DomEvent.on(t,"mouseover",this._expand,this).on(t,"mouseout",this._collapse,this);var i=this._layersLink=r.DomUtil.create("a",e+"-toggle",t);i.href="#",i.title="Layers",r.Browser.touch?r.DomEvent.on(i,"click",r.DomEvent.stop).on(i,"click",this._expand,this):r.DomEvent.on(i,"focus",this._expand,this),r.DomEvent.on(n,"click",(function(){setTimeout(r.bind(this._onInputClick,this),0)}),this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=r.DomUtil.create("div",e+"-base",n),this._separator=r.DomUtil.create("div",e+"-separator",n),this._overlaysList=r.DomUtil.create("div",e+"-overlays",n),t.appendChild(n)},_addLayer:function(e,t,n){var i=r.stamp(e);this._layers[i]={layer:e,name:t,overlay:n},this.options.autoZIndex&&e.setZIndex&&(this._lastZIndex++,e.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var e,t,n=!1,i=!1;for(e in this._layers)t=this._layers[e],this._addItem(t),i=i||t.overlay,n=n||!t.overlay;this._separator.style.display=i&&n?"":"none"}},_onLayerChange:function(e){var t=this._layers[r.stamp(e.layer)];if(t){this._handlingClick||this._update();var n=t.overlay?"layeradd"===e.type?"overlayadd":"overlayremove":"layeradd"===e.type?"baselayerchange":null;n&&this._map.fire(n,t)}},_createRadioElement:function(e,n){var i='<input type="radio" class="leaflet-control-layers-selector" name="'+e+'"';n&&(i+=' checked="checked"'),i+="/>";var r=t.createElement("div");return r.innerHTML=i,r.firstChild},_addItem:function(e){var n,i=t.createElement("label"),o=this._map.hasLayer(e.layer);e.overlay?((n=t.createElement("input")).type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=o):n=this._createRadioElement("leaflet-base-layers",o),n.layerId=r.stamp(e.layer),r.DomEvent.on(n,"click",this._onInputClick,this);var a=t.createElement("span");return a.innerHTML=" "+e.name,i.appendChild(n),i.appendChild(a),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(i),i},_onInputClick:function(){var e,t,n,i=this._form.getElementsByTagName("input"),r=i.length;for(this._handlingClick=!0,e=0;r>e;e++)t=i[e],n=this._layers[t.layerId],t.checked&&!this._map.hasLayer(n.layer)?this._map.addLayer(n.layer):!t.checked&&this._map.hasLayer(n.layer)&&this._map.removeLayer(n.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){r.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),r.control.layers=function(e,t,n){return new r.Control.Layers(e,t,n)},r.PosAnimation=r.Class.extend({includes:r.Mixin.Events,run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._newPos=t,this.fire("start"),e.style[r.DomUtil.TRANSITION]="all "+(n||.25)+"s cubic-bezier(0,0,"+(i||.5)+",1)",r.DomEvent.on(e,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),r.DomUtil.setPosition(e,t),r.Util.falseFn(e.offsetWidth),this._stepTimer=setInterval(r.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(r.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),r.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var e=this._getPos();return e?(this._el._leaflet_pos=e,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var t,n,i,o=this._el,a=e.getComputedStyle(o);if(r.Browser.any3d){if(!(i=a[r.DomUtil.TRANSFORM].match(this._transformRe)))return;t=parseFloat(i[1]),n=parseFloat(i[2])}else t=parseFloat(a.left),n=parseFloat(a.top);return new r.Point(t,n,!0)},_onTransitionEnd:function(){r.DomEvent.off(this._el,r.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[r.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),r.Map.include({setView:function(e,t,i){return t=t===n?this._zoom:this._limitZoom(t),e=this._limitCenter(r.latLng(e),t,this.options.maxBounds),i=i||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!i.reset&&!0!==i&&(i.animate!==n&&(i.zoom=r.extend({animate:i.animate},i.zoom),i.pan=r.extend({animate:i.animate},i.pan)),this._zoom!==t?this._tryAnimatedZoom&&this._tryAnimatedZoom(e,t,i.zoom):this._tryAnimatedPan(e,i.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(e,t),this)},panBy:function(e,t){if(t=t||{},!(e=r.point(e).round()).x&&!e.y)return this;if(this._panAnim||(this._panAnim=new r.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire("movestart"),!1!==t.animate){r.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var n=this._getMapPanePos().subtract(e);this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){r.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._floor();return!(!0!==(t&&t.animate)&&!this.getSize().contains(n)||(this.panBy(n,t),0))}}),r.PosAnimation=r.DomUtil.TRANSITION?r.PosAnimation:r.PosAnimation.extend({run:function(e,t,n,i){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=r.DomUtil.getPosition(e),this._offset=t.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=r.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var e=+new Date-this._startTime,t=1e3*this._duration;t>e?this._runFrame(this._easeOut(e/t)):(this._runFrame(1),this._complete())},_runFrame:function(e){var t=this._startPos.add(this._offset.multiplyBy(e));r.DomUtil.setPosition(this._el,t),this.fire("step")},_complete:function(){r.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(e){return 1-Math.pow(1-e,this._easeOutPower)}}),r.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),r.DomUtil.TRANSITION&&r.Map.addInitHook((function(){this._zoomAnimated=this.options.zoomAnimation&&r.DomUtil.TRANSITION&&r.Browser.any3d&&!r.Browser.android23&&!r.Browser.mobileOpera,this._zoomAnimated&&r.DomEvent.on(this._mapPane,r.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)})),r.Map.include(r.DomUtil.TRANSITION?{_catchTransitionEnd:function(e){this._animatingZoom&&e.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;if(n=n||{},!this._zoomAnimated||!1===n.animate||this._nothingToAnimate()||Math.abs(t-this._zoom)>this.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(t),r=this._getCenterOffset(e)._divideBy(1-1/i),o=this._getCenterLayerPoint()._add(r);return!(!0!==n.animate&&!this.getSize().contains(r)||(this.fire("movestart").fire("zoomstart"),this._animateZoom(e,t,o,i,null,!0),0))},_animateZoom:function(e,t,n,i,o,a,s){s||(this._animatingZoom=!0),r.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=e,this._animateToZoom=t,r.Draggable&&(r.Draggable._disabled=!0),r.Util.requestAnimFrame((function(){this.fire("zoomanim",{center:e,zoom:t,origin:n,scale:i,delta:o,backwards:a}),setTimeout(r.bind(this._onZoomTransitionEnd,this),250)}),this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,r.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),r.Util.requestAnimFrame((function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),r.Draggable&&(r.Draggable._disabled=!1)}),this))}}:{}),r.TileLayer.include({_animateZoom:function(e){this._animating||(this._animating=!0,this._prepareBgBuffer());var t=this._bgBuffer,n=r.DomUtil.TRANSFORM,i=e.delta?r.DomUtil.getTranslateString(e.delta):t.style[n],o=r.DomUtil.getScaleString(e.scale,e.origin);t.style[n]=e.backwards?o+" "+i:i+" "+o},_endZoomAnim:function(){var e=this._tileContainer,t=this._bgBuffer;e.style.visibility="",e.parentNode.appendChild(e),r.Util.falseFn(t.offsetWidth);var n=this._map.getZoom();(n>this.options.maxZoom||n<this.options.minZoom)&&this._clearBgBuffer(),this._animating=!1},_clearBgBuffer:function(){var e=this._map;!e||e._animatingZoom||e.touchZoom._zooming||(this._bgBuffer.innerHTML="",this._bgBuffer.style[r.DomUtil.TRANSFORM]="")},_prepareBgBuffer:function(){var e=this._tileContainer,t=this._bgBuffer,n=this._getLoadedTilesPercentage(t),i=this._getLoadedTilesPercentage(e);return t&&n>.5&&.5>i?(e.style.visibility="hidden",void this._stopLoadingImages(e)):(t.style.visibility="hidden",t.style[r.DomUtil.TRANSFORM]="",this._tileContainer=t,t=this._bgBuffer=e,this._stopLoadingImages(t),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(e){var t,n,i=e.getElementsByTagName("img"),r=0;for(t=0,n=i.length;n>t;t++)i[t].complete&&r++;return r/n},_stopLoadingImages:function(e){var t,n,i,o=Array.prototype.slice.call(e.getElementsByTagName("img"));for(t=0,n=o.length;n>t;t++)(i=o[t]).complete||(i.onload=r.Util.falseFn,i.onerror=r.Util.falseFn,i.src=r.Util.emptyImageUrl,i.parentNode.removeChild(i))}}),r.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(e){if(e=this._locateOptions=r.extend(this._defaultLocateOptions,e),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var t=r.bind(this._handleGeolocationResponse,this),n=r.bind(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,n,e):navigator.geolocation.getCurrentPosition(t,n,e),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){var t=e.code,n=e.message||(1===t?"permission denied":2===t?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:t,message:"Geolocation error: "+n+"."})},_handleGeolocationResponse:function(e){var t=e.coords.latitude,n=e.coords.longitude,i=new r.LatLng(t,n),o=180*e.coords.accuracy/40075017,a=o/Math.cos(r.LatLng.DEG_TO_RAD*t),s=r.latLngBounds([t-o,n-a],[t+o,n+a]),l=this._locateOptions;if(l.setView){var u=Math.min(this.getBoundsZoom(s),l.maxZoom);this.setView(i,u)}var c={latlng:i,bounds:s,timestamp:e.timestamp};for(var d in e.coords)"number"==typeof e.coords[d]&&(c[d]=e.coords[d]);this.fire("locationfound",c)}})}(window,document),function(e,t,n){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(e){e=L.Util.setOptions(this,e)},createIcon:function(){var e=t.createElement("div"),n=this.options;return n.icon&&(e.innerHTML=this._createInner()),n.bgPos&&(e.style.backgroundPosition=-n.bgPos.x+"px "+-n.bgPos.y+"px"),this._setIconStyles(e,"icon-"+n.markerColor),e},_createInner:function(){var e,t="",n="",i="",r=this.options;return e=r.icon.slice(0,r.prefix.length+1)===r.prefix+"-"?r.icon:r.prefix+"-"+r.icon,r.spin&&"string"==typeof r.spinClass&&(t=r.spinClass),r.iconColor&&("white"===r.iconColor||"black"===r.iconColor?n="icon-"+r.iconColor:i="style='color: "+r.iconColor+"' "),"<i "+i+"class='"+r.prefix+" "+e+" "+t+" "+n+"'></i>"},_setIconStyles:function(e,t){var n,i=this.options,r=L.point(i["shadow"===t?"shadowSize":"iconSize"]);!(n="shadow"===t?L.point(i.shadowAnchor||i.iconAnchor):L.point(i.iconAnchor))&&r&&(n=r.divideBy(2,!0)),e.className="awesome-marker-"+t+" "+i.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),r&&(e.style.width=r.x+"px",e.style.height=r.y+"px")},createShadow:function(){var e=t.createElement("div");return this._setIconStyles(e,"shadow"),e}}),L.AwesomeMarkers.icon=function(e){return new L.AwesomeMarkers.Icon(e)}}(0,document),function(e){if("function"==typeof define&&define.amd)define(["leaflet"],e);else if("undefined"!=typeof module)module.exports=e(require("leaflet"));else{if(void 0===window.L)throw"Leaflet must be loaded first";e(window.L)}}((function(e){function t(e,t){var n=t.split("."),i=n.pop(),r=n.length,o=n[0],a=1;if(r>0)for(;(e=e[o])&&a<r;)o=n[a++];if(e)return e[i]}function n(e){return"[object Object]"===Object.prototype.toString.call(e)}return e.Control.Search=e.Control.extend({includes:e.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",position:"topleft",hideMarkerOnCollapse:!1,marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},initialize:function(t){e.Util.setOptions(this,t||{}),this._inputMinSize=this.options.textPlaceholder?this.options.textPlaceholder.length:10,this._layer=this.options.layer||new e.LayerGroup,this._filterData=this.options.filterData||this._defaultFilterData,this._formatData=this.options.formatData||this._defaultFormatData,this._moveToLocation=this.options.moveToLocation||this._defaultMoveToLocation,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={},this._curReq=null},onAdd:function(t){return this._map=t,this._container=e.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.textPlaceholder,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.textPlaceholder,"search-button"),this._alert=this._createAlert("search-alert"),!1===this.options.collapsed&&this.expand(this.options.collapsed),this.options.marker&&(this.options.marker instanceof e.Marker||this.options.marker instanceof e.CircleMarker?this._markerSearch=this.options.marker:n(this.options.marker)&&(this._markerSearch=new e.Control.Search.Marker([0,0],this.options.marker)),this._markerSearch._isMarkerSearch=!0),this.setLayer(this._layer),t.on({resize:this._handleAutoresize},this),this._container},addTo:function(t){return this.options.container?(this._container=this.onAdd(t),this._wrapper=e.DomUtil.get(this.options.container),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):e.Control.prototype.addTo.call(this,t),this},onRemove:function(e){this._recordsCache={}},setLayer:function(e){return this._layer=e,this._layer.addTo(this._map),this},showAlert:function(e){e=e||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=e,clearTimeout(this.timerAlert);var t=this;return this.timerAlert=setTimeout((function(){t.hideAlert()}),this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this._hideTooltip(),this},expand:function(t){return t="boolean"!=typeof t||t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),!1!==t&&(this._input.focus(),this._map.on("dragstart click",this.collapse,this)),this.fire("search:expanded"),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",e.DomUtil.removeClass(this._container,"search-exp"),this.options.hideMarkerOnCollapse&&this._map.removeLayer(this._markerSearch),this._map.off("dragstart click",this.collapse,this)),this.fire("search:collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var e=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout((function(){e.collapse()}),this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(t){var n=e.DomUtil.create("div",t,this._container);return n.style.display="none",e.DomEvent.on(n,"click",e.DomEvent.stop,this).on(n,"click",this.hideAlert,this),n},_createInput:function(t,n){var i=e.DomUtil.create("label",n,this._container),r=e.DomUtil.create("input",n,this._container);return r.type="text",r.size=this._inputMinSize,r.value="",r.autocomplete="off",r.autocorrect="off",r.autocapitalize="off",r.placeholder=t,r.style.display="none",r.role="search",r.id=r.role+r.type+r.size,i.htmlFor=r.id,i.style.display="none",i.value=t,e.DomEvent.disableClickPropagation(r).on(r,"keydown",this._handleKeypress,this).on(r,"blur",this.collapseDelayed,this).on(r,"focus",this.collapseDelayedStop,this),r},_createCancel:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,i.style.display="none",i.innerHTML="<span>&otimes;</span>",e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this.cancel,this),i},_createButton:function(t,n){var i=e.DomUtil.create("a",n,this._container);return i.href="#",i.title=t,e.DomEvent.on(i,"click",e.DomEvent.stop,this).on(i,"click",this._handleSubmit,this).on(i,"focus",this.collapseDelayedStop,this).on(i,"blur",this.collapseDelayed,this),i},_createTooltip:function(t){var n=e.DomUtil.create("ul",t,this._container);n.style.display="none";var i=this;return e.DomEvent.disableClickPropagation(n).on(n,"blur",this.collapseDelayed,this).on(n,"mousewheel",(function(t){i.collapseDelayedStop(),e.DomEvent.stopPropagation(t)}),this).on(n,"mouseover",(function(e){i.collapseDelayedStop()}),this),n},_createTip:function(t,n){var i;if(this.options.buildTip){if("string"==typeof(i=this.options.buildTip.call(this,t,n))){var r=e.DomUtil.create("div");r.innerHTML=i,i=r.firstChild}}else(i=e.DomUtil.create("li","")).innerHTML=t;return e.DomUtil.addClass(i,"search-tip"),i._text=t,this.options.tipAutoSubmit&&e.DomEvent.disableClickPropagation(i).on(i,"click",e.DomEvent.stop,this).on(i,"click",(function(e){this._input.value=t,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()}),this),i},_getUrl:function(e){return"function"==typeof this.options.url?this.options.url(e):this.options.url},_defaultFilterData:function(e,t){var n,i,r,o={};if(""===(e=e.replace(/[.*+?^${}()|[\]\\]/g,"")))return[];for(var a in n=this.options.initial?"^":"",i=this.options.casesensitive?void 0:"i",r=new RegExp(n+e,i),t)r.test(a)&&(o[a]=t[a]);return o},showTooltip:function(e){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var t in e){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(t,e[t]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(n){var i,r=this.options.propertyName,o=this.options.propertyLoc,a={};if(e.Util.isArray(o))for(i in n)a[t(n[i],r)]=e.latLng(n[i][o[0]],n[i][o[1]]);else for(i in n)a[t(n[i],r)]=e.latLng(t(n[i],o));return a},_recordsFromJsonp:function(t,n){e.Control.Search.callJsonp=n;var i=e.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),r=e.Util.template(this._getUrl(t)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:t});return i.type="text/javascript",i.src=r,{abort:function(){i.parentNode.removeChild(i)}}},_recordsFromAjax:function(t,n){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(e){throw new Error("XMLHttpRequest is not supported")}}});var i=e.Browser.ie&&!window.atob&&document.querySelector?new XDomainRequest:new XMLHttpRequest,r=e.Util.template(this._getUrl(t),{s:t});return i.open("GET",r),i.onload=function(){n(JSON.parse(i.responseText))},i.onreadystatechange=function(){4===i.readyState&&200===i.status&&this.onload()},i.send(),i},_recordsFromLayer:function(){var n,i={},r=this.options.propertyName;return this._layer.eachLayer((function(o){if(!o.hasOwnProperty("_isMarkerSearch"))if(o instanceof e.Marker||o instanceof e.CircleMarker)try{if(t(o.options,r))(n=o.getLatLng()).layer=o,i[t(o.options,r)]=n;else{if(!t(o.feature.properties,r))throw new Error("propertyName '"+r+"' not found in marker");(n=o.getLatLng()).layer=o,i[t(o.feature.properties,r)]=n}}catch(e){console}else if(o.hasOwnProperty("feature"))try{if(!o.feature.properties.hasOwnProperty(r))throw new Error("propertyName '"+r+"' not found in feature");(n=o.getBounds().getCenter()).layer=o,i[o.feature.properties[r]]=n}catch(e){console}else o instanceof e.LayerGroup&&o.eachLayer((function(e){(n=e.getLatLng()).layer=e,i[e.feature.properties[r]]=n}))}),this),i},_autoType:function(){var e=this._input.value.length,t=this._tooltip.firstChild?this._tooltip.firstChild._text:"",n=t.length;if(0===t.indexOf(this._input.value))if(this._input.value=t,this._handleAutoresize(),this._input.createTextRange){var i=this._input.createTextRange();i.collapse(!0),i.moveStart("character",e),i.moveEnd("character",n),i.select()}else this._input.setSelectionRange?this._input.setSelectionRange(e,n):this._input.selectionStart&&(this._input.selectionStart=e,this._input.selectionEnd=n)},_hideAutoType:function(){var e;if((e=this._input.selection)&&e.empty)e.empty();else if(this._input.createTextRange){(e=this._input.createTextRange()).collapse(!0);var t=this._input.value.length;e.moveStart("character",t),e.moveEnd("character",t),e.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(e){switch(e.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:if(this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength){var t=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout((function(){t._fillRecordsCache()}),this.options.delayType)}else this._hideTooltip()}this._handleAutoresize()},searchText:function(t){var n=t.charCodeAt(t.length);this._input.value=t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:n})},_fillRecordsCache:function(){var t,n=this._input.value,i=this;this._curReq&&this._curReq.abort&&this._curReq.abort(),e.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),t=this._filterData(this._input.value,this._recordsCache),this.showTooltip(t),e.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,n,(function(n){i._recordsCache=i._formatData(n),t=i.options.sourceData?i._filterData(i._input.value,i._recordsCache):i._recordsCache,i.showTooltip(t),e.DomUtil.removeClass(i._container,"search-load")})))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=e.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45<this._map._container.offsetWidth&&(this._input.size=this._input.value.length<this._inputMinSize?this._inputMinSize:this._input.value.length)},_handleArrowSelect:function(t){var n=this._tooltip.hasChildNodes()?this._tooltip.childNodes:[];for(i=0;i<n.length;i++)e.DomUtil.removeClass(n[i],"search-tip-select");if(1==t&&this._tooltip.currentSelection>=n.length-1)e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select");else if(-1==t&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=t,e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select"),this._input.value=n[this._tooltip.currentSelection]._text;var r=n[this._tooltip.currentSelection].offsetTop;r+n[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=r-this._tooltip.clientHeight+n[this._tooltip.currentSelection].clientHeight:r<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=r)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var e=this._getLocation(this._input.value);!1===e?this.showAlert():(this.showLocation(e,this._input.value),this.fire("search:locationfound",{latlng:e,text:this._input.value,layer:e.layer?e.layer:null}))}},_getLocation:function(e){return!!this._recordsCache.hasOwnProperty(e)&&this._recordsCache[e]},_defaultMoveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e)},showLocation:function(e,t){var n=this;return n._map.once("moveend zoomend",(function(t){n._markerSearch&&n._markerSearch.addTo(n._map).setLatLng(e)})),n._moveToLocation(e,t,n._map),n.options.autoCollapse&&n.collapse(),n}}),e.Control.Search.Marker=e.Marker.extend({includes:e.Mixin.Events,options:{icon:new e.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(t,i){e.setOptions(this,i),!0===i.icon&&(i.icon=new e.Icon.Default),e.Marker.prototype.initialize.call(this,t,i),n(this.options.circle)&&(this._circleLoc=new e.CircleMarker(t,this.options.circle))},onAdd:function(t){e.Marker.prototype.onAdd.call(this,t),this._circleLoc&&(t.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(t){e.Marker.prototype.onRemove.call(this,t),this._circleLoc&&t.removeLayer(this._circleLoc)},setLatLng:function(t){return e.Marker.prototype.setLatLng.call(this,t),this._circleLoc&&this._circleLoc.setLatLng(t),this},_initIcon:function(){this.options.icon&&e.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&e.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var e=this._circleLoc,t=parseInt(e._radius/5),n=this.options.circle.radius,i=2*e._radius,r=0;e._timerAnimLoc=setInterval((function(){i-=t+=r+=.5,e.setRadius(i),i<n&&(clearInterval(e._timerAnimLoc),e.setRadius(n))}),200)}return this}}),e.Map.addInitHook((function(){this.options.searchControl&&(this.searchControl=e.control.search(this.options.searchControl),this.addControl(this.searchControl))})),e.control.search=function(t){return new e.Control.Search(t)},e.Control.Search})),function(){function e(e,t){var n,i;this.title=e.title,this.stateName=e.stateName?e.stateName:"unnamed-state",this.icon=L.DomUtil.create("span",""),L.DomUtil.addClass(this.icon,"button-state state-"+this.stateName.replace(/(^\s*|\s*$)/g,"")),this.icon.innerHTML=((n=e.icon).match(/[&;=<>"']/)?i=n:(n=n.replace(/(^\s*|\s*$)/g,""),i=L.DomUtil.create("span",""),0===n.indexOf("fa-")?L.DomUtil.addClass(i,"fa "+n):0===n.indexOf("glyphicon-")?L.DomUtil.addClass(i,"glyphicon "+n):L.DomUtil.addClass(i,n),i=i.outerHTML),i),this.onClick=L.Util.bind(e.onClick?e.onClick:function(){},t)}L.Control.EasyBar=L.Control.extend({options:{position:"topleft",id:null,leafletClasses:!0},initialize:function(e,t){t&&L.Util.setOptions(this,t),this._buildContainer(),this._buttons=[];for(var n=0;n<e.length;n++)e[n]._bar=this,e[n]._container=e[n].button,this._buttons.push(e[n]),this.container.appendChild(e[n].button)},_buildContainer:function(){this._container=this.container=L.DomUtil.create("div",""),this.options.leafletClasses&&L.DomUtil.addClass(this.container,"leaflet-bar easy-button-container leaflet-control"),this.options.id&&(this.container.id=this.options.id)},enable:function(){return L.DomUtil.addClass(this.container,"enabled"),L.DomUtil.removeClass(this.container,"disabled"),this.container.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.container,"disabled"),L.DomUtil.removeClass(this.container,"enabled"),this.container.setAttribute("aria-hidden","true"),this},onAdd:function(){return this.container},addTo:function(e){this._map=e;for(var t=0;t<this._buttons.length;t++)this._buttons[t]._map=e;var n=this._container=this.onAdd(e),i=this.getPosition(),r=e._controlCorners[i];return L.DomUtil.addClass(n,"leaflet-control"),-1!==i.indexOf("bottom")?r.insertBefore(n,r.firstChild):r.appendChild(n),this}}),L.easyBar=function(){for(var e=[L.Control.EasyBar],t=0;t<arguments.length;t++)e.push(arguments[t]);return new(Function.prototype.bind.apply(L.Control.EasyBar,e))},L.Control.EasyButton=L.Control.extend({options:{position:"topleft",id:null,type:"replace",states:[],leafletClasses:!0,tagName:"button"},initialize:function(t,n,i,r){this.options.states=[],null!=r&&(this.options.id=r),this.storage={},"object"==typeof arguments[arguments.length-1]&&L.Util.setOptions(this,arguments[arguments.length-1]),0===this.options.states.length&&"string"==typeof t&&"function"==typeof n&&this.options.states.push({icon:t,onClick:n,title:"string"==typeof i?i:""}),this._states=[];for(var o=0;o<this.options.states.length;o++)this._states.push(new e(this.options.states[o],this));this._buildButton(),this._activateState(this._states[0])},_buildButton:function(){if(this.button=L.DomUtil.create(this.options.tagName,""),"button"===this.options.tagName&&this.button.setAttribute("type","button"),this.options.id&&(this.button.id=this.options.id),this.options.leafletClasses&&L.DomUtil.addClass(this.button,"easy-button-button leaflet-bar-part leaflet-interactive"),L.DomEvent.addListener(this.button,"dblclick",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mousedown",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mouseup",L.DomEvent.stop),L.DomEvent.addListener(this.button,"click",(function(e){L.DomEvent.stop(e),this._currentState.onClick(this,this._map?this._map:null),this._map&&this._map.getContainer().focus()}),this),"replace"==this.options.type)this.button.appendChild(this._currentState.icon);else for(var e=0;e<this._states.length;e++)this.button.appendChild(this._states[e].icon)},_currentState:{stateName:"unnamed",icon:document.createElement("span")},_states:null,state:function(e){return 0===arguments.length?this._currentState.stateName:("string"==typeof e?this._activateStateNamed(e):"number"==typeof e&&this._activateState(this._states[e]),this)},_activateStateNamed:function(e){for(var t=0;t<this._states.length;t++)this._states[t].stateName==e&&this._activateState(this._states[t])},_activateState:function(e){if(e!==this._currentState){"replace"==this.options.type&&(this.button.appendChild(e.icon),this.button.removeChild(this._currentState.icon)),e.title?this.button.title=e.title:this.button.removeAttribute("title");for(var t=0;t<this._states.length;t++)L.DomUtil.removeClass(this._states[t].icon,this._currentState.stateName+"-active"),L.DomUtil.addClass(this._states[t].icon,e.stateName+"-active");L.DomUtil.removeClass(this.button,this._currentState.stateName+"-active"),L.DomUtil.addClass(this.button,e.stateName+"-active"),this._currentState=e}},enable:function(){return L.DomUtil.addClass(this.button,"enabled"),L.DomUtil.removeClass(this.button,"disabled"),this.button.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.button,"disabled"),L.DomUtil.removeClass(this.button,"enabled"),this.button.setAttribute("aria-hidden","true"),this},onAdd:function(e){var t=L.easyBar([this],{position:this.options.position,leafletClasses:this.options.leafletClasses});return this._anonymousBar=t,this._container=t.container,this._anonymousBar.container},removeFrom:function(e){return this._map===e&&this.remove(),this}}),L.easyButton=function(){var e=Array.prototype.concat.apply([L.Control.EasyButton],arguments);return new(Function.prototype.bind.apply(L.Control.EasyButton,e))}}(),function(){var e=window.console||{error:function(){},warn:function(){}};function t(t){t.Control.Loading=t.Control.extend({options:{delayIndicator:null,position:"topleft",separate:!1,zoomControl:null,spinjs:!1,spin:{lines:7,length:3,width:3,radius:5,rotate:13,top:"83%"}},initialize:function(e){t.setOptions(this,e),this._dataLoaders={},null!==this.options.zoomControl&&(this.zoomControl=this.options.zoomControl)},onAdd:function(n){if(this.options.spinjs&&"function"!=typeof Spinner)return e.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options.");this._addLayerListeners(n),this._addMapListeners(n),this.options.separate||this.zoomControl||(n.zoomControl?this.zoomControl=n.zoomControl:n.zoomsliderControl&&(this.zoomControl=n.zoomsliderControl));var i,r="leaflet-control-loading";return this.zoomControl&&!this.options.separate?(i=this.zoomControl._container,r+=" leaflet-bar-part-bottom leaflet-bar-part last",t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom")):i=t.DomUtil.create("div","leaflet-control-zoom leaflet-control-layer-container leaflet-bar"),this._indicatorContainer=i,this._indicator=t.DomUtil.create("a",r,i),this.options.spinjs&&(this._spinner=new Spinner(this.options.spin).spin(),this._indicator.appendChild(this._spinner.el)),i},onRemove:function(e){this._removeLayerListeners(e),this._removeMapListeners(e)},removeFrom:function(e){return this.zoomControl&&!this.options.separate?(this._container.removeChild(this._indicator),this._map=null,this.onRemove(e),this):t.Control.prototype.removeFrom.call(this,e)},addLoader:function(e){if(this._dataLoaders[e]=!0,this.options.delayIndicator&&!this.delayIndicatorTimeout){var t=this;this.delayIndicatorTimeout=setTimeout((function(){t.updateIndicator(),t.delayIndicatorTimeout=null}),this.options.delayIndicator)}else this.updateIndicator()},removeLoader:function(e){delete this._dataLoaders[e],this.updateIndicator(),this.options.delayIndicator&&this.delayIndicatorTimeout&&!this.isLoading()&&(clearTimeout(this.delayIndicatorTimeout),this.delayIndicatorTimeout=null)},updateIndicator:function(){this.isLoading()?this._showIndicator():this._hideIndicator()},isLoading:function(){return this._countLoaders()>0},_countLoaders:function(){var e,t=0;for(e in this._dataLoaders)this._dataLoaders.hasOwnProperty(e)&&t++;return t},_showIndicator:function(){t.DomUtil.addClass(this._indicator,"is-loading"),t.DomUtil.addClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.removeClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.removeClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_hideIndicator:function(){t.DomUtil.removeClass(this._indicator,"is-loading"),t.DomUtil.removeClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof t.Control.Zoom?t.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof t.Control.Zoomslider&&this.zoomControl instanceof t.Control.Zoomslider&&t.DomUtil.addClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_getLastControlButton:function(){for(var e=this.zoomControl._container,t=e.children.length-1;t>0;){var n=e.children[t];if(this._indicator!==n&&0!==n.offsetWidth&&0!==n.offsetHeight)break;t--}return e.children[t]},_handleLoading:function(e){this.addLoader(this.getEventId(e))},_handleBaseLayerChange:function(e){var n=this;e.layer&&e.layer.eachLayer&&"function"==typeof e.layer.eachLayer?e.layer.eachLayer((function(e){n._handleBaseLayerChange({layer:e})})):t.TileLayer.Canvas&&e.layer instanceof t.TileLayer.Canvas||n._handleLoading(e)},_handleLoad:function(e){this.removeLoader(this.getEventId(e))},getEventId:function(e){return e.id?e.id:e.layer?e.layer._leaflet_id:e.target._leaflet_id},_layerAdd:function(t){if(t.layer&&t.layer.on)try{t.layer.on({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to add  event handlers to layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_layerRemove:function(t){if(t.layer&&t.layer.off)try{t.layer.off({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){e.warn("L.Control.Loading: Tried and failed to remove event handlers from layer",t.layer),e.warn("L.Control.Loading: Full details",n)}},_addLayerListeners:function(e){e.eachLayer((function(e){e.on&&e.on({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.on("layeradd",this._layerAdd,this),e.on("layerremove",this._layerRemove,this)},_removeLayerListeners:function(e){e.eachLayer((function(e){e.off&&e.off({loading:this._handleLoading,load:this._handleLoad},this)}),this),e.off("layeradd",this._layerAdd,this),e.off("layerremove",this._layerRemove,this)},_addMapListeners:function(e){e.on({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)},_removeMapListeners:function(e){e.off({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)}}),t.Map.addInitHook((function(){this.options.loadingControl&&(this.loadingControl=new t.Control.Loading,this.addControl(this.loadingControl))})),t.Control.loading=function(e){return new t.Control.Loading(e)}}"function"==typeof define&&define.amd?define(["leaflet"],(function(e){t(e)})):t(L)}(),function(e,t,n){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.addLayers(t)}if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this;if(!this._map)return this._needsClustering.push(e),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this._topClusterLevel._recalculateBounds();var i=e,r=this._map.getZoom();if(e.__parent)for(;i.__parent._zoom>=r;)i=i.__parent;return this._currentShownBounds.contains(i.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,i):this._animationAddLayerNonAnimated(e,i)),this},removeLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.removeLayers(t)}return e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this._topClusterLevel._recalculateBounds(),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push(e),this):(this._nonPointGroup.removeLayer(e),this)},addLayers:function(e){var t,n,i,r,o=this._featureGroup,a=this._nonPointGroup,s=this.options.chunkedLoading,l=this.options.chunkInterval,u=this.options.chunkProgress;if(this._map){var c=0,d=(new Date).getTime(),h=L.bind((function(){for(var t=(new Date).getTime();c<e.length&&!(s&&0==c%200&&(new Date).getTime()-t>l);c++)if((r=e[c]).getLatLng){if(!this.hasLayer(r)&&(this._addLayer(r,this._maxZoom),r.__parent&&2===r.__parent.getChildCount())){var n=r.__parent.getAllChildMarkers(),i=n[0]===r?n[1]:n[0];o.removeLayer(i)}}else a.addLayer(r);u&&u(c,e.length,(new Date).getTime()-d),c===e.length?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(h,this.options.chunkDelay)}),this);h()}else{for(t=[],n=0,i=e.length;i>n;n++)(r=e[n]).getLatLng?this.hasLayer(r)||t.push(r):a.addLayer(r);this._needsClustering=this._needsClustering.concat(t)}return this},removeLayers:function(e){var t,n,i,r=this._featureGroup,o=this._nonPointGroup;if(!this._map){for(t=0,n=e.length;n>t;t++)i=e[t],this._arraySplice(this._needsClustering,i),o.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push(i);return this}if(this._unspiderfy)for(this._unspiderfy(),t=0,n=e.length;n>t;t++)i=e[t],this._unspiderfyLayer(i);for(t=0,n=e.length;n>t;t++)(i=e[t]).__parent?(this._removeLayer(i,!0,!0),r.hasLayer(i)&&(r.removeLayer(i),i.clusterShow&&i.clusterShow())):o.removeLayer(i);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),r.eachLayer((function(e){e instanceof L.MarkerCluster&&e._updateIcon()})),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),
+this._nonPointGroup.clearLayers(),this.eachLayer((function(e){delete e.__parent})),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var n,i=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(i),n=i.length-1;n>=0;n--)e.call(t,i[n]);this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer((function(t){e.push(t)})),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer((function(n){L.stamp(n)===e&&(t=n)})),t},hasLayer:function(e){if(!e)return!1;var t,n=this._needsClustering;for(t=n.length-1;t>=0;t--)if(n[t]===e)return!0;for(t=(n=this._needsRemoving).length-1;t>=0;t--)if(n[t]===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var n=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",n,this),this.off("animationend",n,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};if(e._icon&&this._map.getBounds().contains(e.getLatLng()))t();else if(e.__parent._zoom<this._map.getZoom())this._map.on("moveend",n,this),this._map.panTo(e.getLatLng());else{var i=function(){this._map.off("movestart",i,this),i=null};this._map.on("movestart",i,this),this._map.on("moveend",n,this),this.on("animationend",n,this),e.__parent.zoomToBounds(),i&&n.call(this)}},onAdd:function(e){var t,n,i;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.onAdd(e),this._nonPointGroup.onAdd(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,n=this._needsRemoving.length;n>t;t++)i=this._needsRemoving[t],this._removeLayer(i,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),n=this._needsClustering,this._needsClustering=[],this.addLayers(n)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.onRemove(e),this._nonPointGroup.onRemove(e),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var n=e.length-1;n>=0;n--)if(e[n]===t)return e.splice(n,1),!0},_removeFromGridUnclustered:function(e,t){for(var n=this._map,i=this._gridUnclustered;t>=0&&i[t].removeObject(e,n.project(e.getLatLng(),t));t--);},_removeLayer:function(e,t,n){var i=this._gridClusters,r=this._gridUnclustered,o=this._featureGroup,a=this._map;t&&this._removeFromGridUnclustered(e,this._maxZoom);var s,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<0));)t&&l._childCount<=1?(s=l._markers[0]===e?l._markers[1]:l._markers[0],i[l._zoom].removeObject(l,a.project(l._cLatLng,l._zoom)),r[l._zoom].addObject(s,a.project(s.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(s),s.__parent=l.__parent,l._icon&&(o.removeLayer(l),n||o.addLayer(s))):n&&l._icon||l._updateIcon(),l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},_propagateEvent:function(e){if(e.layer instanceof L.MarkerCluster){if(e.originalEvent&&this._isOrIsParent(e.layer._icon,e.originalEvent.relatedTarget))return;e.type="cluster"+e.type}this.fire(e.type,e)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),n=" marker-cluster-";return n+=10>t?"small":100>t?"medium":"large",new L.DivIcon({html:"<div><span>"+t+"</span></div>",className:"marker-cluster"+n,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,n=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick;(t||i)&&this.on("clusterclick",this._zoomOrSpiderfy,this),n&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,n=t;1===n._childClusters.length;)n=n._childClusters[0];n._zoom===this._maxZoom&&n._childCount===t._childCount?this.options.spiderfyOnMaxZoom&&t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,i=this._map;(e||n)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),i.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=this._map.getMaxZoom(),t=this.options.maxClusterRadius,n=t;"function"!=typeof t&&(n=function(){return t}),this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var i=e;i>=0;i--)this._gridClusters[i]=new L.DistanceGrid(n(i)),this._gridUnclustered[i]=new L.DistanceGrid(n(i));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(e,t){var n,i,r=this._gridClusters,o=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e);t>=0;t--){n=this._map.project(e.getLatLng(),t);var a=r[t].getNearObject(n);if(a)return a._addChild(e),void(e.__parent=a);if(a=o[t].getNearObject(n)){var s=a.__parent;s&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);r[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(i=t-1;i>s._zoom;i--)u=new this._markerCluster(this,i,u),r[i].addObject(u,this._map.project(a.getLatLng(),i));return s._addChild(u),void this._removeFromGridUnclustered(a,t)}o[t].addObject(e,n)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){this._processQueue(),this._zoom<this._map._zoom&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,this._map._zoom)):this._zoom>this._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==n&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var n=t.getAllChildMarkers();this._featureGroup.removeLayer(n[0]),this._featureGroup.removeLayer(n[1])}else t._updateIcon()},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(e,t){var n,i=this._getExpandedVisibleBounds(),r=this._featureGroup;this._topClusterLevel._recursively(i,e,0,(function(o){var a,s=o._latlng,l=o._markers;for(i.contains(s)||(s=null),o._isSingleParent()&&e+1===t?(r.removeLayer(o),o._recursivelyAddChildrenToMap(null,t,i)):(o.clusterHide(),o._recursivelyAddChildrenToMap(s,t,i)),n=l.length-1;n>=0;n--)a=l[n],i.contains(a._latlng)||r.removeLayer(a)})),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(i,t),r.eachLayer((function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()})),this._topClusterLevel._recursively(i,e,t,(function(e){e._recursivelyRestoreChildPositions(t)})),this._enqueue((function(){this._topClusterLevel._recursively(i,e,0,(function(e){r.removeLayer(e),e.clusterShow()})),this._animationEnd()}))},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var n=this,i=this._featureGroup;i.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue((function(){i.removeLayer(e),e.clusterShow(),n._animationEnd()}))):(this._forceLayout(),n._animationStart(),n._animationZoomOutSingle(t,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(e,t,n){var i=this._getExpandedVisibleBounds();e._recursivelyAnimateChildrenInAndAddSelfToMap(i,t+1,n);var r=this;this._forceLayout(),e._recursivelyBecomeVisible(i,n),this._enqueue((function(){if(1===e._childCount){var o=e._markers[0];o.setLatLng(o.getLatLng()),o.clusterShow&&o.clusterShow()}else e._recursively(i,n,0,(function(e){e._recursivelyRemoveChildrenFromMap(i,t+1)}));r._animationEnd()}))},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(t.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)},L.MarkerCluster=L.Marker.extend({initialize:function(e,t,n,i){L.Marker.prototype.initialize.call(this,n?n._cLatLng||n.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,n&&this._addChild(n),i&&this._addChild(i)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var n=this._markers.length-1;n>=0;n--)e.push(this._markers[n]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var e,t=this._childClusters.slice(),n=this._group._map,i=n.getBoundsZoom(this._bounds),r=this._zoom+1,o=n.getZoom();t.length>0&&i>r;){r++;var a=[];for(e=0;e<t.length;e++)a=a.concat(t[e]._childClusters);t=a}i>r?this._group._map.setView(this._latlng,r):o>=i?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,n,i,r=this._markers,o=this._childClusters,a=0,s=0,l=this._childCount;if(0!==l){for(this._resetBounds(),e=0;e<r.length;e++)n=r[e]._latlng,this._bounds.extend(n),a+=n.lat,s+=n.lng;for(e=0;e<o.length;e++)(t=o[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),n=t._wLatLng,i=t._childCount,a+=n.lat*i,s+=n.lng*i;this._latlng=this._wLatLng=new L.LatLng(a/l,s/l),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,n){this._recursively(e,0,n-1,(function(e){var n,i,r=e._markers;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}),(function(e){var n,i,r=e._childClusters;for(n=r.length-1;n>=0;n--)(i=r[n])._icon&&(i._setPos(t),i.clusterHide())}))},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,n){this._recursively(e,n,0,(function(i){i._recursivelyAnimateChildrenIn(e,i._group._map.latLngToLayerPoint(i.getLatLng()).round(),t),i._isSingleParent()&&t-1===n?(i.clusterShow(),i._recursivelyRemoveChildrenFromMap(e,t)):i.clusterHide(),i._addToMap()}))},_recursivelyBecomeVisible:function(e,t){this._recursively(e,0,t,null,(function(e){e.clusterShow()}))},_recursivelyAddChildrenToMap:function(e,t,n){this._recursively(n,-1,t,(function(i){if(t!==i._zoom)for(var r=i._markers.length-1;r>=0;r--){var o=i._markers[r];n.contains(o._latlng)&&(e&&(o._backupLatlng=o.getLatLng(),o.setLatLng(e),o.clusterHide&&o.clusterHide()),i._group._featureGroup.addLayer(o))}}),(function(t){t._addToMap(e)}))},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var n=this._markers[t];n._backupLatlng&&(n.setLatLng(n._backupLatlng),delete n._backupLatlng)}if(e-1===this._zoom)for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i]._restorePosition();else for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,n){var i,r;this._recursively(e,-1,t-1,(function(e){for(r=e._markers.length-1;r>=0;r--)i=e._markers[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}),(function(e){for(r=e._childClusters.length-1;r>=0;r--)i=e._childClusters[r],n&&n.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())}))},_recursively:function(e,t,n,i,r){var o,a,s=this._childClusters,l=this._zoom;if(t>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r);else if(i&&i(this),r&&this._zoom===n&&r(this),n>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,i,r)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var n=this._getCoord(t.x),i=this._getCoord(t.y),r=this._grid,o=r[i]=r[i]||{},a=o[n]=o[n]||[],s=L.Util.stamp(e);this._objectPoint[s]=t,a.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var n,i,r=this._getCoord(t.x),o=this._getCoord(t.y),a=this._grid,s=a[o]=a[o]||{},l=s[r]=s[r]||[];for(delete this._objectPoint[L.Util.stamp(e)],n=0,i=l.length;i>n;n++)if(l[n]===e)return l.splice(n,1),1===i&&delete s[r],!0},eachObject:function(e,t){var n,i,r,o,a,s,l=this._grid;for(n in l)for(i in a=l[n])for(r=0,o=(s=a[i]).length;o>r;r++)e.call(t,s[r])&&(r--,o--)},getNearObject:function(e){var t,n,i,r,o,a,s,l,u=this._getCoord(e.x),c=this._getCoord(e.y),d=this._objectPoint,h=this._sqCellSize,f=null;for(t=c-1;c+1>=t;t++)if(r=this._grid[t])for(n=u-1;u+1>=n;n++)if(o=r[n])for(i=0,a=o.length;a>i;i++)s=o[i],h>(l=this._sqDist(d[L.Util.stamp(s)],e))&&(h=l,f=s);return f},_getCoord:function(e){return Math.floor(e/this._cellSize)},_sqDist:function(e,t){var n=t.x-e.x,i=t.y-e.y;return n*n+i*i}},L.QuickHull={getDistant:function(e,t){var n=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+n*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var n,i,r,o=0,a=null,s=[];for(n=t.length-1;n>=0;n--)i=t[n],(r=this.getDistant(i,e))>0&&(s.push(i),r>o&&(o=r,a=i));return{maxPoint:a,newPoints:s}},buildConvexHull:function(e,t){var n=[],i=this.findMostDistantPointFromBaseLine(e,t);return i.maxPoint?n=(n=n.concat(this.buildConvexHull([e[0],i.maxPoint],i.newPoints))).concat(this.buildConvexHull([i.maxPoint,e[1]],i.newPoints)):[e[0]]},getConvexHull:function(e){var t,n=!1,i=!1,r=!1,o=!1,a=null,s=null,l=null,u=null,c=null,d=null;for(t=e.length-1;t>=0;t--){var h=e[t];(!1===n||h.lat>n)&&(a=h,n=h.lat),(!1===i||h.lat<i)&&(s=h,i=h.lat),(!1===r||h.lng>r)&&(l=h,r=h.lng),(!1===o||h.lng<o)&&(u=h,o=h.lng)}return i!==n?(d=s,c=a):(d=u,c=l),[].concat(this.buildConvexHull([d,c],e),this.buildConvexHull([c,d],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,n=this.getAllChildMarkers(),i=[];for(t=n.length-1;t>=0;t--)e=n[t].getLatLng(),i.push(e);return L.QuickHull.getConvexHull(i)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),n=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,n):(n.y+=10,e=this._generatePointsCircle(t.length,n)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var n,i,r=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,o=this._2PI/e,a=[];for(a.length=e,n=e-1;n>=0;n--)i=this._circleStartAngle+n*o,a[n]=new L.Point(t.x+r*Math.cos(i),t.y+r*Math.sin(i))._round();return a},_generatePointsSpiral:function(e,t){var n,i=this._group.options.spiderfyDistanceMultiplier,r=i*this._spiralLengthStart,o=i*this._spiralFootSeparation,a=i*this._spiralLengthFactor*this._2PI,s=0,l=[];for(l.length=e,n=e-1;n>=0;n--)s+=o/r+5e-4*n,l[n]=new L.Point(t.x+r*Math.cos(s),t.y+r*Math.sin(s))._round(),r+=a/s;return l},_noanimationUnspiderfy:function(){var e,t,n=this._group,i=n._map,r=n._featureGroup,o=this.getAllChildMarkers();for(this.setOpacity(1),t=o.length-1;t>=0;t--)e=o[t],r.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(i.removeLayer(e._spiderLeg),delete e._spiderLeg);n.fire("unspiderfied",{cluster:this,markers:o}),n._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var n,i,r,o,a=this._group,s=a._map,l=a._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(n=0;n<e.length;n++)o=s.layerPointToLatLng(t[n]),i=e[n],r=new L.Polyline([this._latlng,o],u),s.addLayer(r),i._spiderLeg=r,i._preSpiderfyLatlng=i._latlng,i.setLatLng(o),i.setZIndexOffset&&i.setZIndexOffset(1e6),l.addLayer(i);this.setOpacity(.3),a.fire("spiderfied",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,o,a,s,l,u=this,c=this._group,d=c._map,h=c._featureGroup,f=this._latlng,p=d.latLngToLayerPoint(f),m=L.Path.SVG,g=L.extend({},this._group.options.spiderLegPolylineOptions),v=g.opacity;for(v===n&&(v=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),m?(g.opacity=0,g.className=(g.className||"")+" leaflet-cluster-spider-leg"):g.opacity=v,i=0;i<e.length;i++)r=e[i],l=d.layerPointToLatLng(t[i]),o=new L.Polyline([f,l],g),d.addLayer(o),r._spiderLeg=o,m&&(s=(a=o._path).getTotalLength()+.1,a.style.strokeDasharray=s,a.style.strokeDashoffset=s),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),h.addLayer(r),r._setPos&&r._setPos(p);for(c._forceLayout(),c._animationStart(),i=e.length-1;i>=0;i--)l=d.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(l),r.clusterShow&&r.clusterShow(),m&&((a=(o=r._spiderLeg)._path).style.strokeDashoffset=0,o.setStyle({opacity:v}));this.setOpacity(.3),setTimeout((function(){c._animationEnd(),c.fire("spiderfied",{cluster:u,markers:e})}),200)},_animationUnspiderfy:function(e){var t,n,i,r,o,a,s=this,l=this._group,u=l._map,c=l._featureGroup,d=e?u._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):u.latLngToLayerPoint(this._latlng),h=this.getAllChildMarkers(),f=L.Path.SVG;for(l._animationStart(),this.setOpacity(1),n=h.length-1;n>=0;n--)(t=h[n])._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,a=!0,t._setPos&&(t._setPos(d),a=!1),t.clusterHide&&(t.clusterHide(),a=!1),a&&c.removeLayer(t),f&&(o=(r=(i=t._spiderLeg)._path).getTotalLength()+.1,r.style.strokeDashoffset=o,i.setStyle({opacity:0})));setTimeout((function(){var e=0;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&e++;for(n=h.length-1;n>=0;n--)(t=h[n])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&c.removeLayer(t),u.removeLayer(t._spiderLeg),delete t._spiderLeg);l._animationEnd(),l.fire("unspiderfied",{cluster:s,markers:h})}),200)}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,n;for(t in e)for(n=e[t].__parent;n;)n._iconNeedsUpdate=!0,n=n.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer((function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()}))},_refreshSingleMarkerModeMarkers:function(e){var t,n;for(t in e)n=e[t],this.hasLayer(n)&&n.setIcon(this._overrideMarkerIcon(n))}}),L.Marker.include({refreshIconOptions:function(e,t){var n=this.options.icon;return L.setOptions(n,e),this.setIcon(n),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document),function(e,t){"function"==typeof define&&define.amd?define(["leaflet"],t):"object"==typeof module&&module.exports?t(require("leaflet")):t(e.L)}(this,(function(e){e.FeatureGroup.SubGroup=e.FeatureGroup.extend({statics:{version:"0.1.2"},initialize:function(t,n){e.FeatureGroup.prototype.initialize.call(this,n),this.setParentGroup(t)},setParentGroup:function(t){var n=t instanceof e.LayerGroup;return this._parentGroup=t,this.onAdd=n?"function"==typeof t.addLayers?this._onAddToGroupBatch:this._onAddToGroup:this._onAddToMap,this.onRemove=n?"function"==typeof t.removeLayers?this._onRemoveFromGroupBatch:this._onRemoveFromGroup:this._onRemoveFromMap,this.addLayer=n?this._addLayerToGroup:this._addLayerToMap,this.removeLayer=n?this._removeLayerFromGroup:this._removeLayerFromMap,this},setParentGroupSafe:function(e){var t=this._map;return t&&t.removeLayer(this),this.setParentGroup(e),t&&t.addLayer(this),this},getParentGroup:function(){return this._parentGroup},_onAddToGroupBatch:function(e){var t=this.getLayers();this._map=e,this._parentGroup.addLayers(t)},_onRemoveFromGroupBatch:function(){var e=this.getLayers();this._parentGroup.removeLayers(e),this._map=null},_onAddToGroup:function(e){var t=this._parentGroup;this._map=e,this.eachLayer(t.addLayer,t)},_onRemoveFromGroup:function(){var e=this._parentGroup;this.eachLayer(e.removeLayer,e),this._map=null},_onAddToMap:e.FeatureGroup.prototype.onAdd,_onRemoveFromMap:e.FeatureGroup.prototype.onRemove,_addLayerToGroup:function(t){if(this.hasLayer(t))return this;t.on&&t.on(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=this.getLayerId(t);return this._layers[n]=t,this._map&&this._parentGroup.addLayer(t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t})},_removeLayerFromGroup:function(t){if(!this.hasLayer(t))return this;t in this._layers&&(t=this._layers[t]),t.off&&t.off(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[n]&&this._parentGroup.removeLayer(n),delete this._layers[n],this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})},_addLayerToMap:e.FeatureGroup.prototype.addLayer,_removeLayerFromMap:e.FeatureGroup.prototype.removeLayer}),e.featureGroup.subGroup=function(t,n){return new e.FeatureGroup.SubGroup(t,n)}}));
\ No newline at end of file
diff --git a/assets/www/dist_js/vendor-5fc0296825.js b/assets/www/dist_js/vendor-5fc0296825.js
deleted file mode 100644
index b634e3e3956e22e2f83ef22b43c212e7522032b0..0000000000000000000000000000000000000000
--- a/assets/www/dist_js/vendor-5fc0296825.js
+++ /dev/null
@@ -1,51 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return jt.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function r(e){return void 0===e}function i(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function o(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function a(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e,t){for(var n in t)s(t,n)&&(e[n]=t[n]);return s(t,"toString")&&(e.toString=t.toString),s(t,"valueOf")&&(e.valueOf=t.valueOf),e}function u(e,t,n,r){return ge(e,t,n,r,!0).utc()}function c(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function d(e){if(null==e._isValid){var t=c(e),n=Ht.call(t.parsedDateParts,function(e){return null!=e}),r=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(r=r&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return r;e._isValid=r}return e._isValid}function h(e){var t=u(NaN);return null!=e?l(c(t),e):c(t).userInvalidated=!0,t}function f(e,t){var n,i,o;if(r(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),r(t._i)||(e._i=t._i),r(t._f)||(e._f=t._f),r(t._l)||(e._l=t._l),r(t._strict)||(e._strict=t._strict),r(t._tzm)||(e._tzm=t._tzm),r(t._isUTC)||(e._isUTC=t._isUTC),r(t._offset)||(e._offset=t._offset),r(t._pf)||(e._pf=c(t)),r(t._locale)||(e._locale=t._locale),0<Bt.length)for(n=0;n<Bt.length;n++)r(o=t[i=Bt[n]])||(e[i]=o);return e}function p(t){f(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===Rt&&(Rt=!0,e.updateOffset(this),Rt=!1)}function m(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function g(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function v(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=g(t)),n}function _(e,t,n){var r,i=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),a=0;for(r=0;r<i;r++)(n&&e[r]!==t[r]||!n&&v(e[r])!==v(t[r]))&&a++;return a+o}function y(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function b(t,n){var r=!0;return l(function(){if(null!=e.deprecationHandler&&e.deprecationHandler(null,t),r){for(var i,o=[],a=0;a<arguments.length;a++){if(i="","object"==typeof arguments[a]){for(var s in i+="\n["+a+"] ",arguments[0])i+=s+": "+arguments[0][s]+", ";i=i.slice(0,-2)}else i=arguments[a];o.push(i)}y(t+"\nArguments: "+Array.prototype.slice.call(o).join("")+"\n"+(new Error).stack),r=!1}return n.apply(this,arguments)},n)}function w(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),Ft[t]||(y(n),Ft[t]=!0)}function L(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function M(e,t){var r,i=l({},e);for(r in t)s(t,r)&&(n(e[r])&&n(t[r])?(i[r]={},l(i[r],e[r]),l(i[r],t[r])):null!=t[r]?i[r]=t[r]:delete i[r]);for(r in e)s(e,r)&&!s(t,r)&&n(e[r])&&(i[r]=l({},i[r]));return i}function k(e){null!=e&&this.set(e)}function x(e,t){var n=e.toLowerCase();zt[n]=zt[n+"s"]=zt[t]=e}function S(e){return"string"==typeof e?zt[e]||zt[e.toLowerCase()]:void 0}function T(e){var t,n,r={};for(n in e)s(e,n)&&(t=S(n))&&(r[t]=e[n]);return r}function $(e,t){Vt[e]=t}function D(e,t,n){var r=""+Math.abs(e),i=t-r.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}function C(e,t,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),e&&(Gt[e]=i),t&&(Gt[t[0]]=function(){return D(i.apply(this,arguments),t[1],t[2])}),n&&(Gt[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function E(e,t){return e.isValid()?(t=A(t,e.localeData()),qt[t]=qt[t]||function(e){var t,n,r,i=e.match(Ut);for(t=0,n=i.length;t<n;t++)Gt[i[t]]?i[t]=Gt[i[t]]:i[t]=(r=i[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,o="";for(r=0;r<n;r++)o+=L(i[r])?i[r].call(t,e):i[r];return o}}(t),qt[t](e)):e.localeData().invalidDate()}function A(e,t){function n(e){return t.longDateFormat(e)||e}var r=5;for(Wt.lastIndex=0;0<=r&&Wt.test(e);)e=e.replace(Wt,n),Wt.lastIndex=0,r-=1;return e}function P(e,t,n){hn[e]=L(t)?t:function(e,r){return e&&n?n:t}}function Y(e,t){return s(hn,e)?hn[e](t._strict,t._locale):new RegExp(O(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,r,i){return t||n||r||i})))}function O(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function I(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),i(t)&&(r=function(e,n){n[t]=v(e)}),n=0;n<e.length;n++)fn[e[n]]=r}function j(e,t){I(e,function(e,n,r,i){r._w=r._w||{},t(e,r._w,r,i)})}function H(e){return N(e)?366:365}function N(e){return e%4==0&&e%100!=0||e%400==0}function B(t,n){return function(r){return null!=r?(F(this,t,r),e.updateOffset(this,n),this):R(this,t)}}function R(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function F(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&N(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),z(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function z(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?N(e)?29:28:31-r%7%2}function V(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=v(t);else if(!i(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),z(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function U(t){return null!=t?(V(this,t),e.updateOffset(this,!0),this):R(this,"Month")}function W(){function e(e,t){return t.length-e.length}var t,n,r=[],i=[],o=[];for(t=0;t<12;t++)n=u([2e3,t]),r.push(this.monthsShort(n,"")),i.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(r.sort(e),i.sort(e),o.sort(e),t=0;t<12;t++)r[t]=O(r[t]),i[t]=O(i[t]);for(t=0;t<24;t++)o[t]=O(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function q(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function G(e,t,n){var r=7+t-n;return-(7+q(e,0,r).getUTCDay()-t)%7+r-1}function Z(e,t,n,r,i){var o,a,s=1+7*(t-1)+(7+n-r)%7+G(e,r,i);return a=s<=0?H(o=e-1)+s:s>H(e)?(o=e+1,s-H(e)):(o=e,s),{year:o,dayOfYear:a}}function J(e,t,n){var r,i,o=G(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?r=a+X(i=e.year()-1,t,n):a>X(e.year(),t,n)?(r=a-X(e.year(),t,n),i=e.year()+1):(i=e.year(),r=a),{week:r,year:i}}function X(e,t,n){var r=G(e,t,n),i=G(e+1,t,n);return(H(e)-r+i)/7}function K(e,t){return e.slice(t,7).concat(e.slice(0,t))}function Q(){function e(e,t){return t.length-e.length}var t,n,r,i,o,a=[],s=[],l=[],c=[];for(t=0;t<7;t++)n=u([2e3,1]).day(t),r=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),o=this.weekdays(n,""),a.push(r),s.push(i),l.push(o),c.push(r),c.push(i),c.push(o);for(a.sort(e),s.sort(e),l.sort(e),c.sort(e),t=0;t<7;t++)s[t]=O(s[t]),l[t]=O(l[t]),c[t]=O(c[t]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function ee(){return this.hours()%12||12}function te(e,t){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function ne(e,t){return t._meridiemParse}function re(e){return e?e.toLowerCase().replace("_","-"):e}function ie(e){var t=null;if(!Nn[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=In._abbr,require("./locale/"+e),oe(t)}catch(e){}return Nn[e]}function oe(e,t){var n;return e&&((n=r(t)?se(e):ae(e,t))?In=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),In._abbr}function ae(e,t){if(null===t)return delete Nn[e],null;var n,r=Hn;if(t.abbr=e,null!=Nn[e])w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=Nn[e]._config;else if(null!=t.parentLocale)if(null!=Nn[t.parentLocale])r=Nn[t.parentLocale]._config;else{if(null==(n=ie(t.parentLocale)))return Bn[t.parentLocale]||(Bn[t.parentLocale]=[]),Bn[t.parentLocale].push({name:e,config:t}),null;r=n._config}return Nn[e]=new k(M(r,t)),Bn[e]&&Bn[e].forEach(function(e){ae(e.name,e.config)}),oe(e),Nn[e]}function se(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return In;if(!t(e)){if(n=ie(e))return n;e=[e]}return function(e){for(var t,n,r,i,o=0;o<e.length;){for(t=(i=re(e[o]).split("-")).length,n=(n=re(e[o+1]))?n.split("-"):null;0<t;){if(r=ie(i.slice(0,t).join("-")))return r;if(n&&n.length>=t&&_(i,n,!0)>=t-1)break;t--}o++}return In}(e)}function le(e){var t,n=e._a;return n&&-2===c(e).overflow&&(t=n[mn]<0||11<n[mn]?mn:n[gn]<1||n[gn]>z(n[pn],n[mn])?gn:n[vn]<0||24<n[vn]||24===n[vn]&&(0!==n[_n]||0!==n[yn]||0!==n[bn])?vn:n[_n]<0||59<n[_n]?_n:n[yn]<0||59<n[yn]?yn:n[bn]<0||999<n[bn]?bn:-1,c(e)._overflowDayOfYear&&(t<pn||gn<t)&&(t=gn),c(e)._overflowWeeks&&-1===t&&(t=wn),c(e)._overflowWeekday&&-1===t&&(t=Ln),c(e).overflow=t),e}function ue(e,t,n){return null!=e?e:null!=t?t:n}function ce(t){var n,r,i,o,a,s=[];if(!t._d){var l,u;for(l=t,u=new Date(e.now()),i=l._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],t._w&&null==t._a[gn]&&null==t._a[mn]&&function(e){var t,n,r,i,o,a,s,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)o=1,a=4,n=ue(t.GG,e._a[pn],J(ve(),1,4).year),r=ue(t.W,1),((i=ue(t.E,1))<1||7<i)&&(l=!0);else{o=e._locale._week.dow,a=e._locale._week.doy;var u=J(ve(),o,a);n=ue(t.gg,e._a[pn],u.year),r=ue(t.w,u.week),null!=t.d?((i=t.d)<0||6<i)&&(l=!0):null!=t.e?(i=t.e+o,(t.e<0||6<t.e)&&(l=!0)):i=o}r<1||r>X(n,o,a)?c(e)._overflowWeeks=!0:null!=l?c(e)._overflowWeekday=!0:(s=Z(n,r,i,o,a),e._a[pn]=s.year,e._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(a=ue(t._a[pn],i[pn]),(t._dayOfYear>H(a)||0===t._dayOfYear)&&(c(t)._overflowDayOfYear=!0),r=q(a,0,t._dayOfYear),t._a[mn]=r.getUTCMonth(),t._a[gn]=r.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=s[n]=i[n];for(;n<7;n++)t._a[n]=s[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[vn]&&0===t._a[_n]&&0===t._a[yn]&&0===t._a[bn]&&(t._nextDay=!0,t._a[vn]=0),t._d=(t._useUTC?q:function(e,t,n,r,i,o,a){var s;return e<100&&0<=e?(s=new Date(e+400,t,n,r,i,o,a),isFinite(s.getFullYear())&&s.setFullYear(e)):s=new Date(e,t,n,r,i,o,a),s}).apply(null,s),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[vn]=24),t._w&&void 0!==t._w.d&&t._w.d!==o&&(c(t).weekdayMismatch=!0)}}function de(e){var t,n,r,i,o,a,s=e._i,l=Rn.exec(s)||Fn.exec(s);if(l){for(c(e).iso=!0,t=0,n=Vn.length;t<n;t++)if(Vn[t][1].exec(l[1])){i=Vn[t][0],r=!1!==Vn[t][2];break}if(null==i)return void(e._isValid=!1);if(l[3]){for(t=0,n=Un.length;t<n;t++)if(Un[t][1].exec(l[3])){o=(l[2]||" ")+Un[t][0];break}if(null==o)return void(e._isValid=!1)}if(!r&&null!=o)return void(e._isValid=!1);if(l[4]){if(!zn.exec(l[4]))return void(e._isValid=!1);a="Z"}e._f=i+(o||"")+(a||""),pe(e)}else e._isValid=!1}function he(e,t,n,r,i,o){var a=[function(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}(e),Tn.indexOf(t),parseInt(n,10),parseInt(r,10),parseInt(i,10)];return o&&a.push(parseInt(o,10)),a}function fe(e){var t,n,r,i=qn.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var o=he(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=o,r=e,t&&En.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(c(r).weekdayMismatch=!0,!(r._isValid=!1)))return;e._a=o,e._tzm=function(e,t,n){if(e)return Gn[e];if(t)return 0;var r=parseInt(n,10),i=r%100;return(r-i)/100*60+i}(i[8],i[9],i[10]),e._d=q.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),c(e).rfc2822=!0}else e._isValid=!1}function pe(t){if(t._f!==e.ISO_8601)if(t._f!==e.RFC_2822){t._a=[],c(t).empty=!0;var n,r,i,o,a,l,u,d,h=""+t._i,f=h.length,p=0;for(i=A(t._f,t._locale).match(Ut)||[],n=0;n<i.length;n++)o=i[n],(r=(h.match(Y(o,t))||[])[0])&&(0<(a=h.substr(0,h.indexOf(r))).length&&c(t).unusedInput.push(a),h=h.slice(h.indexOf(r)+r.length),p+=r.length),Gt[o]?(r?c(t).empty=!1:c(t).unusedTokens.push(o),l=o,d=t,null!=(u=r)&&s(fn,l)&&fn[l](u,d._a,d,l)):t._strict&&!r&&c(t).unusedTokens.push(o);c(t).charsLeftOver=f-p,0<h.length&&c(t).unusedInput.push(h),t._a[vn]<=12&&!0===c(t).bigHour&&0<t._a[vn]&&(c(t).bigHour=void 0),c(t).parsedDateParts=t._a.slice(0),c(t).meridiem=t._meridiem,t._a[vn]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0)),t)}(t._locale,t._a[vn],t._meridiem),ce(t),le(t)}else fe(t);else de(t)}function me(s){var u,g,v,_,y=s._i,b=s._f;return s._locale=s._locale||se(s._l),null===y||void 0===b&&""===y?h({nullInput:!0}):("string"==typeof y&&(s._i=y=s._locale.preparse(y)),m(y)?new p(le(y)):(o(y)?s._d=y:t(b)?function(e){var t,n,r,i,o;if(0===e._f.length)return c(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)o=0,t=f({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],pe(t),d(t)&&(o+=c(t).charsLeftOver,o+=10*c(t).unusedTokens.length,c(t).score=o,(null==r||o<r)&&(r=o,n=t));l(e,n||t)}(s):b?pe(s):r(g=(u=s)._i)?u._d=new Date(e.now()):o(g)?u._d=new Date(g.valueOf()):"string"==typeof g?(v=u,null===(_=Wn.exec(v._i))?(de(v),!1===v._isValid&&(delete v._isValid,fe(v),!1===v._isValid&&(delete v._isValid,e.createFromInputFallback(v)))):v._d=new Date(+_[1])):t(g)?(u._a=a(g.slice(0),function(e){return parseInt(e,10)}),ce(u)):n(g)?function(e){if(!e._d){var t=T(e._i);e._a=a([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ce(e)}}(u):i(g)?u._d=new Date(g):e.createFromInputFallback(u),d(s)||(s._d=null),s))}function ge(e,r,i,o,a){var s,l={};return!0!==i&&!1!==i||(o=i,i=void 0),(n(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||t(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=i,l._i=e,l._f=r,l._strict=o,(s=new p(le(me(l))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function ve(e,t,n,r){return ge(e,t,n,r,!1)}function _e(e,n){var r,i;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return ve();for(r=n[0],i=1;i<n.length;++i)n[i].isValid()&&!n[i][e](r)||(r=n[i]);return r}function ye(e){var t=T(e),n=t.year||0,r=t.quarter||0,i=t.month||0,o=t.week||t.isoWeek||0,a=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,c=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Mn.call(Xn,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,r=0;r<Xn.length;++r)if(e[Xn[r]]){if(n)return!1;parseFloat(e[Xn[r]])!==v(e[Xn[r]])&&(n=!0)}return!0}(t),this._milliseconds=+c+1e3*u+6e4*l+1e3*s*60*60,this._days=+a+7*o,this._months=+i+3*r+12*n,this._data={},this._locale=se(),this._bubble()}function be(e){return e instanceof ye}function we(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Le(e,t){C(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+D(~~(e/60),2)+t+D(~~e%60,2)})}function Me(e,t){var n=(t||"").match(e);if(null===n)return null;var r=((n[n.length-1]||[])+"").match(Kn)||["-",0,0],i=60*r[1]+v(r[2]);return 0===i?0:"+"===r[0]?i:-i}function ke(t,n){var r,i;return n._isUTC?(r=n.clone(),i=(m(t)||o(t)?t.valueOf():ve(t).valueOf())-r.valueOf(),r._d.setTime(r._d.valueOf()+i),e.updateOffset(r,!1),r):ve(t).local()}function xe(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Se(){return!!this.isValid()&&this._isUTC&&0===this._offset}function Te(e,t){var n,r,o,a=e,l=null;return be(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:i(e)?(a={},t?a[t]=e:a.milliseconds=e):(l=Qn.exec(e))?(n="-"===l[1]?-1:1,a={y:0,d:v(l[gn])*n,h:v(l[vn])*n,m:v(l[_n])*n,s:v(l[yn])*n,ms:v(we(1e3*l[bn]))*n}):(l=er.exec(e))?(n="-"===l[1]?-1:1,a={y:$e(l[2],n),M:$e(l[3],n),w:$e(l[4],n),d:$e(l[5],n),h:$e(l[6],n),m:$e(l[7],n),s:$e(l[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(o=function(e,t){var n;return e.isValid()&&t.isValid()?(t=ke(t,e),e.isBefore(t)?n=De(e,t):((n=De(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}(ve(a.from),ve(a.to)),(a={}).ms=o.milliseconds,a.M=o.months),r=new ye(a),be(e)&&s(e,"_locale")&&(r._locale=e._locale),r}function $e(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function De(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Ce(e,t){return function(n,r){var i;return null===r||isNaN(+r)||(w(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),Ee(this,Te(n="string"==typeof n?+n:n,r),e),this}}function Ee(t,n,r,i){var o=n._milliseconds,a=we(n._days),s=we(n._months);t.isValid()&&(i=null==i||i,s&&V(t,R(t,"Month")+s*r),a&&F(t,"Date",R(t,"Date")+a*r),o&&t._d.setTime(t._d.valueOf()+o*r),i&&e.updateOffset(t,a||s))}function Ae(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function Pe(e){var t;return void 0===e?this._locale._abbr:(null!=(t=se(e))&&(this._locale=t),this)}function Ye(){return this._locale}function Oe(e,t){return(e%t+t)%t}function Ie(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-ir:new Date(e,t,n).valueOf()}function je(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-ir:Date.UTC(e,t,n)}function He(e,t){C(0,[e,e.length],0,t)}function Ne(e,t,n,r,i){var o;return null==e?J(this,r,i).year:((o=X(e,r,i))<t&&(t=o),function(e,t,n,r,i){var o=Z(e,t,n,r,i),a=q(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,r,i))}function Be(e,t){t[bn]=v(1e3*("0."+e))}function Re(e){return e}function Fe(e,t,n,r){var i=se(),o=u().set(r,t);return i[n](o,e)}function ze(e,t,n){if(i(e)&&(t=e,e=void 0),e=e||"",null!=t)return Fe(e,t,n,"month");var r,o=[];for(r=0;r<12;r++)o[r]=Fe(e,r,n,"month");return o}function Ve(e,t,n,r){"boolean"==typeof e?i(t)&&(n=t,t=void 0):(t=e,e=!1,i(n=t)&&(n=t,t=void 0)),t=t||"";var o,a=se(),s=e?a._week.dow:0;if(null!=n)return Fe(t,(n+s)%7,r,"day");var l=[];for(o=0;o<7;o++)l[o]=Fe(t,(o+s)%7,r,"day");return l}function Ue(e,t,n,r){var i=Te(t,n);return e._milliseconds+=r*i._milliseconds,e._days+=r*i._days,e._months+=r*i._months,e._bubble()}function We(e){return e<0?Math.floor(e):Math.ceil(e)}function qe(e){return 4800*e/146097}function Ge(e){return 146097*e/4800}function Ze(e){return function(){return this.as(e)}}function Je(e){return function(){return this.isValid()?this._data[e]:NaN}}function Xe(e){return(0<e)-(e<0)||+e}function Ke(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Er(this._milliseconds)/1e3,r=Er(this._days),i=Er(this._months);t=g((e=g(n/60))/60),n%=60,e%=60;var o=g(i/12),a=i%=12,s=r,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var h=d<0?"-":"",f=Xe(this._months)!==Xe(d)?"-":"",p=Xe(this._days)!==Xe(d)?"-":"",m=Xe(this._milliseconds)!==Xe(d)?"-":"";return h+"P"+(o?f+o+"Y":"")+(a?f+a+"M":"")+(s?p+s+"D":"")+(l||u||c?"T":"")+(l?m+l+"H":"")+(u?m+u+"M":"")+(c?m+c+"S":"")}function Qe(e,t,n){var r,i;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,i={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?i[0]:2<=r%10&&r%10<=4&&(r%100<10||20<=r%100)?i[1]:i[2])}function et(e,t,n){var r,i,o;return e+" "+(r={mm:"munutenn",MM:"miz",dd:"devezh"}[n],2!==e?r:void 0!==(o={m:"v",b:"v",d:"z"})[(i=r).charAt(0)]?o[i.charAt(0)]+i.substring(1):i)}function tt(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}function nt(e){return 1<e&&e<5&&1!=~~(e/10)}function rt(e,t,n,r){var i=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?i+(nt(e)?"sekundy":"sekund"):i+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?i+(nt(e)?"minuty":"minut"):i+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?i+(nt(e)?"hodiny":"hodin"):i+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?i+(nt(e)?"dny":"dní"):i+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?i+(nt(e)?"měsíce":"měsíců"):i+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?i+(nt(e)?"roky":"let"):i+"lety"}}function it(e,t,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[n][0]:i[n][1]}function ot(e,t,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[n][0]:i[n][1]}function at(e,t,n,r){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[n][0]:i[n][1]}function st(e,t,n,r){var i={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?i[n][2]?i[n][2]:i[n][1]:r?i[n][0]:i[n][1]}function lt(e,t,n,r){var i,o,a="";switch(n){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":a=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":a=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":a=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":a=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":a=r?"vuoden":"vuotta"}return o=r,a=((i=e)<10?o?_i[i]:vi[i]:i)+" "+a}function ut(e,t,n,r){var i={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?i[n][0]:i[n][1]}function ct(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}function dt(e,t,n,r){var i=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return i+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return i+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return i+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return i+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return i+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return i+(r||t?" év":" éve")}return""}function ht(e){return(e?"":"[múlt] ")+"["+xi[this.day()]+"] LT[-kor]"}function ft(e){return e%100==11||e%10!=1}function pt(e,t,n,r){var i=e+" ";switch(n){case"s":return t||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return ft(e)?i+(t||r?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return t?"mínúta":"mínútu";case"mm":return ft(e)?i+(t||r?"mínútur":"mínútum"):t?i+"mínúta":i+"mínútu";case"hh":return ft(e)?i+(t||r?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return t?"dagur":r?"dag":"degi";case"dd":return ft(e)?t?i+"dagar":i+(r?"daga":"dögum"):t?i+"dagur":i+(r?"dag":"degi");case"M":return t?"mánuður":r?"mánuð":"mánuði";case"MM":return ft(e)?t?i+"mánuðir":i+(r?"mánuði":"mánuðum"):t?i+"mánuður":i+(r?"mánuð":"mánuði");case"y":return t||r?"ár":"ári";case"yy":return ft(e)?i+(t||r?"ár":"árum"):i+(t||r?"ár":"ári")}}function mt(e,t,n,r){var i={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?i[n][0]:i[n][1]}function gt(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return gt(0===t?e/10:t)}if(e<1e4){for(;10<=e;)e/=10;return gt(e)}return gt(e/=1e3)}function vt(e,t,n,r){return t?yt(n)[0]:r?yt(n)[1]:yt(n)[2]}function _t(e){return e%10==0||10<e&&e<20}function yt(e){return Oi[e].split("_")}function bt(e,t,n,r){var i=e+" ";return 1===e?i+vt(0,t,n[0],r):t?i+(_t(e)?yt(n)[1]:yt(n)[0]):r?i+yt(n)[1]:i+(_t(e)?yt(n)[1]:yt(n)[2])}function wt(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function Lt(e,t,n){return e+" "+wt(Ii[n],e,t)}function Mt(e,t,n){return wt(Ii[n],e,t)}function kt(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}function xt(e,t,n,r){var i="";if(t)switch(n){case"s":i="काही सेकंद";break;case"ss":i="%d सेकंद";break;case"m":i="एक मिनिट";break;case"mm":i="%d मिनिटे";break;case"h":i="एक तास";break;case"hh":i="%d तास";break;case"d":i="एक दिवस";break;case"dd":i="%d दिवस";break;case"M":i="एक महिना";break;case"MM":i="%d महिने";break;case"y":i="एक वर्ष";break;case"yy":i="%d वर्षे"}else switch(n){case"s":i="काही सेकंदां";break;case"ss":i="%d सेकंदां";break;case"m":i="एका मिनिटा";break;case"mm":i="%d मिनिटां";break;case"h":i="एका तासा";break;case"hh":i="%d तासां";break;case"d":i="एका दिवसा";break;case"dd":i="%d दिवसां";break;case"M":i="एका महिन्या";break;case"MM":i="%d महिन्यां";break;case"y":i="एका वर्षा";break;case"yy":i="%d वर्षां"}return i.replace(/%d/i,e)}function St(e){return e%10<5&&1<e%10&&~~(e/10)%10!=1}function Tt(e,t,n){var r=e+" ";switch(n){case"ss":return r+(St(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(St(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(St(e)?"godziny":"godzin");case"MM":return r+(St(e)?"miesiące":"miesięcy");case"yy":return r+(St(e)?"lata":"lat")}}function $t(e,t,n){var r=" ";return(20<=e%100||100<=e&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}function Dt(e,t,n){var r,i;return"m"===n?t?"минута":"минуту":e+" "+(r=+e,i={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?i[0]:2<=r%10&&r%10<=4&&(r%100<10||20<=r%100)?i[1]:i[2])}function Ct(e){return 1<e&&e<5}function Et(e,t,n,r){var i=e+" ";switch(n){case"s":return t||r?"pár sekúnd":"pár sekundami";case"ss":return t||r?i+(Ct(e)?"sekundy":"sekúnd"):i+"sekundami";case"m":return t?"minúta":r?"minútu":"minútou";case"mm":return t||r?i+(Ct(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?i+(Ct(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||r?"deň":"dňom";case"dd":return t||r?i+(Ct(e)?"dni":"dní"):i+"dňami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?i+(Ct(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?i+(Ct(e)?"roky":"rokov"):i+"rokmi"}}function At(e,t,n,r){var i=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return i+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return i+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return i+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return i+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return i+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return i+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}function Pt(e,t,n,r){var i=function(e){var t=Math.floor(e%1e3/100),n=Math.floor(e%100/10),r=e%10,i="";return 0<t&&(i+=fo[t]+"vatlh"),0<n&&(i+=(""!==i?" ":"")+fo[n]+"maH"),0<r&&(i+=(""!==i?" ":"")+fo[r]),""===i?"pagh":i}(e);switch(n){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}function Yt(e,t,n,r){var i={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r?i[n][0]:t?i[n][0]:i[n][1]}function Ot(e,t,n){var r,i
-;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,i={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?i[0]:2<=r%10&&r%10<=4&&(r%100<10||20<=r%100)?i[1]:i[2])}function It(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}var jt,Ht;Ht=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,r=0;r<n;r++)if(r in t&&e.call(this,t[r],r,t))return!0;return!1};var Nt,Bt=e.momentProperties=[],Rt=!1,Ft={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null,Nt=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)s(e,t)&&n.push(t);return n};var zt={},Vt={},Ut=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Wt=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,qt={},Gt={},Zt=/\d/,Jt=/\d\d/,Xt=/\d{3}/,Kt=/\d{4}/,Qt=/[+-]?\d{6}/,en=/\d\d?/,tn=/\d\d\d\d?/,nn=/\d\d\d\d\d\d?/,rn=/\d{1,3}/,on=/\d{1,4}/,an=/[+-]?\d{1,6}/,sn=/\d+/,ln=/[+-]?\d+/,un=/Z|[+-]\d\d:?\d\d/gi,cn=/Z|[+-]\d\d(?::?\d\d)?/gi,dn=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,hn={},fn={},pn=0,mn=1,gn=2,vn=3,_n=4,yn=5,bn=6,wn=7,Ln=8;C("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),C(0,["YY",2],0,function(){return this.year()%100}),C(0,["YYYY",4],0,"year"),C(0,["YYYYY",5],0,"year"),C(0,["YYYYYY",6,!0],0,"year"),x("year","y"),$("year",1),P("Y",ln),P("YY",en,Jt),P("YYYY",on,Kt),P("YYYYY",an,Qt),P("YYYYYY",an,Qt),I(["YYYYY","YYYYYY"],pn),I("YYYY",function(t,n){n[pn]=2===t.length?e.parseTwoDigitYear(t):v(t)}),I("YY",function(t,n){n[pn]=e.parseTwoDigitYear(t)}),I("Y",function(e,t){t[pn]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return v(e)+(68<v(e)?1900:2e3)};var Mn,kn=B("FullYear",!0);Mn=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},C("M",["MM",2],"Mo",function(){return this.month()+1}),C("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),C("MMMM",0,0,function(e){return this.localeData().months(this,e)}),x("month","M"),$("month",8),P("M",en),P("MM",en,Jt),P("MMM",function(e,t){return t.monthsShortRegex(e)}),P("MMMM",function(e,t){return t.monthsRegex(e)}),I(["M","MM"],function(e,t){t[mn]=v(e)-1}),I(["MMM","MMMM"],function(e,t,n,r){var i=n._locale.monthsParse(e,r,n._strict);null!=i?t[mn]=i:c(n).invalidMonth=e});var xn=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Sn="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Tn="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),$n=dn,Dn=dn;C("w",["ww",2],"wo","week"),C("W",["WW",2],"Wo","isoWeek"),x("week","w"),x("isoWeek","W"),$("week",5),$("isoWeek",5),P("w",en),P("ww",en,Jt),P("W",en),P("WW",en,Jt),j(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=v(e)}),C("d",0,"do","day"),C("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),C("e",0,0,"weekday"),C("E",0,0,"isoWeekday"),x("day","d"),x("weekday","e"),x("isoWeekday","E"),$("day",11),$("weekday",11),$("isoWeekday",11),P("d",en),P("e",en),P("E",en),P("dd",function(e,t){return t.weekdaysMinRegex(e)}),P("ddd",function(e,t){return t.weekdaysShortRegex(e)}),P("dddd",function(e,t){return t.weekdaysRegex(e)}),j(["dd","ddd","dddd"],function(e,t,n,r){var i=n._locale.weekdaysParse(e,r,n._strict);null!=i?t.d=i:c(n).invalidWeekday=e}),j(["d","e","E"],function(e,t,n,r){t[r]=v(e)});var Cn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),En="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),An="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Pn=dn,Yn=dn,On=dn;C("H",["HH",2],0,"hour"),C("h",["hh",2],0,ee),C("k",["kk",2],0,function(){return this.hours()||24}),C("hmm",0,0,function(){return""+ee.apply(this)+D(this.minutes(),2)}),C("hmmss",0,0,function(){return""+ee.apply(this)+D(this.minutes(),2)+D(this.seconds(),2)}),C("Hmm",0,0,function(){return""+this.hours()+D(this.minutes(),2)}),C("Hmmss",0,0,function(){return""+this.hours()+D(this.minutes(),2)+D(this.seconds(),2)}),te("a",!0),te("A",!1),x("hour","h"),$("hour",13),P("a",ne),P("A",ne),P("H",en),P("h",en),P("k",en),P("HH",en,Jt),P("hh",en,Jt),P("kk",en,Jt),P("hmm",tn),P("hmmss",nn),P("Hmm",tn),P("Hmmss",nn),I(["H","HH"],vn),I(["k","kk"],function(e,t,n){var r=v(e);t[vn]=24===r?0:r}),I(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),I(["h","hh"],function(e,t,n){t[vn]=v(e),c(n).bigHour=!0}),I("hmm",function(e,t,n){var r=e.length-2;t[vn]=v(e.substr(0,r)),t[_n]=v(e.substr(r)),c(n).bigHour=!0}),I("hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[vn]=v(e.substr(0,r)),t[_n]=v(e.substr(r,2)),t[yn]=v(e.substr(i)),c(n).bigHour=!0}),I("Hmm",function(e,t,n){var r=e.length-2;t[vn]=v(e.substr(0,r)),t[_n]=v(e.substr(r))}),I("Hmmss",function(e,t,n){var r=e.length-4,i=e.length-2;t[vn]=v(e.substr(0,r)),t[_n]=v(e.substr(r,2)),t[yn]=v(e.substr(i))});var In,jn=B("Hours",!0),Hn={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Sn,monthsShort:Tn,week:{dow:0,doy:6},weekdays:Cn,weekdaysMin:An,weekdaysShort:En,meridiemParse:/[ap]\.?m?\.?/i},Nn={},Bn={},Rn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,zn=/Z|[+-]\d\d(?::?\d\d)?/,Vn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Un=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Wn=/^\/?Date\((\-?\d+)/i,qn=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Gn={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};e.createFromInputFallback=b("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var Zn=b("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=ve.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:h()}),Jn=b("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=ve.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:h()}),Xn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Le("Z",":"),Le("ZZ",""),P("Z",cn),P("ZZ",cn),I(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Me(cn,e)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Qn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,er=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Te.fn=ye.prototype,Te.invalid=function(){return Te(NaN)};var tr=Ce(1,"add"),nr=Ce(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var rr=b("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)}),ir=126227808e5;C(0,["gg",2],0,function(){return this.weekYear()%100}),C(0,["GG",2],0,function(){return this.isoWeekYear()%100}),He("gggg","weekYear"),He("ggggg","weekYear"),He("GGGG","isoWeekYear"),He("GGGGG","isoWeekYear"),x("weekYear","gg"),x("isoWeekYear","GG"),$("weekYear",1),$("isoWeekYear",1),P("G",ln),P("g",ln),P("GG",en,Jt),P("gg",en,Jt),P("GGGG",on,Kt),P("gggg",on,Kt),P("GGGGG",an,Qt),P("ggggg",an,Qt),j(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,r){t[r.substr(0,2)]=v(e)}),j(["gg","GG"],function(t,n,r,i){n[i]=e.parseTwoDigitYear(t)}),C("Q",0,"Qo","quarter"),x("quarter","Q"),$("quarter",7),P("Q",Zt),I("Q",function(e,t){t[mn]=3*(v(e)-1)}),C("D",["DD",2],"Do","date"),x("date","D"),$("date",9),P("D",en),P("DD",en,Jt),P("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),I(["D","DD"],gn),I("Do",function(e,t){t[gn]=v(e.match(en)[0])});var or=B("Date",!0);C("DDD",["DDDD",3],"DDDo","dayOfYear"),x("dayOfYear","DDD"),$("dayOfYear",4),P("DDD",rn),P("DDDD",Xt),I(["DDD","DDDD"],function(e,t,n){n._dayOfYear=v(e)}),C("m",["mm",2],0,"minute"),x("minute","m"),$("minute",14),P("m",en),P("mm",en,Jt),I(["m","mm"],_n);var ar=B("Minutes",!1);C("s",["ss",2],0,"second"),x("second","s"),$("second",15),P("s",en),P("ss",en,Jt),I(["s","ss"],yn);var sr,lr=B("Seconds",!1);for(C("S",0,0,function(){return~~(this.millisecond()/100)}),C(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),C(0,["SSS",3],0,"millisecond"),C(0,["SSSS",4],0,function(){return 10*this.millisecond()}),C(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),C(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),C(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),C(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),C(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),x("millisecond","ms"),$("millisecond",16),P("S",rn,Zt),P("SS",rn,Jt),P("SSS",rn,Xt),sr="SSSS";sr.length<=9;sr+="S")P(sr,sn);for(sr="S";sr.length<=9;sr+="S")I(sr,Be);var ur=B("Milliseconds",!1);C("z",0,0,"zoneAbbr"),C("zz",0,0,"zoneName");var cr=p.prototype;cr.add=tr,cr.calendar=function(t,n){var r=t||ve(),i=ke(r,this).startOf("day"),o=e.calendarFormat(this,i)||"sameElse",a=n&&(L(n[o])?n[o].call(this,r):n[o]);return this.format(a||this.localeData().calendar(o,this,ve(r)))},cr.clone=function(){return new p(this)},cr.diff=function(e,t,n){var r,i,o;if(!this.isValid())return NaN;if(!(r=ke(e,this)).isValid())return NaN;switch(i=6e4*(r.utcOffset()-this.utcOffset()),t=S(t)){case"year":o=Ae(this,r)/12;break;case"month":o=Ae(this,r);break;case"quarter":o=Ae(this,r)/3;break;case"second":o=(this-r)/1e3;break;case"minute":o=(this-r)/6e4;break;case"hour":o=(this-r)/36e5;break;case"day":o=(this-r-i)/864e5;break;case"week":o=(this-r-i)/6048e5;break;default:o=this-r}return n?o:g(o)},cr.endOf=function(t){var n;if(void 0===(t=S(t))||"millisecond"===t||!this.isValid())return this;var r=this._isUTC?je:Ie;switch(t){case"year":n=r(this.year()+1,0,1)-1;break;case"quarter":n=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=r(this.year(),this.month()+1,1)-1;break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=36e5-Oe(n+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":n=this._d.valueOf(),n+=6e4-Oe(n,6e4)-1;break;case"second":n=this._d.valueOf(),n+=1e3-Oe(n,1e3)-1}return this._d.setTime(n),e.updateOffset(this,!0),this},cr.format=function(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=E(this,t);return this.localeData().postformat(n)},cr.from=function(e,t){return this.isValid()&&(m(e)&&e.isValid()||ve(e).isValid())?Te({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},cr.fromNow=function(e){return this.from(ve(),e)},cr.to=function(e,t){return this.isValid()&&(m(e)&&e.isValid()||ve(e).isValid())?Te({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},cr.toNow=function(e){return this.to(ve(),e)},cr.get=function(e){return L(this[e=S(e)])?this[e]():this},cr.invalidAt=function(){return c(this).overflow},cr.isAfter=function(e,t){var n=m(e)?e:ve(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=S(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},cr.isBefore=function(e,t){var n=m(e)?e:ve(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=S(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},cr.isBetween=function(e,t,n,r){var i=m(e)?e:ve(e),o=m(t)?t:ve(t);return!!(this.isValid()&&i.isValid()&&o.isValid())&&("("===(r=r||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===r[1]?this.isBefore(o,n):!this.isAfter(o,n))},cr.isSame=function(e,t){var n,r=m(e)?e:ve(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=S(t)||"millisecond")?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},cr.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},cr.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},cr.isValid=function(){return d(this)},cr.lang=rr,cr.locale=Pe,cr.localeData=Ye,cr.max=Jn,cr.min=Zn,cr.parsingFlags=function(){return l({},c(this))},cr.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:Vt[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=T(e)),r=0;r<n.length;r++)this[n[r].unit](e[n[r].unit]);else if(L(this[e=S(e)]))return this[e](t);return this},cr.startOf=function(t){var n;if(void 0===(t=S(t))||"millisecond"===t||!this.isValid())return this;var r=this._isUTC?je:Ie;switch(t){case"year":n=r(this.year(),0,1);break;case"quarter":n=r(this.year(),this.month()-this.month()%3,1);break;case"month":n=r(this.year(),this.month(),1);break;case"week":n=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=r(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=Oe(n+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":n=this._d.valueOf(),n-=Oe(n,6e4);break;case"second":n=this._d.valueOf(),n-=Oe(n,1e3)}return this._d.setTime(n),e.updateOffset(this,!0),this},cr.subtract=nr,cr.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},cr.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},cr.toDate=function(){return new Date(this.valueOf())},cr.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?E(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):L(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",E(n,"Z")):E(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},cr.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+i)},cr.toJSON=function(){return this.isValid()?this.toISOString():null},cr.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},cr.unix=function(){return Math.floor(this.valueOf()/1e3)},cr.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},cr.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},cr.year=kn,cr.isLeapYear=function(){return N(this.year())},cr.weekYear=function(e){return Ne.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},cr.isoWeekYear=function(e){return Ne.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},cr.quarter=cr.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},cr.month=U,cr.daysInMonth=function(){return z(this.year(),this.month())},cr.week=cr.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},cr.isoWeek=cr.isoWeeks=function(e){var t=J(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},cr.weeksInYear=function(){var e=this.localeData()._week;return X(this.year(),e.dow,e.doy)},cr.isoWeeksInYear=function(){return X(this.year(),1,4)},cr.date=or,cr.day=cr.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,r=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-r,"d")):r},cr.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},cr.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,r=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?r:r-7)},cr.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},cr.hour=cr.hours=jn,cr.minute=cr.minutes=ar,cr.second=cr.seconds=lr,cr.millisecond=cr.milliseconds=ur,cr.utcOffset=function(t,n,r){var i,o=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null==t)return this._isUTC?o:xe(this);if("string"==typeof t){if(null===(t=Me(cn,t)))return this}else Math.abs(t)<16&&!r&&(t*=60);return!this._isUTC&&n&&(i=xe(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),o!==t&&(!n||this._changeInProgress?Ee(this,Te(t-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this},cr.utc=function(e){return this.utcOffset(0,e)},cr.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(xe(this),"m")),this},cr.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Me(un,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},cr.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?ve(e).utcOffset():0,(this.utcOffset()-e)%60==0)},cr.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},cr.isLocal=function(){return!!this.isValid()&&!this._isUTC},cr.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},cr.isUtc=Se,cr.isUTC=Se,cr.zoneAbbr=function(){return this._isUTC?"UTC":""},cr.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},cr.dates=b("dates accessor is deprecated. Use date instead.",or),cr.months=b("months accessor is deprecated. Use month instead",U),cr.years=b("years accessor is deprecated. Use year instead",kn),cr.zone=b("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),cr.isDSTShifted=b("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e={};if(f(e,this),(e=me(e))._a){var t=e._isUTC?u(e._a):ve(e._a);this._isDSTShifted=this.isValid()&&0<_(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var dr=k.prototype;dr.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return L(r)?r.call(t,n):r},dr.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},dr.invalidDate=function(){return this._invalidDate},dr.ordinal=function(e){return this._ordinal.replace("%d",e)},dr.preparse=Re,dr.postformat=Re,dr.relativeTime=function(e,t,n,r){var i=this._relativeTime[n];return L(i)?i(e,t,n,r):i.replace(/%d/i,e)},dr.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return L(n)?n(t):n.replace(/%s/i,t)},dr.set=function(e){var t,n;for(n in e)L(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},dr.months=function(e,n){return e?t(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||xn).test(n)?"format":"standalone"][e.month()]:t(this._months)?this._months:this._months.standalone},dr.monthsShort=function(e,n){return e?t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[xn.test(n)?"format":"standalone"][e.month()]:t(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},dr.monthsParse=function(e,t,n){var r,i,o;if(this._monthsParseExact)return function(e,t,n){var r,i,o,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)o=u([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Mn.call(this._shortMonthsParse,a))?i:null:-1!==(i=Mn.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Mn.call(this._shortMonthsParse,a))?i:-1!==(i=Mn.call(this._longMonthsParse,a))?i:null:-1!==(i=Mn.call(this._longMonthsParse,a))?i:-1!==(i=Mn.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(i=u([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(o="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},dr.monthsRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||W.call(this),e?this._monthsStrictRegex:this._monthsRegex):(s(this,"_monthsRegex")||(this._monthsRegex=Dn),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},dr.monthsShortRegex=function(e){return this._monthsParseExact?(s(this,"_monthsRegex")||W.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(s(this,"_monthsShortRegex")||(this._monthsShortRegex=$n),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},dr.week=function(e){return J(e,this._week.dow,this._week.doy).week},dr.firstDayOfYear=function(){return this._week.doy},dr.firstDayOfWeek=function(){return this._week.dow},dr.weekdays=function(e,n){var r=t(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(n)?"format":"standalone"];return!0===e?K(r,this._week.dow):e?r[e.day()]:r},dr.weekdaysMin=function(e){return!0===e?K(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},dr.weekdaysShort=function(e){return!0===e?K(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},dr.weekdaysParse=function(e,t,n){var r,i,o;if(this._weekdaysParseExact)return function(e,t,n){var r,i,o,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)o=u([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Mn.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Mn.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Mn.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Mn.call(this._weekdaysParse,a))?i:-1!==(i=Mn.call(this._shortWeekdaysParse,a))?i:-1!==(i=Mn.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Mn.call(this._shortWeekdaysParse,a))?i:-1!==(i=Mn.call(this._weekdaysParse,a))?i:-1!==(i=Mn.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Mn.call(this._minWeekdaysParse,a))?i:-1!==(i=Mn.call(this._weekdaysParse,a))?i:-1!==(i=Mn.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(i=u([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[r]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},dr.weekdaysRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Q.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=Pn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},dr.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Q.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Yn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},dr.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||Q.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=On),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},dr.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},dr.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},oe("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===v(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=b("moment.lang is deprecated. Use moment.locale instead.",oe),e.langData=b("moment.langData is deprecated. Use moment.localeData instead.",se);var hr=Math.abs,fr=Ze("ms"),pr=Ze("s"),mr=Ze("m"),gr=Ze("h"),vr=Ze("d"),_r=Ze("w"),yr=Ze("M"),br=Ze("Q"),wr=Ze("y"),Lr=Je("milliseconds"),Mr=Je("seconds"),kr=Je("minutes"),xr=Je("hours"),Sr=Je("days"),Tr=Je("months"),$r=Je("years"),Dr=Math.round,Cr={ss:44,s:45,m:45,h:22,d:26,M:11},Er=Math.abs,Ar=ye.prototype;Ar.isValid=function(){return this._isValid},Ar.abs=function(){var e=this._data;return this._milliseconds=hr(this._milliseconds),this._days=hr(this._days),this._months=hr(this._months),e.milliseconds=hr(e.milliseconds),e.seconds=hr(e.seconds),e.minutes=hr(e.minutes),e.hours=hr(e.hours),e.months=hr(e.months),e.years=hr(e.years),this},Ar.add=function(e,t){return Ue(this,e,t,1)},Ar.subtract=function(e,t){return Ue(this,e,t,-1)},Ar.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=S(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+qe(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Ge(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Ar.asMilliseconds=fr,Ar.asSeconds=pr,Ar.asMinutes=mr,Ar.asHours=gr,Ar.asDays=vr,Ar.asWeeks=_r,Ar.asMonths=yr,Ar.asQuarters=br,Ar.asYears=wr,Ar.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*v(this._months/12):NaN},Ar._bubble=function(){var e,t,n,r,i,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return 0<=o&&0<=a&&0<=s||o<=0&&a<=0&&s<=0||(o+=864e5*We(Ge(s)+a),s=a=0),l.milliseconds=o%1e3,e=g(o/1e3),l.seconds=e%60,t=g(e/60),l.minutes=t%60,n=g(t/60),l.hours=n%24,s+=i=g(qe(a+=g(n/24))),a-=We(Ge(i)),r=g(s/12),s%=12,l.days=a,l.months=s,l.years=r,this},Ar.clone=function(){return Te(this)},Ar.get=function(e){return e=S(e),this.isValid()?this[e+"s"]():NaN},Ar.milliseconds=Lr,Ar.seconds=Mr,Ar.minutes=kr,Ar.hours=xr,Ar.days=Sr,Ar.weeks=function(){return g(this.days()/7)},Ar.months=Tr,Ar.years=$r,Ar.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,r,i,o,a,s,l,u,c,d,h=this.localeData(),f=(n=!e,r=h,i=Te(t=this).abs(),o=Dr(i.as("s")),a=Dr(i.as("m")),s=Dr(i.as("h")),l=Dr(i.as("d")),u=Dr(i.as("M")),c=Dr(i.as("y")),(d=o<=Cr.ss&&["s",o]||o<Cr.s&&["ss",o]||a<=1&&["m"]||a<Cr.m&&["mm",a]||s<=1&&["h"]||s<Cr.h&&["hh",s]||l<=1&&["d"]||l<Cr.d&&["dd",l]||u<=1&&["M"]||u<Cr.M&&["MM",u]||c<=1&&["y"]||["yy",c])[2]=n,d[3]=0<+t,d[4]=r,function(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}.apply(null,d));return e&&(f=h.pastFuture(+this,f)),h.postformat(f)},Ar.toISOString=Ke,Ar.toString=Ke,Ar.toJSON=Ke,Ar.locale=Pe,Ar.localeData=Ye,Ar.toIsoString=b("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ke),Ar.lang=rr,C("X",0,0,"unix"),C("x",0,0,"valueOf"),P("x",ln),P("X",/[+-]?\d+(\.\d{1,3})?/),I("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),I("x",function(e,t,n){n._d=new Date(v(e))}),e.version="2.24.0",jt=ve,e.fn=cr,e.min=function(){return _e("isBefore",[].slice.call(arguments,0))},e.max=function(){return _e("isAfter",[].slice.call(arguments,0))},e.now=function(){return Date.now?Date.now():+new Date},e.utc=u,e.unix=function(e){return ve(1e3*e)},e.months=function(e,t){return ze(e,t,"months")},e.isDate=o,e.locale=oe,e.invalid=h,e.duration=Te,e.isMoment=m,e.weekdays=function(e,t,n){return Ve(e,t,n,"weekdays")},e.parseZone=function(){return ve.apply(null,arguments).parseZone()},e.localeData=se,e.isDuration=be,e.monthsShort=function(e,t){return ze(e,t,"monthsShort")},e.weekdaysMin=function(e,t,n){return Ve(e,t,n,"weekdaysMin")},
-e.defineLocale=ae,e.updateLocale=function(e,t){if(null!=t){var n,r,i=Hn;null!=(r=ie(e))&&(i=r._config),(n=new k(t=M(i,t))).parentLocale=Nn[e],Nn[e]=n,oe(e)}else null!=Nn[e]&&(null!=Nn[e].parentLocale?Nn[e]=Nn[e].parentLocale:null!=Nn[e]&&delete Nn[e]);return Nn[e]},e.locales=function(){return Nt(Nn)},e.weekdaysShort=function(e,t,n){return Ve(e,t,n,"weekdaysShort")},e.normalizeUnits=S,e.relativeTimeRounding=function(e){return void 0===e?Dr:"function"==typeof e&&(Dr=e,!0)},e.relativeTimeThreshold=function(e,t){return void 0!==Cr[e]&&(void 0===t?Cr[e]:(Cr[e]=t,"s"===e&&(Cr.ss=t-1),!0))},e.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},e.prototype=cr,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),e.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}}),e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}});var Pr={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},Yr=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},Or={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Ir=function(e){return function(t,n,r,i){var o=Yr(t),a=Or[e][Yr(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},jr=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:jr,monthsShort:jr,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Ir("s"),ss:Ir("s"),m:Ir("m"),mm:Ir("m"),h:Ir("h"),hh:Ir("h"),d:Ir("d"),dd:Ir("d"),M:Ir("M"),MM:Ir("M"),y:Ir("y"),yy:Ir("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Pr[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}});var Hr={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Nr={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return Nr[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Hr[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}}),e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}});var Br={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Rr={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},Fr=function(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5},zr={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Vr=function(e){return function(t,n,r,i){var o=Fr(t),a=zr[e][Fr(t)];return 2===o&&(a=a[n?0:1]),a.replace(/%d/i,t)}},Ur=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:Ur,monthsShort:Ur,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Vr("s"),ss:Vr("s"),m:Vr("m"),mm:Vr("m"),h:Vr("h"),hh:Vr("h"),d:Vr("d"),dd:Vr("d"),M:Vr("M"),MM:Vr("M"),y:Vr("y"),yy:Vr("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return Rr[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Br[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}});var Wr={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var t=e%10;return e+(Wr[t]||Wr[e%100-t]||Wr[100<=e?100:null])},week:{dow:1,doy:7}}),e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:Qe,mm:Qe,h:Qe,hh:Qe,d:"дзень",dd:Qe,M:"месяц",MM:Qe,y:"год",yy:Qe},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}}),e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var qr={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},Gr={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return Gr[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return qr[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&4<=e||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}});var Zr={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},Jr={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return Jr[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Zr[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&4<=e||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),e.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:et,h:"un eur",hh:"%d eur",d:"un devezh",dd:et,M:"ur miz",MM:et,y:"ur bloaz",yy:function(e){switch(function e(t){return 9<t?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}}),e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:tt,m:tt,mm:tt,h:tt,hh:tt,d:"dan",dd:tt,M:"mjesec",MM:tt,y:"godinu",yy:tt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}});var Xr="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),Kr="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),Qr=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],ei=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;e.defineLocale("cs",{months:Xr,monthsShort:Kr,monthsRegex:ei,monthsShortRegex:ei,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:Qr,longMonthsParse:Qr,shortMonthsParse:Qr,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:rt,ss:rt,m:rt,mm:rt,h:rt,hh:rt,d:rt,dd:rt,M:rt,MM:rt,y:rt,yy:rt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(e)?"рен":/\u04ab\u0443\u043b$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return 20<e?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":0<e&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}}),e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:it,mm:"%d Minuten",h:it,hh:"%d Stunden",d:it,dd:it,M:it,MM:it,y:it,yy:it},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:ot,mm:"%d Minuten",h:ot,hh:"%d Stunden",d:ot,dd:ot,M:ot,MM:ot,y:ot,yy:ot},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("de",{
-months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:at,mm:"%d Minuten",h:at,hh:"%d Stunden",d:at,dd:at,M:at,MM:at,y:at,yy:at},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ti=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],ni=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:ti,monthsShort:ti,weekdays:ni,weekdaysShort:ni,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}}),e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return 11<e?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],r=t&&t.hours();return L(n)&&(n=n.apply(t)),n.replace("{}",r%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%dη",week:{dow:1,doy:4}}),e.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}});var ri="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),ii="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),oi=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ai=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?ii[e.month()]:ri[e.month()]:ri},monthsRegex:ai,monthsShortRegex:ai,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:oi,longMonthsParse:oi,shortMonthsParse:oi,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var si="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),li="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),ui=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],ci=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?li[e.month()]:si[e.month()]:si},monthsRegex:ci,monthsShortRegex:ci,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:ui,longMonthsParse:ui,shortMonthsParse:ui,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:0,doy:6}});var di="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),hi="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),fi=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],pi=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?hi[e.month()]:di[e.month()]:di},monthsRegex:pi,monthsShortRegex:pi,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:fi,longMonthsParse:fi,shortMonthsParse:fi,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:st,ss:st,m:st,mm:st,h:st,hh:st,d:st,dd:"%d päeva",M:st,MM:st,y:st,yy:st},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var mi={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},gi={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(e){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[\u06f0-\u06f9]/g,function(e){return gi[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return mi[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%dم",week:{dow:6,doy:12}});var vi="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),_i=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",vi[7],vi[8],vi[9]];e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:lt,ss:lt,m:lt,mm:lt,h:lt,hh:lt,d:lt,dd:lt,M:lt,MM:lt,y:lt,yy:lt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}}),e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}}),e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}});var yi="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),bi="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?bi[e.month()]:yi[e.month()]:yi},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}}),e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{
-future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:ut,ss:ut,m:ut,mm:ut,h:ut,hh:ut,d:ut,dd:ut,M:ut,MM:ut,y:ut,yy:ut},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?12<e?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}});var wi={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},Li={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(e){return Li[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return wi[e]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?10<=e?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}}),e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(e){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}});var Mi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},ki={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return ki[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Mi[e]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?10<=e?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}}),e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:ct,m:ct,mm:ct,h:ct,hh:ct,d:"dan",dd:ct,M:"mjesec",MM:ct,y:"godinu",yy:ct},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var xi="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return ht.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return ht.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:dt,ss:dt,m:dt,mm:dt,h:dt,hh:dt,d:dt,dd:dt,M:dt,MM:dt,y:dt,yy:dt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(e){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}}),e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?11<=e?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:pt,ss:pt,m:pt,mm:pt,h:"klukkustund",hh:pt,d:pt,dd:pt,M:pt,MM:pt,y:pt,yy:pt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()<e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?11<=e?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),e.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(e)?e.replace(/\u10d8$/,"ში"):e+"ში"},past:function(e){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(e)?e.replace(/(\u10d8|\u10d4)$/,"ის წინ"):/\u10ec\u10d4\u10da\u10d8/.test(e)?e.replace(/\u10ec\u10d4\u10da\u10d8$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}});var Si={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(e){return e+(Si[e]||Si[e%10]||Si[100<=e?100:null])},week:{dow:1,doy:7}});var Ti={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},$i={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(e){return $i[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Ti[e]})},week:{dow:1,doy:4}});var Di={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},Ci={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(e){return Ci[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Di[e]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?10<=e?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}}),e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}});var Ei={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},Ai={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},Pi=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:Pi,monthsShort:Pi,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(e){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return Ai[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return Ei[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}});var Yi={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(e){return e+(Yi[e]||Yi[e%10]||Yi[100<=e?100:null])},week:{dow:1,doy:7}}),e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return gt(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return gt(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:mt,mm:"%d Minutten",h:mt,hh:"%d Stonnen",d:mt,dd:"%d Deeg",M:mt,MM:"%d Méint",y:mt,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}});var Oi={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:bt,m:vt,mm:bt,h:vt,hh:bt,d:vt,dd:bt,M:vt,MM:bt,y:vt,yy:bt},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}});var Ii={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),
-mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:Lt,m:Mt,mm:Lt,h:Mt,hh:Lt,d:Mt,dd:Lt,M:Mt,MM:Lt,y:Mt,yy:Lt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ji={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var r=ji.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+ji.correctGrammaticalCase(e,r)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:ji.translate,m:ji.translate,mm:ji.translate,h:ji.translate,hh:ji.translate,d:"dan",dd:ji.translate,M:"mjesec",MM:ji.translate,y:"godinu",yy:ji.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":10<n&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}}),e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&4<=e||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}}),e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:kt,ss:kt,m:kt,mm:kt,h:kt,hh:kt,d:kt,dd:kt,M:kt,MM:kt,y:kt,yy:kt},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}});var Hi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},Ni={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:xt,ss:xt,m:xt,mm:xt,h:xt,hh:xt,d:xt,dd:xt,M:xt,MM:xt,y:xt,yy:xt},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return Ni[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Hi[e]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?10<=e?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?11<=e?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}});var Bi={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},Ri={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(e){return Ri[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Bi[e]})},week:{dow:1,doy:4}}),e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Fi={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},zi={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(e){return zi[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Fi[e]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?10<=e?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}});var Vi="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Ui="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Wi=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],qi=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Ui[e.month()]:Vi[e.month()]:Vi},monthsRegex:qi,monthsShortRegex:qi,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Wi,longMonthsParse:Wi,shortMonthsParse:Wi,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});var Gi="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),Zi="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),Ji=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Xi=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,t){return e?/-MMM-/.test(t)?Zi[e.month()]:Gi[e.month()]:Gi},monthsRegex:Xi,monthsShortRegex:Xi,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:Ji,longMonthsParse:Ji,shortMonthsParse:Ji,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}}),e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var Ki={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},Qi={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(e){return Qi[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Ki[e]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?10<=e?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}});var eo="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),to="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");e.defineLocale("pl",{months:function(e,t){return e?""===t?"("+to[e.month()]+"|"+eo[e.month()]+")":/D MMMM/.test(t)?to[e.month()]:eo[e.month()]:eo},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Tt,m:Tt,mm:Tt,h:Tt,hh:Tt,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:Tt,y:"rok",yy:Tt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº"}),e.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%dº",week:{dow:1,doy:4}}),e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:$t,m:"un minut",mm:$t,h:"o oră",hh:$t,d:"o zi",dd:$t,M:"o lună",MM:$t,y:"un an",yy:$t},week:{dow:1,doy:7}});var no=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:no,longMonthsParse:no,shortMonthsParse:no,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){
-if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:Dt,m:Dt,mm:Dt,h:"час",hh:Dt,d:"день",dd:Dt,M:"месяц",MM:Dt,y:"год",yy:Dt},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}});var ro=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],io=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:ro,monthsShort:ro,weekdays:io,weekdaysShort:io,weekdaysMin:io,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(e){return e+" වැනි"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return 11<e?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}});var oo="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),ao="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");e.defineLocale("sk",{months:oo,monthsShort:ao,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:Et,ss:Et,m:Et,mm:Et,h:Et,hh:Et,d:Et,dd:Et,M:Et,MM:Et,y:Et,yy:Et},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:At,ss:At,m:At,mm:At,h:At,hh:At,d:At,dd:At,M:At,MM:At,y:At,yy:At},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var so={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var r=so.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+so.correctGrammaticalCase(e,r)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:so.translate,m:so.translate,mm:so.translate,h:so.translate,hh:so.translate,d:"дан",dd:so.translate,M:"месец",MM:so.translate,y:"годину",yy:so.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}});var lo={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:2<=e&&e<=4?t[1]:t[2]},translate:function(e,t,n){var r=lo.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+lo.correctGrammaticalCase(e,r)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:lo.translate,m:lo.translate,mm:lo.translate,h:lo.translate,hh:lo.translate,d:"dan",dd:lo.translate,M:"mesec",MM:lo.translate,y:"godinu",yy:lo.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?11<=e?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}}),e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t?"a":2===t?"a":"e")},week:{dow:1,doy:4}}),e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}});var uo={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},co={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(e){return co[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return uo[e]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&10<=e?e:e+12},week:{dow:0,doy:6}}),e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%dవ",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?10<=e?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}}),e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}});var ho={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?11<=e?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(e){return e+(ho[e]||ho[e%10]||ho[100<=e?100:null])},week:{dow:1,doy:7}}),e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}});var fo="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:Pt,m:"wa’ tup",mm:Pt,h:"wa’ rep",hh:Pt,d:"wa’ jaj",dd:Pt,M:"wa’ jar",MM:Pt,y:"wa’ DIS",yy:Pt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var po={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,t){switch(t){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10;return e+(po[n]||po[e%100-n]||po[100<=e?100:null])}},week:{dow:1,doy:7}}),e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return 11<e?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:Yt,ss:Yt,m:Yt,mm:Yt,h:Yt,hh:Yt,d:Yt,dd:Yt,M:Yt,MM:Yt,y:Yt,yy:Yt},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}}),e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(t)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",
-LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:It("[Сьогодні "),nextDay:It("[Завтра "),lastDay:It("[Вчора "),nextWeek:It("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return It("[Минулої] dddd [").call(this);case 1:case 2:case 4:return It("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:Ot,m:Ot,mm:Ot,h:"годину",hh:Ot,d:"день",dd:Ot,M:"місяць",MM:Ot,y:"рік",yy:Ot},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}});var mo=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],go=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return e.defineLocale("ur",{months:mo,monthsShort:mo,weekdays:go,weekdaysShort:go,weekdaysMin:go,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}}),e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}}),e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}}),e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}}),e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}}),e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:11<=e?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}),e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?11<=e?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),e.locale("en"),e}),function(){function e(e){this._value=e}function t(e,t,n,r){var i,o,a,s,l=e.toString().split("."),u=t-(r||0);return i=2===l.length?Math.min(Math.max(l[1].length,u),t):u,a=Math.pow(10,i),s=(n(e*a)/a).toFixed(i),r>t-i&&(o=new RegExp("\\.?0{1,"+(r-(t-i))+"}$"),s=s.replace(o,"")),s}function n(e,t,n){return 0===e._value&&null!==v.zeroFormat?v.zeroFormat:null===e._value&&null!==v.nullFormat?v.nullFormat:t.indexOf("$")>-1?r(e,t,n):t.indexOf("%")>-1?i(e,t,n):t.indexOf(":")>-1?s(e):t.indexOf("b")>-1||t.indexOf("ib")>-1?o(e,t,n):t.indexOf("o")>-1?a(e,t,n):l(e._value,t,n)}function r(e,t,n){var r,i,o=t.indexOf("$"),a=t.indexOf("("),s=t.indexOf("-"),u="";return t.indexOf(" $")>-1?(u=" ",t=t.replace(" $","")):t.indexOf("$ ")>-1?(u=" ",t=t.replace("$ ","")):t=t.replace("$",""),i=l(e._value,t,n),o<=1?i.indexOf("(")>-1||i.indexOf("-")>-1?(i=i.split(""),r=1,(o<a||o<s)&&(r=0),i.splice(r,0,m[v.currentLanguage].currency.symbol+u),i=i.join("")):i=m[v.currentLanguage].currency.symbol+u+i:i.indexOf(")")>-1?(i=i.split(""),i.splice(-1,0,u+m[v.currentLanguage].currency.symbol),i=i.join("")):i=i+u+m[v.currentLanguage].currency.symbol,i}function i(e,t,n){var r,i="",o=100*e._value;return t.indexOf(" %")>-1?(i=" ",t=t.replace(" %","")):t=t.replace("%",""),r=l(o,t,n),r.indexOf(")")>-1?(r=r.split(""),r.splice(-1,0,i+"%"),r=r.join("")):r=r+i+"%",r}function o(e,t,n){var r,i,o,a=t.indexOf("ib")>-1?_.iec:_.bytes,s=e._value,u="";for(t.indexOf(" b")>-1||t.indexOf(" ib")>-1?(u=" ",t=t.replace(" ib","").replace(" b","")):t=t.replace("ib","").replace("b",""),r=0;r<=a.length;r++)if(i=Math.pow(1024,r),o=Math.pow(1024,r+1),null===s||0===s||s>=i&&s<o){u+=a[r],i>0&&(s/=i);break}return l(s,t,n)+u}function a(e,t,n){var r="";return t.indexOf(" o")>-1?(r=" ",t=t.replace(" o","")):t=t.replace("o",""),r+=m[v.currentLanguage].ordinal(e._value),l(e._value,t,n)+r}function s(e){var t=Math.floor(e._value/60/60),n=Math.floor((e._value-60*t*60)/60),r=Math.round(e._value-60*t*60-60*n);return t+":"+(n<10?"0"+n:n)+":"+(r<10?"0"+r:r)}function l(e,n,r){var i,o,a,s,l=!1,u=!1,c=!1,d="",h=!1,f=!1,p=!1,g=!1,_=!1,y="",b=!1;return null===e&&(e=0),i=Math.abs(e),n.indexOf("(")>-1?(l=!0,n=n.slice(1,-1)):n.indexOf("+")>-1&&(u=!0,n=n.replace(/\+/g,"")),n.indexOf("a")>-1&&(h=n.indexOf("aK")>=0,f=n.indexOf("aM")>=0,p=n.indexOf("aB")>=0,g=n.indexOf("aT")>=0,_=h||f||p||g,n.indexOf(" a")>-1&&(d=" "),n=n.replace(new RegExp(d+"a[KMBT]?"),""),i>=Math.pow(10,12)&&!_||g?(d+=m[v.currentLanguage].abbreviations.trillion,e/=Math.pow(10,12)):i<Math.pow(10,12)&&i>=Math.pow(10,9)&&!_||p?(d+=m[v.currentLanguage].abbreviations.billion,e/=Math.pow(10,9)):i<Math.pow(10,9)&&i>=Math.pow(10,6)&&!_||f?(d+=m[v.currentLanguage].abbreviations.million,e/=Math.pow(10,6)):(i<Math.pow(10,6)&&i>=Math.pow(10,3)&&!_||h)&&(d+=m[v.currentLanguage].abbreviations.thousand,e/=Math.pow(10,3))),n.indexOf("[.]")>-1&&(c=!0,n=n.replace("[.]",".")),o=e.toString().split(".")[0],a=n.split(".")[1],s=n.indexOf(","),a?(a.indexOf("[")>-1?(a=a.replace("]",""),a=a.split("["),y=t(e,a[0].length+a[1].length,r,a[1].length)):y=t(e,a.length,r),o=y.split(".")[0],y=y.indexOf(".")>-1?m[v.currentLanguage].delimiters.decimal+y.split(".")[1]:"",c&&0===Number(y.slice(1))&&(y="")):o=t(e,null,r),o.indexOf("-")>-1&&(o=o.slice(1),b=!0),s>-1&&(o=o.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+m[v.currentLanguage].delimiters.thousands)),0===n.indexOf(".")&&(o=""),(l&&b?"(":"")+(!l&&b?"-":"")+(!b&&u?"+":"")+o+y+(d||"")+(l&&b?")":"")}function u(e,t){var n,r,i,o,a,s,l=t,u=!1;if(t.indexOf(":")>-1)s=c(t);else if(t===v.zeroFormat||t===v.nullFormat)s=0;else{for("."!==m[v.currentLanguage].delimiters.decimal&&(t=t.replace(/\./g,"").replace(m[v.currentLanguage].delimiters.decimal,".")),n=new RegExp("[^a-zA-Z]"+m[v.currentLanguage].abbreviations.thousand+"(?:\\)|(\\"+m[v.currentLanguage].currency.symbol+")?(?:\\))?)?$"),r=new RegExp("[^a-zA-Z]"+m[v.currentLanguage].abbreviations.million+"(?:\\)|(\\"+m[v.currentLanguage].currency.symbol+")?(?:\\))?)?$"),i=new RegExp("[^a-zA-Z]"+m[v.currentLanguage].abbreviations.billion+"(?:\\)|(\\"+m[v.currentLanguage].currency.symbol+")?(?:\\))?)?$"),o=new RegExp("[^a-zA-Z]"+m[v.currentLanguage].abbreviations.trillion+"(?:\\)|(\\"+m[v.currentLanguage].currency.symbol+")?(?:\\))?)?$"),a=1;a<=_.bytes.length&&!(u=(t.indexOf(_.bytes[a])>-1||t.indexOf(_.iec[a])>-1)&&Math.pow(1024,a));a++);s=u||1,s*=l.match(n)?Math.pow(10,3):1,s*=l.match(r)?Math.pow(10,6):1,s*=l.match(i)?Math.pow(10,9):1,s*=l.match(o)?Math.pow(10,12):1,s*=t.indexOf("%")>-1?.01:1,s*=(t.split("-").length+Math.min(t.split("(").length-1,t.split(")").length-1))%2?1:-1,s*=Number(t.replace(/[^0-9\.]+/g,"")),s=u?Math.ceil(s):s}return e._value=s,e._value}function c(e){var t=e.split(":"),n=0;return 3===t.length?(n+=60*Number(t[0])*60,n+=60*Number(t[1]),n+=Number(t[2])):2===t.length&&(n+=60*Number(t[0]),n+=Number(t[1])),Number(n)}function d(e,t){m[e]=t}function h(e){var t=e.toString().split(".");return t.length<2?1:Math.pow(10,t[1].length)}function f(){return Array.prototype.slice.call(arguments).reduce(function(e,t){var n=h(e),r=h(t);return n>r?n:r},-1/0)}var p,m={},g={currentLanguage:"en",zeroFormat:null,nullFormat:null,defaultFormat:"0,0"},v={currentLanguage:g.currentLanguage,zeroFormat:g.zeroFormat,nullFormat:g.nullFormat,defaultFormat:g.defaultFormat},_={bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],iec:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]};p=function(t){return t=p.isNumeral(t)?t.value():0===t||void 0===t?0:null===t?null:Number(t)?Number(t):p.fn.unformat(t),new e(t)},p.version="1.5.6",p.isNumeral=function(t){return t instanceof e},p.language=function(e,t){if(!e)return v.currentLanguage;if((e=e.toLowerCase())&&!t){if(!m[e])throw new Error("Unknown language : "+e);v.currentLanguage=e}return!t&&m[e]||d(e,t),p},p.reset=function(){for(var e in g)v[e]=g[e]},p.languageData=function(e){if(!e)return m[v.currentLanguage];if(!m[e])throw new Error("Unknown language : "+e);return m[e]},p.language("en",{delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"$"}}),p.zeroFormat=function(e){v.zeroFormat="string"==typeof e?e:null},p.nullFormat=function(e){v.nullFormat="string"==typeof e?e:null},p.defaultFormat=function(e){v.defaultFormat="string"==typeof e?e:"0.0"},p.validate=function(e,t){var n,r,i,o,a,s,l,u;if("string"!=typeof e&&(e+="",console.warn&&console.warn("Numeral.js: Value is not string. It has been co-erced to: ",e)),e=e.trim(),e.match(/^\d+$/))return!0;if(""===e)return!1;try{l=p.languageData(t)}catch(e){l=p.languageData(p.language())}return i=l.currency.symbol,a=l.abbreviations,n=l.delimiters.decimal,r="."===l.delimiters.thousands?"\\.":l.delimiters.thousands,(null===(u=e.match(/^[^\d]+/))||(e=e.substr(1),u[0]===i))&&((null===(u=e.match(/[^\d]+$/))||(e=e.slice(0,-1),u[0]===a.thousand||u[0]===a.million||u[0]===a.billion||u[0]===a.trillion))&&(s=new RegExp(r+"{2}"),!e.match(/[^\d.,]/g)&&(o=e.split(n),!(o.length>2)&&(o.length<2?!!o[0].match(/^\d+.*\d$/)&&!o[0].match(s):1===o[0].length?!!o[0].match(/^\d+$/)&&!o[0].match(s)&&!!o[1].match(/^\d+$/):!!o[0].match(/^\d+.*\d$/)&&!o[0].match(s)&&!!o[1].match(/^\d+$/)))))},Array.prototype.reduce||(Array.prototype.reduce=function(e){"use strict";if(null===this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof e)throw new TypeError(e+" is not a function");var t,n=Object(this),r=n.length>>>0,i=0;if(2===arguments.length)t=arguments[1];else{for(;i<r&&!(i in n);)i++;if(i>=r)throw new TypeError("Reduce of empty array with no initial value");t=n[i++]}for(;i<r;i++)i in n&&(t=e(t,n[i],i,n));return t}),p.fn=e.prototype={clone:function(){return p(this)},format:function(e,t){return n(this,e||v.defaultFormat,void 0!==t?t:Math.round)},unformat:function(e){return"[object Number]"===Object.prototype.toString.call(e)?e:u(this,e||v.defaultFormat)},value:function(){return this._value},valueOf:function(){return this._value},set:function(e){return this._value=Number(e),this},add:function(e){function t(e,t,r,i){return e+n*t}var n=f.call(null,this._value,e);return this._value=[this._value,e].reduce(t,0)/n,this},subtract:function(e){function t(e,t,r,i){return e-n*t}var n=f.call(null,this._value,e);return this._value=[e].reduce(t,this._value*n)/n,this},multiply:function(e){function t(e,t,n,r){var i=f(e,t);return e*i*(t*i)/(i*i)}return this._value=[this._value,e].reduce(t,1),this},divide:function(e){function t(e,t,n,r){var i=f(e,t);return e*i/(t*i)}return this._value=[this._value,e].reduce(t),this},difference:function(e){return Math.abs(p(this._value).subtract(e).value())}},"undefined"!=typeof module&&module.exports&&(module.exports=p),"undefined"==typeof ender&&(this.numeral=p),"function"==typeof define&&define.amd&&define([],function(){return p})}.call(this),function(){var e={delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){return 1===e?"er":"e"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("fr",e)}(),function(){var e={delimiters:{thousands:",",decimal:"."},abbreviations:{thousand:"k",million:"m",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th"},currency:{symbol:"£"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("en-gb",e)}(),function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mln",billion:"mrd",trillion:"bln"},ordinal:function(e){var t=e%100;return 0!==e&&t<=1||8===t||t>=20?"ste":"de"},currency:{symbol:"€ "}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("nl-nl",e)}(),function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("es",e)}(),function(){var e={delimiters:{thousands:".",decimal:","},abbreviations:{thousand:"mila",million:"mil",billion:"b",trillion:"t"},ordinal:function(e){return"º"},currency:{symbol:"€"}};"undefined"!=typeof module&&module.exports&&(module.exports=e),"undefined"!=typeof window&&this.numeral&&this.numeral.language&&this.numeral.language("it",e)}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("../numeral")):"function"==typeof define&&define.amd?define(["numeral"],t):t(e.numeral)}(this,function(e){"use strict";e.language("eo",{delimiters:{thousands:" ",decimal:","},abbreviations:{thousand:"x10^3",million:"x10^6",billion:"x10^9",trillion:"x10^12"},ordinal:function(e){return"a"},currency:{symbol:"X"}})}),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.io=t():e.io=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t){"object"===(void 0===e?"undefined":o(e))&&(t=e,e=void 0),t=t||{};var n,r=a(e),s=r.source,d=r.id,h=r.path,f=c[d]&&h in c[d].nsps;return t.forceNew||t["force new connection"]||!1===t.multiplex||f?(u("ignoring socket cache for %s",s),n=l(s,t)):(c[d]||(u("new io instance for %s",s),c[d]=l(s,t)),n=c[d]),r.query&&!t.query?t.query=r.query:t&&"object"===o(t.query)&&(t.query=i(t.query)),n.socket(r.path,t)}function i(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(1),s=n(7),l=n(17),u=n(3)("socket.io-client");e.exports=t=r;var c=t.managers={};t.protocol=s.protocol,t.connect=r,t.Manager=n(17),t.Socket=n(44)},function(e,t,n){(function(t){"use strict";function r(e,n){var r=e;n=n||t.location,null==e&&(e=n.protocol+"//"+n.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?n.protocol+e:n.host+e),/^(https?|wss?):\/\//.test(e)||(o("protocol-less url %s",e),e=void 0!==n?n.protocol+"//"+e:"https://"+e),o("parse %s",e),r=i(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var a=-1!==r.host.indexOf(":"),s=a?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+s+":"+r.port,r.href=r.protocol+"://"+s+(n&&n.port===r.port?"":":"+r.port),r}var i=n(2),o=n(3)("socket.io-client:url");e.exports=r}).call(t,function(){return this}())},function(e,t){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,i=e.indexOf("["),o=e.indexOf("]");-1!=i&&-1!=o&&(e=e.substring(0,i)+e.substring(i,o).replace(/:/g,";")+e.substring(o,e.length));for(var a=n.exec(e||""),s={},l=14;l--;)s[r[l]]=a[l]||"";return-1!=i&&-1!=o&&(s.source=t,s.host=s.host.substring(1,s.host.length-1).replace(/;/g,":"),s.authority=s.authority.replace("[","").replace("]","").replace(/;/g,":"),s.ipv6uri=!0),s}},function(e,t,n){(function(r){function i(){return"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function o(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var r="color: "+this.color;e=[e[0],r,"color: inherit"].concat(Array.prototype.slice.call(e,1));var i=0,o=0;return e[0].replace(/%[a-z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(o=i))}),e.splice(o,0,r),e}function a(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function s(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function l(){try{return t.storage.debug}catch(e){}if(void 0!==r&&"env"in r)return r.env.DEBUG}t=e.exports=n(5),t.log=a,t.formatArgs=o,t.save=s,t.load=l,t.useColors=i,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(l())}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function o(e){if(d===clearTimeout)return clearTimeout(e);if((d===r||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function a(){m&&f&&(m=!1,f.length?p=f.concat(p):g=-1,p.length&&s())}function s(){if(!m){var e=i(a);m=!0;for(var t=p.length;t;){for(f=p,p=[];++g<t;)f&&f[g].run();g=-1,t=p.length}f=null,m=!1,o(e)}}function l(e,t){this.fun=e,this.array=t}function u(){}var c,d,h=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(e){c=n}try{d="function"==typeof clearTimeout?clearTimeout:r}catch(e){d=r}}();var f,p=[],m=!1,g=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];p.push(new l(e,t)),1!==p.length||m||i(s)},l.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=u,h.addListener=u,h.once=u,h.off=u,h.removeListener=u,h.removeAllListeners=u,h.emit=u,h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},function(e,t,n){function r(){return t.colors[c++%t.colors.length]}function i(e){function n(){}function i(){var e=i,n=+new Date,o=n-(u||n);e.diff=o,e.prev=u,e.curr=n,u=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=r());for(var a=new Array(arguments.length),s=0;s<a.length;s++)a[s]=arguments[s];a[0]=t.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var l=0;a[0]=a[0].replace(/%([a-z%])/g,function(n,r){if("%%"===n)return n;l++;var i=t.formatters[r];if("function"==typeof i){var o=a[l];n=i.call(e,o),a.splice(l,1),l--}return n}),a=t.formatArgs.apply(e,a),(i.log||t.log||console.log.bind(console)).apply(e,a)}n.enabled=!1,i.enabled=!0;var o=t.enabled(e)?i:n;return o.namespace=e,o}function o(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),r=n.length,i=0;i<r;i++)n[i]&&(e=n[i].replace(/[\\^$+?.()|[\]{}]/g,"\\$&").replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function s(e){var n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1}function l(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i.debug=i,t.coerce=l,t.disable=a,t.enable=o,t.enabled=s,t.humanize=n(6),t.names=[],t.skips=[],t.formatters={};var u,c=0},function(e,t){function n(e){if(e=String(e),!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*c;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*l;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(e){return e>=u?Math.round(e/u)+"d":e>=l?Math.round(e/l)+"h":e>=s?Math.round(e/s)+"m":e>=a?Math.round(e/a)+"s":e+"ms"}function i(e){return o(e,u,"day")||o(e,l,"hour")||o(e,s,"minute")||o(e,a,"second")||e+" ms"}function o(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var a=1e3,s=60*a,l=60*s,u=24*l,c=365.25*u;e.exports=function(e,t){t=t||{};var o=typeof e;if("string"===o&&e.length>0)return n(e);if("number"===o&&!1===isNaN(e))return t.long?i(e):r(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){function r(){}function i(e){var n="",r=!1;return n+=e.type,t.BINARY_EVENT!=e.type&&t.BINARY_ACK!=e.type||(n+=e.attachments,n+="-"),e.nsp&&"/"!=e.nsp&&(r=!0,n+=e.nsp),null!=e.id&&(r&&(n+=",",r=!1),n+=e.id),null!=e.data&&(r&&(n+=","),n+=h.stringify(e.data)),d("encoded %j as %s",e,n),n}function o(e,t){function n(e){var n=p.deconstructPacket(e),r=i(n.packet),o=n.buffers;o.unshift(r),t(o)}p.removeBlobs(e,n)}function a(){this.reconstructor=null}function s(e){var n={},r=0;if(n.type=Number(e.charAt(0)),null==t.types[n.type])return c();if(t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type){for(var i="";"-"!=e.charAt(++r)&&(i+=e.charAt(r),r!=e.length););if(i!=Number(i)||"-"!=e.charAt(r))throw new Error("Illegal attachments");n.attachments=Number(i)}if("/"==e.charAt(r+1))for(n.nsp="";++r;){var o=e.charAt(r);if(","==o)break;if(n.nsp+=o,r==e.length)break}else n.nsp="/";var a=e.charAt(r+1);if(""!==a&&Number(a)==a){for(n.id="";++r;){var o=e.charAt(r);if(null==o||Number(o)!=o){--r;break}if(n.id+=e.charAt(r),r==e.length)break}n.id=Number(n.id)}return e.charAt(++r)&&(n=l(n,e.substr(r))),d("decoded %s as %j",e,n),n}function l(e,t){try{e.data=h.parse(t)
-}catch(e){return c()}return e}function u(e){this.reconPack=e,this.buffers=[]}function c(e){return{type:t.ERROR,data:"parser error"}}var d=n(8)("socket.io-parser"),h=n(11),f=n(13),p=n(14),m=n(16);t.protocol=4,t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],t.CONNECT=0,t.DISCONNECT=1,t.EVENT=2,t.ACK=3,t.ERROR=4,t.BINARY_EVENT=5,t.BINARY_ACK=6,t.Encoder=r,t.Decoder=a,r.prototype.encode=function(e,n){if(d("encoding packet %j",e),t.BINARY_EVENT==e.type||t.BINARY_ACK==e.type)o(e,n);else{n([i(e)])}},f(a.prototype),a.prototype.add=function(e){var n;if("string"==typeof e)n=s(e),t.BINARY_EVENT==n.type||t.BINARY_ACK==n.type?(this.reconstructor=new u(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!m(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");(n=this.reconstructor.takeBinaryData(e))&&(this.reconstructor=null,this.emit("decoded",n))}},a.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},u.prototype.takeBinaryData=function(e){if(this.buffers.push(e),this.buffers.length==this.reconPack.attachments){var t=p.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null},u.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(e,t,n){function r(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function i(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var r="color: "+this.color;e=[e[0],r,"color: inherit"].concat(Array.prototype.slice.call(e,1));var i=0,o=0;return e[0].replace(/%[a-z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(o=i))}),e.splice(o,0,r),e}function o(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function s(){var e;try{e=t.storage.debug}catch(e){}return e}t=e.exports=n(9),t.log=o,t.formatArgs=i,t.save=a,t.load=s,t.useColors=r,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(s())},function(e,t,n){function r(){return t.colors[c++%t.colors.length]}function i(e){function n(){}function i(){var e=i,n=+new Date,o=n-(u||n);e.diff=o,e.prev=u,e.curr=n,u=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=r());var a=Array.prototype.slice.call(arguments);a[0]=t.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var s=0;a[0]=a[0].replace(/%([a-z%])/g,function(n,r){if("%%"===n)return n;s++;var i=t.formatters[r];if("function"==typeof i){var o=a[s];n=i.call(e,o),a.splice(s,1),s--}return n}),"function"==typeof t.formatArgs&&(a=t.formatArgs.apply(e,a)),(i.log||t.log||console.log.bind(console)).apply(e,a)}n.enabled=!1,i.enabled=!0;var o=t.enabled(e)?i:n;return o.namespace=e,o}function o(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),r=n.length,i=0;i<r;i++)n[i]&&(e=n[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function s(e){var n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1}function l(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i,t.coerce=l,t.disable=a,t.enable=o,t.enabled=s,t.humanize=n(10),t.names=[],t.skips=[],t.formatters={};var u,c=0},function(e,t){function n(e){if(e=""+e,!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*c;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*l;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}function r(e){return e>=u?Math.round(e/u)+"d":e>=l?Math.round(e/l)+"h":e>=s?Math.round(e/s)+"m":e>=a?Math.round(e/a)+"s":e+"ms"}function i(e){return o(e,u,"day")||o(e,l,"hour")||o(e,s,"minute")||o(e,a,"second")||e+" ms"}function o(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var a=1e3,s=60*a,l=60*s,u=24*l,c=365.25*u;e.exports=function(e,t){return t=t||{},"string"==typeof e?n(e):t.long?i(e):r(e)}},function(e,t,n){(function(e,n){var r=!1;(function(){function i(e,t){function n(e){if(n[e]!==g)return n[e];var i;if("bug-string-char-index"==e)i="a"!="a"[0];else if("json"==e)i=n("json-stringify")&&n("json-parse");else{var a,s='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==e){var l=t.stringify,c="function"==typeof l&&y;if(c){(a=function(){return 1}).toJSON=a;try{c="0"===l(0)&&"0"===l(new r)&&'""'==l(new o)&&l(_)===g&&l(g)===g&&l()===g&&"1"===l(a)&&"[1]"==l([a])&&"[null]"==l([g])&&"null"==l(null)&&"[null,null,null]"==l([g,_,null])&&l({a:[a,!0,!1,null,"\0\b\n\f\r\t"]})==s&&"1"===l(null,a)&&"[\n 1,\n 2\n]"==l([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==l(new u(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==l(new u(864e13))&&'"-000001-01-01T00:00:00.000Z"'==l(new u(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==l(new u(-1))}catch(e){c=!1}}i=c}if("json-parse"==e){var d=t.parse;if("function"==typeof d)try{if(0===d("0")&&!d(!1)){a=d(s);var h=5==a.a.length&&1===a.a[0];if(h){try{h=!d('"\t"')}catch(e){}if(h)try{h=1!==d("01")}catch(e){}if(h)try{h=1!==d("1.")}catch(e){}}}}catch(e){h=!1}i=h}}return n[e]=!!i}e||(e=l.Object()),t||(t=l.Object());var r=e.Number||l.Number,o=e.String||l.String,s=e.Object||l.Object,u=e.Date||l.Date,c=e.SyntaxError||l.SyntaxError,d=e.TypeError||l.TypeError,h=e.Math||l.Math,f=e.JSON||l.JSON;"object"==typeof f&&f&&(t.stringify=f.stringify,t.parse=f.parse);var p,m,g,v=s.prototype,_=v.toString,y=new u(-0xc782b5b800cec);try{y=-109252==y.getUTCFullYear()&&0===y.getUTCMonth()&&1===y.getUTCDate()&&10==y.getUTCHours()&&37==y.getUTCMinutes()&&6==y.getUTCSeconds()&&708==y.getUTCMilliseconds()}catch(e){}if(!n("json")){var b="[object Function]",w="[object Number]",L="[object String]",M="[object Array]",k=n("bug-string-char-index");if(!y)var x=h.floor,S=[0,31,59,90,120,151,181,212,243,273,304,334],T=function(e,t){return S[t]+365*(e-1970)+x((e-1969+(t=+(t>1)))/4)-x((e-1901+t)/100)+x((e-1601+t)/400)};if((p=v.hasOwnProperty)||(p=function(e){var t,n={};return(n.__proto__=null,n.__proto__={toString:1},n).toString!=_?p=function(e){var t=this.__proto__,n=e in(this.__proto__=null,this);return this.__proto__=t,n}:(t=n.constructor,p=function(e){var n=(this.constructor||t).prototype;return e in this&&!(e in n&&this[e]===n[e])}),n=null,p.call(this,e)}),m=function(e,t){var n,r,i,o=0;(n=function(){this.valueOf=0}).prototype.valueOf=0,r=new n;for(i in r)p.call(r,i)&&o++;return n=r=null,o?m=2==o?function(e,t){var n,r={},i=_.call(e)==b;for(n in e)i&&"prototype"==n||p.call(r,n)||!(r[n]=1)||!p.call(e,n)||t(n)}:function(e,t){var n,r,i=_.call(e)==b;for(n in e)i&&"prototype"==n||!p.call(e,n)||(r="constructor"===n)||t(n);(r||p.call(e,n="constructor"))&&t(n)}:(r=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],m=function(e,t){var n,i,o=_.call(e)==b,s=!o&&"function"!=typeof e.constructor&&a[typeof e.hasOwnProperty]&&e.hasOwnProperty||p;for(n in e)o&&"prototype"==n||!s.call(e,n)||t(n);for(i=r.length;n=r[--i];s.call(e,n)&&t(n));}),m(e,t)},!n("json-stringify")){var $={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},D=function(e,t){return("000000"+(t||0)).slice(-e)},C=function(e){for(var t='"',n=0,r=e.length,i=!k||r>10,o=i&&(k?e.split(""):e);n<r;n++){var a=e.charCodeAt(n);switch(a){case 8:case 9:case 10:case 12:case 13:case 34:case 92:t+=$[a];break;default:if(a<32){t+="\\u00"+D(2,a.toString(16));break}t+=i?o[n]:e.charAt(n)}}return t+'"'},E=function(e,t,n,r,i,o,a){var s,l,u,c,h,f,v,y,b,k,S,$,A,P,Y,O;try{s=t[e]}catch(e){}if("object"==typeof s&&s)if("[object Date]"!=(l=_.call(s))||p.call(s,"toJSON"))"function"==typeof s.toJSON&&(l!=w&&l!=L&&l!=M||p.call(s,"toJSON"))&&(s=s.toJSON(e));else if(s>-1/0&&s<1/0){if(T){for(h=x(s/864e5),u=x(h/365.2425)+1970-1;T(u+1,0)<=h;u++);for(c=x((h-T(u,0))/30.42);T(u,c+1)<=h;c++);h=1+h-T(u,c),f=(s%864e5+864e5)%864e5,v=x(f/36e5)%24,y=x(f/6e4)%60,b=x(f/1e3)%60,k=f%1e3}else u=s.getUTCFullYear(),c=s.getUTCMonth(),h=s.getUTCDate(),v=s.getUTCHours(),y=s.getUTCMinutes(),b=s.getUTCSeconds(),k=s.getUTCMilliseconds();s=(u<=0||u>=1e4?(u<0?"-":"+")+D(6,u<0?-u:u):D(4,u))+"-"+D(2,c+1)+"-"+D(2,h)+"T"+D(2,v)+":"+D(2,y)+":"+D(2,b)+"."+D(3,k)+"Z"}else s=null;if(n&&(s=n.call(t,e,s)),null===s)return"null";if("[object Boolean]"==(l=_.call(s)))return""+s;if(l==w)return s>-1/0&&s<1/0?""+s:"null";if(l==L)return C(""+s);if("object"==typeof s){for(P=a.length;P--;)if(a[P]===s)throw d();if(a.push(s),S=[],Y=o,o+=i,l==M){for(A=0,P=s.length;A<P;A++)$=E(A,s,n,r,i,o,a),S.push($===g?"null":$);O=S.length?i?"[\n"+o+S.join(",\n"+o)+"\n"+Y+"]":"["+S.join(",")+"]":"[]"}else m(r||s,function(e){var t=E(e,s,n,r,i,o,a);t!==g&&S.push(C(e)+":"+(i?" ":"")+t)}),O=S.length?i?"{\n"+o+S.join(",\n"+o)+"\n"+Y+"}":"{"+S.join(",")+"}":"{}";return a.pop(),O}};t.stringify=function(e,t,n){var r,i,o,s;if(a[typeof t]&&t)if((s=_.call(t))==b)i=t;else if(s==M){o={};for(var l,u=0,c=t.length;u<c;l=t[u++],((s=_.call(l))==L||s==w)&&(o[l]=1));}if(n)if((s=_.call(n))==w){if((n-=n%1)>0)for(r="",n>10&&(n=10);r.length<n;r+=" ");}else s==L&&(r=n.length<=10?n:n.slice(0,10));return E("",(l={},l[""]=e,l),i,o,r,"",[])}}if(!n("json-parse")){var A,P,Y=o.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"},I=function(){throw A=P=null,c()},j=function(){for(var e,t,n,r,i,o=P,a=o.length;A<a;)switch(i=o.charCodeAt(A)){case 9:case 10:case 13:case 32:A++;break;case 123:case 125:case 91:case 93:case 58:case 44:return e=k?o.charAt(A):o[A],A++,e;case 34:for(e="@",A++;A<a;)if((i=o.charCodeAt(A))<32)I();else if(92==i)switch(i=o.charCodeAt(++A)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:e+=O[i],A++;break;case 117:for(t=++A,n=A+4;A<n;A++)(i=o.charCodeAt(A))>=48&&i<=57||i>=97&&i<=102||i>=65&&i<=70||I();e+=Y("0x"+o.slice(t,A));break;default:I()}else{if(34==i)break;for(i=o.charCodeAt(A),t=A;i>=32&&92!=i&&34!=i;)i=o.charCodeAt(++A);e+=o.slice(t,A)}if(34==o.charCodeAt(A))return A++,e;I();default:if(t=A,45==i&&(r=!0,i=o.charCodeAt(++A)),i>=48&&i<=57){for(48==i&&(i=o.charCodeAt(A+1))>=48&&i<=57&&I(),r=!1;A<a&&(i=o.charCodeAt(A))>=48&&i<=57;A++);if(46==o.charCodeAt(A)){for(n=++A;n<a&&(i=o.charCodeAt(n))>=48&&i<=57;n++);n==A&&I(),A=n}if(101==(i=o.charCodeAt(A))||69==i){for(i=o.charCodeAt(++A),43!=i&&45!=i||A++,n=A;n<a&&(i=o.charCodeAt(n))>=48&&i<=57;n++);n==A&&I(),A=n}return+o.slice(t,A)}if(r&&I(),"true"==o.slice(A,A+4))return A+=4,!0;if("false"==o.slice(A,A+5))return A+=5,!1;if("null"==o.slice(A,A+4))return A+=4,null;I()}return"$"},H=function(e){var t,n;if("$"==e&&I(),"string"==typeof e){if("@"==(k?e.charAt(0):e[0]))return e.slice(1);if("["==e){for(t=[];"]"!=(e=j());n||(n=!0))n&&(","==e?"]"==(e=j())&&I():I()),","==e&&I(),t.push(H(e));return t}if("{"==e){for(t={};"}"!=(e=j());n||(n=!0))n&&(","==e?"}"==(e=j())&&I():I()),","!=e&&"string"==typeof e&&"@"==(k?e.charAt(0):e[0])&&":"==j()||I(),t[e.slice(1)]=H(j());return t}I()}return e},N=function(e,t,n){var r=B(e,t,n);r===g?delete e[t]:e[t]=r},B=function(e,t,n){var r,i=e[t];if("object"==typeof i&&i)if(_.call(i)==M)for(r=i.length;r--;)N(i,r,n);else m(i,function(e){N(i,e,n)});return n.call(e,t,i)};t.parse=function(e,t){var n,r;return A=0,P=""+e,n=H(j()),"$"!=j()&&I(),A=P=null,t&&_.call(t)==b?B((r={},r[""]=n,r),"",t):n}}}return t.runInContext=i,t}var o="function"==typeof r&&r.amd,a={function:!0,object:!0},s=a[typeof t]&&t&&!t.nodeType&&t,l=a[typeof window]&&window||this,u=s&&a[typeof e]&&e&&!e.nodeType&&"object"==typeof n&&n;if(!u||u.global!==u&&u.window!==u&&u.self!==u||(l=u),s&&!o)i(l,s);else{var c=l.JSON,d=l.JSON3,h=!1,f=i(l,l.JSON3={noConflict:function(){return h||(h=!0,l.JSON=c,l.JSON3=d,c=d=null),f}});l.JSON={parse:f.parse,stringify:f.stringify}}o&&r(function(){return f})}).call(this)}).call(t,n(12)(e),function(){return this}())},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function n(e){if(e)return r(e)}function r(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},n.prototype.once=function(e,t){function n(){r.off(e,n),t.apply(this,arguments)}var r=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var r,i=0;i<n.length;i++)if((r=n[i])===t||r.fn===t){n.splice(i,1);break}return this},n.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks[e];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},n.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},n.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){(function(e){var r=n(15),i=n(16);t.deconstructPacket=function(e){function t(e){if(!e)return e;if(i(e)){var o={_placeholder:!0,num:n.length};return n.push(e),o}if(r(e)){for(var a=new Array(e.length),s=0;s<e.length;s++)a[s]=t(e[s]);return a}if("object"==typeof e&&!(e instanceof Date)){var a={};for(var l in e)a[l]=t(e[l]);return a}return e}var n=[],o=e.data,a=e;return a.data=t(o),a.attachments=n.length,{packet:a,buffers:n}},t.reconstructPacket=function(e,t){function n(e){if(e&&e._placeholder){return t[e.num]}if(r(e)){for(var i=0;i<e.length;i++)e[i]=n(e[i]);return e}if(e&&"object"==typeof e){for(var o in e)e[o]=n(e[o]);return e}return e}return e.data=n(e.data),e.attachments=void 0,e},t.removeBlobs=function(t,n){function o(t,l,u){if(!t)return t;if(e.Blob&&t instanceof Blob||e.File&&t instanceof File){a++;var c=new FileReader;c.onload=function(){u?u[l]=this.result:s=this.result,--a||n(s)},c.readAsArrayBuffer(t)}else if(r(t))for(var d=0;d<t.length;d++)o(t[d],d,t);else if(t&&"object"==typeof t&&!i(t))for(var h in t)o(t[h],h,t)}var a=0,s=t;o(s),a||n(s)}}).call(t,function(){return this}())},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t){(function(t){function n(e){return t.Buffer&&t.Buffer.isBuffer(e)||t.ArrayBuffer&&e instanceof ArrayBuffer}e.exports=n}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e,t){return this instanceof r?(e&&"object"===(void 0===e?"undefined":i(e))&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.nsps={},this.subs=[],this.opts=t,this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(t.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this.readyState="closed",this.uri=e,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new l.Encoder,this.decoder=new l.Decoder,this.autoConnect=!1!==t.autoConnect,void(this.autoConnect&&this.open())):new r(e,t)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(18),a=n(44),s=n(35),l=n(7),u=n(46),c=n(47),d=n(3)("socket.io-client:manager"),h=n(42),f=n(48),p=Object.prototype.hasOwnProperty;e.exports=r,r.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var e in this.nsps)p.call(this.nsps,e)&&this.nsps[e].emit.apply(this.nsps[e],arguments)},r.prototype.updateSocketIds=function(){for(var e in this.nsps)p.call(this.nsps,e)&&(this.nsps[e].id=this.engine.id)},s(r.prototype),r.prototype.reconnection=function(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection},r.prototype.reconnectionAttempts=function(e){return arguments.length?(this._reconnectionAttempts=e,this):this._reconnectionAttempts},r.prototype.reconnectionDelay=function(e){return arguments.length?(this._reconnectionDelay=e,this.backoff&&this.backoff.setMin(e),this):this._reconnectionDelay},r.prototype.randomizationFactor=function(e){return arguments.length?(this._randomizationFactor=e,this.backoff&&this.backoff.setJitter(e),this):this._randomizationFactor},r.prototype.reconnectionDelayMax=function(e){return arguments.length?(this._reconnectionDelayMax=e,this.backoff&&this.backoff.setMax(e),this):this._reconnectionDelayMax},r.prototype.timeout=function(e){return arguments.length?(this._timeout=e,this):this._timeout},r.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},r.prototype.open=r.prototype.connect=function(e,t){if(d("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;d("opening %s",this.uri),this.engine=o(this.uri,this.opts);var n=this.engine,r=this;this.readyState="opening",this.skipReconnect=!1;var i=u(n,"open",function(){r.onopen(),e&&e()}),a=u(n,"error",function(t){if(d("connect_error"),r.cleanup(),r.readyState="closed",r.emitAll("connect_error",t),e){var n=new Error("Connection error");n.data=t,e(n)}else r.maybeReconnectOnOpen()});if(!1!==this._timeout){var s=this._timeout;d("connect attempt will timeout after %d",s);var l=setTimeout(function(){d("connect attempt timed out after %d",s),i.destroy(),n.close(),n.emit("error","timeout"),r.emitAll("connect_timeout",s)},s);this.subs.push({destroy:function(){clearTimeout(l)}})}return this.subs.push(i),this.subs.push(a),this},r.prototype.onopen=function(){d("open"),this.cleanup(),this.readyState="open",this.emit("open");var e=this.engine;this.subs.push(u(e,"data",c(this,"ondata"))),this.subs.push(u(e,"ping",c(this,"onping"))),this.subs.push(u(e,"pong",c(this,"onpong"))),this.subs.push(u(e,"error",c(this,"onerror"))),this.subs.push(u(e,"close",c(this,"onclose"))),this.subs.push(u(this.decoder,"decoded",c(this,"ondecoded")))},r.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},r.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},r.prototype.ondata=function(e){this.decoder.add(e)},r.prototype.ondecoded=function(e){this.emit("packet",e)},r.prototype.onerror=function(e){d("error",e),this.emitAll("error",e)},r.prototype.socket=function(e,t){function n(){~h(i.connecting,r)||i.connecting.push(r)}var r=this.nsps[e];if(!r){r=new a(this,e,t),this.nsps[e]=r;var i=this;r.on("connecting",n),r.on("connect",function(){r.id=i.engine.id}),this.autoConnect&&n()}return r},r.prototype.destroy=function(e){var t=h(this.connecting,e);~t&&this.connecting.splice(t,1),this.connecting.length||this.close()},r.prototype.packet=function(e){d("writing packet %j",e);var t=this;e.query&&0===e.type&&(e.nsp+="?"+e.query),t.encoding?t.packetBuffer.push(e):(t.encoding=!0,this.encoder.encode(e,function(n){for(var r=0;r<n.length;r++)t.engine.write(n[r],e.options);t.encoding=!1,t.processPacketQueue()}))},r.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var e=this.packetBuffer.shift();this.packet(e)}},r.prototype.cleanup=function(){d("cleanup");for(var e=this.subs.length,t=0;t<e;t++){this.subs.shift().destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},r.prototype.close=r.prototype.disconnect=function(){d("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},r.prototype.onclose=function(e){d("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()},r.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var e=this;if(this.backoff.attempts>=this._reconnectionAttempts)d("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var t=this.backoff.duration();d("will wait %dms before reconnect attempt",t),this.reconnecting=!0;var n=setTimeout(function(){e.skipReconnect||(d("attempting reconnect"),e.emitAll("reconnect_attempt",e.backoff.attempts),e.emitAll("reconnecting",e.backoff.attempts),e.skipReconnect||e.open(function(t){t?(d("reconnect attempt error"),e.reconnecting=!1,e.reconnect(),e.emitAll("reconnect_error",t.data)):(d("reconnect success"),e.onreconnect())}))},t);this.subs.push({destroy:function(){clearTimeout(n)}})}},r.prototype.onreconnect=function(){var e=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",e)}},function(e,t,n){e.exports=n(19)},function(e,t,n){e.exports=n(20),e.exports.parser=n(27)},function(e,t,n){(function(t){function r(e,n){if(!(this instanceof r))return new r(e,n);n=n||{},e&&"object"==typeof e&&(n=e,e=null),e?(e=c(e),n.hostname=e.host,n.secure="https"===e.protocol||"wss"===e.protocol,n.port=e.port,e.query&&(n.query=e.query)):n.host&&(n.hostname=c(n.host).host),this.secure=null!=n.secure?n.secure:t.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(t.location?location.hostname:"localhost"),this.port=n.port||(t.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized?null:n.rejectUnauthorized,this.forceNode=!!n.forceNode;var i="object"==typeof t&&t;i.global===i&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function i(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var o=n(21),a=n(35),s=n(3)("engine.io-client:socket"),l=n(42),u=n(27),c=n(2),d=n(43),h=n(36);e.exports=r,r.priorWebsocketSuccess=!1,a(r.prototype),r.protocol=u.protocol,r.Socket=r,r.Transport=n(26),r.transports=n(21),r.parser=n(27),r.prototype.createTransport=function(e){s('creating transport "%s"',e);var t=i(this.query);return t.EIO=u.protocol,t.transport=e,this.id&&(t.sid=this.id),new o[e]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:t,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders,forceNode:this.forceNode,localAddress:this.localAddress})},r.prototype.open=function(){var e;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length){var t=this;return void setTimeout(function(){t.emit("error","No transports available")},0)}e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)},r.prototype.setTransport=function(e){s("setting transport %s",e.name);var t=this;this.transport&&(s("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=e,e.on("drain",function(){t.onDrain()}).on("packet",function(e){t.onPacket(e)}).on("error",function(e){t.onError(e)}).on("close",function(){t.onClose("transport close")})},r.prototype.probe=function(e){function t(){if(h.onlyBinaryUpgrades){var t=!this.supportsBinary&&h.transport.supportsBinary;d=d||t}d||(s('probe transport "%s" opened',e),c.send([{type:"ping",data:"probe"}]),c.once("packet",function(t){if(!d)if("pong"===t.type&&"probe"===t.data){if(s('probe transport "%s" pong',e),h.upgrading=!0,h.emit("upgrading",c),!c)return;r.priorWebsocketSuccess="websocket"===c.name,s('pausing current transport "%s"',h.transport.name),h.transport.pause(function(){d||"closed"!==h.readyState&&(s("changing transport and sending upgrade packet"),u(),h.setTransport(c),c.send([{type:"upgrade"}]),h.emit("upgrade",c),c=null,h.upgrading=!1,h.flush())})}else{s('probe transport "%s" failed',e);var n=new Error("probe error");n.transport=c.name,h.emit("upgradeError",n)}}))}function n(){d||(d=!0,u(),c.close(),c=null)}function i(t){var r=new Error("probe error: "+t);r.transport=c.name,n(),s('probe transport "%s" failed because of error: %s',e,t),h.emit("upgradeError",r)}function o(){i("transport closed")}function a(){i("socket closed")}function l(e){c&&e.name!==c.name&&(s('"%s" works - aborting "%s"',e.name,c.name),n())}function u(){c.removeListener("open",t),c.removeListener("error",i),c.removeListener("close",o),h.removeListener("close",a),h.removeListener("upgrading",l)}s('probing transport "%s"',e);var c=this.createTransport(e,{probe:1}),d=!1,h=this;r.priorWebsocketSuccess=!1,c.once("open",t),c.once("error",i),c.once("close",o),this.once("close",a),this.once("upgrading",l),c.open()},r.prototype.onOpen=function(){if(s("socket open"),this.readyState="open",r.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){s("starting upgrade probes");for(var e=0,t=this.upgrades.length;e<t;e++)this.probe(this.upgrades[e])}},r.prototype.onPacket=function(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(s('socket receive: type "%s", data "%s"',e.type,e.data),this.emit("packet",e),this.emit("heartbeat"),e.type){case"open":this.onHandshake(d(e.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emit("data",e.data),this.emit("message",e.data)}else s('packet received with socket readyState "%s"',this.readyState)},r.prototype.onHandshake=function(e){this.emit("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},r.prototype.onHeartbeat=function(e){clearTimeout(this.pingTimeoutTimer);var t=this;t.pingTimeoutTimer=setTimeout(function(){"closed"!==t.readyState&&t.onClose("ping timeout")},e||t.pingInterval+t.pingTimeout)},r.prototype.setPing=function(){var e=this;clearTimeout(e.pingIntervalTimer),e.pingIntervalTimer=setTimeout(function(){s("writing ping packet - expecting pong within %sms",e.pingTimeout),e.ping(),e.onHeartbeat(e.pingTimeout)},e.pingInterval)},r.prototype.ping=function(){var e=this;this.sendPacket("ping",function(){e.emit("ping")})},r.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},r.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(s("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},r.prototype.write=r.prototype.send=function(e,t,n){return this.sendPacket("message",e,t,n),this},r.prototype.sendPacket=function(e,t,n,r){if("function"==typeof t&&(r=t,t=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){n=n||{},n.compress=!1!==n.compress;var i={type:e,data:t,options:n};this.emit("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}},r.prototype.close=function(){function e(){r.onClose("forced close"),s("socket closing - telling transport to close"),r.transport.close()}function t(){r.removeListener("upgrade",t),r.removeListener("upgradeError",t),e()}function n(){r.once("upgrade",t),r.once("upgradeError",t)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var r=this;this.writeBuffer.length?this.once("drain",function(){this.upgrading?n():e()}):this.upgrading?n():e()}return this},r.prototype.onError=function(e){s("socket error %j",e),r.priorWebsocketSuccess=!1,this.emit("error",e),this.onClose("transport error",e)},r.prototype.onClose=function(e,t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){s('socket close with reason: "%s"',e);var n=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",e,t),n.writeBuffer=[],n.prevBufferLen=0}},r.prototype.filterUpgrades=function(e){for(var t=[],n=0,r=e.length;n<r;n++)~l(this.transports,e[n])&&t.push(e[n]);return t}}).call(t,function(){return this}())},function(e,t,n){(function(e){function r(t){var n=!1,r=!1,s=!1!==t.jsonp;if(e.location){var l="https:"===location.protocol,u=location.port;u||(u=l?443:80),n=t.hostname!==location.hostname||u!==t.port,r=t.secure!==l}if(t.xdomain=n,t.xscheme=r,"open"in new i(t)&&!t.forceJSONP)return new o(t);if(!s)throw new Error("JSONP disabled");return new a(t)}var i=n(22),o=n(24),a=n(39),s=n(40);t.polling=r,t.websocket=s}).call(t,function(){return this}())},function(e,t,n){(function(t){var r=n(23);e.exports=function(e){var n=e.xdomain,i=e.xscheme,o=e.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!n||r))return new XMLHttpRequest
-}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!i&&o)return new XDomainRequest}catch(e){}if(!n)try{return new(t[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}}}).call(t,function(){return this}())},function(e,t){try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},function(e,t,n){(function(t){function r(){}function i(e){if(l.call(this,e),this.requestTimeout=e.requestTimeout,t.location){var n="https:"===location.protocol,r=location.port;r||(r=n?443:80),this.xd=e.hostname!==t.location.hostname||r!==e.port,this.xs=e.secure!==n}else this.extraHeaders=e.extraHeaders}function o(e){this.method=e.method||"GET",this.uri=e.uri,this.xd=!!e.xd,this.xs=!!e.xs,this.async=!1!==e.async,this.data=void 0!==e.data?e.data:null,this.agent=e.agent,this.isBinary=e.isBinary,this.supportsBinary=e.supportsBinary,this.enablesXDR=e.enablesXDR,this.requestTimeout=e.requestTimeout,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.extraHeaders=e.extraHeaders,this.create()}function a(){for(var e in o.requests)o.requests.hasOwnProperty(e)&&o.requests[e].abort()}var s=n(22),l=n(25),u=n(35),c=n(37),d=n(3)("engine.io-client:polling-xhr");e.exports=i,e.exports.Request=o,c(i,l),i.prototype.supportsBinary=!0,i.prototype.request=function(e){return e=e||{},e.uri=this.uri(),e.xd=this.xd,e.xs=this.xs,e.agent=this.agent||!1,e.supportsBinary=this.supportsBinary,e.enablesXDR=this.enablesXDR,e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized,e.requestTimeout=this.requestTimeout,e.extraHeaders=this.extraHeaders,new o(e)},i.prototype.doWrite=function(e,t){var n="string"!=typeof e&&void 0!==e,r=this.request({method:"POST",data:e,isBinary:n}),i=this;r.on("success",t),r.on("error",function(e){i.onError("xhr post error",e)}),this.sendXhr=r},i.prototype.doPoll=function(){d("xhr poll");var e=this.request(),t=this;e.on("data",function(e){t.onData(e)}),e.on("error",function(e){t.onError("xhr poll error",e)}),this.pollXhr=e},u(o.prototype),o.prototype.create=function(){var e={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};e.pfx=this.pfx,e.key=this.key,e.passphrase=this.passphrase,e.cert=this.cert,e.ca=this.ca,e.ciphers=this.ciphers,e.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new s(e),r=this;try{d("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders){n.setDisableHeaderCheck(!0);for(var i in this.extraHeaders)this.extraHeaders.hasOwnProperty(i)&&n.setRequestHeader(i,this.extraHeaders[i])}}catch(e){}if(this.supportsBinary&&(n.responseType="arraybuffer"),"POST"===this.method)try{this.isBinary?n.setRequestHeader("Content-type","application/octet-stream"):n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{n.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){r.onLoad()},n.onerror=function(){r.onError(n.responseText)}):n.onreadystatechange=function(){4===n.readyState&&(200===n.status||1223===n.status?r.onLoad():setTimeout(function(){r.onError(n.status)},0))},d("xhr data %s",this.data),n.send(this.data)}catch(e){return void setTimeout(function(){r.onError(e)},0)}t.document&&(this.index=o.requestsCount++,o.requests[this.index]=this)},o.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},o.prototype.onData=function(e){this.emit("data",e),this.onSuccess()},o.prototype.onError=function(e){this.emit("error",e),this.cleanup(!0)},o.prototype.cleanup=function(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=r:this.xhr.onreadystatechange=r,e)try{this.xhr.abort()}catch(e){}t.document&&delete o.requests[this.index],this.xhr=null}},o.prototype.onLoad=function(){var e;try{var t;try{t=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(e){}if("application/octet-stream"===t)e=this.xhr.response||this.xhr.responseText;else if(this.supportsBinary)try{e=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(t){for(var n=new Uint8Array(this.xhr.response),r=[],i=0,o=n.length;i<o;i++)r.push(n[i]);e=String.fromCharCode.apply(null,r)}else e=this.xhr.responseText}catch(e){this.onError(e)}null!=e&&this.onData(e)},o.prototype.hasXDR=function(){return void 0!==t.XDomainRequest&&!this.xs&&this.enablesXDR},o.prototype.abort=function(){this.cleanup()},o.requestsCount=0,o.requests={},t.document&&(t.attachEvent?t.attachEvent("onunload",a):t.addEventListener&&t.addEventListener("beforeunload",a,!1))}).call(t,function(){return this}())},function(e,t,n){function r(e){var t=e&&e.forceBase64;c&&!t||(this.supportsBinary=!1),i.call(this,e)}var i=n(26),o=n(36),a=n(27),s=n(37),l=n(38),u=n(3)("engine.io-client:polling");e.exports=r;var c=function(){return null!=new(n(22))({xdomain:!1}).responseType}();s(r,i),r.prototype.name="polling",r.prototype.doOpen=function(){this.poll()},r.prototype.pause=function(e){function t(){u("paused"),n.readyState="paused",e()}var n=this;if(this.readyState="pausing",this.polling||!this.writable){var r=0;this.polling&&(u("we are currently polling - waiting to pause"),r++,this.once("pollComplete",function(){u("pre-pause polling complete"),--r||t()})),this.writable||(u("we are currently writing - waiting to pause"),r++,this.once("drain",function(){u("pre-pause writing complete"),--r||t()}))}else t()},r.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},r.prototype.onData=function(e){var t=this;u("polling got data %s",e);var n=function(e,n,r){return"opening"===t.readyState&&t.onOpen(),"close"===e.type?(t.onClose(),!1):void t.onPacket(e)};a.decodePayload(e,this.socket.binaryType,n),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},r.prototype.doClose=function(){function e(){u("writing close packet"),t.write([{type:"close"}])}var t=this;"open"===this.readyState?(u("transport open - closing"),e()):(u("transport not open - deferring close"),this.once("open",e))},r.prototype.write=function(e){var t=this;this.writable=!1;var n=function(){t.writable=!0,t.emit("drain")};a.encodePayload(e,this.supportsBinary,function(e){t.doWrite(e,n)})},r.prototype.uri=function(){var e=this.query||{},t=this.secure?"https":"http",n="";return!1!==this.timestampRequests&&(e[this.timestampParam]=l()),this.supportsBinary||e.sid||(e.b64=1),e=o.encode(e),this.port&&("https"===t&&443!==Number(this.port)||"http"===t&&80!==Number(this.port))&&(n=":"+this.port),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e}},function(e,t,n){function r(e){this.path=e.path,this.hostname=e.hostname,this.port=e.port,this.secure=e.secure,this.query=e.query,this.timestampParam=e.timestampParam,this.timestampRequests=e.timestampRequests,this.readyState="",this.agent=e.agent||!1,this.socket=e.socket,this.enablesXDR=e.enablesXDR,this.pfx=e.pfx,this.key=e.key,this.passphrase=e.passphrase,this.cert=e.cert,this.ca=e.ca,this.ciphers=e.ciphers,this.rejectUnauthorized=e.rejectUnauthorized,this.forceNode=e.forceNode,this.extraHeaders=e.extraHeaders,this.localAddress=e.localAddress}var i=n(27),o=n(35);e.exports=r,o(r.prototype),r.prototype.onError=function(e,t){var n=new Error(e);return n.type="TransportError",n.description=t,this.emit("error",n),this},r.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},r.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},r.prototype.send=function(e){if("open"!==this.readyState)throw new Error("Transport not open");this.write(e)},r.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},r.prototype.onData=function(e){var t=i.decodePacket(e,this.socket.binaryType);this.onPacket(t)},r.prototype.onPacket=function(e){this.emit("packet",e)},r.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(e,t,n){(function(e){function r(e,n){return n("b"+t.packets[e.type]+e.data.data)}function i(e,n,r){if(!n)return t.encodeBase64Packet(e,r);var i=e.data,o=new Uint8Array(i),a=new Uint8Array(1+i.byteLength);a[0]=_[e.type];for(var s=0;s<o.length;s++)a[s+1]=o[s];return r(a.buffer)}function o(e,n,r){if(!n)return t.encodeBase64Packet(e,r);var i=new FileReader;return i.onload=function(){e.data=i.result,t.encodePacket(e,n,!0,r)},i.readAsArrayBuffer(e.data)}function a(e,n,r){if(!n)return t.encodeBase64Packet(e,r);if(v)return o(e,n,r);var i=new Uint8Array(1);return i[0]=_[e.type],r(new w([i.buffer,e.data]))}function s(e){try{e=p.decode(e)}catch(e){return!1}return e}function l(e,t,n){for(var r=new Array(e.length),i=f(e.length,n),o=0;o<e.length;o++)!function(e,n,i){t(n,function(t,n){r[e]=n,i(t,r)})}(o,e[o],i)}var u,c=n(28),d=n(29),h=n(30),f=n(31),p=n(32);e&&e.ArrayBuffer&&(u=n(33));var m="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),g="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),v=m||g;t.protocol=3;var _=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},y=c(_),b={type:"error",data:"parser error"},w=n(34);t.encodePacket=function(t,n,o,s){"function"==typeof n&&(s=n,n=!1),"function"==typeof o&&(s=o,o=null);var l=void 0===t.data?void 0:t.data.buffer||t.data;if(e.ArrayBuffer&&l instanceof ArrayBuffer)return i(t,n,s);if(w&&l instanceof e.Blob)return a(t,n,s);if(l&&l.base64)return r(t,s);var u=_[t.type];return void 0!==t.data&&(u+=o?p.encode(String(t.data)):String(t.data)),s(""+u)},t.encodeBase64Packet=function(n,r){var i="b"+t.packets[n.type];if(w&&n.data instanceof e.Blob){var o=new FileReader;return o.onload=function(){var e=o.result.split(",")[1];r(i+e)},o.readAsDataURL(n.data)}var a;try{a=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(e){for(var s=new Uint8Array(n.data),l=new Array(s.length),u=0;u<s.length;u++)l[u]=s[u];a=String.fromCharCode.apply(null,l)}return i+=e.btoa(a),r(i)},t.decodePacket=function(e,n,r){if(void 0===e)return b;if("string"==typeof e){if("b"==e.charAt(0))return t.decodeBase64Packet(e.substr(1),n);if(r&&!1===(e=s(e)))return b;var i=e.charAt(0);return Number(i)==i&&y[i]?e.length>1?{type:y[i],data:e.substring(1)}:{type:y[i]}:b}var o=new Uint8Array(e),i=o[0],a=h(e,1);return w&&"blob"===n&&(a=new w([a])),{type:y[i],data:a}},t.decodeBase64Packet=function(e,t){var n=y[e.charAt(0)];if(!u)return{type:n,data:{base64:!0,data:e.substr(1)}};var r=u.decode(e.substr(1));return"blob"===t&&w&&(r=new w([r])),{type:n,data:r}},t.encodePayload=function(e,n,r){function i(e){return e.length+":"+e}function o(e,r){t.encodePacket(e,!!a&&n,!0,function(e){r(null,i(e))})}"function"==typeof n&&(r=n,n=null);var a=d(e);return n&&a?w&&!v?t.encodePayloadAsBlob(e,r):t.encodePayloadAsArrayBuffer(e,r):e.length?void l(e,o,function(e,t){return r(t.join(""))}):r("0:")},t.decodePayload=function(e,n,r){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,r);"function"==typeof n&&(r=n,n=null);var i;if(""==e)return r(b,0,1);for(var o,a,s="",l=0,u=e.length;l<u;l++){var c=e.charAt(l);if(":"!=c)s+=c;else{if(""==s||s!=(o=Number(s)))return r(b,0,1);if(a=e.substr(l+1,o),s!=a.length)return r(b,0,1);if(a.length){if(i=t.decodePacket(a,n,!0),b.type==i.type&&b.data==i.data)return r(b,0,1);if(!1===r(i,l+o,u))return}l+=o,s=""}}return""!=s?r(b,0,1):void 0},t.encodePayloadAsArrayBuffer=function(e,n){function r(e,n){t.encodePacket(e,!0,!0,function(e){return n(null,e)})}return e.length?void l(e,r,function(e,t){var r=t.reduce(function(e,t){var n;return n="string"==typeof t?t.length:t.byteLength,e+n.toString().length+n+2},0),i=new Uint8Array(r),o=0;return t.forEach(function(e){var t="string"==typeof e,n=e;if(t){for(var r=new Uint8Array(e.length),a=0;a<e.length;a++)r[a]=e.charCodeAt(a);n=r.buffer}i[o++]=t?0:1;for(var s=n.byteLength.toString(),a=0;a<s.length;a++)i[o++]=parseInt(s[a]);i[o++]=255;for(var r=new Uint8Array(n),a=0;a<r.length;a++)i[o++]=r[a]}),n(i.buffer)}):n(new ArrayBuffer(0))},t.encodePayloadAsBlob=function(e,n){function r(e,n){t.encodePacket(e,!0,!0,function(e){var t=new Uint8Array(1);if(t[0]=1,"string"==typeof e){for(var r=new Uint8Array(e.length),i=0;i<e.length;i++)r[i]=e.charCodeAt(i);e=r.buffer,t[0]=0}for(var o=e instanceof ArrayBuffer?e.byteLength:e.size,a=o.toString(),s=new Uint8Array(a.length+1),i=0;i<a.length;i++)s[i]=parseInt(a[i]);if(s[a.length]=255,w){var l=new w([t.buffer,s.buffer,e]);n(null,l)}})}l(e,r,function(e,t){return n(new w(t))})},t.decodePayloadAsBinary=function(e,n,r){"function"==typeof n&&(r=n,n=null);for(var i=e,o=[],a=!1;i.byteLength>0;){for(var s=new Uint8Array(i),l=0===s[0],u="",c=1;255!=s[c];c++){if(u.length>310){a=!0;break}u+=s[c]}if(a)return r(b,0,1);i=h(i,2+u.length),u=parseInt(u);var d=h(i,0,u);if(l)try{d=String.fromCharCode.apply(null,new Uint8Array(d))}catch(e){var f=new Uint8Array(d);d="";for(var c=0;c<f.length;c++)d+=String.fromCharCode(f[c])}o.push(d),i=h(i,u)}var p=o.length;o.forEach(function(e,i){r(t.decodePacket(e,n,!0),i,p)})}}).call(t,function(){return this}())},function(e,t){e.exports=Object.keys||function(e){var t=[],n=Object.prototype.hasOwnProperty;for(var r in e)n.call(e,r)&&t.push(r);return t}},function(e,t,n){(function(t){function r(e){function n(e){if(!e)return!1;if(t.Buffer&&t.Buffer.isBuffer&&t.Buffer.isBuffer(e)||t.ArrayBuffer&&e instanceof ArrayBuffer||t.Blob&&e instanceof Blob||t.File&&e instanceof File)return!0;if(i(e)){for(var r=0;r<e.length;r++)if(n(e[r]))return!0}else if(e&&"object"==typeof e){e.toJSON&&"function"==typeof e.toJSON&&(e=e.toJSON());for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)&&n(e[o]))return!0}return!1}return n(e)}var i=n(15);e.exports=r}).call(t,function(){return this}())},function(e,t){e.exports=function(e,t,n){var r=e.byteLength;if(t=t||0,n=n||r,e.slice)return e.slice(t,n);if(t<0&&(t+=r),n<0&&(n+=r),n>r&&(n=r),t>=r||t>=n||0===r)return new ArrayBuffer(0);for(var i=new Uint8Array(e),o=new Uint8Array(n-t),a=t,s=0;a<n;a++,s++)o[s]=i[a];return o.buffer}},function(e,t){function n(e,t,n){function i(e,r){if(i.count<=0)throw new Error("after called too many times");--i.count,e?(o=!0,t(e),t=n):0!==i.count||o||t(null,r)}var o=!1;return n=n||r,i.count=e,0===e?t():i}function r(){}e.exports=n},function(e,t,n){var r;(function(e,i){!function(o){function a(e){for(var t,n,r=[],i=0,o=e.length;i<o;)t=e.charCodeAt(i++),t>=55296&&t<=56319&&i<o?(n=e.charCodeAt(i++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),i--)):r.push(t);return r}function s(e){for(var t,n=e.length,r=-1,i="";++r<n;)t=e[r],t>65535&&(t-=65536,i+=_(t>>>10&1023|55296),t=56320|1023&t),i+=_(t);return i}function l(e,t){return _(e>>t&63|128)}function u(e){if(0==(4294967168&e))return _(e);var t="";return 0==(4294965248&e)?t=_(e>>6&31|192):0==(4294901760&e)?(t=_(e>>12&15|224),t+=l(e,6)):0==(4292870144&e)&&(t=_(e>>18&7|240),t+=l(e,12),t+=l(e,6)),t+=_(63&e|128)}function c(e){for(var t,n=a(e),r=n.length,i=-1,o="";++i<r;)t=n[i],o+=u(t);return o}function d(){if(v>=g)throw Error("Invalid byte index");var e=255&m[v];if(v++,128==(192&e))return 63&e;throw Error("Invalid continuation byte")}function h(){var e,t,n,r,i;if(v>g)throw Error("Invalid byte index");if(v==g)return!1;if(e=255&m[v],v++,0==(128&e))return e;if(192==(224&e)){var t=d();if((i=(31&e)<<6|t)>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if(t=d(),n=d(),(i=(15&e)<<12|t<<6|n)>=2048)return i;throw Error("Invalid continuation byte")}if(240==(248&e)&&(t=d(),n=d(),r=d(),(i=(15&e)<<18|t<<12|n<<6|r)>=65536&&i<=1114111))return i;throw Error("Invalid WTF-8 detected")}function f(e){m=a(e),g=m.length,v=0;for(var t,n=[];!1!==(t=h());)n.push(t);return s(n)}var p=("object"==typeof e&&e&&e.exports,"object"==typeof i&&i);var m,g,v,_=String.fromCharCode,y={version:"1.0.0",encode:c,decode:f};void 0!==(r=function(){return y}.call(t,n,t,e))&&(e.exports=r)}()}).call(t,n(12)(e),function(){return this}())},function(e,t){!function(){"use strict";for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),r=0;r<e.length;r++)n[e.charCodeAt(r)]=r;t.encode=function(t){var n,r=new Uint8Array(t),i=r.length,o="";for(n=0;n<i;n+=3)o+=e[r[n]>>2],o+=e[(3&r[n])<<4|r[n+1]>>4],o+=e[(15&r[n+1])<<2|r[n+2]>>6],o+=e[63&r[n+2]];return i%3==2?o=o.substring(0,o.length-1)+"=":i%3==1&&(o=o.substring(0,o.length-2)+"=="),o},t.decode=function(e){var t,r,i,o,a,s=.75*e.length,l=e.length,u=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var c=new ArrayBuffer(s),d=new Uint8Array(c);for(t=0;t<l;t+=4)r=n[e.charCodeAt(t)],i=n[e.charCodeAt(t+1)],o=n[e.charCodeAt(t+2)],a=n[e.charCodeAt(t+3)],d[u++]=r<<2|i>>4,d[u++]=(15&i)<<4|o>>2,d[u++]=(3&o)<<6|63&a;return c}}()},function(e,t){(function(t){function n(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.buffer instanceof ArrayBuffer){var r=n.buffer;if(n.byteLength!==r.byteLength){var i=new Uint8Array(n.byteLength);i.set(new Uint8Array(r,n.byteOffset,n.byteLength)),r=i.buffer}e[t]=r}}}function r(e,t){t=t||{};var r=new o;n(e);for(var i=0;i<e.length;i++)r.append(e[i]);return t.type?r.getBlob(t.type):r.getBlob()}function i(e,t){return n(e),new Blob(e,t||{})}var o=t.BlobBuilder||t.WebKitBlobBuilder||t.MSBlobBuilder||t.MozBlobBuilder,a=function(){try{return 2===new Blob(["hi"]).size}catch(e){return!1}}(),s=a&&function(){try{return 2===new Blob([new Uint8Array([1,2])]).size}catch(e){return!1}}(),l=o&&o.prototype.append&&o.prototype.getBlob;e.exports=function(){return a?s?t.Blob:i:l?r:void 0}()}).call(t,function(){return this}())},function(e,t,n){function r(e){if(e)return i(e)}function i(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}e.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var r,i=0;i<n.length;i++)if((r=n[i])===t||r.fn===t){n.splice(i,1);break}return this},r.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks["$"+e];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this},r.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},r.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t){t.encode=function(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t},t.decode=function(e){for(var t={},n=e.split("&"),r=0,i=n.length;r<i;r++){var o=n[r].split("=");t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}},function(e,t){e.exports=function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){"use strict";function n(e){var t="";do{t=a[e%s]+t,e=Math.floor(e/s)}while(e>0);return t}function r(e){var t=0;for(c=0;c<e.length;c++)t=t*s+l[e.charAt(c)];return t}function i(){var e=n(+new Date);return e!==o?(u=0,o=e):e+"."+n(u++)}for(var o,a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),s=64,l={},u=0,c=0;c<s;c++)l[a[c]]=c;i.encode=n,i.decode=r,e.exports=i},function(e,t,n){(function(t){function r(){}function i(e){o.call(this,e),this.query=this.query||{},s||(t.___eio||(t.___eio=[]),s=t.___eio),this.index=s.length;var n=this;s.push(function(e){n.onData(e)}),this.query.j=this.index,t.document&&t.addEventListener&&t.addEventListener("beforeunload",function(){n.script&&(n.script.onerror=r)},!1)}var o=n(25),a=n(37);e.exports=i;var s,l=/\n/g,u=/\\n/g;a(i,o),i.prototype.supportsBinary=!1,i.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),o.prototype.doClose.call(this)},i.prototype.doPoll=function(){var e=this,t=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),t.async=!0,t.src=this.uri(),t.onerror=function(t){e.onError("jsonp poll error",t)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(t,n):(document.head||document.body).appendChild(t),this.script=t,"undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent)&&setTimeout(function(){var e=document.createElement("iframe");document.body.appendChild(e),document.body.removeChild(e)},100)},i.prototype.doWrite=function(e,t){function n(){r(),t()}function r(){if(i.iframe)try{i.form.removeChild(i.iframe)}catch(e){i.onError("jsonp polling iframe removal error",e)}try{var e='<iframe src="javascript:0" name="'+i.iframeId+'">';o=document.createElement(e)}catch(e){o=document.createElement("iframe"),o.name=i.iframeId,o.src="javascript:0"}o.id=i.iframeId,i.form.appendChild(o),i.iframe=o}var i=this;if(!this.form){var o,a=document.createElement("form"),s=document.createElement("textarea"),c=this.iframeId="eio_iframe_"+this.index;a.className="socketio",a.style.position="absolute",a.style.top="-1000px",a.style.left="-1000px",a.target=c,a.method="POST",a.setAttribute("accept-charset","utf-8"),s.name="d",a.appendChild(s),document.body.appendChild(a),this.form=a,this.area=s}this.form.action=this.uri(),r(),e=e.replace(u,"\\\n"),this.area.value=e.replace(l,"\\n");try{this.form.submit()}catch(e){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===i.iframe.readyState&&n()}:this.iframe.onload=n}}).call(t,function(){return this}())},function(e,t,n){(function(t){function r(e){e&&e.forceBase64&&(this.supportsBinary=!1),this.perMessageDeflate=e.perMessageDeflate,this.usingBrowserWebSocket=d&&!e.forceNode,this.usingBrowserWebSocket||(h=i),o.call(this,e)}var i,o=n(26),a=n(27),s=n(36),l=n(37),u=n(38),c=n(3)("engine.io-client:websocket"),d=t.WebSocket||t.MozWebSocket;if("undefined"==typeof window)try{i=n(41)}catch(e){}var h=d;h||"undefined"!=typeof window||(h=i),e.exports=r,l(r,o),r.prototype.name="websocket",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var e=this.uri(),t={agent:this.agent,perMessageDeflate:this.perMessageDeflate};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(t.headers=this.extraHeaders),this.localAddress&&(t.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?new h(e):new h(e,void 0,t)}catch(e){return this.emit("error",e)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},r.prototype.addEventListeners=function(){var e=this;this.ws.onopen=function(){e.onOpen()},this.ws.onclose=function(){e.onClose()},this.ws.onmessage=function(t){e.onData(t.data)},this.ws.onerror=function(t){e.onError("websocket error",t)}},r.prototype.write=function(e){function n(){r.emit("flush"),setTimeout(function(){r.writable=!0,r.emit("drain")},0)}var r=this;this.writable=!1;for(var i=e.length,o=0,s=i;o<s;o++)!function(e){a.encodePacket(e,r.supportsBinary,function(o){if(!r.usingBrowserWebSocket){var a={};if(e.options&&(a.compress=e.options.compress),r.perMessageDeflate){("string"==typeof o?t.Buffer.byteLength(o):o.length)<r.perMessageDeflate.threshold&&(a.compress=!1)}}try{r.usingBrowserWebSocket?r.ws.send(o):r.ws.send(o,a)}catch(e){c("websocket closed before onclose event")}--i||n()})}(e[o])},r.prototype.onClose=function(){o.prototype.onClose.call(this)},r.prototype.doClose=function(){void 0!==this.ws&&this.ws.close()},r.prototype.uri=function(){var e=this.query||{},t=this.secure?"wss":"ws",n="";return this.port&&("wss"===t&&443!==Number(this.port)||"ws"===t&&80!==Number(this.port))&&(n=":"+this.port),this.timestampRequests&&(e[this.timestampParam]=u()),this.supportsBinary||(e.b64=1),e=s.encode(e),e.length&&(e="?"+e),t+"://"+(-1!==this.hostname.indexOf(":")?"["+this.hostname+"]":this.hostname)+n+this.path+e},r.prototype.check=function(){return!(!h||"__initialize"in h&&this.name===r.prototype.name)}}).call(t,function(){return this}())},function(e,t){},function(e,t){var n=[].indexOf;e.exports=function(e,t){if(n)return e.indexOf(t);for(var r=0;r<e.length;++r)if(e[r]===t)return r;return-1}},function(e,t){(function(t){var n=/^[\],:{}\s]*$/,r=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,i=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,o=/(?:^|:|,)(?:\s*\[)+/g,a=/^\s+/,s=/\s+$/;e.exports=function(e){return"string"==typeof e&&e?(e=e.replace(a,"").replace(s,""),t.JSON&&JSON.parse?JSON.parse(e):n.test(e.replace(r,"@").replace(i,"]").replace(o,""))?new Function("return "+e)():void 0):null}}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e,t,n){this.io=e,this.nsp=t,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var i=n(7),o=n(35),a=n(45),s=n(46),l=n(47),u=n(3)("socket.io-client:socket"),c=n(29);e.exports=r;var d={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},h=o.prototype.emit;o(r.prototype),r.prototype.subEvents=function(){if(!this.subs){var e=this.io;this.subs=[s(e,"open",l(this,"onopen")),s(e,"packet",l(this,"onpacket")),s(e,"close",l(this,"onclose"))]}},r.prototype.open=r.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},r.prototype.send=function(){var e=a(arguments);return e.unshift("message"),this.emit.apply(this,e),this},r.prototype.emit=function(e){if(d.hasOwnProperty(e))return h.apply(this,arguments),this;var t=a(arguments),n=i.EVENT;c(t)&&(n=i.BINARY_EVENT);var r={type:n,data:t};return r.options={},r.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof t[t.length-1]&&(u("emitting packet with ack id %d",this.ids),this.acks[this.ids]=t.pop(),r.id=this.ids++),this.connected?this.packet(r):this.sendBuffer.push(r),delete this.flags,this},r.prototype.packet=function(e){e.nsp=this.nsp,this.io.packet(e)},r.prototype.onopen=function(){u("transport is open - connecting"),"/"!==this.nsp&&(this.query?this.packet({type:i.CONNECT,query:this.query}):this.packet({type:i.CONNECT}))},r.prototype.onclose=function(e){u("close (%s)",e),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",e)},r.prototype.onpacket=function(e){if(e.nsp===this.nsp)switch(e.type){case i.CONNECT:this.onconnect();break;case i.EVENT:case i.BINARY_EVENT:this.onevent(e);break;case i.ACK:case i.BINARY_ACK:this.onack(e);break;case i.DISCONNECT:this.ondisconnect();break;case i.ERROR:this.emit("error",e.data)}},r.prototype.onevent=function(e){var t=e.data||[];u("emitting event %j",t),null!=e.id&&(u("attaching ack callback to event"),t.push(this.ack(e.id))),this.connected?h.apply(this,t):this.receiveBuffer.push(t)},r.prototype.ack=function(e){var t=this,n=!1;return function(){if(!n){n=!0;var r=a(arguments);u("sending ack %j",r);var o=c(r)?i.BINARY_ACK:i.ACK;t.packet({type:o,id:e,data:r})}}},r.prototype.onack=function(e){var t=this.acks[e.id];"function"==typeof t?(u("calling ack %s with %j",e.id,e.data),t.apply(this,e.data),delete this.acks[e.id]):u("bad ack %s",e.id)},r.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},r.prototype.emitBuffered=function(){var e;for(e=0;e<this.receiveBuffer.length;e++)h.apply(this,this.receiveBuffer[e]);for(this.receiveBuffer=[],e=0;e<this.sendBuffer.length;e++)this.packet(this.sendBuffer[e]);this.sendBuffer=[]},r.prototype.ondisconnect=function(){u("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},r.prototype.destroy=function(){if(this.subs){for(var e=0;e<this.subs.length;e++)this.subs[e].destroy();this.subs=null}this.io.destroy(this)},r.prototype.close=r.prototype.disconnect=function(){return this.connected&&(u("performing disconnect (%s)",this.nsp),this.packet({type:i.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},r.prototype.compress=function(e){return this.flags=this.flags||{},this.flags.compress=e,this}},function(e,t){function n(e,t){var n=[];t=t||0;for(var r=t||0;r<e.length;r++)n[r-t]=e[r];return n}e.exports=n},function(e,t){"use strict";function n(e,t,n){return e.on(t,n),{destroy:function(){e.removeListener(t,n)}}}e.exports=n},function(e,t){var n=[].slice;e.exports=function(e,t){if("string"==typeof t&&(t=e[t]),"function"!=typeof t)throw new Error("bind() requires a function");var r=n.call(arguments,2);return function(){return t.apply(e,r.concat(n.call(arguments)))}}},function(e,t){function n(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=n,n.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-n:e+n}return 0|Math.min(e,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(e){this.ms=e},n.prototype.setMax=function(e){this.max=e},n.prototype.setJitter=function(e){this.jitter=e}}])}),function(){var e="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this||{},t=e._,n=Array.prototype,r=Object.prototype,i="undefined"!=typeof Symbol?Symbol.prototype:null,o=n.push,a=n.slice,s=r.toString,l=r.hasOwnProperty,u=Array.isArray,c=Object.keys,d=Object.create,h=function(){},f=function(e){return e instanceof f?e:this instanceof f?void(this._wrapped=e):new f(e)};"undefined"==typeof exports||exports.nodeType?e._=f:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=f),exports._=f),f.VERSION="1.9.1";var p,m=function(e,t,n){if(void 0===t)return e;switch(null==n?3:n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}},g=function(e,t,n){return f.iteratee!==p?f.iteratee(e,t):null==e?f.identity:f.isFunction(e)?m(e,t,n):f.isObject(e)&&!f.isArray(e)?f.matcher(e):f.property(e)};f.iteratee=p=function(e,t){return g(e,t,1/0)};var v=function(e,t){return t=null==t?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;i<n;i++)r[i]=arguments[i+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var o=Array(t+1);for(i=0;i<t;i++)o[i]=arguments[i];return o[t]=r,e.apply(this,o)}},_=function(e){if(!f.isObject(e))return{};if(d)return d(e);h.prototype=e;var t=new h;return h.prototype=null,t},y=function(e){return function(t){return null==t?void 0:t[e]}},b=function(e,t){return null!=e&&l.call(e,t)},w=function(e,t){for(var n=t.length,r=0;r<n;r++){if(null==e)return;e=e[t[r]]}return n?e:void 0
-},L=Math.pow(2,53)-1,M=y("length"),k=function(e){var t=M(e);return"number"==typeof t&&0<=t&&t<=L};f.each=f.forEach=function(e,t,n){var r,i;if(t=m(t,n),k(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var o=f.keys(e);for(r=0,i=o.length;r<i;r++)t(e[o[r]],o[r],e)}return e},f.map=f.collect=function(e,t,n){t=g(t,n);for(var r=!k(e)&&f.keys(e),i=(r||e).length,o=Array(i),a=0;a<i;a++){var s=r?r[a]:a;o[a]=t(e[s],s,e)}return o};var x=function(e){return function(t,n,r,i){var o=3<=arguments.length;return function(t,n,r,i){var o=!k(t)&&f.keys(t),a=(o||t).length,s=0<e?0:a-1;for(i||(r=t[o?o[s]:s],s+=e);0<=s&&s<a;s+=e){var l=o?o[s]:s;r=n(r,t[l],l,t)}return r}(t,m(n,i,4),r,o)}};f.reduce=f.foldl=f.inject=x(1),f.reduceRight=f.foldr=x(-1),f.find=f.detect=function(e,t,n){var r=(k(e)?f.findIndex:f.findKey)(e,t,n);if(void 0!==r&&-1!==r)return e[r]},f.filter=f.select=function(e,t,n){var r=[];return t=g(t,n),f.each(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r},f.reject=function(e,t,n){return f.filter(e,f.negate(g(t)),n)},f.every=f.all=function(e,t,n){t=g(t,n);for(var r=!k(e)&&f.keys(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(!t(e[a],a,e))return!1}return!0},f.some=f.any=function(e,t,n){t=g(t,n);for(var r=!k(e)&&f.keys(e),i=(r||e).length,o=0;o<i;o++){var a=r?r[o]:o;if(t(e[a],a,e))return!0}return!1},f.contains=f.includes=f.include=function(e,t,n,r){return k(e)||(e=f.values(e)),("number"!=typeof n||r)&&(n=0),0<=f.indexOf(e,t,n)},f.invoke=v(function(e,t,n){var r,i;return f.isFunction(t)?i=t:f.isArray(t)&&(r=t.slice(0,-1),t=t[t.length-1]),f.map(e,function(e){var o=i;if(!o){if(r&&r.length&&(e=w(e,r)),null==e)return;o=e[t]}return null==o?o:o.apply(e,n)})}),f.pluck=function(e,t){return f.map(e,f.property(t))},f.where=function(e,t){return f.filter(e,f.matcher(t))},f.findWhere=function(e,t){return f.find(e,f.matcher(t))},f.max=function(e,t,n){var r,i,o=-1/0,a=-1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(r=e[s])&&o<r&&(o=r);else t=g(t,n),f.each(e,function(e,n,r){i=t(e,n,r),(a<i||i===-1/0&&o===-1/0)&&(o=e,a=i)});return o},f.min=function(e,t,n){var r,i,o=1/0,a=1/0;if(null==t||"number"==typeof t&&"object"!=typeof e[0]&&null!=e)for(var s=0,l=(e=k(e)?e:f.values(e)).length;s<l;s++)null!=(r=e[s])&&r<o&&(o=r);else t=g(t,n),f.each(e,function(e,n,r){((i=t(e,n,r))<a||i===1/0&&o===1/0)&&(o=e,a=i)});return o},f.shuffle=function(e){return f.sample(e,1/0)},f.sample=function(e,t,n){if(null==t||n)return k(e)||(e=f.values(e)),e[f.random(e.length-1)];var r=k(e)?f.clone(e):f.values(e),i=M(r);t=Math.max(Math.min(t,i),0);for(var o=i-1,a=0;a<t;a++){var s=f.random(a,o),l=r[a];r[a]=r[s],r[s]=l}return r.slice(0,t)},f.sortBy=function(e,t,n){var r=0;return t=g(t,n),f.pluck(f.map(e,function(e,n,i){return{value:e,index:r++,criteria:t(e,n,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(r<n||void 0===n)return 1;if(n<r||void 0===r)return-1}return e.index-t.index}),"value")};var S=function(e,t){return function(n,r,i){var o=t?[[],[]]:{};return r=g(r,i),f.each(n,function(t,i){var a=r(t,i,n);e(o,t,a)}),o}};f.groupBy=S(function(e,t,n){b(e,n)?e[n].push(t):e[n]=[t]}),f.indexBy=S(function(e,t,n){e[n]=t}),f.countBy=S(function(e,t,n){b(e,n)?e[n]++:e[n]=1});var T=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;f.toArray=function(e){return e?f.isArray(e)?a.call(e):f.isString(e)?e.match(T):k(e)?f.map(e,f.identity):f.values(e):[]},f.size=function(e){return null==e?0:k(e)?e.length:f.keys(e).length},f.partition=S(function(e,t,n){e[n?0:1].push(t)},!0),f.first=f.head=f.take=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[0]:f.initial(e,e.length-t)},f.initial=function(e,t,n){return a.call(e,0,Math.max(0,e.length-(null==t||n?1:t)))},f.last=function(e,t,n){return null==e||e.length<1?null==t?void 0:[]:null==t||n?e[e.length-1]:f.rest(e,Math.max(0,e.length-t))},f.rest=f.tail=f.drop=function(e,t,n){return a.call(e,null==t||n?1:t)},f.compact=function(e){return f.filter(e,Boolean)};var $=function(e,t,n,r){for(var i=(r=r||[]).length,o=0,a=M(e);o<a;o++){var s=e[o];if(k(s)&&(f.isArray(s)||f.isArguments(s)))if(t)for(var l=0,u=s.length;l<u;)r[i++]=s[l++];else $(s,t,n,r),i=r.length;else n||(r[i++]=s)}return r};f.flatten=function(e,t){return $(e,t,!1)},f.without=v(function(e,t){return f.difference(e,t)}),f.uniq=f.unique=function(e,t,n,r){f.isBoolean(t)||(r=n,n=t,t=!1),null!=n&&(n=g(n,r));for(var i=[],o=[],a=0,s=M(e);a<s;a++){var l=e[a],u=n?n(l,a,e):l;t&&!n?(a&&o===u||i.push(l),o=u):n?f.contains(o,u)||(o.push(u),i.push(l)):f.contains(i,l)||i.push(l)}return i},f.union=v(function(e){return f.uniq($(e,!0,!0))}),f.intersection=function(e){for(var t=[],n=arguments.length,r=0,i=M(e);r<i;r++){var o=e[r];if(!f.contains(t,o)){var a;for(a=1;a<n&&f.contains(arguments[a],o);a++);a===n&&t.push(o)}}return t},f.difference=v(function(e,t){return t=$(t,!0,!0),f.filter(e,function(e){return!f.contains(t,e)})}),f.unzip=function(e){for(var t=e&&f.max(e,M).length||0,n=Array(t),r=0;r<t;r++)n[r]=f.pluck(e,r);return n},f.zip=v(f.unzip),f.object=function(e,t){for(var n={},r=0,i=M(e);r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n};var D=function(e){return function(t,n,r){n=g(n,r);for(var i=M(t),o=0<e?0:i-1;0<=o&&o<i;o+=e)if(n(t[o],o,t))return o;return-1}};f.findIndex=D(1),f.findLastIndex=D(-1),f.sortedIndex=function(e,t,n,r){for(var i=(n=g(n,r,1))(t),o=0,a=M(e);o<a;){var s=Math.floor((o+a)/2);n(e[s])<i?o=s+1:a=s}return o};var C=function(e,t,n){return function(r,i,o){var s=0,l=M(r);if("number"==typeof o)0<e?s=0<=o?o:Math.max(o+l,s):l=0<=o?Math.min(o+1,l):o+l+1;else if(n&&o&&l)return r[o=n(r,i)]===i?o:-1;if(i!=i)return 0<=(o=t(a.call(r,s,l),f.isNaN))?o+s:-1;for(o=0<e?s:l-1;0<=o&&o<l;o+=e)if(r[o]===i)return o;return-1}};f.indexOf=C(1,f.findIndex,f.sortedIndex),f.lastIndexOf=C(-1,f.findLastIndex),f.range=function(e,t,n){null==t&&(t=e||0,e=0),n||(n=t<e?-1:1);for(var r=Math.max(Math.ceil((t-e)/n),0),i=Array(r),o=0;o<r;o++,e+=n)i[o]=e;return i},f.chunk=function(e,t){if(null==t||t<1)return[];for(var n=[],r=0,i=e.length;r<i;)n.push(a.call(e,r,r+=t));return n};var E=function(e,t,n,r,i){if(!(r instanceof t))return e.apply(n,i);var o=_(e.prototype),a=e.apply(o,i);return f.isObject(a)?a:o};f.bind=v(function(e,t,n){if(!f.isFunction(e))throw new TypeError("Bind must be called on a function");var r=v(function(i){return E(e,r,t,this,n.concat(i))});return r}),f.partial=v(function(e,t){var n=f.partial.placeholder,r=function(){for(var i=0,o=t.length,a=Array(o),s=0;s<o;s++)a[s]=t[s]===n?arguments[i++]:t[s];for(;i<arguments.length;)a.push(arguments[i++]);return E(e,r,this,this,a)};return r}),(f.partial.placeholder=f).bindAll=v(function(e,t){var n=(t=$(t,!1,!1)).length;if(n<1)throw new Error("bindAll must be passed function names");for(;n--;){var r=t[n];e[r]=f.bind(e[r],e)}}),f.memoize=function(e,t){var n=function(r){var i=n.cache,o=""+(t?t.apply(this,arguments):r);return b(i,o)||(i[o]=e.apply(this,arguments)),i[o]};return n.cache={},n},f.delay=v(function(e,t,n){return setTimeout(function(){return e.apply(null,n)},t)}),f.defer=f.partial(f.delay,f,1),f.throttle=function(e,t,n){var r,i,o,a,s=0;n||(n={});var l=function(){s=!1===n.leading?0:f.now(),r=null,a=e.apply(i,o),r||(i=o=null)},u=function(){var u=f.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return i=this,o=arguments,c<=0||t<c?(r&&(clearTimeout(r),r=null),s=u,a=e.apply(i,o),r||(i=o=null)):r||!1===n.trailing||(r=setTimeout(l,c)),a};return u.cancel=function(){clearTimeout(r),s=0,r=i=o=null},u},f.debounce=function(e,t,n){var r,i,o=function(t,n){r=null,n&&(i=e.apply(t,n))},a=v(function(a){if(r&&clearTimeout(r),n){var s=!r;r=setTimeout(o,t),s&&(i=e.apply(this,a))}else r=f.delay(o,t,this,a);return i});return a.cancel=function(){clearTimeout(r),r=null},a},f.wrap=function(e,t){return f.partial(t,e)},f.negate=function(e){return function(){return!e.apply(this,arguments)}},f.compose=function(){var e=arguments,t=e.length-1;return function(){for(var n=t,r=e[t].apply(this,arguments);n--;)r=e[n].call(this,r);return r}},f.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},f.before=function(e,t){var n;return function(){return 0<--e&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},f.once=f.partial(f.before,2),f.restArguments=v;var A=!{toString:null}.propertyIsEnumerable("toString"),P=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Y=function(e,t){var n=P.length,i=e.constructor,o=f.isFunction(i)&&i.prototype||r,a="constructor";for(b(e,a)&&!f.contains(t,a)&&t.push(a);n--;)(a=P[n])in e&&e[a]!==o[a]&&!f.contains(t,a)&&t.push(a)};f.keys=function(e){if(!f.isObject(e))return[];if(c)return c(e);var t=[];for(var n in e)b(e,n)&&t.push(n);return A&&Y(e,t),t},f.allKeys=function(e){if(!f.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&Y(e,t),t},f.values=function(e){for(var t=f.keys(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=e[t[i]];return r},f.mapObject=function(e,t,n){t=g(t,n);for(var r=f.keys(e),i=r.length,o={},a=0;a<i;a++){var s=r[a];o[s]=t(e[s],s,e)}return o},f.pairs=function(e){for(var t=f.keys(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=[t[i],e[t[i]]];return r},f.invert=function(e){for(var t={},n=f.keys(e),r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t},f.functions=f.methods=function(e){var t=[];for(var n in e)f.isFunction(e[n])&&t.push(n);return t.sort()};var O=function(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||null==n)return n;for(var i=1;i<r;i++)for(var o=arguments[i],a=e(o),s=a.length,l=0;l<s;l++){var u=a[l];t&&void 0!==n[u]||(n[u]=o[u])}return n}};f.extend=O(f.allKeys),f.extendOwn=f.assign=O(f.keys),f.findKey=function(e,t,n){t=g(t,n);for(var r,i=f.keys(e),o=0,a=i.length;o<a;o++)if(t(e[r=i[o]],r,e))return r};var I,j,H=function(e,t,n){return t in n};f.pick=v(function(e,t){var n={},r=t[0];if(null==e)return n;f.isFunction(r)?(1<t.length&&(r=m(r,t[1])),t=f.allKeys(e)):(r=H,t=$(t,!1,!1),e=Object(e));for(var i=0,o=t.length;i<o;i++){var a=t[i],s=e[a];r(s,a,e)&&(n[a]=s)}return n}),f.omit=v(function(e,t){var n,r=t[0];return f.isFunction(r)?(r=f.negate(r),1<t.length&&(n=t[1])):(t=f.map($(t,!1,!1),String),r=function(e,n){return!f.contains(t,n)}),f.pick(e,r,n)}),f.defaults=O(f.allKeys,!0),f.create=function(e,t){var n=_(e);return t&&f.extendOwn(n,t),n},f.clone=function(e){return f.isObject(e)?f.isArray(e)?e.slice():f.extend({},e):e},f.tap=function(e,t){return t(e),e},f.isMatch=function(e,t){var n=f.keys(t),r=n.length;if(null==e)return!r;for(var i=Object(e),o=0;o<r;o++){var a=n[o];if(t[a]!==i[a]||!(a in i))return!1}return!0},I=function(e,t,n,r){if(e===t)return 0!==e||1/e==1/t;if(null==e||null==t)return!1;if(e!=e)return t!=t;var i=typeof e;return("function"===i||"object"===i||"object"==typeof t)&&j(e,t,n,r)},j=function(e,t,n,r){e instanceof f&&(e=e._wrapped),t instanceof f&&(t=t._wrapped);var o=s.call(e);if(o!==s.call(t))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+t;case"[object Number]":return+e!=+e?+t!=+t:0==+e?1/+e==1/t:+e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object Symbol]":return i.valueOf.call(e)===i.valueOf.call(t)}var a="[object Array]"===o;if(!a){if("object"!=typeof e||"object"!=typeof t)return!1;var l=e.constructor,u=t.constructor;if(l!==u&&!(f.isFunction(l)&&l instanceof l&&f.isFunction(u)&&u instanceof u)&&"constructor"in e&&"constructor"in t)return!1}r=r||[];for(var c=(n=n||[]).length;c--;)if(n[c]===e)return r[c]===t;if(n.push(e),r.push(t),a){if((c=e.length)!==t.length)return!1;for(;c--;)if(!I(e[c],t[c],n,r))return!1}else{var d,h=f.keys(e);if(c=h.length,f.keys(t).length!==c)return!1;for(;c--;)if(d=h[c],!b(t,d)||!I(e[d],t[d],n,r))return!1}return n.pop(),r.pop(),!0},f.isEqual=function(e,t){return I(e,t)},f.isEmpty=function(e){return null==e||(k(e)&&(f.isArray(e)||f.isString(e)||f.isArguments(e))?0===e.length:0===f.keys(e).length)},f.isElement=function(e){return!(!e||1!==e.nodeType)},f.isArray=u||function(e){return"[object Array]"===s.call(e)},f.isObject=function(e){var t=typeof e;return"function"===t||"object"===t&&!!e},f.each(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],function(e){f["is"+e]=function(t){return s.call(t)==="[object "+e+"]"}}),f.isArguments(arguments)||(f.isArguments=function(e){return b(e,"callee")});var N=e.document&&e.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof N&&(f.isFunction=function(e){return"function"==typeof e||!1}),f.isFinite=function(e){return!f.isSymbol(e)&&isFinite(e)&&!isNaN(parseFloat(e))},f.isNaN=function(e){return f.isNumber(e)&&isNaN(e)},f.isBoolean=function(e){return!0===e||!1===e||"[object Boolean]"===s.call(e)},f.isNull=function(e){return null===e},f.isUndefined=function(e){return void 0===e},f.has=function(e,t){if(!f.isArray(t))return b(e,t);for(var n=t.length,r=0;r<n;r++){var i=t[r];if(null==e||!l.call(e,i))return!1;e=e[i]}return!!n},f.noConflict=function(){return e._=t,this},f.identity=function(e){return e},f.constant=function(e){return function(){return e}},f.noop=function(){},f.property=function(e){return f.isArray(e)?function(t){return w(t,e)}:y(e)},f.propertyOf=function(e){return null==e?function(){}:function(t){return f.isArray(t)?w(e,t):e[t]}},f.matcher=f.matches=function(e){return e=f.extendOwn({},e),function(t){return f.isMatch(t,e)}},f.times=function(e,t,n){var r=Array(Math.max(0,e));t=m(t,n,1);for(var i=0;i<e;i++)r[i]=t(i);return r},f.random=function(e,t){return null==t&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))},f.now=Date.now||function(){return(new Date).getTime()};var B={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},R=f.invert(B),F=function(e){var t=function(t){return e[t]},n="(?:"+f.keys(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=null==e?"":""+e,r.test(e)?e.replace(i,t):e}};f.escape=F(B),f.unescape=F(R),f.result=function(e,t,n){f.isArray(t)||(t=[t]);var r=t.length;if(!r)return f.isFunction(n)?n.call(e):n;for(var i=0;i<r;i++){var o=null==e?void 0:e[t[i]];void 0===o&&(o=n,i=r),e=f.isFunction(o)?o.call(e):o}return e};var z=0;f.uniqueId=function(e){var t=++z+"";return e?e+t:t},f.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var V=/(.)^/,U={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},W=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+U[e]};f.template=function(e,t,n){!t&&n&&(t=n),t=f.defaults({},t,f.templateSettings);var r,i=RegExp([(t.escape||V).source,(t.interpolate||V).source,(t.evaluate||V).source].join("|")+"|$","g"),o=0,a="__p+='";e.replace(i,function(t,n,r,i,s){return a+=e.slice(o,s).replace(W,q),o=s+t.length,n?a+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?a+="'+\n((__t=("+r+"))==null?'':__t)+\n'":i&&(a+="';\n"+i+"\n__p+='"),t}),a+="';\n",t.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{r=new Function(t.variable||"obj","_",a)}catch(t){throw t.source=a,t}var s=function(e){return r.call(this,e,f)};return s.source="function("+(t.variable||"obj")+"){\n"+a+"}",s},f.chain=function(e){var t=f(e);return t._chain=!0,t};var G=function(e,t){return e._chain?f(t).chain():t};f.mixin=function(e){return f.each(f.functions(e),function(t){var n=f[t]=e[t];f.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),G(this,n.apply(f,e))}}),f},f.mixin(f),f.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=n[e];f.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),"shift"!==e&&"splice"!==e||0!==n.length||delete n[0],G(this,n)}}),f.each(["concat","join","slice"],function(e){var t=n[e];f.prototype[e]=function(){return G(this,t.apply(this._wrapped,arguments))}}),f.prototype.value=function(){return this._wrapped},f.prototype.valueOf=f.prototype.toJSON=f.prototype.value,f.prototype.toString=function(){return String(this._wrapped)},"function"==typeof define&&define.amd&&define("underscore",[],function(){return f})}();var QRCode;!function(){function e(e){this.mode=l.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t<n;t++){var r=[],i=this.data.charCodeAt(t);i>65536?(r[0]=240|(1835008&i)>>>18,r[1]=128|(258048&i)>>>12,r[2]=128|(4032&i)>>>6,r[3]=128|63&i):i>2048?(r[0]=224|(61440&i)>>>12,r[1]=128|(4032&i)>>>6,r[2]=128|63&i):i>128?(r[0]=192|(1984&i)>>>6,r[1]=128|63&i):r[0]=i,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function t(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function n(e,t){if(void 0==e.length)throw new Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=new Array(e.length-n+t);for(var r=0;r<e.length-n;r++)this.num[r]=e[r+n]}function r(e,t){this.totalCount=e,this.dataCount=t}function i(){this.buffer=[],this.length=0}function o(){var e=!1,t=navigator.userAgent;if(/android/i.test(t)){e=!0;var n=t.toString().match(/android ([0-9]\.[0-9])/i);n&&n[1]&&(e=parseFloat(n[1]))}return e}function a(e,t){for(var n=1,r=s(e),i=0,o=p.length;i<=o;i++){var a=0;switch(t){case u.L:a=p[i][0];break;case u.M:a=p[i][1];break;case u.Q:a=p[i][2];break;case u.H:a=p[i][3]}if(r<=a)break;n++}if(n>p.length)throw new Error("Too long data");return n}function s(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}e.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t<n;t++)e.put(this.parsedData[t],8)}},t.prototype={addData:function(t){var n=new e(t);this.dataList.push(n),this.dataCache=null},isDark:function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,n){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var i=0;i<this.moduleCount;i++)this.modules[r][i]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,n),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=t.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,n)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var r=-1;r<=7;r++)t+r<=-1||this.moduleCount<=t+r||(this.modules[e+n][t+r]=0<=n&&n<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=r&&r<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var r=d.getLostPoint(this);(0==n||e>r)&&(e=r,t=n)}return t},createMovieClip:function(e,t,n){var r=e.createEmptyMovieClip(t,n);this.make();for(var i=0;i<this.modules.length;i++)for(var o=1*i,a=0;a<this.modules[i].length;a++){var s=1*a,l=this.modules[i][a];l&&(r.beginFill(0,100),r.moveTo(s,o),r.lineTo(s+1,o),r.lineTo(s+1,o+1),r.lineTo(s,o+1),r.endFill())}return r},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},setupPositionAdjustPattern:function(){for(var e=d.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var r=e[t],i=e[n];if(null==this.modules[r][i])for(var o=-2;o<=2;o++)for(var a=-2;a<=2;a++)this.modules[r+o][i+a]=-2==o||2==o||-2==a||2==a||0==o&&0==a}},setupTypeNumber:function(e){for(var t=d.getBCHTypeNumber(this.typeNumber),n=0;n<18;n++){var r=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=r}for(var n=0;n<18;n++){var r=!e&&1==(t>>n&1);this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r}},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,r=d.getBCHTypeInfo(n),i=0;i<15;i++){var o=!e&&1==(r>>i&1);i<6?this.modules[i][8]=o:i<8?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(var i=0;i<15;i++){var o=!e&&1==(r>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=o:i<9?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o}this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,r=this.moduleCount-1,i=7,o=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[r][a-s]){var l=!1;o<e.length&&(l=1==(e[o]>>>i&1));var u=d.getMask(t,r,a-s);u&&(l=!l),this.modules[r][a-s]=l,i--,-1==i&&(o++,i=7)}if((r+=n)<0||this.moduleCount<=r){r-=n,n=-n;break}}}},t.PAD0=236,t.PAD1=17,t.createData=function(e,n,o){for(var a=r.getRSBlocks(e,n),s=new i,l=0;l<o.length;l++){var u=o[l];s.put(u.mode,4),s.put(u.getLength(),d.getLengthInBits(u.mode,e)),u.write(s)}for(var c=0,l=0;l<a.length;l++)c+=a[l].dataCount;if(s.getLengthInBits()>8*c)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*c+")");for(s.getLengthInBits()+4<=8*c&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;;){if(s.getLengthInBits()>=8*c)break;if(s.put(t.PAD0,8),s.getLengthInBits()>=8*c)break;s.put(t.PAD1,8)}return t.createBytes(s,a)},t.createBytes=function(e,t){for(var r=0,i=0,o=0,a=new Array(t.length),s=new Array(t.length),l=0;l<t.length;l++){var u=t[l].dataCount,c=t[l].totalCount-u;i=Math.max(i,u),o=Math.max(o,c),a[l]=new Array(u);for(var h=0;h<a[l].length;h++)a[l][h]=255&e.buffer[h+r];r+=u;var f=d.getErrorCorrectPolynomial(c),p=new n(a[l],f.getLength()-1),m=p.mod(f);s[l]=new Array(f.getLength()-1);for(var h=0;h<s[l].length;h++){var g=h+m.getLength()-s[l].length;s[l][h]=g>=0?m.get(g):0}}for(var v=0,h=0;h<t.length;h++)v+=t[h].totalCount;for(var _=new Array(v),y=0,h=0;h<i;h++)for(var l=0;l<t.length;l++)h<a[l].length&&(_[y++]=a[l][h]);for(var h=0;h<o;h++)for(var l=0;l<t.length;l++)h<s[l].length&&(_[y++]=s[l][h]);return _};for(var l={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},u={L:1,M:0,Q:3,H:2},c={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},d={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;d.getBCHDigit(t)-d.getBCHDigit(d.G15)>=0;)t^=d.G15<<d.getBCHDigit(t)-d.getBCHDigit(d.G15);return(e<<10|t)^d.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;d.getBCHDigit(t)-d.getBCHDigit(d.G18)>=0;)t^=d.G18<<d.getBCHDigit(t)-d.getBCHDigit(d.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return d.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case c.PATTERN000:return(t+n)%2==0;case c.PATTERN001:return t%2==0;case c.PATTERN010:return n%3==0;case c.PATTERN011:return(t+n)%3==0;case c.PATTERN100:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case c.PATTERN101:return t*n%2+t*n%3==0;case c.PATTERN110:return(t*n%2+t*n%3)%2==0;case c.PATTERN111:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new n([1],0),r=0;r<e;r++)t=t.multiply(new n([1,h.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case l.MODE_NUMBER:return 10;case l.MODE_ALPHA_NUM:return 9;case l.MODE_8BIT_BYTE:case l.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case l.MODE_NUMBER:return 12;case l.MODE_ALPHA_NUM:return 11;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case l.MODE_NUMBER:return 14;case l.MODE_ALPHA_NUM:return 13;case l.MODE_8BIT_BYTE:return 16;case l.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,r=0;r<t;r++)for(var i=0;i<t;i++){for(var o=0,a=e.isDark(r,i),s=-1;s<=1;s++)if(!(r+s<0||t<=r+s))for(var l=-1;l<=1;l++)i+l<0||t<=i+l||0==s&&0==l||a==e.isDark(r+s,i+l)&&o++;o>5&&(n+=3+o-5)}for(var r=0;r<t-1;r++)for(var i=0;i<t-1;i++){var u=0;e.isDark(r,i)&&u++,e.isDark(r+1,i)&&u++,e.isDark(r,i+1)&&u++,e.isDark(r+1,i+1)&&u++,0!=u&&4!=u||(n+=3)}for(var r=0;r<t;r++)for(var i=0;i<t-6;i++)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(n+=40);for(var i=0;i<t;i++)for(var r=0;r<t-6;r++)e.isDark(r,i)&&!e.isDark(r+1,i)&&e.isDark(r+2,i)&&e.isDark(r+3,i)&&e.isDark(r+4,i)&&!e.isDark(r+5,i)&&e.isDark(r+6,i)&&(n+=40);for(var c=0,i=0;i<t;i++)for(var r=0;r<t;r++)e.isDark(r,i)&&c++;return n+=Math.abs(100*c/t/t-50)/5*10}},h={glog:function(e){if(e<1)throw new Error("glog("+e+")");return h.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return h.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},f=0;f<8;f++)h.EXP_TABLE[f]=1<<f;for(var f=8;f<256;f++)h.EXP_TABLE[f]=h.EXP_TABLE[f-4]^h.EXP_TABLE[f-5]^h.EXP_TABLE[f-6]^h.EXP_TABLE[f-8];for(var f=0;f<255;f++)h.LOG_TABLE[h.EXP_TABLE[f]]=f;n.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var i=0;i<e.getLength();i++)t[r+i]^=h.gexp(h.glog(this.get(r))+h.glog(e.get(i)));return new n(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=h.glog(this.get(0))-h.glog(e.get(0)),r=new Array(this.getLength()),i=0;i<this.getLength();i++)r[i]=this.get(i);for(var i=0;i<e.getLength();i++)r[i]^=h.gexp(h.glog(e.get(i))+t);return new n(r,0).mod(e)}},r.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],r.getRSBlocks=function(e,t){var n=r.getRsBlockTable(e,t);if(void 0==n)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var i=n.length/3,o=[],a=0;a<i;a++)for(var s=n[3*a+0],l=n[3*a+1],u=n[3*a+2],c=0;c<s;c++)o.push(new r(l,u));return o},r.getRsBlockTable=function(e,t){switch(t){case u.L:return r.RS_BLOCK_TABLE[4*(e-1)+0];case u.M:return r.RS_BLOCK_TABLE[4*(e-1)+1];case u.Q:return r.RS_BLOCK_TABLE[4*(e-1)+2];case u.H:return r.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},i.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var n=0;n<t;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var p=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],m=function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){function t(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e);for(var r in t)t.hasOwnProperty(r)&&n.setAttribute(r,t[r]);return n}var n=this._htOption,r=this._el,i=e.getModuleCount();Math.floor(n.width/i),Math.floor(n.height/i);this.clear();var o=t("svg",{viewBox:"0 0 "+String(i)+" "+String(i),width:"100%",height:"100%",fill:n.colorLight});o.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.appendChild(o),o.appendChild(t("rect",{fill:n.colorLight,width:"100%",height:"100%"})),o.appendChild(t("rect",{fill:n.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a<i;a++)for(var s=0;s<i;s++)if(e.isDark(a,s)){var l=t("use",{x:String(s),y:String(a)});l.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),o.appendChild(l)}},e.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},e
-}(),g="svg"===document.documentElement.tagName.toLowerCase(),v=g?m:function(){return"undefined"!=typeof CanvasRenderingContext2D}()?function(){function e(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function t(e,t){var n=this;if(n._fFail=t,n._fSuccess=e,null===n._bSupportDataURI){var r=document.createElement("img"),i=function(){n._bSupportDataURI=!1,n._fFail&&n._fFail.call(n)},o=function(){n._bSupportDataURI=!0,n._fSuccess&&n._fSuccess.call(n)};return r.onabort=i,r.onerror=i,r.onload=o,void(r.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==")}!0===n._bSupportDataURI&&n._fSuccess?n._fSuccess.call(n):!1===n._bSupportDataURI&&n._fFail&&n._fFail.call(n)}if(this._android&&this._android<=2.1){var n=1/window.devicePixelRatio,r=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(e,t,i,o,a,s,l,u,c){if("nodeName"in e&&/img/i.test(e.nodeName))for(var d=arguments.length-1;d>=1;d--)arguments[d]=arguments[d]*n;else void 0===u&&(arguments[1]*=n,arguments[2]*=n,arguments[3]*=n,arguments[4]*=n);r.apply(this,arguments)}}var i=function(e,t){this._bIsPainted=!1,this._android=o(),this._htOption=t,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=t.width,this._elCanvas.height=t.height,e.appendChild(this._elCanvas),this._el=e,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return i.prototype.draw=function(e){var t=this._elImage,n=this._oContext,r=this._htOption,i=e.getModuleCount(),o=r.width/i,a=r.height/i,s=Math.round(o),l=Math.round(a);t.style.display="none",this.clear();for(var u=0;u<i;u++)for(var c=0;c<i;c++){var d=e.isDark(u,c),h=c*o,f=u*a;n.strokeStyle=d?r.colorDark:r.colorLight,n.lineWidth=1,n.fillStyle=d?r.colorDark:r.colorLight,n.fillRect(h,f,o,a),n.strokeRect(Math.floor(h)+.5,Math.floor(f)+.5,s,l),n.strokeRect(Math.ceil(h)-.5,Math.ceil(f)-.5,s,l)}this._bIsPainted=!0},i.prototype.makeImage=function(){this._bIsPainted&&t.call(this,e)},i.prototype.isPainted=function(){return this._bIsPainted},i.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},i.prototype.round=function(e){return e?Math.floor(1e3*e)/1e3:e},i}():function(){var e=function(e,t){this._el=e,this._htOption=t};return e.prototype.draw=function(e){for(var t=this._htOption,n=this._el,r=e.getModuleCount(),i=Math.floor(t.width/r),o=Math.floor(t.height/r),a=['<table style="border:0;border-collapse:collapse;">'],s=0;s<r;s++){a.push("<tr>");for(var l=0;l<r;l++)a.push('<td style="border:0;border-collapse:collapse;padding:0;margin:0;width:'+i+"px;height:"+o+"px;background-color:"+(e.isDark(s,l)?t.colorDark:t.colorLight)+';"></td>');a.push("</tr>")}a.push("</table>"),n.innerHTML=a.join("");var u=n.childNodes[0],c=(t.width-u.offsetWidth)/2,d=(t.height-u.offsetHeight)/2;c>0&&d>0&&(u.style.margin=d+"px "+c+"px")},e.prototype.clear=function(){this._el.innerHTML=""},e}();QRCode=function(e,t){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:u.H},"string"==typeof t&&(t={text:t}),t)for(var n in t)this._htOption[n]=t[n];"string"==typeof e&&(e=document.getElementById(e)),this._htOption.useSVG&&(v=m),this._android=o(),this._el=e,this._oQRCode=null,this._oDrawing=new v(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(e){this._oQRCode=new t(a(e,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(e),this._oQRCode.make(),this._el.title=e,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=u}(),function(e){"use strict";function t(e){return parseInt(e)===e}function n(e){if(!t(e.length))return!1;for(var n=0;n<e.length;n++)if(!t(e[n])||e[n]<0||e[n]>255)return!1;return!0}function r(e,r){if(e.buffer&&"Uint8Array"===e.name)return r&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!n(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(t(e.length)&&n(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function i(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}function a(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}function s(e){e=r(e,!0);var t=16-e.length%16,n=i(e.length+t);o(e,n);for(var a=e.length;a<n.length;a++)n[a]=t;return n}function l(e){if(e=r(e,!0),e.length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,a=0;a<t;a++)if(e[n+a]!==t)throw new Error("PKCS#7 invalid padding byte");var s=i(n);return o(e,s,0,0,n),s}var u=function(){function e(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var i=e.charCodeAt(n++);37===i?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(i)}return r(t)}function t(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}return{toBytes:e,fromBytes:t}}(),c=function(){function e(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t}function t(e){for(var t=[],r=0;r<e.length;r++){var i=e[r];t.push(n[(240&i)>>4]+n[15&i])}return t.join("")}var n="0123456789abcdef";return{toBytes:e,fromBytes:t}}(),d={16:10,24:12,32:14
-},h=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],m=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],g=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],v=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],_=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],y=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],b=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],w=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],L=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],M=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],k=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],x=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],S=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925],T=function(e){
-if(!(this instanceof T))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:r(e,!0)}),this._prepare()};T.prototype._prepare=function(){var e=d[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);for(var n,r=4*(e+1),i=this.key.length/4,o=a(this.key),t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=o[t],this._Kd[e-n][t%4]=o[t];for(var s,l=0,u=i;u<r;){if(s=o[i-1],o[0]^=f[s>>16&255]<<24^f[s>>8&255]<<16^f[255&s]<<8^f[s>>24&255]^h[l]<<24,l+=1,8!=i)for(var t=1;t<i;t++)o[t]^=o[t-1];else{for(var t=1;t<i/2;t++)o[t]^=o[t-1];s=o[i/2-1],o[i/2]^=f[255&s]^f[s>>8&255]<<8^f[s>>16&255]<<16^f[s>>24&255]<<24;for(var t=i/2+1;t<i;t++)o[t]^=o[t-1]}for(var c,p,t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=o[t],this._Kd[e-c][p]=o[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)s=this._Kd[c][p],this._Kd[c][p]=M[s>>24&255]^k[s>>16&255]^x[s>>8&255]^S[255&s]},T.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=a(e),o=0;o<4;o++)r[o]^=this._Ke[0][o];for(var s=1;s<t;s++){for(var o=0;o<4;o++)n[o]=m[r[o]>>24&255]^g[r[(o+1)%4]>>16&255]^v[r[(o+2)%4]>>8&255]^_[255&r[(o+3)%4]]^this._Ke[s][o];r=n.slice()}for(var l,u=i(16),o=0;o<4;o++)l=this._Ke[t][o],u[4*o]=255&(f[r[o]>>24&255]^l>>24),u[4*o+1]=255&(f[r[(o+1)%4]>>16&255]^l>>16),u[4*o+2]=255&(f[r[(o+2)%4]>>8&255]^l>>8),u[4*o+3]=255&(f[255&r[(o+3)%4]]^l);return u},T.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=a(e),o=0;o<4;o++)r[o]^=this._Kd[0][o];for(var s=1;s<t;s++){for(var o=0;o<4;o++)n[o]=y[r[o]>>24&255]^b[r[(o+3)%4]>>16&255]^w[r[(o+2)%4]>>8&255]^L[255&r[(o+1)%4]]^this._Kd[s][o];r=n.slice()}for(var l,u=i(16),o=0;o<4;o++)l=this._Kd[t][o],u[4*o]=255&(p[r[o]>>24&255]^l>>24),u[4*o+1]=255&(p[r[(o+3)%4]>>16&255]^l>>16),u[4*o+2]=255&(p[r[(o+2)%4]>>8&255]^l>>8),u[4*o+3]=255&(p[255&r[(o+1)%4]]^l);return u};var $=function(e){if(!(this instanceof $))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new T(e)};$.prototype.encrypt=function(e){if(e=r(e),e.length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=i(e.length),n=i(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),n=this._aes.encrypt(n),o(n,t,a);return t},$.prototype.decrypt=function(e){if(e=r(e),e.length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=i(e.length),n=i(16),a=0;a<e.length;a+=16)o(e,n,0,a,a+16),n=this._aes.decrypt(n),o(n,t,a);return t};var D=function(e,t){if(!(this instanceof D))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=i(16);this._lastCipherblock=r(t,!0),this._aes=new T(e)};D.prototype.encrypt=function(e){if(e=r(e),e.length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=i(e.length),n=i(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,a)}return t},D.prototype.decrypt=function(e){if(e=r(e),e.length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=i(e.length),n=i(16),a=0;a<e.length;a+=16){o(e,n,0,a,a+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[a+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,a,a+16)}return t};var C=function(e,t,n){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=i(16);n||(n=1),this.segmentSize=n,this._shiftRegister=r(t,!0),this._aes=new T(e)};C.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=r(e,!0),i=0;i<n.length;i+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[i+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return n},C.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=r(e,!0),i=0;i<n.length;i+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[i+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,i,i+this.segmentSize)}return n};var E=function(e,t){if(!(this instanceof E))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=i(16);this._lastPrecipher=r(t,!0),this._lastPrecipherIndex=16,this._aes=new T(e)};E.prototype.encrypt=function(e){for(var t=r(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},E.prototype.decrypt=E.prototype.encrypt;var A=function(e){if(!(this instanceof A))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=i(16),this.setValue(e)):this.setBytes(e)};A.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},A.prototype.setBytes=function(e){if(e=r(e,!0),16!=e.length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},A.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof A||(t=new A(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new T(e)};P.prototype.encrypt=function(e){for(var t=r(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var Y={AES:T,Counter:A,ModeOfOperation:{ecb:$,cbc:D,cfb:C,ofb:E,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:s,strip:l}},_arrayTest:{coerceArray:r,createArray:i,copyArray:o}};"undefined"!=typeof exports?module.exports=Y:"function"==typeof define&&define.amd?define([],function(){return Y}):(e.aesjs&&(Y._aesjs=e.aesjs),e.aesjs=Y)}(this),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(function(){try{return require("moment")}catch(e){}}()):"function"==typeof define&&define.amd?define(["require"],function(e){return t(function(){try{return e("moment")}catch(e){}}())}):(e=e||self).Chart=t(e.moment)}(this,function(e){"use strict";function t(e){var t=function(){for(var e={},t=Object.keys(Be),n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}(),n=[e];for(t[e].distance=0;n.length;)for(var r=n.pop(),i=Object.keys(Be[r]),o=i.length,a=0;a<o;a++){var s=i[a],l=t[s];-1===l.distance&&(l.distance=t[r].distance+1,l.parent=r,n.unshift(s))}return t}function n(e,t){return function(n){return t(e(n))}}function r(e,t){for(var r=[t[e].parent,e],i=Be[t[e].parent][e],o=t[e].parent;t[o].parent;)r.unshift(t[o].parent),i=n(Be[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}function i(e){if(e){var t=[0,0,0],n=1,r=e.match(/^#([a-fA-F0-9]{3,4})$/i),i="";if(r){i=(r=r[1])[3];for(var o=0;o<t.length;o++)t[o]=parseInt(r[o]+r[o],16);i&&(n=Math.round(parseInt(i+i,16)/255*100)/100)}else if(r=e.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(i=r[2],r=r[1],o=0;o<t.length;o++)t[o]=parseInt(r.slice(2*o,2*o+2),16);i&&(n=Math.round(parseInt(i,16)/255*100)/100)}else if(r=e.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=parseInt(r[o+1]);n=parseFloat(r[4])}else if(r=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<t.length;o++)t[o]=Math.round(2.55*parseFloat(r[o+1]));n=parseFloat(r[4])}else if(r=e.match(/(\w+)/)){if("transparent"==r[1])return[0,0,0,0];if(!(t=ze[r[1]]))return}for(o=0;o<t.length;o++)t[o]=c(t[o],0,255);return n=n||0==n?c(n,0,1):1,t[3]=n,t}}function o(e){if(e){var t=e.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[c(parseInt(t[1]),0,360),c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(n)?1:n,0,1)]}}}function a(e){if(e){var t=e.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(t){var n=parseFloat(t[4]);return[c(parseInt(t[1]),0,360),c(parseFloat(t[2]),0,100),c(parseFloat(t[3]),0,100),c(isNaN(n)?1:n,0,1)]}}}function s(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"rgba("+e[0]+", "+e[1]+", "+e[2]+", "+t+")"}function l(e,t){return"rgba("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%, "+(t||e[3]||1)+")"}function u(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+t+")"}function c(e,t,n){return Math.min(Math.max(t,e),n)}function d(e){var t=e.toString(16).toUpperCase();return t.length<2?"0"+t:t}function h(e,t){var n=e._chartjs;if(n){var r=n.listeners,i=r.indexOf(t);-1!==i&&r.splice(i,1),r.length>0||(St.forEach(function(t){delete e[t]}),delete e._chartjs)}}function f(e,t){var n=t.startAngle,r=t.endAngle,i=t.pixelMargin,o=i/t.outerRadius,a=t.x,s=t.y;e.beginPath(),e.arc(a,s,t.outerRadius,n-o,r+o),t.innerRadius>i?(o=i/t.innerRadius,e.arc(a,s,t.innerRadius-i,r+o,n-o,!0)):e.arc(a,s,i,r+Math.PI/2,n-Math.PI/2),e.closePath(),e.clip()}function p(e,t,n){var r="inner"===t.borderAlign;r?(e.lineWidth=2*t.borderWidth,e.lineJoin="round"):(e.lineWidth=t.borderWidth,e.lineJoin="bevel"),n.fullCircles&&function(e,t,n,r){var i,o=n.endAngle;for(r&&(n.endAngle=n.startAngle+Dt,f(e,n),n.endAngle=o,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=Dt,n.fullCircles--)),e.beginPath(),e.arc(n.x,n.y,n.innerRadius,n.startAngle+Dt,n.startAngle,!0),i=0;i<n.fullCircles;++i)e.stroke();for(e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.startAngle+Dt),i=0;i<n.fullCircles;++i)e.stroke()}(e,t,n,r),r&&f(e,n),e.beginPath(),e.arc(n.x,n.y,t.outerRadius,n.startAngle,n.endAngle),e.arc(n.x,n.y,n.innerRadius,n.endAngle,n.startAngle,!0),e.closePath(),e.stroke()}function m(e){var t=this._view;return!!t&&Math.abs(e-t.x)<t.radius+t.hitRadius}function g(e){return e&&void 0!==e.width}function v(e){var t,n,r,i,o;return g(e)?(o=e.width/2,t=e.x-o,n=e.x+o,r=Math.min(e.y,e.base),i=Math.max(e.y,e.base)):(o=e.height/2,t=Math.min(e.x,e.base),n=Math.max(e.x,e.base),r=e.y-o,i=e.y+o),{left:t,top:r,right:n,bottom:i}}function _(e,t,n){return e===t?n:e===n?t:e}function y(e,t,n){var r,i,o,a,s=e.borderWidth,l=function(e){var t=e.borderSkipped,n={};return t?(e.horizontal?e.base>e.x&&(t=_(t,"left","right")):e.base<e.y&&(t=_(t,"bottom","top")),n[t]=!0,n):n}(e);return pt.isObject(s)?(r=+s.top||0,i=+s.right||0,o=+s.bottom||0,a=+s.left||0):r=i=o=a=+s||0,{t:l.top||r<0?0:r>n?n:r,r:l.right||i<0?0:i>t?t:i,b:l.bottom||o<0?0:o>n?n:o,l:l.left||a<0?0:a>t?t:a}}function b(e,t,n){var r=null===t,i=null===n,o=!(!e||r&&i)&&v(e);return o&&(r||t>=o.left&&t<=o.right)&&(i||n>=o.top&&n<=o.bottom)}function w(e,t,n){var r,i,o=n.barThickness,a=t.stackCount,s=t.pixels[e],l=pt.isNullOrUndef(o)?function(e,t){var n,r,i,o,a=e._length;for(i=1,o=t.length;i<o;++i)a=Math.min(a,Math.abs(t[i]-t[i-1]));for(i=0,o=e.getTicks().length;i<o;++i)r=e.getPixelForTick(i),a=i>0?Math.min(a,Math.abs(r-n)):a,n=r;return a}(t.scale,t.pixels):-1;return pt.isNullOrUndef(o)?(r=l*n.categoryPercentage,i=n.barPercentage):(r=o*a,i=1),{chunk:r/a,ratio:i,start:s-r/2}}function L(e,t){var n=e&&e.options.ticks||{},r=n.reverse,i=void 0===n.min?t:0,o=void 0===n.max?t:0;return{start:r?o:i,end:r?i:o}}function M(e,t,n){var r=n/2,i=L(e,r),o=L(t,r);return{top:o.end,right:i.end,bottom:o.start,left:i.start}}function k(e){var t,n,r,i;return pt.isObject(e)?(t=e.top,n=e.right,r=e.bottom,i=e.left):t=n=r=i=e,{top:t,right:n,bottom:r,left:i}}function x(e,t){return e.native?{x:e.x,y:e.y}:pt.getRelativePosition(e,t)}function S(e,t){var n,r,i,o,a,s,l=e._getSortedVisibleDatasetMetas();for(r=0,o=l.length;r<o;++r)for(i=0,a=(n=l[r].data).length;i<a;++i)(s=n[i])._view.skip||t(s)}function T(e,t){var n=[];return S(e,function(e){e.inRange(t.x,t.y)&&n.push(e)}),n}function $(e,t,n,r){var i=Number.POSITIVE_INFINITY,o=[];return S(e,function(e){if(!n||e.inRange(t.x,t.y)){var a=e.getCenterPoint(),s=r(t,a);s<i?(o=[e],i=s):s===i&&o.push(e)}}),o}function D(e){var t=-1!==e.indexOf("x"),n=-1!==e.indexOf("y");return function(e,r){var i=t?Math.abs(e.x-r.x):0,o=n?Math.abs(e.y-r.y):0;return Math.sqrt(Math.pow(i,2)+Math.pow(o,2))}}function C(e,t,n){var r=x(t,e);n.axis=n.axis||"x";var i=D(n.axis),o=n.intersect?T(e,r):$(e,r,!1,i),a=[];return o.length?(e._getSortedVisibleDatasetMetas().forEach(function(e){var t=e.data[o[0]._index];t&&!t._view.skip&&a.push(t)}),a):[]}function E(e,t){return pt.where(e,function(e){return e.pos===t})}function A(e,t){return e.sort(function(e,n){var r=t?n:e,i=t?e:n;return r.weight===i.weight?r.index-i.index:r.weight-i.weight})}function P(e,t,n,r){return Math.max(e[n],t[n])+Math.max(e[r],t[r])}function Y(e,t,n){var r,i,o=n.box,a=e.maxPadding;if(n.size&&(e[n.pos]-=n.size),n.size=n.horizontal?o.height:o.width,e[n.pos]+=n.size,o.getPadding){var s=o.getPadding();a.top=Math.max(a.top,s.top),a.left=Math.max(a.left,s.left),a.bottom=Math.max(a.bottom,s.bottom),a.right=Math.max(a.right,s.right)}if(r=t.outerWidth-P(a,e,"left","right"),i=t.outerHeight-P(a,e,"top","bottom"),r!==e.w||i!==e.h)return e.w=r,e.h=i,n.horizontal?r!==e.w:i!==e.h}function O(e,t){var n=t.maxPadding;return function(e){var r={left:0,top:0,right:0,bottom:0};return e.forEach(function(e){r[e]=Math.max(t[e],n[e])}),r}(e?["left","right"]:["top","bottom"])}function I(e,t,n){var r,i,o,a,s,l,u=[];for(r=0,i=e.length;r<i;++r)(a=(o=e[r]).box).update(o.width||t.w,o.height||t.h,O(o.horizontal,t)),Y(t,n,o)&&(l=!0,u.length&&(s=!0)),a.fullWidth||u.push(o);return s&&I(u,t,n)||l}function j(e,t,n){var r,i,o,a,s=n.padding,l=t.x,u=t.y;for(r=0,i=e.length;r<i;++r)a=(o=e[r]).box,o.horizontal?(a.left=a.fullWidth?s.left:t.left,a.right=a.fullWidth?n.outerWidth-s.right:t.left+t.w,a.top=u,a.bottom=u+a.height,a.width=a.right-a.left,u=a.bottom):(a.left=l,a.right=l+a.width,a.top=t.top,a.bottom=t.top+t.h,a.height=a.bottom-a.top,l=a.right);t.x=l,t.y=u}function H(e,t){var n=pt.getStyle(e,t),r=n&&n.match(/^(\d+)(\.\d+)?px$/);return r?Number(r[1]):void 0}function N(e,t,n){e.addEventListener(t,n,kn)}function B(e,t,n){e.removeEventListener(t,n,kn)}function R(e,t,n,r,i){return{type:e,chart:t,native:i||null,x:void 0!==n?n:null,y:void 0!==r?r:null}}function F(e){var t=document.createElement("div");return t.className=e||"",t}function z(e,t,n){var r,i,o,a,s=e[_n]||(e[_n]={}),l=s.resizer=function(e){var t=F(yn),n=F(yn+"-expand"),r=F(yn+"-shrink");n.appendChild(F()),r.appendChild(F()),t.appendChild(n),t.appendChild(r),t._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var i=function(){t._reset(),e()};return N(n,"scroll",i.bind(n,"expand")),N(r,"scroll",i.bind(r,"shrink")),t}((r=function(){if(s.resizer){var r=n.options.maintainAspectRatio&&e.parentNode,i=r?r.clientWidth:0;t(R("resize",n)),r&&r.clientWidth<i&&n.canvas&&t(R("resize",n))}},o=!1,a=[],function(){a=Array.prototype.slice.call(arguments),i=i||this,o||(o=!0,pt.requestAnimFrame.call(window,function(){o=!1,r.apply(i,a)}))}));!function(e,t){var n=e[_n]||(e[_n]={}),r=n.renderProxy=function(e){e.animationName===wn&&t()};pt.each(Ln,function(t){N(e,t,r)}),n.reflow=!!e.offsetParent,e.classList.add(bn)}(e,function(){if(s.resizer){var t=e.parentNode;t&&t!==l.parentNode&&t.insertBefore(l,t.firstChild),l._reset()}})}function V(e){var t=e[_n]||{},n=t.resizer;delete t.resizer,function(e){var t=e[_n]||{},n=t.renderProxy;n&&(pt.each(Ln,function(t){B(e,t,n)}),delete t.renderProxy),e.classList.remove(bn)}(e),n&&n.parentNode&&n.parentNode.removeChild(n)}function U(e,t){return t&&(pt.isArray(t)?Array.prototype.push.apply(e,t):e.push(t)),e}function W(e){return("string"==typeof e||e instanceof String)&&e.indexOf("\n")>-1?e.split("\n"):e}function q(e){var t=ut.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:Cn(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:Cn(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:Cn(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:Cn(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:Cn(e.titleFontStyle,t.defaultFontStyle),titleFontSize:Cn(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:Cn(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:Cn(e.footerFontStyle,t.defaultFontStyle),footerFontSize:Cn(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function G(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function Z(e){return U([],W(e))}function J(){return pt.merge({},[].slice.call(arguments),{merger:function(e,t,n,r){if("xAxes"===e||"yAxes"===e){var i,o,a,s=n[e].length;for(t[e]||(t[e]=[]),i=0;i<s;++i)a=n[e][i],o=In(a.type,"xAxes"===e?"category":"linear"),i>=t[e].length&&t[e].push({}),!t[e][i].type||a.type&&a.type!==t[e][i].type?pt.merge(t[e][i],[Dn.getScaleDefaults(o),a]):pt.merge(t[e][i],a)}else pt._merger(e,t,n,r)}})}function X(){return pt.merge({},[].slice.call(arguments),{merger:function(e,t,n,r){var i=t[e]||{},o=n[e];"scales"===e?t[e]=J(i,o):"scale"===e?t[e]=pt.merge(i,[Dn.getScaleDefaults(o.type),o]):pt._merger(e,t,n,r)}})}function K(e){var t=e.options;pt.each(e.scales,function(t){gn.removeBox(e,t)}),t=X(ut.global,ut[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function Q(e,t,n){var r,i=function(e){return e.id===r};do{r=t+n++}while(pt.findIndex(e,i)>=0);return r}function ee(e){return"top"===e||"bottom"===e}function te(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}function ne(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function re(e){this.options=e||{}}function ie(e,t,n){var r,i=e.getTicks().length,o=Math.min(t,i-1),a=e.getPixelForTick(o),s=e._startPixel,l=e._endPixel;if(!(n&&(r=1===i?Math.max(a-s,l-a):0===t?(e.getPixelForTick(1)-a)/2:(a-e.getPixelForTick(o-1))/2,(a+=o<t?r:-r)<s-1e-6||a>l+1e-6)))return a}function oe(e,t,n,r){function i(e){return{width:y[e]||0,height:b[e]||0,offset:w[e]||0}}var o,a,s,l,u,c,d,h,f,p,m,g,v,_=n.length,y=[],b=[],w=[];for(o=0;o<_;++o){if(l=n[o].label,u=n[o].major?t.major:t.minor,e.font=c=u.string,d=r[c]=r[c]||{data:{},gc:[]},h=u.lineHeight,f=p=0,Fn(l)||Rn(l)){if(Rn(l))for(a=0,s=l.length;a<s;++a)m=l[a],Fn(m)||Rn(m)||(f=pt.measureText(e,d.data,d.gc,f,m),p+=h)}else f=pt.measureText(e,d.data,d.gc,f,l),p=h;y.push(f),b.push(p),w.push(h/2)}return function(e,t){pt.each(e,function(e){var n,r=e.gc,i=r.length/2;if(i>t){for(n=0;n<i;++n)delete e.data[r[n]];r.splice(0,i)}})}(r,_),g=y.indexOf(Math.max.apply(null,y)),v=b.indexOf(Math.max.apply(null,b)),{first:i(0),last:i(_-1),widest:i(g),highest:i(v)}}function ae(e){return e.drawTicks?e.tickMarkLength:0}function se(e){var t,n;return e.display?(t=pt.options._parseFont(e),n=pt.options.toPadding(e.padding),t.lineHeight+n.height):0}function le(e,t){return pt.extend(pt.options._parseFont({fontFamily:zn(t.fontFamily,e.fontFamily),fontSize:zn(t.fontSize,e.fontSize),fontStyle:zn(t.fontStyle,e.fontStyle),lineHeight:zn(t.lineHeight,e.lineHeight)}),{color:pt.options.resolve([t.fontColor,e.fontColor,ut.global.defaultFontColor])})}function ue(e){var t=le(e,e.minor);return{minor:t,major:e.major.enabled?le(e,e.major):t}}function ce(e){var t,n,r,i=[];for(n=0,r=e.length;n<r;++n)void 0!==(t=e[n])._index&&i.push(t);return i}function de(e,t,n,r){var i,o,a,s,l=zn(n,0),u=Math.min(zn(r,e.length),e.length),c=0;for(t=Math.ceil(t),r&&(t=(i=r-n)/Math.floor(i/t)),s=l;s<0;)c++,s=Math.round(l+c*t);for(o=Math.max(l,0);o<u;o++)a=e[o],o===s?(a._index=o,c++,s=Math.round(l+c*t)):delete a.label}function he(e,t,n,r){var i,o,a=e.options,s=function(e,t,n){var r=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[r]&&(e[r]={pos:[],neg:[]}),e[r]}(t,a.stacked,n),l=s.pos,u=s.neg,c=r.length;for(i=0;i<c;++i)o=e._parseValue(r[i]),isNaN(o.min)||isNaN(o.max)||n.data[i].hidden||(l[i]=l[i]||0,u[i]=u[i]||0,a.relativePoints?l[i]=100:o.min<0||o.max<0?u[i]+=o.min:l[i]+=o.max)}function fe(e,t,n){var r,i,o=n.length;for(r=0;r<o;++r)i=e._parseValue(n[r]),isNaN(i.min)||isNaN(i.max)||t.data[r].hidden||(e.min=Math.min(e.min,i.min),e.max=Math.max(e.max,i.max))}function pe(e,t){return pt.isFinite(e)&&e>=0?e:t}function me(e){var t=e.ticks;return t.display&&e.display?sr(t.fontSize,ut.global.defaultFontSize)+2*t.backdropPaddingY:0}function ge(e,t,n,r,i){return e===r||e===i?{start:t-n/2,end:t+n/2}:e<r||e>i?{start:t-n,end:t}:{start:t,end:t+n}}function ve(e){return 0===e||180===e?"center":e<180?"left":"right"}function _e(e,t,n,r){var i,o,a=n.y+r/2;if(pt.isArray(t))for(i=0,o=t.length;i<o;++i)e.fillText(t[i],n.x,a),a+=r;else e.fillText(t,n.x,a)}function ye(e,t,n){90===e||270===e?n.y-=t.h/2:(e>270||e<90)&&(n.y-=t.h)}function be(e){return pt.isNumber(e)?e:0}function we(e,t){return e-t}function Le(e){return pt.valueOrDefault(e.time.min,e.ticks.min)}function Me(e){return pt.valueOrDefault(e.time.max,e.ticks.max)}function ke(e,t,n,r){var i=function(e,t,n){for(var r,i,o,a=0,s=e.length-1;a>=0&&a<=s;){if(i=e[(r=a+s>>1)-1]||null,o=e[r],!i)return{lo:null,hi:o};if(o[t]<n)a=r+1;else{if(!(i[t]>n))return{lo:i,hi:o};s=r-1}}return{lo:o,hi:null}}(e,t,n),o=i.lo?i.hi?i.lo:e[e.length-2]:e[0],a=i.lo?i.hi?i.hi:e[e.length-1]:e[1],s=a[t]-o[t],l=s?(n-o[t])/s:0,u=(a[r]-o[r])*l;return o[r]+u}function xe(e,t){var n=e._adapter,r=e.options.time,i=r.parser,o=i||r.format,a=t;return"function"==typeof i&&(a=i(a)),pt.isFinite(a)||(a="string"==typeof o?n.parse(a,o):n.parse(a)),null!==a?+a:(i||"function"!=typeof o||(a=o(t),pt.isFinite(a)||(a=n.parse(a))),a)}function Se(e,t){if(pt.isNullOrUndef(t))return null;var n=e.options.time,r=xe(e,e.getRightValue(t));return null===r?r:(n.round&&(r=+e._adapter.startOf(r,n.round)),r)}function Te(e,t,n,r){var i,o,a,s=yr.length;for(i=yr.indexOf(e);i<s-1;++i)if(a=(o=_r[yr[i]]).steps?o.steps:vr,o.common&&Math.ceil((n-t)/(a*o.size))<=r)return yr[i];return yr[s-1]}function $e(e,t,n){var r,i,o=[],a={},s=t.length;for(r=0;r<s;++r)a[i=t[r]]=r,o.push({value:i,major:!1});return 0!==s&&n?function(e,t,n,r){var i,o,a=e._adapter,s=+a.startOf(t[0].value,r),l=t[t.length-1].value;for(i=s;i<=l;i=+a.add(i,1,r))(o=n[i])>=0&&(t[o].major=!0);return t}(e,o,a,n):o}function De(e,t,n){var r,i=e._model||{},o=i.fill;if(void 0===o&&(o=!!i.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(r=parseFloat(o,10),isFinite(r)&&Math.floor(r)===r)return"-"!==o[0]&&"+"!==o[0]||(r=t+r),!(r===t||r<0||r>=n)&&r;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function Ce(e){return(e.el._scale||{}).getPointPositionForValue?function(e){var t,n,r,i,o,a=e.el._scale,s=a.options,l=a.chart.data.labels.length,u=e.fill,c=[];if(!l)return null;for(t=s.ticks.reverse?a.max:a.min,n=s.ticks.reverse?a.min:a.max,r=a.getPointPositionForValue(0,t),i=0;i<l;++i)o="start"===u||"end"===u?a.getPointPositionForValue(i,"start"===u?t:n):a.getBasePosition(i),s.gridLines.circular&&(o.cx=r.x,o.cy=r.y,o.angle=a.getIndexAngle(i)-Math.PI/2),c.push(o);return c}(e):function(e){var t,n=e.el._model||{},r=e.el._scale||{},i=e.fill,o=null;if(isFinite(i))return null;if("start"===i?o=void 0===n.scaleBottom?r.bottom:n.scaleBottom:"end"===i?o=void 0===n.scaleTop?r.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:r.getBasePixel&&(o=r.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(pt.isFinite(o))return{x:(t=r.isHorizontal())?o:null,y:t?null:o}}return null}(e)}function Ee(e,t,n){var r,i=e[t].fill,o=[t];if(!n)return i;for(;!1!==i&&-1===o.indexOf(i);){if(!isFinite(i))return i;if(!(r=e[i]))return!1;if(r.visible)return i;o.push(i),i=r.fill}return!1}function Ae(e){var t=e.fill,n="dataset";return!1===t?null:(isFinite(t)||(n="boundary"),kr[n](e))}function Pe(e){return e&&!e.skip}function Ye(e,t,n,r,i){var o,a,s,l;if(r&&i){for(e.moveTo(t[0].x,t[0].y),o=1;o<r;++o)pt.canvas.lineTo(e,t[o-1],t[o]);if(void 0===n[0].angle)for(e.lineTo(n[i-1].x,n[i-1].y),o=i-1;o>0;--o)pt.canvas.lineTo(e,n[o],n[o-1],!0);else for(a=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-a,2)+Math.pow(n[0].y-s,2)),o=i-1;o>0;--o)e.arc(a,s,l,n[o].angle,n[o-1].angle,!0)}}function Oe(e,t,n,r,i,o){var a,s,l,u,c,d,h,f,p=t.length,m=r.spanGaps,g=[],v=[],_=0,y=0;for(e.beginPath(),a=0,s=p;a<s;++a)c=n(u=t[l=a%p]._view,l,r),d=Pe(u),h=Pe(c),o&&void 0===f&&d&&(s=p+(f=a+1)),d&&h?(_=g.push(u),y=v.push(c)):_&&y&&(m?(d&&g.push(u),h&&v.push(c)):(Ye(e,g,v,_,y),_=y=0,g=[],v=[]));Ye(e,g,v,_,y),e.closePath(),e.fillStyle=i,e.fill()}function Ie(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}function je(e,t){var n=new Dr({ctx:e.ctx,options:t,chart:e});gn.configure(e,n,t),gn.addBox(e,n),e.legend=n}function He(e,t){var n=new Ar({ctx:e.ctx,options:t,chart:e});gn.configure(e,n,t),gn.addBox(e,n),e.titleBlock=n}e=e&&e.hasOwnProperty("default")?e.default:e;var Ne={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Be=function(e,t){return function(e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[t[r]]=r);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var o in i)if(i.hasOwnProperty(o)){if(!("channels"in i[o]))throw new Error("missing channels property: "+o);if(!("labels"in i[o]))throw new Error("missing channel labels property: "+o);if(i[o].labels.length!==i[o].channels)throw new Error("channel and label counts mismatch: "+o);var a=i[o].channels,s=i[o].labels;delete i[o].channels,delete i[o].labels,Object.defineProperty(i[o],"channels",{value:a}),Object.defineProperty(i[o],"labels",{value:s})}i.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,a=Math.min(r,i,o),s=Math.max(r,i,o),l=s-a;return s===a?t=0:r===s?t=(i-o)/l:i===s?t=2+(o-r)/l:o===s&&(t=4+(r-i)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(a+s)/2,[t,100*(s===a?0:n<=.5?l/(s+a):l/(2-s-a)),100*n]},i.rgb.hsv=function(e){var t,n,r,i,o,a=e[0]/255,s=e[1]/255,l=e[2]/255,u=Math.max(a,s,l),c=u-Math.min(a,s,l),d=function(e){return(u-e)/6/c+.5};return 0===c?i=o=0:(o=c/u,t=d(a),n=d(s),r=d(l),a===u?i=r-n:s===u?i=1/3+t-r:l===u&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*o,100*u]},i.rgb.hwb=function(e){var t=e[0],n=e[1],r=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,r))*100,100*(r=1-1/255*Math.max(t,Math.max(n,r)))]},i.rgb.cmyk=function(e){
-var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var r=n[e];if(r)return r;var i,o,a,s=1/0;for(var l in t)if(t.hasOwnProperty(l)){var u=t[l],c=(o=e,a=u,Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2));c<s&&(s=c,i=l)}return i},i.keyword.rgb=function(e){return t[e]},i.rgb.xyz=function(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255;return[100*(.4124*(t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),n=t[0],r=t[1],o=t[2];return r/=100,o/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116))]},i.hsl.rgb=function(e){var t,n,r,i,o,a=e[0]/360,s=e[1]/100,l=e[2]/100;if(0===s)return[o=255*l,o,o];t=2*l-(n=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var u=0;u<3;u++)(r=a+1/3*-(u-1))<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[u]=255*o;return i},i.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=o<=1?o:2-o,[t,100*(0===r?2*i/(o+i):2*n/(r+n)),(r+n)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),a=255*r*(1-n),s=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,l,a];case 1:return[s,r,a];case 2:return[a,r,l];case 3:return[a,s,r];case 4:return[l,a,r];case 5:return[r,a,s]}},i.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return r=(2-o)*a,n=o*s,[i,100*(n=(n/=(t=(2-o)*s)<=1?t:2-t)||0),100*(r/=2)]},i.hwb.rgb=function(e){var t,n,r,i,o,a,s,l=e[0]/360,u=e[1]/100,c=e[2]/100,d=u+c;switch(d>1&&(u/=d,c/=d),r=6*l-(t=Math.floor(6*l)),0!=(1&t)&&(r=1-r),i=u+r*((n=1-c)-u),t){default:case 6:case 0:o=n,a=i,s=u;break;case 1:o=i,a=n,s=u;break;case 2:o=u,a=n,s=i;break;case 3:o=u,a=i,s=n;break;case 4:o=i,a=u,s=n;break;case 5:o=n,a=u,s=i}return[255*o,255*a,255*s]},i.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},i.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,a=e[2]/100;return n=-.9689*i+1.8758*o+.0415*a,r=.0557*i+-.204*o+1.057*a,t=(t=3.2406*i+-1.5372*o+-.4986*a)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},i.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var o=Math.pow(n,3),a=Math.pow(t,3),s=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,r=s>.008856?s:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},i.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},i.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],o=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(o=Math.round(o/50)))return 30;var a=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===o&&(a+=60),a},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map(function(e){return e+e}).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},i.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,o=Math.max(Math.max(n,r),i),a=Math.min(Math.min(n,r),i),s=o-a;return t=s<=0?0:o===n?(r-i)/s%6:o===r?2+(i-n)/s:4+(n-r)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?a/(1-s):0)]},i.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},i.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},i.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,o=[0,0,0],a=t%1*6,s=a%1,l=1-s;switch(Math.floor(a)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=l,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=l,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=l}return i=(1-n)*r,[255*(n*o[0]+i),255*(n*o[1]+i),255*(n*o[2]+i)]},i.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},i.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},i.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},i.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}(t={exports:{}},t.exports),t.exports}();Be.rgb,Be.hsl,Be.hsv,Be.hwb,Be.cmyk,Be.xyz,Be.lab,Be.lch,Be.hex,Be.keyword,Be.ansi16,Be.ansi256,Be.hcg,Be.apple,Be.gray;var Re={};Object.keys(Be).forEach(function(e){Re[e]={},Object.defineProperty(Re[e],"channels",{value:Be[e].channels}),Object.defineProperty(Re[e],"labels",{value:Be[e].labels});var n=function(e){for(var n=t(e),i={},o=Object.keys(n),a=o.length,s=0;s<a;s++){var l=o[s];null!==n[l].parent&&(i[l]=r(l,n))}return i}(e);Object.keys(n).forEach(function(t){var r=n[t];Re[e][t]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i<r;i++)n[i]=Math.round(n[i]);return n};return"conversion"in e&&(t.conversion=e.conversion),t}(r),Re[e][t].raw=function(e){var t=function(t){return null==t?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)})});var Fe=Re,ze={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Ve={getRgba:i,getHsla:o,getRgb:function(e){var t=i(e);return t&&t.slice(0,3)},getHsl:function(e){var t=o(e);return t&&t.slice(0,3)},getHwb:a,getAlpha:function(e){var t=i(e);return t?t[3]:(t=o(e))?t[3]:(t=a(e))?t[3]:void 0},hexString:function(e,t){return t=void 0!==t&&3===e.length?t:e[3],"#"+d(e[0])+d(e[1])+d(e[2])+(t>=0&&t<1?d(Math.round(255*t)):"")},rgbString:function(e,t){return t<1||e[3]&&e[3]<1?s(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:s,percentString:function(e,t){return t<1||e[3]&&e[3]<1?l(e,t):"rgb("+Math.round(e[0]/255*100)+"%, "+Math.round(e[1]/255*100)+"%, "+Math.round(e[2]/255*100)+"%)"},percentaString:l,hslString:function(e,t){return t<1||e[3]&&e[3]<1?u(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:u,hwbString:function(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"},keyword:function(e){return Ue[e.slice(0,3)]}},Ue={};for(var We in ze)Ue[ze[We]]=We;var qe=function(e){return e instanceof qe?e:this instanceof qe?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof e?(t=Ve.getRgba(e))?this.setValues("rgb",t):(t=Ve.getHsla(e))?this.setValues("hsl",t):(t=Ve.getHwb(e))&&this.setValues("hwb",t):"object"==typeof e&&(void 0!==(t=e).r||void 0!==t.red?this.setValues("rgb",t):void 0!==t.l||void 0!==t.lightness?this.setValues("hsl",t):void 0!==t.v||void 0!==t.value?this.setValues("hsv",t):void 0!==t.w||void 0!==t.whiteness?this.setValues("hwb",t):void 0===t.c&&void 0===t.cyan||this.setValues("cmyk",t)))):new qe(e);var t};qe.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var e=this.values;return 1!==e.alpha?e.hwb.concat([e.alpha]):e.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var e=this.values;return e.rgb.concat([e.alpha])},hslaArray:function(){var e=this.values;return e.hsl.concat([e.alpha])},alpha:function(e){return void 0===e?this.values.alpha:(this.setValues("alpha",e),this)},red:function(e){return this.setChannel("rgb",0,e)},green:function(e){return this.setChannel("rgb",1,e)},blue:function(e){return this.setChannel("rgb",2,e)},hue:function(e){return e&&(e=(e%=360)<0?360+e:e),this.setChannel("hsl",0,e)},saturation:function(e){return this.setChannel("hsl",1,e)},lightness:function(e){return this.setChannel("hsl",2,e)},saturationv:function(e){return this.setChannel("hsv",1,e)},whiteness:function(e){return this.setChannel("hwb",1,e)},blackness:function(e){return this.setChannel("hwb",2,e)},value:function(e){return this.setChannel("hsv",2,e)},cyan:function(e){return this.setChannel("cmyk",0,e)},magenta:function(e){return this.setChannel("cmyk",1,e)},yellow:function(e){return this.setChannel("cmyk",2,e)},black:function(e){return this.setChannel("cmyk",3,e)},hexString:function(){return Ve.hexString(this.values.rgb)},rgbString:function(){return Ve.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return Ve.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return Ve.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return Ve.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return Ve.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return Ve.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return Ve.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var e=this.values.rgb;return e[0]<<16|e[1]<<8|e[2]},luminosity:function(){for(var e=this.values.rgb,t=[],n=0;n<e.length;n++){var r=e[n]/255;t[n]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast:function(e){var t=this.luminosity(),n=e.luminosity();return t>n?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=e,r=void 0===t?.5:t,i=2*r-1,o=this.alpha()-n.alpha(),a=((i*o==-1?i:(i+o)/(1+i*o))+1)/2,s=1-a;return this.rgb(a*this.red()+s*n.red(),a*this.green()+s*n.green(),a*this.blue()+s*n.blue()).alpha(this.alpha()*r+n.alpha()*(1-r))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new qe,r=this.values,i=n.values;for(var o in r)r.hasOwnProperty(o)&&(e=r[o],"[object Array]"===(t={}.toString.call(e))?i[o]=e.slice(0):"[object Number]"===t?i[o]=e:console.error("unexpected color value:",e));return n}},qe.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},qe.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},qe.prototype.getValues=function(e){for(var t=this.values,n={},r=0;r<e.length;r++)n[e.charAt(r)]=t[e][r];return 1!==t.alpha&&(n.a=t.alpha),n},qe.prototype.setValues=function(e,t){var n,r,i=this.values,o=this.spaces,a=this.maxes,s=1;if(this.valid=!0,"alpha"===e)s=t;else if(t.length)i[e]=t.slice(0,e.length),s=t[e.length];else if(void 0!==t[e.charAt(0)]){for(n=0;n<e.length;n++)i[e][n]=t[e.charAt(n)];s=t.a}else if(void 0!==t[o[e][0]]){var l=o[e];for(n=0;n<e.length;n++)i[e][n]=t[l[n]];s=t.alpha}if(i.alpha=Math.max(0,Math.min(1,void 0===s?i.alpha:s)),"alpha"===e)return!1;for(n=0;n<e.length;n++)r=Math.max(0,Math.min(a[e][n],i[e][n])),i[e][n]=Math.round(r);for(var u in o)u!==e&&(i[u]=Fe[e][u](i[e]));return!0},qe.prototype.setSpace=function(e,t){var n=t[0];return void 0===n?this.getValues(e):("number"==typeof n&&(n=Array.prototype.slice.call(t)),this.setValues(e,n),this)},qe.prototype.setChannel=function(e,t,n){var r=this.values[e];return void 0===n?r[t]:n===r[t]?this:(r[t]=n,this.setValues(e,r),this)},"undefined"!=typeof window&&(window.Color=qe);var Ge,Ze=qe,Je={noop:function(){},uid:(Ge=0,function(){return Ge++}),isNullOrUndef:function(e){return null==e},isArray:function(e){if(Array.isArray&&Array.isArray(e))return!0;var t=Object.prototype.toString.call(e);return"[object"===t.substr(0,7)&&"Array]"===t.substr(-6)},isObject:function(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},isFinite:function(e){return("number"==typeof e||e instanceof Number)&&isFinite(e)},valueOrDefault:function(e,t){return void 0===e?t:e},valueAtIndexOrDefault:function(e,t,n){return Je.valueOrDefault(Je.isArray(e)?e[t]:e,n)},callback:function(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)},each:function(e,t,n,r){var i,o,a;if(Je.isArray(e))if(o=e.length,r)for(i=o-1;i>=0;i--)t.call(n,e[i],i);else for(i=0;i<o;i++)t.call(n,e[i],i);else if(Je.isObject(e))for(o=(a=Object.keys(e)).length,i=0;i<o;i++)t.call(n,e[a[i]],a[i])},arrayEquals:function(e,t){var n,r,i,o;if(!e||!t||e.length!==t.length)return!1;for(n=0,r=e.length;n<r;++n)if(i=e[n],o=t[n],i instanceof Array&&o instanceof Array){if(!Je.arrayEquals(i,o))return!1}else if(i!==o)return!1;return!0},clone:function(e){if(Je.isArray(e))return e.map(Je.clone);if(Je.isObject(e)){for(var t={},n=Object.keys(e),r=n.length,i=0;i<r;++i)t[n[i]]=Je.clone(e[n[i]]);return t}return e},_merger:function(e,t,n,r){var i=t[e],o=n[e];Je.isObject(i)&&Je.isObject(o)?Je.merge(i,o,r):t[e]=Je.clone(o)},_mergerIf:function(e,t,n){var r=t[e],i=n[e];Je.isObject(r)&&Je.isObject(i)?Je.mergeIf(r,i):t.hasOwnProperty(e)||(t[e]=Je.clone(i))},merge:function(e,t,n){var r,i,o,a,s,l=Je.isArray(t)?t:[t],u=l.length;if(!Je.isObject(e))return e;for(r=(n=n||{}).merger||Je._merger,i=0;i<u;++i)if(t=l[i],Je.isObject(t))for(s=0,a=(o=Object.keys(t)).length;s<a;++s)r(o[s],e,t,n);return e},mergeIf:function(e,t){return Je.merge(e,t,{merger:Je._mergerIf})},extend:Object.assign||function(e){return Je.merge(e,[].slice.call(arguments,1),{merger:function(e,t,n){t[e]=n[e]}})},inherits:function(e){var t=this,n=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return t.apply(this,arguments)},r=function(){this.constructor=n};return r.prototype=t.prototype,n.prototype=new r,n.extend=Je.inherits,e&&Je.extend(n.prototype,e),n.__super__=t.prototype,n},_deprecated:function(e,t,n,r){void 0!==t&&console.warn(e+': "'+n+'" is deprecated. Please use "'+r+'" instead')}},Xe=Je;Je.callCallback=Je.callback,Je.indexOf=function(e,t,n){return Array.prototype.indexOf.call(e,t,n)},Je.getValueOrDefault=Je.valueOrDefault,Je.getValueAtIndexOrDefault=Je.valueAtIndexOrDefault;var Ke={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return-e*(e-2)},easeInOutQuad:function(e){return(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1)},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return(e-=1)*e*e+1},easeInOutCubic:function(e){return(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return-((e-=1)*e*e*e-1)},easeInOutQuart:function(e){return(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return(e-=1)*e*e*e*e+1},easeInOutQuint:function(e){return(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},easeInSine:function(e){return 1-Math.cos(e*(Math.PI/2))},easeOutSine:function(e){return Math.sin(e*(Math.PI/2))},easeInOutSine:function(e){return-.5*(Math.cos(Math.PI*e)-1)},easeInExpo:function(e){return 0===e?0:Math.pow(2,10*(e-1))},easeOutExpo:function(e){return 1===e?1:1-Math.pow(2,-10*e)},easeInOutExpo:function(e){return 0===e?0:1===e?1:(e/=.5)<1?.5*Math.pow(2,10*(e-1)):.5*(2-Math.pow(2,-10*--e))},easeInCirc:function(e){return e>=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),-r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:1===e?1:(n||(n=.3),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,r=1;return 0===e?0:2==(e/=.5)?1:(n||(n=.45),r<1?(r=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/r),e<1?r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-Ke.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*Ke.easeInBounce(2*e):.5*Ke.easeOutBounce(2*e-1)+.5}},Qe={effects:Ke};Xe.easingEffects=Ke;var et=Math.PI,tt=et/180,nt=2*et,rt=et/2,it=et/4,ot=2*et/3,at={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,r,i,o){if(o){var a=Math.min(o,i/2,r/2),s=t+a,l=n+a,u=t+r-a,c=n+i-a;e.moveTo(t,l),s<u&&l<c?(e.arc(s,l,a,-et,-rt),e.arc(u,l,a,-rt,0),e.arc(u,c,a,0,rt),e.arc(s,c,a,rt,et)):s<u?(e.moveTo(s,n),e.arc(u,l,a,-rt,rt),e.arc(s,l,a,rt,et+rt)):l<c?(e.arc(s,l,a,-et,0),e.arc(s,c,a,0,et)):e.arc(s,l,a,-et,et),e.closePath(),e.moveTo(t,n)}else e.rect(t,n,r,i)},drawPoint:function(e,t,n,r,i,o){var a,s,l,u,c,d=(o||0)*tt;if(t&&"object"==typeof t&&("[object HTMLImageElement]"===(a=t.toString())||"[object HTMLCanvasElement]"===a))return e.save(),e.translate(r,i),e.rotate(d),e.drawImage(t,-t.width/2,-t.height/2,t.width,t.height),void e.restore();if(!(isNaN(n)||n<=0)){switch(e.beginPath(),t){default:e.arc(r,i,n,0,nt),e.closePath();break;case"triangle":e.moveTo(r+Math.sin(d)*n,i-Math.cos(d)*n),d+=ot,e.lineTo(r+Math.sin(d)*n,i-Math.cos(d)*n),d+=ot,e.lineTo(r+Math.sin(d)*n,i-Math.cos(d)*n),e.closePath();break;case"rectRounded":u=n-(c=.516*n),s=Math.cos(d+it)*u,l=Math.sin(d+it)*u,e.arc(r-s,i-l,c,d-et,d-rt),e.arc(r+l,i-s,c,d-rt,d),e.arc(r+s,i+l,c,d,d+rt),e.arc(r-l,i+s,c,d+rt,d+et),e.closePath();break;case"rect":if(!o){u=Math.SQRT1_2*n,e.rect(r-u,i-u,2*u,2*u);break}d+=it;case"rectRot":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(r-s,i-l),e.lineTo(r+l,i-s),e.lineTo(r+s,i+l),e.lineTo(r-l,i+s),e.closePath();break;case"crossRot":d+=it;case"cross":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(r-s,i-l),e.lineTo(r+s,i+l),e.moveTo(r+l,i-s),e.lineTo(r-l,i+s);break;case"star":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(r-s,i-l),e.lineTo(r+s,i+l),e.moveTo(r+l,i-s),e.lineTo(r-l,i+s),d+=it,s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(r-s,i-l),e.lineTo(r+s,i+l),e.moveTo(r+l,i-s),e.lineTo(r-l,i+s);break;case"line":s=Math.cos(d)*n,l=Math.sin(d)*n,e.moveTo(r-s,i-l),e.lineTo(r+s,i+l);break;case"dash":e.moveTo(r,i),e.lineTo(r+Math.cos(d)*n,i+Math.sin(d)*n)}e.fill(),e.stroke()}},_isPointInArea:function(e,t){return e.x>t.left-1e-6&&e.x<t.right+1e-6&&e.y>t.top-1e-6&&e.y<t.bottom+1e-6},clipArea:function(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()},unclipArea:function(e){e.restore()},lineTo:function(e,t,n,r){var i=n.steppedLine;if(i){if("middle"===i){var o=(t.x+n.x)/2;e.lineTo(o,r?n.y:t.y),e.lineTo(o,r?t.y:n.y)}else"after"===i&&!r||"after"!==i&&r?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y);e.lineTo(n.x,n.y)}else n.tension?e.bezierCurveTo(r?t.controlPointPreviousX:t.controlPointNextX,r?t.controlPointPreviousY:t.controlPointNextY,r?n.controlPointNextX:n.controlPointPreviousX,r?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):e.lineTo(n.x,n.y)}},st=at;Xe.clear=at.clear,Xe.drawRoundedRectangle=function(e){e.beginPath(),at.roundedRect.apply(at,arguments)};var lt={_set:function(e,t){return Xe.merge(this[e]||(this[e]={}),t)}};lt._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var ut=lt,ct=Xe.valueOrDefault,dt={toLineHeight:function(e,t){var n=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*t;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100}return t*e},toPadding:function(e){var t,n,r,i;return Xe.isObject(e)?(t=+e.top||0,n=+e.right||0,r=+e.bottom||0,i=+e.left||0):t=n=r=i=+e||0,{top:t,right:n,bottom:r,left:i,height:t+r,width:i+n}},_parseFont:function(e){var t=ut.global,n=ct(e.fontSize,t.defaultFontSize),r={family:ct(e.fontFamily,t.defaultFontFamily),lineHeight:Xe.options.toLineHeight(ct(e.lineHeight,t.defaultLineHeight),n),size:n,style:ct(e.fontStyle,t.defaultFontStyle),weight:null,string:""};return r.string=function(e){return!e||Xe.isNullOrUndef(e.size)||Xe.isNullOrUndef(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(r),r},resolve:function(e,t,n,r){var i,o,a,s=!0;for(i=0,o=e.length;i<o;++i)if(void 0!==(a=e[i])&&(void 0!==t&&"function"==typeof a&&(a=a(t),s=!1),void 0!==n&&Xe.isArray(a)&&(a=a[n],s=!1),void 0!==a))return r&&!s&&(r.cacheable=!1),a}},ht={_factorize:function(e){var t,n=[],r=Math.sqrt(e);for(t=1;t<r;t++)e%t==0&&(n.push(t),n.push(e/t));return r===(0|r)&&n.push(r),n.sort(function(e,t){return e-t}).pop(),n},log10:Math.log10||function(e){var t=Math.log(e)*Math.LOG10E,n=Math.round(t);return e===Math.pow(10,n)?n:t}},ft=ht;Xe.log10=ht.log10;var pt=Xe,mt=Qe,gt=st,vt=dt,_t=ft,yt={getRtlAdapter:function(e,t,n){return e?function(e,t){return{x:function(n){return e+e+t-n},setWidth:function(e){t=e},textAlign:function(e){return"center"===e?e:"right"===e?"left":"right"},xPlus:function(e,t){return e-t},leftForLtr:function(e,t){return e-t}}}(t,n):{x:function(e){return e},setWidth:function(e){},textAlign:function(e){return e},xPlus:function(e,t){return e+t},leftForLtr:function(e,t){return e}}},overrideTextDirection:function(e,t){var n,r;"ltr"!==t&&"rtl"!==t||(r=[(n=e.canvas.style).getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",t,"important"),e.prevTextDirection=r)},restoreTextDirection:function(e){var t=e.prevTextDirection;void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}};pt.easing=mt,pt.canvas=gt,pt.options=vt,pt.math=_t,pt.rtl=yt;var bt=function(e){pt.extend(this,e),this.initialize.apply(this,arguments)};pt.extend(bt.prototype,{_type:void 0,initialize:function(){this.hidden=!1},pivot:function(){var e=this;return e._view||(e._view=pt.extend({},e._model)),e._start={},e},transition:function(e){var t=this,n=t._model,r=t._start,i=t._view;return n&&1!==e?(i||(i=t._view={}),r||(r=t._start={}),function(e,t,n,r){var i,o,a,s,l,u,c,d,h,f=Object.keys(n);for(i=0,o=f.length;i<o;++i)if(u=n[a=f[i]],t.hasOwnProperty(a)||(t[a]=u),(s=t[a])!==u&&"_"!==a[0]){if(e.hasOwnProperty(a)||(e[a]=s),(c=typeof u)==typeof(l=e[a]))if("string"===c){if((d=Ze(l)).valid&&(h=Ze(u)).valid){t[a]=h.mix(d,r).rgbString();continue}}else if(pt.isFinite(l)&&pt.isFinite(u)){t[a]=l+(u-l)*r;continue}t[a]=u}}(r,i,n,e),t):(t._view=pt.extend({},n),t._start=null,t)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return pt.isNumber(this._model.x)&&pt.isNumber(this._model.y)}}),bt.extend=pt.inherits;var wt=bt,Lt=wt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Mt=Lt;Object.defineProperty(Lt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(Lt.prototype,"chartInstance",{get:function(){return this.chart},set:function(e){this.chart=e}}),ut._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:pt.noop,onComplete:pt.noop}});var kt={animations:[],request:null,addAnimation:function(e,t,n,r){var i,o,a=this.animations;for(t.chart=e,t.startTime=Date.now(),t.duration=n,r||(e.animating=!0),i=0,o=a.length;i<o;++i)if(a[i].chart===e)return void(a[i]=t);a.push(t),1===a.length&&this.requestAnimationFrame()},cancelAnimation:function(e){var t=pt.findIndex(this.animations,function(t){return t.chart===e});-1!==t&&(this.animations.splice(t,1),e.animating=!1)},requestAnimationFrame:function(){var e=this;null===e.request&&(e.request=pt.requestAnimFrame.call(window,function(){e.request=null,e.startDigest()}))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var e,t,n,r,i=this.animations,o=0;o<i.length;)t=(e=i[o]).chart,n=e.numSteps,r=Math.floor((Date.now()-e.startTime)/e.duration*n)+1,e.currentStep=Math.min(r,n),pt.callback(e.render,[t,e],t),pt.callback(e.onAnimationProgress,[e],t),e.currentStep>=n?(pt.callback(e.onAnimationComplete,[e],t),t.animating=!1,i.splice(o,1)):++o}},xt=pt.options.resolve,St=["push","pop","shift","splice","unshift"],Tt=function(e,t){this.initialize(e,t)};pt.extend(Tt.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var n=this;n.chart=e,n.index=t,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this.getMeta(),t=this.chart,n=t.scales,r=this.getDataset(),i=t.options.scales
-;null!==e.xAxisID&&e.xAxisID in n&&!r.xAxisID||(e.xAxisID=r.xAxisID||i.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in n&&!r.yAxisID||(e.yAxisID=r.yAxisID||i.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,n=this.getMeta(),r=this.getDataset().data||[],i=n.data;for(e=0,t=r.length;e<t;++e)i[e]=i[e]||this.createMetaData(e);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(e){var t=this.createMetaData(e);this.getMeta().data.splice(e,0,t),this.updateElement(t,e,!0)},buildOrUpdateElements:function(){var e,t,n=this,r=n.getDataset(),i=r.data||(r.data=[]);n._data!==i&&(n._data&&h(n._data,n),i&&Object.isExtensible(i)&&(t=n,(e=i)._chartjs?e._chartjs.listeners.push(t):(Object.defineProperty(e,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[t]}}),St.forEach(function(t){var n="onData"+t.charAt(0).toUpperCase()+t.slice(1),r=e[t];Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:function(){var t=Array.prototype.slice.call(arguments),i=r.apply(this,t);return pt.each(e._chartjs.listeners,function(e){"function"==typeof e[n]&&e[n].apply(e,t)}),i}})}))),n._data=i),n.resyncElements()},_configure:function(){this._config=pt.merge({},[this.chart.options.datasets[this._type],this.getDataset()],{merger:function(e,t,n){"_meta"!==e&&"data"!==e&&pt._merger(e,t,n)}})},_update:function(e){this._configure(),this._cachedDataOpts=null,this.update(e)},update:pt.noop,transition:function(e){for(var t=this.getMeta(),n=t.data||[],r=n.length,i=0;i<r;++i)n[i].transition(e);t.dataset&&t.dataset.transition(e)},draw:function(){var e=this.getMeta(),t=e.data||[],n=t.length,r=0;for(e.dataset&&e.dataset.draw();r<n;++r)t[r].draw()},getStyle:function(e){var t,n=this.getMeta(),r=n.dataset;return this._configure(),r&&void 0===e?t=this._resolveDatasetElementOptions(r||{}):(e=e||0,t=this._resolveDataElementOptions(n.data[e]||{},e)),!1!==t.fill&&null!==t.fill||(t.backgroundColor=t.borderColor),t},_resolveDatasetElementOptions:function(e,t){var n,r,i,o,a=this,s=a.chart,l=a._config,u=e.custom||{},c=s.options.elements[a.datasetElementType.prototype._type]||{},d=a._datasetElementOptions,h={},f={chart:s,dataset:a.getDataset(),datasetIndex:a.index,hover:t};for(n=0,r=d.length;n<r;++n)i=d[n],o=t?"hover"+i.charAt(0).toUpperCase()+i.slice(1):i,h[i]=xt([u[o],l[o],c[o]],f);return h},_resolveDataElementOptions:function(e,t){var n=this,r=e&&e.custom,i=n._cachedDataOpts;if(i&&!r)return i;var o,a,s,l,u=n.chart,c=n._config,d=u.options.elements[n.dataElementType.prototype._type]||{},h=n._dataElementOptions,f={},p={chart:u,dataIndex:t,dataset:n.getDataset(),datasetIndex:n.index},m={cacheable:!r};if(r=r||{},pt.isArray(h))for(a=0,s=h.length;a<s;++a)f[l=h[a]]=xt([r[l],c[l],d[l]],p,t,m);else for(a=0,s=(o=Object.keys(h)).length;a<s;++a)f[l=o[a]]=xt([r[l],c[h[l]],c[l],d[l]],p,t,m);return m.cacheable&&(n._cachedDataOpts=Object.freeze(f)),f},removeHoverStyle:function(e){pt.merge(e._model,e.$previousStyle||{}),delete e.$previousStyle},setHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e._index,r=e.custom||{},i=e._model,o=pt.getHoverColor;e.$previousStyle={backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderWidth:i.borderWidth},i.backgroundColor=xt([r.hoverBackgroundColor,t.hoverBackgroundColor,o(i.backgroundColor)],void 0,n),i.borderColor=xt([r.hoverBorderColor,t.hoverBorderColor,o(i.borderColor)],void 0,n),i.borderWidth=xt([r.hoverBorderWidth,t.hoverBorderWidth,i.borderWidth],void 0,n)},_removeDatasetHoverStyle:function(){var e=this.getMeta().dataset;e&&this.removeHoverStyle(e)},_setDatasetHoverStyle:function(){var e,t,n,r,i,o,a=this.getMeta().dataset,s={};if(a){for(o=a._model,i=this._resolveDatasetElementOptions(a,!0),e=0,t=(r=Object.keys(i)).length;e<t;++e)s[n=r[e]]=o[n],o[n]=i[n];a.$previousStyle=s}},resyncElements:function(){var e=this.getMeta(),t=this.getDataset().data,n=e.data.length,r=t.length;r<n?e.data.splice(r,n-r):r>n&&this.insertElements(n,r-n)},insertElements:function(e,t){for(var n=0;n<t;++n)this.addElementAndReset(e+n)},onDataPush:function(){var e=arguments.length;this.insertElements(this.getDataset().data.length-e,e)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(e,t){this.getMeta().data.splice(e,t),this.insertElements(e,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),Tt.extend=pt.inherits;var $t=Tt,Dt=2*Math.PI;ut._set("global",{elements:{arc:{backgroundColor:ut.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var Ct=wt.extend({_type:"arc",inLabelRange:function(e){var t=this._view;return!!t&&Math.pow(e-t.x,2)<Math.pow(t.radius+t.hoverRadius,2)},inRange:function(e,t){var n=this._view;if(n){for(var r=pt.getAngleFromPoint(n,{x:e,y:t}),i=r.angle,o=r.distance,a=n.startAngle,s=n.endAngle;s<a;)s+=Dt;for(;i>s;)i-=Dt;for(;i<a;)i+=Dt;var l=i>=a&&i<=s,u=o>=n.innerRadius&&o<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e,t=this._chart.ctx,n=this._view,r="inner"===n.borderAlign?.33:0,i={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-r,0),pixelMargin:r,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/Dt)};if(t.save(),t.fillStyle=n.backgroundColor,t.strokeStyle=n.borderColor,i.fullCircles){for(i.endAngle=i.startAngle+Dt,t.beginPath(),t.arc(i.x,i.y,i.outerRadius,i.startAngle,i.endAngle),t.arc(i.x,i.y,i.innerRadius,i.endAngle,i.startAngle,!0),t.closePath(),e=0;e<i.fullCircles;++e)t.fill();i.endAngle=i.startAngle+n.circumference%Dt}t.beginPath(),t.arc(i.x,i.y,i.outerRadius,i.startAngle,i.endAngle),t.arc(i.x,i.y,i.innerRadius,i.endAngle,i.startAngle,!0),t.closePath(),t.fill(),n.borderWidth&&p(t,n,i),t.restore()}}),Et=pt.valueOrDefault,At=ut.global.defaultColor;ut._set("global",{elements:{line:{tension:.4,backgroundColor:At,borderWidth:3,borderColor:At,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var Pt=wt.extend({_type:"line",draw:function(){var e,t,n,r=this,i=r._view,o=r._chart.ctx,a=i.spanGaps,s=r._children.slice(),l=ut.global,u=l.elements.line,c=-1,d=r._loop;if(s.length){if(r._loop){for(e=0;e<s.length;++e)if(t=pt.previousItem(s,e),!s[e]._view.skip&&t._view.skip){s=s.slice(e).concat(s.slice(0,e)),d=a;break}d&&s.push(s[0])}for(o.save(),o.lineCap=i.borderCapStyle||u.borderCapStyle,o.setLineDash&&o.setLineDash(i.borderDash||u.borderDash),o.lineDashOffset=Et(i.borderDashOffset,u.borderDashOffset),o.lineJoin=i.borderJoinStyle||u.borderJoinStyle,o.lineWidth=Et(i.borderWidth,u.borderWidth),o.strokeStyle=i.borderColor||l.defaultColor,o.beginPath(),(n=s[0]._view).skip||(o.moveTo(n.x,n.y),c=0),e=1;e<s.length;++e)n=s[e]._view,t=-1===c?pt.previousItem(s,e):s[c],n.skip||(c!==e-1&&!a||-1===c?o.moveTo(n.x,n.y):pt.canvas.lineTo(o,t._view,n),c=e);d&&o.closePath(),o.stroke(),o.restore()}}}),Yt=pt.valueOrDefault,Ot=ut.global.defaultColor;ut._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:Ot,borderColor:Ot,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var It=wt.extend({_type:"point",inRange:function(e,t){var n=this._view;return!!n&&Math.pow(e-n.x,2)+Math.pow(t-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:m,inXRange:m,inYRange:function(e){var t=this._view;return!!t&&Math.abs(e-t.y)<t.radius+t.hitRadius},getCenterPoint:function(){var e=this._view;return{x:e.x,y:e.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y,padding:e.radius+e.borderWidth}},draw:function(e){var t=this._view,n=this._chart.ctx,r=t.pointStyle,i=t.rotation,o=t.radius,a=t.x,s=t.y,l=ut.global,u=l.defaultColor;t.skip||(void 0===e||pt.canvas._isPointInArea(t,e))&&(n.strokeStyle=t.borderColor||u,n.lineWidth=Yt(t.borderWidth,l.elements.point.borderWidth),n.fillStyle=t.backgroundColor||u,pt.canvas.drawPoint(n,r,o,a,s,i))}}),jt=ut.global.defaultColor;ut._set("global",{elements:{rectangle:{backgroundColor:jt,borderColor:jt,borderSkipped:"bottom",borderWidth:0}}});var Ht=wt.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,n=function(e){var t=v(e),n=t.right-t.left,r=t.bottom-t.top,i=y(e,n/2,r/2);return{outer:{x:t.left,y:t.top,w:n,h:r},inner:{x:t.left+i.l,y:t.top+i.t,w:n-i.l-i.r,h:r-i.t-i.b}}}(t),r=n.outer,i=n.inner;e.fillStyle=t.backgroundColor,e.fillRect(r.x,r.y,r.w,r.h),r.w===i.w&&r.h===i.h||(e.save(),e.beginPath(),e.rect(r.x,r.y,r.w,r.h),e.clip(),e.fillStyle=t.borderColor,e.rect(i.x,i.y,i.w,i.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return b(this._view,e,t)},inLabelRange:function(e,t){var n=this._view;return g(n)?b(n,e,null):b(n,null,t)},inXRange:function(e){return b(this._view,e,null)},inYRange:function(e){return b(this._view,null,e)},getCenterPoint:function(){var e,t,n=this._view;return g(n)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return g(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),Nt={},Bt=Ct,Rt=Pt,Ft=It,zt=Ht;Nt.Arc=Bt,Nt.Line=Rt,Nt.Point=Ft,Nt.Rectangle=zt;var Vt=pt._deprecated,Ut=pt.valueOrDefault;ut._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),ut._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var Wt=$t.extend({dataElementType:Nt.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var e,t,n=this;$t.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0,t=n._getIndexScale().options,Vt("bar chart",t.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Vt("bar chart",t.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Vt("bar chart",t.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Vt("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Vt("bar chart",t.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(e){var t,n,r=this.getMeta().data;for(this._ruler=this.getRuler(),t=0,n=r.length;t<n;++t)this.updateElement(r[t],t,e)},updateElement:function(e,t,n){var r=this,i=r.getMeta(),o=r.getDataset(),a=r._resolveDataElementOptions(e,t);e._xScale=r.getScaleForId(i.xAxisID),e._yScale=r.getScaleForId(i.yAxisID),e._datasetIndex=r.index,e._index=t,e._model={backgroundColor:a.backgroundColor,borderColor:a.borderColor,borderSkipped:a.borderSkipped,borderWidth:a.borderWidth,datasetLabel:o.label,label:r.chart.data.labels[t]},pt.isArray(o.data[t])&&(e._model.borderSkipped=null),r._updateElementGeometry(e,t,n,a),e.pivot()},_updateElementGeometry:function(e,t,n,r){var i=this,o=e._model,a=i._getValueScale(),s=a.getBasePixel(),l=a.isHorizontal(),u=i._ruler||i.getRuler(),c=i.calculateBarValuePixels(i.index,t,r),d=i.calculateBarIndexPixels(i.index,t,u,r);o.horizontal=l,o.base=n?s:c.base,o.x=l?n?s:c.head:d.center,o.y=l?d.center:n?s:c.head,o.height=l?d.size:void 0,o.width=l?void 0:d.size},_getStacks:function(e){var t,n,r=this._getIndexScale(),i=r._getMatchingVisibleMetas(this._type),o=r.options.stacked,a=i.length,s=[];for(t=0;t<a&&(n=i[t],(!1===o||-1===s.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&s.push(n.stack),n.index!==e);++t);return s},getStackCount:function(){return this._getStacks().length},getStackIndex:function(e,t){var n=this._getStacks(e),r=void 0!==t?n.indexOf(t):-1;return-1===r?n.length-1:r},getRuler:function(){var e,t,n=this._getIndexScale(),r=[];for(e=0,t=this.getMeta().data.length;e<t;++e)r.push(n.getPixelForValue(null,e,this.index));return{pixels:r,start:n._startPixel,end:n._endPixel,stackCount:this.getStackCount(),scale:n}},calculateBarValuePixels:function(e,t,n){var r,i,o,a,s,l,u,c=this.chart,d=this._getValueScale(),h=d.isHorizontal(),f=c.data.datasets,p=d._getMatchingVisibleMetas(this._type),m=d._parseValue(f[e].data[t]),g=n.minBarLength,v=d.options.stacked,_=this.getMeta().stack,y=void 0===m.start?0:m.max>=0&&m.min>=0?m.min:m.max,b=void 0===m.start?m.end:m.max>=0&&m.min>=0?m.max-m.min:m.min-m.max,w=p.length;if(v||void 0===v&&void 0!==_)for(r=0;r<w&&(i=p[r]).index!==e;++r)i.stack===_&&(o=void 0===(u=d._parseValue(f[i.index].data[t])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(m.min<0&&o<0||m.max>=0&&o>0)&&(y+=o));return a=d.getPixelForValue(y),l=(s=d.getPixelForValue(y+b))-a,void 0!==g&&Math.abs(l)<g&&(l=g,s=b>=0&&!h||b<0&&h?a-g:a+g),{size:l,base:a,head:s,center:s+l/2}},calculateBarIndexPixels:function(e,t,n,r){var i="flex"===r.barThickness?function(e,t,n){var r,i=t.pixels,o=i[e],a=e>0?i[e-1]:null,s=e<i.length-1?i[e+1]:null,l=n.categoryPercentage;return null===a&&(a=o-(null===s?t.end-t.start:s-o)),null===s&&(s=o+o-a),r=o-(o-Math.min(a,s))/2*l,{chunk:Math.abs(s-a)/2*l/t.stackCount,ratio:n.barPercentage,start:r}}(t,n,r):w(t,n,r),o=this.getStackIndex(e,this.getMeta().stack),a=i.start+i.chunk*o+i.chunk/2,s=Math.min(Ut(r.maxBarThickness,1/0),i.chunk*i.ratio);return{base:a-s/2,head:a+s/2,center:a,size:s}},draw:function(){var e=this.chart,t=this._getValueScale(),n=this.getMeta().data,r=this.getDataset(),i=n.length,o=0;for(pt.canvas.clipArea(e.ctx,e.chartArea);o<i;++o){var a=t._parseValue(r.data[o]);isNaN(a.min)||isNaN(a.max)||n[o].draw()}pt.canvas.unclipArea(e.ctx)},_resolveDataElementOptions:function(){var e=this,t=pt.extend({},$t.prototype._resolveDataElementOptions.apply(e,arguments)),n=e._getIndexScale().options,r=e._getValueScale().options;return t.barPercentage=Ut(n.barPercentage,t.barPercentage),t.barThickness=Ut(n.barThickness,t.barThickness),t.categoryPercentage=Ut(n.categoryPercentage,t.categoryPercentage),t.maxBarThickness=Ut(n.maxBarThickness,t.maxBarThickness),t.minBarLength=Ut(r.minBarLength,t.minBarLength),t}}),qt=pt.valueOrDefault,Gt=pt.options.resolve;ut._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.datasets[e.datasetIndex].label||"",r=t.datasets[e.datasetIndex].data[e.index];return n+": ("+e.xLabel+", "+e.yLabel+", "+r.r+")"}}}});var Zt=$t.extend({dataElementType:Nt.Point,_dataElementOptions:["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"],update:function(e){var t=this,n=t.getMeta().data;pt.each(n,function(n,r){t.updateElement(n,r,e)})},updateElement:function(e,t,n){var r=this,i=r.getMeta(),o=e.custom||{},a=r.getScaleForId(i.xAxisID),s=r.getScaleForId(i.yAxisID),l=r._resolveDataElementOptions(e,t),u=r.getDataset().data[t],c=r.index,d=n?a.getPixelForDecimal(.5):a.getPixelForValue("object"==typeof u?u:NaN,t,c),h=n?s.getBasePixel():s.getPixelForValue(u,t,c);e._xScale=a,e._yScale=s,e._options=l,e._datasetIndex=c,e._index=t,e._model={backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,hitRadius:l.hitRadius,pointStyle:l.pointStyle,rotation:l.rotation,radius:n?0:l.radius,skip:o.skip||isNaN(d)||isNaN(h),x:d,y:h},e.pivot()},setHoverStyle:function(e){var t=e._model,n=e._options,r=pt.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=qt(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=qt(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=qt(n.hoverBorderWidth,n.borderWidth),t.radius=n.radius+n.hoverRadius},_resolveDataElementOptions:function(e,t){var n=this,r=n.chart,i=n.getDataset(),o=e.custom||{},a=i.data[t]||{},s=$t.prototype._resolveDataElementOptions.apply(n,arguments),l={chart:r,dataIndex:t,dataset:i,datasetIndex:n.index};return n._cachedDataOpts===s&&(s=pt.extend({},s)),s.radius=Gt([o.radius,a.r,n._config.radius,r.options.elements.point.radius],l,t),s}}),Jt=pt.valueOrDefault,Xt=Math.PI,Kt=2*Xt,Qt=Xt/2;ut._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(e){var t,n,r,i=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(i.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(r=i.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&r.appendChild(document.createTextNode(s[t]));return i.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map(function(n,r){var i=e.getDatasetMeta(0),o=i.controller.getStyle(r);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[r])||i.data[r].hidden,index:r}}):[]}},onClick:function(e,t){var n,r,i,o=t.index,a=this.chart;for(n=0,r=(a.data.datasets||[]).length;n<r;++n)(i=a.getDatasetMeta(n)).data[o]&&(i.data[o].hidden=!i.data[o].hidden);a.update()}},cutoutPercentage:50,rotation:-Qt,circumference:Kt,tooltips:{callbacks:{title:function(){return""},label:function(e,t){var n=t.labels[e.index],r=": "+t.datasets[e.datasetIndex].data[e.index];return pt.isArray(n)?(n=n.slice())[0]+=r:n+=r,n}}}});var en=$t.extend({dataElementType:Nt.Arc,linkScales:pt.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],getRingIndex:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&++t;return t},update:function(e){var t,n,r,i,o=this,a=o.chart,s=a.chartArea,l=a.options,u=1,c=1,d=0,h=0,f=o.getMeta(),p=f.data,m=l.cutoutPercentage/100||0,g=l.circumference,v=o._getRingWeight(o.index);if(g<Kt){var _=l.rotation%Kt,y=(_+=_>=Xt?-Kt:_<-Xt?Kt:0)+g,b=Math.cos(_),w=Math.sin(_),L=Math.cos(y),M=Math.sin(y),k=_<=0&&y>=0||y>=Kt,x=_<=Qt&&y>=Qt||y>=Kt+Qt,S=_<=-Qt&&y>=-Qt||y>=Xt+Qt,T=_===-Xt||y>=Xt?-1:Math.min(b,b*m,L,L*m),$=S?-1:Math.min(w,w*m,M,M*m),D=k?1:Math.max(b,b*m,L,L*m),C=x?1:Math.max(w,w*m,M,M*m);u=(D-T)/2,c=(C-$)/2,d=-(D+T)/2,h=-(C+$)/2}for(r=0,i=p.length;r<i;++r)p[r]._options=o._resolveDataElementOptions(p[r],r);for(a.borderWidth=o.getMaxBorderWidth(),t=(s.right-s.left-a.borderWidth)/u,n=(s.bottom-s.top-a.borderWidth)/c,a.outerRadius=Math.max(Math.min(t,n)/2,0),a.innerRadius=Math.max(a.outerRadius*m,0),a.radiusLength=(a.outerRadius-a.innerRadius)/(o._getVisibleDatasetWeightTotal()||1),a.offsetX=d*a.outerRadius,a.offsetY=h*a.outerRadius,f.total=o.calculateTotal(),o.outerRadius=a.outerRadius-a.radiusLength*o._getRingWeightOffset(o.index),o.innerRadius=Math.max(o.outerRadius-a.radiusLength*v,0),r=0,i=p.length;r<i;++r)o.updateElement(p[r],r,e)},updateElement:function(e,t,n){var r=this,i=r.chart,o=i.chartArea,a=i.options,s=a.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,c=a.rotation,d=a.rotation,h=r.getDataset(),f=n&&s.animateRotate?0:e.hidden?0:r.calculateCircumference(h.data[t])*(a.circumference/Kt),p=n&&s.animateScale?0:r.innerRadius,m=n&&s.animateScale?0:r.outerRadius,g=e._options||{};pt.extend(e,{_datasetIndex:r.index,_index:t,_model:{backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,borderAlign:g.borderAlign,x:l+i.offsetX,y:u+i.offsetY,startAngle:c,endAngle:d,circumference:f,outerRadius:m,innerRadius:p,label:pt.valueAtIndexOrDefault(h.label,t,i.data.labels[t])}});var v=e._model;n&&s.animateRotate||(v.startAngle=0===t?a.rotation:r.getMeta().data[t-1]._model.endAngle,v.endAngle=v.startAngle+v.circumference),e.pivot()},calculateTotal:function(){var e,t=this.getDataset(),n=this.getMeta(),r=0;return pt.each(n.data,function(n,i){e=t.data[i],isNaN(e)||n.hidden||(r+=Math.abs(e))}),r},calculateCircumference:function(e){var t=this.getMeta().total;return t>0&&!isNaN(e)?Kt*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,n,r,i,o,a,s,l,u=0,c=this.chart;if(!e)for(t=0,n=c.data.datasets.length;t<n;++t)if(c.isDatasetVisible(t)){e=(r=c.getDatasetMeta(t)).data,t!==this.index&&(o=r.controller);break}if(!e)return 0;for(t=0,n=e.length;t<n;++t)i=e[t],o?(o._configure(),a=o._resolveDataElementOptions(i,t)):a=i._options,"inner"!==a.borderAlign&&(s=a.borderWidth,u=(l=a.hoverBorderWidth)>(u=s>u?s:u)?l:u);return u},setHoverStyle:function(e){var t=e._model,n=e._options,r=pt.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=Jt(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=Jt(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=Jt(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,n=0;n<e;++n)this.chart.isDatasetVisible(n)&&(t+=this._getRingWeight(n));return t},_getRingWeight:function(e){return Math.max(Jt(this.chart.data.datasets[e].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});ut._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}}),ut._set("global",{datasets:{horizontalBar:{categoryPercentage:.8,barPercentage:.9}}});var tn=Wt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),nn=pt.valueOrDefault,rn=pt.options.resolve,on=pt.canvas._isPointInArea;ut._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var an=$t.extend({datasetElementType:Nt.Line,dataElementType:Nt.Point,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth","cubicInterpolationMode","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},update:function(e){var t,n,r=this,i=r.getMeta(),o=i.dataset,a=i.data||[],s=r.chart.options,l=r._config,u=r._showLine=nn(l.showLine,s.showLines);for(r._xScale=r.getScaleForId(i.xAxisID),r._yScale=r.getScaleForId(i.yAxisID),u&&(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=r._yScale,o._datasetIndex=r.index,o._children=a,o._model=r._resolveDatasetElementOptions(o),o.pivot()),t=0,n=a.length;t<n;++t)r.updateElement(a[t],t,e);for(u&&0!==o._model.tension&&r.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var r,i,o=this,a=o.getMeta(),s=e.custom||{},l=o.getDataset(),u=o.index,c=l.data[t],d=o._xScale,h=o._yScale,f=a.dataset._model,p=o._resolveDataElementOptions(e,t);r=d.getPixelForValue("object"==typeof c?c:NaN,t,u),i=n?h.getBasePixel():o.calculatePointY(c,t,u),e._xScale=d,e._yScale=h,e._options=p,e._datasetIndex=u,e._index=t,e._model={x:r,y:i,skip:s.skip||isNaN(r)||isNaN(i),radius:p.radius,pointStyle:p.pointStyle,rotation:p.rotation,backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,tension:nn(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:p.hitRadius}},_resolveDatasetElementOptions:function(e){var t=this,n=t._config,r=e.custom||{},i=t.chart.options,o=i.elements.line,a=$t.prototype._resolveDatasetElementOptions.apply(t,arguments);return a.spanGaps=nn(n.spanGaps,i.spanGaps),a.tension=nn(n.lineTension,o.tension),a.steppedLine=rn([r.steppedLine,n.steppedLine,o.stepped]),a.clip=k(nn(n.clip,M(t._xScale,t._yScale,a.borderWidth))),a},calculatePointY:function(e,t,n){var r,i,o,a,s,l,u,c=this.chart,d=this._yScale,h=0,f=0;if(d.options.stacked){for(s=+d.getRightValue(e),u=(l=c._getSortedVisibleDatasetMetas()).length,r=0;r<u&&(o=l[r]).index!==n;++r)i=c.data.datasets[o.index],"line"===o.type&&o.yAxisID===d.id&&((a=+d.getRightValue(i.data[t]))<0?f+=a||0:h+=a||0);return s<0?d.getPixelForValue(f+s):d.getPixelForValue(h+s)}return d.getPixelForValue(e)},updateBezierControlPoints:function(){function e(e,t,n){return Math.max(Math.min(e,n),t)}var t,n,r,i,o=this.chart,a=this.getMeta(),s=a.dataset._model,l=o.chartArea,u=a.data||[];if(s.spanGaps&&(u=u.filter(function(e){return!e._model.skip})),"monotone"===s.cubicInterpolationMode)pt.splineCurveMonotone(u);else for(t=0,n=u.length;t<n;++t)r=u[t]._model,i=pt.splineCurve(pt.previousItem(u,t)._model,r,pt.nextItem(u,t)._model,s.tension),r.controlPointPreviousX=i.previous.x,r.controlPointPreviousY=i.previous.y,r.controlPointNextX=i.next.x,r.controlPointNextY=i.next.y;if(o.options.elements.line.capBezierPoints)for(t=0,n=u.length;t<n;++t)r=u[t]._model,on(r,l)&&(t>0&&on(u[t-1]._model,l)&&(r.controlPointPreviousX=e(r.controlPointPreviousX,l.left,l.right),r.controlPointPreviousY=e(r.controlPointPreviousY,l.top,l.bottom)),t<u.length-1&&on(u[t+1]._model,l)&&(r.controlPointNextX=e(r.controlPointNextX,l.left,l.right),r.controlPointNextY=e(r.controlPointNextY,l.top,l.bottom)))},draw:function(){var e,t=this.chart,n=this.getMeta(),r=n.data||[],i=t.chartArea,o=t.canvas,a=0,s=r.length;for(this._showLine&&(e=n.dataset._model.clip,pt.canvas.clipArea(t.ctx,{left:!1===e.left?0:i.left-e.left,right:!1===e.right?o.width:i.right+e.right,top:!1===e.top?0:i.top-e.top,bottom:!1===e.bottom?o.height:i.bottom+e.bottom}),n.dataset.draw(),pt.canvas.unclipArea(t.ctx));a<s;++a)r[a].draw(i)},setHoverStyle:function(e){var t=e._model,n=e._options,r=pt.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=nn(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=nn(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=nn(n.hoverBorderWidth,n.borderWidth),t.radius=nn(n.hoverRadius,n.radius)}}),sn=pt.options.resolve;ut._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(e){var t,n,r,i=document.createElement("ul"),o=e.data,a=o.datasets,s=o.labels;if(i.setAttribute("class",e.id+"-legend"),a.length)for(t=0,n=a[0].data.length;t<n;++t)(r=i.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=a[0].backgroundColor[t],s[t]&&r.appendChild(document.createTextNode(s[t]));return i.outerHTML},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map(function(n,r){var i=e.getDatasetMeta(0),o=i.controller.getStyle(r);return{text:n,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,hidden:isNaN(t.datasets[0].data[r])||i.data[r].hidden,index:r}}):[]}},onClick:function(e,t){var n,r,i,o=t.index,a=this.chart;for(n=0,r=(a.data.datasets||[]).length;n<r;++n)(i=a.getDatasetMeta(n)).data[o].hidden=!i.data[o].hidden;a.update()}},tooltips:{callbacks:{title:function(){return""},label:function(e,t){return t.labels[e.index]+": "+e.yLabel}}}});var ln=$t.extend({dataElementType:Nt.Arc,linkScales:pt.noop,_dataElementOptions:["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"],_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,r,i=this,o=i.getDataset(),a=i.getMeta(),s=i.chart.options.startAngle||0,l=i._starts=[],u=i._angles=[],c=a.data;for(i._updateRadius(),a.count=i.countVisibleElements(),t=0,n=o.data.length;t<n;t++)l[t]=s,r=i._computeAngle(t),u[t]=r,s+=r;for(t=0,n=c.length;t<n;++t)c[t]._options=i._resolveDataElementOptions(c[t],t),i.updateElement(c[t],t,e)},_updateRadius:function(){var e=this,t=e.chart,n=t.chartArea,r=t.options,i=Math.min(n.right-n.left,n.bottom-n.top);t.outerRadius=Math.max(i/2,0),t.innerRadius=Math.max(r.cutoutPercentage?t.outerRadius/100*r.cutoutPercentage:1,0),t.radiusLength=(t.outerRadius-t.innerRadius)/t.getVisibleDatasetCount(),e.outerRadius=t.outerRadius-t.radiusLength*e.index,e.innerRadius=e.outerRadius-t.radiusLength},updateElement:function(e,t,n){var r=this,i=r.chart,o=r.getDataset(),a=i.options,s=a.animation,l=i.scale,u=i.data.labels,c=l.xCenter,d=l.yCenter,h=a.startAngle,f=e.hidden?0:l.getDistanceFromCenterForValue(o.data[t]),p=r._starts[t],m=p+(e.hidden?0:r._angles[t]),g=s.animateScale?0:l.getDistanceFromCenterForValue(o.data[t]),v=e._options||{};pt.extend(e,{_datasetIndex:r.index,_index:t,_scale:l,_model:{backgroundColor:v.backgroundColor,borderColor:v.borderColor,borderWidth:v.borderWidth,borderAlign:v.borderAlign,x:c,y:d,innerRadius:0,outerRadius:n?g:f,startAngle:n&&s.animateRotate?h:p,endAngle:n&&s.animateRotate?h:m,label:pt.valueAtIndexOrDefault(u,t,u[t])}}),e.pivot()},countVisibleElements:function(){var e=this.getDataset(),t=this.getMeta(),n=0;return pt.each(t.data,function(t,r){isNaN(e.data[r])||t.hidden||n++}),n},setHoverStyle:function(e){var t=e._model,n=e._options,r=pt.getHoverColor,i=pt.valueOrDefault;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=i(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=i(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=i(n.hoverBorderWidth,n.borderWidth)},_computeAngle:function(e){var t=this,n=this.getMeta().count,r=t.getDataset(),i=t.getMeta();if(isNaN(r.data[e])||i.data[e].hidden)return 0;var o={chart:t.chart,dataIndex:e,dataset:r,datasetIndex:t.index};return sn([t.chart.options.elements.arc.angle,2*Math.PI/n],o,e)}});ut._set("pie",pt.clone(ut.doughnut)),ut._set("pie",{cutoutPercentage:0});var un=en,cn=pt.valueOrDefault;ut._set("radar",{spanGaps:!1,scale:{type:"radialLinear"},elements:{line:{fill:"start",tension:0}}});var dn=$t.extend({datasetElementType:Nt.Line,dataElementType:Nt.Point,linkScales:pt.noop,_datasetElementOptions:["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"],_dataElementOptions:{backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",
-hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},_getIndexScaleId:function(){return this.chart.scale.id},_getValueScaleId:function(){return this.chart.scale.id},update:function(e){var t,n,r=this,i=r.getMeta(),o=i.dataset,a=i.data||[],s=r.chart.scale,l=r._config;for(void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o._scale=s,o._datasetIndex=r.index,o._children=a,o._loop=!0,o._model=r._resolveDatasetElementOptions(o),o.pivot(),t=0,n=a.length;t<n;++t)r.updateElement(a[t],t,e);for(r.updateBezierControlPoints(),t=0,n=a.length;t<n;++t)a[t].pivot()},updateElement:function(e,t,n){var r=this,i=e.custom||{},o=r.getDataset(),a=r.chart.scale,s=a.getPointPositionForValue(t,o.data[t]),l=r._resolveDataElementOptions(e,t),u=r.getMeta().dataset._model,c=n?a.xCenter:s.x,d=n?a.yCenter:s.y;e._scale=a,e._options=l,e._datasetIndex=r.index,e._index=t,e._model={x:c,y:d,skip:i.skip||isNaN(c)||isNaN(d),radius:l.radius,pointStyle:l.pointStyle,rotation:l.rotation,backgroundColor:l.backgroundColor,borderColor:l.borderColor,borderWidth:l.borderWidth,tension:cn(i.tension,u?u.tension:0),hitRadius:l.hitRadius}},_resolveDatasetElementOptions:function(){var e=this,t=e._config,n=e.chart.options,r=$t.prototype._resolveDatasetElementOptions.apply(e,arguments);return r.spanGaps=cn(t.spanGaps,n.spanGaps),r.tension=cn(t.lineTension,n.elements.line.tension),r},updateBezierControlPoints:function(){function e(e,t,n){return Math.max(Math.min(e,n),t)}var t,n,r,i,o=this.getMeta(),a=this.chart.chartArea,s=o.data||[];for(o.dataset._model.spanGaps&&(s=s.filter(function(e){return!e._model.skip})),t=0,n=s.length;t<n;++t)r=s[t]._model,i=pt.splineCurve(pt.previousItem(s,t,!0)._model,r,pt.nextItem(s,t,!0)._model,r.tension),r.controlPointPreviousX=e(i.previous.x,a.left,a.right),r.controlPointPreviousY=e(i.previous.y,a.top,a.bottom),r.controlPointNextX=e(i.next.x,a.left,a.right),r.controlPointNextY=e(i.next.y,a.top,a.bottom)},setHoverStyle:function(e){var t=e._model,n=e._options,r=pt.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth,radius:t.radius},t.backgroundColor=cn(n.hoverBackgroundColor,r(n.backgroundColor)),t.borderColor=cn(n.hoverBorderColor,r(n.borderColor)),t.borderWidth=cn(n.hoverBorderWidth,n.borderWidth),t.radius=cn(n.hoverRadius,n.radius)}});ut._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},tooltips:{callbacks:{title:function(){return""},label:function(e){return"("+e.xLabel+", "+e.yLabel+")"}}}}),ut._set("global",{datasets:{scatter:{showLine:!1}}});var hn={bar:Wt,bubble:Zt,doughnut:en,horizontalBar:tn,line:an,polarArea:ln,pie:un,radar:dn,scatter:an},fn={modes:{single:function(e,t){var n=x(t,e),r=[];return S(e,function(e){if(e.inRange(n.x,n.y))return r.push(e),r}),r.slice(0,1)},label:C,index:C,dataset:function(e,t,n){var r=x(t,e);n.axis=n.axis||"xy";var i=D(n.axis),o=n.intersect?T(e,r):$(e,r,!1,i);return o.length>0&&(o=e.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(e,t){return C(e,t,{intersect:!1})},point:function(e,t){return T(e,x(t,e))},nearest:function(e,t,n){var r=x(t,e);n.axis=n.axis||"xy";var i=D(n.axis);return $(e,r,n.intersect,i)},x:function(e,t,n){var r=x(t,e),i=[],o=!1;return S(e,function(e){e.inXRange(r.x)&&i.push(e),e.inRange(r.x,r.y)&&(o=!0)}),n.intersect&&!o&&(i=[]),i},y:function(e,t,n){var r=x(t,e),i=[],o=!1;return S(e,function(e){e.inYRange(r.y)&&i.push(e),e.inRange(r.x,r.y)&&(o=!0)}),n.intersect&&!o&&(i=[]),i}}},pn=pt.extend;ut._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var mn,gn={defaults:{},addBox:function(e,t){e.boxes||(e.boxes=[]),t.fullWidth=t.fullWidth||!1,t.position=t.position||"top",t.weight=t.weight||0,t._layers=t._layers||function(){return[{z:0,draw:function(){t.draw.apply(t,arguments)}}]},e.boxes.push(t)},removeBox:function(e,t){var n=e.boxes?e.boxes.indexOf(t):-1;-1!==n&&e.boxes.splice(n,1)},configure:function(e,t,n){for(var r,i=["fullWidth","position","weight"],o=i.length,a=0;a<o;++a)r=i[a],n.hasOwnProperty(r)&&(t[r]=n[r])},update:function(e,t,n){if(e){var r=e.options.layout||{},i=pt.options.toPadding(r.padding),o=t-i.width,a=n-i.height,s=function(e){var t=function(e){var t,n,r,i=[];for(t=0,n=(e||[]).length;t<n;++t)r=e[t],i.push({index:t,box:r,pos:r.position,horizontal:r.isHorizontal(),weight:r.weight});return i}(e),n=A(E(t,"left"),!0),r=A(E(t,"right")),i=A(E(t,"top"),!0),o=A(E(t,"bottom"));return{leftAndTop:n.concat(i),rightAndBottom:r.concat(o),chartArea:E(t,"chartArea"),vertical:n.concat(r),horizontal:i.concat(o)}}(e.boxes),l=s.vertical,u=s.horizontal,c=Object.freeze({outerWidth:t,outerHeight:n,padding:i,availableWidth:o,vBoxMaxWidth:o/2/l.length,hBoxMaxHeight:a/2}),d=pn({maxPadding:pn({},i),w:o,h:a,x:i.left,y:i.top},i);!function(e,t){var n,r,i;for(n=0,r=e.length;n<r;++n)(i=e[n]).width=i.horizontal?i.box.fullWidth&&t.availableWidth:t.vBoxMaxWidth,i.height=i.horizontal&&t.hBoxMaxHeight}(l.concat(u),c),I(l,d,c),I(u,d,c)&&I(l,d,c),function(e){function t(t){var r=Math.max(n[t]-e[t],0);return e[t]+=r,r}var n=e.maxPadding;e.y+=t("top"),e.x+=t("left"),t("right"),t("bottom")}(d),j(s.leftAndTop,d,c),d.x+=d.w,d.y+=d.h,j(s.rightAndBottom,d,c),e.chartArea={left:d.left,top:d.top,right:d.left+d.w,bottom:d.top+d.h},pt.each(s.chartArea,function(t){var n=t.box;pn(n,e.chartArea),n.update(d.w,d.h)})}}},vn=(mn=Object.freeze({__proto__:null,default:"@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&mn.default||mn,_n="$chartjs",yn="chartjs-size-monitor",bn="chartjs-render-monitor",wn="chartjs-render-animation",Ln=["animationstart","webkitAnimationStart"],Mn={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},kn=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0},xn={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(e){if(!this.disableCSSInjection){var t=e.getRootNode?e.getRootNode():document;!function(e,t){var n=e[_n]||(e[_n]={});if(!n.containsStyles){n.containsStyles=!0,t="/* Chart.js */\n"+t;var r=document.createElement("style");r.setAttribute("type","text/css"),r.appendChild(document.createTextNode(t)),e.appendChild(r)}}(t.host?t:document.head,vn)}},acquireContext:function(e,t){"string"==typeof e?e=document.getElementById(e):e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas);var n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(this._ensureLoaded(e),function(e,t){var n=e.style,r=e.getAttribute("height"),i=e.getAttribute("width");if(e[_n]={initial:{height:r,width:i,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===i||""===i){var o=H(e,"width");void 0!==o&&(e.width=o)}if(null===r||""===r)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var a=H(e,"height");void 0!==o&&(e.height=a)}}(e,t),n):null},releaseContext:function(e){var t=e.canvas;if(t[_n]){var n=t[_n].initial;["height","width"].forEach(function(e){var r=n[e];pt.isNullOrUndef(r)?t.removeAttribute(e):t.setAttribute(e,r)}),pt.each(n.style||{},function(e,n){t.style[n]=e}),t.width=t.width,delete t[_n]}},addEventListener:function(e,t,n){var r=e.canvas;if("resize"!==t){var i=n[_n]||(n[_n]={});N(r,t,(i.proxies||(i.proxies={}))[e.id+"_"+t]=function(t){n(function(e,t){var n=Mn[e.type]||e.type,r=pt.getRelativePosition(e,t);return R(n,t,r.x,r.y,e)}(t,e))})}else z(r,n,e)},removeEventListener:function(e,t,n){var r=e.canvas;if("resize"!==t){var i=((n[_n]||{}).proxies||{})[e.id+"_"+t];i&&B(r,t,i)}else V(r)}};pt.addEvent=N,pt.removeEvent=B;var Sn=xn._enabled?xn:{acquireContext:function(e){return e&&e.canvas&&(e=e.canvas),e&&e.getContext("2d")||null}},Tn=pt.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},Sn);ut._set("global",{plugins:{}});var $n={_plugins:[],_cacheId:0,register:function(e){var t=this._plugins;[].concat(e).forEach(function(e){-1===t.indexOf(e)&&t.push(e)}),this._cacheId++},unregister:function(e){var t=this._plugins;[].concat(e).forEach(function(e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(e,t,n){var r,i,o,a,s,l=this.descriptors(e),u=l.length;for(r=0;r<u;++r)if("function"==typeof(s=(o=(i=l[r]).plugin)[t])&&((a=[e].concat(n||[])).push(i.options),!1===s.apply(o,a)))return!1;return!0},descriptors:function(e){var t=e.$plugins||(e.$plugins={});if(t.id===this._cacheId)return t.descriptors;var n=[],r=[],i=e&&e.config||{},o=i.options&&i.options.plugins||{};return this._plugins.concat(i.plugins||[]).forEach(function(e){if(-1===n.indexOf(e)){var t=e.id,i=o[t];!1!==i&&(!0===i&&(i=pt.clone(ut.global.plugins[t])),n.push(e),r.push({plugin:e,options:i||{}}))}}),t.descriptors=r,t.id=this._cacheId,r},_invalidate:function(e){delete e.$plugins}},Dn={constructors:{},defaults:{},registerScaleType:function(e,t,n){this.constructors[e]=t,this.defaults[e]=pt.clone(n)},getScaleConstructor:function(e){return this.constructors.hasOwnProperty(e)?this.constructors[e]:void 0},getScaleDefaults:function(e){return this.defaults.hasOwnProperty(e)?pt.merge({},[ut.scale,this.defaults[e]]):{}},updateScaleDefaults:function(e,t){this.defaults.hasOwnProperty(e)&&(this.defaults[e]=pt.extend(this.defaults[e],t))},addScalesToLayout:function(e){pt.each(e.scales,function(t){t.fullWidth=t.options.fullWidth,t.position=t.options.position,t.weight=t.options.weight,gn.addBox(e,t)})}},Cn=pt.valueOrDefault,En=pt.rtl.getRtlAdapter;ut._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:pt.noop,title:function(e,t){var n="",r=t.labels,i=r?r.length:0;if(e.length>0){var o=e[0];o.label?n=o.label:o.xLabel?n=o.xLabel:i>0&&o.index<i&&(n=r[o.index])}return n},afterTitle:pt.noop,beforeBody:pt.noop,beforeLabel:pt.noop,label:function(e,t){var n=t.datasets[e.datasetIndex].label||"";return n&&(n+=": "),pt.isNullOrUndef(e.value)?n+=e.yLabel:n+=e.value,n},labelColor:function(e,t){var n=t.getDatasetMeta(e.datasetIndex).data[e.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:pt.noop,afterBody:pt.noop,beforeFooter:pt.noop,footer:pt.noop,afterFooter:pt.noop}}});var An={average:function(e){if(!e.length)return!1;var t,n,r=0,i=0,o=0;for(t=0,n=e.length;t<n;++t){var a=e[t];if(a&&a.hasValue()){var s=a.tooltipPosition();r+=s.x,i+=s.y,++o}}return{x:r/o,y:i/o}},nearest:function(e,t){var n,r,i,o=t.x,a=t.y,s=Number.POSITIVE_INFINITY;for(n=0,r=e.length;n<r;++n){var l=e[n];if(l&&l.hasValue()){var u=l.getCenterPoint(),c=pt.distanceBetweenPoints(t,u);c<s&&(s=c,i=l)}}if(i){var d=i.tooltipPosition();o=d.x,a=d.y}return{x:o,y:a}}},Pn=wt.extend({initialize:function(){this._model=q(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,n=t.callbacks,r=n.beforeTitle.apply(e,arguments),i=n.title.apply(e,arguments),o=n.afterTitle.apply(e,arguments),a=[];return a=U(a,W(r)),a=U(a,W(i)),a=U(a,W(o))},getBeforeBody:function(){return Z(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var n=this,r=n._options.callbacks,i=[];return pt.each(e,function(e){var o={before:[],lines:[],after:[]};U(o.before,W(r.beforeLabel.call(n,e,t))),U(o.lines,r.label.call(n,e,t)),U(o.after,W(r.afterLabel.call(n,e,t))),i.push(o)}),i},getAfterBody:function(){return Z(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,n=t.beforeFooter.apply(e,arguments),r=t.footer.apply(e,arguments),i=t.afterFooter.apply(e,arguments),o=[];return o=U(o,W(n)),o=U(o,W(r)),o=U(o,W(i))},update:function(e){var t,n,r,i,o,a,s,l,u,c,d=this,h=d._options,f=d._model,p=d._model=q(h),m=d._active,g=d._data,v={xAlign:f.xAlign,yAlign:f.yAlign},_={x:f.x,y:f.y},y={width:f.width,height:f.height},b={x:f.caretX,y:f.caretY};if(m.length){p.opacity=1;var w=[],L=[];b=An[h.position].call(d,m,d._eventPosition);var M=[];for(t=0,n=m.length;t<n;++t)M.push((r=m[t],i=void 0,o=void 0,a=void 0,s=void 0,l=void 0,u=void 0,c=void 0,i=r._xScale,o=r._yScale||r._scale,a=r._index,s=r._datasetIndex,l=r._chart.getDatasetMeta(s).controller,u=l._getIndexScale(),c=l._getValueScale(),{xLabel:i?i.getLabelForIndex(a,s):"",yLabel:o?o.getLabelForIndex(a,s):"",label:u?""+u.getLabelForIndex(a,s):"",value:c?""+c.getLabelForIndex(a,s):"",index:a,datasetIndex:s,x:r._model.x,y:r._model.y}));h.filter&&(M=M.filter(function(e){return h.filter(e,g)})),h.itemSort&&(M=M.sort(function(e,t){return h.itemSort(e,t,g)})),pt.each(M,function(e){w.push(h.callbacks.labelColor.call(d,e,d._chart)),L.push(h.callbacks.labelTextColor.call(d,e,d._chart))}),p.title=d.getTitle(M,g),p.beforeBody=d.getBeforeBody(M,g),p.body=d.getBody(M,g),p.afterBody=d.getAfterBody(M,g),p.footer=d.getFooter(M,g),p.x=b.x,p.y=b.y,p.caretPadding=h.caretPadding,p.labelColors=w,p.labelTextColors=L,p.dataPoints=M,y=function(e,t){var n=e._chart.ctx,r=2*t.yPadding,i=0,o=t.body,a=o.reduce(function(e,t){return e+t.before.length+t.lines.length+t.after.length},0);a+=t.beforeBody.length+t.afterBody.length;var s=t.title.length,l=t.footer.length,u=t.titleFontSize,c=t.bodyFontSize,d=t.footerFontSize;r+=s*u,r+=s?(s-1)*t.titleSpacing:0,r+=s?t.titleMarginBottom:0,r+=a*c,r+=a?(a-1)*t.bodySpacing:0,r+=l?t.footerMarginTop:0,r+=l*d,r+=l?(l-1)*t.footerSpacing:0;var h=0,f=function(e){i=Math.max(i,n.measureText(e).width+h)};return n.font=pt.fontString(u,t._titleFontStyle,t._titleFontFamily),pt.each(t.title,f),n.font=pt.fontString(c,t._bodyFontStyle,t._bodyFontFamily),pt.each(t.beforeBody.concat(t.afterBody),f),h=t.displayColors?c+2:0,pt.each(o,function(e){pt.each(e.before,f),pt.each(e.lines,f),pt.each(e.after,f)}),h=0,n.font=pt.fontString(d,t._footerFontStyle,t._footerFontFamily),pt.each(t.footer,f),{width:i+=2*t.xPadding,height:r}}(this,p),_=function(e,t,n,r){var i=e.x,o=e.y,a=e.caretSize,s=e.caretPadding,l=e.cornerRadius,u=n.xAlign,c=n.yAlign,d=a+s,h=l+s;return"right"===u?i-=t.width:"center"===u&&((i-=t.width/2)+t.width>r.width&&(i=r.width-t.width),i<0&&(i=0)),"top"===c?o+=d:o-="bottom"===c?t.height+d:t.height/2,"center"===c?"left"===u?i+=d:"right"===u&&(i-=d):"left"===u?i-=h:"right"===u&&(i+=h),{x:i,y:o}}(p,y,v=function(e,t){var n,r,i,o,a,s=e._model,l=e._chart,u=e._chart.chartArea,c="center",d="center";s.y<t.height?d="top":s.y>l.height-t.height&&(d="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===d?(n=function(e){return e<=h},r=function(e){return e>h}):(n=function(e){return e<=t.width/2},r=function(e){return e>=l.width-t.width/2}),i=function(e){return e+t.width+s.caretSize+s.caretPadding>l.width},o=function(e){return e-t.width-s.caretSize-s.caretPadding<0},a=function(e){return e<=f?"top":"bottom"},n(s.x)?(c="left",i(s.x)&&(c="center",d=a(s.y))):r(s.x)&&(c="right",o(s.x)&&(c="center",d=a(s.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:c,yAlign:p.yAlign?p.yAlign:d}}(this,y),d._chart)}else p.opacity=0;return p.xAlign=v.xAlign,p.yAlign=v.yAlign,p.x=_.x,p.y=_.y,p.width=y.width,p.height=y.height,p.caretX=b.x,p.caretY=b.y,d._model=p,e&&h.custom&&h.custom.call(d,p),d},drawCaret:function(e,t){var n=this._chart.ctx,r=this._view,i=this.getCaretPosition(e,t,r);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)},getCaretPosition:function(e,t,n){var r,i,o,a,s,l,u=n.caretSize,c=n.cornerRadius,d=n.xAlign,h=n.yAlign,f=e.x,p=e.y,m=t.width,g=t.height;if("center"===h)s=p+g/2,"left"===d?(i=(r=f)-u,o=r,a=s+u,l=s-u):(i=(r=f+m)+u,o=r,a=s-u,l=s+u);else if("left"===d?(r=(i=f+c+u)-u,o=i+u):"right"===d?(r=(i=f+m-c-u)-u,o=i+u):(r=(i=n.caretX)-u,o=i+u),"top"===h)s=(a=p)-u,l=a;else{s=(a=p+g)+u,l=a;var v=o;o=r,r=v}return{x1:r,x2:i,x3:o,y1:a,y2:s,y3:l}},drawTitle:function(e,t,n){var r,i,o,a=t.title,s=a.length;if(s){var l=En(t.rtl,t.x,t.width);for(e.x=G(t,t._titleAlign),n.textAlign=l.textAlign(t._titleAlign),n.textBaseline="middle",r=t.titleFontSize,i=t.titleSpacing,n.fillStyle=t.titleFontColor,n.font=pt.fontString(r,t._titleFontStyle,t._titleFontFamily),o=0;o<s;++o)n.fillText(a[o],l.x(e.x),e.y+r/2),e.y+=r+i,o+1===s&&(e.y+=t.titleMarginBottom-i)}},drawBody:function(e,t,n){var r,i,o,a,s,l,u,c,d=t.bodyFontSize,h=t.bodySpacing,f=t._bodyAlign,p=t.body,m=t.displayColors,g=0,v=m?G(t,"left"):0,_=En(t.rtl,t.x,t.width),y=function(t){n.fillText(t,_.x(e.x+g),e.y+d/2),e.y+=d+h},b=_.textAlign(f);for(n.textAlign=f,n.textBaseline="middle",n.font=pt.fontString(d,t._bodyFontStyle,t._bodyFontFamily),e.x=G(t,b),n.fillStyle=t.bodyFontColor,pt.each(t.beforeBody,y),g=m&&"right"!==b?"center"===f?d/2+1:d+2:0,s=0,u=p.length;s<u;++s){for(r=p[s],i=t.labelTextColors[s],o=t.labelColors[s],n.fillStyle=i,pt.each(r.before,y),l=0,c=(a=r.lines).length;l<c;++l){if(m){var w=_.x(v);n.fillStyle=t.legendColorBackground,n.fillRect(_.leftForLtr(w,d),e.y,d,d),n.lineWidth=1,n.strokeStyle=o.borderColor,n.strokeRect(_.leftForLtr(w,d),e.y,d,d),n.fillStyle=o.backgroundColor,n.fillRect(_.leftForLtr(_.xPlus(w,1),d-2),e.y+1,d-2,d-2),n.fillStyle=i}y(a[l])}pt.each(r.after,y)}g=0,pt.each(t.afterBody,y),e.y-=h},drawFooter:function(e,t,n){var r,i,o=t.footer,a=o.length;if(a){var s=En(t.rtl,t.x,t.width);for(e.x=G(t,t._footerAlign),e.y+=t.footerMarginTop,n.textAlign=s.textAlign(t._footerAlign),n.textBaseline="middle",r=t.footerFontSize,n.fillStyle=t.footerFontColor,n.font=pt.fontString(r,t._footerFontStyle,t._footerFontFamily),i=0;i<a;++i)n.fillText(o[i],s.x(e.x),e.y+r/2),e.y+=r+t.footerSpacing}},drawBackground:function(e,t,n,r){n.fillStyle=t.backgroundColor,n.strokeStyle=t.borderColor,n.lineWidth=t.borderWidth;var i=t.xAlign,o=t.yAlign,a=e.x,s=e.y,l=r.width,u=r.height,c=t.cornerRadius;n.beginPath(),n.moveTo(a+c,s),"top"===o&&this.drawCaret(e,r),n.lineTo(a+l-c,s),n.quadraticCurveTo(a+l,s,a+l,s+c),"center"===o&&"right"===i&&this.drawCaret(e,r),n.lineTo(a+l,s+u-c),n.quadraticCurveTo(a+l,s+u,a+l-c,s+u),"bottom"===o&&this.drawCaret(e,r),n.lineTo(a+c,s+u),n.quadraticCurveTo(a,s+u,a,s+u-c),"center"===o&&"left"===i&&this.drawCaret(e,r),n.lineTo(a,s+c),n.quadraticCurveTo(a,s,a+c,s),n.closePath(),n.fill(),t.borderWidth>0&&n.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},r={x:t.x,y:t.y},i=Math.abs(t.opacity<.001)?0:t.opacity,o=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&o&&(e.save(),e.globalAlpha=i,this.drawBackground(r,t,e,n),r.y+=t.yPadding,pt.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(r,t,e),this.drawBody(r,t,e),this.drawFooter(r,t,e),pt.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t,n=this,r=n._options;return n._lastActive=n._lastActive||[],"mouseout"===e.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(e,r.mode,r),r.reverse&&n._active.reverse()),(t=!pt.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(r.enabled||r.custom)&&(n._eventPosition={x:e.x,y:e.y},n.update(!0),n.pivot())),t}}),Yn=An,On=Pn;On.positioners=Yn;var In=pt.valueOrDefault;ut._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var jn=function(e,t){return this.construct(e,t),this};pt.extend(jn.prototype,{construct:function(e,t){var n=this;t=function(e){var t=(e=e||{}).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=X(ut.global,ut[e.type],e.options||{}),e}(t);var r=Tn.acquireContext(e,t),i=r&&r.canvas,o=i&&i.height,a=i&&i.width;n.id=pt.uid(),n.ctx=r,n.canvas=i,n.config=t,n.width=a,n.height=o,n.aspectRatio=o?a/o:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,jn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),r&&i?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return $n.notify(e,"beforeInit"),pt.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),$n.notify(e,"afterInit"),e},clear:function(){return pt.canvas.clear(this),this},stop:function(){return kt.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,r=t.canvas,i=n.maintainAspectRatio&&t.aspectRatio||null,o=Math.max(0,Math.floor(pt.getMaximumWidth(r))),a=Math.max(0,Math.floor(i?o/i:pt.getMaximumHeight(r)));if((t.width!==o||t.height!==a)&&(r.width=t.width=o,r.height=t.height=a,r.style.width=o+"px",r.style.height=a+"px",pt.retinaScale(t,n.devicePixelRatio),!e)){var s={width:o,height:a};$n.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;pt.each(t.xAxes,function(e,n){e.id||(e.id=Q(t.xAxes,"x-axis-",n))}),pt.each(t.yAxes,function(e,n){e.id||(e.id=Q(t.yAxes,"y-axis-",n))}),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},r=[],i=Object.keys(n).reduce(function(e,t){return e[t]=!1,e},{});t.scales&&(r=r.concat((t.scales.xAxes||[]).map(function(e){return{options:e,dtype:"category",dposition:"bottom"}}),(t.scales.yAxes||[]).map(function(e){return{options:e,dtype:"linear",dposition:"left"}}))),t.scale&&r.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),pt.each(r,function(t){var r=t.options,o=r.id,a=In(r.type,t.dtype);ee(r.position)!==ee(t.dposition)&&(r.position=t.dposition),i[o]=!0;var s=null;if(o in n&&n[o].type===a)(s=n[o]).options=r,s.ctx=e.ctx,s.chart=e;else{var l=Dn.getScaleConstructor(a);if(!l)return;s=new l({id:o,type:a,options:r,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)}),pt.each(i,function(e,t){e||delete n[t]}),e.scales=n,Dn.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,r=[],i=n.data.datasets;for(e=0,t=i.length;e<t;e++){var o=i[e],a=n.getDatasetMeta(e),s=o.type||n.config.type;if(a.type&&a.type!==s&&(n.destroyDatasetMeta(e),a=n.getDatasetMeta(e)),a.type=s,a.order=o.order||0,a.index=e,a.controller)a.controller.updateIndex(e),a.controller.linkScales();else{var l=hn[a.type];if(void 0===l)throw new Error('"'+a.type+'" is not a chart type.');a.controller=new l(n,e),r.push(a.controller)}}return r},resetElements:function(){var e=this;pt.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.reset()},e)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var t,n,r=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),K(r),$n._invalidate(r),!1!==$n.notify(r,"beforeUpdate")){r.tooltip._data=r.data;var i=r.buildOrUpdateControllers();for(t=0,n=r.data.datasets.length;t<n;t++)r.getDatasetMeta(t).controller.buildOrUpdateElements();r.updateLayout(),r.options.animation&&r.options.animation.duration&&pt.each(i,function(e){e.reset()}),r.updateDatasets(),r.tooltip.initialize(),r.lastActive=[],$n.notify(r,"afterUpdate"),r._layers.sort(te("z","_idx")),r._bufferedRender?r._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:r.render(e)}},updateLayout:function(){var e=this;!1!==$n.notify(e,"beforeLayout")&&(gn.update(this,this.width,this.height),e._layers=[],pt.each(e.boxes,function(t){t._configure&&t._configure(),e._layers.push.apply(e._layers,t._layers())},e),e._layers.forEach(function(e,t){e._idx=t}),$n.notify(e,"afterScaleUpdate"),$n.notify(e,"afterLayout"))},updateDatasets:function(){if(!1!==$n.notify(this,"beforeDatasetsUpdate")){for(var e=0,t=this.data.datasets.length;e<t;++e)this.updateDataset(e);$n.notify(this,"afterDatasetsUpdate")}},updateDataset:function(e){var t=this.getDatasetMeta(e),n={meta:t,index:e};!1!==$n.notify(this,"beforeDatasetUpdate",[n])&&(t.controller._update(),$n.notify(this,"afterDatasetUpdate",[n]))},render:function(e){var t=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var n=t.options.animation,r=In(e.duration,n&&n.duration),i=e.lazy;if(!1!==$n.notify(t,"beforeRender")){var o=function(e){$n.notify(t,"afterRender"),pt.callback(n&&n.onComplete,[e],t)};if(n&&r){var a=new Mt({numSteps:r/16.66,easing:e.easing||n.easing,render:function(e,t){var n=pt.easing.effects[t.easing],r=t.currentStep,i=r/t.numSteps;e.draw(n(i),i,r)},onAnimationProgress:n.onProgress,onAnimationComplete:o});kt.addAnimation(t,a,r,i)}else t.draw(),o(new Mt({numSteps:0,chart:t}));return t}},draw:function(e){var t,n,r=this;if(r.clear(),pt.isNullOrUndef(e)&&(e=1),r.transition(e),!(r.width<=0||r.height<=0)&&!1!==$n.notify(r,"beforeDraw",[e])){for(n=r._layers,t=0;t<n.length&&n[t].z<=0;++t)n[t].draw(r.chartArea);for(r.drawDatasets(e);t<n.length;++t)n[t].draw(r.chartArea);r._drawTooltip(e),$n.notify(r,"afterDraw",[e])}},transition:function(e){for(var t=0,n=(this.data.datasets||[]).length;t<n;++t)this.isDatasetVisible(t)&&this.getDatasetMeta(t).controller.transition(e);this.tooltip.transition(e)},_getSortedDatasetMetas:function(e){var t,n,r=[];for(t=0,n=(this.data.datasets||[]).length;t<n;++t)e&&!this.isDatasetVisible(t)||r.push(this.getDatasetMeta(t));return r.sort(te("order","index")),r},_getSortedVisibleDatasetMetas:function(){return this._getSortedDatasetMetas(!0)},drawDatasets:function(e){var t,n;if(!1!==$n.notify(this,"beforeDatasetsDraw",[e])){for(n=(t=this._getSortedVisibleDatasetMetas()).length-1;n>=0;--n)this.drawDataset(t[n],e);$n.notify(this,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n={meta:e,index:e.index,easingValue:t};!1!==$n.notify(this,"beforeDatasetDraw",[n])&&(e.controller.draw(t),$n.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(e){var t=this.tooltip,n={tooltip:t,easingValue:e};!1!==$n.notify(this,"beforeTooltipDraw",[n])&&(t.draw(),$n.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(e){return fn.modes.single(this,e)},getElementsAtEvent:function(e){return fn.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return fn.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var r=fn.modes[t];return"function"==typeof r?r(this,e,n):[]},getDatasetAtEvent:function(e){return fn.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var n=t._meta[this.id];return n||(n=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t.order||0,index:e}),n},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t<n;++t)this.isDatasetVisible(t)&&e++;return e},isDatasetVisible:function(e){var t=this.getDatasetMeta(e);return"boolean"==typeof t.hidden?!t.hidden:!this.data.datasets[e].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(e){var t=this.id,n=this.data.datasets[e],r=n._meta&&n._meta[t];r&&(r.controller.destroy(),delete n._meta[t])},destroy:function(){var e,t,n=this,r=n.canvas;for(n.stop(),e=0,t=n.data.datasets.length;e<t;++e)n.destroyDatasetMeta(e);r&&(n.unbindEvents(),pt.canvas.clear(n),Tn.releaseContext(n.ctx),n.canvas=null,n.ctx=null),$n.notify(n,"destroy"),delete jn.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new On({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var e=this,t=e._listeners={},n=function(){e.eventHandler.apply(e,arguments)};pt.each(e.options.events,function(r){Tn.addEventListener(e,r,n),t[r]=n}),e.options.responsive&&(n=function(){e.resize()},Tn.addEventListener(e,"resize",n),t.resize=n)},unbindEvents:function(){var e=this,t=e._listeners;t&&(delete e._listeners,pt.each(t,function(t,n){Tn.removeEventListener(e,n,t)}))},updateHoverStyle:function(e,t,n){var r,i,o,a=n?"set":"remove";for(i=0,o=e.length;i<o;++i)(r=e[i])&&this.getDatasetMeta(r._datasetIndex).controller[a+"HoverStyle"](r);"dataset"===t&&this.getDatasetMeta(e[0]._datasetIndex).controller["_"+a+"DatasetHoverStyle"]()},eventHandler:function(e){var t=this,n=t.tooltip;if(!1!==$n.notify(t,"beforeEvent",[e])){t._bufferedRender=!0,t._bufferedRequest=null;var r=t.handleEvent(e);n&&(r=n._start?n.handleEvent(e):r|n.handleEvent(e)),$n.notify(t,"afterEvent",[e]);var i=t._bufferedRequest;return i?t.render(i):r&&!t.animating&&(t.stop(),t.render({duration:t.options.hover.animationDuration,lazy:!0})),t._bufferedRender=!1,t._bufferedRequest=null,t}},handleEvent:function(e){var t,n=this,r=n.options||{},i=r.hover;return n.lastActive=n.lastActive||[],"mouseout"===e.type?n.active=[]:n.active=n.getElementsAtEventForMode(e,i.mode,i),pt.callback(r.onHover||r.hover.onHover,[e.native,n.active],n),"mouseup"!==e.type&&"click"!==e.type||r.onClick&&r.onClick.call(n,e.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,i.mode,!1),n.active.length&&i.mode&&n.updateHoverStyle(n.active,i.mode,!0),t=!pt.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,t}}),jn.instances={};var Hn=jn;jn.Controller=jn,jn.types={},pt.configMerge=X,pt.scaleMerge=J,pt.extend(re.prototype,{formats:ne,parse:ne,format:ne,add:ne,diff:ne,startOf:ne,endOf:ne,_create:function(e){return e}}),re.override=function(e){pt.extend(re.prototype,e)};var Nn={_date:re},Bn={formatters:{values:function(e){return pt.isArray(e)?e:""+e},linear:function(e,t,n){var r=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(r)>1&&e!==Math.floor(e)&&(r=e-Math.floor(e));var i=pt.log10(Math.abs(r)),o="";if(0!==e)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var a=pt.log10(Math.abs(e)),s=Math.floor(a)-Math.floor(i);s=Math.max(Math.min(s,20),0),o=e.toExponential(s)}else{var l=-1*Math.floor(i);l=Math.max(Math.min(l,20),0),o=e.toFixed(l)}else o="0";return o},logarithmic:function(e,t,n){var r=e/Math.pow(10,Math.floor(pt.log10(e)));return 0===e?"0":1===r||2===r||5===r||0===t||t===n.length-1?e.toExponential():""}}},Rn=pt.isArray,Fn=pt.isNullOrUndef,zn=pt.valueOrDefault,Vn=pt.valueAtIndexOrDefault;ut._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,
-callback:Bn.formatters.values,minor:{},major:{}}});var Un=wt.extend({zeroLineIndex:0,getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},_getLabels:function(){var e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]},mergeTicksOptions:function(){},beforeUpdate:function(){pt.callback(this.options.beforeUpdate,[this])},update:function(e,t,n){var r,i,o,a,s,l=this,u=l.options.ticks,c=u.sampleSize;if(l.beforeUpdate(),l.maxWidth=e,l.maxHeight=t,l.margins=pt.extend({left:0,right:0,top:0,bottom:0},n),l._ticks=null,l.ticks=null,l._labelSizes=null,l._maxLabelLines=0,l.longestLabelWidth=0,l.longestTextCache=l.longestTextCache||{},l._gridLineItems=null,l._labelItems=null,l.beforeSetDimensions(),l.setDimensions(),l.afterSetDimensions(),l.beforeDataLimits(),l.determineDataLimits(),l.afterDataLimits(),l.beforeBuildTicks(),a=l.buildTicks()||[],(!(a=l.afterBuildTicks(a)||a)||!a.length)&&l.ticks)for(a=[],r=0,i=l.ticks.length;r<i;++r)a.push({value:l.ticks[r],major:!1});return l._ticks=a,s=c<a.length,o=l._convertTicksToLabels(s?function(e,t){for(var n=[],r=e.length/t,i=0,o=e.length;i<o;i+=r)n.push(e[Math.floor(i)]);return n}(a,c):a),l._configure(),l.beforeCalculateTickRotation(),l.calculateTickRotation(),l.afterCalculateTickRotation(),l.beforeFit(),l.fit(),l.afterFit(),l._ticksToDraw=u.display&&(u.autoSkip||"auto"===u.source)?l._autoSkip(a):a,s&&(o=l._convertTicksToLabels(l._ticksToDraw)),l.ticks=o,l.afterUpdate(),l.minSize},_configure:function(){var e,t,n=this,r=n.options.ticks.reverse;n.isHorizontal()?(e=n.left,t=n.right):(e=n.top,t=n.bottom,r=!r),n._startPixel=e,n._endPixel=t,n._reversePixels=r,n._length=t-e},afterUpdate:function(){pt.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){pt.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0},afterSetDimensions:function(){pt.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){pt.callback(this.options.beforeDataLimits,[this])},determineDataLimits:pt.noop,afterDataLimits:function(){pt.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){pt.callback(this.options.beforeBuildTicks,[this])},buildTicks:pt.noop,afterBuildTicks:function(e){var t=this;return Rn(e)&&e.length?pt.callback(t.options.afterBuildTicks,[t,e]):(t.ticks=pt.callback(t.options.afterBuildTicks,[t,t.ticks])||t.ticks,e)},beforeTickToLabelConversion:function(){pt.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var e=this.options.ticks;this.ticks=this.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){pt.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){pt.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var e,t,n,r,i,o,a,s=this,l=s.options,u=l.ticks,c=s.getTicks().length,d=u.minRotation||0,h=u.maxRotation,f=d;!s._isVisible()||!u.display||d>=h||c<=1||!s.isHorizontal()?s.labelRotation=d:(t=(e=s._getLabelSizes()).widest.width,n=e.highest.height-e.highest.offset,r=Math.min(s.maxWidth,s.chart.width-t),t+6>(i=l.offset?s.maxWidth/c:r/(c-1))&&(i=r/(c-(l.offset?.5:1)),o=s.maxHeight-ae(l.gridLines)-u.padding-se(l.scaleLabel),a=Math.sqrt(t*t+n*n),f=pt.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/i,1)),Math.asin(Math.min(o/a,1))-Math.asin(n/a))),f=Math.max(d,Math.min(h,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){pt.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){pt.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},n=e.chart,r=e.options,i=r.ticks,o=r.scaleLabel,a=r.gridLines,s=e._isVisible(),l="bottom"===r.position,u=e.isHorizontal();if(u?t.width=e.maxWidth:s&&(t.width=ae(a)+se(o)),u?s&&(t.height=ae(a)+se(o)):t.height=e.maxHeight,i.display&&s){var c=ue(i),d=e._getLabelSizes(),h=d.first,f=d.last,p=d.widest,m=d.highest,g=.4*c.minor.lineHeight,v=i.padding;if(u){var _=0!==e.labelRotation,y=pt.toRadians(e.labelRotation),b=Math.cos(y),w=Math.sin(y),L=w*p.width+b*(m.height-(_?m.offset:0))+(_?0:g);t.height=Math.min(e.maxHeight,t.height+L+v);var M,k,x=e.getPixelForTick(0)-e.left,S=e.right-e.getPixelForTick(e.getTicks().length-1);_?(M=l?b*h.width+w*h.offset:w*(h.height-h.offset),k=l?w*(f.height-f.offset):b*f.width+w*f.offset):(M=h.width/2,k=f.width/2),e.paddingLeft=Math.max((M-x)*e.width/(e.width-x),0)+3,e.paddingRight=Math.max((k-S)*e.width/(e.width-S),0)+3}else{var T=i.mirror?0:p.width+v+g;t.width=Math.min(e.maxWidth,t.width+T),e.paddingTop=h.height/2,e.paddingBottom=f.height/2}}e.handleMargins(),u?(e.width=e._length=n.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=n.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){pt.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(Fn(e))return NaN;if(("number"==typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,n,r,i=this;for(i.ticks=e.map(function(e){return e.value}),i.beforeTickToLabelConversion(),t=i.convertTicksToLabels(e)||i.ticks,i.afterTickToLabelConversion(),n=0,r=e.length;n<r;++n)e[n].label=t[n];return t},_getLabelSizes:function(){var e=this,t=e._labelSizes;return t||(e._labelSizes=t=oe(e.ctx,ue(e.options.ticks),e.getTicks(),e.longestTextCache),e.longestLabelWidth=t.widest.width),t},_parseValue:function(e){var t,n,r,i;return Rn(e)?(t=+this.getRightValue(e[0]),n=+this.getRightValue(e[1]),r=Math.min(t,n),i=Math.max(t,n)):(t=void 0,n=e=+this.getRightValue(e),r=e,i=e),{min:r,max:i,start:t,end:n}},_getScaleLabel:function(e){var t=this._parseValue(e);return void 0!==t.start?"["+t.start+", "+t.end+"]":+this.getRightValue(e)},getLabelForIndex:pt.noop,getPixelForValue:pt.noop,getValueForPixel:pt.noop,getPixelForTick:function(e){var t=this.options.offset,n=this._ticks.length,r=1/Math.max(n-(t?0:1),1);return e<0||e>n-1?null:this.getPixelForDecimal(e*r+(t?r/2:0))},getPixelForDecimal:function(e){return this._reversePixels&&(e=1-e),this._startPixel+e*this._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,n,r,i,o=this.options.ticks,a=this._length,s=o.maxTicksLimit||a/this._tickSize()+1,l=o.major.enabled?function(e){var t,n,r=[];for(t=0,n=e.length;t<n;t++)e[t].major&&r.push(t);return r}(e):[],u=l.length,c=l[0],d=l[u-1];if(u>s)return function(e,t,n){var r,i,o=0,a=t[0];for(n=Math.ceil(n),r=0;r<e.length;r++)i=e[r],r===a?(i._index=r,a=t[++o*n]):delete i.label}(e,l,u/s),ce(e);if(r=function(e,t,n,r){var i,o,a,s,l=function(e){var t,n,r=e.length;if(r<2)return!1;for(n=e[0],t=1;t<r;++t)if(e[t]-e[t-1]!==n)return!1;return n}(e),u=(t.length-1)/r;if(!l)return Math.max(u,1);for(a=0,s=(i=pt.math._factorize(l)).length-1;a<s;a++)if((o=i[a])>u)return o;return Math.max(u,1)}(l,e,0,s),u>0){for(t=0,n=u-1;t<n;t++)de(e,r,l[t],l[t+1]);return i=u>1?(d-c)/(u-1):null,de(e,r,pt.isNullOrUndef(i)?0:c-i,c),de(e,r,d,pt.isNullOrUndef(i)?e.length:d+i),ce(e)}return de(e,r),ce(e)},_tickSize:function(){var e=this.options.ticks,t=pt.toRadians(this.labelRotation),n=Math.abs(Math.cos(t)),r=Math.abs(Math.sin(t)),i=this._getLabelSizes(),o=e.autoSkipPadding||0,a=i?i.widest.width+o:0,s=i?i.highest.height+o:0;return this.isHorizontal()?s*n>a*r?a/n:s/r:s*r<a*n?s/n:a/r},_isVisible:function(){var e,t,n,r=this.chart,i=this.options.display;if("auto"!==i)return!!i;for(e=0,t=r.data.datasets.length;e<t;++e)if(r.isDatasetVisible(e)&&((n=r.getDatasetMeta(e)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},_computeGridLineItems:function(e){var t,n,r,i,o,a,s,l,u,c,d,h,f,p,m,g,v,_=this,y=_.chart,b=_.options,w=b.gridLines,L=b.position,M=w.offsetGridLines,k=_.isHorizontal(),x=_._ticksToDraw,S=x.length+(M?1:0),T=ae(w),$=[],D=w.drawBorder?Vn(w.lineWidth,0,0):0,C=D/2,E=pt._alignPixel,A=function(e){return E(y,e,D)};for("top"===L?(t=A(_.bottom),s=_.bottom-T,u=t-C,d=A(e.top)+C,f=e.bottom):"bottom"===L?(t=A(_.top),d=e.top,f=A(e.bottom)-C,s=t+C,u=_.top+T):"left"===L?(t=A(_.right),a=_.right-T,l=t-C,c=A(e.left)+C,h=e.right):(t=A(_.left),c=e.left,h=A(e.right)-C,a=t+C,l=_.left+T),n=0;n<S;++n)r=x[n]||{},Fn(r.label)&&n<x.length||(n===_.zeroLineIndex&&b.offset===M?(p=w.zeroLineWidth,m=w.zeroLineColor,g=w.zeroLineBorderDash||[],v=w.zeroLineBorderDashOffset||0):(p=Vn(w.lineWidth,n,1),m=Vn(w.color,n,"rgba(0,0,0,0.1)"),g=w.borderDash||[],v=w.borderDashOffset||0),void 0!==(i=ie(_,r._index||n,M))&&(o=E(y,i,p),k?a=l=c=h=o:s=u=d=f=o,$.push({tx1:a,ty1:s,tx2:l,ty2:u,x1:c,y1:d,x2:h,y2:f,width:p,color:m,borderDash:g,borderDashOffset:v})));return $.ticksLength=S,$.borderValue=t,$},_computeLabelItems:function(){var e,t,n,r,i,o,a,s,l,u,c,d,h=this,f=h.options,p=f.ticks,m=f.position,g=p.mirror,v=h.isHorizontal(),_=h._ticksToDraw,y=ue(p),b=p.padding,w=ae(f.gridLines),L=-pt.toRadians(h.labelRotation),M=[];for("top"===m?(o=h.bottom-w-b,a=L?"left":"center"):"bottom"===m?(o=h.top+w+b,a=L?"right":"center"):"left"===m?(i=h.right-(g?0:w)-b,a=g?"left":"right"):(i=h.left+(g?0:w)+b,a=g?"right":"left"),e=0,t=_.length;e<t;++e)r=(n=_[e]).label,Fn(r)||(s=h.getPixelForTick(n._index||e)+p.labelOffset,u=(l=n.major?y.major:y.minor).lineHeight,c=Rn(r)?r.length:1,v?(i=s,d="top"===m?((L?1:.5)-c)*u:(L?0:.5)*u):(o=s,d=(1-c)*u/2),M.push({x:i,y:o,rotation:L,label:r,font:l,textOffset:d,textAlign:a}));return M},_drawGrid:function(e){var t=this,n=t.options.gridLines;if(n.display){var r,i,o,a,s,l=t.ctx,u=t.chart,c=pt._alignPixel,d=n.drawBorder?Vn(n.lineWidth,0,0):0,h=t._gridLineItems||(t._gridLineItems=t._computeGridLineItems(e));for(o=0,a=h.length;o<a;++o)r=(s=h[o]).width,i=s.color,r&&i&&(l.save(),l.lineWidth=r,l.strokeStyle=i,l.setLineDash&&(l.setLineDash(s.borderDash),l.lineDashOffset=s.borderDashOffset),l.beginPath(),n.drawTicks&&(l.moveTo(s.tx1,s.ty1),l.lineTo(s.tx2,s.ty2)),n.drawOnChartArea&&(l.moveTo(s.x1,s.y1),l.lineTo(s.x2,s.y2)),l.stroke(),l.restore());if(d){var f,p,m,g,v=d,_=Vn(n.lineWidth,h.ticksLength-1,1),y=h.borderValue;t.isHorizontal()?(f=c(u,t.left,v)-v/2,p=c(u,t.right,_)+_/2,m=g=y):(m=c(u,t.top,v)-v/2,g=c(u,t.bottom,_)+_/2,f=p=y),l.lineWidth=d,l.strokeStyle=Vn(n.color,0),l.beginPath(),l.moveTo(f,m),l.lineTo(p,g),l.stroke()}}},_drawLabels:function(){var e=this;if(e.options.ticks.display){var t,n,r,i,o,a,s,l,u=e.ctx,c=e._labelItems||(e._labelItems=e._computeLabelItems());for(t=0,r=c.length;t<r;++t){if(a=(o=c[t]).font,u.save(),u.translate(o.x,o.y),u.rotate(o.rotation),u.font=a.string,u.fillStyle=a.color,u.textBaseline="middle",u.textAlign=o.textAlign,s=o.label,l=o.textOffset,Rn(s))for(n=0,i=s.length;n<i;++n)u.fillText(""+s[n],0,l),l+=a.lineHeight;else u.fillText(s,0,l);u.restore()}}},_drawTitle:function(){var e=this,t=e.ctx,n=e.options,r=n.scaleLabel;if(r.display){var i,o,a=zn(r.fontColor,ut.global.defaultFontColor),s=pt.options._parseFont(r),l=pt.options.toPadding(r.padding),u=s.lineHeight/2,c=n.position,d=0;if(e.isHorizontal())i=e.left+e.width/2,o="bottom"===c?e.bottom-u-l.bottom:e.top+u+l.top;else{var h="left"===c;i=h?e.left+u+l.top:e.right-u-l.top,o=e.top+e.height/2,d=h?-.5*Math.PI:.5*Math.PI}t.save(),t.translate(i,o),t.rotate(d),t.textAlign="center",t.textBaseline="middle",t.fillStyle=a,t.font=s.string,t.fillText(r.labelString,0,0),t.restore()}},draw:function(e){this._isVisible()&&(this._drawGrid(e),this._drawTitle(),this._drawLabels())},_layers:function(){var e=this,t=e.options,n=t.ticks&&t.ticks.z||0,r=t.gridLines&&t.gridLines.z||0;return e._isVisible()&&n!==r&&e.draw===e._draw?[{z:r,draw:function(){e._drawGrid.apply(e,arguments),e._drawTitle.apply(e,arguments)}},{z:n,draw:function(){e._drawLabels.apply(e,arguments)}}]:[{z:n,draw:function(){e.draw.apply(e,arguments)}}]},_getMatchingVisibleMetas:function(e){var t=this,n=t.isHorizontal();return t.chart._getSortedVisibleDatasetMetas().filter(function(r){return(!e||r.type===e)&&(n?r.xAxisID===t.id:r.yAxisID===t.id)})}});Un.prototype._draw=Un.prototype.draw;var Wn=Un,qn=pt.isNullOrUndef,Gn=Wn.extend({determineDataLimits:function(){var e,t=this,n=t._getLabels(),r=t.options.ticks,i=r.min,o=r.max,a=0,s=n.length-1;void 0!==i&&(e=n.indexOf(i))>=0&&(a=e),void 0!==o&&(e=n.indexOf(o))>=0&&(s=e),t.minIndex=a,t.maxIndex=s,t.min=n[a],t.max=n[s]},buildTicks:function(){var e=this._getLabels(),t=this.minIndex,n=this.maxIndex;this.ticks=0===t&&n===e.length-1?e:e.slice(t,n+1)},getLabelForIndex:function(e,t){var n=this.chart;return n.getDatasetMeta(t).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[t].data[e]):this._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;Wn.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var r,i,o,a=this;return qn(t)||qn(n)||(e=a.chart.data.datasets[n].data[t]),qn(e)||(r=a.isHorizontal()?e.x:e.y),(void 0!==r||void 0!==e&&isNaN(t))&&(i=a._getLabels(),e=pt.valueOrDefault(r,e),t=-1!==(o=i.indexOf(e))?o:t,isNaN(t)&&(t=e)),a.getPixelForDecimal((t-a._startValue)/a._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange);return Math.min(Math.max(t,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}}),Zn={position:"bottom"};Gn._defaults=Zn;var Jn=pt.noop,Xn=pt.isNullOrUndef,Kn=Wn.extend({getRightValue:function(e){return"string"==typeof e?+e:Wn.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var n=pt.sign(e.min),r=pt.sign(e.max);n<0&&r<0?e.max=0:n>0&&r>0&&(e.min=0)}var i=void 0!==t.min||void 0!==t.suggestedMin,o=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),i!==o&&e.min>=e.max&&(i?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this.options.ticks,n=t.stepSize,r=t.maxTicksLimit;return n?e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(e=this._computeTickLimit(),r=r||11),r&&(e=Math.min(r,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Jn,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,precision:t.precision,stepSize:pt.valueOrDefault(t.fixedStepSize,t.stepSize)},i=e.ticks=function(e,t){var n,r,i,o,a=[],s=e.stepSize,l=s||1,u=e.maxTicks-1,c=e.min,d=e.max,h=e.precision,f=t.min,p=t.max,m=pt.niceNum((p-f)/u/l)*l;if(m<1e-14&&Xn(c)&&Xn(d))return[f,p];(o=Math.ceil(p/m)-Math.floor(f/m))>u&&(m=pt.niceNum(o*m/u/l)*l),s||Xn(h)?n=Math.pow(10,pt._decimalPlaces(m)):(n=Math.pow(10,h),m=Math.ceil(m*n)/n),r=Math.floor(f/m)*m,i=Math.ceil(p/m)*m,s&&(!Xn(c)&&pt.almostWhole(c/m,m/1e3)&&(r=c),!Xn(d)&&pt.almostWhole(d/m,m/1e3)&&(i=d)),o=(i-r)/m,o=pt.almostEquals(o,Math.round(o),m/1e3)?Math.round(o):Math.ceil(o),r=Math.round(r*n)/n,i=Math.round(i*n)/n,a.push(Xn(c)?r:c);for(var g=1;g<o;++g)a.push(Math.round((r+g*m)*n)/n);return a.push(Xn(d)?i:d),a}(r,e);e.handleDirectionalChanges(),e.max=pt.max(i),e.min=pt.min(i),t.reverse?(i.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),Wn.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),r=t.min,i=t.max;Wn.prototype._configure.call(t),t.options.offset&&n.length&&(r-=e=(i-r)/Math.max(n.length-1,1)/2,i+=e),t._startValue=r,t._endValue=i,t._valueRange=i-r}}),Qn={position:"left",ticks:{callback:Bn.formatters.linear}},er=Kn.extend({determineDataLimits:function(){var e,t,n,r,i=this,o=i.options,a=i.chart.data.datasets,s=i._getMatchingVisibleMetas(),l=o.stacked,u={},c=s.length;if(i.min=Number.POSITIVE_INFINITY,i.max=Number.NEGATIVE_INFINITY,void 0===l)for(e=0;!l&&e<c;++e)l=void 0!==(t=s[e]).stack;for(e=0;e<c;++e)n=a[(t=s[e]).index].data,l?he(i,u,t,n):fe(i,t,n);pt.each(u,function(e){r=e.pos.concat(e.neg),i.min=Math.min(i.min,pt.min(r)),i.max=Math.max(i.max,pt.max(r))}),i.min=pt.isFinite(i.min)&&!isNaN(i.min)?i.min:0,i.max=pt.isFinite(i.max)&&!isNaN(i.max)?i.max:1,i.handleTickRangeOptions()},_computeTickLimit:function(){var e;return this.isHorizontal()?Math.ceil(this.width/40):(e=pt.options._parseFont(this.options.ticks),Math.ceil(this.height/e.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForValue:function(e){return this.getPixelForDecimal((+this.getRightValue(e)-this._startValue)/this._valueRange)},getValueForPixel:function(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange},getPixelForTick:function(e){var t=this.ticksAsNumbers;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])}}),tr=Qn;er._defaults=tr;var nr=pt.valueOrDefault,rr=pt.math.log10,ir={position:"left",ticks:{callback:Bn.formatters.logarithmic}},or=Wn.extend({determineDataLimits:function(){function e(e){return d?e.xAxisID===s.id:e.yAxisID===s.id}var t,n,r,i,o,a,s=this,l=s.options,u=s.chart,c=u.data.datasets,d=s.isHorizontal();s.min=Number.POSITIVE_INFINITY,s.max=Number.NEGATIVE_INFINITY,s.minNotZero=Number.POSITIVE_INFINITY;var h=l.stacked;if(void 0===h)for(t=0;t<c.length;t++)if(n=u.getDatasetMeta(t),u.isDatasetVisible(t)&&e(n)&&void 0!==n.stack){h=!0;break}if(l.stacked||h){var f={};for(t=0;t<c.length;t++){var p=[(n=u.getDatasetMeta(t)).type,void 0===l.stacked&&void 0===n.stack?t:"",n.stack].join(".");if(u.isDatasetVisible(t)&&e(n))for(void 0===f[p]&&(f[p]=[]),o=0,a=(i=c[t].data).length;o<a;o++){var m=f[p];r=s._parseValue(i[o]),isNaN(r.min)||isNaN(r.max)||n.data[o].hidden||r.min<0||r.max<0||(m[o]=m[o]||0,m[o]+=r.max)}}pt.each(f,function(e){if(e.length>0){var t=pt.min(e),n=pt.max(e);s.min=Math.min(s.min,t),s.max=Math.max(s.max,n)}})}else for(t=0;t<c.length;t++)if(n=u.getDatasetMeta(t),u.isDatasetVisible(t)&&e(n))for(o=0,a=(i=c[t].data).length;o<a;o++)r=s._parseValue(i[o]),isNaN(r.min)||isNaN(r.max)||n.data[o].hidden||r.min<0||r.max<0||(s.min=Math.min(r.min,s.min),s.max=Math.max(r.max,s.max),0!==r.min&&(s.minNotZero=Math.min(r.min,s.minNotZero)));s.min=pt.isFinite(s.min)?s.min:null,s.max=pt.isFinite(s.max)?s.max:null,s.minNotZero=pt.isFinite(s.minNotZero)?s.minNotZero:null,this.handleTickRangeOptions()},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;e.min=pe(t.min,e.min),e.max=pe(t.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(rr(e.min))-1),e.max=Math.pow(10,Math.floor(rr(e.max))+1)):(e.min=1,e.max=10)),null===e.min&&(e.min=Math.pow(10,Math.floor(rr(e.max))-1)),null===e.max&&(e.max=0!==e.min?Math.pow(10,Math.floor(rr(e.min))+1):10),null===e.minNotZero&&(e.min>0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(rr(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),r={min:pe(t.min),max:pe(t.max)},i=e.ticks=function(e,t){var n,r,i=[],o=nr(e.min,Math.pow(10,Math.floor(rr(t.min)))),a=Math.floor(rr(t.max)),s=Math.ceil(t.max/Math.pow(10,a));0===o?(n=Math.floor(rr(t.minNotZero)),r=Math.floor(t.minNotZero/Math.pow(10,n)),i.push(o),o=r*Math.pow(10,n)):(n=Math.floor(rr(o)),r=Math.floor(o/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{i.push(o),10==++r&&(r=1,l=++n>=0?1:l),o=Math.round(r*Math.pow(10,n)*l)/l}while(n<a||n===a&&r<s);var u=nr(e.max,o);return i.push(u),i}(r,e);e.max=pt.max(i),e.min=pt.min(i),t.reverse?(n=!n,e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max),n&&i.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),Wn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(e,t){return this._getScaleLabel(this.chart.data.datasets[t].data[e])},getPixelForTick:function(e){var t=this.tickValues;return e<0||e>t.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(rr(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,n=0;Wn.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),n=nr(e.options.ticks.fontSize,ut.global.defaultFontSize)/e._length),e._startValue=rr(t),e._valueOffset=n,e._valueRange=(rr(e.max)-rr(t))/(1-n)},getPixelForValue:function(e){var t=this,n=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(n=(rr(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(n)},getValueForPixel:function(e){var t=this,n=t.getDecimalForPixel(e);return 0===n&&0===t.min?0:Math.pow(10,t._startValue+(n-t._valueOffset)*t._valueRange)}}),ar=ir;or._defaults=ar;var sr=pt.valueOrDefault,lr=pt.valueAtIndexOrDefault,ur=pt.options.resolve,cr={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Bn.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}},dr=Kn.extend({setDimensions:function(){var e=this;e.width=e.maxWidth,e.height=e.maxHeight,e.paddingTop=me(e.options)/2,e.xCenter=Math.floor(e.width/2),e.yCenter=Math.floor((e.height-e.paddingTop)/2),e.drawingArea=Math.min(e.height-e.paddingTop,e.width)/2},determineDataLimits:function(){var e=this,t=e.chart,n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;pt.each(t.data.datasets,function(i,o){if(t.isDatasetVisible(o)){var a=t.getDatasetMeta(o);pt.each(i.data,function(t,i){var o=+e.getRightValue(t);isNaN(o)||a.data[i].hidden||(n=Math.min(o,n),r=Math.max(o,r))})}}),e.min=n===Number.POSITIVE_INFINITY?0:n,e.max=r===Number.NEGATIVE_INFINITY?0:r,e.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/me(this.options))},convertTicksToLabels:function(){var e=this;Kn.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(function(){var t=pt.callback(e.options.pointLabels.callback,arguments,e);return t||0===t?t:""})},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},fit:function(){var e=this.options;e.display&&e.pointLabels.display?function(e){var t,n,r,i=pt.options._parseFont(e.options.pointLabels),o={l:0,r:e.width,t:0,b:e.height-e.paddingTop},a={};e.ctx.font=i.string,e._pointLabelSizes=[];var s,l,u,c=e.chart.data.labels.length;for(t=0;t<c;t++){r=e.getPointPosition(t,e.drawingArea+5),s=e.ctx,l=i.lineHeight,u=e.pointLabels[t],n=pt.isArray(u)?{w:pt.longestText(s,s.font,u),h:u.length*l}:{w:s.measureText(u).width,h:l},e._pointLabelSizes[t]=n;var d=e.getIndexAngle(t),h=pt.toDegrees(d)%360,f=ge(h,r.x,n.w,0,180),p=ge(h,r.y,n.h,90,270);f.start<o.l&&(o.l=f.start,a.l=d),f.end>o.r&&(o.r=f.end,a.r=d),p.start<o.t&&(o.t=p.start,a.t=d),p.end>o.b&&(o.b=p.end,a.b=d)}e.setReductions(e.drawingArea,o,a)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(e,t,n){var r=this,i=t.l/Math.sin(n.l),o=Math.max(t.r-r.width,0)/Math.sin(n.r),a=-t.t/Math.cos(n.t),s=-Math.max(t.b-(r.height-r.paddingTop),0)/Math.cos(n.b);i=be(i),o=be(o),a=be(a),s=be(s),r.drawingArea=Math.min(Math.floor(e-(i+o)/2),Math.floor(e-(a+s)/2)),r.setCenterPoint(i,o,a,s)},setCenterPoint:function(e,t,n,r){var i=this,o=i.width-t-i.drawingArea,a=e+i.drawingArea,s=n+i.drawingArea,l=i.height-i.paddingTop-r-i.drawingArea;i.xCenter=Math.floor((a+o)/2+i.left),i.yCenter=Math.floor((s+l)/2+i.top+i.paddingTop)},getIndexAngle:function(e){var t=this.chart,n=(e*(360/t.data.labels.length)+((t.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(pt.isNullOrUndef(e))return NaN;var n=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*n:(e-t.min)*n},getPointPosition:function(e,t){var n=this.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(n)*t+this.xCenter,y:Math.sin(n)*t+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(e){var t=this.min,n=this.max;return this.getPointPositionForValue(e||0,this.beginAtZero?0:t<0&&n<0?n:t>0&&n>0?t:0)},_drawGrid:function(){var e,t,n,r=this,i=r.ctx,o=r.options,a=o.gridLines,s=o.angleLines,l=sr(s.lineWidth,a.lineWidth),u=sr(s.color,a.color);if(o.pointLabels.display&&function(e){var t=e.ctx,n=e.options,r=n.pointLabels,i=me(n),o=e.getDistanceFromCenterForValue(n.ticks.reverse?e.min:e.max),a=pt.options._parseFont(r);t.save(),t.font=a.string,t.textBaseline="middle";for(var s=e.chart.data.labels.length-1;s>=0;s--){var l=0===s?i/2:0,u=e.getPointPosition(s,o+l+5),c=lr(r.fontColor,s,ut.global.defaultFontColor);t.fillStyle=c;var d=e.getIndexAngle(s),h=pt.toDegrees(d);t.textAlign=ve(h),ye(h,e._pointLabelSizes[s],u),_e(t,e.pointLabels[s],u,a.lineHeight)}t.restore()}(r),a.display&&pt.each(r.ticks,function(e,n){0!==n&&(t=r.getDistanceFromCenterForValue(r.ticksAsNumbers[n]),function(e,t,n,r){var i,o=e.ctx,a=t.circular,s=e.chart.data.labels.length,l=lr(t.color,r-1),u=lr(t.lineWidth,r-1);if((a||s)&&l&&u){if(o.save(),o.strokeStyle=l,o.lineWidth=u,o.setLineDash&&(o.setLineDash(t.borderDash||[]),o.lineDashOffset=t.borderDashOffset||0),o.beginPath(),a)o.arc(e.xCenter,e.yCenter,n,0,2*Math.PI);else{i=e.getPointPosition(0,n),o.moveTo(i.x,i.y);for(var c=1;c<s;c++)i=e.getPointPosition(c,n),o.lineTo(i.x,i.y)}o.closePath(),o.stroke(),o.restore()}}(r,a,t,n))}),s.display&&l&&u){for(i.save(),i.lineWidth=l,i.strokeStyle=u,i.setLineDash&&(i.setLineDash(ur([s.borderDash,a.borderDash,[]])),i.lineDashOffset=ur([s.borderDashOffset,a.borderDashOffset,0])),e=r.chart.data.labels.length-1;e>=0;e--)t=r.getDistanceFromCenterForValue(o.ticks.reverse?r.min:r.max),n=r.getPointPosition(e,t),i.beginPath(),i.moveTo(r.xCenter,r.yCenter),i.lineTo(n.x,n.y),i.stroke();i.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options.ticks;if(n.display){var r,i,o=e.getIndexAngle(0),a=pt.options._parseFont(n),s=sr(n.fontColor,ut.global.defaultFontColor);t.save(),t.font=a.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",pt.each(e.ticks,function(o,l){(0!==l||n.reverse)&&(r=e.getDistanceFromCenterForValue(e.ticksAsNumbers[l]),n.showLabelBackdrop&&(i=t.measureText(o).width,t.fillStyle=n.backdropColor,t.fillRect(-i/2-n.backdropPaddingX,-r-a.size/2-n.backdropPaddingY,i+2*n.backdropPaddingX,a.size+2*n.backdropPaddingY)),t.fillStyle=s,t.fillText(o,0,-r))}),t.restore()}},_drawTitle:pt.noop}),hr=cr;dr._defaults=hr;var fr=pt._deprecated,pr=pt.options.resolve,mr=pt.valueOrDefault,gr=Number.MIN_SAFE_INTEGER||-9007199254740991,vr=Number.MAX_SAFE_INTEGER||9007199254740991,_r={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},yr=Object.keys(_r),br=Wn.extend({initialize:function(){this.mergeTicksOptions(),Wn.prototype.initialize.call(this)},update:function(){var e=this,t=e.options,n=t.time||(t.time={}),r=e._adapter=new Nn._date(t.adapters.date);return fr("time scale",n.format,"time.format","time.parser"),fr("time scale",n.min,"time.min","ticks.min"),fr("time scale",n.max,"time.max","ticks.max"),pt.mergeIf(n.displayFormats,r.formats()),Wn.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),Wn.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var e,t,n,r,i,o,a,s=this,l=s.chart,u=s._adapter,c=s.options,d=c.time.unit||"day",h=vr,f=gr,p=[],m=[],g=[],v=s._getLabels();for(e=0,n=v.length;e<n;++e)g.push(Se(s,v[e]));for(e=0,n=(l.data.datasets||[]).length;e<n;++e)if(l.isDatasetVisible(e))if(i=l.data.datasets[e].data,pt.isObject(i[0]))for(m[e]=[],t=0,r=i.length;t<r;++t)o=Se(s,i[t]),p.push(o),m[e][t]=o;else m[e]=g.slice(0),a||(p=p.concat(g),a=!0);else m[e]=[];g.length&&(h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),p.length&&(p=n>1?function(e){var t,n,r,i={},o=[];for(t=0,n=e.length;t<n;++t)i[r=e[t]]||(i[r]=!0,o.push(r));return o}(p).sort(we):p.sort(we),h=Math.min(h,p[0]),f=Math.max(f,p[p.length-1])),h=Se(s,Le(c))||h,f=Se(s,Me(c))||f,h=h===vr?+u.startOf(Date.now(),d):h,f=f===gr?+u.endOf(Date.now(),d)+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._table=[],s._timestamps={data:p,datasets:m,labels:g}},buildTicks:function(){var e,t,n,r=this,i=r.min,o=r.max,a=r.options,s=a.ticks,l=a.time,u=r._timestamps,c=[],d=r.getLabelCapacity(i),h=s.source,f=a.distribution;for(u="data"===h||"auto"===h&&"series"===f?u.data:"labels"===h?u.labels:function(e,t,n,r){var i,o=e._adapter,a=e.options,s=a.time,l=s.unit||Te(s.minUnit,t,n,r),u=pr([s.stepSize,s.unitStepSize,1]),c="week"===l&&s.isoWeekday,d=t,h=[];if(c&&(d=+o.startOf(d,"isoWeek",c)),d=+o.startOf(d,c?"day":l),o.diff(n,t,l)>1e5*u)throw t+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(i=d;i<n;i=+o.add(i,u,l))h.push(i);return i!==n&&"ticks"!==a.bounds||h.push(i),h}(r,i,o,d),"ticks"===a.bounds&&u.length&&(i=u[0],o=u[u.length-1]),i=Se(r,Le(a))||i,o=Se(r,Me(a))||o,e=0,t=u.length;e<t;++e)(n=u[e])>=i&&n<=o&&c.push(n);return r.min=i,r.max=o,r._unit=l.unit||(s.autoSkip?Te(l.minUnit,r.min,r.max,d):function(e,t,n,r,i){var o,a;for(o=yr.length-1;o>=yr.indexOf(n);o--)if(a=yr[o],_r[a].common&&e._adapter.diff(i,r,a)>=t-1)return a;return yr[n?yr.indexOf(n):0]}(r,c.length,l.minUnit,r.min,r.max)),r._majorUnit=s.major.enabled&&"year"!==r._unit?function(e){for(var t=yr.indexOf(e)+1,n=yr.length;t<n;++t)if(_r[yr[t]].common)return yr[t]}(r._unit):void 0,r._table=function(e,t,n,r){if("linear"===r||!e.length)return[{time:t,pos:0},{time:n,pos:1}];var i,o,a,s,l,u=[],c=[t];for(i=0,o=e.length;i<o;++i)(s=e[i])>t&&s<n&&c.push(s);for(c.push(n),i=0,o=c.length;i<o;++i)l=c[i+1],a=c[i-1],s=c[i],void 0!==a&&void 0!==l&&Math.round((l+a)/2)===s||u.push({time:s,pos:i/(o-1)});return u}(r._timestamps.data,i,o,f),r._offsets=function(e,t,n,r,i){var o,a,s=0,l=0;return i.offset&&t.length&&(o=ke(e,"time",t[0],"pos"),s=1===t.length?1-o:(ke(e,"time",t[1],"pos")-o)/2,a=ke(e,"time",t[t.length-1],"pos"),l=1===t.length?a:(a-ke(e,"time",t[t.length-2],"pos"))/2),{start:s,end:l,factor:1/(s+1+l)}}(r._table,c,0,0,a),s.reverse&&c.reverse(),$e(r,c,r._majorUnit)},getLabelForIndex:function(e,t){var n=this,r=n._adapter,i=n.chart.data,o=n.options.time,a=i.labels&&e<i.labels.length?i.labels[e]:"",s=i.datasets[t].data[e];return pt.isObject(s)&&(a=n.getRightValue(s)),
-o.tooltipFormat?r.format(xe(n,a),o.tooltipFormat):"string"==typeof a?a:r.format(xe(n,a),o.displayFormats.datetime)},tickFormatFunction:function(e,t,n,r){var i=this._adapter,o=this.options,a=o.time.displayFormats,s=a[this._unit],l=this._majorUnit,u=a[l],c=n[t],d=o.ticks,h=l&&u&&c&&c.major,f=i.format(e,r||(h?u:s)),p=h?d.major:d.minor,m=pr([p.callback,p.userCallback,d.callback,d.userCallback]);return m?m(f,t,n):f},convertTicksToLabels:function(e){var t,n,r=[];for(t=0,n=e.length;t<n;++t)r.push(this.tickFormatFunction(e[t].value,t,e));return r},getPixelForOffset:function(e){var t=this._offsets,n=ke(this._table,"time",e,"pos");return this.getPixelForDecimal((t.start+n)*t.factor)},getPixelForValue:function(e,t,n){var r=null;if(void 0!==t&&void 0!==n&&(r=this._timestamps.datasets[n][t]),null===r&&(r=Se(this,e)),null!==r)return this.getPixelForOffset(r)},getPixelForTick:function(e){var t=this.getTicks();return e>=0&&e<t.length?this.getPixelForOffset(t[e].value):null},getValueForPixel:function(e){var t=this._offsets,n=this.getDecimalForPixel(e)/t.factor-t.end,r=ke(this._table,"pos",n,"time");return this._adapter._create(r)},_getLabelSize:function(e){var t=this.options.ticks,n=this.ctx.measureText(e).width,r=pt.toRadians(this.isHorizontal()?t.maxRotation:t.minRotation),i=Math.cos(r),o=Math.sin(r),a=mr(t.fontSize,ut.global.defaultFontSize);return{w:n*i+a*o,h:n*o+a*i}},getLabelWidth:function(e){return this._getLabelSize(e).w},getLabelCapacity:function(e){var t=this,n=t.options.time,r=n.displayFormats,i=r[n.unit]||r.millisecond,o=t.tickFormatFunction(e,0,$e(t,[e],t._majorUnit),i),a=t._getLabelSize(o),s=Math.floor(t.isHorizontal()?t.width/a.w:t.height/a.h);return t.options.offset&&s--,s>0?s:1}}),wr={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};br._defaults=wr;var Lr={category:Gn,linear:er,logarithmic:or,radialLinear:dr,time:br},Mr={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Nn._date.override("function"==typeof e?{_id:"moment",formats:function(){return Mr},parse:function(t,n){return"string"==typeof t&&"string"==typeof n?t=e(t,n):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,n){return e(t).format(n)},add:function(t,n,r){return e(t).add(n,r).valueOf()},diff:function(t,n,r){return e(t).diff(e(n),r)},startOf:function(t,n,r){return t=e(t),"isoWeek"===n?t.isoWeekday(r).valueOf():t.startOf(n).valueOf()},endOf:function(t,n){return e(t).endOf(n).valueOf()},_create:function(t){return e(t)}}:{}),ut._set("global",{plugins:{filler:{propagate:!0}}});var kr={dataset:function(e){var t=e.fill,n=e.chart,r=n.getDatasetMeta(t),i=r&&n.isDatasetVisible(t)&&r.dataset._children||[],o=i.length||0;return o?function(e,t){return t<o&&i[t]._view||null}:null},boundary:function(e){var t=e.boundary,n=t?t.x:null,r=t?t.y:null;return pt.isArray(t)?function(e,n){return t[n]}:function(e){return{x:null===n?e.x:n,y:null===r?e.y:r}}}},xr={id:"filler",afterDatasetsUpdate:function(e,t){var n,r,i,o,a=(e.data.datasets||[]).length,s=t.propagate,l=[];for(r=0;r<a;++r)o=null,(i=(n=e.getDatasetMeta(r)).dataset)&&i._model&&i instanceof Nt.Line&&(o={visible:e.isDatasetVisible(r),fill:De(i,r,a),chart:e,el:i}),n.$filler=o,l.push(o);for(r=0;r<a;++r)(o=l[r])&&(o.fill=Ee(l,r,s),o.boundary=Ce(o),o.mapper=Ae(o))},beforeDatasetsDraw:function(e){var t,n,r,i,o,a,s,l=e._getSortedVisibleDatasetMetas(),u=e.ctx;for(n=l.length-1;n>=0;--n)(t=l[n].$filler)&&t.visible&&(i=(r=t.el)._view,o=r._children||[],a=t.mapper,s=i.backgroundColor||ut.global.defaultColor,a&&s&&o.length&&(pt.canvas.clipArea(u,e.chartArea),Oe(u,o,a,i,s,r._loop),pt.canvas.unclipArea(u)))}},Sr=pt.rtl.getRtlAdapter,Tr=pt.noop,$r=pt.valueOrDefault;ut._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,r=this.chart,i=r.getDatasetMeta(n);i.hidden=null===i.hidden?!r.data.datasets[n].hidden:null,r.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},r=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map(function(n){var i=n.controller.getStyle(r?0:void 0);return{text:t[n.index].label,fillStyle:i.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:i.borderCapStyle,lineDash:i.borderDash,lineDashOffset:i.borderDashOffset,lineJoin:i.borderJoinStyle,lineWidth:i.borderWidth,strokeStyle:i.borderColor,pointStyle:i.pointStyle,rotation:i.rotation,datasetIndex:n.index}},this)}}},legendCallback:function(e){var t,n,r,i=document.createElement("ul"),o=e.data.datasets;for(i.setAttribute("class",e.id+"-legend"),t=0,n=o.length;t<n;t++)(r=i.appendChild(document.createElement("li"))).appendChild(document.createElement("span")).style.backgroundColor=o[t].backgroundColor,o[t].label&&r.appendChild(document.createTextNode(o[t].label));return i.outerHTML}});var Dr=wt.extend({initialize:function(e){pt.extend(this,e),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:Tr,update:function(e,t,n){var r=this;return r.beforeUpdate(),r.maxWidth=e,r.maxHeight=t,r.margins=n,r.beforeSetDimensions(),r.setDimensions(),r.afterSetDimensions(),r.beforeBuildLabels(),r.buildLabels(),r.afterBuildLabels(),r.beforeFit(),r.fit(),r.afterFit(),r.afterUpdate(),r.minSize},afterUpdate:Tr,beforeSetDimensions:Tr,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:Tr,beforeBuildLabels:Tr,buildLabels:function(){var e=this,t=e.options.labels||{},n=pt.callback(t.generateLabels,[e.chart],e)||[];t.filter&&(n=n.filter(function(n){return t.filter(n,e.chart.data)})),e.options.reverse&&n.reverse(),e.legendItems=n},afterBuildLabels:Tr,beforeFit:Tr,fit:function(){var e=this,t=e.options,n=t.labels,r=t.display,i=e.ctx,o=pt.options._parseFont(n),a=o.size,s=e.legendHitBoxes=[],l=e.minSize,u=e.isHorizontal();if(u?(l.width=e.maxWidth,l.height=r?10:0):(l.width=r?10:0,l.height=e.maxHeight),r){if(i.font=o.string,u){var c=e.lineWidths=[0],d=0;i.textAlign="left",i.textBaseline="middle",pt.each(e.legendItems,function(e,t){var r=Ie(n,a)+a/2+i.measureText(e.text).width;(0===t||c[c.length-1]+r+2*n.padding>l.width)&&(d+=a+n.padding,c[c.length-(t>0?0:1)]=0),s[t]={left:0,top:0,width:r,height:a},c[c.length-1]+=r+n.padding}),l.height+=d}else{var h=n.padding,f=e.columnWidths=[],p=e.columnHeights=[],m=n.padding,g=0,v=0;pt.each(e.legendItems,function(e,t){var r=Ie(n,a)+a/2+i.measureText(e.text).width;t>0&&v+a+2*h>l.height&&(m+=g+n.padding,f.push(g),p.push(v),g=0,v=0),g=Math.max(g,r),v+=a+h,s[t]={left:0,top:0,width:r,height:a}}),m+=g,f.push(g),p.push(v),l.width+=m}e.width=l.width,e.height=l.height}else e.width=l.width=e.height=l.height=0},afterFit:Tr,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,r=ut.global,i=r.defaultColor,o=r.elements.line,a=e.height,s=e.columnHeights,l=e.width,u=e.lineWidths;if(t.display){var c,d=Sr(t.rtl,e.left,e.minSize.width),h=e.ctx,f=$r(n.fontColor,r.defaultFontColor),p=pt.options._parseFont(n),m=p.size;h.textAlign=d.textAlign("left"),h.textBaseline="middle",h.lineWidth=.5,h.strokeStyle=f,h.fillStyle=f,h.font=p.string;var g=Ie(n,m),v=e.legendHitBoxes,_=function(e,r){switch(t.align){case"start":return n.padding;case"end":return e-r;default:return(e-r+n.padding)/2}},y=e.isHorizontal();c=y?{x:e.left+_(l,u[0]),y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+_(a,s[0]),line:0},pt.rtl.overrideTextDirection(e.ctx,t.textDirection);var b=m+n.padding;pt.each(e.legendItems,function(t,r){var f=h.measureText(t.text).width,p=g+m/2+f,w=c.x,L=c.y;d.setWidth(e.minSize.width),y?r>0&&w+p+n.padding>e.left+e.minSize.width&&(L=c.y+=b,c.line++,w=c.x=e.left+_(l,u[c.line])):r>0&&L+b>e.top+e.minSize.height&&(w=c.x=w+e.columnWidths[c.line]+n.padding,c.line++,L=c.y=e.top+_(a,s[c.line]));var M=d.x(w);!function(e,t,r){if(!(isNaN(g)||g<=0)){h.save();var a=$r(r.lineWidth,o.borderWidth);if(h.fillStyle=$r(r.fillStyle,i),h.lineCap=$r(r.lineCap,o.borderCapStyle),h.lineDashOffset=$r(r.lineDashOffset,o.borderDashOffset),h.lineJoin=$r(r.lineJoin,o.borderJoinStyle),h.lineWidth=a,h.strokeStyle=$r(r.strokeStyle,i),h.setLineDash&&h.setLineDash($r(r.lineDash,o.borderDash)),n&&n.usePointStyle){var s=g*Math.SQRT2/2,l=d.xPlus(e,g/2),u=t+m/2;pt.canvas.drawPoint(h,r.pointStyle,s,l,u,r.rotation)}else h.fillRect(d.leftForLtr(e,g),t,g,m),0!==a&&h.strokeRect(d.leftForLtr(e,g),t,g,m);h.restore()}}(M,L,t),v[r].left=d.leftForLtr(M,v[r].width),v[r].top=L,function(e,t,n,r){var i=m/2,o=d.xPlus(e,g+i),a=t+i;h.fillText(n.text,o,a),n.hidden&&(h.beginPath(),h.lineWidth=2,h.moveTo(o,a),h.lineTo(d.xPlus(o,r),a),h.stroke())}(M,L,t,f),y?c.x+=p+n.padding:c.y+=b}),pt.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var n,r,i,o=this;if(e>=o.left&&e<=o.right&&t>=o.top&&t<=o.bottom)for(i=o.legendHitBoxes,n=0;n<i.length;++n)if(e>=(r=i[n]).left&&e<=r.left+r.width&&t>=r.top&&t<=r.top+r.height)return o.legendItems[n];return null},handleEvent:function(e){var t,n=this,r=n.options,i="mouseup"===e.type?"click":e.type;if("mousemove"===i){if(!r.onHover&&!r.onLeave)return}else{if("click"!==i)return;if(!r.onClick)return}t=n._getLegendItemAt(e.x,e.y),"click"===i?t&&r.onClick&&r.onClick.call(n,e.native,t):(r.onLeave&&t!==n._hoveredItem&&(n._hoveredItem&&r.onLeave.call(n,e.native,n._hoveredItem),n._hoveredItem=t),r.onHover&&t&&r.onHover.call(n,e.native,t))}}),Cr={id:"legend",_element:Dr,beforeInit:function(e){var t=e.options.legend;t&&je(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(pt.mergeIf(t,ut.global.legend),n?(gn.configure(e,n,t),n.options=t):je(e,t)):n&&(gn.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}},Er=pt.noop;ut._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Ar=wt.extend({initialize:function(e){pt.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:Er,update:function(e,t,n){var r=this;return r.beforeUpdate(),r.maxWidth=e,r.maxHeight=t,r.margins=n,r.beforeSetDimensions(),r.setDimensions(),r.afterSetDimensions(),r.beforeBuildLabels(),r.buildLabels(),r.afterBuildLabels(),r.beforeFit(),r.fit(),r.afterFit(),r.afterUpdate(),r.minSize},afterUpdate:Er,beforeSetDimensions:Er,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:Er,beforeBuildLabels:Er,buildLabels:Er,afterBuildLabels:Er,beforeFit:Er,fit:function(){var e,t=this,n=t.options,r=t.minSize={},i=t.isHorizontal();n.display?(e=(pt.isArray(n.text)?n.text.length:1)*pt.options._parseFont(n).lineHeight+2*n.padding,t.width=r.width=i?t.maxWidth:e,t.height=r.height=i?e:t.maxHeight):t.width=r.width=t.height=r.height=0},afterFit:Er,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=e.options;if(n.display){var r,i,o,a=pt.options._parseFont(n),s=a.lineHeight,l=s/2+n.padding,u=0,c=e.top,d=e.left,h=e.bottom,f=e.right;t.fillStyle=pt.valueOrDefault(n.fontColor,ut.global.defaultFontColor),t.font=a.string,e.isHorizontal()?(i=d+(f-d)/2,o=c+l,r=f-d):(i="left"===n.position?d+l:f-l,o=c+(h-c)/2,r=h-c,u=Math.PI*("left"===n.position?-.5:.5)),t.save(),t.translate(i,o),t.rotate(u),t.textAlign="center",t.textBaseline="middle";var p=n.text;if(pt.isArray(p))for(var m=0,g=0;g<p.length;++g)t.fillText(p[g],0,m,r),m+=s;else t.fillText(p,0,0,r);t.restore()}}}),Pr={},Yr=xr,Or=Cr,Ir={id:"title",_element:Ar,beforeInit:function(e){var t=e.options.title;t&&He(e,t)},beforeUpdate:function(e){var t=e.options.title,n=e.titleBlock;t?(pt.mergeIf(t,ut.global.title),n?(gn.configure(e,n,t),n.options=t):He(e,t)):n&&(gn.removeBox(e,n),delete e.titleBlock)}};for(var jr in Pr.filler=Yr,Pr.legend=Or,Pr.title=Ir,Hn.helpers=pt,function(){function e(e,t,n){var r;return"string"==typeof e?(r=parseInt(e,10),-1!==e.indexOf("%")&&(r=r/100*t.parentNode[n])):r=e,r}function t(e){return null!=e&&"none"!==e}function n(n,r,i){var o=document.defaultView,a=pt._getParentNode(n),s=o.getComputedStyle(n)[r],l=o.getComputedStyle(a)[r],u=t(s),c=t(l),d=Number.POSITIVE_INFINITY;return u||c?Math.min(u?e(s,n,i):d,c?e(l,a,i):d):"none"}pt.where=function(e,t){if(pt.isArray(e)&&Array.prototype.filter)return e.filter(t);var n=[];return pt.each(e,function(e){t(e)&&n.push(e)}),n},pt.findIndex=Array.prototype.findIndex?function(e,t,n){return e.findIndex(t,n)}:function(e,t,n){n=void 0===n?e:n;for(var r=0,i=e.length;r<i;++r)if(t.call(n,e[r],r,e))return r;return-1},pt.findNextWhere=function(e,t,n){pt.isNullOrUndef(n)&&(n=-1);for(var r=n+1;r<e.length;r++){var i=e[r];if(t(i))return i}},pt.findPreviousWhere=function(e,t,n){pt.isNullOrUndef(n)&&(n=e.length);for(var r=n-1;r>=0;r--){var i=e[r];if(t(i))return i}},pt.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},pt.almostEquals=function(e,t,n){return Math.abs(e-t)<n},pt.almostWhole=function(e,t){var n=Math.round(e);return n-t<=e&&n+t>=e},pt.max=function(e){return e.reduce(function(e,t){return isNaN(t)?e:Math.max(e,t)},Number.NEGATIVE_INFINITY)},pt.min=function(e){return e.reduce(function(e,t){return isNaN(t)?e:Math.min(e,t)},Number.POSITIVE_INFINITY)},pt.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},pt.toRadians=function(e){return e*(Math.PI/180)},pt.toDegrees=function(e){return e*(180/Math.PI)},pt._decimalPlaces=function(e){if(pt.isFinite(e)){for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n}},pt.getAngleFromPoint=function(e,t){var n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r),o=Math.atan2(r,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:i}},pt.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},pt.aliasPixel=function(e){return e%2==0?0:.5},pt._alignPixel=function(e,t,n){var r=e.currentDevicePixelRatio,i=n/2;return Math.round((t-i)*r)/r+i},pt.splineCurve=function(e,t,n,r){var i=e.skip?t:e,o=t,a=n.skip?t:n,s=Math.sqrt(Math.pow(o.x-i.x,2)+Math.pow(o.y-i.y,2)),l=Math.sqrt(Math.pow(a.x-o.x,2)+Math.pow(a.y-o.y,2)),u=s/(s+l),c=l/(s+l),d=r*(u=isNaN(u)?0:u),h=r*(c=isNaN(c)?0:c);return{previous:{x:o.x-d*(a.x-i.x),y:o.y-d*(a.y-i.y)},next:{x:o.x+h*(a.x-i.x),y:o.y+h*(a.y-i.y)}}},pt.EPSILON=Number.EPSILON||1e-14,pt.splineCurveMonotone=function(e){var t,n,r,i,o,a,s,l,u,c=(e||[]).map(function(e){return{model:e._model,deltaK:0,mK:0}}),d=c.length;for(t=0;t<d;++t)if(!(r=c[t]).model.skip){if(n=t>0?c[t-1]:null,(i=t<d-1?c[t+1]:null)&&!i.model.skip){var h=i.model.x-r.model.x;r.deltaK=0!==h?(i.model.y-r.model.y)/h:0}!n||n.model.skip?r.mK=r.deltaK:!i||i.model.skip?r.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(r.deltaK)?r.mK=0:r.mK=(n.deltaK+r.deltaK)/2}for(t=0;t<d-1;++t)r=c[t],i=c[t+1],r.model.skip||i.model.skip||(pt.almostEquals(r.deltaK,0,this.EPSILON)?r.mK=i.mK=0:(o=r.mK/r.deltaK,a=i.mK/r.deltaK,(l=Math.pow(o,2)+Math.pow(a,2))<=9||(s=3/Math.sqrt(l),r.mK=o*s*r.deltaK,i.mK=a*s*r.deltaK)));for(t=0;t<d;++t)(r=c[t]).model.skip||(n=t>0?c[t-1]:null,i=t<d-1?c[t+1]:null,n&&!n.model.skip&&(u=(r.model.x-n.model.x)/3,r.model.controlPointPreviousX=r.model.x-u,r.model.controlPointPreviousY=r.model.y-u*r.mK),i&&!i.model.skip&&(u=(i.model.x-r.model.x)/3,r.model.controlPointNextX=r.model.x+u,r.model.controlPointNextY=r.model.y+u*r.mK))},pt.nextItem=function(e,t,n){return n?t>=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},pt.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},pt.niceNum=function(e,t){var n=Math.floor(pt.log10(e)),r=e/Math.pow(10,n);return(t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10)*Math.pow(10,n)},pt.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},pt.getRelativePosition=function(e,t){var n,r,i=e.originalEvent||e,o=e.target||e.srcElement,a=o.getBoundingClientRect(),s=i.touches;s&&s.length>0?(n=s[0].clientX,r=s[0].clientY):(n=i.clientX,r=i.clientY);var l=parseFloat(pt.getStyle(o,"padding-left")),u=parseFloat(pt.getStyle(o,"padding-top")),c=parseFloat(pt.getStyle(o,"padding-right")),d=parseFloat(pt.getStyle(o,"padding-bottom")),h=a.right-a.left-l-c,f=a.bottom-a.top-u-d;return{x:n=Math.round((n-a.left-l)/h*o.width/t.currentDevicePixelRatio),y:r=Math.round((r-a.top-u)/f*o.height/t.currentDevicePixelRatio)}},pt.getConstraintWidth=function(e){return n(e,"max-width","clientWidth")},pt.getConstraintHeight=function(e){return n(e,"max-height","clientHeight")},pt._calculatePadding=function(e,t,n){return(t=pt.getStyle(e,t)).indexOf("%")>-1?n*parseInt(t,10)/100:parseInt(t,10)},pt._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},pt.getMaximumWidth=function(e){var t=pt._getParentNode(e);if(!t)return e.clientWidth;var n=t.clientWidth,r=n-pt._calculatePadding(t,"padding-left",n)-pt._calculatePadding(t,"padding-right",n),i=pt.getConstraintWidth(e);return isNaN(i)?r:Math.min(r,i)},pt.getMaximumHeight=function(e){var t=pt._getParentNode(e);if(!t)return e.clientHeight;var n=t.clientHeight,r=n-pt._calculatePadding(t,"padding-top",n)-pt._calculatePadding(t,"padding-bottom",n),i=pt.getConstraintHeight(e);return isNaN(i)?r:Math.min(r,i)},pt.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},pt.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var r=e.canvas,i=e.height,o=e.width;r.height=i*n,r.width=o*n,e.ctx.scale(n,n),r.style.height||r.style.width||(r.style.height=i+"px",r.style.width=o+"px")}},pt.fontString=function(e,t,n){return t+" "+e+"px "+n},pt.longestText=function(e,t,n,r){var i=(r=r||{}).data=r.data||{},o=r.garbageCollect=r.garbageCollect||[];r.font!==t&&(i=r.data={},o=r.garbageCollect=[],r.font=t),e.font=t;var a,s,l,u,c,d=0,h=n.length;for(a=0;a<h;a++)if(null!=(u=n[a])&&!0!==pt.isArray(u))d=pt.measureText(e,i,o,d,u);else if(pt.isArray(u))for(s=0,l=u.length;s<l;s++)null==(c=u[s])||pt.isArray(c)||(d=pt.measureText(e,i,o,d,c));var f=o.length/2;if(f>n.length){for(a=0;a<f;a++)delete i[o[a]];o.splice(0,f)}return d},pt.measureText=function(e,t,n,r,i){var o=t[i];return o||(o=t[i]=e.measureText(i).width,n.push(i)),o>r&&(r=o),r},pt.numberOfLabelLines=function(e){var t=1;return pt.each(e,function(e){pt.isArray(e)&&e.length>t&&(t=e.length)}),t},pt.color=Ze?function(e){return e instanceof CanvasGradient&&(e=ut.global.defaultColor),Ze(e)}:function(e){return console.error("Color.js not found!"),e},pt.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:pt.color(e).saturate(.5).darken(.1).rgbString()}}(),Hn._adapters=Nn,Hn.Animation=Mt,Hn.animationService=kt,Hn.controllers=hn,Hn.DatasetController=$t,Hn.defaults=ut,Hn.Element=wt,Hn.elements=Nt,Hn.Interaction=fn,Hn.layouts=gn,Hn.platform=Tn,Hn.plugins=$n,Hn.Scale=Wn,Hn.scaleService=Dn,Hn.Ticks=Bn,Hn.Tooltip=On,Hn.helpers.each(Lr,function(e,t){Hn.scaleService.registerScaleType(t,e,e._defaults)}),Pr)Pr.hasOwnProperty(jr)&&Hn.plugins.register(Pr[jr]);Hn.platform.initialize();var Hr=Hn;return"undefined"!=typeof window&&(window.Chart=Hn),Hn.Chart=Hn,Hn.Legend=Pr.legend._element,Hn.Title=Pr.title._element,Hn.pluginService=Hn.plugins,Hn.PluginBase=Hn.Element.extend({}),Hn.canvasHelpers=Hn.helpers.canvas,Hn.layoutService=Hn.layouts,Hn.LinearScaleBase=Kn,Hn.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],function(e){Hn[e]=function(t,n){return new Hn(t,Hn.helpers.merge(n||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}}),Hr}),function(){function e(e,t,n){!1!==t?F.addEventListener(e,Q[e],n):F.removeEventListener(e,Q[e])}function t(e){var t=y(e.target),r=b(t);if(ionic.tap.requiresNativeClick(r)||W)return!1;var i=ionic.tap.pointerCoord(e);n("click",r,i.x,i.y),f(r)}function n(e,t,n,r){var i=document.createEvent("MouseEvents");i.initMouseEvent(e,!0,!0,window,1,0,0,n,r,!1,!1,!1,!1,0,null),i.isIonicTap=!0,t.dispatchEvent(i)}function r(e){return"submit"==e.target.type&&0===e.detail?null:ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)||!e.isIonicTap&&!ionic.tap.requiresNativeClick(e.target)?(e.stopPropagation(),ionic.tap.isLabelWithTextInput(e.target)||e.preventDefault(),!1):void 0}function i(t){return t.isIonicTap||h(t)?null:V?(t.stopPropagation(),ionic.Platform.isEdge()||ionic.tap.isTextInput(t.target)&&Z===t.target||w(t.target.tagName)||t.target.isContentEditable||ionic.tap.isVideo(t.target)||t.preventDefault(),!1):(W=!1,q=ionic.tap.pointerCoord(t),e("mousemove"),void ionic.activator.start(t))}function o(n){return V?(n.stopPropagation(),n.preventDefault(),!1):!h(n)&&!w(n.target.tagName)&&(_(n)||t(n),e("mousemove",!1),ionic.activator.end(),void(W=!1))}function a(t){if(_(t))return e("mousemove",!1),ionic.activator.end(),W=!0,!1}function s(t){if(!h(t)&&(W=!1,d(),q=ionic.tap.pointerCoord(t),e(J),ionic.activator.start(t),ionic.Platform.isIOS()&&ionic.tap.isLabelWithTextInput(t.target))){b(y(t.target))!==z&&t.preventDefault()}}function l(e){h(e)||(d(),_(e)||(t(e),w(e.target.tagName)&&e.preventDefault()),Z=e.target,c())}function u(t){if(_(t))return W=!0,e(J,!1),ionic.activator.end(),!1}function c(){e(J,!1),ionic.activator.end(),W=!1}function d(){V=!0,clearTimeout(U),U=setTimeout(function(){V=!1},600)}function h(e){return!!e.isTapHandled||(e.isTapHandled=!0,!!ionic.tap.isElementTapDisabled(e.target)||("SELECT"==e.target.tagName||(ionic.scroll.isScrolling&&ionic.tap.containsOrIsTextInput(e.target)?(e.preventDefault(),!0):void 0)))}function f(e){G=null;var t=!1;"SELECT"==e.tagName?(n("mousedown",e,0,0),e.focus&&e.focus(),t=!0):v()===e?t=!0:/^(input|textarea|ion-label)$/i.test(e.tagName)||e.isContentEditable?(t=!0,e.focus&&e.focus(),e.value=e.value,V&&(G=e)):p(),t&&(v(e),ionic.trigger("ionic.focusin",{target:e},!0))}function p(){var e=v();e&&(/^(input|textarea|select)$/i.test(e.tagName)||e.isContentEditable)&&e.blur(),v(null)}function m(e){V&&ionic.tap.isTextInput(v())&&ionic.tap.isTextInput(G)&&G!==e.target&&(G.focus(),G=null),ionic.scroll.isScrolling=!1}function g(){v(null)}function v(e){return arguments.length&&(z=e),z||document.activeElement}function _(e){if(!e||1!==e.target.nodeType||!q||0===q.x&&0===q.y)return!1;var t=ionic.tap.pointerCoord(e),n=!(!e.target.classList||!e.target.classList.contains||"function"!=typeof e.target.classList.contains),r=n&&e.target.classList.contains("button")?K:X;return Math.abs(q.x-t.x)>r||Math.abs(q.y-t.y)>r}function y(e,t){for(var n=e,r=0;r<6&&n;r++){if("LABEL"===n.tagName)return n;n=n.parentElement}if(!1!==t)return e}function b(e){if(e&&"LABEL"===e.tagName){if(e.control)return e.control;if(e.querySelector){var t=e.querySelector("input,textarea,select");if(t)return t}}return e}function w(e){return/^(select|option)$/i.test(e)}function L(){ionic.keyboard.isInitialized||(H()?(window.addEventListener("native.keyboardshow",he),window.addEventListener("native.keyboardhide",x)):document.body.addEventListener("focusout",x),document.body.addEventListener("ionic.focusin",de),document.body.addEventListener("focusin",de),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",L):document.removeEventListener("touchstart",L),ionic.keyboard.isInitialized=!0)}function M(e){clearTimeout(ie),ionic.keyboard.isOpen&&!ionic.keyboard.isClosing||(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),ionic.keyboard.height=e.keyboardHeight,le?D(O,!0):D(E,!0)}function k(e){if(clearTimeout(ie),!e.target||e.target.readOnly||!ionic.tap.isKeyboardElement(e.target)||!(ne=ionic.DomUtil.getParentWithClass(e.target,ce)))return ee&&(te=ee),void(ee=null);ee=e.target,ne.classList.contains("overflow-scroll")||(document.body.scrollTop=0,ne.scrollTop=0,ionic.requestAnimationFrame(function(){document.body.scrollTop=0,ne.scrollTop=0}),window.navigator.msPointerEnabled?document.addEventListener("MSPointerMove",$,!1):document.addEventListener("touchmove",$,!1)),ionic.keyboard.isOpen&&!ionic.keyboard.isClosing||(ionic.keyboard.isOpening=!0,ionic.keyboard.isClosing=!1),document.addEventListener("keydown",T,!1),ionic.keyboard.isOpen||H()?ionic.keyboard.isOpen&&E():D(E,!0)}function x(){clearTimeout(ie),(ionic.keyboard.isOpen||ionic.keyboard.isOpening)&&(ionic.keyboard.isClosing=!0,ionic.keyboard.isOpening=!1),ie=setTimeout(function(){ionic.requestAnimationFrame(function(){le?D(function(){O(),C()},!1):D(C,!1)})},50)}function S(){ionic.keyboard.isLandscape=!ionic.keyboard.isLandscape,ionic.Platform.isIOS()&&O(),ionic.Platform.isAndroid()&&(ionic.keyboard.isOpen&&H()?le=!0:D(O,!1))}function T(e){ionic.scroll.isScrolling&&$(e)}function $(e){"TEXTAREA"!==e.target.tagName&&e.preventDefault()}function D(e,t){clearInterval(re);var n,r=0,i=j(),o=i;return n=ionic.Platform.isAndroid()&&ionic.Platform.version()<4.4?30:ionic.Platform.isAndroid()?10:1,re=setInterval(function(){o=j(),++r<n&&(!P(o)&&!Y(o)||!ionic.keyboard.height)||(H()||(ionic.keyboard.height=Math.abs(i-window.innerHeight)),ionic.keyboard.isOpen=t,clearInterval(re),e())},50),n}function C(){clearTimeout(ie),ionic.keyboard.isOpen=!1,ionic.keyboard.isClosing=!1,(ee||te)&&ionic.trigger("resetScrollView",{target:ee||te},!0),ionic.requestAnimationFrame(function(){document.body.classList.remove(ue)}),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerMove",$):document.removeEventListener("touchmove",$),document.removeEventListener("keydown",T),ionic.Platform.isAndroid()&&(H()&&cordova.plugins.Keyboard.close(),ee&&ee.blur()),ee=null,te=null}function E(){ionic.keyboard.isOpen=!0,ionic.keyboard.isOpening=!1;var e={keyboardHeight:A(),viewportHeight:oe};if(ee){e.target=ee;var t=ee.getBoundingClientRect();e.elementTop=Math.round(t.top),e.elementBottom=Math.round(t.bottom),e.windowHeight=e.viewportHeight-e.keyboardHeight,e.isElementUnderKeyboard=e.elementBottom>e.windowHeight,ionic.trigger("scrollChildIntoView",e,!0)}return setTimeout(function(){document.body.classList.add(ue)},400),e}function A(){if(ionic.keyboard.height)return ionic.keyboard.height;if(ionic.Platform.isAndroid()){if(ionic.Platform.isFullScreen)return 275;var e=window.innerHeight;return e<oe?oe-e:0}return ionic.Platform.isIOS()?ionic.keyboard.isLandscape?206:ionic.Platform.isWebView()?260:216:275}function P(e){return!!(!ionic.keyboard.isLandscape&&ae&&Math.abs(ae-e)<2)}function Y(e){return!!(ionic.keyboard.isLandscape&&se&&Math.abs(se-e)<2)}function O(){le=!1,oe=j(),ionic.keyboard.isLandscape&&!se?se=oe:ionic.keyboard.isLandscape||ae||(ae=oe),ee&&ionic.trigger("resetScrollView",{target:ee},!0),ionic.keyboard.isOpen&&ionic.tap.isTextInput(ee)&&E()}function I(){var e=j();e/window.innerWidth<1&&(ionic.keyboard.isLandscape=!0),oe=e,ionic.keyboard.isLandscape&&!se?se=oe:ionic.keyboard.isLandscape||ae||(ae=oe)}function j(){var e=window.innerHeight;return ionic.Platform.isAndroid()&&ionic.Platform.isFullScreen||!ionic.keyboard.isOpen&&!ionic.keyboard.isOpening||ionic.keyboard.isClosing?e:e+A()}function H(){return!!(window.cordova&&cordova.plugins&&cordova.plugins.Keyboard)}function N(){var e;for(e=0;e<document.head.children.length;e++)if("viewport"==document.head.children[e].name){fe=document.head.children[e];break}if(fe){var t,n=fe.content.toLowerCase().replace(/\s+/g,"").split(",");for(e=0;e<n.length;e++)n[e]&&(t=n[e].split("="),pe[t[0]]=t.length>1?t[1]:"_");B()}}function B(){var e=pe.width,t=pe.height,n=ionic.Platform,r=n.version(),i=ionic.viewport.orientation();delete pe.height,pe.width="device-width",n.isIPad()?r>7?delete pe.width:n.isWebView()?90==i?pe.height="0":7==r&&(pe.height="device-height"):r<7&&(pe.height="0"):n.isIOS()&&(n.isWebView()?r>7?delete pe.width:r<7?t&&(pe.height="0"):7==r&&(pe.height="device-height"):r<7&&t&&(pe.height="0")),e===pe.width&&t===pe.height||R()}function R(){var e,t=[];for(e in pe)pe[e]&&t.push(e+("_"==pe[e]?"":"="+pe[e]));fe.content=t.join(", ")}window.ionic=window.ionic||{},window.ionic.views={},window.ionic.version="1.3.5",function(e){e.DelegateService=function(e){function t(){return!0}if(e.indexOf("$getByHandle")>-1)throw new Error("Method '$getByHandle' is implicitly added to each delegate service. Do not list it as a method.");return["$log",function(n){function r(e,t){this._instances=e,this.handle=t}function i(){this._instances=[]}function o(e){return function(){var t,r=this.handle,i=arguments,o=0;return this._instances.forEach(function(n){if((!r||r==n.$$delegateHandle)&&n.$$filterFn(n)){o++;var a=n[e].apply(n,i);1===o&&(t=a)}}),!o&&r?n.warn('Delegate for handle "'+r+'" could not find a corresponding element with delegate-handle="'+r+'"! '+e+"() was not called!\nPossible cause: If you are calling "+e+'() immediately, and your element with delegate-handle="'+r+'" is a child of your controller, then your element may not be compiled yet. Put a $timeout around your call to '+e+"() and try again."):t}}return e.forEach(function(e){r.prototype[e]=o(e)}),i.prototype=r.prototype,i.prototype._registerInstance=function(e,n,r){var i=this._instances;return e.$$delegateHandle=n,e.$$filterFn=r||t,i.push(e),function(){var t=i.indexOf(e);-1!==t&&i.splice(t,1)}},i.prototype.$getByHandle=function(e){return new r(this._instances,e)},new i}]}}(window.ionic),function(e,t,n){function r(){o=!0;for(var e=0;e<i.length;e++)n.requestAnimationFrame(i[e]);i=[],t.removeEventListener("DOMContentLoaded",r)}var i=[],o="complete"===t.readyState||"interactive"===t.readyState;o||t.addEventListener("DOMContentLoaded",r),e._rAF=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||function(t){e.setTimeout(t,16)}}();var a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame;n.DomUtil={requestAnimationFrame:function(t){return e._rAF(t)},cancelAnimationFrame:function(e){a(e)},animationFrameThrottle:function(e){var t,r,i;return function(){t=arguments,i=this,r||(r=!0,n.requestAnimationFrame(function(){e.apply(i,t),r=!1}))}},contains:function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}},getPositionInParent:function(e){return{left:e.offsetLeft,top:e.offsetTop}},getOffsetTop:function(e){var t=0;if(e.offsetParent){do{t+=e.offsetTop,e=e.offsetParent}while(e);return t}},ready:function(e){o?n.requestAnimationFrame(e):i.push(e)},getTextBounds:function(n){if(t.createRange){var r=t.createRange();if(r.selectNodeContents(n),r.getBoundingClientRect){var i=r.getBoundingClientRect();if(i){var o=e.scrollX,a=e.scrollY;return{top:i.top+a,left:i.left+o,right:i.left+o+i.width,bottom:i.top+a+i.height,width:i.width,height:i.height}}}}return null},getChildIndex:function(e,t){if(t)for(var n,r=e.parentNode.children,i=0,o=0,a=r.length;i<a;i++)if(n=r[i],n.nodeName&&n.nodeName.toLowerCase()==t){if(n==e)return o;o++}return Array.prototype.slice.call(e.parentNode.children).indexOf(e)},swapNodes:function(e,t){t.parentNode.insertBefore(e,t)},elementIsDescendant:function(e,t,n){var r=e;do{if(r===t)return!0;r=r.parentNode}while(r&&r!==n);return!1},getParentWithClass:function(e,t,n){for(n=n||10;e.parentNode&&n--;){if(e.parentNode.classList&&e.parentNode.classList.contains(t))return e.parentNode;e=e.parentNode}return null},getParentOrSelfWithClass:function(e,t,n){for(n=n||10;e&&n--;){if(e.classList&&e.classList.contains(t))return e;e=e.parentNode}
-return null},rectContains:function(e,t,n,r,i,o){return!(e<n||e>i)&&!(t<r||t>o)},blurAll:function(){return t.activeElement&&t.activeElement!=t.body?(t.activeElement.blur(),t.activeElement):null},cachedAttr:function(e,t,n){if((e=e&&e.length&&e[0]||e)&&e.setAttribute){var r="$attr-"+t;return arguments.length>2?e[r]!==n&&(e.setAttribute(t,n),e[r]=n):void 0===e[r]&&(e[r]=e.getAttribute(t)),e[r]}},cachedStyles:function(e,t){if((e=e&&e.length&&e[0]||e)&&e.style)for(var n in t)e["$style-"+n]!==t[n]&&(e.style[n]=e["$style-"+n]=t[n])}},n.requestAnimationFrame=n.DomUtil.requestAnimationFrame,n.cancelAnimationFrame=n.DomUtil.cancelAnimationFrame,n.animationFrameThrottle=n.DomUtil.animationFrameThrottle}(window,document,ionic),function(e){e.CustomEvent=function(){if("function"==typeof window.CustomEvent)return CustomEvent;var e=function(e,t){var n;t=t||{bubbles:!1,cancelable:!1,detail:void 0};try{n=document.createEvent("CustomEvent"),n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail)}catch(i){n=document.createEvent("Event");for(var r in t)n[r]=t[r];n.initEvent(e,t.bubbles,t.cancelable)}return n};return e.prototype=window.Event.prototype,e}(),e.EventController={VIRTUALIZED_EVENTS:["tap","swipe","swiperight","swipeleft","drag","hold","release"],trigger:function(t,n,r,i){var o=new e.CustomEvent(t,{detail:n,bubbles:!!r,cancelable:!!i});n&&n.target&&n.target.dispatchEvent&&n.target.dispatchEvent(o)||window.dispatchEvent(o)},on:function(t,n,r){for(var i=r||window,o=0,a=this.VIRTUALIZED_EVENTS.length;o<a;o++)if(t==this.VIRTUALIZED_EVENTS[o]){var s=new e.Gesture(r);return s.on(t,n),s}i.addEventListener(t,n)},off:function(e,t,n){n.removeEventListener(e,t)},onGesture:function(t,n,r,i){var o=new e.Gesture(r,i);return o.on(t,n),o},offGesture:function(e,t,n){e&&e.off(t,n)},handlePopState:function(){}},e.on=function(){e.EventController.on.apply(e.EventController,arguments)},e.off=function(){e.EventController.off.apply(e.EventController,arguments)},e.trigger=e.EventController.trigger,e.onGesture=function(){return e.EventController.onGesture.apply(e.EventController.onGesture,arguments)},e.offGesture=function(){return e.EventController.offGesture.apply(e.EventController.offGesture,arguments)}}(window.ionic),function(e){function t(){if(!e.Gestures.READY){e.Gestures.event.determineEventTypes();for(var t in e.Gestures.gestures)e.Gestures.gestures.hasOwnProperty(t)&&e.Gestures.detection.register(e.Gestures.gestures[t]);e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_MOVE,e.Gestures.detection.detect),e.Gestures.event.onTouch(e.Gestures.DOCUMENT,e.Gestures.EVENT_END,e.Gestures.detection.detect),e.Gestures.READY=!0}}e.Gesture=function(t,n){return new e.Gestures.Instance(t,n||{})},e.Gestures={},e.Gestures.defaults={stop_browser_behavior:"disable-user-behavior"},e.Gestures.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,e.Gestures.HAS_TOUCHEVENTS="ontouchstart"in window,e.Gestures.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,e.Gestures.NO_MOUSEEVENTS=e.Gestures.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(e.Gestures.MOBILE_REGEX),e.Gestures.EVENT_TYPES={},e.Gestures.DIRECTION_DOWN="down",e.Gestures.DIRECTION_LEFT="left",e.Gestures.DIRECTION_UP="up",e.Gestures.DIRECTION_RIGHT="right",e.Gestures.POINTER_MOUSE="mouse",e.Gestures.POINTER_TOUCH="touch",e.Gestures.POINTER_PEN="pen",e.Gestures.EVENT_START="start",e.Gestures.EVENT_MOVE="move",e.Gestures.EVENT_END="end",e.Gestures.DOCUMENT=window.document,e.Gestures.plugins={},e.Gestures.READY=!1,e.Gestures.Instance=function(n,r){var i=this;return null===n?this:(t(),this.element=n,this.enabled=!0,this.options=e.Gestures.utils.extend(e.Gestures.utils.extend({},e.Gestures.defaults),r||{}),this.options.stop_browser_behavior&&e.Gestures.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),e.Gestures.event.onTouch(n,e.Gestures.EVENT_START,function(t){i.enabled&&e.Gestures.detection.startDetect(i,t)}),this)},e.Gestures.Instance.prototype={on:function(e,t){for(var n=e.split(" "),r=0;r<n.length;r++)this.element.addEventListener(n[r],t,!1);return this},off:function(e,t){for(var n=e.split(" "),r=0;r<n.length;r++)this.element.removeEventListener(n[r],t,!1);return this},trigger:function(t,n){var r=e.Gestures.DOCUMENT.createEvent("Event");r.initEvent(t,!0,!0),r.gesture=n;var i=this.element;return e.Gestures.utils.hasParent(n.target,i)&&(i=n.target),i.dispatchEvent(r),this},enable:function(e){return this.enabled=e,this}};var n=null,r=!1,i=!1;e.Gestures.event={bindDom:function(e,t,n){for(var r=t.split(" "),i=0;i<r.length;i++)e.addEventListener(r[i],n,!1)},onTouch:function(t,o,a){var s=this;this.bindDom(t,e.Gestures.EVENT_TYPES[o],function(l){var u=l.type.toLowerCase();if(!u.match(/mouse/)||!i){u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===l.which?r=!0:u.match(/mouse/)&&1!==l.which&&(r=!1),u.match(/touch|pointer/)&&(i=!0);var c=0;r&&(e.Gestures.HAS_POINTEREVENTS&&o!=e.Gestures.EVENT_END?c=e.Gestures.PointerEvent.updatePointer(o,l):u.match(/touch/)?c=l.touches.length:i||(c=u.match(/up/)?0:1),c>0&&o==e.Gestures.EVENT_END?o=e.Gestures.EVENT_MOVE:c||(o=e.Gestures.EVENT_END),(c||null===n)&&(n=l),a.call(e.Gestures.detection,s.collectEventData(t,o,s.getTouchList(n,o),l)),e.Gestures.HAS_POINTEREVENTS&&o==e.Gestures.EVENT_END&&(c=e.Gestures.PointerEvent.updatePointer(o,l))),c||(n=null,r=!1,i=!1,e.Gestures.PointerEvent.reset())}})},determineEventTypes:function(){var t;t=e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getEvents():e.Gestures.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_START]=t[0],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_MOVE]=t[1],e.Gestures.EVENT_TYPES[e.Gestures.EVENT_END]=t[2]},getTouchList:function(t){return e.Gestures.HAS_POINTEREVENTS?e.Gestures.PointerEvent.getTouchList():t.touches?t.touches:(t.identifier=1,[t])},collectEventData:function(t,n,r,i){var o=e.Gestures.POINTER_TOUCH;return(i.type.match(/mouse/)||e.Gestures.PointerEvent.matchType(e.Gestures.POINTER_MOUSE,i))&&(o=e.Gestures.POINTER_MOUSE),{center:e.Gestures.utils.getCenter(r),timeStamp:(new Date).getTime(),target:i.target,touches:r,eventType:n,pointerType:o,srcEvent:i,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return e.Gestures.detection.stopDetect()}}}},e.Gestures.PointerEvent={pointers:{},getTouchList:function(){var e=this,t=[];return Object.keys(e.pointers).sort().forEach(function(n){t.push(e.pointers[n])}),t},updatePointer:function(t,n){return t==e.Gestures.EVENT_END?this.pointers={}:(n.identifier=n.pointerId,this.pointers[n.pointerId]=n),Object.keys(this.pointers).length},matchType:function(t,n){if(!n.pointerType)return!1;var r={};return r[e.Gestures.POINTER_MOUSE]=n.pointerType==n.MSPOINTER_TYPE_MOUSE||n.pointerType==e.Gestures.POINTER_MOUSE,r[e.Gestures.POINTER_TOUCH]=n.pointerType==n.MSPOINTER_TYPE_TOUCH||n.pointerType==e.Gestures.POINTER_TOUCH,r[e.Gestures.POINTER_PEN]=n.pointerType==n.MSPOINTER_TYPE_PEN||n.pointerType==e.Gestures.POINTER_PEN,r[t]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},e.Gestures.utils={extend:function(e,t,n){for(var r in t)void 0!==e[r]&&n||(e[r]=t[r]);return e},hasParent:function(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1},getCenter:function(e){for(var t=[],n=[],r=0,i=e.length;r<i;r++)t.push(e[r].pageX),n.push(e[r].pageY);return{pageX:(Math.min.apply(Math,t)+Math.max.apply(Math,t))/2,pageY:(Math.min.apply(Math,n)+Math.max.apply(Math,n))/2}},getVelocity:function(e,t,n){return{x:Math.abs(t/e)||0,y:Math.abs(n/e)||0}},getAngle:function(e,t){var n=t.pageY-e.pageY,r=t.pageX-e.pageX;return 180*Math.atan2(n,r)/Math.PI},getDirection:function(t,n){return Math.abs(t.pageX-n.pageX)>=Math.abs(t.pageY-n.pageY)?t.pageX-n.pageX>0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT:t.pageY-n.pageY>0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN},getDistance:function(e,t){var n=t.pageX-e.pageX,r=t.pageY-e.pageY;return Math.sqrt(n*n+r*r)},getScale:function(e,t){return e.length>=2&&t.length>=2?this.getDistance(t[0],t[1])/this.getDistance(e[0],e[1]):1},getRotation:function(e,t){return e.length>=2&&t.length>=2?this.getAngle(t[1],t[0])-this.getAngle(e[1],e[0]):0},isVertical:function(t){return t==e.Gestures.DIRECTION_UP||t==e.Gestures.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(e,t){e&&e.classList&&(e.classList.add(t),e.onselectstart=function(){return!1})}},e.Gestures.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,n){this.current||(this.stopped=!1,this.current={inst:t,startEvent:e.Gestures.utils.extend({},n),lastEvent:!1,name:""},this.detect(n))},detect:function(t){if(!this.current||this.stopped)return null;t=this.extendEventData(t);for(var n=this.current.inst.options,r=0,i=this.gestures.length;r<i;r++){var o=this.gestures[r];if(!this.stopped&&!1!==n[o.name]&&!1===o.handler.call(o,t,this.current.inst)){this.stopDetect();break}}return this.current&&(this.current.lastEvent=t),t.eventType==e.Gestures.EVENT_END&&!t.touches.length-1&&this.stopDetect(),t},stopDetect:function(){this.previous=e.Gestures.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(t){var n=this.current.startEvent;if(n&&(t.touches.length!=n.touches.length||t.touches===n.touches)){n.touches=[];for(var r=0,i=t.touches.length;r<i;r++)n.touches.push(e.Gestures.utils.extend({},t.touches[r]))}var o=t.timeStamp-n.timeStamp,a=t.center.pageX-n.center.pageX,s=t.center.pageY-n.center.pageY,l=e.Gestures.utils.getVelocity(o,a,s);return e.Gestures.utils.extend(t,{deltaTime:o,deltaX:a,deltaY:s,velocityX:l.x,velocityY:l.y,distance:e.Gestures.utils.getDistance(n.center,t.center),angle:e.Gestures.utils.getAngle(n.center,t.center),direction:e.Gestures.utils.getDirection(n.center,t.center),scale:e.Gestures.utils.getScale(n.touches,t.touches),rotation:e.Gestures.utils.getRotation(n.touches,t.touches),startEvent:n}),t},register:function(t){var n=t.defaults||{};return void 0===n[t.name]&&(n[t.name]=!0),e.Gestures.utils.extend(e.Gestures.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(e,t){return e.index<t.index?-1:e.index>t.index?1:0}),this.gestures}},e.Gestures.gestures=e.Gestures.gestures||{},e.Gestures.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:9},timer:null,handler:function(t,n){switch(t.eventType){case e.Gestures.EVENT_START:clearTimeout(this.timer),e.Gestures.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==e.Gestures.detection.current.name&&(e.tap.cancelClick(),n.trigger("hold",t))},n.options.hold_timeout);break;case e.Gestures.EVENT_MOVE:t.distance>n.options.hold_threshold&&clearTimeout(this.timer);break;case e.Gestures.EVENT_END:clearTimeout(this.timer)}}},e.Gestures.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END&&"touchcancel"!=t.srcEvent.type){var r=e.Gestures.detection.previous,i=!1;if(t.deltaTime>n.options.tap_max_touchtime||t.distance>n.options.tap_max_distance)return;r&&"tap"==r.name&&t.timeStamp-r.lastEvent.timeStamp<n.options.doubletap_interval&&t.distance<n.options.doubletap_distance&&(n.trigger("doubletap",t),i=!0),i&&!n.options.tap_always||(e.Gestures.detection.current.name="tap",n.trigger("tap",t))}}},e.Gestures.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.4},handler:function(t,n){if(t.eventType==e.Gestures.EVENT_END){if(n.options.swipe_max_touches>0&&t.touches.length>n.options.swipe_max_touches)return;(t.velocityX>n.options.swipe_velocity||t.velocityY>n.options.swipe_velocity)&&(n.trigger(this.name,t),n.trigger(this.name+t.direction,t))}}},e.Gestures.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!0,drag_block_vertical:!0,drag_lock_to_axis:!1,drag_lock_min_distance:25,prevent_default_directions:[]},triggered:!1,handler:function(t,n){if("touchstart"==t.srcEvent.type||"touchend"==t.srcEvent.type?this.preventedFirstMove=!1:this.preventedFirstMove||"touchmove"!=t.srcEvent.type||(n.options.prevent_default_directions.length>0&&-1!=n.options.prevent_default_directions.indexOf(t.direction)&&t.srcEvent.preventDefault(),this.preventedFirstMove=!0),e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:if(t.distance<n.options.drag_min_distance&&e.Gestures.detection.current.name!=this.name)return;if(e.Gestures.detection.current.name!=this.name&&(e.Gestures.detection.current.name=this.name,n.options.correct_for_drag_min_distance)){var r=Math.abs(n.options.drag_min_distance/t.distance);e.Gestures.detection.current.startEvent.center.pageX+=t.deltaX*r,e.Gestures.detection.current.startEvent.center.pageY+=t.deltaY*r,t=e.Gestures.detection.extendEventData(t)}(e.Gestures.detection.current.lastEvent.drag_locked_to_axis||n.options.drag_lock_to_axis&&n.options.drag_lock_min_distance<=t.distance)&&(t.drag_locked_to_axis=!0);var i=e.Gestures.detection.current.lastEvent.direction;t.drag_locked_to_axis&&i!==t.direction&&(e.Gestures.utils.isVertical(i)?t.direction=t.deltaY<0?e.Gestures.DIRECTION_UP:e.Gestures.DIRECTION_DOWN:t.direction=t.deltaX<0?e.Gestures.DIRECTION_LEFT:e.Gestures.DIRECTION_RIGHT),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),(n.options.drag_block_vertical&&e.Gestures.utils.isVertical(t.direction)||n.options.drag_block_horizontal&&!e.Gestures.utils.isVertical(t.direction))&&t.preventDefault();break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(e.Gestures.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),void(this.triggered=!1);if(!(t.touches.length<2))switch(n.options.transform_always_block&&t.preventDefault(),t.eventType){case e.Gestures.EVENT_START:this.triggered=!1;break;case e.Gestures.EVENT_MOVE:var r=Math.abs(1-t.scale),i=Math.abs(t.rotation);if(r<n.options.transform_min_scale&&i<n.options.transform_min_rotation)return;e.Gestures.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),i>n.options.transform_min_rotation&&n.trigger("rotate",t),r>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(t.scale<1?"in":"out"),t));break;case e.Gestures.EVENT_END:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},e.Gestures.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){if(n.options.prevent_mouseevents&&t.pointerType==e.Gestures.POINTER_MOUSE)return void t.stopDetect();n.options.prevent_default&&t.preventDefault(),t.eventType==e.Gestures.EVENT_START&&n.trigger(this.name,t)}},e.Gestures.gestures.Release={name:"release",index:1/0,handler:function(t,n){t.eventType==e.Gestures.EVENT_END&&n.trigger(this.name,t)}}}(window.ionic),function(e,t,n){function r(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var t=new RegExp("[\\?&]"+e+"=([^&#]*)"),n=t.exec(location.search);return null===n?"":decodeURIComponent(n[1].replace(/\+/g," "))}function i(){l.isWebView()?t.addEventListener("deviceready",o,!1):o(),a&&e.removeEventListener("load",i,!1)}function o(){l.isReady=!0,l.detect();for(var e=0;e<d.length;e++)d[e]();d=[],n.trigger("platformready",{target:t}),s(function(){t.body.classList.add("platform-ready")})}var a,s=n.requestAnimationFrame,l=n.Platform={navigator:e.navigator,isReady:!1,isFullScreen:!1,platforms:null,grade:null,ua:navigator.userAgent,ready:function(e){l.isReady?e():d.push(e)},detect:function(){l._checkPlatforms(),s(function(){for(var e=0;e<l.platforms.length;e++)t.body.classList.add("platform-"+l.platforms[e])})},setGrade:function(e){var n=l.grade;l.grade=e,s(function(){n&&t.body.classList.remove("grade-"+n),t.body.classList.add("grade-"+e)})},device:function(){return e.device||{}},_checkPlatforms:function(){l.platforms=[];var t="a";l.isWebView()?(l.platforms.push("webview"),e.cordova||e.PhoneGap||e.phonegap?l.platforms.push("cordova"):"object"==typeof e.forge&&l.platforms.push("trigger")):l.platforms.push("browser"),l.isIPad()&&l.platforms.push("ipad");var n=l.platform();if(n){l.platforms.push(n);var r=l.version();if(r){var i=r.toString();i.indexOf(".")>0?i=i.replace(".","_"):i+="_0",l.platforms.push(n+i.split("_")[0]),l.platforms.push(n+i),l.isAndroid()&&r<4.4?t=r<4?"c":"b":l.isWindowsPhone()&&(t="b")}}l.setGrade(t)},isWebView:function(){return!(!e.cordova&&!e.PhoneGap&&!e.phonegap&&"object"!==e.forge)},isIPad:function(){return!!/iPad/i.test(l.navigator.platform)||/iPad/i.test(l.ua)},isIOS:function(){return l.is("ios")},isAndroid:function(){return l.is("android")},isWindowsPhone:function(){return l.is("windowsphone")},isEdge:function(){return l.is("edge")},isCrosswalk:function(){return l.is("crosswalk")},platform:function(){return null===u&&l.setPlatform(l.device().platform),u},setPlatform:function(e){u=void 0!==e&&null!==e&&e.length?e.toLowerCase():r("ionicplatform")?r("ionicplatform"):l.ua.indexOf("Edge")>-1?"edge":l.ua.indexOf("Windows Phone")>-1?"windowsphone":l.ua.indexOf("Android")>0?"android":/iPhone|iPad|iPod/.test(l.ua)?"ios":l.navigator.platform&&navigator.platform.toLowerCase().split(" ")[0]||""},version:function(){return null===c&&l.setVersion(l.device().version),c},setVersion:function(e){if(void 0!==e&&null!==e&&(e=e.split("."),e=parseFloat(e[0]+"."+(e.length>1?e[1]:0)),!isNaN(e)))return void(c=e);c=0;var t=l.platform(),n={android:/Android (\d+).(\d+)?/,ios:/OS (\d+)_(\d+)?/,windowsphone:/Windows Phone (\d+).(\d+)?/};n[t]&&(e=l.ua.match(n[t]))&&e.length>2&&(c=parseFloat(e[1]+"."+e[2]))},is:function(e){if(e=e.toLowerCase(),l.platforms)for(var t=0;t<l.platforms.length;t++)if(l.platforms[t]===e)return!0;var n=l.platform();return n?n===e.toLowerCase():l.ua.toLowerCase().indexOf(e)>=0},exitApp:function(){l.ready(function(){navigator.app&&navigator.app.exitApp&&navigator.app.exitApp()})},showStatusBar:function(n){l._showStatusBar=n,l.ready(function(){s(function(){l._showStatusBar?(e.StatusBar&&e.StatusBar.show(),t.body.classList.remove("status-bar-hide")):(e.StatusBar&&e.StatusBar.hide(),t.body.classList.add("status-bar-hide"))})})},fullScreen:function(e,r){l.isFullScreen=!1!==e,n.DomUtil.ready(function(){s(function(){l.isFullScreen?t.body.classList.add("fullscreen"):t.body.classList.remove("fullscreen")}),l.showStatusBar(!0===r)})}},u=null,c=null,d=[],h=2e3;!function(){setTimeout(function(){!l.isReady&&l.isWebView()},h)}(),"complete"===t.readyState?i():(a=!0,e.addEventListener("load",i,!1))}(window,document,ionic),function(e,t){"use strict";t.CSS={},t.CSS.TRANSITION=[],t.CSS.TRANSFORM=[],t.EVENTS={},function(){var n,r=["webkitTransform","transform","-webkit-transform","webkit-transform","-moz-transform","moz-transform","MozTransform","mozTransform","msTransform"];for(n=0;n<r.length;n++)if(void 0!==e.documentElement.style[r[n]]){t.CSS.TRANSFORM=r[n];break}for(r=["webkitTransition","mozTransition","msTransition","transition"],n=0;n<r.length;n++)if(void 0!==e.documentElement.style[r[n]]){t.CSS.TRANSITION=r[n];break}t.CSS.TRANSITION=t.CSS.TRANSITION||"transition";var i=t.CSS.TRANSITION.indexOf("webkit")>-1;t.CSS.TRANSITION_DURATION=(i?"-webkit-":"")+"transition-duration",t.CSS.TRANSITIONEND=(i?"webkitTransitionEnd ":"")+"transitionend"}(),function(){var e="touchstart",n="touchmove",r="touchend",i="touchcancel";window.navigator.pointerEnabled?(e="pointerdown",n="pointermove",r="pointerup",i="pointercancel"):window.navigator.msPointerEnabled&&(e="MSPointerDown",n="MSPointerMove",r="MSPointerUp",i="MSPointerCancel"),t.EVENTS.touchstart=e,t.EVENTS.touchmove=n,t.EVENTS.touchend=r,t.EVENTS.touchcancel=i}(),"classList"in e.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function e(e){return function(){var n,r=t.className.split(/\s+/);for(n=0;n<arguments.length;n++)e(r,r.indexOf(arguments[n]),arguments[n]);t.className=r.join(" ")}}var t=this;return{add:e(function(e,t,n){~t||e.push(n)}),remove:e(function(e,t){~t&&e.splice(t,1)}),toggle:e(function(e,t,n){~t?e.splice(t,1):e.push(n)}),contains:function(e){return!!~t.className.split(/\s+/).indexOf(e)},item:function(e){return t.className.split(/\s+/)[e]||null}}}})}(document,ionic);var F,z,V,U,W,q,G,Z,J="touchmove",X=12,K=50,Q={click:r,mousedown:i,mouseup:o,mousemove:a,touchstart:s,touchend:l,touchcancel:c,touchmove:u,pointerdown:s,pointerup:l,pointercancel:c,pointermove:u,MSPointerDown:s,MSPointerUp:l,MSPointerCancel:c,MSPointerMove:u,focusin:m,focusout:g};ionic.tap={register:function(t){return F=t,e("click",!0,!0),e("mouseup"),e("mousedown"),window.navigator.pointerEnabled?(e("pointerdown"),e("pointerup"),e("pointercancel"),J="pointermove"):window.navigator.msPointerEnabled?(e("MSPointerDown"),e("MSPointerUp"),e("MSPointerCancel"),J="MSPointerMove"):(e("touchstart"),e("touchend"),e("touchcancel")),e("focusin"),e("focusout"),function(){for(var t in Q)e(t,!1);F=null,z=null,V=!1,W=!1,q=null}},ignoreScrollStart:function(e){return e.defaultPrevented||/^(file|range)$/i.test(e.target.type)||"true"==(e.target.dataset?e.target.dataset.preventScroll:e.target.getAttribute("data-prevent-scroll"))||!!/^(object|embed)$/i.test(e.target.tagName)||ionic.tap.isElementTapDisabled(e.target)},isTextInput:function(e){return!!e&&("TEXTAREA"==e.tagName||"true"===e.contentEditable||"INPUT"==e.tagName&&!/^(radio|checkbox|range|file|submit|reset|color|image|button)$/i.test(e.type))},isDateInput:function(e){return!!e&&"INPUT"==e.tagName&&/^(date|time|datetime-local|month|week)$/i.test(e.type)},isVideo:function(e){return!!e&&"VIDEO"==e.tagName},isKeyboardElement:function(e){return!ionic.Platform.isIOS()||ionic.Platform.isIPad()?ionic.tap.isTextInput(e)&&!ionic.tap.isDateInput(e):ionic.tap.isTextInput(e)||!!e&&"SELECT"==e.tagName},isLabelWithTextInput:function(e){var t=y(e,!1);return!!t&&ionic.tap.isTextInput(b(t))},containsOrIsTextInput:function(e){return ionic.tap.isTextInput(e)||ionic.tap.isLabelWithTextInput(e)},cloneFocusedInput:function(e){ionic.tap.hasCheckedClone||(ionic.tap.hasCheckedClone=!0,ionic.requestAnimationFrame(function(){var t=e.querySelector(":focus");if(ionic.tap.isTextInput(t)&&!ionic.tap.isDateInput(t)){var n=t.cloneNode(!0);n.value=t.value,n.classList.add("cloned-text-input"),n.readOnly=!0,t.isContentEditable&&(n.contentEditable=t.contentEditable,n.innerHTML=t.innerHTML),t.parentElement.insertBefore(n,t),t.classList.add("previous-input-focus"),n.scrollTop=t.scrollTop}}))},hasCheckedClone:!1,removeClonedInputs:function(e){ionic.tap.hasCheckedClone=!1,ionic.requestAnimationFrame(function(){var t,n=e.querySelectorAll(".cloned-text-input"),r=e.querySelectorAll(".previous-input-focus");for(t=0;t<n.length;t++)n[t].parentElement.removeChild(n[t]);for(t=0;t<r.length;t++)r[t].classList.remove("previous-input-focus"),r[t].style.top="",ionic.keyboard.isOpen&&!ionic.keyboard.isClosing&&r[t].focus()})},requiresNativeClick:function(e){return!(!ionic.Platform.isWindowsPhone()||"A"!=e.tagName&&"BUTTON"!=e.tagName&&!e.hasAttribute("ng-click")&&("INPUT"!=e.tagName||"button"!=e.type&&"submit"!=e.type))||(!!(!e||e.disabled||/^(file|range)$/i.test(e.type)||/^(object|video)$/i.test(e.tagName)||ionic.tap.isLabelContainingFileInput(e))||ionic.tap.isElementTapDisabled(e))},isLabelContainingFileInput:function(e){var t=y(e);if("LABEL"!==t.tagName)return!1;var n=t.querySelector("input[type=file]");return!(!n||!1!==n.disabled)},isElementTapDisabled:function(e){if(e&&1===e.nodeType)for(var t=e;t;){if(t.getAttribute&&"true"==t.getAttribute("data-tap-disabled"))return!0;t=t.parentElement}return!1},setTolerance:function(e,t){X=e,K=t},cancelClick:function(){W=!0},pointerCoord:function(e){var t={x:0,y:0};if(e){var n=e.touches&&e.touches.length?e.touches:[e],r=e.changedTouches&&e.changedTouches[0]||n[0];r&&(t.x=r.clientX||r.pageX||0,t.y=r.clientY||r.pageY||0)}return t}},ionic.DomUtil.ready(function(){var e="undefined"!=typeof angular?angular:null;(!e||e&&!e.scenario)&&ionic.tap.register(document)}),function(e,t){"use strict";function n(){o={},t.requestAnimationFrame(i)}function r(){for(var e in o)o[e]&&(o[e].classList.add(l),a[e]=o[e]);o={}}function i(){if(t.transition&&t.transition.isActive)return void setTimeout(i,400);for(var e in a)a[e]&&(a[e].classList.remove(l),delete a[e])}var o={},a={},s=0,l="activated";t.activator={start:function(e){var n=t.tap.pointerCoord(e).x;n>0&&n<30||t.requestAnimationFrame(function(){if(!(t.scroll&&t.scroll.isScrolling||t.tap.requiresNativeClick(e.target))){for(var n,i=e.target,a=0;a<6&&(i&&1===i.nodeType);a++){if(n&&i.classList&&i.classList.contains("item")){n=i;break}if("A"==i.tagName||"BUTTON"==i.tagName||i.hasAttribute("ng-click")){n=i;break}if(i.classList&&i.classList.contains("button")){n=i;break}if("ION-CONTENT"==i.tagName||i.classList&&i.classList.contains("pane")||"BODY"==i.tagName)break;i=i.parentElement}n&&(o[s]=n,t.requestAnimationFrame(r),s=s>29?0:s+1)}})},end:function(){setTimeout(n,200)}}}(document,ionic),function(e){var t=0;e.Utils={arrayMove:function(e,t,n){if(n>=e.length)for(var r=n-e.length;1+r--;)e.push(void 0);return e.splice(n,0,e.splice(t,1)[0]),e},proxy:function(e,t){var n=Array.prototype.slice.call(arguments,2);return function(){return e.apply(t,n.concat(Array.prototype.slice.call(arguments)))}},debounce:function(e,t,n){var r,i,o,a,s;return function(){o=this,i=arguments,a=new Date;var l=function(){var u=new Date-a;u<t?r=setTimeout(l,t-u):(r=null,n||(s=e.apply(o,i)))},u=n&&!r;return r||(r=setTimeout(l,t)),u&&(s=e.apply(o,i)),s}},throttle:function(e,t,n){var r,i,o,a=null,s=0;n||(n={});var l=function(){s=!1===n.leading?0:Date.now(),a=null,o=e.apply(r,i)};return function(){var u=Date.now();s||!1!==n.leading||(s=u);var c=t-(u-s);return r=this,i=arguments,c<=0?(clearTimeout(a),a=null,s=u,o=e.apply(r,i)):a||!1===n.trailing||(a=setTimeout(l,c)),o}},inherit:function(t,n){var r,i=this;r=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},e.extend(r,i,n);var o=function(){this.constructor=r};return o.prototype=i.prototype,r.prototype=new o,t&&e.extend(r.prototype,t),r.__super__=i.prototype,r},extend:function(e){for(var t=Array.prototype.slice.call(arguments,1),n=0;n<t.length;n++){var r=t[n];if(r)for(var i in r)e[i]=r[i]}return e},nextUid:function(){return"ion"+t++},disconnectScope:function(e){if(e&&e.$root!==e){var t=e.$parent;e.$$disconnected=!0,e.$broadcast("$ionic.disconnectScope",e),t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e.$parent;e.$$disconnected=!1,e.$broadcast("$ionic.reconnectScope",e),e.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=e,t.$$childTail=e):t.$$childHead=t.$$childTail=e}},isScopeDisconnected:function(e){for(var t=e;t;){if(t.$$disconnected)return!0;t=t.$parent}return!1}},e.inherit=e.Utils.inherit,e.extend=e.Utils.extend,e.throttle=e.Utils.throttle,e.proxy=e.Utils.proxy,e.debounce=e.Utils.debounce}(window.ionic);var ee,te,ne,re,ie,oe=0,ae=0,se=0,le=!1,ue="keyboard-open",ce="scroll-content",de=ionic.debounce(k,200,!0),he=ionic.debounce(M,100,!0);ionic.keyboard={isOpen:!1,isClosing:!1,isOpening:!1,height:0,isLandscape:!1,isInitialized:!1,hide:function(){H()&&cordova.plugins.Keyboard.close(),ee&&ee.blur()},show:function(){H()&&cordova.plugins.Keyboard.show()},disable:function(){H()?(window.removeEventListener("native.keyboardshow",he),window.removeEventListener("native.keyboardhide",x)):document.body.removeEventListener("focusout",x),document.body.removeEventListener("ionic.focusin",de),document.body.removeEventListener("focusin",de),window.removeEventListener("orientationchange",S),window.navigator.msPointerEnabled?document.removeEventListener("MSPointerDown",L):document.removeEventListener("touchstart",L),ionic.keyboard.isInitialized=!1},enable:function(){L()}},oe=j(),ionic.Platform.ready(function(){I(),window.addEventListener("orientationchange",S),setTimeout(I,999),window.navigator.msPointerEnabled?document.addEventListener("MSPointerDown",L,!1):document.addEventListener("touchstart",L,!1)});var fe,pe={};ionic.viewport={orientation:function(){return window.innerWidth>window.innerHeight?90:0}},ionic.Platform.ready(function(){N(),window.addEventListener("orientationchange",function(){setTimeout(B,1e3)},!1)}),function(e){"use strict";e.views.View=function(){this.initialize.apply(this,arguments)},e.views.View.inherit=e.inherit,e.extend(e.views.View.prototype,{initialize:function(){}})}(window.ionic);var me={effect:{}};!function(e){var t=Date.now||function(){return+new Date},n={},r=1;me.effect.Animate={requestAnimationFrame:function(){var t=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame,n=!!t;if(t&&!/requestAnimationFrame\(\)\s*\{\s*\[native code\]\s*\}/i.test(t.toString())&&(n=!1),n)return function(e,n){t(e,n)};var r={},i=0,o=1,a=null,s=+new Date;return function(e){var t=o++;return r[t]=e,i++,null===a&&(a=setInterval(function(){var e=+new Date,t=r;r={},i=0;for(var n in t)t.hasOwnProperty(n)&&(t[n](e),s=e);e-s>2500&&(clearInterval(a),a=null)},1e3/60)),t}}(),stop:function(e){var t=null!=n[e];return t&&(n[e]=null),t},isRunning:function(e){return null!=n[e]},start:function(e,i,o,a,s,l){var u=t(),c=u,d=0,h=0,f=r++;if(l||(l=document.body),f%20==0){var p={};for(var m in n)p[m]=!0;n=p}var g=function(r){var p=!0!==r,m=t();if(!n[f]||i&&!i(f))return n[f]=null,void(o&&o(60-h/((m-u)/1e3),f,!1));if(p)for(var v=Math.round((m-c)/(1e3/60))-1,_=0;_<Math.min(v,4);_++)g(!0),h++;a&&(d=(m-u)/a)>1&&(d=1);var y=s?s(d):d;!1!==e(y,m,p)&&1!==d||!p?p&&(c=m,me.effect.Animate.requestAnimationFrame(g,l)):(n[f]=null,o&&o(60-h/((m-u)/1e3),f,1===d||null==a))};return n[f]=!0,me.effect.Animate.requestAnimationFrame(g,l),f}}}(window),function(e){var t=function(){},n=function(e){return Math.pow(e-1,3)+1},r=function(e){return(e/=.5)<1?.5*Math.pow(e,3):.5*(Math.pow(e-2,3)+2)};e.views.Scroll=e.views.View.inherit({initialize:function(n){var r=this;r.__container=n.el,r.__content=n.el.firstElementChild,setTimeout(function(){r.__container&&r.__content&&(r.__container.scrollTop=0,r.__content.scrollTop=0)}),r.options={scrollingX:!1,scrollbarX:!0,scrollingY:!0,scrollbarY:!0,startX:0,startY:0,wheelDampen:6,minScrollbarSizeX:5,minScrollbarSizeY:5,scrollbarsFade:!0,scrollbarFadeDelay:300,scrollbarResizeFadeDelay:1e3,animating:!0,animationDuration:250,decelVelocityThreshold:4,decelVelocityThresholdPaging:4,bouncing:!0,locking:!0,paging:!1,snapping:!1,zooming:!1,minZoom:.5,maxZoom:3,speedMultiplier:1,deceleration:.97,preventDefault:!1,scrollingComplete:t,penetrationDeceleration:.03,penetrationAcceleration:.08,scrollEventInterval:10,freeze:!1,getContentWidth:function(){return Math.max(r.__content.scrollWidth,r.__content.offsetWidth)},
-getContentHeight:function(){return Math.max(r.__content.scrollHeight,r.__content.offsetHeight+2*r.__content.offsetTop)}};for(var i in n)r.options[i]=n[i];r.hintResize=e.debounce(function(){r.resize()},1e3,!0),r.onScroll=function(){e.scroll.isScrolling?(clearTimeout(r.scrollTimer),r.scrollTimer=setTimeout(r.setScrollStop,80)):setTimeout(r.setScrollStart,50)},r.freeze=function(e){return arguments.length&&(r.options.freeze=e),r.options.freeze},r.freezeShut=r.freeze,r.setScrollStart=function(){e.scroll.isScrolling=Math.abs(e.scroll.lastTop-r.__scrollTop)>1,clearTimeout(r.scrollTimer),r.scrollTimer=setTimeout(r.setScrollStop,80)},r.setScrollStop=function(){e.scroll.isScrolling=!1,e.scroll.lastTop=r.__scrollTop},r.triggerScrollEvent=e.throttle(function(){r.onScroll(),e.trigger("scroll",{scrollTop:r.__scrollTop,scrollLeft:r.__scrollLeft,target:r.__container})},r.options.scrollEventInterval),r.triggerScrollEndEvent=function(){e.trigger("scrollend",{scrollTop:r.__scrollTop,scrollLeft:r.__scrollLeft,target:r.__container})},r.__scrollLeft=r.options.startX,r.__scrollTop=r.options.startY,r.__callback=r.getRenderFn(),r.__initEventHandlers(),r.__createScrollbars()},run:function(){this.resize(),this.__fadeScrollbars("out",this.options.scrollbarResizeFadeDelay)},__isSingleTouch:!1,__isTracking:!1,__didDecelerationComplete:!1,__isGesturing:!1,__isDragging:!1,__isDecelerating:!1,__isAnimating:!1,__clientLeft:0,__clientTop:0,__clientWidth:0,__clientHeight:0,__contentWidth:0,__contentHeight:0,__snapWidth:100,__snapHeight:100,__refreshHeight:null,__refreshActive:!1,__refreshActivate:null,__refreshDeactivate:null,__refreshStart:null,__zoomLevel:1,__scrollLeft:0,__scrollTop:0,__maxScrollLeft:0,__maxScrollTop:0,__scheduledLeft:0,__scheduledTop:0,__scheduledZoom:0,__lastTouchLeft:null,__lastTouchTop:null,__lastTouchMove:null,__positions:null,__minDecelerationScrollLeft:null,__minDecelerationScrollTop:null,__maxDecelerationScrollLeft:null,__maxDecelerationScrollTop:null,__decelerationVelocityX:null,__decelerationVelocityY:null,__transformProperty:null,__perspectiveProperty:null,__indicatorX:null,__indicatorY:null,__scrollbarFadeTimeout:null,__didWaitForSize:null,__sizerTimeout:null,__initEventHandlers:function(){function t(e){return e.touches&&e.touches.length?e.touches:[{pageX:e.pageX,pageY:e.pageY}]}var n,r=this,i=r.__container;if(r.scrollChildIntoView=function(t){var o=i.getBoundingClientRect().bottom;n=i.offsetHeight;var a=r.isShrunkForKeyboard,s=i.parentNode.classList.contains("modal"),l=s&&window.innerWidth>=680;if(!a){if(e.Platform.isIOS()||e.Platform.isFullScreen||l){var u=t.detail.viewportHeight-o,c=Math.max(0,t.detail.keyboardHeight-u);e.requestAnimationFrame(function(){n-=c,i.style.height=n+"px",i.style.overflow="visible",r.resize()})}r.isShrunkForKeyboard=!0}t.detail.isElementUnderKeyboard&&e.requestAnimationFrame(function(){i.scrollTop=0,r.isShrunkForKeyboard&&!a&&(o=i.getBoundingClientRect().bottom);var s=.5*n,l=(t.detail.elementBottom+t.detail.elementTop)/2,u=l-o,c=u+s;c>0&&(e.Platform.isIOS()&&e.tap.cloneFocusedInput(i,r),r.scrollBy(0,c,!0),r.onScroll())}),t.stopPropagation()},r.resetScrollView=function(){r.isShrunkForKeyboard&&(r.isShrunkForKeyboard=!1,i.style.height="",i.style.overflow=""),r.resize()},i.addEventListener("scrollChildIntoView",r.scrollChildIntoView),document.addEventListener("resetScrollView",r.resetScrollView),r.touchStart=function(n){if(r.startCoordinates=e.tap.pointerCoord(n),!e.tap.ignoreScrollStart(n)){if(r.__isDown=!0,e.tap.containsOrIsTextInput(n.target)||"SELECT"===n.target.tagName)return void(r.__hasStarted=!1);r.__isSelectable=!0,r.__enableScrollY=!0,r.__hasStarted=!0,r.doTouchStart(t(n),n.timeStamp),n.preventDefault()}},r.touchMove=function(n){if(!(r.options.freeze||!r.__isDown||!r.__isDown&&n.defaultPrevented||"TEXTAREA"===n.target.tagName&&n.target.parentElement.querySelector(":focus"))){if(!r.__hasStarted&&(e.tap.containsOrIsTextInput(n.target)||"SELECT"===n.target.tagName))return r.__hasStarted=!0,r.doTouchStart(t(n),n.timeStamp),void n.preventDefault();if(r.startCoordinates){var o=e.tap.pointerCoord(n);r.__isSelectable&&e.tap.isTextInput(n.target)&&Math.abs(r.startCoordinates.x-o.x)>20&&(r.__enableScrollY=!1,r.__isSelectable=!0),r.__enableScrollY&&Math.abs(r.startCoordinates.y-o.y)>10&&(r.__isSelectable=!1,e.tap.cloneFocusedInput(i,r))}r.doTouchMove(t(n),n.timeStamp,n.scale),r.__isDown=!0}},r.touchMoveBubble=function(e){r.__isDown&&r.options.preventDefault&&e.preventDefault()},r.touchEnd=function(t){r.__isDown&&(r.doTouchEnd(t,t.timeStamp),r.__isDown=!1,r.__hasStarted=!1,r.__isSelectable=!0,r.__enableScrollY=!0,r.__isDragging||r.__isDecelerating||r.__isAnimating||e.tap.removeClonedInputs(i,r))},r.mouseWheel=e.animationFrameThrottle(function(t){var n=e.DomUtil.getParentOrSelfWithClass(t.target,"ionic-scroll");r.options.freeze||n!==r.__container||(r.hintResize(),r.scrollBy((t.wheelDeltaX||t.deltaX||0)/r.options.wheelDampen,(-t.wheelDeltaY||t.deltaY||0)/r.options.wheelDampen),r.__fadeScrollbars("in"),clearTimeout(r.__wheelHideBarTimeout),r.__wheelHideBarTimeout=setTimeout(function(){r.__fadeScrollbars("out")},100))}),"ontouchstart"in window)i.addEventListener("touchstart",r.touchStart,!1),r.options.preventDefault&&i.addEventListener("touchmove",r.touchMoveBubble,!1),document.addEventListener("touchmove",r.touchMove,!1),document.addEventListener("touchend",r.touchEnd,!1),document.addEventListener("touchcancel",r.touchEnd,!1),document.addEventListener("wheel",r.mouseWheel,!1);else if(window.navigator.pointerEnabled)i.addEventListener("pointerdown",r.touchStart,!1),r.options.preventDefault&&i.addEventListener("pointermove",r.touchMoveBubble,!1),document.addEventListener("pointermove",r.touchMove,!1),document.addEventListener("pointerup",r.touchEnd,!1),document.addEventListener("pointercancel",r.touchEnd,!1),document.addEventListener("wheel",r.mouseWheel,!1);else if(window.navigator.msPointerEnabled)i.addEventListener("MSPointerDown",r.touchStart,!1),r.options.preventDefault&&i.addEventListener("MSPointerMove",r.touchMoveBubble,!1),document.addEventListener("MSPointerMove",r.touchMove,!1),document.addEventListener("MSPointerUp",r.touchEnd,!1),document.addEventListener("MSPointerCancel",r.touchEnd,!1),document.addEventListener("wheel",r.mouseWheel,!1);else{var o=!1;r.mouseDown=function(n){e.tap.ignoreScrollStart(n)||"SELECT"===n.target.tagName||(r.doTouchStart(t(n),n.timeStamp),e.tap.isTextInput(n.target)||n.preventDefault(),o=!0)},r.mouseMove=function(e){r.options.freeze||!o||!o&&e.defaultPrevented||(r.doTouchMove(t(e),e.timeStamp),o=!0)},r.mouseMoveBubble=function(e){o&&r.options.preventDefault&&e.preventDefault()},r.mouseUp=function(e){o&&(r.doTouchEnd(e,e.timeStamp),o=!1)},i.addEventListener("mousedown",r.mouseDown,!1),r.options.preventDefault&&i.addEventListener("mousemove",r.mouseMoveBubble,!1),document.addEventListener("mousemove",r.mouseMove,!1),document.addEventListener("mouseup",r.mouseUp,!1),document.addEventListener("mousewheel",r.mouseWheel,!1),document.addEventListener("wheel",r.mouseWheel,!1)}},__cleanup:function(){var n=this,r=n.__container;r.removeEventListener("touchstart",n.touchStart),r.removeEventListener("touchmove",n.touchMoveBubble),document.removeEventListener("touchmove",n.touchMove),document.removeEventListener("touchend",n.touchEnd),document.removeEventListener("touchcancel",n.touchEnd),r.removeEventListener("pointerdown",n.touchStart),r.removeEventListener("pointermove",n.touchMoveBubble),document.removeEventListener("pointermove",n.touchMove),document.removeEventListener("pointerup",n.touchEnd),document.removeEventListener("pointercancel",n.touchEnd),r.removeEventListener("MSPointerDown",n.touchStart),r.removeEventListener("MSPointerMove",n.touchMoveBubble),document.removeEventListener("MSPointerMove",n.touchMove),document.removeEventListener("MSPointerUp",n.touchEnd),document.removeEventListener("MSPointerCancel",n.touchEnd),r.removeEventListener("mousedown",n.mouseDown),r.removeEventListener("mousemove",n.mouseMoveBubble),document.removeEventListener("mousemove",n.mouseMove),document.removeEventListener("mouseup",n.mouseUp),document.removeEventListener("mousewheel",n.mouseWheel),document.removeEventListener("wheel",n.mouseWheel),r.removeEventListener("scrollChildIntoView",n.scrollChildIntoView),document.removeEventListener("resetScrollView",n.resetScrollView),e.tap.removeClonedInputs(r,n),delete n.__container,delete n.__content,delete n.__indicatorX,delete n.__indicatorY,delete n.options.el,n.__callback=n.scrollChildIntoView=n.resetScrollView=t,n.mouseMove=n.mouseDown=n.mouseUp=n.mouseWheel=n.touchStart=n.touchMove=n.touchEnd=n.touchCancel=t,n.resize=n.scrollTo=n.zoomTo=n.__scrollingComplete=t,r=null},__createScrollbar:function(e){var t=document.createElement("div"),n=document.createElement("div");return n.className="scroll-bar-indicator scroll-bar-fade-out",t.className="h"==e?"scroll-bar scroll-bar-h":"scroll-bar scroll-bar-v",t.appendChild(n),t},__createScrollbars:function(){var e,t,n=this;n.options.scrollingX&&(e={el:n.__createScrollbar("h"),sizeRatio:1},e.indicator=e.el.children[0],n.options.scrollbarX&&n.__container.appendChild(e.el),n.__indicatorX=e),n.options.scrollingY&&(t={el:n.__createScrollbar("v"),sizeRatio:1},t.indicator=t.el.children[0],n.options.scrollbarY&&n.__container.appendChild(t.el),n.__indicatorY=t)},__resizeScrollbars:function(){var t=this;if(t.__indicatorX){var n=Math.max(Math.round(t.__clientWidth*t.__clientWidth/t.__contentWidth),20);n>t.__contentWidth&&(n=0),n!==t.__indicatorX.size&&e.requestAnimationFrame(function(){t.__indicatorX.indicator.style.width=n+"px"}),t.__indicatorX.size=n,t.__indicatorX.minScale=t.options.minScrollbarSizeX/n,t.__indicatorX.maxPos=t.__clientWidth-n,t.__indicatorX.sizeRatio=t.__maxScrollLeft?t.__indicatorX.maxPos/t.__maxScrollLeft:1}if(t.__indicatorY){var r=Math.max(Math.round(t.__clientHeight*t.__clientHeight/t.__contentHeight),20);r>t.__contentHeight&&(r=0),r!==t.__indicatorY.size&&e.requestAnimationFrame(function(){t.__indicatorY&&(t.__indicatorY.indicator.style.height=r+"px")}),t.__indicatorY.size=r,t.__indicatorY.minScale=t.options.minScrollbarSizeY/r,t.__indicatorY.maxPos=t.__clientHeight-r,t.__indicatorY.sizeRatio=t.__maxScrollTop?t.__indicatorY.maxPos/t.__maxScrollTop:1}},__repositionScrollbars:function(){var e,t,n,r,i,o,a=this,s=0,l=0;if(a.__indicatorX){a.__indicatorY&&(s=10),i=Math.round(a.__indicatorX.sizeRatio*a.__scrollLeft)||0,n=a.__scrollLeft-(a.__maxScrollLeft-s),a.__scrollLeft<0?(t=Math.max(a.__indicatorX.minScale,(a.__indicatorX.size-Math.abs(a.__scrollLeft))/a.__indicatorX.size),i=0,a.__indicatorX.indicator.style[a.__transformOriginProperty]="left center"):n>0?(t=Math.max(a.__indicatorX.minScale,(a.__indicatorX.size-n)/a.__indicatorX.size),i=a.__indicatorX.maxPos-s,a.__indicatorX.indicator.style[a.__transformOriginProperty]="right center"):(i=Math.min(a.__maxScrollLeft,Math.max(0,i)),t=1);var u="translate3d("+i+"px, 0, 0) scaleX("+t+")";a.__indicatorX.transformProp!==u&&(a.__indicatorX.indicator.style[a.__transformProperty]=u,a.__indicatorX.transformProp=u)}if(a.__indicatorY){o=Math.round(a.__indicatorY.sizeRatio*a.__scrollTop)||0,a.__indicatorX&&(l=10),r=a.__scrollTop-(a.__maxScrollTop-l),a.__scrollTop<0?(e=Math.max(a.__indicatorY.minScale,(a.__indicatorY.size-Math.abs(a.__scrollTop))/a.__indicatorY.size),o=0,"center top"!==a.__indicatorY.originProp&&(a.__indicatorY.indicator.style[a.__transformOriginProperty]="center top",a.__indicatorY.originProp="center top")):r>0?(e=Math.max(a.__indicatorY.minScale,(a.__indicatorY.size-r)/a.__indicatorY.size),o=a.__indicatorY.maxPos-l,"center bottom"!==a.__indicatorY.originProp&&(a.__indicatorY.indicator.style[a.__transformOriginProperty]="center bottom",a.__indicatorY.originProp="center bottom")):(o=Math.min(a.__maxScrollTop,Math.max(0,o)),e=1);var c="translate3d(0,"+o+"px, 0) scaleY("+e+")";a.__indicatorY.transformProp!==c&&(a.__indicatorY.indicator.style[a.__transformProperty]=c,a.__indicatorY.transformProp=c)}},__fadeScrollbars:function(e,t){var n=this;if(n.options.scrollbarsFade){var r="scroll-bar-fade-out";!0===n.options.scrollbarsFade&&(clearTimeout(n.__scrollbarFadeTimeout),"in"==e?(n.__indicatorX&&n.__indicatorX.indicator.classList.remove(r),n.__indicatorY&&n.__indicatorY.indicator.classList.remove(r)):n.__scrollbarFadeTimeout=setTimeout(function(){n.__indicatorX&&n.__indicatorX.indicator.classList.add(r),n.__indicatorY&&n.__indicatorY.indicator.classList.add(r)},t||n.options.scrollbarFadeDelay))}},__scrollingComplete:function(){this.options.scrollingComplete(),e.tap.removeClonedInputs(this.__container,this),this.__fadeScrollbars("out")},resize:function(e){var t=this;t.__container&&t.options&&t.setDimensions(t.__container.clientWidth,t.__container.clientHeight,t.options.getContentWidth(),t.options.getContentHeight(),e)},getRenderFn:function(){var e,t=this,n=t.__content,r=document.documentElement.style;"MozAppearance"in r?e="gecko":"WebkitAppearance"in r?e="webkit":"string"==typeof navigator.cpuClass&&(e="trident");var i={trident:"ms",gecko:"Moz",webkit:"Webkit",presto:"O"}[e],o=document.createElement("div"),a=i+"Perspective",s=i+"Transform",l=i+"TransformOrigin";return t.__perspectiveProperty=s,t.__transformProperty=s,t.__transformOriginProperty=l,void 0!==o.style[a]?function(e,r,i,o){var a="translate3d("+-e+"px,"+-r+"px,0) scale("+i+")";a!==t.contentTransform&&(n.style[s]=a,t.contentTransform=a),t.__repositionScrollbars(),o||t.triggerScrollEvent()}:void 0!==o.style[s]?function(e,r,i,o){n.style[s]="translate("+-e+"px,"+-r+"px) scale("+i+")",t.__repositionScrollbars(),o||t.triggerScrollEvent()}:function(e,r,i,o){n.style.marginLeft=e?-e/i+"px":"",n.style.marginTop=r?-r/i+"px":"",n.style.zoom=i||"",t.__repositionScrollbars(),o||t.triggerScrollEvent()}},setDimensions:function(e,t,n,r,i){var o=this;(e||t||n||r)&&(e===+e&&(o.__clientWidth=e),t===+t&&(o.__clientHeight=t),n===+n&&(o.__contentWidth=n),r===+r&&(o.__contentHeight=r),o.__computeScrollMax(),o.__resizeScrollbars(),i||o.scrollTo(o.__scrollLeft,o.__scrollTop,!0,null,!0))},setPosition:function(e,t){this.__clientLeft=e||0,this.__clientTop=t||0},setSnapSize:function(e,t){this.__snapWidth=e,this.__snapHeight=t},activatePullToRefresh:function(t,n){var r=this;r.__refreshHeight=t,r.__refreshActivate=function(){e.requestAnimationFrame(n.activate)},r.__refreshDeactivate=function(){e.requestAnimationFrame(n.deactivate)},r.__refreshStart=function(){e.requestAnimationFrame(n.start)},r.__refreshShow=function(){e.requestAnimationFrame(n.show)},r.__refreshHide=function(){e.requestAnimationFrame(n.hide)},r.__refreshTail=function(){e.requestAnimationFrame(n.tail)},r.__refreshTailTime=100,r.__minSpinTime=600},triggerPullToRefresh:function(){this.__publish(this.__scrollLeft,-this.__refreshHeight,this.__zoomLevel,!0);var e=new Date;this.refreshStartTime=e.getTime(),this.__refreshStart&&this.__refreshStart()},finishPullToRefresh:function(){var e=this,t=new Date,n=0;e.refreshStartTime+e.__minSpinTime>t.getTime()&&(n=e.refreshStartTime+e.__minSpinTime-t.getTime()),setTimeout(function(){e.__refreshTail&&e.__refreshTail(),setTimeout(function(){e.__refreshActive=!1,e.__refreshDeactivate&&e.__refreshDeactivate(),e.__refreshHide&&e.__refreshHide(),e.scrollTo(e.__scrollLeft,e.__scrollTop,!0)},e.__refreshTailTime)},n)},getValues:function(){return{left:this.__scrollLeft,top:this.__scrollTop,zoom:this.__zoomLevel}},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},zoomTo:function(e,t,n,r){var i=this;if(!i.options.zooming)throw new Error("Zooming is not enabled!");i.__isDecelerating&&(me.effect.Animate.stop(i.__isDecelerating),i.__isDecelerating=!1);var o=i.__zoomLevel;null==n&&(n=i.__clientWidth/2),null==r&&(r=i.__clientHeight/2),e=Math.max(Math.min(e,i.options.maxZoom),i.options.minZoom),i.__computeScrollMax(e);var a=(n+i.__scrollLeft)*e/o-n,s=(r+i.__scrollTop)*e/o-r;a>i.__maxScrollLeft?a=i.__maxScrollLeft:a<0&&(a=0),s>i.__maxScrollTop?s=i.__maxScrollTop:s<0&&(s=0),i.__publish(a,s,e,t)},zoomBy:function(e,t,n,r){this.zoomTo(this.__zoomLevel*e,t,n,r)},scrollTo:function(e,t,n,r,i){var o=this;if(o.__isDecelerating&&(me.effect.Animate.stop(o.__isDecelerating),o.__isDecelerating=!1),null!=r&&r!==o.__zoomLevel){if(!o.options.zooming)throw new Error("Zooming is not enabled!");e*=r,t*=r,o.__computeScrollMax(r)}else r=o.__zoomLevel;o.options.scrollingX?o.options.paging?e=Math.round(e/o.__clientWidth)*o.__clientWidth:o.options.snapping&&(e=Math.round(e/o.__snapWidth)*o.__snapWidth):e=o.__scrollLeft,o.options.scrollingY?o.options.paging?t=Math.round(t/o.__clientHeight)*o.__clientHeight:o.options.snapping&&(t=Math.round(t/o.__snapHeight)*o.__snapHeight):t=o.__scrollTop,e=Math.max(Math.min(o.__maxScrollLeft,e),0),t=Math.max(Math.min(o.__maxScrollTop,t),0),e===o.__scrollLeft&&t===o.__scrollTop&&(n=!1),o.__publish(e,t,r,n,i)},scrollBy:function(e,t,n){var r=this,i=r.__isAnimating?r.__scheduledLeft:r.__scrollLeft,o=r.__isAnimating?r.__scheduledTop:r.__scrollTop;r.scrollTo(i+(e||0),o+(t||0),n)},doMouseZoom:function(e,t,n,r){var i=e>0?.97:1.03;return this.zoomTo(this.__zoomLevel*i,!1,n-this.__clientLeft,r-this.__clientTop)},doTouchStart:function(e,t){var n=this;n.__decStopped=!(!n.__isDecelerating&&!n.__isAnimating),n.hintResize(),t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now()),n.__interruptedAnimation=!0,n.__isDecelerating&&(me.effect.Animate.stop(n.__isDecelerating),n.__isDecelerating=!1,n.__interruptedAnimation=!0),n.__isAnimating&&(me.effect.Animate.stop(n.__isAnimating),n.__isAnimating=!1,n.__interruptedAnimation=!0);var r,i,o=1===e.length;o?(r=e[0].pageX,i=e[0].pageY):(r=Math.abs(e[0].pageX+e[1].pageX)/2,i=Math.abs(e[0].pageY+e[1].pageY)/2),n.__initialTouchLeft=r,n.__initialTouchTop=i,n.__initialTouches=e,n.__zoomLevelStart=n.__zoomLevel,n.__lastTouchLeft=r,n.__lastTouchTop=i,n.__lastTouchMove=t,n.__lastScale=1,n.__enableScrollX=!o&&n.options.scrollingX,n.__enableScrollY=!o&&n.options.scrollingY,n.__isTracking=!0,n.__didDecelerationComplete=!1,n.__isDragging=!o,n.__isSingleTouch=o,n.__positions=[]},doTouchMove:function(e,t,n){t instanceof Date&&(t=t.valueOf()),"number"!=typeof t&&(t=Date.now());var r=this;if(r.__isTracking){var i,o;2===e.length?(i=Math.abs(e[0].pageX+e[1].pageX)/2,o=Math.abs(e[0].pageY+e[1].pageY)/2,!n&&r.options.zooming&&(n=r.__getScale(r.__initialTouches,e))):(i=e[0].pageX,o=e[0].pageY);var a=r.__positions;if(r.__isDragging){r.__decStopped=!1;var s=i-r.__lastTouchLeft,l=o-r.__lastTouchTop,u=r.__scrollLeft,c=r.__scrollTop,d=r.__zoomLevel;if(null!=n&&r.options.zooming){var h=d;if(d=d/r.__lastScale*n,d=Math.max(Math.min(d,r.options.maxZoom),r.options.minZoom),h!==d){var f=i-r.__clientLeft,p=o-r.__clientTop;u=(f+u)*d/h-f,c=(p+c)*d/h-p,r.__computeScrollMax(d)}}if(r.__enableScrollX){u-=s*r.options.speedMultiplier;var m=r.__maxScrollLeft;(u>m||u<0)&&(r.options.bouncing?u+=s/2*r.options.speedMultiplier:u=u>m?m:0)}if(r.__enableScrollY){c-=l*r.options.speedMultiplier;var g=r.__maxScrollTop;c>g||c<0?r.options.bouncing||r.__refreshHeight&&c<0?(c+=l/2*r.options.speedMultiplier,r.__enableScrollX||null==r.__refreshHeight||(c<0?(r.__refreshHidden=!1,r.__refreshShow()):(r.__refreshHide(),r.__refreshHidden=!0),!r.__refreshActive&&c<=-r.__refreshHeight?(r.__refreshActive=!0,r.__refreshActivate&&r.__refreshActivate()):r.__refreshActive&&c>-r.__refreshHeight&&(r.__refreshActive=!1,r.__refreshDeactivate&&r.__refreshDeactivate()))):c=c>g?g:0:r.__refreshHeight&&!r.__refreshHidden&&(r.__refreshHide(),r.__refreshHidden=!0)}a.length>60&&a.splice(0,30),a.push(u,c,t),r.__publish(u,c,d)}else{var v=r.options.locking?3:0,_=Math.abs(i-r.__initialTouchLeft),y=Math.abs(o-r.__initialTouchTop);r.__enableScrollX=r.options.scrollingX&&_>=v,r.__enableScrollY=r.options.scrollingY&&y>=v,a.push(r.__scrollLeft,r.__scrollTop,t),r.__isDragging=(r.__enableScrollX||r.__enableScrollY)&&(_>=5||y>=5),r.__isDragging&&(r.__interruptedAnimation=!1,r.__fadeScrollbars("in"))}r.__lastTouchLeft=i,r.__lastTouchTop=o,r.__lastTouchMove=t,r.__lastScale=n}},doTouchEnd:function(t,n){n instanceof Date&&(n=n.valueOf()),"number"!=typeof n&&(n=Date.now());var r=this;if(r.__isTracking){if(r.__isTracking=!1,r.__isDragging)if(r.__isDragging=!1,r.__isSingleTouch&&r.options.animating&&n-r.__lastTouchMove<=100){for(var i=r.__positions,o=i.length-1,a=o,s=o;s>0&&i[s]>r.__lastTouchMove-100;s-=3)a=s;if(a!==o){var l=i[o]-i[a],u=r.__scrollLeft-i[a-2],c=r.__scrollTop-i[a-1];r.__decelerationVelocityX=u/l*(1e3/60),r.__decelerationVelocityY=c/l*(1e3/60);var d=r.options.paging||r.options.snapping?r.options.decelVelocityThresholdPaging:r.options.decelVelocityThreshold;(Math.abs(r.__decelerationVelocityX)>d||Math.abs(r.__decelerationVelocityY)>d)&&(r.__refreshActive||r.__startDeceleration(n))}else r.__scrollingComplete()}else n-r.__lastTouchMove>100&&r.__scrollingComplete();else r.__decStopped&&(t.isTapHandled=!0,r.__decStopped=!1);if(!r.__isDecelerating)if(r.__refreshActive&&r.__refreshStart){r.__publish(r.__scrollLeft,-r.__refreshHeight,r.__zoomLevel,!0);var h=new Date;r.refreshStartTime=h.getTime(),r.__refreshStart&&r.__refreshStart(),e.Platform.isAndroid()||r.__startDeceleration()}else(r.__interruptedAnimation||r.__isDragging)&&r.__scrollingComplete(),r.scrollTo(r.__scrollLeft,r.__scrollTop,!0,r.__zoomLevel),r.__refreshActive&&(r.__refreshActive=!1,r.__refreshDeactivate&&r.__refreshDeactivate());r.__positions.length=0}},__publish:function(e,t,i,o,a){var s=this,l=s.__isAnimating;if(l&&(me.effect.Animate.stop(l),s.__isAnimating=!1),o&&s.options.animating){s.__scheduledLeft=e,s.__scheduledTop=t,s.__scheduledZoom=i;var u=s.__scrollLeft,c=s.__scrollTop,d=s.__zoomLevel,h=e-u,f=t-c,p=i-d,m=function(e,t,n){n&&(s.__scrollLeft=u+h*e,s.__scrollTop=c+f*e,s.__zoomLevel=d+p*e,s.__callback&&s.__callback(s.__scrollLeft,s.__scrollTop,s.__zoomLevel,a))},g=function(e){return s.__isAnimating===e},v=function(e,t,n){t===s.__isAnimating&&(s.__isAnimating=!1),(s.__didDecelerationComplete||n)&&s.__scrollingComplete(),s.options.zooming&&s.__computeScrollMax()};s.__isAnimating=me.effect.Animate.start(m,g,v,s.options.animationDuration,l?n:r)}else s.__scheduledLeft=s.__scrollLeft=e,s.__scheduledTop=s.__scrollTop=t,s.__scheduledZoom=s.__zoomLevel=i,s.__callback&&s.__callback(e,t,i,a),s.options.zooming&&s.__computeScrollMax()},__computeScrollMax:function(e){var t=this;null==e&&(e=t.__zoomLevel),t.__maxScrollLeft=Math.max(t.__contentWidth*e-t.__clientWidth,0),t.__maxScrollTop=Math.max(t.__contentHeight*e-t.__clientHeight,0),t.__didWaitForSize||t.__maxScrollLeft||t.__maxScrollTop||(t.__didWaitForSize=!0,t.__waitForSize())},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__startDeceleration:function(){var e=this;if(e.options.paging){var t=Math.max(Math.min(e.__scrollLeft,e.__maxScrollLeft),0),n=Math.max(Math.min(e.__scrollTop,e.__maxScrollTop),0),r=e.__clientWidth,i=e.__clientHeight;e.__minDecelerationScrollLeft=Math.floor(t/r)*r,e.__minDecelerationScrollTop=Math.floor(n/i)*i,e.__maxDecelerationScrollLeft=Math.ceil(t/r)*r,e.__maxDecelerationScrollTop=Math.ceil(n/i)*i}else e.__minDecelerationScrollLeft=0,e.__minDecelerationScrollTop=0,e.__maxDecelerationScrollLeft=e.__maxScrollLeft,e.__maxDecelerationScrollTop=e.__maxScrollTop,e.__refreshActive&&(e.__minDecelerationScrollTop=-1*e.__refreshHeight);var o=function(t,n,r){e.__stepThroughDeceleration(r)};e.__minVelocityToKeepDecelerating=e.options.snapping?4:.1;var a=function(){var t=Math.abs(e.__decelerationVelocityX)>=e.__minVelocityToKeepDecelerating||Math.abs(e.__decelerationVelocityY)>=e.__minVelocityToKeepDecelerating;return t||(e.__didDecelerationComplete=!0,e.options.bouncing&&!e.__refreshActive&&e.scrollTo(Math.min(Math.max(e.__scrollLeft,0),e.__maxScrollLeft),Math.min(Math.max(e.__scrollTop,0),e.__maxScrollTop),e.__refreshActive)),t},s=function(){e.__isDecelerating=!1,e.__didDecelerationComplete&&e.__scrollingComplete(),e.options.paging&&e.scrollTo(e.__scrollLeft,e.__scrollTop,e.options.snapping)};e.__isDecelerating=me.effect.Animate.start(o,a,s)},__stepThroughDeceleration:function(e){var t=this,n=t.__scrollLeft+t.__decelerationVelocityX,r=t.__scrollTop+t.__decelerationVelocityY;if(!t.options.bouncing){var i=Math.max(Math.min(t.__maxDecelerationScrollLeft,n),t.__minDecelerationScrollLeft);i!==n&&(n=i,t.__decelerationVelocityX=0);var o=Math.max(Math.min(t.__maxDecelerationScrollTop,r),t.__minDecelerationScrollTop);o!==r&&(r=o,t.__decelerationVelocityY=0)}if(e?t.__publish(n,r,t.__zoomLevel):(t.__scrollLeft=n,t.__scrollTop=r),!t.options.paging){var a=t.options.deceleration;t.__decelerationVelocityX*=a,t.__decelerationVelocityY*=a}if(t.options.bouncing){var s=0,l=0,u=t.options.penetrationDeceleration,c=t.options.penetrationAcceleration;if(n<t.__minDecelerationScrollLeft?s=t.__minDecelerationScrollLeft-n:n>t.__maxDecelerationScrollLeft&&(s=t.__maxDecelerationScrollLeft-n),r<t.__minDecelerationScrollTop?l=t.__minDecelerationScrollTop-r:r>t.__maxDecelerationScrollTop&&(l=t.__maxDecelerationScrollTop-r),0!==s){var d=s*t.__decelerationVelocityX<=t.__minDecelerationScrollLeft;d&&(t.__decelerationVelocityX+=s*u);var h=Math.abs(t.__decelerationVelocityX)<=t.__minVelocityToKeepDecelerating;d&&!h||(t.__decelerationVelocityX=s*c)}if(0!==l){var f=l*t.__decelerationVelocityY<=t.__minDecelerationScrollTop;f&&(t.__decelerationVelocityY+=l*u);var p=Math.abs(t.__decelerationVelocityY)<=t.__minVelocityToKeepDecelerating;f&&!p||(t.__decelerationVelocityY=l*c)}}},__getDistance:function(e,t){var n=t.pageX-e.pageX,r=t.pageY-e.pageY;return Math.sqrt(n*n+r*r)},__getScale:function(e,t){return e.length>=2&&t.length>=2?this.__getDistance(t[0],t[1])/this.__getDistance(e[0],e[1]):1}}),e.scroll={isScrolling:!1,lastTop:0}}(ionic),function(e){var t=function(){};e.views.ScrollNative=e.views.View.inherit({initialize:function(t){var n=this;n.__container=n.el=t.el,n.__content=t.el.firstElementChild,n.__frozen=!1,n.isNative=!0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft,n.__clientHeight=n.__content.clientHeight,n.__clientWidth=n.__content.clientWidth,n.__maxScrollTop=Math.max(n.__contentHeight-n.__clientHeight,0),n.__maxScrollLeft=Math.max(n.__contentWidth-n.__clientWidth,0),(t.startY>=0||t.startX>=0)&&e.requestAnimationFrame(function(){n.__originalContainerHeight=n.el.getBoundingClientRect().height,n.el.scrollTop=t.startY||0,n.el.scrollLeft=t.startX||0,n.__scrollTop=n.el.scrollTop,n.__scrollLeft=n.el.scrollLeft}),n.options={freeze:!1,getContentWidth:function(){return Math.max(n.__content.scrollWidth,n.__content.offsetWidth)},getContentHeight:function(){return Math.max(n.__content.scrollHeight,n.__content.offsetHeight+2*n.__content.offsetTop)}};for(var r in t)n.options[r]=t[r];n.onScroll=function(){e.scroll.isScrolling||(e.scroll.isScrolling=!0),clearTimeout(n.scrollTimer),n.scrollTimer=setTimeout(function(){e.scroll.isScrolling=!1},80)},n.freeze=function(e){n.__frozen=e},n.freezeShut=function(e){n.__frozenShut=e},n.__initEventHandlers()},__callback:function(){},zoomTo:function(){},zoomBy:function(){},activatePullToRefresh:function(){},resize:function(e){var t=this;t.__container&&t.options&&t.setDimensions(t.__container.clientWidth,t.__container.clientHeight,t.options.getContentWidth(),t.options.getContentHeight(),e)},run:function(){this.resize()},getValues:function(){var e=this;return e.update(),{left:e.__scrollLeft,top:e.__scrollTop,zoom:1}},update:function(){var e=this;e.__scrollLeft=e.el.scrollLeft,e.__scrollTop=e.el.scrollTop},setDimensions:function(e,t,n,r){var i=this;(e||t||n||r)&&(e===+e&&(i.__clientWidth=e),t===+t&&(i.__clientHeight=t),n===+n&&(i.__contentWidth=n),r===+r&&(i.__contentHeight=r),i.__computeScrollMax())},getScrollMax:function(){return{left:this.__maxScrollLeft,top:this.__maxScrollTop}},scrollBy:function(e,t,n){var r=this;r.update();var i=r.__isAnimating?r.__scheduledLeft:r.__scrollLeft,o=r.__isAnimating?r.__scheduledTop:r.__scrollTop;r.scrollTo(i+(e||0),o+(t||0),n)},scrollTo:function(t,n,r){var i=this;if(!r)return i.el.scrollTop=n,i.el.scrollLeft=t,void i.resize();var o=i.el.style.overflowX,a=i.el.style.overflowY;clearTimeout(i.__scrollToCleanupTimeout),i.__scrollToCleanupTimeout=setTimeout(function(){i.el.style.overflowX=o,i.el.style.overflowY=a},500),i.el.style.overflowY="hidden",i.el.style.overflowX="hidden",function(t,n){function r(e){return--e*e*e+1}function s(){var h=Date.now(),f=Math.min(1,(h-l)/u),p=r(f);c!=t&&(i.el.scrollTop=parseInt(p*(t-c)+c,10)),d!=n&&(i.el.scrollLeft=parseInt(p*(n-d)+d,10)),f<1?e.requestAnimationFrame(s):(e.tap.removeClonedInputs(i.__container,i),i.el.style.overflowX=o,i.el.style.overflowY=a,i.resize())}var l=Date.now(),u=250,c=i.el.scrollTop,d=i.el.scrollLeft;if(c===t&&d===n)return i.el.style.overflowX=o,i.el.style.overflowY=a,void i.resize();e.requestAnimationFrame(s)}(n,t)},__waitForSize:function(){var e=this;clearTimeout(e.__sizerTimeout);var t=function(){e.resize(!0)};t(),e.__sizerTimeout=setTimeout(t,500)},__computeScrollMax:function(){var e=this;e.__maxScrollLeft=Math.max(e.__contentWidth-e.__clientWidth,0),e.__maxScrollTop=Math.max(e.__contentHeight-e.__clientHeight,0),e.__didWaitForSize||e.__maxScrollLeft||e.__maxScrollTop||(e.__didWaitForSize=!0,e.__waitForSize())},__initEventHandlers:function(){var t,n,r=this,i=r.__container;r.scrollChildIntoView=function(o){var a=i.getBoundingClientRect();r.__originalContainerHeight||(r.__originalContainerHeight=a.height),t=r.__originalContainerHeight;var s=r.isShrunkForKeyboard,l=i.parentNode.classList.contains("modal"),u=i.parentNode.classList.contains("popover"),c=l&&window.innerWidth>=680,d=n&&n!==o.detail.keyboardHeight;s&&!d||(!u&&(e.Platform.isIOS()||e.Platform.isFullScreen||c)&&e.requestAnimationFrame(function(){t=Math.max(0,Math.min(r.__originalContainerHeight,r.__originalContainerHeight-(o.detail.keyboardHeight-43))),i.style.height=t+"px",i.classList.add("keyboard-up"),r.resize()}),r.isShrunkForKeyboard=!0),n=o.detail.keyboardHeight,o.detail.isElementUnderKeyboard&&e.requestAnimationFrame(function(){var t=e.DomUtil.getOffsetTop(o.detail.target);setTimeout(function(){e.Platform.isIOS()&&e.tap.cloneFocusedInput(i,r),r.scrollTo(0,t-(a.top+100),!0),r.onScroll()},32)}),o.stopPropagation()},r.resetScrollView=function(){r.isShrunkForKeyboard&&(r.isShrunkForKeyboard=!1,i.style.height="",r.__originalContainerHeight=i.getBoundingClientRect().height,e.Platform.isIOS()&&e.requestAnimationFrame(function(){i.classList.remove("keyboard-up")})),r.resize()},r.handleTouchMove=function(e){return r.__frozenShut?(e.preventDefault(),e.stopPropagation(),!1):!r.__frozen||(e.preventDefault(),!1)},i.addEventListener("scroll",r.onScroll),i.addEventListener("scrollChildIntoView",r.scrollChildIntoView),i.addEventListener(e.EVENTS.touchstart,r.handleTouchMove),i.addEventListener(e.EVENTS.touchmove,r.handleTouchMove),document.addEventListener("resetScrollView",r.resetScrollView)},__cleanup:function(){var n=this,r=n.__container;r.removeEventListener("scroll",n.onScroll),r.removeEventListener("scrollChildIntoView",n.scrollChildIntoView),r.removeEventListener(e.EVENTS.touchstart,n.handleTouchMove),r.removeEventListener(e.EVENTS.touchmove,n.handleTouchMove),document.removeEventListener("resetScrollView",n.resetScrollView),e.tap.removeClonedInputs(r,n),delete n.__container,delete n.__content,delete n.__indicatorX,delete n.__indicatorY,delete n.options.el,n.resize=n.scrollTo=n.onScroll=n.resetScrollView=t,n.scrollChildIntoView=t,r=null}})}(ionic),function(e){"use strict";var t=function(){};t.prototype={start:function(){},drag:function(){},end:function(){},isSameItem:function(){return!1}};var n=function(e){this.dragThresholdX=e.dragThresholdX||10,this.el=e.el,this.item=e.item,this.canSwipe=e.canSwipe};n.prototype=new t,n.prototype.start=function(t){var n,r,i,o
-;this.canSwipe()&&(n=t.target.classList.contains("item-content")?t.target:t.target.classList.contains("item")?t.target.querySelector(".item-content"):e.DomUtil.getParentWithClass(t.target,"item-content"))&&(n.classList.remove("item-sliding"),i=parseFloat(n.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])||0,(r=n.parentNode.querySelector(".item-options"))&&(r.classList.remove("invisible"),o=r.offsetWidth,this._currentDrag={buttons:r,buttonsWidth:o,content:n,startOffsetX:i}))},n.prototype.isSameItem=function(e){return!(!e._lastDrag||!this._currentDrag)&&this._currentDrag.content==e._lastDrag.content},n.prototype.clean=function(t){function n(){r.buttons&&r.buttons.classList.add("invisible")}var r=this._lastDrag;r&&r.content&&(r.content.style[e.CSS.TRANSITION]="",r.content.style[e.CSS.TRANSFORM]="",t?(r.content.style[e.CSS.TRANSITION]="none",n(),e.requestAnimationFrame(function(){r.content.style[e.CSS.TRANSITION]=""})):e.requestAnimationFrame(function(){setTimeout(n,250)}))},n.prototype.drag=e.animationFrameThrottle(function(t){var n;if(this._currentDrag&&(!this._isDragging&&(Math.abs(t.gesture.deltaX)>this.dragThresholdX||Math.abs(this._currentDrag.startOffsetX)>0)&&(this._isDragging=!0),this._isDragging)){n=this._currentDrag.buttonsWidth;var r=Math.min(0,this._currentDrag.startOffsetX+t.gesture.deltaX);r<-n&&(r=Math.min(-n,-n+.4*(t.gesture.deltaX+n))),this._currentDrag.content.$$ionicOptionsOpen=0!==r,this._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+r+"px, 0, 0)",this._currentDrag.content.style[e.CSS.TRANSITION]="none"}}),n.prototype.end=function(t,n){var r=this;if(!r._currentDrag)return void(n&&n());var i=-r._currentDrag.buttonsWidth;t.gesture.deltaX>-r._currentDrag.buttonsWidth/2&&("left"==t.gesture.direction&&Math.abs(t.gesture.velocityX)<.3?i=0:"right"==t.gesture.direction&&(i=0)),e.requestAnimationFrame(function(){if(0===i){r._currentDrag.content.style[e.CSS.TRANSFORM]="";var t=r._currentDrag.buttons;setTimeout(function(){t&&t.classList.add("invisible")},250)}else r._currentDrag.content.style[e.CSS.TRANSFORM]="translate3d("+i+"px,0,0)";r._currentDrag.content.style[e.CSS.TRANSITION]="",r._lastDrag||(r._lastDrag={}),e.extend(r._lastDrag,r._currentDrag),r._currentDrag&&(r._currentDrag.buttons=null,r._currentDrag.content=null),r._currentDrag=null,n&&n()})};var r=function(e){var t=this;if(t.dragThresholdY=e.dragThresholdY||0,t.onReorder=e.onReorder,t.listEl=e.listEl,t.el=t.item=e.el,t.scrollEl=e.scrollEl,t.scrollView=e.scrollView,t.listElTrueTop=0,t.listEl.offsetParent){var n=t.listEl;do{t.listElTrueTop+=n.offsetTop,n=n.offsetParent}while(n)}};r.prototype=new t,r.prototype._moveElement=function(t){var n=t.gesture.center.pageY+this.scrollView.getValues().top-this._currentDrag.elementHeight/2-this.listElTrueTop;this.el.style[e.CSS.TRANSFORM]="translate3d(0, "+n+"px, 0)"},r.prototype.deregister=function(){this.listEl=this.el=this.scrollEl=this.scrollView=null},r.prototype.start=function(t){var n=e.DomUtil.getChildIndex(this.el,this.el.nodeName.toLowerCase()),r=this.el.scrollHeight,i=this.el.cloneNode(!0);i.classList.add("item-placeholder"),this.el.parentNode.insertBefore(i,this.el),this.el.classList.add("item-reordering"),this._currentDrag={elementHeight:r,startIndex:n,placeholder:i,scrollHeight:scroll,list:i.parentNode},this._moveElement(t)},r.prototype.drag=e.animationFrameThrottle(function(t){var n=this;if(this._currentDrag){var r=0,i=t.gesture.center.pageY,o=this.listElTrueTop;if(this.scrollView){var a=this.scrollView.__container;r=this.scrollView.getValues().top;var s=a.offsetTop,l=s-i+this._currentDrag.elementHeight/2,u=i+this._currentDrag.elementHeight/2-s-a.offsetHeight;t.gesture.deltaY<0&&l>0&&r>0&&(this.scrollView.scrollBy(null,-l),e.requestAnimationFrame(function(){n.drag(t)})),t.gesture.deltaY>0&&u>0&&r<this.scrollView.getScrollMax().top&&(this.scrollView.scrollBy(null,u),e.requestAnimationFrame(function(){n.drag(t)}))}!this._isDragging&&Math.abs(t.gesture.deltaY)>this.dragThresholdY&&(this._isDragging=!0),this._isDragging&&(this._moveElement(t),this._currentDrag.currentY=r+i-o)}}),r.prototype._getReorderIndex=function(){for(var e,t=this,n=Array.prototype.slice.call(t._currentDrag.placeholder.parentNode.children).filter(function(e){return e.nodeName===t.el.nodeName&&e!==t.el}),r=t._currentDrag.currentY,i=0,o=n.length;i<o;i++)if(e=n[i],i===o-1){if(r>e.offsetTop)return i}else if(0===i){if(r<e.offsetTop+e.offsetHeight)return i}else if(r>e.offsetTop-e.offsetHeight/2&&r<e.offsetTop+e.offsetHeight)return i;return t._currentDrag.startIndex},r.prototype.end=function(t,n){if(!this._currentDrag)return void(n&&n());var r=this._currentDrag.placeholder,i=this._getReorderIndex();this.el.classList.remove("item-reordering"),this.el.style[e.CSS.TRANSFORM]="",r.parentNode.insertBefore(this.el,r),r.parentNode.removeChild(r),this.onReorder&&this.onReorder(this.el,this._currentDrag.startIndex,i),this._currentDrag={placeholder:null,content:null},this._currentDrag=null,n&&n()},e.views.ListView=e.views.View.inherit({initialize:function(t){var n=this;t=e.extend({onReorder:function(){},virtualRemoveThreshold:-200,virtualAddThreshold:200,canSwipe:function(){return!0}},t),e.extend(n,t),!n.itemHeight&&n.listEl&&(n.itemHeight=n.listEl.children[0]&&parseInt(n.listEl.children[0].style.height,10)),n.onRefresh=t.onRefresh||function(){},n.onRefreshOpening=t.onRefreshOpening||function(){},n.onRefreshHolding=t.onRefreshHolding||function(){};var r={};e.DomUtil.getParentOrSelfWithClass(n.el,"overflow-scroll")&&(r.prevent_default_directions=["left","right"]),window.ionic.onGesture("release",function(e){n._handleEndDrag(e)},n.el,r),window.ionic.onGesture("drag",function(e){n._handleDrag(e)},n.el,r),n._initDrag()},deregister:function(){this.el=this.listEl=this.scrollEl=this.scrollView=null,this.isScrollFreeze&&self.scrollView.freeze(!1)},stopRefreshing:function(){this.el.querySelector(".list-refresher").style.height="0"},didScroll:function(e){var t=this;if(t.isVirtual){var n=t.itemHeight,r=e.target.scrollHeight,i=t.el.parentNode.offsetHeight,o=Math.max(0,e.scrollTop+t.virtualRemoveThreshold),a=Math.min(r,Math.abs(e.scrollTop)+i+t.virtualAddThreshold),s=parseInt(Math.abs(o/n),10),l=parseInt(Math.abs(a/n),10);t._virtualItemsToRemove=Array.prototype.slice.call(t.listEl.children,0,s),t.renderViewport&&t.renderViewport(o,a,s,l)}},didStopScrolling:function(){if(this.isVirtual)for(var e=0;e<this._virtualItemsToRemove.length;e++)this.didHideItem&&this.didHideItem(e)},clearDragEffects:function(e){this._lastDragOp&&(this._lastDragOp.clean&&this._lastDragOp.clean(e),this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=null)},_initDrag:function(){this._lastDragOp&&this._lastDragOp.deregister&&this._lastDragOp.deregister(),this._lastDragOp=this._dragOp,this._dragOp=null},_getItem:function(e){for(;e;){if(e.classList&&e.classList.contains("item"))return e;e=e.parentNode}return null},_startDrag:function(t){var i=this;i._isDragging=!1;var o,a=i._lastDragOp;i._didDragUpOrDown&&a instanceof n&&a.clean&&a.clean(),!e.DomUtil.getParentOrSelfWithClass(t.target,"item-reorder")||"up"!=t.gesture.direction&&"down"!=t.gesture.direction?!i._didDragUpOrDown&&("left"==t.gesture.direction||"right"==t.gesture.direction)&&Math.abs(t.gesture.deltaX)>5&&(o=i._getItem(t.target))&&o.querySelector(".item-options")&&(i._dragOp=new n({el:i.el,item:o,canSwipe:i.canSwipe}),i._dragOp.start(t),t.preventDefault(),i.isScrollFreeze=i.scrollView.freeze(!0)):(o=i._getItem(t.target))&&(i._dragOp=new r({listEl:i.el,el:o,scrollEl:i.scrollEl,scrollView:i.scrollView,onReorder:function(e,t,n){i.onReorder&&i.onReorder(e,t,n)}}),i._dragOp.start(t),t.preventDefault()),a&&i._dragOp&&!i._dragOp.isSameItem(a)&&t.defaultPrevented&&a.clean&&a.clean()},_handleEndDrag:function(e){var t=this;t.scrollView&&(t.isScrollFreeze=t.scrollView.freeze(!1)),t._didDragUpOrDown=!1,t._dragOp&&t._dragOp.end(e,function(){t._initDrag()})},_handleDrag:function(e){var t=this;Math.abs(e.gesture.deltaY)>5&&(t._didDragUpOrDown=!0),t.isDragging||t._dragOp||t._startDrag(e),t._dragOp&&(e.gesture.srcEvent.preventDefault(),t._dragOp.drag(e))}})}(ionic),function(e){"use strict";e.views.Modal=e.views.View.inherit({initialize:function(t){t=e.extend({focusFirstInput:!1,unfocusOnHide:!0,focusFirstDelay:600,backdropClickToClose:!0,hardwareBackButtonClose:!0},t),e.extend(this,t),this.el=t.el},show:function(){var e=this;e.focusFirstInput&&window.setTimeout(function(){var t=e.el.querySelector("input, textarea");t&&t.focus&&t.focus()},e.focusFirstDelay)},hide:function(){if(this.unfocusOnHide){var e=this.el.querySelectorAll("input, textarea");window.setTimeout(function(){for(var t=0;t<e.length;t++)e[t].blur&&e[t].blur()})}}})}(ionic),function(e){"use strict";e.views.SideMenu=e.views.View.inherit({initialize:function(e){this.el=e.el,this.isEnabled=void 0===e.isEnabled||e.isEnabled,this.setWidth(e.width)},getFullWidth:function(){return this.width},setWidth:function(e){this.width=e,this.el.style.width=e+"px"},setIsEnabled:function(e){this.isEnabled=e},bringUp:function(){"0"!==this.el.style.zIndex&&(this.el.style.zIndex="0")},pushDown:function(){"-1"!==this.el.style.zIndex&&(this.el.style.zIndex="-1")}}),e.views.SideMenuContent=e.views.View.inherit({initialize:function(t){e.extend(this,{animationClass:"menu-animated",onDrag:function(){},onEndDrag:function(){}},t),e.onGesture("drag",e.proxy(this._onDrag,this),this.el),e.onGesture("release",e.proxy(this._onEndDrag,this),this.el)},_onDrag:function(e){this.onDrag&&this.onDrag(e)},_onEndDrag:function(e){this.onEndDrag&&this.onEndDrag(e)},disableAnimation:function(){this.el.classList.remove(this.animationClass)},enableAnimation:function(){this.el.classList.add(this.animationClass)},getTranslateX:function(){return parseFloat(this.el.style[e.CSS.TRANSFORM].replace("translate3d(","").split(",")[0])},setTranslateX:e.animationFrameThrottle(function(t){this.el.style[e.CSS.TRANSFORM]="translate3d("+t+"px, 0, 0)"})})}(ionic),function(e){"use strict";e.views.Slider=e.views.View.inherit({initialize:function(e){function t(){if(_.offsetWidth){y=M.children,L=y.length,y.length<2&&(e.continuous=!1),v.transitions&&e.continuous&&y.length<3&&(M.appendChild(y[0].cloneNode(!0)),M.appendChild(M.children[1].cloneNode(!0)),y=M.children),b=new Array(y.length),w=_.offsetWidth||_.getBoundingClientRect().width,M.style.width=y.length*w+"px";for(var t=y.length;t--;){var n=y[t];n.style.width=w+"px",n.setAttribute("data-index",t),v.transitions&&(n.style.left=t*-w+"px",a(t,k>t?-w:k<t?w:0,0))}e.continuous&&v.transitions&&(a(i(k-1),-w,0),a(i(k+1),w,0)),v.transitions||(M.style.left=k*-w+"px"),_.style.visibility="visible",e.slidesChanged&&e.slidesChanged()}}function n(t){e.continuous?o(k-1,t):k&&o(k-1,t)}function r(t){e.continuous?o(k+1,t):k<y.length-1&&o(k+1,t)}function i(e){return(y.length+e%y.length)%y.length}function o(t,n){if(k!=t){if(!y)return void(k=t);if(v.transitions){var r=Math.abs(k-t)/(k-t);if(e.continuous){var o=r;r=-b[i(t)]/w,r!==o&&(t=-r*y.length+t)}for(var s=Math.abs(k-t)-1;s--;)a(i((t>k?t:k)-s-1),w*r,0);t=i(t),a(k,w*r,n||x),a(t,0,n||x),e.continuous&&a(i(t-r),-w*r,0)}else t=i(t),l(k*-w,t*-w,n||x);k=t,g(e.callback&&e.callback(k,y[k]))}}function a(e,t,n){s(e,t,n),b[e]=t}function s(e,t,n){var r=y[e],i=r&&r.style;i&&(i.webkitTransitionDuration=i.MozTransitionDuration=i.msTransitionDuration=i.OTransitionDuration=i.transitionDuration=n+"ms",i.webkitTransform="translate("+t+"px,0)translateZ(0)",i.msTransform=i.MozTransform=i.OTransform="translateX("+t+"px)")}function l(t,n,r){if(!r)return void(M.style.left=n+"px");var i=+new Date,o=setInterval(function(){var a=+new Date-i;if(a>r)return M.style.left=n+"px",$&&u(),e.transitionEnd&&e.transitionEnd.call(event,k,y[k]),void clearInterval(o);M.style.left=(n-t)*(Math.floor(a/r*100)/100)+t+"px"},4)}function u(){S=setTimeout(r,$)}function c(){$=e.auto||0,clearTimeout(S)}var d,h,f,p=this;window.navigator.pointerEnabled?(d="pointerdown",h="pointermove",f="pointerup"):window.navigator.msPointerEnabled?(d="MSPointerDown",h="MSPointerMove",f="MSPointerUp"):(d="touchstart",h="touchmove",f="touchend");var m=function(){},g=function(e){setTimeout(e||m,0)},v={addEventListener:!!window.addEventListener,transitions:function(e){var t=["transitionProperty","WebkitTransition","MozTransition","OTransition","msTransition"];for(var n in t)if(void 0!==e.style[t[n]])return!0;return!1}(document.createElement("swipe"))},_=e.el;if(_){var y,b,w,L,M=_.children[0];e=e||{};var k=parseInt(e.startSlide,10)||0,x=e.speed||300;e.continuous=void 0===e.continuous||e.continuous;var S,T,$=e.auto||0,D={},C={},E={handleEvent:function(n){switch(!n.touches&&n.pageX&&n.pageY&&(n.touches=[{pageX:n.pageX,pageY:n.pageY}]),n.type){case d:case"mousedown":this.start(n);break;case h:case"mousemove":this.touchmove(n);break;case f:case"mouseup":g(this.end(n));break;case"webkitTransitionEnd":case"msTransitionEnd":case"oTransitionEnd":case"otransitionend":case"transitionend":g(this.transitionEnd(n));break;case"resize":g(t)}e.stopPropagation&&n.stopPropagation()},start:function(e){if(e.touches){var t=e.touches[0];D={x:t.pageX,y:t.pageY,time:+new Date},T=void 0,C={},M.addEventListener(h,this,!1),M.addEventListener("mousemove",this,!1),M.addEventListener(f,this,!1),M.addEventListener("mouseup",this,!1),document.addEventListener(f,this,!1),document.addEventListener("mouseup",this,!1)}},touchmove:function(t){if(!(!t.touches||t.touches.length>1||t.scale&&1!==t.scale||p.slideIsDisabled)){e.disableScroll&&t.preventDefault();var n=t.touches[0];C={x:n.pageX-D.x,y:n.pageY-D.y},void 0===T&&(T=!!(T||Math.abs(C.x)<Math.abs(C.y))),T||(t.preventDefault(),c(),e.continuous?(s(i(k-1),C.x+b[i(k-1)],0),s(k,C.x+b[k],0),s(i(k+1),C.x+b[i(k+1)],0)):(e.bouncing?C.x=C.x/(!k&&C.x>0||k==y.length-1&&C.x<0?Math.abs(C.x)/w+1:1):(w*k-C.x<0&&(C.x=Math.min(C.x,w*k)),Math.abs(C.x)>w*(y.length-k-1)&&(C.x=Math.max(-w*(y.length-k-1),C.x))),s(k-1,C.x+b[k-1],0),s(k,C.x+b[k],0),s(k+1,C.x+b[k+1],0)),e.onDrag&&e.onDrag())}},end:function(){var t=+new Date-D.time,n=Number(t)<250&&Math.abs(C.x)>20||Math.abs(C.x)>w/2,r=!k&&C.x>0||k==y.length-1&&C.x<0;e.continuous&&(r=!1);var o=C.x<0;T||(n&&!r?(o?(e.continuous?(a(i(k-1),-w,0),a(i(k+2),w,0)):a(k-1,-w,0),a(k,b[k]-w,x),a(i(k+1),b[i(k+1)]-w,x),k=i(k+1)):(e.continuous?(a(i(k+1),w,0),a(i(k-2),-w,0)):a(k+1,w,0),a(k,b[k]+w,x),a(i(k-1),b[i(k-1)]+w,x),k=i(k-1)),e.callback&&e.callback(k,y[k])):e.continuous?(a(i(k-1),-w,x),a(k,0,x),a(i(k+1),w,x)):(a(k-1,-w,x),a(k,0,x),a(k+1,w,x))),M.removeEventListener(h,E,!1),M.removeEventListener("mousemove",E,!1),M.removeEventListener(f,E,!1),M.removeEventListener("mouseup",E,!1),document.removeEventListener(f,E,!1),document.removeEventListener("mouseup",E,!1),e.onDragEnd&&e.onDragEnd()},transitionEnd:function(t){parseInt(t.target.getAttribute("data-index"),10)==k&&($&&u(),e.transitionEnd&&e.transitionEnd.call(t,k,y[k]))}};this.update=function(){setTimeout(t)},this.setup=function(){t()},this.loop=function(t){return arguments.length&&(e.continuous=!!t),e.continuous},this.enableSlide=function(e){return arguments.length&&(this.slideIsDisabled=!e),!this.slideIsDisabled},this.slide=this.select=function(e,t){c(),o(e,t)},this.prev=this.previous=function(){c(),n()},this.next=function(){c(),r()},this.stop=function(){c()},this.start=function(){u()},this.autoPlay=function(e){!$||$<0?c():($=e,u())},this.currentIndex=this.selected=function(){return k},this.slidesCount=this.count=function(){return L},this.kill=function(){c(),M.style.width="",M.style.left="",y&&(y=[]),v.addEventListener?(M.removeEventListener(d,E,!1),M.removeEventListener("mousedown",E,!1),M.removeEventListener("webkitTransitionEnd",E,!1),M.removeEventListener("msTransitionEnd",E,!1),M.removeEventListener("oTransitionEnd",E,!1),M.removeEventListener("otransitionend",E,!1),M.removeEventListener("transitionend",E,!1),window.removeEventListener("resize",E,!1)):window.onresize=null},this.load=function(){t(),$&&u(),v.addEventListener?(M.addEventListener(d,E,!1),M.addEventListener("mousedown",E,!1),v.transitions&&(M.addEventListener("webkitTransitionEnd",E,!1),M.addEventListener("msTransitionEnd",E,!1),M.addEventListener("oTransitionEnd",E,!1),M.addEventListener("otransitionend",E,!1),M.addEventListener("transitionend",E,!1)),window.addEventListener("resize",E,!1)):window.onresize=function(){t()}}}}})}(ionic),function(){"use strict";var e,t=function(r,i,o,a){function s(){return"horizontal"===M.params.direction}function l(e){return Math.floor(e)}function u(){M.autoplayTimeoutId=setTimeout(function(){M.params.loop?(M.fixLoop(),M._slideNext()):M.isEnd?i.autoplayStopOnLast?M.stopAutoplay():M._slideTo(0):M._slideNext()},M.params.autoplay)}function c(t,n){var r=e(t.target);if(!r.is(n))if("string"==typeof n)r=r.parents(n);else if(n.nodeType){var i;return r.parents().each(function(e,t){t===n&&(i=n)}),i?n:void 0}if(0!==r.length)return r[0]}function d(e,t){t=t||{};var n=window.MutationObserver||window.WebkitMutationObserver,r=new n(function(e){e.forEach(function(e){M.onResize(!0),M.emit("onObserverUpdate",M,e)})});r.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),M.observers.push(r)}function h(e){e.originalEvent&&(e=e.originalEvent);var t=e.keyCode||e.charCode;if(!M.params.allowSwipeToNext&&(s()&&39===t||!s()&&40===t))return!1;if(!M.params.allowSwipeToPrev&&(s()&&37===t||!s()&&38===t))return!1;if(!(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===t||39===t||38===t||40===t){var n=!1;if(M.container.parents(".swiper-slide").length>0&&0===M.container.parents(".swiper-slide-active").length)return;var r={left:window.pageXOffset,top:window.pageYOffset},i=window.innerWidth,o=window.innerHeight,a=M.container.offset();M.rtl&&(a.left=a.left-M.container[0].scrollLeft);for(var l=[[a.left,a.top],[a.left+M.width,a.top],[a.left,a.top+M.height],[a.left+M.width,a.top+M.height]],u=0;u<l.length;u++){var c=l[u];c[0]>=r.left&&c[0]<=r.left+i&&c[1]>=r.top&&c[1]<=r.top+o&&(n=!0)}if(!n)return}s()?(37!==t&&39!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),(39===t&&!M.rtl||37===t&&M.rtl)&&M.slideNext(),(37===t&&!M.rtl||39===t&&M.rtl)&&M.slidePrev()):(38!==t&&40!==t||(e.preventDefault?e.preventDefault():e.returnValue=!1),40===t&&M.slideNext(),38===t&&M.slidePrev())}}function f(e){e.originalEvent&&(e=e.originalEvent);var t=M.mousewheel.event,n=0,r=M.rtl?-1:1;if(e.detail)n=-e.detail;else if("mousewheel"===t)if(M.params.mousewheelForceToAxis)if(s()){if(!(Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)))return;n=e.wheelDeltaX*r}else{if(!(Math.abs(e.wheelDeltaY)>Math.abs(e.wheelDeltaX)))return;n=e.wheelDeltaY}else n=Math.abs(e.wheelDeltaX)>Math.abs(e.wheelDeltaY)?-e.wheelDeltaX*r:-e.wheelDeltaY;else if("DOMMouseScroll"===t)n=-e.detail;else if("wheel"===t)if(M.params.mousewheelForceToAxis)if(s()){if(!(Math.abs(e.deltaX)>Math.abs(e.deltaY)))return;n=-e.deltaX*r}else{if(!(Math.abs(e.deltaY)>Math.abs(e.deltaX)))return;n=-e.deltaY}else n=Math.abs(e.deltaX)>Math.abs(e.deltaY)?-e.deltaX*r:-e.deltaY;if(0!==n){if(M.params.mousewheelInvert&&(n=-n),M.params.freeMode){var i=M.getWrapperTranslate()+n*M.params.mousewheelSensitivity,o=M.isBeginning,a=M.isEnd;if(i>=M.minTranslate()&&(i=M.minTranslate()),i<=M.maxTranslate()&&(i=M.maxTranslate()),M.setWrapperTransition(0),M.setWrapperTranslate(i),M.updateProgress(),M.updateActiveIndex(),(!o&&M.isBeginning||!a&&M.isEnd)&&M.updateClasses(),M.params.freeModeSticky&&(clearTimeout(M.mousewheel.timeout),M.mousewheel.timeout=setTimeout(function(){M.slideReset()},300)),0===i||i===M.maxTranslate())return}else{if((new window.Date).getTime()-M.mousewheel.lastScrollTime>60)if(n<0)if(M.isEnd&&!M.params.loop||M.animating){if(M.params.mousewheelReleaseOnEdges)return!0}else M.slideNext();else if(M.isBeginning&&!M.params.loop||M.animating){if(M.params.mousewheelReleaseOnEdges)return!0}else M.slidePrev();M.mousewheel.lastScrollTime=(new window.Date).getTime()}return M.params.autoplay&&M.stopAutoplay(),e.preventDefault?e.preventDefault():e.returnValue=!1,!1}}function p(t,n){t=e(t);var r,i,o,a=M.rtl?-1:1;r=t.attr("data-swiper-parallax")||"0",i=t.attr("data-swiper-parallax-x"),o=t.attr("data-swiper-parallax-y"),i||o?(i=i||"0",o=o||"0"):s()?(i=r,o="0"):(o=r,i="0"),i=i.indexOf("%")>=0?parseInt(i,10)*n*a+"%":i*n*a+"px",o=o.indexOf("%")>=0?parseInt(o,10)*n+"%":o*n+"px",t.transform("translate3d("+i+", "+o+",0px)")}function m(e){return 0!==e.indexOf("on")&&(e=e[0]!==e[0].toUpperCase()?"on"+e[0].toUpperCase()+e.substring(1):"on"+e),e}if(!(this instanceof t))return new t(r,i);var g={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,hashnav:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",buttonDisabledClass:"swiper-button-disabled",paginationHiddenClass:"swiper-pagination-hidden",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},v=i&&i.virtualTranslate;i=i||{};var _={};for(var y in i)if("object"!=typeof i[y]||(i[y].nodeType||i[y]===window||i[y]===document||void 0!==n&&i[y]instanceof n||"undefined"!=typeof jQuery&&i[y]instanceof jQuery))_[y]=i[y];else{_[y]={};for(var b in i[y])_[y][b]=i[y][b]}for(var w in g)if(void 0===i[w])i[w]=g[w];else if("object"==typeof i[w])for(var L in g[w])void 0===i[w][L]&&(i[w][L]=g[w][L]);var M=this;if(M.params=i,M.originalParams=_,M.classNames=[],void 0!==e&&void 0!==n&&(e=n),(void 0!==e||(e=void 0===n?window.Dom7||window.Zepto||window.jQuery:n))&&(M.$=e,M.currentBreakpoint=void 0,M.getActiveBreakpoint=function(){if(!M.params.breakpoints)return!1;var e,t=!1,n=[];for(e in M.params.breakpoints)M.params.breakpoints.hasOwnProperty(e)&&n.push(e);n.sort(function(e,t){return parseInt(e,10)>parseInt(t,10)});for(var r=0;r<n.length;r++)(e=n[r])>=window.innerWidth&&!t&&(t=e);return t||"max"},M.setBreakpoint=function(){var e=M.getActiveBreakpoint();if(e&&M.currentBreakpoint!==e){var t=e in M.params.breakpoints?M.params.breakpoints[e]:M.originalParams;for(var n in t)M.params[n]=t[n];M.currentBreakpoint=e}},M.params.breakpoints&&M.setBreakpoint(),M.container=e(r),0!==M.container.length)){if(M.container.length>1)return void M.container.each(function(){new t(this,i)});M.container[0].swiper=M,M.container.data("swiper",M),M.classNames.push("swiper-container-"+M.params.direction),M.params.freeMode&&M.classNames.push("swiper-container-free-mode"),M.support.flexbox||(M.classNames.push("swiper-container-no-flexbox"),M.params.slidesPerColumn=1),M.params.autoHeight&&M.classNames.push("swiper-container-autoheight"),(M.params.parallax||M.params.watchSlidesVisibility)&&(M.params.watchSlidesProgress=!0),["cube","coverflow"].indexOf(M.params.effect)>=0&&(M.support.transforms3d?(M.params.watchSlidesProgress=!0,M.classNames.push("swiper-container-3d")):M.params.effect="slide"),"slide"!==M.params.effect&&M.classNames.push("swiper-container-"+M.params.effect),"cube"===M.params.effect&&(M.params.resistanceRatio=0,M.params.slidesPerView=1,M.params.slidesPerColumn=1,M.params.slidesPerGroup=1,M.params.centeredSlides=!1,M.params.spaceBetween=0,M.params.virtualTranslate=!0,M.params.setWrapperSize=!1),"fade"===M.params.effect&&(M.params.slidesPerView=1,M.params.slidesPerColumn=1,M.params.slidesPerGroup=1,M.params.watchSlidesProgress=!0,M.params.spaceBetween=0,void 0===v&&(M.params.virtualTranslate=!0)),M.params.grabCursor&&M.support.touch&&(M.params.grabCursor=!1),M.wrapper=M.container.children("."+M.params.wrapperClass),M.params.pagination&&(M.paginationContainer=e(M.params.pagination),M.params.paginationClickable&&M.paginationContainer.addClass("swiper-pagination-clickable")),M.rtl=s()&&("rtl"===M.container[0].dir.toLowerCase()||"rtl"===M.container.css("direction")),M.rtl&&M.classNames.push("swiper-container-rtl"),M.rtl&&(M.wrongRTL="-webkit-box"===M.wrapper.css("display")),M.params.slidesPerColumn>1&&M.classNames.push("swiper-container-multirow"),M.device.android&&M.classNames.push("swiper-container-android"),M.container.addClass(M.classNames.join(" ")),M.translate=0,M.progress=0,M.velocity=0,M.lockSwipeToNext=function(){M.params.allowSwipeToNext=!1},M.lockSwipeToPrev=function(){M.params.allowSwipeToPrev=!1},M.lockSwipes=function(){M.params.allowSwipeToNext=M.params.allowSwipeToPrev=!1},M.unlockSwipeToNext=function(){M.params.allowSwipeToNext=!0},M.unlockSwipeToPrev=function(){M.params.allowSwipeToPrev=!0},M.unlockSwipes=function(){M.params.allowSwipeToNext=M.params.allowSwipeToPrev=!0},M.params.grabCursor&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grab",M.container[0].style.cursor="-moz-grab",M.container[0].style.cursor="grab"),M.imagesToLoad=[],M.imagesLoaded=0,M.loadImage=function(e,t,n,r,i){function o(){i&&i()}var a;e.complete&&r?o():t?(a=new window.Image,a.onload=o,a.onerror=o,n&&(a.srcset=n),t&&(a.src=t)):o()},M.preloadImages=function(){function e(){void 0!==M&&null!==M&&(void 0!==M.imagesLoaded&&M.imagesLoaded++,M.imagesLoaded===M.imagesToLoad.length&&(M.params.updateOnImagesReady&&M.update(),M.emit("onImagesReady",M)))}M.imagesToLoad=M.container.find("img");for(var t=0;t<M.imagesToLoad.length;t++)M.loadImage(M.imagesToLoad[t],M.imagesToLoad[t].currentSrc||M.imagesToLoad[t].getAttribute("src"),M.imagesToLoad[t].srcset||M.imagesToLoad[t].getAttribute("srcset"),!0,e)},M.autoplayTimeoutId=void 0,M.autoplaying=!1,M.autoplayPaused=!1,M.startAutoplay=function(){return void 0===M.autoplayTimeoutId&&(!!M.params.autoplay&&(!M.autoplaying&&(M.autoplaying=!0,M.emit("onAutoplayStart",M),void u())))},M.stopAutoplay=function(e){M.autoplayTimeoutId&&(M.autoplayTimeoutId&&clearTimeout(M.autoplayTimeoutId),M.autoplaying=!1,M.autoplayTimeoutId=void 0,M.emit("onAutoplayStop",M))},M.pauseAutoplay=function(e){M.autoplayPaused||(M.autoplayTimeoutId&&clearTimeout(M.autoplayTimeoutId),M.autoplayPaused=!0,0===e?(M.autoplayPaused=!1,u()):M.wrapper.transitionEnd(function(){M&&(M.autoplayPaused=!1,M.autoplaying?u():M.stopAutoplay())}))},M.minTranslate=function(){return-M.snapGrid[0]},M.maxTranslate=function(){return-M.snapGrid[M.snapGrid.length-1]},M.updateAutoHeight=function(){M.slides.eq(M.activeIndex)[0].offsetHeight&&M.wrapper.css("height",M.slides.eq(M.activeIndex)[0].offsetHeight+"px")},M.updateContainerSize=function(){var e,t;e=void 0!==M.params.width?M.params.width:M.container[0].clientWidth,t=void 0!==M.params.height?M.params.height:M.container[0].clientHeight,0===e&&s()||0===t&&!s()||(e=e-parseInt(M.container.css("padding-left"),10)-parseInt(M.container.css("padding-right"),10),t=t-parseInt(M.container.css("padding-top"),10)-parseInt(M.container.css("padding-bottom"),10),M.width=e,M.height=t,M.size=s()?M.width:M.height)},M.updateSlidesSize=function(){M.slides=M.wrapper.children("."+M.params.slideClass),M.snapGrid=[],M.slidesGrid=[],M.slidesSizesGrid=[];var e,t=M.params.spaceBetween,n=-M.params.slidesOffsetBefore,r=0,i=0;"string"==typeof t&&t.indexOf("%")>=0&&(t=parseFloat(t.replace("%",""))/100*M.size),M.virtualSize=-t,M.rtl?M.slides.css({marginLeft:"",marginTop:""}):M.slides.css({marginRight:"",marginBottom:""});var o;M.params.slidesPerColumn>1&&(o=Math.floor(M.slides.length/M.params.slidesPerColumn)===M.slides.length/M.params.slidesPerColumn?M.slides.length:Math.ceil(M.slides.length/M.params.slidesPerColumn)*M.params.slidesPerColumn,"auto"!==M.params.slidesPerView&&"row"===M.params.slidesPerColumnFill&&(o=Math.max(o,M.params.slidesPerView*M.params.slidesPerColumn)));var a,u=M.params.slidesPerColumn,c=o/u,d=c-(M.params.slidesPerColumn*c-M.slides.length);for(e=0;e<M.slides.length;e++){a=0;var h=M.slides.eq(e);if(M.params.slidesPerColumn>1){var f,p,m;"column"===M.params.slidesPerColumnFill?(p=Math.floor(e/u),m=e-p*u,(p>d||p===d&&m===u-1)&&++m>=u&&(m=0,p++),f=p+m*o/u,h.css({"-webkit-box-ordinal-group":f,"-moz-box-ordinal-group":f,"-ms-flex-order":f,"-webkit-order":f,order:f})):(m=Math.floor(e/c),p=e-m*c),h.css({"margin-top":0!==m&&M.params.spaceBetween&&M.params.spaceBetween+"px"}).attr("data-swiper-column",p).attr("data-swiper-row",m)}"none"!==h.css("display")&&("auto"===M.params.slidesPerView?(a=s()?h.outerWidth(!0):h.outerHeight(!0),M.params.roundLengths&&(a=l(a))):(a=(M.size-(M.params.slidesPerView-1)*t)/M.params.slidesPerView,M.params.roundLengths&&(a=l(a)),s()?M.slides[e].style.width=a+"px":M.slides[e].style.height=a+"px"),M.slides[e].swiperSlideSize=a,M.slidesSizesGrid.push(a),M.params.centeredSlides?(n=n+a/2+r/2+t,0===e&&(n=n-M.size/2-t),Math.abs(n)<.001&&(n=0),i%M.params.slidesPerGroup==0&&M.snapGrid.push(n),M.slidesGrid.push(n)):(i%M.params.slidesPerGroup==0&&M.snapGrid.push(n),M.slidesGrid.push(n),n=n+a+t),M.virtualSize+=a+t,r=a,i++)}M.virtualSize=Math.max(M.virtualSize,M.size)+M.params.slidesOffsetAfter;var g;if(M.rtl&&M.wrongRTL&&("slide"===M.params.effect||"coverflow"===M.params.effect)&&M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}),M.support.flexbox&&!M.params.setWrapperSize||(s()?M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}):M.wrapper.css({height:M.virtualSize+M.params.spaceBetween+"px"})),M.params.slidesPerColumn>1&&(M.virtualSize=(a+M.params.spaceBetween)*o,M.virtualSize=Math.ceil(M.virtualSize/M.params.slidesPerColumn)-M.params.spaceBetween,M.wrapper.css({width:M.virtualSize+M.params.spaceBetween+"px"}),M.params.centeredSlides)){for(g=[],e=0;e<M.snapGrid.length;e++)M.snapGrid[e]<M.virtualSize+M.snapGrid[0]&&g.push(M.snapGrid[e]);M.snapGrid=g}if(!M.params.centeredSlides){for(g=[],e=0;e<M.snapGrid.length;e++)M.snapGrid[e]<=M.virtualSize-M.size&&g.push(M.snapGrid[e]);M.snapGrid=g,Math.floor(M.virtualSize-M.size)>Math.floor(M.snapGrid[M.snapGrid.length-1])&&M.snapGrid.push(M.virtualSize-M.size)}0===M.snapGrid.length&&(M.snapGrid=[0]),
-0!==M.params.spaceBetween&&(s()?M.rtl?M.slides.css({marginLeft:t+"px"}):M.slides.css({marginRight:t+"px"}):M.slides.css({marginBottom:t+"px"})),M.params.watchSlidesProgress&&M.updateSlidesOffset()},M.updateSlidesOffset=function(){for(var e=0;e<M.slides.length;e++)M.slides[e].swiperSlideOffset=s()?M.slides[e].offsetLeft:M.slides[e].offsetTop},M.updateSlidesProgress=function(e){if(void 0===e&&(e=M.translate||0),0!==M.slides.length){void 0===M.slides[0].swiperSlideOffset&&M.updateSlidesOffset();var t=-e;M.rtl&&(t=e),M.slides.removeClass(M.params.slideVisibleClass);for(var n=0;n<M.slides.length;n++){var r=M.slides[n],i=(t-r.swiperSlideOffset)/(r.swiperSlideSize+M.params.spaceBetween);if(M.params.watchSlidesVisibility){var o=-(t-r.swiperSlideOffset),a=o+M.slidesSizesGrid[n];(o>=0&&o<M.size||a>0&&a<=M.size||o<=0&&a>=M.size)&&M.slides.eq(n).addClass(M.params.slideVisibleClass)}r.progress=M.rtl?-i:i}}},M.updateProgress=function(e){void 0===e&&(e=M.translate||0);var t=M.maxTranslate()-M.minTranslate(),n=M.isBeginning,r=M.isEnd;0===t?(M.progress=0,M.isBeginning=M.isEnd=!0):(M.progress=(e-M.minTranslate())/t,M.isBeginning=M.progress<=0,M.isEnd=M.progress>=1),M.isBeginning&&!n&&M.emit("onReachBeginning",M),M.isEnd&&!r&&M.emit("onReachEnd",M),M.params.watchSlidesProgress&&M.updateSlidesProgress(e),M.emit("onProgress",M,M.progress)},M.updateActiveIndex=function(){var e,t,n,r=M.rtl?M.translate:-M.translate;for(t=0;t<M.slidesGrid.length;t++)void 0!==M.slidesGrid[t+1]?r>=M.slidesGrid[t]&&r<M.slidesGrid[t+1]-(M.slidesGrid[t+1]-M.slidesGrid[t])/2?e=t:r>=M.slidesGrid[t]&&r<M.slidesGrid[t+1]&&(e=t+1):r>=M.slidesGrid[t]&&(e=t);(e<0||void 0===e)&&(e=0),n=Math.floor(e/M.params.slidesPerGroup),n>=M.snapGrid.length&&(n=M.snapGrid.length-1),e!==M.activeIndex&&(M.snapIndex=n,M.previousIndex=M.activeIndex,M.activeIndex=e,M.updateClasses())},M.updateClasses=function(){M.slides.removeClass(M.params.slideActiveClass+" "+M.params.slideNextClass+" "+M.params.slidePrevClass);var t=M.slides.eq(M.activeIndex);if(t.addClass(M.params.slideActiveClass),t.next("."+M.params.slideClass).addClass(M.params.slideNextClass),t.prev("."+M.params.slideClass).addClass(M.params.slidePrevClass),M.bullets&&M.bullets.length>0){M.bullets.removeClass(M.params.bulletActiveClass);var n;M.params.loop?(n=Math.ceil(M.activeIndex-M.loopedSlides)/M.params.slidesPerGroup,n>M.slides.length-1-2*M.loopedSlides&&(n-=M.slides.length-2*M.loopedSlides),n>M.bullets.length-1&&(n-=M.bullets.length)):n=void 0!==M.snapIndex?M.snapIndex:M.activeIndex||0,M.paginationContainer.length>1?M.bullets.each(function(){e(this).index()===n&&e(this).addClass(M.params.bulletActiveClass)}):M.bullets.eq(n).addClass(M.params.bulletActiveClass)}M.params.loop||(M.params.prevButton&&(M.isBeginning?(e(M.params.prevButton).addClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.disable(e(M.params.prevButton))):(e(M.params.prevButton).removeClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.enable(e(M.params.prevButton)))),M.params.nextButton&&(M.isEnd?(e(M.params.nextButton).addClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.disable(e(M.params.nextButton))):(e(M.params.nextButton).removeClass(M.params.buttonDisabledClass),M.params.a11y&&M.a11y&&M.a11y.enable(e(M.params.nextButton)))))},M.updatePagination=function(){if(M.params.pagination&&M.paginationContainer&&M.paginationContainer.length>0){for(var e="",t=M.params.loop?Math.ceil((M.slides.length-2*M.loopedSlides)/M.params.slidesPerGroup):M.snapGrid.length,n=0;n<t;n++)M.params.paginationBulletRender?e+=M.params.paginationBulletRender(n,M.params.bulletClass):e+="<"+M.params.paginationElement+' class="'+M.params.bulletClass+'"></'+M.params.paginationElement+">";M.paginationContainer.html(e),M.bullets=M.paginationContainer.find("."+M.params.bulletClass),M.params.paginationClickable&&M.params.a11y&&M.a11y&&M.a11y.initPagination()}},M.update=function(e){function t(){n=Math.min(Math.max(M.translate,M.maxTranslate()),M.minTranslate()),M.setWrapperTranslate(n),M.updateActiveIndex(),M.updateClasses()}if(M.updateContainerSize(),M.updateSlidesSize(),M.updateProgress(),M.updatePagination(),M.updateClasses(),M.params.scrollbar&&M.scrollbar&&M.scrollbar.set(),e){var n;M.controller&&M.controller.spline&&(M.controller.spline=void 0),M.params.freeMode?(t(),M.params.autoHeight&&M.updateAutoHeight()):(("auto"===M.params.slidesPerView||M.params.slidesPerView>1)&&M.isEnd&&!M.params.centeredSlides?M.slideTo(M.slides.length-1,0,!1,!0):M.slideTo(M.activeIndex,0,!1,!0))||t()}else M.params.autoHeight&&M.updateAutoHeight()},M.onResize=function(e){M.params.breakpoints&&M.setBreakpoint();var t=M.params.allowSwipeToPrev,n=M.params.allowSwipeToNext;if(M.params.allowSwipeToPrev=M.params.allowSwipeToNext=!0,M.updateContainerSize(),M.updateSlidesSize(),("auto"===M.params.slidesPerView||M.params.freeMode||e)&&M.updatePagination(),M.params.scrollbar&&M.scrollbar&&M.scrollbar.set(),M.controller&&M.controller.spline&&(M.controller.spline=void 0),M.params.freeMode){var r=Math.min(Math.max(M.translate,M.maxTranslate()),M.minTranslate());M.setWrapperTranslate(r),M.updateActiveIndex(),M.updateClasses(),M.params.autoHeight&&M.updateAutoHeight()}else M.updateClasses(),("auto"===M.params.slidesPerView||M.params.slidesPerView>1)&&M.isEnd&&!M.params.centeredSlides?M.slideTo(M.slides.length-1,0,!1,!0):M.slideTo(M.activeIndex,0,!1,!0);M.params.allowSwipeToPrev=t,M.params.allowSwipeToNext=n};var k=["mousedown","mousemove","mouseup"];window.navigator.pointerEnabled?k=["pointerdown","pointermove","pointerup"]:window.navigator.msPointerEnabled&&(k=["MSPointerDown","MSPointerMove","MSPointerUp"]),M.touchEvents={start:M.support.touch||!M.params.simulateTouch?"touchstart":k[0],move:M.support.touch||!M.params.simulateTouch?"touchmove":k[1],end:M.support.touch||!M.params.simulateTouch?"touchend":k[2]},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===M.params.touchEventsTarget?M.container:M.wrapper).addClass("swiper-wp8-"+M.params.direction),M.initEvents=function(t){var n=t?"off":"on",r=t?"removeEventListener":"addEventListener",o="container"===M.params.touchEventsTarget?M.container[0]:M.wrapper[0],a=M.support.touch?o:document,s=!!M.params.nested;M.browser.ie?(o[r](M.touchEvents.start,M.onTouchStart,!1),a[r](M.touchEvents.move,M.onTouchMove,s),a[r](M.touchEvents.end,M.onTouchEnd,!1)):(M.support.touch&&(o[r](M.touchEvents.start,M.onTouchStart,!1),o[r](M.touchEvents.move,M.onTouchMove,s),o[r](M.touchEvents.end,M.onTouchEnd,!1)),!i.simulateTouch||M.device.ios||M.device.android||(o[r]("mousedown",M.onTouchStart,!1),document[r]("mousemove",M.onTouchMove,s),document[r]("mouseup",M.onTouchEnd,!1))),window[r]("resize",M.onResize),M.params.nextButton&&(e(M.params.nextButton)[n]("click",M.onClickNext),M.params.a11y&&M.a11y&&e(M.params.nextButton)[n]("keydown",M.a11y.onEnterKey)),M.params.prevButton&&(e(M.params.prevButton)[n]("click",M.onClickPrev),M.params.a11y&&M.a11y&&e(M.params.prevButton)[n]("keydown",M.a11y.onEnterKey)),M.params.pagination&&M.params.paginationClickable&&(e(M.paginationContainer)[n]("click","."+M.params.bulletClass,M.onClickIndex),M.params.a11y&&M.a11y&&e(M.paginationContainer)[n]("keydown","."+M.params.bulletClass,M.a11y.onEnterKey)),(M.params.preventClicks||M.params.preventClicksPropagation)&&o[r]("click",M.preventClicks,!0)},M.attachEvents=function(e){M.initEvents()},M.detachEvents=function(){M.initEvents(!0)},M.allowClick=!0,M.preventClicks=function(e){M.allowClick||(M.params.preventClicks&&e.preventDefault(),M.params.preventClicksPropagation&&M.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))},M.onClickNext=function(e){e.preventDefault(),M.isEnd&&!M.params.loop||M.slideNext()},M.onClickPrev=function(e){e.preventDefault(),M.isBeginning&&!M.params.loop||M.slidePrev()},M.onClickIndex=function(t){t.preventDefault();var n=e(this).index()*M.params.slidesPerGroup;M.params.loop&&(n+=M.loopedSlides),M.slideTo(n)},M.updateClickedSlide=function(t){var n=c(t,"."+M.params.slideClass),r=!1;if(n)for(var i=0;i<M.slides.length;i++)M.slides[i]===n&&(r=!0);if(!n||!r)return M.clickedSlide=void 0,void(M.clickedIndex=void 0);if(M.clickedSlide=n,M.clickedIndex=e(n).index(),M.params.slideToClickedSlide&&void 0!==M.clickedIndex&&M.clickedIndex!==M.activeIndex){var o,a=M.clickedIndex;if(M.params.loop){if(M.animating)return;o=e(M.clickedSlide).attr("data-swiper-slide-index"),M.params.centeredSlides?a<M.loopedSlides-M.params.slidesPerView/2||a>M.slides.length-M.loopedSlides+M.params.slidesPerView/2?(M.fixLoop(),a=M.wrapper.children("."+M.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){M.slideTo(a)},0)):M.slideTo(a):a>M.slides.length-M.params.slidesPerView?(M.fixLoop(),a=M.wrapper.children("."+M.params.slideClass+'[data-swiper-slide-index="'+o+'"]:not(.swiper-slide-duplicate)').eq(0).index(),setTimeout(function(){M.slideTo(a)},0)):M.slideTo(a)}else M.slideTo(a)}};var x,S,T,$,D,C,E,A,P,Y,O="input, select, textarea, button",I=Date.now(),j=[];M.animating=!1,M.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var H,N;if(M.onTouchStart=function(t){if(t.originalEvent&&(t=t.originalEvent),(H="touchstart"===t.type)||!("which"in t)||3!==t.which){if(M.params.noSwiping&&c(t,"."+M.params.noSwipingClass))return void(M.allowClick=!0);if(!M.params.swipeHandler||c(t,M.params.swipeHandler)){var n=M.touches.currentX="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,r=M.touches.currentY="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY;if(!(M.device.ios&&M.params.iOSEdgeSwipeDetection&&n<=M.params.iOSEdgeSwipeThreshold)){if(x=!0,S=!1,T=!0,D=void 0,N=void 0,M.touches.startX=n,M.touches.startY=r,$=Date.now(),M.allowClick=!0,M.updateContainerSize(),M.swipeDirection=void 0,M.params.threshold>0&&(A=!1),"touchstart"!==t.type){var i=!0;e(t.target).is(O)&&(i=!1),document.activeElement&&e(document.activeElement).is(O)&&document.activeElement.blur(),i&&t.preventDefault()}M.emit("onTouchStart",M,t)}}}},M.onTouchMove=function(t){if(t.originalEvent&&(t=t.originalEvent),!(H&&"mousemove"===t.type||t.preventedByNestedSwiper)){if(M.params.onlyExternal)return M.allowClick=!1,void(x&&(M.touches.startX=M.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,M.touches.startY=M.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,$=Date.now()));if(H&&document.activeElement&&t.target===document.activeElement&&e(t.target).is(O))return S=!0,void(M.allowClick=!1);if(T&&M.emit("onTouchMove",M,t),!(t.targetTouches&&t.targetTouches.length>1)){if(M.touches.currentX="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,M.touches.currentY="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,void 0===D){var n=180*Math.atan2(Math.abs(M.touches.currentY-M.touches.startY),Math.abs(M.touches.currentX-M.touches.startX))/Math.PI;D=s()?n>M.params.touchAngle:90-n>M.params.touchAngle}if(D&&M.emit("onTouchMoveOpposite",M,t),void 0===N&&M.browser.ieTouch&&(M.touches.currentX===M.touches.startX&&M.touches.currentY===M.touches.startY||(N=!0)),x){if(D)return void(x=!1);if(N||!M.browser.ieTouch){M.allowClick=!1,M.emit("onSliderMove",M,t),t.preventDefault(),M.params.touchMoveStopPropagation&&!M.params.nested&&t.stopPropagation(),S||(i.loop&&M.fixLoop(),E=M.getWrapperTranslate(),M.setWrapperTransition(0),M.animating&&M.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),M.params.autoplay&&M.autoplaying&&(M.params.autoplayDisableOnInteraction?M.stopAutoplay():M.pauseAutoplay()),Y=!1,M.params.grabCursor&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grabbing",M.container[0].style.cursor="-moz-grabbin",M.container[0].style.cursor="grabbing")),S=!0;var r=M.touches.diff=s()?M.touches.currentX-M.touches.startX:M.touches.currentY-M.touches.startY;r*=M.params.touchRatio,M.rtl&&(r=-r),M.swipeDirection=r>0?"prev":"next",C=r+E;var o=!0;if(r>0&&C>M.minTranslate()?(o=!1,M.params.resistance&&(C=M.minTranslate()-1+Math.pow(-M.minTranslate()+E+r,M.params.resistanceRatio))):r<0&&C<M.maxTranslate()&&(o=!1,M.params.resistance&&(C=M.maxTranslate()+1-Math.pow(M.maxTranslate()-E-r,M.params.resistanceRatio))),o&&(t.preventedByNestedSwiper=!0),!M.params.allowSwipeToNext&&"next"===M.swipeDirection&&C<E&&(C=E),!M.params.allowSwipeToPrev&&"prev"===M.swipeDirection&&C>E&&(C=E),M.params.followFinger){if(M.params.threshold>0){if(!(Math.abs(r)>M.params.threshold||A))return void(C=E);if(!A)return A=!0,M.touches.startX=M.touches.currentX,M.touches.startY=M.touches.currentY,C=E,void(M.touches.diff=s()?M.touches.currentX-M.touches.startX:M.touches.currentY-M.touches.startY)}(M.params.freeMode||M.params.watchSlidesProgress)&&M.updateActiveIndex(),M.params.freeMode&&(0===j.length&&j.push({position:M.touches[s()?"startX":"startY"],time:$}),j.push({position:M.touches[s()?"currentX":"currentY"],time:(new window.Date).getTime()})),M.updateProgress(C),M.setWrapperTranslate(C)}}}}}},M.onTouchEnd=function(t){if(t.originalEvent&&(t=t.originalEvent),T&&M.emit("onTouchEnd",M,t),T=!1,x){M.params.grabCursor&&S&&x&&(M.container[0].style.cursor="move",M.container[0].style.cursor="-webkit-grab",M.container[0].style.cursor="-moz-grab",M.container[0].style.cursor="grab");var n=Date.now(),r=n-$;if(M.allowClick&&(M.updateClickedSlide(t),M.emit("onTap",M,t),r<300&&n-I>300&&(P&&clearTimeout(P),P=setTimeout(function(){M&&(M.params.paginationHide&&M.paginationContainer.length>0&&!e(t.target).hasClass(M.params.bulletClass)&&M.paginationContainer.toggleClass(M.params.paginationHiddenClass),M.emit("onClick",M,t))},300)),r<300&&n-I<300&&(P&&clearTimeout(P),M.emit("onDoubleTap",M,t))),I=Date.now(),setTimeout(function(){M&&(M.allowClick=!0)},0),!x||!S||!M.swipeDirection||0===M.touches.diff||C===E)return void(x=S=!1);x=S=!1;var i;if(i=M.params.followFinger?M.rtl?M.translate:-M.translate:-C,M.params.freeMode){if(i<-M.minTranslate())return void M.slideTo(M.activeIndex);if(i>-M.maxTranslate())return void(M.slides.length<M.snapGrid.length?M.slideTo(M.snapGrid.length-1):M.slideTo(M.slides.length-1));if(M.params.freeModeMomentum){if(j.length>1){var o=j.pop(),a=j.pop(),s=o.position-a.position,l=o.time-a.time;M.velocity=s/l,M.velocity=M.velocity/2,Math.abs(M.velocity)<M.params.freeModeMinimumVelocity&&(M.velocity=0),(l>150||(new window.Date).getTime()-o.time>300)&&(M.velocity=0)}else M.velocity=0;j.length=0;var u=1e3*M.params.freeModeMomentumRatio,c=M.velocity*u,d=M.translate+c;M.rtl&&(d=-d);var h,f=!1,p=20*Math.abs(M.velocity)*M.params.freeModeMomentumBounceRatio;if(d<M.maxTranslate())M.params.freeModeMomentumBounce?(d+M.maxTranslate()<-p&&(d=M.maxTranslate()-p),h=M.maxTranslate(),f=!0,Y=!0):d=M.maxTranslate();else if(d>M.minTranslate())M.params.freeModeMomentumBounce?(d-M.minTranslate()>p&&(d=M.minTranslate()+p),h=M.minTranslate(),f=!0,Y=!0):d=M.minTranslate();else if(M.params.freeModeSticky){var m,g=0;for(g=0;g<M.snapGrid.length;g+=1)if(M.snapGrid[g]>-d){m=g;break}d=Math.abs(M.snapGrid[m]-d)<Math.abs(M.snapGrid[m-1]-d)||"next"===M.swipeDirection?M.snapGrid[m]:M.snapGrid[m-1],M.rtl||(d=-d)}if(0!==M.velocity)u=M.rtl?Math.abs((-d-M.translate)/M.velocity):Math.abs((d-M.translate)/M.velocity);else if(M.params.freeModeSticky)return void M.slideReset();M.params.freeModeMomentumBounce&&f?(M.updateProgress(h),M.setWrapperTransition(u),M.setWrapperTranslate(d),M.onTransitionStart(),M.animating=!0,M.wrapper.transitionEnd(function(){M&&Y&&(M.emit("onMomentumBounce",M),M.setWrapperTransition(M.params.speed),M.setWrapperTranslate(h),M.wrapper.transitionEnd(function(){M&&M.onTransitionEnd()}))})):M.velocity?(M.updateProgress(d),M.setWrapperTransition(u),M.setWrapperTranslate(d),M.onTransitionStart(),M.animating||(M.animating=!0,M.wrapper.transitionEnd(function(){M&&M.onTransitionEnd()}))):M.updateProgress(d),M.updateActiveIndex()}return void((!M.params.freeModeMomentum||r>=M.params.longSwipesMs)&&(M.updateProgress(),M.updateActiveIndex()))}var v,_=0,y=M.slidesSizesGrid[0];for(v=0;v<M.slidesGrid.length;v+=M.params.slidesPerGroup)void 0!==M.slidesGrid[v+M.params.slidesPerGroup]?i>=M.slidesGrid[v]&&i<M.slidesGrid[v+M.params.slidesPerGroup]&&(_=v,y=M.slidesGrid[v+M.params.slidesPerGroup]-M.slidesGrid[v]):i>=M.slidesGrid[v]&&(_=v,y=M.slidesGrid[M.slidesGrid.length-1]-M.slidesGrid[M.slidesGrid.length-2]);var b=(i-M.slidesGrid[_])/y;if(r>M.params.longSwipesMs){if(!M.params.longSwipes)return void M.slideTo(M.activeIndex);"next"===M.swipeDirection&&(b>=M.params.longSwipesRatio?M.slideTo(_+M.params.slidesPerGroup):M.slideTo(_)),"prev"===M.swipeDirection&&(b>1-M.params.longSwipesRatio?M.slideTo(_+M.params.slidesPerGroup):M.slideTo(_))}else{if(!M.params.shortSwipes)return void M.slideTo(M.activeIndex);"next"===M.swipeDirection&&M.slideTo(_+M.params.slidesPerGroup),"prev"===M.swipeDirection&&M.slideTo(_)}}},M._slideTo=function(e,t){return M.slideTo(e,t,!0,!0)},M.slideTo=function(e,t,n,r){void 0===n&&(n=!0),void 0===e&&(e=0),e<0&&(e=0),M.snapIndex=Math.floor(e/M.params.slidesPerGroup),M.snapIndex>=M.snapGrid.length&&(M.snapIndex=M.snapGrid.length-1);var i=-M.snapGrid[M.snapIndex];M.params.autoplay&&M.autoplaying&&(r||!M.params.autoplayDisableOnInteraction?M.pauseAutoplay(t):M.stopAutoplay()),M.updateProgress(i);for(var o=0;o<M.slidesGrid.length;o++)-Math.floor(100*i)>=Math.floor(100*M.slidesGrid[o])&&(e=o);return!(!M.params.allowSwipeToNext&&i<M.translate&&i<M.minTranslate())&&(!(!M.params.allowSwipeToPrev&&i>M.translate&&i>M.maxTranslate()&&(M.activeIndex||0)!==e)&&(void 0===t&&(t=M.params.speed),M.previousIndex=M.activeIndex||0,M.activeIndex=e,M.rtl&&-i===M.translate||!M.rtl&&i===M.translate?(M.params.autoHeight&&M.updateAutoHeight(),M.updateClasses(),"slide"!==M.params.effect&&M.setWrapperTranslate(i),!1):(M.updateClasses(),M.onTransitionStart(n),0===t?(M.setWrapperTranslate(i),M.setWrapperTransition(0),M.onTransitionEnd(n)):(M.setWrapperTranslate(i),M.setWrapperTransition(t),M.animating||(M.animating=!0,M.wrapper.transitionEnd(function(){M&&M.onTransitionEnd(n)}))),!0)))},M.onTransitionStart=function(e){void 0===e&&(e=!0),M.params.autoHeight&&M.updateAutoHeight(),M.lazy&&M.lazy.onTransitionStart(),e&&(M.emit("onTransitionStart",M),M.activeIndex!==M.previousIndex&&(M.emit("onSlideChangeStart",M),o.$emit("$ionicSlides.slideChangeStart",{slider:M,activeIndex:M.getSlideDataIndex(M.activeIndex),previousIndex:M.getSlideDataIndex(M.previousIndex)}),M.activeIndex>M.previousIndex?M.emit("onSlideNextStart",M):M.emit("onSlidePrevStart",M)))},M.onTransitionEnd=function(e){M.animating=!1,M.setWrapperTransition(0),void 0===e&&(e=!0),M.lazy&&M.lazy.onTransitionEnd(),e&&(M.emit("onTransitionEnd",M),M.activeIndex!==M.previousIndex&&(M.emit("onSlideChangeEnd",M),o.$emit("$ionicSlides.slideChangeEnd",{slider:M,activeIndex:M.getSlideDataIndex(M.activeIndex),previousIndex:M.getSlideDataIndex(M.previousIndex)}),M.activeIndex>M.previousIndex?M.emit("onSlideNextEnd",M):M.emit("onSlidePrevEnd",M))),M.params.hashnav&&M.hashnav&&M.hashnav.setHash()},M.slideNext=function(e,t,n){if(M.params.loop){if(M.animating)return!1;M.fixLoop();M.container[0].clientLeft;return M.slideTo(M.activeIndex+M.params.slidesPerGroup,t,e,n)}return M.slideTo(M.activeIndex+M.params.slidesPerGroup,t,e,n)},M._slideNext=function(e){return M.slideNext(!0,e,!0)},M.slidePrev=function(e,t,n){if(M.params.loop){if(M.animating)return!1;M.fixLoop();M.container[0].clientLeft;return M.slideTo(M.activeIndex-1,t,e,n)}return M.slideTo(M.activeIndex-1,t,e,n)},M._slidePrev=function(e){return M.slidePrev(!0,e,!0)},M.slideReset=function(e,t,n){return M.slideTo(M.activeIndex,t,e)},M.setWrapperTransition=function(e,t){M.wrapper.transition(e),"slide"!==M.params.effect&&M.effects[M.params.effect]&&M.effects[M.params.effect].setTransition(e),M.params.parallax&&M.parallax&&M.parallax.setTransition(e),M.params.scrollbar&&M.scrollbar&&M.scrollbar.setTransition(e),M.params.control&&M.controller&&M.controller.setTransition(e,t),M.emit("onSetTransition",M,e)},M.setWrapperTranslate=function(e,t,n){var r=0,i=0;s()?r=M.rtl?-e:e:i=e,M.params.roundLengths&&(r=l(r),i=l(i)),M.params.virtualTranslate||(M.support.transforms3d?M.wrapper.transform("translate3d("+r+"px, "+i+"px, 0px)"):M.wrapper.transform("translate("+r+"px, "+i+"px)")),M.translate=s()?r:i;var o,a=M.maxTranslate()-M.minTranslate();o=0===a?0:(e-M.minTranslate())/a,o!==M.progress&&M.updateProgress(e),t&&M.updateActiveIndex(),"slide"!==M.params.effect&&M.effects[M.params.effect]&&M.effects[M.params.effect].setTranslate(M.translate),M.params.parallax&&M.parallax&&M.parallax.setTranslate(M.translate),M.params.scrollbar&&M.scrollbar&&M.scrollbar.setTranslate(M.translate),M.params.control&&M.controller&&M.controller.setTranslate(M.translate,n),M.emit("onSetTranslate",M,M.translate)},M.getTranslate=function(e,t){var n,r,i,o;return void 0===t&&(t="x"),M.params.virtualTranslate?M.rtl?-M.translate:M.translate:(i=window.getComputedStyle(e,null),window.WebKitCSSMatrix?(r=i.transform||i.webkitTransform,r.split(",").length>6&&(r=r.split(", ").map(function(e){return e.replace(",",".")}).join(", ")),o=new window.WebKitCSSMatrix("none"===r?"":r)):(o=i.MozTransform||i.OTransform||i.MsTransform||i.msTransform||i.transform||i.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),n=o.toString().split(",")),"x"===t&&(r=window.WebKitCSSMatrix?o.m41:16===n.length?parseFloat(n[12]):parseFloat(n[4])),"y"===t&&(r=window.WebKitCSSMatrix?o.m42:16===n.length?parseFloat(n[13]):parseFloat(n[5])),M.rtl&&r&&(r=-r),r||0)},M.getWrapperTranslate=function(e){return void 0===e&&(e=s()?"x":"y"),M.getTranslate(M.wrapper[0],e)},M.observers=[],M.initObservers=function(){if(M.params.observeParents)for(var e=M.container.parents(),t=0;t<e.length;t++)d(e[t]);d(M.container[0],{childList:!1}),d(M.wrapper[0],{attributes:!1})},M.disconnectObservers=function(){for(var e=0;e<M.observers.length;e++)M.observers[e].disconnect();M.observers=[]},M.updateLoop=function(){var e=M.slides.eq(M.activeIndex);if(angular.element(e).hasClass(M.params.slideDuplicateClass)){for(var t=angular.element(e).attr("data-swiper-slide-index"),n=M.wrapper.children("."+M.params.slideClass),r=0;r<n.length;r++)if(!angular.element(n[r]).hasClass(M.params.slideDuplicateClass)&&angular.element(n[r]).attr("data-swiper-slide-index")===t){M.slideTo(r,0,!1,!0);break}setTimeout(function(){M.createLoop()},50)}},M.getSlideDataIndex=function(e){var t=M.slides.eq(e),n=angular.element(t).attr("data-swiper-slide-index");return parseInt(n)},M.createLoop=function(){M.wrapper.children("."+M.params.slideClass+"."+M.params.slideDuplicateClass).remove();var t=M.wrapper.children("."+M.params.slideClass);"auto"!==M.params.slidesPerView||M.params.loopedSlides||(M.params.loopedSlides=t.length),M.loopedSlides=parseInt(M.params.loopedSlides||M.params.slidesPerView,10),M.loopedSlides=M.loopedSlides+M.params.loopAdditionalSlides,M.loopedSlides>t.length&&(M.loopedSlides=t.length);var n,r,i,o=[],s=[];for(t.each(function(n,r){var i=e(this);n<M.loopedSlides&&s.push(r),n<t.length&&n>=t.length-M.loopedSlides&&o.push(r),i.attr("data-swiper-slide-index",n)}),n=0;n<s.length;n++)i=angular.element(s[n]).clone().addClass(M.params.slideDuplicateClass),i.removeAttr("ng-transclude"),i.removeAttr("ng-repeat"),r=angular.element(s[n]).scope(),i=a(i)(r),angular.element(M.wrapper).append(i);for(n=o.length-1;n>=0;n--)i=angular.element(o[n]).clone().addClass(M.params.slideDuplicateClass),i.removeAttr("ng-transclude"),i.removeAttr("ng-repeat"),r=angular.element(o[n]).scope(),i=a(i)(r),angular.element(M.wrapper).prepend(i)},M.destroyLoop=function(){M.wrapper.children("."+M.params.slideClass+"."+M.params.slideDuplicateClass).remove(),M.slides.removeAttr("data-swiper-slide-index")},M.fixLoop=function(){var e;M.activeIndex<M.loopedSlides?(e=M.slides.length-3*M.loopedSlides+M.activeIndex,e+=M.loopedSlides,M.slideTo(e,0,!1,!0)):("auto"===M.params.slidesPerView&&M.activeIndex>=2*M.loopedSlides||M.activeIndex>M.slides.length-2*M.params.slidesPerView)&&(e=-M.slides.length+M.activeIndex+M.loopedSlides,e+=M.loopedSlides,M.slideTo(e,0,!1,!0))},M.appendSlide=function(e){if(M.params.loop&&M.destroyLoop(),"object"==typeof e&&e.length)for(var t=0;t<e.length;t++)e[t]&&M.wrapper.append(e[t]);else M.wrapper.append(e);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0)},M.prependSlide=function(e){M.params.loop&&M.destroyLoop();var t=M.activeIndex+1;if("object"==typeof e&&e.length){for(var n=0;n<e.length;n++)e[n]&&M.wrapper.prepend(e[n]);t=M.activeIndex+e.length}else M.wrapper.prepend(e);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0),M.slideTo(t,0,!1)},M.removeSlide=function(e){M.params.loop&&(M.destroyLoop(),M.slides=M.wrapper.children("."+M.params.slideClass));var t,n=M.activeIndex;if("object"==typeof e&&e.length){for(var r=0;r<e.length;r++)t=e[r],M.slides[t]&&M.slides.eq(t).remove(),t<n&&n--;n=Math.max(n,0)}else t=e,M.slides[t]&&M.slides.eq(t).remove(),t<n&&n--,n=Math.max(n,0);M.params.loop&&M.createLoop(),M.params.observer&&M.support.observer||M.update(!0),M.params.loop?M.slideTo(n+M.loopedSlides,0,!1):M.slideTo(n,0,!1)},M.removeAllSlides=function(){for(var e=[],t=0;t<M.slides.length;t++)e.push(t);M.removeSlide(e)},M.effects={fade:{setTranslate:function(){for(var e=0;e<M.slides.length;e++){var t=M.slides.eq(e),n=t[0].swiperSlideOffset,r=-n;M.params.virtualTranslate||(r-=M.translate);var i=0;s()||(i=r,r=0);var o=M.params.fade.crossFade?Math.max(1-Math.abs(t[0].progress),0):1+Math.min(Math.max(t[0].progress,-1),0);t.css({opacity:o}).transform("translate3d("+r+"px, "+i+"px, 0px)")}},setTransition:function(e){if(M.slides.transition(e),M.params.virtualTranslate&&0!==e){var t=!1;M.slides.transitionEnd(function(){if(!t&&M){t=!0,M.animating=!1;for(var e=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],n=0;n<e.length;n++)M.wrapper.trigger(e[n])}})}}},cube:{setTranslate:function(){var t,n=0;M.params.cube.shadow&&(s()?(t=M.wrapper.find(".swiper-cube-shadow"),0===t.length&&(t=e('<div class="swiper-cube-shadow"></div>'),M.wrapper.append(t)),t.css({height:M.width+"px"})):(t=M.container.find(".swiper-cube-shadow"),0===t.length&&(t=e('<div class="swiper-cube-shadow"></div>'),M.container.append(t))));for(var r=0;r<M.slides.length;r++){var i=M.slides.eq(r),o=90*r,a=Math.floor(o/360);M.rtl&&(o=-o,a=Math.floor(-o/360));var l=Math.max(Math.min(i[0].progress,1),-1),u=0,c=0,d=0;r%4==0?(u=4*-a*M.size,d=0):(r-1)%4==0?(u=0,d=4*-a*M.size):(r-2)%4==0?(u=M.size+4*a*M.size,d=M.size):(r-3)%4==0&&(u=-M.size,d=3*M.size+4*M.size*a),M.rtl&&(u=-u),s()||(c=u,u=0);var h="rotateX("+(s()?0:-o)+"deg) rotateY("+(s()?o:0)+"deg) translate3d("+u+"px, "+c+"px, "+d+"px)";if(l<=1&&l>-1&&(n=90*r+90*l,M.rtl&&(n=90*-r-90*l)),i.transform(h),M.params.cube.slideShadows){var f=s()?i.find(".swiper-slide-shadow-left"):i.find(".swiper-slide-shadow-top"),p=s()?i.find(".swiper-slide-shadow-right"):i.find(".swiper-slide-shadow-bottom");0===f.length&&(f=e('<div class="swiper-slide-shadow-'+(s()?"left":"top")+'"></div>'),i.append(f)),0===p.length&&(p=e('<div class="swiper-slide-shadow-'+(s()?"right":"bottom")+'"></div>'),i.append(p));i[0].progress;f.length&&(f[0].style.opacity=-i[0].progress),p.length&&(p[0].style.opacity=i[0].progress)}}if(M.wrapper.css({"-webkit-transform-origin":"50% 50% -"+M.size/2+"px","-moz-transform-origin":"50% 50% -"+M.size/2+"px","-ms-transform-origin":"50% 50% -"+M.size/2+"px","transform-origin":"50% 50% -"+M.size/2+"px"}),M.params.cube.shadow)if(s())t.transform("translate3d(0px, "+(M.width/2+M.params.cube.shadowOffset)+"px, "+-M.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+M.params.cube.shadowScale+")");else{var m=Math.abs(n)-90*Math.floor(Math.abs(n)/90),g=1.5-(Math.sin(2*m*Math.PI/360)/2+Math.cos(2*m*Math.PI/360)/2),v=M.params.cube.shadowScale,_=M.params.cube.shadowScale/g,y=M.params.cube.shadowOffset;t.transform("scale3d("+v+", 1, "+_+") translate3d(0px, "+(M.height/2+y)+"px, "+-M.height/2/_+"px) rotateX(-90deg)")}var b=M.isSafari||M.isUiWebView?-M.size/2:0;M.wrapper.transform("translate3d(0px,0,"+b+"px) rotateX("+(s()?0:n)+"deg) rotateY("+(s()?-n:0)+"deg)")},setTransition:function(e){M.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),M.params.cube.shadow&&!s()&&M.container.find(".swiper-cube-shadow").transition(e)}},coverflow:{setTranslate:function(){for(var t=M.translate,n=s()?-t+M.width/2:-t+M.height/2,r=s()?M.params.coverflow.rotate:-M.params.coverflow.rotate,i=M.params.coverflow.depth,o=0,a=M.slides.length;o<a;o++){var l=M.slides.eq(o),u=M.slidesSizesGrid[o],c=l[0].swiperSlideOffset,d=(n-c-u/2)/u*M.params.coverflow.modifier,h=s()?r*d:0,f=s()?0:r*d,p=-i*Math.abs(d),m=s()?0:M.params.coverflow.stretch*d,g=s()?M.params.coverflow.stretch*d:0;Math.abs(g)<.001&&(g=0),Math.abs(m)<.001&&(m=0),Math.abs(p)<.001&&(p=0),Math.abs(h)<.001&&(h=0),Math.abs(f)<.001&&(f=0);var v="translate3d("+g+"px,"+m+"px,"+p+"px)  rotateX("+f+"deg) rotateY("+h+"deg)";if(l.transform(v),l[0].style.zIndex=1-Math.abs(Math.round(d)),M.params.coverflow.slideShadows){var _=s()?l.find(".swiper-slide-shadow-left"):l.find(".swiper-slide-shadow-top"),y=s()?l.find(".swiper-slide-shadow-right"):l.find(".swiper-slide-shadow-bottom");0===_.length&&(_=e('<div class="swiper-slide-shadow-'+(s()?"left":"top")+'"></div>'),l.append(_)),0===y.length&&(y=e('<div class="swiper-slide-shadow-'+(s()?"right":"bottom")+'"></div>'),l.append(y)),_.length&&(_[0].style.opacity=d>0?d:0),y.length&&(y[0].style.opacity=-d>0?-d:0)}}if(M.browser.ie){M.wrapper[0].style.perspectiveOrigin=n+"px 50%"}},setTransition:function(e){M.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},M.lazy={initialImageLoaded:!1,loadImageInSlide:function(t,n){if(void 0!==t&&(void 0===n&&(n=!0),0!==M.slides.length)){var r=M.slides.eq(t),i=r.find(".swiper-lazy:not(.swiper-lazy-loaded):not(.swiper-lazy-loading)");!r.hasClass("swiper-lazy")||r.hasClass("swiper-lazy-loaded")||r.hasClass("swiper-lazy-loading")||(i=i.add(r[0])),0!==i.length&&i.each(function(){var t=e(this);t.addClass("swiper-lazy-loading");var i=t.attr("data-background"),o=t.attr("data-src"),a=t.attr("data-srcset");M.loadImage(t[0],o||i,a,!1,function(){if(i?(t.css("background-image","url("+i+")"),t.removeAttr("data-background")):(a&&(t.attr("srcset",a),t.removeAttr("data-srcset")),o&&(t.attr("src",o),t.removeAttr("data-src"))),t.addClass("swiper-lazy-loaded").removeClass("swiper-lazy-loading"),r.find(".swiper-lazy-preloader, .preloader").remove(),M.params.loop&&n){var e=r.attr("data-swiper-slide-index");if(r.hasClass(M.params.slideDuplicateClass)){var s=M.wrapper.children('[data-swiper-slide-index="'+e+'"]:not(.'+M.params.slideDuplicateClass+")");M.lazy.loadImageInSlide(s.index(),!1)}else{var l=M.wrapper.children("."+M.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');M.lazy.loadImageInSlide(l.index(),!1)}}M.emit("onLazyImageReady",M,r[0],t[0])}),M.emit("onLazyImageLoad",M,r[0],t[0])})}},load:function(){var t;if(M.params.watchSlidesVisibility)M.wrapper.children("."+M.params.slideVisibleClass).each(function(){M.lazy.loadImageInSlide(e(this).index())});else if(M.params.slidesPerView>1)for(t=M.activeIndex;t<M.activeIndex+M.params.slidesPerView;t++)M.slides[t]&&M.lazy.loadImageInSlide(t);else M.lazy.loadImageInSlide(M.activeIndex);if(M.params.lazyLoadingInPrevNext)if(M.params.slidesPerView>1){for(t=M.activeIndex+M.params.slidesPerView;t<M.activeIndex+M.params.slidesPerView+M.params.slidesPerView;t++)M.slides[t]&&M.lazy.loadImageInSlide(t);for(t=M.activeIndex-M.params.slidesPerView;t<M.activeIndex;t++)M.slides[t]&&M.lazy.loadImageInSlide(t)}else{var n=M.wrapper.children("."+M.params.slideNextClass);n.length>0&&M.lazy.loadImageInSlide(n.index());var r=M.wrapper.children("."+M.params.slidePrevClass);r.length>0&&M.lazy.loadImageInSlide(r.index())}},
-onTransitionStart:function(){M.params.lazyLoading&&(M.params.lazyLoadingOnTransitionStart||!M.params.lazyLoadingOnTransitionStart&&!M.lazy.initialImageLoaded)&&M.lazy.load()},onTransitionEnd:function(){M.params.lazyLoading&&!M.params.lazyLoadingOnTransitionStart&&M.lazy.load()}},M.scrollbar={isTouched:!1,setDragPosition:function(e){var t=M.scrollbar,n=s()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY,r=n-t.track.offset()[s()?"left":"top"]-t.dragSize/2,i=-M.minTranslate()*t.moveDivider,o=-M.maxTranslate()*t.moveDivider;r<i?r=i:r>o&&(r=o),r=-r/t.moveDivider,M.updateProgress(r),M.setWrapperTranslate(r,!0)},dragStart:function(e){var t=M.scrollbar;t.isTouched=!0,e.preventDefault(),e.stopPropagation(),t.setDragPosition(e),clearTimeout(t.dragTimeout),t.track.transition(0),M.params.scrollbarHide&&t.track.css("opacity",1),M.wrapper.transition(100),t.drag.transition(100),M.emit("onScrollbarDragStart",M)},dragMove:function(e){var t=M.scrollbar;t.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),M.wrapper.transition(0),t.track.transition(0),t.drag.transition(0),M.emit("onScrollbarDragMove",M))},dragEnd:function(e){var t=M.scrollbar;t.isTouched&&(t.isTouched=!1,M.params.scrollbarHide&&(clearTimeout(t.dragTimeout),t.dragTimeout=setTimeout(function(){t.track.css("opacity",0),t.track.transition(400)},1e3)),M.emit("onScrollbarDragEnd",M),M.params.scrollbarSnapOnRelease&&M.slideReset())},enableDraggable:function(){var t=M.scrollbar,n=M.support.touch?t.track:document;e(t.track).on(M.touchEvents.start,t.dragStart),e(n).on(M.touchEvents.move,t.dragMove),e(n).on(M.touchEvents.end,t.dragEnd)},disableDraggable:function(){var t=M.scrollbar,n=M.support.touch?t.track:document;e(t.track).off(M.touchEvents.start,t.dragStart),e(n).off(M.touchEvents.move,t.dragMove),e(n).off(M.touchEvents.end,t.dragEnd)},set:function(){if(M.params.scrollbar){var t=M.scrollbar;t.track=e(M.params.scrollbar),t.drag=t.track.find(".swiper-scrollbar-drag"),0===t.drag.length&&(t.drag=e('<div class="swiper-scrollbar-drag"></div>'),t.track.append(t.drag)),t.drag[0].style.width="",t.drag[0].style.height="",t.trackSize=s()?t.track[0].offsetWidth:t.track[0].offsetHeight,t.divider=M.size/M.virtualSize,t.moveDivider=t.divider*(t.trackSize/M.size),t.dragSize=t.trackSize*t.divider,s()?t.drag[0].style.width=t.dragSize+"px":t.drag[0].style.height=t.dragSize+"px",t.divider>=1?t.track[0].style.display="none":t.track[0].style.display="",M.params.scrollbarHide&&(t.track[0].style.opacity=0)}},setTranslate:function(){if(M.params.scrollbar){var e,t=M.scrollbar,n=(M.translate,t.dragSize);e=(t.trackSize-t.dragSize)*M.progress,M.rtl&&s()?(e=-e,e>0?(n=t.dragSize-e,e=0):-e+t.dragSize>t.trackSize&&(n=t.trackSize+e)):e<0?(n=t.dragSize+e,e=0):e+t.dragSize>t.trackSize&&(n=t.trackSize-e),s()?(M.support.transforms3d?t.drag.transform("translate3d("+e+"px, 0, 0)"):t.drag.transform("translateX("+e+"px)"),t.drag[0].style.width=n+"px"):(M.support.transforms3d?t.drag.transform("translate3d(0px, "+e+"px, 0)"):t.drag.transform("translateY("+e+"px)"),t.drag[0].style.height=n+"px"),M.params.scrollbarHide&&(clearTimeout(t.timeout),t.track[0].style.opacity=1,t.timeout=setTimeout(function(){t.track[0].style.opacity=0,t.track.transition(400)},1e3))}},setTransition:function(e){M.params.scrollbar&&M.scrollbar.drag.transition(e)}},M.controller={LinearSpline:function(e,t){this.x=e,this.y=t,this.lastIndex=e.length-1;var n,r;this.x.length;this.interpolate=function(e){return e?(r=i(this.x,e),n=r-1,(e-this.x[n])*(this.y[r]-this.y[n])/(this.x[r]-this.x[n])+this.y[n]):0};var i=function(){var e,t,n;return function(r,i){for(t=-1,e=r.length;e-t>1;)r[n=e+t>>1]<=i?t=n:e=n;return e}}()},getInterpolateFunction:function(e){M.controller.spline||(M.controller.spline=M.params.loop?new M.controller.LinearSpline(M.slidesGrid,e.slidesGrid):new M.controller.LinearSpline(M.snapGrid,e.snapGrid))},setTranslate:function(e,n){function r(t){e=t.rtl&&"horizontal"===t.params.direction?-M.translate:M.translate,"slide"===M.params.controlBy&&(M.controller.getInterpolateFunction(t),o=-M.controller.spline.interpolate(-e)),o&&"container"!==M.params.controlBy||(i=(t.maxTranslate()-t.minTranslate())/(M.maxTranslate()-M.minTranslate()),o=(e-M.minTranslate())*i+t.minTranslate()),M.params.controlInverse&&(o=t.maxTranslate()-o),t.updateProgress(o),t.setWrapperTranslate(o,!1,M),t.updateActiveIndex()}var i,o,a=M.params.control;if(M.isArray(a))for(var s=0;s<a.length;s++)a[s]!==n&&a[s]instanceof t&&r(a[s]);else a instanceof t&&n!==a&&r(a)},setTransition:function(e,n){function r(t){t.setWrapperTransition(e,M),0!==e&&(t.onTransitionStart(),t.wrapper.transitionEnd(function(){o&&(t.params.loop&&"slide"===M.params.controlBy&&t.fixLoop(),t.onTransitionEnd())}))}var i,o=M.params.control;if(M.isArray(o))for(i=0;i<o.length;i++)o[i]!==n&&o[i]instanceof t&&r(o[i]);else o instanceof t&&n!==o&&r(o)}},M.hashnav={init:function(){if(M.params.hashnav){M.hashnav.initialized=!0;var e=document.location.hash.replace("#","");if(e)for(var t=0,n=M.slides.length;t<n;t++){var r=M.slides.eq(t),i=r.attr("data-hash");if(i===e&&!r.hasClass(M.params.slideDuplicateClass)){var o=r.index();M.slideTo(o,0,M.params.runCallbacksOnInit,!0)}}}},setHash:function(){M.hashnav.initialized&&M.params.hashnav&&(document.location.hash=M.slides.eq(M.activeIndex).attr("data-hash")||"")}},M.disableKeyboardControl=function(){M.params.keyboardControl=!1,e(document).off("keydown",h)},M.enableKeyboardControl=function(){M.params.keyboardControl=!0,e(document).on("keydown",h)},M.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},M.params.mousewheelControl){try{new window.WheelEvent("wheel"),M.mousewheel.event="wheel"}catch(e){}M.mousewheel.event||void 0===document.onmousewheel||(M.mousewheel.event="mousewheel"),M.mousewheel.event||(M.mousewheel.event="DOMMouseScroll")}M.disableMousewheelControl=function(){return!!M.mousewheel.event&&(M.container.off(M.mousewheel.event,f),!0)},M.enableMousewheelControl=function(){return!!M.mousewheel.event&&(M.container.on(M.mousewheel.event,f),!0)},M.parallax={setTranslate:function(){M.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){p(this,M.progress)}),M.slides.each(function(){var t=e(this);t.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){p(this,Math.min(Math.max(t[0].progress,-1),1))})})},setTransition:function(t){void 0===t&&(t=M.params.speed),M.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var n=e(this),r=parseInt(n.attr("data-swiper-parallax-duration"),10)||t;0===t&&(r=0),n.transition(r)})}},M._plugins=[];for(var B in M.plugins){var R=M.plugins[B](M,M.params[B]);R&&M._plugins.push(R)}return M.callPlugins=function(e){for(var t=0;t<M._plugins.length;t++)e in M._plugins[t]&&M._plugins[t][e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},M.emitterEventListeners={},M.emit=function(e){M.params[e]&&M.params[e](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);var t;if(M.emitterEventListeners[e])for(t=0;t<M.emitterEventListeners[e].length;t++)M.emitterEventListeners[e][t](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);M.callPlugins&&M.callPlugins(e,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},M.on=function(e,t){return e=m(e),M.emitterEventListeners[e]||(M.emitterEventListeners[e]=[]),M.emitterEventListeners[e].push(t),M},M.off=function(e,t){var n;if(e=m(e),void 0===t)return M.emitterEventListeners[e]=[],M;if(M.emitterEventListeners[e]&&0!==M.emitterEventListeners[e].length){for(n=0;n<M.emitterEventListeners[e].length;n++)M.emitterEventListeners[e][n]===t&&M.emitterEventListeners[e].splice(n,1);return M}},M.once=function(e,t){e=m(e);var n=function(){t(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),M.off(e,n)};return M.on(e,n),M},M.a11y={makeFocusable:function(e){return e.attr("tabIndex","0"),e},addRole:function(e,t){return e.attr("role",t),e},addLabel:function(e,t){return e.attr("aria-label",t),e},disable:function(e){return e.attr("aria-disabled",!0),e},enable:function(e){return e.attr("aria-disabled",!1),e},onEnterKey:function(t){13===t.keyCode&&(e(t.target).is(M.params.nextButton)?(M.onClickNext(t),M.isEnd?M.a11y.notify(M.params.lastSlideMessage):M.a11y.notify(M.params.nextSlideMessage)):e(t.target).is(M.params.prevButton)&&(M.onClickPrev(t),M.isBeginning?M.a11y.notify(M.params.firstSlideMessage):M.a11y.notify(M.params.prevSlideMessage)),e(t.target).is("."+M.params.bulletClass)&&e(t.target)[0].click())},liveRegion:e('<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>'),notify:function(e){var t=M.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},init:function(){if(M.params.nextButton){var t=e(M.params.nextButton);M.a11y.makeFocusable(t),M.a11y.addRole(t,"button"),M.a11y.addLabel(t,M.params.nextSlideMessage)}if(M.params.prevButton){var n=e(M.params.prevButton);M.a11y.makeFocusable(n),M.a11y.addRole(n,"button"),M.a11y.addLabel(n,M.params.prevSlideMessage)}e(M.container).append(M.a11y.liveRegion)},initPagination:function(){M.params.pagination&&M.params.paginationClickable&&M.bullets&&M.bullets.length&&M.bullets.each(function(){var t=e(this);M.a11y.makeFocusable(t),M.a11y.addRole(t,"button"),M.a11y.addLabel(t,M.params.paginationBulletMessage.replace(/{{index}}/,t.index()+1))})},destroy:function(){M.a11y.liveRegion&&M.a11y.liveRegion.length>0&&M.a11y.liveRegion.remove()}},M.init=function(){M.params.loop&&M.createLoop(),M.updateContainerSize(),M.updateSlidesSize(),M.updatePagination(),M.params.scrollbar&&M.scrollbar&&(M.scrollbar.set(),M.params.scrollbarDraggable&&M.scrollbar.enableDraggable()),"slide"!==M.params.effect&&M.effects[M.params.effect]&&(M.params.loop||M.updateProgress(),M.effects[M.params.effect].setTranslate()),M.params.loop?M.slideTo(M.params.initialSlide+M.loopedSlides,0,M.params.runCallbacksOnInit):(M.slideTo(M.params.initialSlide,0,M.params.runCallbacksOnInit),0===M.params.initialSlide&&(M.parallax&&M.params.parallax&&M.parallax.setTranslate(),M.lazy&&M.params.lazyLoading&&(M.lazy.load(),M.lazy.initialImageLoaded=!0))),M.attachEvents(),M.params.observer&&M.support.observer&&M.initObservers(),M.params.preloadImages&&!M.params.lazyLoading&&M.preloadImages(),M.params.autoplay&&M.startAutoplay(),M.params.keyboardControl&&M.enableKeyboardControl&&M.enableKeyboardControl(),M.params.mousewheelControl&&M.enableMousewheelControl&&M.enableMousewheelControl(),M.params.hashnav&&M.hashnav&&M.hashnav.init(),M.params.a11y&&M.a11y&&M.a11y.init(),M.emit("onInit",M)},M.cleanupStyles=function(){M.container.removeClass(M.classNames.join(" ")).removeAttr("style"),M.wrapper.removeAttr("style"),M.slides&&M.slides.length&&M.slides.removeClass([M.params.slideVisibleClass,M.params.slideActiveClass,M.params.slideNextClass,M.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),M.paginationContainer&&M.paginationContainer.length&&M.paginationContainer.removeClass(M.params.paginationHiddenClass),M.bullets&&M.bullets.length&&M.bullets.removeClass(M.params.bulletActiveClass),M.params.prevButton&&e(M.params.prevButton).removeClass(M.params.buttonDisabledClass),M.params.nextButton&&e(M.params.nextButton).removeClass(M.params.buttonDisabledClass),M.params.scrollbar&&M.scrollbar&&(M.scrollbar.track&&M.scrollbar.track.length&&M.scrollbar.track.removeAttr("style"),M.scrollbar.drag&&M.scrollbar.drag.length&&M.scrollbar.drag.removeAttr("style"))},M.destroy=function(e,t){M.detachEvents(),M.stopAutoplay(),M.params.scrollbar&&M.scrollbar&&M.params.scrollbarDraggable&&M.scrollbar.disableDraggable(),M.params.loop&&M.destroyLoop(),t&&M.cleanupStyles(),M.disconnectObservers(),M.params.keyboardControl&&M.disableKeyboardControl&&M.disableKeyboardControl(),M.params.mousewheelControl&&M.disableMousewheelControl&&M.disableMousewheelControl(),M.params.a11y&&M.a11y&&M.a11y.destroy(),M.emit("onDestroy"),!1!==e&&(M=null)},M.init(),M}};t.prototype={isSafari:function(){var e=navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1},device:function(){var e=navigator.userAgent,t=e.match(/(Android);?[\s\/]+([\d.]+)?/),n=e.match(/(iPad).*OS\s([\d_]+)/),r=e.match(/(iPod)(.*OS\s([\d_]+))?/),i=!n&&e.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:n||i||r,android:t}}(),support:{touch:window.Modernizr&&!0===Modernizr.touch||function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}(),transforms3d:window.Modernizr&&!0===Modernizr.csstransforms3d||function(){var e=document.createElement("div").style;return"webkitPerspective"in e||"MozPerspective"in e||"OPerspective"in e||"MsPerspective"in e||"perspective"in e}(),flexbox:function(){for(var e=document.createElement("div").style,t="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),n=0;n<t.length;n++)if(t[n]in e)return!0}(),observer:function(){return"MutationObserver"in window||"WebkitMutationObserver"in window}()},plugins:{}};for(var n=(function(){var e=function(e){var t=this,n=0;for(n=0;n<e.length;n++)t[n]=e[n];return t.length=e.length,this},t=function(t,n){var r=[],i=0;if(t&&!n&&t instanceof e)return t;if(t)if("string"==typeof t){var o,a,s=t.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){var l="div";for(0===s.indexOf("<li")&&(l="ul"),0===s.indexOf("<tr")&&(l="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(l="tr"),0===s.indexOf("<tbody")&&(l="table"),0===s.indexOf("<option")&&(l="select"),a=document.createElement(l),a.innerHTML=t,i=0;i<a.childNodes.length;i++)r.push(a.childNodes[i])}else for(o=n||"#"!==t[0]||t.match(/[ .<>:~]/)?(n||document).querySelectorAll(t):[document.getElementById(t.split("#")[1])],i=0;i<o.length;i++)o[i]&&r.push(o[i])}else if(t.nodeType||t===window||t===document)r.push(t);else if(t.length>0&&t[0].nodeType)for(i=0;i<t.length;i++)r.push(t[i]);return new e(r)};return e.prototype={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),n=0;n<t.length;n++)for(var r=0;r<this.length;r++)this[r].classList.add(t[n]);return this},removeClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var r=0;r<this.length;r++)this[r].classList.remove(t[n]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),n=0;n<t.length;n++)for(var r=0;r<this.length;r++)this[r].classList.toggle(t[n]);return this},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var n=0;n<this.length;n++)if(2===arguments.length)this[n].setAttribute(e,t);else for(var r in e)this[n][r]=e[r],this[n].setAttribute(r,e[r]);return this},removeAttr:function(e){for(var t=0;t<this.length;t++)this[t].removeAttribute(e);return this},data:function(e,t){if(void 0!==t){for(var n=0;n<this.length;n++){var r=this[n];r.dom7ElementDataStorage||(r.dom7ElementDataStorage={}),r.dom7ElementDataStorage[e]=t}return this}if(this[0]){var i=this[0].getAttribute("data-"+e);return i||(this[0].dom7ElementDataStorage&&e in this[0].dom7ElementDataStorage?this[0].dom7ElementDataStorage[e]:void 0)}},transform:function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this},on:function(e,n,r,i){function o(e){var i=e.target;if(t(i).is(n))r.call(i,e);else for(var o=t(i).parents(),a=0;a<o.length;a++)t(o[a]).is(n)&&r.call(o[a],e)}var a,s,l=e.split(" ");for(a=0;a<this.length;a++)if("function"==typeof n||!1===n)for("function"==typeof n&&(r=arguments[1],i=arguments[2]||!1),s=0;s<l.length;s++)this[a].addEventListener(l[s],r,i);else for(s=0;s<l.length;s++)this[a].dom7LiveListeners||(this[a].dom7LiveListeners=[]),this[a].dom7LiveListeners.push({listener:r,liveListener:o}),this[a].addEventListener(l[s],o,i);return this},off:function(e,t,n,r){for(var i=e.split(" "),o=0;o<i.length;o++)for(var a=0;a<this.length;a++)if("function"==typeof t||!1===t)"function"==typeof t&&(n=arguments[1],r=arguments[2]||!1),this[a].removeEventListener(i[o],n,r);else if(this[a].dom7LiveListeners)for(var s=0;s<this[a].dom7LiveListeners.length;s++)this[a].dom7LiveListeners[s].listener===n&&this[a].removeEventListener(i[o],this[a].dom7LiveListeners[s].liveListener,r);return this},once:function(e,t,n,r){function i(a){n(a),o.off(e,t,i,r)}var o=this;"function"==typeof t&&(t=!1,n=arguments[1],r=arguments[2]),o.on(e,t,i,r)},trigger:function(e,t){for(var n=0;n<this.length;n++){var r;try{r=new window.CustomEvent(e,{detail:t,bubbles:!0,cancelable:!0})}catch(n){r=document.createEvent("Event"),r.initEvent(e,!0,!0),r.detail=t}this[n].dispatchEvent(r)}return this},transitionEnd:function(e){function t(o){if(o.target===this)for(e.call(this,o),n=0;n<r.length;n++)i.off(r[n],t)}var n,r=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;if(e)for(n=0;n<r.length;n++)i.on(r[n],t);return this},width:function(){return this[0]===window?window.innerWidth:this.length>0?parseFloat(this.css("width")):null},outerWidth:function(e){return this.length>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(e){return this.length>0?e?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),n=document.body,r=e.clientTop||n.clientTop||0,i=e.clientLeft||n.clientLeft||0,o=window.pageYOffset||e.scrollTop,a=window.pageXOffset||e.scrollLeft;return{top:t.top+o-r,left:t.left+a-i}}return null},css:function(e,t){var n;if(1===arguments.length){if("string"!=typeof e){for(n=0;n<this.length;n++)for(var r in e)this[n].style[r]=e[r];return this}if(this[0])return window.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(n=0;n<this.length;n++)this[n].style[e]=t;return this}return this},each:function(e){for(var t=0;t<this.length;t++)e.call(this[t],t,this[t]);return this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:void 0;for(var t=0;t<this.length;t++)this[t].innerHTML=e;return this},is:function(n){if(!this[0])return!1;var r,i;if("string"==typeof n){var o=this[0];if(o===document)return n===document;if(o===window)return n===window;if(o.matches)return o.matches(n);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(n);if(o.mozMatchesSelector)return o.mozMatchesSelector(n);if(o.msMatchesSelector)return o.msMatchesSelector(n);for(r=t(n),i=0;i<r.length;i++)if(r[i]===this[0])return!0;return!1}if(n===document)return this[0]===document;if(n===window)return this[0]===window;if(n.nodeType||n instanceof e){for(r=n.nodeType?[n]:n,i=0;i<r.length;i++)if(r[i]===this[0])return!0;return!1}return!1},index:function(){if(this[0]){for(var e=this[0],t=0;null!==(e=e.previousSibling);)1===e.nodeType&&t++;return t}},eq:function(t){if(void 0===t)return this;var n,r=this.length;return t>r-1?new e([]):t<0?(n=r+t,new e(n<0?[]:[this[n]])):new e([this[t]])},append:function(t){var n,r;for(n=0;n<this.length;n++)if("string"==typeof t){var i=document.createElement("div");for(i.innerHTML=t;i.firstChild;)this[n].appendChild(i.firstChild)}else if(t instanceof e)for(r=0;r<t.length;r++)this[n].appendChild(t[r]);else this[n].appendChild(t);return this},prepend:function(t){var n,r;for(n=0;n<this.length;n++)if("string"==typeof t){var i=document.createElement("div");for(i.innerHTML=t,r=i.childNodes.length-1;r>=0;r--)this[n].insertBefore(i.childNodes[r],this[n].childNodes[0])}else if(t instanceof e)for(r=0;r<t.length;r++)this[n].insertBefore(t[r],this[n].childNodes[0]);else this[n].insertBefore(t,this[n].childNodes[0]);return this},insertBefore:function(e){for(var n=t(e),r=0;r<this.length;r++)if(1===n.length)n[0].parentNode.insertBefore(this[r],n[0]);else if(n.length>1)for(var i=0;i<n.length;i++)n[i].parentNode.insertBefore(this[r].cloneNode(!0),n[i])},insertAfter:function(e){for(var n=t(e),r=0;r<this.length;r++)if(1===n.length)n[0].parentNode.insertBefore(this[r],n[0].nextSibling);else if(n.length>1)for(var i=0;i<n.length;i++)n[i].parentNode.insertBefore(this[r].cloneNode(!0),n[i].nextSibling)},next:function(n){return new e(this.length>0?n?this[0].nextElementSibling&&t(this[0].nextElementSibling).is(n)?[this[0].nextElementSibling]:[]:this[0].nextElementSibling?[this[0].nextElementSibling]:[]:[])},nextAll:function(n){var r=[],i=this[0];if(!i)return new e([]);for(;i.nextElementSibling;){var o=i.nextElementSibling;n?t(o).is(n)&&r.push(o):r.push(o),i=o}return new e(r)},prev:function(n){return new e(this.length>0?n?this[0].previousElementSibling&&t(this[0].previousElementSibling).is(n)?[this[0].previousElementSibling]:[]:this[0].previousElementSibling?[this[0].previousElementSibling]:[]:[])},prevAll:function(n){var r=[],i=this[0];if(!i)return new e([]);for(;i.previousElementSibling;){var o=i.previousElementSibling;n?t(o).is(n)&&r.push(o):r.push(o),i=o}return new e(r)},parent:function(e){for(var n=[],r=0;r<this.length;r++)e?t(this[r].parentNode).is(e)&&n.push(this[r].parentNode):n.push(this[r].parentNode);return t(t.unique(n))},parents:function(e){for(var n=[],r=0;r<this.length;r++)for(var i=this[r].parentNode;i;)e?t(i).is(e)&&n.push(i):n.push(i),i=i.parentNode;return t(t.unique(n))},find:function(t){for(var n=[],r=0;r<this.length;r++)for(var i=this[r].querySelectorAll(t),o=0;o<i.length;o++)n.push(i[o]);return new e(n)},children:function(n){for(var r=[],i=0;i<this.length;i++)for(var o=this[i].childNodes,a=0;a<o.length;a++)n?1===o[a].nodeType&&t(o[a]).is(n)&&r.push(o[a]):1===o[a].nodeType&&r.push(o[a]);return new e(t.unique(r))},remove:function(){for(var e=0;e<this.length;e++)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this},add:function(){var e,n,r=this;for(e=0;e<arguments.length;e++){var i=t(arguments[e]);for(n=0;n<i.length;n++)r[r.length]=i[n],r.length++}return r}},t.fn=e.prototype,t.unique=function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t},t}()),r=["jQuery","Zepto","Dom7"],i=0;i<r.length;i++)window[r[i]]&&function(e){e.fn.swiper=function(n){var r;return e(this).each(function(){var e=new t(this,n);r||(r=e)}),r}}(window[r[i]]);var o;o=void 0===n?window.Dom7||window.Zepto||window.jQuery:n,o&&("transitionEnd"in o.fn||(o.fn.transitionEnd=function(e){function t(o){if(o.target===this)for(e.call(this,o),n=0;n<r.length;n++)i.off(r[n],t)}var n,r=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],i=this;if(e)for(n=0;n<r.length;n++)i.on(r[n],t);return this}),"transform"in o.fn||(o.fn.transform=function(e){for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransform=n.MsTransform=n.msTransform=n.MozTransform=n.OTransform=n.transform=e}return this}),"transition"in o.fn||(o.fn.transition=function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t++){var n=this[t].style;n.webkitTransitionDuration=n.MsTransitionDuration=n.msTransitionDuration=n.MozTransitionDuration=n.OTransitionDuration=n.transitionDuration=e}return this})),ionic.views.Swiper=t}(),function(e){"use strict";e.views.Toggle=e.views.View.inherit({initialize:function(t){var n=this;this.el=t.el,this.checkbox=t.checkbox,this.track=t.track,this.handle=t.handle,this.openPercent=-1,this.onChange=t.onChange||function(){},this.triggerThreshold=t.triggerThreshold||20,this.dragStartHandler=function(e){n.dragStart(e)},this.dragHandler=function(e){n.drag(e)},this.holdHandler=function(e){n.hold(e)},this.releaseHandler=function(e){n.release(e)},this.dragStartGesture=e.onGesture("dragstart",this.dragStartHandler,this.el),this.dragGesture=e.onGesture("drag",this.dragHandler,this.el),this.dragHoldGesture=e.onGesture("hold",this.holdHandler,this.el),this.dragReleaseGesture=e.onGesture("release",this.releaseHandler,this.el)},destroy:function(){e.offGesture(this.dragStartGesture,"dragstart",this.dragStartGesture),e.offGesture(this.dragGesture,"drag",this.dragGesture),e.offGesture(this.dragHoldGesture,"hold",this.holdHandler),e.offGesture(this.dragReleaseGesture,"release",this.releaseHandler)},tap:function(){"disabled"!==this.el.getAttribute("disabled")&&this.val(!this.checkbox.checked)},dragStart:function(e){this.checkbox.disabled||(this._dragInfo={width:this.el.offsetWidth,left:this.el.offsetLeft,right:this.el.offsetLeft+this.el.offsetWidth,triggerX:this.el.offsetWidth/2,initialState:this.checkbox.checked},e.gesture.srcEvent.preventDefault(),this.hold(e))},drag:function(t){var n=this;this._dragInfo&&(t.gesture.srcEvent.preventDefault(),e.requestAnimationFrame(function(){if(n._dragInfo){var e=t.gesture.touches[0].pageX-n._dragInfo.left,r=n._dragInfo.width-n.triggerThreshold;n._dragInfo.initialState?e<n.triggerThreshold?n.setOpenPercent(0):e>n._dragInfo.triggerX&&n.setOpenPercent(100):e<n._dragInfo.triggerX?n.setOpenPercent(0):e>r&&n.setOpenPercent(100)}}))},endDrag:function(){this._dragInfo=null},hold:function(){this.el.classList.add("dragging")},release:function(e){this.el.classList.remove("dragging"),this.endDrag(e)},setOpenPercent:function(t){if(this.openPercent<0||t<this.openPercent-3||t>this.openPercent+3)if(this.openPercent=t,0===t)this.val(!1);else if(100===t)this.val(!0);else{var n=Math.round(t/100*this.track.offsetWidth-this.handle.offsetWidth);n=n<1?0:n,this.handle.style[e.CSS.TRANSFORM]="translate3d("+n+"px,0,0)"}},val:function(t){return!0!==t&&!1!==t||(""!==this.handle.style[e.CSS.TRANSFORM]&&(this.handle.style[e.CSS.TRANSFORM]=""),this.checkbox.checked=t,this.openPercent=t?100:0,this.onChange&&this.onChange()),this.checkbox.checked}})}(ionic)}(),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,r,i=arguments,o=i[0],a="["+(e?e+":":"")+o+"] ",s=i[1];for(a+=s.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1),n=t+2;return n<i.length?ve(i[n]):e}),a+="\nhttp://errors.angularjs.org/1.5.11/"+(e?e+"/":"")+o,r=2,n="?";r<i.length;r++,n="&")a+=n+"p"+(r-2)+"="+encodeURIComponent(ve(i[r]));return new t(a)}}function n(e){if(null==e||S(e))return!1;if(ei(e)||w(e)||Fr&&e instanceof Fr)return!0;var t="length"in Object(e)&&e.length;return L(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function r(e,t,i){var o,a;if(e)if(k(e))for(o in e)"prototype"===o||"length"===o||"name"===o||e.hasOwnProperty&&!e.hasOwnProperty(o)||t.call(i,e[o],o,e);else if(ei(e)||n(e)){var s="object"!=typeof e;for(o=0,a=e.length;o<a;o++)(s||o in e)&&t.call(i,e[o],o,e)}else if(e.forEach&&e.forEach!==r)e.forEach(t,i,e);else if(b(e))for(o in e)t.call(i,e[o],o,e);else if("function"==typeof e.hasOwnProperty)for(o in e)e.hasOwnProperty(o)&&t.call(i,e[o],o,e);else for(o in e)Ir.call(e,o)&&t.call(i,e[o],o,e);return e}function i(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function o(e){return function(t,n){e(n,t)}}function a(){return++Kr}function s(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var r=e.$$hashKey,i=0,o=t.length;i<o;++i){var a=t[i];if(y(a)||k(a))for(var u=Object.keys(a),c=0,d=u.length;c<d;c++){var h=u[c],f=a[h];n&&y(f)?M(f)?e[h]=new Date(f.valueOf()):x(f)?e[h]=new RegExp(f):f.nodeName?e[h]=f.cloneNode(!0):O(f)?e[h]=f.clone():(y(e[h])||(e[h]=ei(f)?[]:{}),l(e[h],[f],!0)):e[h]=f}}return s(e,r),e}function u(e){return l(e,Ur.call(arguments,1),!1)}function c(e){return l(e,Ur.call(arguments,1),!0)}function d(e){return parseInt(e,10)}function h(e,t){return u(Object.create(e),t)}function f(){}function p(e){return e}function m(e){return function(){return e}}function g(e){return k(e.toString)&&e.toString!==Gr}function v(e){return void 0===e}function _(e){return void 0!==e}function y(e){return null!==e&&"object"==typeof e}function b(e){return null!==e&&"object"==typeof e&&!Zr(e)}function w(e){return"string"==typeof e}function L(e){return"number"==typeof e}function M(e){return"[object Date]"===Gr.call(e)}function k(e){return"function"==typeof e}function x(e){return"[object RegExp]"===Gr.call(e)}function S(e){return e&&e.window===e}function T(e){return e&&e.$evalAsync&&e.$watch}function $(e){return"[object File]"===Gr.call(e)}function D(e){return"[object FormData]"===Gr.call(e)}function C(e){return"[object Blob]"===Gr.call(e)}function E(e){return"boolean"==typeof e}function A(e){return e&&k(e.then)}function P(e){return e&&L(e.length)&&ti.test(Gr.call(e))}function Y(e){return"[object ArrayBuffer]"===Gr.call(e)}function O(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function I(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}function j(e){return jr(e.nodeName||e[0]&&e[0].nodeName)}function H(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function N(e,t){function n(e,t){var n,r=t.$$hashKey;if(ei(e))for(var o=0,a=e.length;o<a;o++)t.push(i(e[o]));else if(b(e))for(n in e)t[n]=i(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=i(e[n]));else for(n in e)Ir.call(e,n)&&(t[n]=i(e[n]));return s(t,r),t}function i(e){if(!y(e))return e;var t=a.indexOf(e);if(-1!==t)return l[t];if(S(e)||T(e))throw Jr("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var r=!1,i=o(e);return void 0===i&&(i=ei(e)?[]:Object.create(Zr(e)),r=!0),a.push(e),l.push(i),r?n(e,i):i}function o(e){switch(Gr.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(i(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(k(e.cloneNode))return e.cloneNode(!0)}var a=[],l=[];if(t){if(P(t)||Y(t))throw Jr("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw Jr("cpi","Can't copy! Source and destination are identical.");return ei(t)?t.length=0:r(t,function(e,n){"$$hashKey"!==n&&delete t[n]}),a.push(e),l.push(t),n(e,t)}return i(e)}function B(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,r,i,o=typeof e,a=typeof t;if(o===a&&"object"===o){if(!ei(e)){if(M(e))return!!M(t)&&B(e.getTime(),t.getTime());if(x(e))return!!x(t)&&e.toString()===t.toString();if(T(e)||T(t)||S(e)||S(t)||ei(t)||M(t)||x(t))return!1;i=fe();for(r in e)if("$"!==r.charAt(0)&&!k(e[r])){if(!B(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&_(t[r])&&!k(t[r]))return!1;return!0}
-if(!ei(t))return!1;if((n=e.length)===t.length){for(r=0;r<n;r++)if(!B(e[r],t[r]))return!1;return!0}}return!1}function R(e,t,n){return e.concat(Ur.call(t,n))}function F(e,t){return Ur.call(e,t||0)}function z(e,t){var n=arguments.length>2?F(arguments,2):[];return!k(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,R(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function V(t,n){var r=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?r=void 0:S(n)?r="$WINDOW":n&&e.document===n?r="$DOCUMENT":T(n)&&(r="$SCOPE"),r}function U(e,t){if(!v(e))return L(t)||(t=t?2:null),JSON.stringify(e,V,t)}function W(e){return w(e)?JSON.parse(e):e}function q(e,t){e=e.replace(ai,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return Qr(n)?t:n}function G(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Z(e,t,n){n=n?-1:1;var r=e.getTimezoneOffset();return G(e,n*(q(t,r)-r))}function J(e){e=Fr(e).clone();try{e.empty()}catch(e){}var t=Fr("<div>").append(e).html();try{return e[0].nodeType===hi?jr(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return"<"+jr(t)})}catch(e){return jr(t)}}function X(e){try{return decodeURIComponent(e)}catch(e){}}function K(e){var t={};return r((e||"").split("&"),function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),-1!==n&&(r=e.substring(0,n),i=e.substring(n+1)),r=X(r),_(r)&&(i=!_(i)||X(i),Ir.call(t,r)?ei(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))}),t}function Q(e){var t=[];return r(e,function(e,n){ei(e)?r(e,function(e){t.push(te(n,!0)+(!0===e?"":"="+te(e,!0)))}):t.push(te(n,!0)+(!0===e?"":"="+te(e,!0)))}),t.length?t.join("&"):""}function ee(e){return te(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function te(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ne(e,t){var n,r,i=si.length;for(r=0;r<i;++r)if(n=si[r]+t,w(n=e.getAttribute(n)))return n;return null}function re(t,n){var i,o,a={};if(r(si,function(e){var n=e+"app";!i&&t.hasAttribute&&t.hasAttribute(n)&&(i=t,o=t.getAttribute(n))}),r(si,function(e){var n,r=e+"app";!i&&(n=t.querySelector("["+r.replace(":","\\:")+"]"))&&(i=n,o=n.getAttribute(r))}),i){if(!li)return void e.console.error("Angular: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");a.strictDi=null!==ne(i,"strict-di"),n(i,o?[o]:[],a)}}function ie(t,n,i){y(i)||(i={}),i=u({strictDi:!1},i);var o=function(){if(t=Fr(t),t.injector()){var r=t[0]===e.document?"document":J(t);throw Jr("btstrpd","App already bootstrapped with this element '{0}'",r.replace(/</,"&lt;").replace(/>/,"&gt;"))}n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),i.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=tt(n,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),o},a=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&&a.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(a,"")),e&&!s.test(e.name))return o();e.name=e.name.replace(s,""),Xr.resumeBootstrap=function(e){return r(e,function(e){n.push(e)}),o()},k(Xr.resumeDeferredBootstrap)&&Xr.resumeDeferredBootstrap()}function oe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ae(e){var t=Xr.element(e).injector();if(!t)throw Jr("test","no injector found for element argument to getTestability");return t.get("$$testability")}function se(e,t){return t=t||"_",e.replace(ui,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(e,t,n){if(!e)throw Jr("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function ue(e,t,n){return n&&ei(e)&&(e=e[e.length-1]),le(k(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ce(e,t){if("hasOwnProperty"===e)throw Jr("badname","hasOwnProperty is not a valid {0} name",t)}function de(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;s<a;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&k(e)?z(o,e):e}function he(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)(t||e[i]!==n)&&(t||(t=Fr(Ur.call(e,0,i))),t.push(n));return t||e}function fe(){return Object.create(null)}function pe(e){function n(e,t,n){return e[t]||(e[t]=n())}var r=t("$injector"),i=t("ng"),o=n(e,"angular",Object);return o.$$minErr=o.$$minErr||t,n(o,"module",function(){var e={};return function(t,o,a){return function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name",t)}(t,"module"),o&&e.hasOwnProperty(t)&&(e[t]=null),n(e,t,function(){function e(e,t,n,r){return r||(r=i),function(){return r[n||"push"]([e,t,arguments]),c}}function n(e,n){return function(r,o){return o&&k(o)&&(o.$$moduleName=t),i.push([e,n,arguments]),c}}if(!o)throw r("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var i=[],s=[],l=[],u=e("$injector","invoke","push",s),c={_invokeQueue:i,_configBlocks:s,_runBlocks:l,requires:o,name:t,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:n("$provide","decorator"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),component:n("$compileProvider","component"),config:u,run:function(e){return l.push(e),this}};return a&&u(a),c})}})}function me(e,t){if(ei(e)){t=t||[];for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}else if(y(e)){t=t||{};for(var i in e)"$"===i.charAt(0)&&"$"===i.charAt(1)||(t[i]=e[i])}return t||e}function ge(e){var t=[];return JSON.stringify(e,function(e,n){if(n=V(e,n),y(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function ve(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):v(e)?"undefined":"string"!=typeof e?ge(e):e}function _e(){return++_i}function ye(e){return e.replace(wi,function(e,t,n,r){return r?n.toUpperCase():n}).replace(Li,"Moz$1")}function be(e){return!Si.test(e)}function we(e){var t=e.nodeType;return t===di||!t||t===pi}function Le(e){for(var t in vi[e.ng339])return!0;return!1}function Me(e){for(var t=0,n=e.length;t<n;t++)Ee(e[t])}function ke(e,t){var n,i,o,a,s=t.createDocumentFragment(),l=[];if(be(e))l.push(t.createTextNode(e));else{for(n=s.appendChild(t.createElement("div")),i=(Ti.exec(e)||["",""])[1].toLowerCase(),o=Di[i]||Di._default,n.innerHTML=o[1]+e.replace($i,"<$1></$2>")+o[2],a=o[0];a--;)n=n.lastChild;l=R(l,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",r(l,function(e){s.appendChild(e)}),s}function xe(t,n){n=n||e.document;var r;return(r=xi.exec(t))?[n.createElement(r[1])]:(r=ke(t,n))?r.childNodes:[]}function Se(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function Te(e){if(e instanceof Te)return e;var t;if(w(e)&&(e=ni(e),t=!0),!(this instanceof Te)){if(t&&"<"!==e.charAt(0))throw ki("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Te(e)}t?je(this,xe(e)):je(this,e)}function $e(e){return e.cloneNode(!0)}function De(e,t){if(t||Ee(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),r=0,i=n.length;r<i;r++)Ee(n[r])}function Ce(e,t,n,i){if(_(i))throw ki("offargs","jqLite#off() does not support the `selector` argument");var o=Ae(e),a=o&&o.events,s=o&&o.handle;if(s)if(t){var l=function(t){var r=a[t];_(n)&&H(r||[],n),_(n)&&r&&r.length>0||(bi(e,t,s),delete a[t])};r(t.split(" "),function(e){l(e),Mi[e]&&l(Mi[e])})}else for(t in a)"$destroy"!==t&&bi(e,t,s),delete a[t]}function Ee(e,t){var n=e.ng339,r=n&&vi[n];if(r){if(t)return void delete r.data[t];r.handle&&(r.events.$destroy&&r.handle({},"$destroy"),Ce(e)),delete vi[n],e.ng339=void 0}}function Ae(e,t){var n=e.ng339,r=n&&vi[n];return t&&!r&&(e.ng339=n=_e(),r=vi[n]={events:{},data:{},handle:void 0}),r}function Pe(e,t,n){if(we(e)){var r=_(n),i=!r&&t&&!y(t),o=!t,a=Ae(e,!i),s=a&&a.data;if(r)s[t]=n;else{if(o)return s;if(i)return s&&s[t];u(s,t)}}}function Ye(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Oe(e,t){t&&e.setAttribute&&r(t.split(" "),function(t){e.setAttribute("class",ni((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+ni(t)+" "," ")))})}function Ie(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");r(t.split(" "),function(e){e=ni(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",ni(n))}}function je(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;r<n;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function He(e,t){return Ne(e,"$"+(t||"ngController")+"Controller")}function Ne(e,t,n){e.nodeType===pi&&(e=e.documentElement);for(var r=ei(t)?t:[t];e;){for(var i=0,o=r.length;i<o;i++)if(_(n=Fr.data(e,r[i])))return n;e=e.parentNode||e.nodeType===mi&&e.host}}function Be(e){for(De(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function Re(e,t){t||De(e);var n=e.parentNode;n&&n.removeChild(e)}function Fe(t,n){n=n||e,"complete"===n.document.readyState?n.setTimeout(t):Fr(n).on("load",t)}function ze(e,t){var n=Ai[t.toLowerCase()];return n&&Pi[j(e)]&&n}function Ve(e){return Yi[e]}function Ue(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],o=i?i.length:0;if(o){if(v(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=i.specialHandlerWrapper||We;o>1&&(i=me(i));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,i[l])}};return n.elem=e,n}function We(e,t,n){n.call(e,t)}function qe(e,t,n){var r=t.relatedTarget;r&&(r===e||Ci.call(e,r))||n.call(e,t)}function Ge(){this.$get=function(){return u(Te,{hasClass:function(e,t){return e.attr&&(e=e[0]),Ye(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Ie(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Oe(e,t)}})}}function Ze(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"===r||"object"===r&&null!==e?e.$$hashKey=r+":"+(t||a)():r+":"+e}function Je(e,t){if(t){var n=0;this.nextUid=function(){return++n}}r(e,this.put,this)}function Xe(e){return Function.prototype.toString.call(e)+" "}function Ke(e){var t=Xe(e).replace(Bi,"");return t.match(Ii)||t.match(ji)}function Qe(e){var t=Ke(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function et(e,t,n){var i,o,a;if("function"==typeof e){if(!(i=e.$inject)){if(i=[],e.length){if(t)throw w(n)&&n||(n=e.name||Qe(e)),Ri("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);o=Ke(e),r(o[1].split(Hi),function(e){e.replace(Ni,function(e,t,n){i.push(n)})})}e.$inject=i}}else ei(e)?(a=e.length-1,ue(e[a],"fn"),i=e.slice(0,a)):ue(e,"fn",!0);return i}function tt(e,t){function n(e){return function(t,n){if(!y(t))return e(t,n);r(t,o(e))}}function i(e,t){if(ce(e,"service"),(k(t)||ei(t))&&(t=M.instantiate(t)),!t.$get)throw Ri("pget","Provider '{0}' must define $get factory method.",e);return L[e+g]=t}function a(e,t){return function(){var n=T.invoke(t,this);if(v(n))throw Ri("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function s(e,t,n){return i(e,{$get:!1!==n?a(e,t):t})}function l(e,t){return s(e,["$injector",function(e){return e.instantiate(t)}])}function u(e,t){return s(e,m(t),!1)}function c(e,t){ce(e,"constant"),L[e]=t,x[e]=t}function d(e,t){var n=M.get(e+g),r=n.$get;n.$get=function(){var e=T.invoke(r,n);return T.invoke(t,null,{$delegate:e})}}function h(e){le(v(e)||ei(e),"modulesToLoad","not an array");var t,n=[];return r(e,function(e){function r(e){var t,n;for(t=0,n=e.length;t<n;t++){var r=e[t],i=M.get(r[0]);i[r[1]].apply(i,r[2])}}if(!b.get(e)){b.put(e,!0);try{w(e)?(t=Vr(e),n=n.concat(h(t.requires)).concat(t._runBlocks),r(t._invokeQueue),r(t._configBlocks)):k(e)?n.push(M.invoke(e)):ei(e)?n.push(M.invoke(e)):ue(e,"module")}catch(t){throw ei(e)&&(e=e[e.length-1]),t.message&&t.stack&&-1===t.stack.indexOf(t.message)&&(t=t.message+"\n"+t.stack),Ri("modulerr","Failed to instantiate module {0} due to:\n{1}",e,t.stack||t.message||t)}}}),n}function f(e,n){function r(t,r){if(e.hasOwnProperty(t)){if(e[t]===p)throw Ri("cdep","Circular dependency found: {0}",t+" <- "+_.join(" <- "));return e[t]}try{return _.unshift(t),e[t]=p,e[t]=n(t,r),e[t]}catch(n){throw e[t]===p&&delete e[t],n}finally{_.shift()}}function i(e,n,i){for(var o=[],a=tt.$$annotate(e,t,i),s=0,l=a.length;s<l;s++){var u=a[s];if("string"!=typeof u)throw Ri("itkn","Incorrect injection token! Expected service name as string, got {0}",u);o.push(n&&n.hasOwnProperty(u)?n[u]:r(u,i))}return o}function o(e){return!(Rr<=11)&&("function"==typeof e&&/^(?:class\b|constructor\()/.test(Xe(e)))}function a(e,t,n,r){"string"==typeof n&&(r=n,n=null);var a=i(e,n,r);return ei(e)&&(e=e[e.length-1]),o(e)?(a.unshift(null),new(Function.prototype.bind.apply(e,a))):e.apply(t,a)}function s(e,t,n){var r=ei(e)?e[e.length-1]:e,o=i(e,t,n);return o.unshift(null),new(Function.prototype.bind.apply(r,o))}return{invoke:a,instantiate:s,get:r,annotate:tt.$$annotate,has:function(t){return L.hasOwnProperty(t+g)||e.hasOwnProperty(t)}}}t=!0===t;var p={},g="Provider",_=[],b=new Je([],!0),L={$provide:{provider:n(i),factory:n(s),service:n(l),value:n(u),constant:n(c),decorator:d}},M=L.$injector=f(L,function(e,t){throw Xr.isString(t)&&_.push(t),Ri("unpr","Unknown provider: {0}",_.join(" <- "))}),x={},S=f(x,function(e,t){var n=M.get(e+g,t);return T.invoke(n.$get,n,void 0,e)}),T=S;L["$injector"+g]={$get:m(S)};var $=h(e);return T=S.get("$injector"),T.strictDi=t,r($,function(e){e&&T.invoke(e)}),T}function nt(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,r){function i(e){var t=null;return Array.prototype.some.call(e,function(e){if("a"===j(e))return t=e,!0}),t}function o(){var e=s.yOffset;if(k(e))e=e();else if(O(e)){var n=e[0],r=t.getComputedStyle(n);e="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else L(e)||(e=0);return e}function a(e){if(e){e.scrollIntoView();var n=o();if(n){var r=e.getBoundingClientRect().top;t.scrollBy(0,r-n)}}else t.scrollTo(0,0)}function s(e){e=w(e)?e:L(e)?e.toString():n.hash();var t;e?(t=l.getElementById(e))?a(t):(t=i(l.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var l=t.document;return e&&r.$watch(function(){return n.hash()},function(e,t){e===t&&""===e||Fe(function(){r.$evalAsync(s)})}),s}]}function rt(e,t){return e||t?e?t?(ei(e)&&(e=e.join(" ")),ei(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function it(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===zi)return n}}function ot(e){w(e)&&(e=e.split(" "));var t=fe();return r(e,function(e){e.length&&(t[e]=!0)}),t}function at(e){return y(e)?e:{}}function st(e,t,n,i){function o(e){try{e.apply(null,F(arguments,1))}finally{if(0===--_)for(;y.length;)try{y.pop()()}catch(e){n.error(e)}}}function a(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}function s(){k=null,l(),u()}function l(){b=x(),b=v(b)?null:b,B(b,$)&&(b=$),$=b}function u(){L===c.url()&&w===b||(L=c.url(),w=b,r(S,function(e){e(c.url(),b)}))}var c=this,d=e.location,h=e.history,p=e.setTimeout,m=e.clearTimeout,g={};c.isMock=!1;var _=0,y=[];c.$$completeOutstandingRequest=o,c.$$incOutstandingRequestCount=function(){_++},c.notifyWhenNoOutstandingRequests=function(e){0===_?e():y.push(e)};var b,w,L=d.href,M=t.find("base"),k=null,x=i.history?function(){try{return h.state}catch(e){}}:f;l(),w=b,c.url=function(t,n,r){if(v(r)&&(r=null),d!==e.location&&(d=e.location),h!==e.history&&(h=e.history),t){var o=w===r;if(L===t&&(!i.history||o))return c;var s=L&&Rt(L)===Rt(t);return L=t,w=r,!i.history||s&&o?(s||(k=t),n?d.replace(t):s?d.hash=a(t):d.href=t,d.href!==t&&(k=t)):(h[n?"replaceState":"pushState"](r,"",t),l(),w=b),k&&(k=t),c}return k||d.href.replace(/%27/g,"'")},c.state=function(){return b};var S=[],T=!1,$=null;c.onUrlChange=function(t){return T||(i.history&&Fr(e).on("popstate",s),Fr(e).on("hashchange",s),T=!0),S.push(t),t},c.$$applicationDestroyed=function(){Fr(e).off("hashchange popstate",s)},c.$$checkUrlChange=u,c.baseHref=function(){var e=M.attr("href");return e?e.replace(/^(https?:)?\/\/[^\/]*/,""):""},c.defer=function(e,t){var n;return _++,n=p(function(){delete g[n],o(e)},t||0),g[n]=!0,n},c.defer.cancel=function(e){return!!g[e]&&(delete g[e],m(e),o(f),!0)}}function lt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,r){return new st(e,r,t,n)}]}function ut(){this.$get=function(){function e(e,r){function i(e){e!==h&&(f?f===e&&(f=e.n):f=e,o(e.n,e.p),o(e,h),h=e,h.n=null)}function o(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}if(e in n)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var a=0,s=u({},r,{id:e}),l=fe(),c=r&&r.capacity||Number.MAX_VALUE,d=fe(),h=null,f=null;return n[e]={put:function(e,t){if(!v(t)){if(c<Number.MAX_VALUE){i(d[e]||(d[e]={key:e}))}return e in l||a++,l[e]=t,a>c&&this.remove(f.key),t}},get:function(e){if(c<Number.MAX_VALUE){var t=d[e];if(!t)return;i(t)}return l[e]},remove:function(e){if(c<Number.MAX_VALUE){var t=d[e];if(!t)return;t===h&&(h=t.p),t===f&&(f=t.n),o(t.n,t.p),delete d[e]}e in l&&(delete l[e],a--)},removeAll:function(){l=fe(),a=0,d=fe(),h=f=null},destroy:function(){l=null,s=null,d=null,delete n[e]},info:function(){return u({},s,{size:a})}}}var n={};return e.info=function(){var e={};return r(n,function(t,n){e[n]=t.info()}),e},e.get=function(e){return n[e]},e}}function ct(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function dt(){}function ht(t,n){function i(e,t,n){var i=/^\s*([@&<]|=(\*?))(\??)\s*([\w$]*)\s*$/,o=fe();return r(e,function(e,r){if(e in $)return void(o[r]=$[e]);var a=e.match(i);if(!a)throw Ji("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,r,e,n?"controller bindings definition":"isolate scope definition");o[r]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||r},a[4]&&($[e]=o[r])}),o}function a(e,t){var n={isolateScope:null,bindToController:null};if(y(e.scope)&&(!0===e.bindToController?(n.bindToController=i(e.scope,t,!0),n.isolateScope={}):n.isolateScope=i(e.scope,t,!1)),y(e.bindToController)&&(n.bindToController=i(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw Ji("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}function s(e){var t=e.charAt(0);if(!t||t!==jr(t))throw Ji("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Ji("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}function l(e){var t=e.require||e.controller&&e.name;return!ei(t)&&y(t)&&r(t,function(e,n){var r=e.match(x);e.substring(r[0].length)||(t[n]=r[0]+n)}),t}function c(e,t){if(e&&(!w(e)||!/[EACM]/.test(e)))throw Ji("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}var d={},g="Directive",b=/^\s*directive:\s*([\w-]+)\s+(.*)$/,L=/(([\w-]+)(?::([^;]+))?;?)/,M=I("ngSrc,ngSrcset,src,srcset"),x=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,S=/^(on[a-z]+|formaction)$/,$=fe();this.directive=function e(n,i){return le(n,"name"),ce(n,"directive"),w(n)?(s(n),le(i,"directiveFactory"),d.hasOwnProperty(n)||(d[n]=[],t.factory(n+g,["$injector","$exceptionHandler",function(e,t){var i=[];return r(d[n],function(r,o){try{var a=e.invoke(r);k(a)?a={compile:m(a)}:!a.compile&&a.link&&(a.compile=m(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=l(a),a.restrict=c(a.restrict,n),a.$$moduleName=r.$$moduleName,i.push(a)}catch(e){t(e)}}),i}])),d[n].push(i)):r(n,o(e)),this},this.component=function(e,t){function n(e){function n(t){return k(t)||ei(t)?function(n,r){return e.invoke(t,this,{$element:n,$attrs:r})}:t}var o=t.template||t.templateUrl?t.template:"",a={controller:i,controllerAs:vt(t.controller)||t.controllerAs||"$ctrl",template:n(o),templateUrl:n(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return r(t,function(e,t){"$"===t.charAt(0)&&(a[t]=e)}),a}var i=t.controller||function(){};return r(t,function(e,t){"$"===t.charAt(0)&&(n[t]=e,k(i)&&(i[t]=e))}),n.$inject=["$injector"],this.directive(e,n)},this.aHrefSanitizationWhitelist=function(e){return _(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return _(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var D=!0;this.debugInfoEnabled=function(e){return _(e)?(D=e,this):D};var C=!0;this.preAssignBindingsEnabled=function(e){return _(e)?(C=e,this):C};var A=10;this.onChangesTtl=function(e){return arguments.length?(A=e,this):A};var P=!0;this.commentDirectivesEnabled=function(e){return arguments.length?(P=e,this):P};var Y=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(Y=e,this):Y},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,i,o,s,l,c,m,$,O){function I(){try{if(!--Ce)throw Me=void 0,Ji("infchng","{0} $onChanges() iterations reached. Aborting!\n",A);c.$apply(function(){for(var e=[],t=0,n=Me.length;t<n;++t)try{Me[t]()}catch(t){e.push(t)}if(Me=void 0,e.length)throw e})}finally{Ce++}}function N(e,t){if(t){var n,r,i,o=Object.keys(t);for(n=0,r=o.length;n<r;n++)i=o[n],this[i]=t[i]}else this.$attr={};this.$$element=e}function R(e,t,n){xe.innerHTML="<span "+t+">";var r=xe.firstChild.attributes,i=r[0];r.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}function V(e,t){try{e.addClass(t)}catch(e){}}function U(t,n,r,i,o){t instanceof Fr||(t=Fr(t));for(var a=/\S+/,s=0,l=t.length;s<l;s++){var u=t[s];u.nodeType===hi&&u.nodeValue.match(a)&&Se(u,t[s]=e.document.createElement("span"))}var c=q(t,n,t,r,i,o);U.$$addScopeClass(t);var d=null;return function(e,n,r){le(e,"scope"),o&&o.needsNewScope&&(e=e.$parent.$new()),r=r||{};var i=r.parentBoundTranscludeFn,a=r.transcludeControllers,s=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),d||(d=W(s));var l;if(l="html"!==d?Fr(me(d,Fr("<div>").append(t).html())):n?Ei.clone.call(t):t,a)for(var u in a)l.data("$"+u+"Controller",a[u].instance);return U.$$addScopeInfo(l,e),n&&n(l,e),c&&c(e,l,l,i),l}}function W(e){var t=e&&e[0];return t&&"foreignobject"!==j(t)&&Gr.call(t).match(/SVG/)?"svg":"html"}function q(e,t,n,r,i,o){function a(e,n,r,i){var o,a,s,l,u,c,d,h,m;if(f){var g=n.length;for(m=new Array(g),u=0;u<p.length;u+=3)d=p[u],m[d]=n[d]}else m=n;for(u=0,c=p.length;u<c;)s=m[p[u++]],o=p[u++],a=p[u++],o?(o.scope?(l=e.$new(),U.$$addScopeInfo(Fr(s),l)):l=e,h=o.transcludeOnThisElement?G(e,o.transclude,i):!o.templateOnThisElement&&i?i:!i&&t?G(e,t):null,o(a,l,s,r,h)):a&&a(e,s.childNodes,void 0,i)}for(var s,l,u,c,d,h,f,p=[],m=0;m<e.length;m++)s=new N,l=Z(e[m],[],s,0===m?r:void 0,i),u=l.length?te(l,e[m],s,t,n,null,[],[],o):null,u&&u.scope&&U.$$addScopeClass(s.$$element),d=u&&u.terminal||!(c=e[m].childNodes)||!c.length?null:q(c,u?(u.transcludeOnThisElement||!u.templateOnThisElement)&&u.transclude:t),(u||d)&&(p.push(m,u,d),h=!0,f=f||u),o=null;return h?a:null}function G(e,t,n){function r(r,i,o,a,s){return r||(r=e.$new(!1,s),r.$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var i=r.$$slots=fe();for(var o in t.$$slots)t.$$slots[o]?i[o]=G(e,t.$$slots[o],n):i[o]=null;return r}function Z(e,t,n,r,i){var o,a,s,l=e.nodeType,u=n.$attr;switch(l){case di:a=j(e),oe(t,pt(a),"E",r,i);for(var c,d,h,f,p,m,g=e.attributes,v=0,_=g&&g.length;v<_;v++){var b=!1,M=!1;c=g[v],d=c.name,p=ni(c.value),f=pt(d),m=Ye.test(f),m&&(d=d.replace(Ki,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var k=f.match(Oe);k&&ae(k[1])&&(b=d,M=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),h=pt(d.toLowerCase()),u[h]=d,!m&&n.hasOwnProperty(h)||(n[h]=p,ze(e,h)&&(n[h]=!0)),ve(e,t,p,h,m),oe(t,h,"A",r,i,b,M)}if("input"===a&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!De)break;if(s=e.className,y(s)&&(s=s.animVal),w(s)&&""!==s)for(;o=L.exec(s);)h=pt(o[2]),oe(t,h,"C",r,i)&&(n[h]=ni(o[3])),s=s.substr(o.index+o[0].length);break;case hi:if(11===Rr)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===hi;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);pe(t,e.nodeValue);break;case fi:if(!Te)break;X(e,t,n,r,i)}return t.sort(de),t}function X(e,t,n,r,i){try{var o=b.exec(e.nodeValue);if(o){var a=pt(o[1]);oe(t,a,"M",r,i)&&(n[a]=ni(o[2]))}}catch(e){}}function K(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw Ji("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===di&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0);else r.push(e);return Fr(r)}function Q(e,t,n){return function(r,i,o,a,s){return i=K(i[0],t,n),e(r,i,o,a,s)}}function ee(e,t,n,r,i,o){var a;return e?U(t,n,r,i,o):function(){return a||(a=U(t,n,r,i,o),t=n=o=null),a.apply(this,arguments)}}function te(e,t,n,o,a,s,l,c,d){function h(e,t,n,r){e&&(n&&(e=Q(e,n,r)),e.require=p.require,e.directiveName=m,(x===p||p.$$isolateScope)&&(e=ye(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=Q(t,n,r)),t.require=p.require,t.directiveName=m,(x===p||p.$$isolateScope)&&(t=ye(t,{isolateScope:!0})),c.push(t))}function f(e,o,a,s,d){function h(e,t,n,r){var i;if(T(e)||(r=n,n=t,t=e,e=void 0),A&&(i=b),n||(n=A?$.parent():$),!r)return d(e,t,i,n,H);var o=d.$$slots[r];if(o)return o(e,t,i,n,H);if(v(o))throw Ji("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',r,J($))}var f,p,m,g,_,b,w,$,D,E;t===a?(D=n,$=n.$$element):($=Fr(a),D=new N($,n)),_=o,x?g=o.$new(!0):L&&(_=o.$parent),d&&(w=h,w.$$boundTransclude=d,w.isSlotFilled=function(e){return!!d.$$slots[e]}),M&&(b=re($,D,w,M,g,o,x)),x&&(U.$$addScopeInfo($,g,!0,!(S&&(S===x||S===x.$$originalDirective))),U.$$addScopeClass($,!0),g.$$isolateBindings=x.$$isolateBindings,E=Le(o,D,g,g.$$isolateBindings,x),E.removeWatches&&g.$on("$destroy",E.removeWatches));for(var P in b){var Y=M[P],O=b[P],I=Y.$$bindings.bindToController;if(C){O.bindingInfo=I?Le(_,D,O.instance,I,Y):{};var j=O();j!==O.instance&&(O.instance=j,$.data("$"+Y.name+"Controller",j),O.bindingInfo.removeWatches&&O.bindingInfo.removeWatches(),O.bindingInfo=Le(_,D,O.instance,I,Y))}else O.instance=O(),$.data("$"+Y.name+"Controller",O.instance),O.bindingInfo=Le(_,D,O.instance,I,Y)}for(r(M,function(e,t){var n=e.require;e.bindToController&&!ei(n)&&y(n)&&u(b[t].instance,ne(t,n,$,b))}),r(b,function(e){var t=e.instance;if(k(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){i(e)}if(k(t.$onInit))try{t.$onInit()}catch(e){i(e)}k(t.$doCheck)&&(_.$watch(function(){t.$doCheck()}),t.$doCheck()),k(t.$onDestroy)&&_.$on("$destroy",function(){t.$onDestroy()})}),f=0,p=l.length;f<p;f++)m=l[f],we(m,m.isolateScope?g:o,$,D,m.require&&ne(m.directiveName,m.require,$,b),w);var H=o;for(x&&(x.template||null===x.templateUrl)&&(H=g),e&&e(H,a.childNodes,void 0,d),f=c.length-1;f>=0;f--)m=c[f],we(m,m.isolateScope?g:o,$,D,m.require&&ne(m.directiveName,m.require,$,b),w);r(b,function(e){var t=e.instance;k(t.$postLink)&&t.$postLink()})}d=d||{};for(var p,m,g,_,b,w=-Number.MAX_VALUE,L=d.newScopeDirective,M=d.controllerDirectives,x=d.newIsolateScopeDirective,S=d.templateDirective,$=d.nonTlbTranscludeDirective,D=!1,E=!1,A=d.hasElementTranscludeDirective,P=n.$$element=Fr(t),Y=s,O=o,I=!1,H=!1,B=0,R=e.length;B<R;B++){p=e[B];var V=p.$$start,W=p.$$end;if(V&&(P=K(t,V,W)),g=void 0,w>p.priority)break;if(b=p.scope,b&&(p.templateUrl||(y(b)?(he("new/isolated scope",x||L,p,P),x=p):he("new/isolated scope",x,p,P)),L=L||p),m=p.name,!I&&(p.replace&&(p.templateUrl||p.template)||p.transclude&&!p.$$tlb)){for(var q,G=B+1;q=e[G++];)if(q.transclude&&!q.$$tlb||q.replace&&(q.templateUrl||q.template)){H=!0;break}I=!0}if(!p.templateUrl&&p.controller&&(M=M||fe(),he("'"+m+"' controller",M[m],p,P),M[m]=p),b=p.transclude)if(D=!0,p.$$tlb||(he("transclusion",$,p,P),$=p),"element"===b)A=!0,w=p.priority,g=P,P=n.$$element=Fr(U.$$createComment(m,n[m])),t=P[0],_e(a,F(g),t),g[0].$$parentNode=g[0].parentNode,O=ee(H,g,o,w,Y&&Y.name,{nonTlbTranscludeDirective:$});else{var X=fe();if(g=Fr($e(t)).contents(),y(b)){g=[];var te=fe(),oe=fe();r(b,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,te[e]=t,X[t]=null,oe[t]=n}),r(P.contents(),function(e){var t=te[pt(j(e))];t?(oe[t]=!0,X[t]=X[t]||[],X[t].push(e)):g.push(e)}),r(oe,function(e,t){if(!e)throw Ji("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var ae in X)X[ae]&&(X[ae]=ee(H,X[ae],o))}P.empty(),O=ee(H,g,o,void 0,void 0,{needsNewScope:p.$$isolateScope||p.$$newScope}),O.$$slots=X}if(p.template)if(E=!0,he("template",S,p,P),S=p,b=k(p.template)?p.template(P,n):p.template,b=Pe(b),p.replace){if(Y=p,g=be(b)?[]:gt(me(p.templateNamespace,ni(b))),t=g[0],1!==g.length||t.nodeType!==di)throw Ji("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m,"");_e(a,P,t);var se={$attr:{}},le=Z(t,[],se),de=e.splice(B+1,e.length-(B+1));(x||L)&&ie(le,x,L),e=e.concat(le).concat(de),ue(n,se),R=e.length}else P.html(b);if(p.templateUrl)E=!0,he("template",S,p,P),S=p,p.replace&&(Y=p),f=ce(e.splice(B,e.length-B),P,n,a,D&&O,l,c,{controllerDirectives:M,newScopeDirective:L!==p&&L,newIsolateScopeDirective:x,templateDirective:S,nonTlbTranscludeDirective:$}),R=e.length;else if(p.compile)try{_=p.compile(P,n,O);var pe=p.$$originalDirective||p;k(_)?h(null,z(pe,_),V,W):_&&h(z(pe,_.pre),z(pe,_.post),V,W)}catch(e){i(e,J(P))}p.terminal&&(f.terminal=!0,w=Math.max(w,p.priority))}return f.scope=L&&!0===L.scope,f.transcludeOnThisElement=D,f.templateOnThisElement=E,f.transclude=O,d.hasElementTranscludeDirective=A,f}function ne(e,t,n,i){var o;if(w(t)){var a=t.match(x),s=t.substring(a[0].length),l=a[1]||a[3],u="?"===a[2];if("^^"===l?n=n.parent():(o=i&&i[s],o=o&&o.instance),!o){var c="$"+s+"Controller";o=l?n.inheritedData(c):n.data(c)}if(!o&&!u)throw Ji("ctreq","Controller '{0}', required by directive '{1}', can't be found!",s,e)}else if(ei(t)){o=[];for(var d=0,h=t.length;d<h;d++)o[d]=ne(e,t[d],n,i)}else y(t)&&(o={},r(t,function(t,r){o[r]=ne(e,t,n,i)}));return o||null}function re(e,t,n,r,i,o,a){var s=fe();for(var u in r){var c=r[u],d={$scope:c===a||c.$$isolateScope?i:o,$element:e,$attrs:t,$transclude:n},h=c.controller;"@"===h&&(h=t[c.name]);var f=l(h,d,!0,c.controllerAs);s[c.name]=f,e.data("$"+c.name+"Controller",f.instance)}return s}function ie(e,t,n){for(var r=0,i=e.length;r<i;r++)e[r]=h(e[r],{$$isolateScope:t,$$newScope:n})}function oe(e,n,r,i,o,s,l){if(n===o)return null;var u=null;if(d.hasOwnProperty(n))for(var c,f=t.get(n+g),p=0,m=f.length;p<m;p++)if(c=f[p],(v(i)||i>c.priority)&&-1!==c.restrict.indexOf(r)){if(s&&(c=h(c,{$$start:s,$$end:l})),!c.$$bindings){var _=c.$$bindings=a(c,c.name);y(_.isolateScope)&&(c.$$isolateBindings=_.isolateScope)}e.push(c),u=c}return u}function ae(e){if(d.hasOwnProperty(e))for(var n,r=t.get(e+g),i=0,o=r.length;i<o;i++)if(n=r[i],n.multiElement)return!0;return!1}function ue(e,t){var n=t.$attr,i=e.$attr;r(e,function(r,i){"$"!==i.charAt(0)&&(t[i]&&t[i]!==r&&(r+=("style"===i?";":" ")+t[i]),e.$set(i,r,!0,n[i]))}),r(t,function(t,r){e.hasOwnProperty(r)||"$"===r.charAt(0)||(e[r]=t,
-"class"!==r&&"style"!==r&&(i[r]=n[r]))})}function ce(e,t,n,i,a,s,l,u){var c,d,f=[],p=t[0],m=e.shift(),g=h(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),v=k(m.templateUrl)?m.templateUrl(t,n):m.templateUrl,_=m.templateNamespace;return t.empty(),o(v).then(function(o){var h,b,w,L;if(o=Pe(o),m.replace){if(w=be(o)?[]:gt(me(_,ni(o))),h=w[0],1!==w.length||h.nodeType!==di)throw Ji("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,v);b={$attr:{}},_e(i,t,h);var M=Z(h,[],b);y(m.scope)&&ie(M,!0),e=M.concat(e),ue(n,b)}else h=p,t.html(o);for(e.unshift(g),c=te(e,h,n,a,t,m,s,l,u),r(i,function(e,n){e===h&&(i[n]=t[0])}),d=q(t[0].childNodes,a);f.length;){var k=f.shift(),x=f.shift(),S=f.shift(),T=f.shift(),$=t[0];if(!k.$$destroyed){if(x!==p){var D=x.className;u.hasElementTranscludeDirective&&m.replace||($=$e(h)),_e(S,Fr(x),$),V(Fr($),D)}L=c.transcludeOnThisElement?G(k,c.transclude,T):T,c(d,k,$,i,L)}}f=null}),function(e,t,n,r,i){var o=i;t.$$destroyed||(f?f.push(t,n,r,o):(c.transcludeOnThisElement&&(o=G(t,c.transclude,i)),c(d,t,n,r,o)))}}function de(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function he(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw Ji("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,J(r))}function pe(e,t){var r=n(t,!0);r&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&U.$$addBindingClass(t),function(e,t){var i=t.parent();n||U.$$addBindingClass(i),U.$$addBindingInfo(i,r.expressions),e.$watch(r,function(e){t[0].nodeValue=e})}}})}function me(t,n){switch(t=jr(t||"html")){case"svg":case"math":var r=e.document.createElement("div");return r.innerHTML="<"+t+">"+n+"</"+t+">",r.childNodes[0].childNodes;default:return n}}function ge(e,t){if("srcdoc"===t)return m.HTML;var n=j(e);if("src"===t||"ngSrc"===t){if(-1===["img","video","audio","source","track"].indexOf(n))return m.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t)return m.RESOURCE_URL}function ve(e,t,r,i,o){var a=ge(e,i),s=!o,l=M[i]||o,u=n(r,s,a,l);if(u){if("multiple"===i&&"select"===j(e))throw Ji("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",J(e));t.push({priority:100,compile:function(){return{pre:function(e,t,o){var s=o.$$observers||(o.$$observers=fe());if(S.test(i))throw Ji("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var c=o[i];c!==r&&(u=c&&n(c,!0,a,l),r=c),u&&(o[i]=u(e),(s[i]||(s[i]=[])).$$inter=!0,(o.$$observers&&o.$$observers[i].$$scope||e).$watch(u,function(e,t){"class"===i&&e!==t?o.$updateClass(e,t):o.$set(i,e)}))}}}})}}function _e(t,n,r){var i,o,a=n[0],s=n.length,l=a.parentNode;if(t)for(i=0,o=t.length;i<o;i++)if(t[i]===a){t[i++]=r;for(var u=i,c=u+s-1,d=t.length;u<d;u++,c++)c<d?t[u]=t[c]:delete t[u];t.length-=s-1,t.context===a&&(t.context=r);break}l&&l.replaceChild(r,a);var h=e.document.createDocumentFragment();for(i=0;i<s;i++)h.appendChild(n[i]);for(Fr.hasData(a)&&(Fr.data(r,Fr.data(a)),Fr(a).off("$destroy")),Fr.cleanData(h.querySelectorAll("*")),i=1;i<s;i++)delete n[i];n[0]=r,n.length=1}function ye(e,t){return u(function(){return e.apply(null,arguments)},e,t)}function we(e,t,n,r,o,a){try{e(t,n,r,o,a)}catch(e){i(e,J(n))}}function Le(e,t,i,o,a){function l(t,n,r){!k(i.$onChanges)||n===r||n!==n&&r!==r||(Me||(e.$$postDigest(I),Me=[]),c||(c={},Me.push(u)),c[t]&&(r=c[t].previousValue),c[t]=new ft(r,n))}function u(){i.$onChanges(c),c=void 0}var c,d=[],h={};return r(o,function(r,o){var u,c,p,m,g,v=r.attrName,_=r.optional,y=r.mode;switch(y){case"@":_||Ir.call(t,v)||(i[o]=t[v]=void 0),g=t.$observe(v,function(e){if(w(e)||E(e)){var t=i[o];l(o,e,t),i[o]=e}}),t.$$observers[v].$$scope=e,u=t[v],w(u)?i[o]=n(u)(e):E(u)&&(i[o]=u),h[o]=new ft(Xi,i[o]),d.push(g);break;case"=":if(!Ir.call(t,v)){if(_)break;t[v]=void 0}if(_&&!t[v])break;c=s(t[v]),m=c.literal?B:function(e,t){return e===t||e!==e&&t!==t},p=c.assign||function(){throw u=i[o]=c(e),Ji("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[v],v,a.name)},u=i[o]=c(e);var b=function(t){return m(t,i[o])||(m(t,u)?p(e,t=i[o]):i[o]=t),u=t};b.$stateful=!0,g=r.collection?e.$watchCollection(t[v],b):e.$watch(s(t[v],b),null,c.literal),d.push(g);break;case"<":if(!Ir.call(t,v)){if(_)break;t[v]=void 0}if(_&&!t[v])break;c=s(t[v]);var L=c.literal,M=i[o]=c(e);h[o]=new ft(Xi,i[o]),g=e.$watch(c,function(e,t){if(t===e){if(t===M||L&&B(t,M))return;t=M}l(o,e,t),i[o]=e},L),d.push(g);break;case"&":if((c=t.hasOwnProperty(v)?s(t[v]):f)===f&&_)break;i[o]=function(t){return c(e,t)}}}),{initialChanges:h,removeWatches:d.length&&function(){for(var e=0,t=d.length;e<t;++e)d[e]()}}}var Me,ke=/^\w/,xe=e.document.createElement("div"),Te=P,De=Y,Ce=A;N.prototype={$normalize:pt,$addClass:function(e){e&&e.length>0&&$.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&$.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=mt(e,t);n&&n.length&&$.addClass(this.$$element,n);var r=mt(t,e);r&&r.length&&$.removeClass(this.$$element,r)},$set:function(e,t,n,o){var a,s=this.$$element[0],l=ze(s,e),u=Ve(e),c=e;if(l?(this.$$element.prop(e,t),o=l):u&&(this[u]=t,c=u),this[e]=t,o?this.$attr[e]=o:(o=this.$attr[e])||(this.$attr[e]=o=se(e,"-")),"a"===(a=j(this.$$element))&&("href"===e||"xlinkHref"===e)||"img"===a&&"src"===e)this[e]=t=O(t,"src"===e);else if("img"===a&&"srcset"===e&&_(t)){for(var d="",h=ni(t),f=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,p=/\s/.test(h)?f:/(,)/,m=h.split(p),g=Math.floor(m.length/2),y=0;y<g;y++){var b=2*y;d+=O(ni(m[b]),!0),d+=" "+ni(m[b+1])}var w=ni(m[2*y]).split(/\s/);d+=O(ni(w[0]),!0),2===w.length&&(d+=" "+ni(w[1])),this[e]=t=d}!1!==n&&(null===t||v(t)?this.$$element.removeAttr(o):ke.test(o)?this.$$element.attr(o,t):R(this.$$element[0],o,t));var L=this.$$observers;L&&r(L[c],function(e){try{e(t)}catch(e){i(e)}})},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=fe()),i=r[e]||(r[e]=[]);return i.push(t),c.$evalAsync(function(){i.$$inter||!n.hasOwnProperty(e)||v(n[e])||t(n[e])}),function(){H(i,t)}}};var Ee=n.startSymbol(),Ae=n.endSymbol(),Pe="{{"===Ee&&"}}"===Ae?p:function(e){return e.replace(/\{\{/g,Ee).replace(/}}/g,Ae)},Ye=/^ngAttr[A-Z]/,Oe=/^(.+)Start$/;return U.$$addBindingInfo=D?function(e,t){var n=e.data("$binding")||[];ei(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:f,U.$$addBindingClass=D?function(e){V(e,"ng-binding")}:f,U.$$addScopeInfo=D?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:f,U.$$addScopeClass=D?function(e,t){V(e,t?"ng-isolate-scope":"ng-scope")}:f,U.$$createComment=function(t,n){var r="";return D&&(r=" "+(t||"")+": ",n&&(r+=n+" ")),e.document.createComment(r)},U}]}function ft(e,t){this.previousValue=e,this.currentValue=t}function pt(e){return ye(e.replace(Ki,""))}function mt(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a===i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function gt(e){e=Fr(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===fi||n.nodeType===hi&&""===n.nodeValue.trim())&&Wr.call(e,t,1)}return e}function vt(e,t){if(t&&w(t))return t;if(w(e)){var n=eo.exec(e);if(n)return n[3]}}function _t(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){ce(t,"controller"),y(t)?u(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(r,i){function o(e,n,r,i){if(!e||!y(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,n);e.$scope[n]=r}return function(t,a,s,l){var c,d,h,f;if(s=!0===s,l&&w(l)&&(f=l),w(t)){if(!(d=t.match(eo)))throw Qi("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(h=d[1],f=f||d[3],!(t=e.hasOwnProperty(h)?e[h]:de(a.$scope,h,!0)||(n?de(i,h,!0):void 0)))throw Qi("ctrlreg","The controller with the name '{0}' is not registered.",h);ue(t,h,!0)}if(s){var p=(ei(t)?t[t.length-1]:t).prototype;return c=Object.create(p||null),f&&o(a,f,c,h||t.name),u(function(){var e=r.invoke(t,c,a,h);return e!==c&&(y(e)||k(e))&&(c=e,f&&o(a,f,c,h||t.name)),c},{instance:c,identifier:f})}return c=r.instantiate(t,a,h),f&&o(a,f,c,h||t.name),c}}]}function yt(){this.$get=["$window",function(e){return Fr(e.document)}]}function bt(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function wt(e){return y(e)?M(e)?e.toISOString():U(e):e}function Lt(){this.$get=function(){return function(e){if(!e)return"";var t=[];return i(e,function(e,n){null===e||v(e)||(ei(e)?r(e,function(e){t.push(te(n)+"="+te(wt(e)))}):t.push(te(n)+"="+te(wt(e))))}),t.join("&")}}}function Mt(){this.$get=function(){return function(e){function t(e,o,a){null===e||v(e)||(ei(e)?r(e,function(e,n){t(e,o+"["+(y(e)?n:"")+"]")}):y(e)&&!M(e)?i(e,function(e,n){t(e,o+(a?"":"[")+n+(a?"":"]"))}):n.push(te(o)+"="+te(wt(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function kt(e,t){if(w(e)){var n=e.replace(ao,"").trim();if(n){var r=t("Content-Type");(r&&0===r.indexOf(no)||xt(n))&&(e=W(n))}}return e}function xt(e){var t=e.match(io);return t&&oo[t[0]].test(e)}function St(e){function t(e,t){e&&(i[e]=i[e]?i[e]+", "+t:t)}var n,i=fe();return w(e)?r(e.split("\n"),function(e){n=e.indexOf(":"),t(jr(ni(e.substr(0,n))),ni(e.substr(n+1)))}):y(e)&&r(e,function(e,n){t(jr(n),ni(e))}),i}function Tt(e){var t;return function(n){if(t||(t=St(e)),n){var r=t[jr(n)];return void 0===r&&(r=null),r}return t}}function $t(e,t,n,i){return k(i)?i(e,t,n):(r(i,function(r){e=r(e,t,n)}),e)}function Dt(e){return 200<=e&&e<300}function Ct(){var e=this.defaults={transformResponse:[kt],transformRequest:[function(e){return!y(e)||$(e)||C(e)||D(e)?e:U(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:me(ro),put:me(ro),patch:me(ro)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return _(e)?(n=!!e,this):n};var i=!0;this.useLegacyPromiseExtensions=function(e){return _(e)?(i=!!e,this):i};var o=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(a,s,l,c,d,h){function f(n){function o(e,t){for(var n=0,r=t.length;n<r;){var i=t[n++],o=t[n++];e=e.then(i,o)}return t.length=0,e}function a(e,t){var n,i={};return r(e,function(e,r){k(e)?null!=(n=e(t))&&(i[r]=n):i[r]=e}),i}function s(t){var n=t.headers,i=$t(t.data,Tt(n),void 0,t.transformRequest);return v(i)&&r(n,function(e,t){"content-type"===jr(t)&&delete n[t]}),v(t.withCredentials)&&!v(e.withCredentials)&&(t.withCredentials=e.withCredentials),p(t,i).then(l,l)}function l(e){var t=u({},e);return t.data=$t(e.data,e.headers,e.status,c.transformResponse),Dt(e.status)?t:d.reject(t)}if(!y(n))throw t("$http")("badreq","Http request configuration must be an object.  Received: {0}",n);if(!w(n.url))throw t("$http")("badreq","Http request configuration url must be a string.  Received: {0}",n.url);var c=u({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);c.headers=function(t){var n,r,i,o=e.headers,s=u({},t.headers);o=u({},o.common,o[jr(t.method)]);e:for(n in o){r=jr(n);for(i in s)if(jr(i)===r)continue e;s[n]=o[n]}return a(s,me(t))}(n),c.method=Hr(c.method),c.paramSerializer=w(c.paramSerializer)?h.get(c.paramSerializer):c.paramSerializer;var f=[],m=[],g=d.when(c);return r(b,function(e){(e.request||e.requestError)&&f.unshift(e.request,e.requestError),(e.response||e.responseError)&&m.push(e.response,e.responseError)}),g=o(g,f),g=g.then(s),g=o(g,m),i?(g.success=function(e){return ue(e,"fn"),g.then(function(t){e(t.data,t.status,t.headers,c)}),g},g.error=function(e){return ue(e,"fn"),g.then(null,function(t){e(t.data,t.status,t.headers,c)}),g}):(g.success=lo("success"),g.error=lo("error")),g}function p(t,i){function o(e){if(e){var t={};return r(e,function(e,r){t[r]=function(t){function r(){e(t)}n?c.$applyAsync(r):c.$$phase?r():c.$apply(r)}}),t}}function l(e,t,r,i){function o(){u(t,e,r,i)}b&&(Dt(e)?b.put(x,[e,t,St(r),i]):b.remove(x)),n?c.$applyAsync(o):(o(),c.$$phase||c.$apply())}function u(e,n,r,i){n=n>=-1?n:0,(Dt(n)?L.resolve:L.reject)({data:e,status:n,headers:Tt(r),config:t,statusText:i})}function h(e){u(e.data,e.status,me(e.headers()),e.statusText)}function p(){var e=f.pendingRequests.indexOf(t);-1!==e&&f.pendingRequests.splice(e,1)}var b,w,L=d.defer(),M=L.promise,k=t.headers,x=m(t.url,t.paramSerializer(t.params));if(f.pendingRequests.push(t),M.then(p,p),!t.cache&&!e.cache||!1===t.cache||"GET"!==t.method&&"JSONP"!==t.method||(b=y(t.cache)?t.cache:y(e.cache)?e.cache:g),b&&(w=b.get(x),_(w)?A(w)?w.then(h,h):ei(w)?u(w[1],w[0],me(w[2]),w[3]):u(w,200,{},"OK"):b.put(x,M)),v(w)){var S=Pn(t.url)?s()[t.xsrfCookieName||e.xsrfCookieName]:void 0;S&&(k[t.xsrfHeaderName||e.xsrfHeaderName]=S),a(t.method,x,i,l,k,t.timeout,t.withCredentials,t.responseType,o(t.eventHandlers),o(t.uploadEventHandlers))}return M}function m(e,t){return t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}var g=l("$http");e.paramSerializer=w(e.paramSerializer)?h.get(e.paramSerializer):e.paramSerializer;var b=[];return r(o,function(e){b.unshift(w(e)?h.get(e):h.invoke(e))}),f.pendingRequests=[],function(e){r(arguments,function(e){f[e]=function(t,n){return f(u({},n||{},{method:e,url:t}))}})}("get","delete","head","jsonp"),function(e){r(arguments,function(e){f[e]=function(t,n,r){return f(u({},r||{},{method:e,url:t,data:n}))}})}("post","put","patch"),f.defaults=e,f}]}function Et(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function At(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,r){return Pt(e,r,e.defer,t,n[0])}]}function Pt(e,t,n,i,o){function a(e,t,n){e=e.replace("JSON_CALLBACK",t);var r=o.createElement("script"),a=null;return r.type="text/javascript",r.src=e,r.async=!0,a=function(e){bi(r,"load",a),bi(r,"error",a),o.body.removeChild(r),r=null;var s=-1,l="unknown";e&&("load"!==e.type||i.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},yi(r,"load",a),yi(r,"error",a),o.body.appendChild(r),a}return function(o,s,l,u,c,d,h,p,m,g){function y(){L&&L(),M&&M.abort()}function b(t,r,i,o,a){_(x)&&n.cancel(x),L=M=null,t(r,i,o,a),e.$$completeOutstandingRequest(f)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"===jr(o))var w=i.createCallback(s),L=a(s,w,function(e,t){var n=200===e&&i.getResponse(w);b(u,e,n,"",t),i.removeCallback(w)});else{var M=t(o,s);M.open(o,s,!0),r(c,function(e,t){_(e)&&M.setRequestHeader(t,e)}),M.onload=function(){var e=M.statusText||"",t="response"in M?M.response:M.responseText,n=1223===M.status?204:M.status;0===n&&(n=t?200:"file"===An(s).protocol?404:0),b(u,n,t,M.getAllResponseHeaders(),e)};var k=function(){b(u,-1,null,null,"")};if(M.onerror=k,M.onabort=k,M.ontimeout=k,r(m,function(e,t){M.addEventListener(t,e)}),r(g,function(e,t){M.upload.addEventListener(t,e)}),h&&(M.withCredentials=!0),p)try{M.responseType=p}catch(e){if("json"!==p)throw e}M.send(v(l)?null:l)}if(d>0)var x=n(y,d);else A(d)&&d.then(y)}}function Yt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(e){return"\\\\\\"+e}function a(n){return n.replace(f,e).replace(p,t)}function s(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=U(e)}return e}function l(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function c(o,c,f,p){function g(e){try{return e=E(e),p&&!_(e)?e:s(e)}catch(e){r(uo.interr(o,e))}}if(!o.length||-1===o.indexOf(e)){var y;if(!c){y=m(a(o)),y.exp=o,y.expressions=[],y.$$watchDelegate=l}return y}p=!!p;for(var b,w,L,M=0,x=[],S=[],T=o.length,$=[],D=[];M<T;){if(-1===(b=o.indexOf(e,M))||-1===(w=o.indexOf(t,b+d))){M!==T&&$.push(a(o.substring(M)));break}M!==b&&$.push(a(o.substring(M,b))),L=o.substring(b+d,w),x.push(L),S.push(n(L,g)),M=w+h,D.push($.length),$.push("")}if(f&&$.length>1&&uo.throwNoconcat(o),!c||x.length){var C=function(e){for(var t=0,n=x.length;t<n;t++){if(p&&v(e[t]))return;$[D[t]]=e[t]}return $.join("")},E=function(e){return f?i.getTrusted(f,e):i.valueOf(e)};return u(function(e){var t=0,n=x.length,i=new Array(n);try{for(;t<n;t++)i[t]=S[t](e);return C(i)}catch(e){r(uo.interr(o,e))}},{exp:o,expressions:x,$$watchDelegate:function(e,t){var n;return e.$watchGroup(S,function(r,i){var o=C(r);k(t)&&t.call(this,o,r!==i?n:o,e),n=o})}})}}var d=e.length,h=t.length,f=new RegExp(e.replace(/./g,o),"g"),p=new RegExp(t.replace(/./g,o),"g");return c.startSymbol=function(){return e},c.endSymbol=function(){return t},c}]}function Ot(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,r,i){function o(o,s,l,u){function c(){d?o.apply(null,h):o(m)}var d=arguments.length>4,h=d?F(arguments,4):[],f=t.setInterval,p=t.clearInterval,m=0,g=_(u)&&!u,v=(g?r:n).defer(),y=v.promise;return l=_(l)?l:0,y.$$intervalId=f(function(){g?i.defer(c):e.$evalAsync(c),v.notify(m++),l>0&&m>=l&&(v.resolve(m),p(y.$$intervalId),delete a[y.$$intervalId]),g||e.$apply()},s),a[y.$$intervalId]=v,y}var a={};return o.cancel=function(e){return!!(e&&e.$$intervalId in a)&&(a[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete a[e.$$intervalId],!0)},o}]}function It(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ee(t[n]);return t.join("/")}function jt(e,t){var n=An(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=d(n.port)||fo[n.protocol]||null}function Ht(e,t){if(mo.test(e))throw po("badpath",'Invalid url "{0}".',e);var n="/"!==e.charAt(0);n&&(e="/"+e);var r=An(e);t.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),t.$$search=K(r.search),t.$$hash=decodeURIComponent(r.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Nt(e,t){return e.slice(0,t.length)===t}function Bt(e,t){if(Nt(t,e))return t.substr(e.length)}function Rt(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function Ft(e){return e.replace(/(#.+)|#$/,"$1")}function zt(e){return e.substr(0,Rt(e).lastIndexOf("/")+1)}function Vt(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Ut(e,t,n){this.$$html5=!0,n=n||"",jt(e,this),this.$$parse=function(e){var n=Bt(t,e);if(!w(n))throw po("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Ht(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=Q(this.$$search),n=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=It(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a,s;return _(o=Bt(e,r))?(a=o,s=n&&_(o=Bt(n,o))?t+(Bt("/",o)||o):e+a):_(o=Bt(t,r))?s=t+o:t===r+"/"&&(s=t),s&&this.$$parse(s),!!s}}function Wt(e,t,n){jt(e,this),this.$$parse=function(r){var i,o=Bt(e,r)||Bt(t,r);v(o)||"#"!==o.charAt(0)?this.$$html5?i=o:(i="",v(o)&&(e=r,this.replace())):(i=Bt(n,o),v(i)&&(i=o)),Ht(i,this),this.$$path=function(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;return Nt(t,n)&&(t=t.replace(n,"")),i.exec(t)?e:(r=i.exec(e),r?r[1]:e)}(this.$$path,i,e),this.$$compose()},this.$$compose=function(){var t=Q(this.$$search),r=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=It(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return Rt(e)===Rt(t)&&(this.$$parse(t),!0)}}function qt(e,t,n){this.$$html5=!0,Wt.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return e===Rt(r)?o=r:(a=Bt(t,r))?o=e+n+a:t===r+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=Q(this.$$search),r=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=It(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+n+this.$$url}}function Gt(e){return function(){return this[e]}}function Zt(e,t){return function(n){return v(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Jt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return _(t)?(e=t,this):e},this.html5Mode=function(e){return E(e)?(t.enabled=e,this):y(e)?(E(e.enabled)&&(t.enabled=e.enabled),E(e.requireBase)&&(t.requireBase=e.requireBase),(E(e.rewriteLinks)||w(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(e,t,n){var i=u.url(),o=u.$$state;try{r.url(e,t,n),u.$$state=r.state()}catch(e){throw u.url(i),u.$$state=o,e}}function l(e,t){n.$broadcast("$locationChangeSuccess",u.absUrl(),e,u.$$state,t)}var u,c,d,h=r.baseHref(),f=r.url();if(t.enabled){if(!h&&t.requireBase)throw po("nobase","$location in HTML5 mode requires a <base> tag to be present!");d=Vt(f)+(h||"/"),c=i.history?Ut:qt}else d=Rt(f),c=Wt;var p=zt(d);u=new c(d,p,"#"+e),u.$$parseLinkUrl(f,f),u.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(e){var i=t.rewriteLinks;if(i&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var s=Fr(e.target);"a"!==j(s[0]);)if(s[0]===o[0]||!(s=s.parent())[0])return;if(!w(i)||!v(s.attr(i))){var l=s.prop("href"),c=s.attr("href")||s.attr("xlink:href");y(l)&&"[object SVGAnimatedString]"===l.toString()&&(l=An(l.animVal).href),m.test(l)||!l||s.attr("target")||e.isDefaultPrevented()||u.$$parseLinkUrl(l,c)&&(e.preventDefault(),u.absUrl()!==r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}}),Ft(u.absUrl())!==Ft(f)&&r.url(u.absUrl(),!0);var g=!0;return r.onUrlChange(function(e,t){if(v(Bt(p,e)))return void(a.location.href=e);n.$evalAsync(function(){var r,i=u.absUrl(),o=u.$$state;e=Ft(e),u.$$parse(e),u.$$state=t,r=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,u.absUrl()===e&&(r?(u.$$parse(i),u.$$state=o,s(i,!1,o)):(g=!1,l(i,o)))}),n.$$phase||n.$digest()}),n.$watch(function(){var e=Ft(r.url()),t=Ft(u.absUrl()),o=r.state(),a=u.$$replace,c=e!==t||u.$$html5&&i.history&&o!==u.$$state;(g||c)&&(g=!1,n.$evalAsync(function(){var t=u.absUrl(),r=n.$broadcast("$locationChangeStart",t,e,u.$$state,o).defaultPrevented;u.absUrl()===t&&(r?(u.$$parse(e),u.$$state=o):(c&&s(t,a,o===u.$$state?null:u.$$state),l(e,o)))})),u.$$replace=!1}),u}]}function Xt(){var e=!0,t=this;this.debugEnabled=function(t){return _(t)?(e=t,this):e},this.$get=["$window",function(n){function i(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},o=t[e]||t.log||f,a=!1;try{a=!!o.apply}catch(e){}return a?function(){var e=[];return r(arguments,function(t){e.push(i(t))}),o.apply(t,e)}:function(e,t){o(e,null==t?"":t)}}return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:function(){var n=o("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function Kt(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw vo("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function Qt(e){return e+""}function en(e,t){if(e){if(e.constructor===e)throw vo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw vo("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw vo("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw vo("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function tn(e,t){if(e){if(e.constructor===e)throw vo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===Co||e===Eo||e===Ao)throw vo("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function nn(e,t){if(e&&(e===_o||e===yo||e===bo||e===wo||e===Lo||e===Mo||e===ko||e===xo||e===So||e===To||e===$o||e===Do))throw vo("isecaf","Assigning to a constructor or its prototype is disallowed! Expression: {0}",t)}function rn(e,t){return void 0!==e?e:t}function on(e,t){return void 0===e?t:void 0===t?e:e+t}function an(e,t){return!e(t).$stateful}function sn(e,t){var n,i,o;switch(e.type){case jo.Program:n=!0,r(e.body,function(e){sn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case jo.Literal:e.constant=!0,e.toWatch=[];break;case jo.UnaryExpression:sn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case jo.BinaryExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case jo.LogicalExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case jo.ConditionalExpression:sn(e.test,t),sn(e.alternate,t),sn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case jo.Identifier:e.constant=!1,e.toWatch=[e];break;case jo.MemberExpression:sn(e.object,t),e.computed&&sn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case jo.CallExpression:o=!!e.filter&&an(t,e.callee.name),n=o,i=[],r(e.arguments,function(e){sn(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)}),e.constant=n,e.toWatch=o?i:[e];break;case jo.AssignmentExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case jo.ArrayExpression:n=!0,i=[],r(e.elements,function(e){sn(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)}),e.constant=n,e.toWatch=i;break;case jo.ObjectExpression:n=!0,i=[],r(e.properties,function(e){sn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||i.push.apply(i,e.value.toWatch)}),e.constant=n,e.toWatch=i;break;case jo.ThisExpression:case jo.LocalsExpression:e.constant=!1,e.toWatch=[]}}function ln(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function un(e){return e.type===jo.Identifier||e.type===jo.MemberExpression}function cn(e){if(1===e.body.length&&un(e.body[0].expression))return{type:jo.AssignmentExpression,left:e.body[0].expression,right:{type:jo.NGValueParameter},operator:"="}}function dn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===jo.Literal||e.body[0].expression.type===jo.ArrayExpression||e.body[0].expression.type===jo.ObjectExpression)}function hn(e){return e.constant}function fn(e,t){this.astBuilder=e,this.$filter=t}function pn(e,t){this.astBuilder=e,this.$filter=t}function mn(e){return"constructor"===e}function gn(e){return k(e.valueOf)?e.valueOf():Po.call(e)}function vn(){var e,t,n=fe(),i=fe(),o={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){o[e]=t},this.setIdentifierFns=function(n,r){return e=n,t=r,this},this.$get=["$filter",function(a){function s(e,t,r){var o,s,u;switch(r=r||b,typeof e){case"string":e=e.trim(),u=e;var g=r?i:n;if(!(o=g[u])){":"===e.charAt(0)&&":"===e.charAt(1)&&(s=!0,e=e.substring(2));var _=r?y:v,w=new Io(_);o=new Ho(w,a,_).parse(e),o.constant?o.$$watchDelegate=p:s?o.$$watchDelegate=o.literal?h:d:o.inputs&&(o.$$watchDelegate=c),r&&(o=l(o)),g[u]=o}return m(o,t);case"function":return m(e,t);default:return m(f,t)}}function l(e){function t(t,n,r,i){var o=b;b=!0;try{return e(t,n,r,i)}finally{b=o}}if(!e)return e;t.$$watchDelegate=e.$$watchDelegate,t.assign=l(e.assign),t.constant=e.constant,t.literal=e.literal;for(var n=0;e.inputs&&n<e.inputs.length;++n)e.inputs[n]=l(e.inputs[n]);return t.inputs=e.inputs,t}function u(e,t){return null==e||null==t?e===t:("object"!=typeof e||"object"!=typeof(e=gn(e)))&&(e===t||e!==e&&t!==t)}function c(e,t,n,r,i){var o,a=r.inputs;if(1===a.length){var s=u;return a=a[0],e.$watch(function(e){var t=a(e);return u(t,s)||(o=r(e,void 0,void 0,[t]),s=t&&gn(t)),o},t,n,i)}for(var l=[],c=[],d=0,h=a.length;d<h;d++)l[d]=u,c[d]=null;return e.$watch(function(e){for(var t=!1,n=0,i=a.length;n<i;n++){var s=a[n](e);(t||(t=!u(s,l[n])))&&(c[n]=s,l[n]=s&&gn(s))}return t&&(o=r(e,void 0,void 0,c)),o},t,n,i)}function d(e,t,n,r){var i,o;return i=e.$watch(function(e){return r(e)},function(e,n,r){o=e,k(t)&&t.apply(this,arguments),_(e)&&r.$$postDigest(function(){_(o)&&i()})},n)}function h(e,t,n,i){function o(e){var t=!0;return r(e,function(e){_(e)||(t=!1)}),t}var a,s;return a=e.$watch(function(e){return i(e)},function(e,n,r){s=e,k(t)&&t.call(this,e,n,r),o(e)&&r.$$postDigest(function(){o(s)&&a()})},n)}function p(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function m(e,t){if(!t)return e;var n=e.$$watchDelegate,r=!1,i=n!==h&&n!==d,o=i?function(n,i,o,a){var s=r&&a?a[0]:e(n,i,o,a);return t(s,n,i)}:function(n,r,i,o){var a=e(n,r,i,o),s=t(a,n,r);return _(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==c?o.$$watchDelegate=e.$$watchDelegate:t.$stateful||(o.$$watchDelegate=c,r=!e.inputs,o.inputs=e.inputs?e.inputs:[e]),o}var g=ii().noUnsafeEval,v={csp:g,expensiveChecks:!1,literals:N(o),isIdentifierStart:k(e)&&e,isIdentifierContinue:k(t)&&t},y={csp:g,expensiveChecks:!0,literals:N(o),isIdentifierStart:k(e)&&e,isIdentifierContinue:k(t)&&t},b=!1;return s.$$runningExpensiveChecks=function(){return b},s}]}function _n(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return bn(function(t){e.$evalAsync(t)},t)}]}function yn(){this.$get=["$browser","$exceptionHandler",function(e,t){return bn(function(t){e.defer(t)},t)}]}function bn(e,n){function i(){var e=new c;return e.resolve=a(e,e.resolve),e.reject=a(e,e.reject),e.notify=a(e,e.notify),e}function o(){this.$$state={status:0}}function a(e,t){return function(n){t.call(e,n)}}function s(e){var t,r,i;i=e.pending,e.processScheduled=!1,e.pending=void 0;for(var o=0,a=i.length;o<a;++o){r=i[o][0],t=i[o][e.status];try{k(t)?r.resolve(t(e.value)):1===e.status?r.resolve(e.value):r.reject(e.value)}catch(e){r.reject(e),n(e)}}}function l(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){s(t)}))}function c(){this.promise=new o}function d(e){var t=new c;return t.reject(e),t.promise}function h(e,t,n){var r=null;try{k(n)&&(r=n())}catch(e){return d(e)}return A(r)?r.then(function(){return t(e)},d):t(e)}function f(e,t,n,r){var i=new c;return i.resolve(e),i.promise.then(t,n,r)}function p(e){var t=new c,n=0,i=ei(e)?[]:{};return r(e,function(e,r){n++,f(e).then(function(e){i[r]=e,--n||t.resolve(i)},function(e){t.reject(e)})}),0===n&&t.resolve(i),t.promise}function m(e){var t=i();return r(e,function(e){f(e).then(t.resolve,t.reject)}),t.promise}function g(e){function t(e){r.resolve(e)}function n(e){r.reject(e)}if(!k(e))throw _("norslvr","Expected resolverFn, got '{0}'",e);var r=new c;return e(t,n),r.promise}var _=t("$q",TypeError);u(o.prototype,{then:function(e,t,n){if(v(e)&&v(t)&&v(n))return this;var r=new c;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&l(this.$$state),r.promise},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then(function(t){return h(t,b,e)},function(t){return h(t,d,e)},t)}}),u(c.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(_("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){s||(s=!0,o.$$resolve(e))}function r(e){s||(s=!0,o.$$reject(e))}var i,o=this,s=!1;try{(y(e)||k(e))&&(i=e&&e.then),k(i)?(this.promise.$$state.status=-1,i.call(e,t,r,a(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,
-l(this.promise.$$state))}catch(e){r(e),n(e)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,l(this.promise.$$state)},notify:function(t){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&e(function(){for(var e,i,o=0,a=r.length;o<a;o++){i=r[o][0],e=r[o][3];try{i.notify(k(e)?e(t):t)}catch(e){n(e)}}})}});var b=f;return g.prototype=o.prototype,g.defer=i,g.reject=d,g.when=f,g.resolve=b,g.all=p,g.race=m,g}function wn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function Ln(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=a(),this.$$ChildScope=null}return t.prototype=e,t}var i=10,o=t("$rootScope"),s=null,l=null;this.digestTtl=function(e){return arguments.length&&(i=e),i},this.$get=["$exceptionHandler","$parse","$browser",function(t,u,c){function d(e){e.currentScope.$$destroyed=!0}function h(e){9===Rr&&(e.$$childHead&&h(e.$$childHead),e.$$nextSibling&&h(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function p(){this.$id=a(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function m(e){if(x.$$phase)throw o("inprog","{0} already in progress",x.$$phase);x.$$phase=e}function g(){x.$$phase=null}function _(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function b(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function w(){}function L(){for(;$.length;)try{$.shift()()}catch(e){t(e)}l=null}function M(){null===l&&(l=c.defer(function(){x.$apply(L)}))}p.prototype={constructor:p,$new:function(t,n){var r;return n=n||this,t?(r=new p,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(t||n!==this)&&r.$on("$destroy",d),r},$watch:function(e,t,n,r){var i=u(e);if(i.$$watchDelegate)return i.$$watchDelegate(this,t,n,i,e);var o=this,a=o.$$watchers,l={fn:t,last:w,get:i,exp:r||e,eq:!!n};return s=null,k(t)||(l.fn=f),a||(a=o.$$watchers=[],a.$$digestWatchIndex=-1),a.unshift(l),a.$$digestWatchIndex++,_(this,1),function(){var e=H(a,l);e>=0&&(_(o,-1),e<a.$$digestWatchIndex&&a.$$digestWatchIndex--),s=null}},$watchGroup:function(e,t){function n(){l=!1,u?(u=!1,t(o,o,s)):t(o,i,s)}var i=new Array(e.length),o=new Array(e.length),a=[],s=this,l=!1,u=!0;if(!e.length){var c=!0;return s.$evalAsync(function(){c&&t(o,o,s)}),function(){c=!1}}return 1===e.length?this.$watch(e[0],function(e,n,r){o[0]=e,i[0]=n,t(o,e===n?o:i,r)}):(r(e,function(e,t){var r=s.$watch(e,function(e,r){o[t]=e,i[t]=r,l||(l=!0,s.$evalAsync(n))});a.push(r)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(e,t){function r(e){o=e;var t,r,i,s;if(!v(o)){if(y(o))if(n(o)){a!==f&&(a=f,g=a.length=0,d++),t=o.length,g!==t&&(d++,a.length=g=t);for(var l=0;l<t;l++)s=a[l],i=o[l],s!==s&&i!==i||s===i||(d++,a[l]=i)}else{a!==p&&(a=p={},g=0,d++),t=0;for(r in o)Ir.call(o,r)&&(t++,i=o[r],s=a[r],r in a?s!==s&&i!==i||s===i||(d++,a[r]=i):(g++,a[r]=i,d++));if(g>t){d++;for(r in a)Ir.call(o,r)||(g--,delete a[r])}}else a!==o&&(a=o,d++);return d}}function i(){if(m?(m=!1,t(o,o,l)):t(o,s,l),c)if(y(o))if(n(o)){s=new Array(o.length);for(var e=0;e<o.length;e++)s[e]=o[e]}else{s={};for(var r in o)Ir.call(o,r)&&(s[r]=o[r])}else s=o}r.$stateful=!0;var o,a,s,l=this,c=t.length>1,d=0,h=u(e,r),f=[],p={},m=!0,g=0;return this.$watch(h,i)},$digest:function(){var e,n,r,a,u,d,h,f,p,v,_,y=i,b=this,M=[];m("$digest"),c.$$checkUrlChange(),this===x&&null!==l&&(c.defer.cancel(l),L()),s=null;do{h=!1,p=b;for(var $=0;$<S.length;$++){try{_=S[$],_.scope.$eval(_.expression,_.locals)}catch(e){t(e)}s=null}S.length=0;e:do{if(d=p.$$watchers)for(d.$$digestWatchIndex=d.length;d.$$digestWatchIndex--;)try{if(e=d[d.$$digestWatchIndex])if(u=e.get,(n=u(p))===(r=e.last)||(e.eq?B(n,r):Qr(n)&&Qr(r))){if(e===s){h=!1;break e}}else h=!0,s=e,e.last=e.eq?N(n,null):n,a=e.fn,a(n,r===w?n:r,p),y<5&&(v=4-y,M[v]||(M[v]=[]),M[v].push({msg:k(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:n,oldVal:r}))}catch(e){t(e)}if(!(f=p.$$watchersCount&&p.$$childHead||p!==b&&p.$$nextSibling))for(;p!==b&&!(f=p.$$nextSibling);)p=p.$parent}while(p=f);if((h||S.length)&&!y--)throw g(),o("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",i,M)}while(h||S.length);for(g();D<T.length;)try{T[D++]()}catch(e){t(e)}T.length=D=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===x&&c.$$applicationDestroyed(),_(this,-this.$$watchersCount);for(var t in this.$$listenerCount)b(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=f,this.$on=this.$watch=this.$watchGroup=function(){return f},this.$$listeners={},this.$$nextSibling=null,h(this)}},$eval:function(e,t){return u(e)(this,t)},$evalAsync:function(e,t){x.$$phase||S.length||c.defer(function(){S.length&&x.$digest()}),S.push({scope:this,expression:u(e),locals:t})},$$postDigest:function(e){T.push(e)},$apply:function(e){try{m("$apply");try{return this.$eval(e)}finally{g()}}catch(e){t(e)}finally{try{x.$digest()}catch(e){throw t(e),e}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&$.push(t),e=u(e),M()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do{r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++}while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);-1!==r&&(n[r]=null,b(i,1,e))}},$emit:function(e,n){var r,i,o,a=[],s=this,l=!1,u={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},c=R([u],arguments,1);do{for(r=s.$$listeners[e]||a,u.currentScope=s,i=0,o=r.length;i<o;i++)if(r[i])try{r[i].apply(null,c)}catch(e){t(e)}else r.splice(i,1),i--,o--;if(l)return u.currentScope=null,u;s=s.$parent}while(s);return u.currentScope=null,u},$broadcast:function(e,n){var r=this,i=r,o=r,a={name:e,targetScope:r,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!r.$$listenerCount[e])return a;for(var s,l,u,c=R([a],arguments,1);i=o;){for(a.currentScope=i,s=i.$$listeners[e]||[],l=0,u=s.length;l<u;l++)if(s[l])try{s[l].apply(null,c)}catch(e){t(e)}else s.splice(l,1),l--,u--;if(!(o=i.$$listenerCount[e]&&i.$$childHead||i!==r&&i.$$nextSibling))for(;i!==r&&!(o=i.$$nextSibling);)i=i.$parent}return a.currentScope=null,a}};var x=new p,S=x.$$asyncQueue=[],T=x.$$postDigestQueue=[],$=x.$$applyAsyncQueue=[],D=0;return x}]}function Mn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return _(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return _(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i,o=r?t:e;return i=An(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function kn(e){if("self"===e)return e;if(w(e)){if(e.indexOf("***")>-1)throw No("iwcard","Illegal sequence *** in string matcher.  String: {0}",e);return e=ri(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(x(e))return new RegExp("^"+e.source+"$");throw No("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function xn(e){var t=[];return _(e)&&r(e,function(e){t.push(kn(e))}),t}function Sn(){this.SCE_CONTEXTS=Bo;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=xn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=xn(e)),t},this.$get=["$injector",function(n){function r(e,t){return"self"===e?Pn(t):!!e.exec(t.href)}function i(n){var i,o,a=An(n.toString()),s=!1;for(i=0,o=e.length;i<o;i++)if(r(e[i],a)){s=!0;break}if(s)for(i=0,o=t.length;i<o;i++)if(r(t[i],a)){s=!1;break}return s}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function a(e,t){var n=d.hasOwnProperty(e)?d[e]:null;if(!n)throw No("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||v(t)||""===t)return t;if("string"!=typeof t)throw No("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function s(e){return e instanceof c?e.$$unwrapTrustedValue():e}function l(e,t){if(null===t||v(t)||""===t)return t;var n=d.hasOwnProperty(e)?d[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===Bo.RESOURCE_URL){if(i(t))return t;throw No("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",t.toString())}if(e===Bo.HTML)return u(t);throw No("unsafe","Attempting to use an unsafe value in a safe context.")}var u=function(e){throw No("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(u=n.get("$sanitize"));var c=o(),d={};return d[Bo.HTML]=o(c),d[Bo.CSS]=o(c),d[Bo.URL]=o(c),d[Bo.JS]=o(c),d[Bo.RESOURCE_URL]=o(d[Bo.URL]),{trustAs:a,getTrusted:l,valueOf:s}}]}function Tn(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&Rr<8)throw No("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var i=me(Bo);i.isEnabled=function(){return e},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,e||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=p),i.parseAs=function(e,n){var r=t(n);return r.literal&&r.constant?r:t(n,function(t){return i.getTrusted(e,t)})};var o=i.parseAs,a=i.getTrusted,s=i.trustAs;return r(Bo,function(e,t){var n=jr(t);i[ye("parse_as_"+n)]=function(t){return o(e,t)},i[ye("get_trusted_"+n)]=function(t){return a(e,t)},i[ye("trust_as_"+n)]=function(t){return s(e,t)}}),i}]}function $n(){this.$get=["$window","$document",function(e,t){var n,r,i={},o=e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id),a=!o&&e.history&&e.history.pushState,s=d((/android (\d+)/.exec(jr((e.navigator||{}).userAgent))||[])[1]),l=/Boxee/i.test((e.navigator||{}).userAgent),u=t[0]||{},c=/^(Moz|webkit|ms)(?=[A-Z])/,h=u.body&&u.body.style,f=!1,p=!1;if(h){for(var m in h)if(r=c.exec(m)){n=r[0],n=n[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in h&&"webkit"),f=!!("transition"in h||n+"Transition"in h),p=!!("animation"in h||n+"Animation"in h),!s||f&&p||(f=w(h.webkitTransition),p=w(h.webkitAnimation))}return{history:!(!a||s<4||l),hasEvent:function(e){if("input"===e&&Rr<=11)return!1;if(v(i[e])){var t=u.createElement("div");i[e]="on"+e in t}return i[e]},csp:ii(),vendorPrefix:n,transitions:f,animations:p,android:s}}]}function Dn(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,r,i){function o(a,s){function l(e){if(!s)throw Ro("tpload","Failed to load template: {0} (HTTP status: {1} {2})",a,e.status,e.statusText);return r.reject(e)}o.totalPendingRequests++,w(a)&&!v(t.get(a))||(a=i.getTrustedResourceUrl(a));var c=n.defaults&&n.defaults.transformResponse;return ei(c)?c=c.filter(function(e){return e!==kt}):c===kt&&(c=null),n.get(a,u({cache:t,transformResponse:c},e)).finally(function(){o.totalPendingRequests--}).then(function(e){return t.put(a,e.data),e.data},l)}return o.totalPendingRequests=0,o}]}function Cn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var i={};return i.findBindings=function(e,t,n){var i=e.getElementsByClassName("ng-binding"),o=[];return r(i,function(e){var i=Xr.element(e).data("$binding");i&&r(i,function(r){if(n){new RegExp("(^|\\s)"+ri(t)+"(\\s|\\||$)").test(r)&&o.push(e)}else-1!==r.indexOf(t)&&o.push(e)})}),o},i.findModels=function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+t+'"]',s=e.querySelectorAll(a);if(s.length)return s}},i.getLocation=function(){return n.url()},i.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},i.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},i}]}function En(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,r,i){function o(o,s,l){k(o)||(l=s,s=o,o=f);var u,c=F(arguments,3),d=_(l)&&!l,h=(d?r:n).defer(),p=h.promise;return u=t.defer(function(){try{h.resolve(o.apply(null,c))}catch(e){h.reject(e),i(e)}finally{delete a[p.$$timeoutId]}d||e.$apply()},s),p.$$timeoutId=u,a[u]=h,p}var a={};return o.cancel=function(e){return!!(e&&e.$$timeoutId in a)&&(a[e.$$timeoutId].reject("canceled"),delete a[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},o}]}function An(e){var t=e;return Rr&&(Fo.setAttribute("href",t),t=Fo.href),Fo.setAttribute("href",t),{href:Fo.href,protocol:Fo.protocol?Fo.protocol.replace(/:$/,""):"",host:Fo.host,search:Fo.search?Fo.search.replace(/^\?/,""):"",hash:Fo.hash?Fo.hash.replace(/^#/,""):"",hostname:Fo.hostname,port:Fo.port,pathname:"/"===Fo.pathname.charAt(0)?Fo.pathname:"/"+Fo.pathname}}function Pn(e){var t=w(e)?An(e):e;return t.protocol===zo.protocol&&t.host===zo.host}function Yn(){this.$get=m(e)}function On(e){function t(e){try{return e.cookie||""}catch(e){return""}}function n(e){try{return decodeURIComponent(e)}catch(t){return e}}var r=e[0]||{},i={},o="";return function(){var e,a,s,l,u,c=t(r);if(c!==o)for(o=c,e=o.split("; "),i={},s=0;s<e.length;s++)a=e[s],(l=a.indexOf("="))>0&&(u=n(a.substring(0,l)),v(i[u])&&(i[u]=n(a.substring(l+1))));return i}}function In(){this.$get=On}function jn(e){function t(i,o){if(y(i)){var a={};return r(i,function(e,n){a[n]=t(n,e)}),a}return e.factory(i+n,o)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Fn),t("date",rr),t("filter",Hn),t("json",ir),t("limitTo",or),t("lowercase",Jo),t("number",zn),t("orderBy",sr),t("uppercase",Xo)}function Hn(){return function(e,r,i,o){if(!n(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}o=o||"$";var a,s,l=Rn(r);switch(l){case"function":a=r;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":a=Nn(r,i,o,s);break;default:return e}return Array.prototype.filter.call(e,a)}}function Nn(e,t,n,r){var i=y(e)&&n in e;return!0===t?t=B:k(t)||(t=function(e,t){return!v(e)&&(null===e||null===t?e===t:!(y(t)||y(e)&&!g(e))&&(e=jr(""+e),t=jr(""+t),-1!==e.indexOf(t)))}),function(o){return i&&!y(o)?Bn(o,e[n],t,n,!1):Bn(o,e,t,n,r)}}function Bn(e,t,n,r,i,o){var a=Rn(e),s=Rn(t);if("string"===s&&"!"===t.charAt(0))return!Bn(e,t.substring(1),n,r,i);if(ei(e))return e.some(function(e){return Bn(e,t,n,r,i)});switch(a){case"object":var l;if(i){for(l in e)if("$"!==l.charAt(0)&&Bn(e[l],t,n,r,!0))return!0;return!o&&Bn(e,t,n,r,!1)}if("object"===s){for(l in t){var u=t[l];if(!k(u)&&!v(u)){var c=l===r;if(!Bn(c?e:e[l],u,n,r,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Rn(e){return null===e?"null":typeof e}function Fn(e){var t=e.NUMBER_FORMATS;return function(e,n,r){return v(n)&&(n=t.CURRENCY_SYM),v(r)&&(r=t.PATTERNS[1].maxFrac),null==e?e:Wn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function zn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Wn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Vn(e){var t,n,r,i,o,a=0;for((n=e.indexOf(Uo))>-1&&(e=e.replace(Uo,"")),(r=e.search(/e/i))>0?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charAt(r)===Wo;r++);if(r===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===Wo;)o--;for(n-=r,t=[],i=0;r<=o;r++,i++)t[i]=+e.charAt(r)}return n>Vo&&(t=t.splice(0,Vo-1),a=n-1,n=1),{d:t,e:a,i:n}}function Un(e,t,n,r){var i=e.d,o=i.length-e.i;t=v(t)?Math.min(Math.max(n,o),r):+t;var a=t+e.i,s=i[a];if(a>0){i.splice(Math.max(e.i,a));for(var l=a;l<i.length;l++)i[l]=0}else{o=Math.max(0,o),e.i=1,i.length=Math.max(1,a=t+1),i[0]=0;for(var u=1;u<a;u++)i[u]=0}if(s>=5)if(a-1<0){for(var c=0;c>a;c--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[a-1]++;for(;o<Math.max(0,t);o++)i.push(0);var d=i.reduceRight(function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)},0);d&&(i.unshift(d),e.i++)}function Wn(e,t,n,r,i){if(!w(e)&&!L(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",u="";if(a)u="∞";else{o=Vn(l),Un(o,i,t.minFrac,t.maxFrac);var c=o.d,d=o.i,h=o.e,f=[];for(s=c.reduce(function(e,t){return e&&!t},!0);d<0;)c.unshift(0),d++;d>0?f=c.splice(d,c.length):(f=c,c=[0]);var p=[];for(c.length>=t.lgSize&&p.unshift(c.splice(-t.lgSize,c.length).join(""));c.length>t.gSize;)p.unshift(c.splice(-t.gSize,c.length).join(""));c.length&&p.unshift(c.join("")),u=p.join(n),f.length&&(u+=r+f.join("")),h&&(u+="e+"+h)}return e<0&&!s?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf}function qn(e,t,n,r){var i="";for((e<0||r&&e<=0)&&(r?e=1-e:(e=-e,i="-")),e=""+e;e.length<t;)e=Wo+e;return n&&(e=e.substr(e.length-t)),i+e}function Gn(e,t,n,r,i){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),qn(a,t,r,i)}}function Zn(e,t,n){return function(r,i){var o=r["get"+e]();return i[Hr((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function Jn(e,t,n){var r=-1*n,i=r>=0?"+":"";return i+=qn(Math[r>0?"floor":"ceil"](r/60),2)+qn(Math.abs(r%60),2)}function Xn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Kn(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Qn(e){return function(t){var n=Xn(t.getFullYear()),r=Kn(t),i=+r-+n;return qn(1+Math.round(i/6048e5),e)}}function er(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function tr(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function nr(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function rr(e){function t(e){var t;if(t=e.match(n)){var r=new Date(0),i=0,o=0,a=t[8]?r.setUTCFullYear:r.setFullYear,s=t[8]?r.setUTCHours:r.setHours;t[9]&&(i=d(t[9]+t[10]),o=d(t[9]+t[11])),a.call(r,d(t[1]),d(t[2])-1,d(t[3]));var l=d(t[4]||0)-i,u=d(t[5]||0)-o,c=d(t[6]||0),h=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(r,l,u,c,h),r}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,o){var a,s,l="",u=[];if(i=i||"mediumDate",i=e.DATETIME_FORMATS[i]||i,w(n)&&(n=Zo.test(n)?d(n):t(n)),L(n)&&(n=new Date(n)),!M(n)||!isFinite(n.getTime()))return n;for(;i;)s=Go.exec(i),s?(u=R(u,s,1),i=u.pop()):(u.push(i),i=null);var c=n.getTimezoneOffset();return o&&(c=q(o,c),n=Z(n,o,!0)),r(u,function(t){a=qo[t],l+=a?a(n,e.DATETIME_FORMATS,c):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function ir(){return function(e,t){return v(t)&&(t=2),U(e,t)}}function or(){return function(e,t,r){return t=Math.abs(Number(t))===1/0?Number(t):d(t),Qr(t)?e:(L(e)&&(e=e.toString()),n(e)?(r=!r||isNaN(r)?0:d(r),r=r<0?Math.max(0,e.length+r):r,t>=0?ar(e,r,r+t):0===r?ar(e,t,e.length):ar(e,Math.max(0,r+t),r)):e)}}function ar(e,t,n){return w(e)?e.slice(t,n):Ur.call(e,t,n)}function sr(e){function r(t){return t.map(function(t){var n=1,r=p;if(k(t))r=t;else if(w(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(r=e(t),r.constant))){var i=r();r=function(e){return e[i]}}return{get:r,descending:n}})}function i(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function o(e){return k(e.valueOf)&&(e=e.valueOf(),i(e))?e:(g(e)&&(e=e.toString(),i(e)),e)}function a(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=o(e)),{value:e,type:n,index:t}}function s(e,t){var n=0,r=e.type,i=t.type;if(r===i){var o=e.value,a=t.value;"string"===r?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===r&&(y(o)&&(o=e.index),y(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n=r<i?-1:1;return n}return function(e,i,o,l){function u(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:d.map(function(n){return a(n.get(e),t)})}}function c(e,t){for(var n=0,r=d.length;n<r;n++){var i=f(e.predicateValues[n],t.predicateValues[n]);if(i)return i*d[n].descending*h}return f(e.tieBreaker,t.tieBreaker)*h}if(null==e)return e;if(!n(e))throw t("orderBy")("notarray","Expected array but received: {0}",e);ei(i)||(i=[i]),0===i.length&&(i=["+"]);var d=r(i),h=o?-1:1,f=k(l)?l:s,p=Array.prototype.map.call(e,u);return p.sort(c),e=p.map(function(e){return e.value})}}function lr(e){return k(e)&&(e={link:e}),e.restrict=e.restrict||"AC",m(e)}function ur(e,t){e.$name=t}function cr(e,t,n,i,o){var a=this,s=[];a.$error={},a.$$success={},a.$pending=void 0,a.$name=o(t.name||t.ngForm||"")(n),a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,a.$submitted=!1,a.$$parentForm=ea,a.$rollbackViewValue=function(){r(s,function(e){e.$rollbackViewValue()})},a.$commitViewValue=function(){r(s,function(e){e.$commitViewValue()})},a.$addControl=function(e){ce(e.$name,"input"),s.push(e),e.$name&&(a[e.$name]=e),e.$$parentForm=a},a.$$renameControl=function(e,t){var n=e.$name;a[n]===e&&delete a[n],a[t]=e,e.$name=t},a.$removeControl=function(e){e.$name&&a[e.$name]===e&&delete a[e.$name],r(a.$pending,function(t,n){a.$setValidity(n,null,e)}),r(a.$error,function(t,n){a.$setValidity(n,null,e)}),r(a.$$success,function(t,n){a.$setValidity(n,null,e)}),H(s,e),e.$$parentForm=ea},Er({ctrl:this,$element:e,set:function(e,t,n){var r=e[t];if(r){-1===r.indexOf(n)&&r.push(n)}else e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(H(r,n),0===r.length&&delete e[t])},$animate:i}),a.$setDirty=function(){i.removeClass(e,Ha),i.addClass(e,Na),a.$dirty=!0,a.$pristine=!1,a.$$parentForm.$setDirty()},a.$setPristine=function(){i.setClass(e,Ha,Na+" "+ta),a.$dirty=!1,a.$pristine=!0,a.$submitted=!1,r(s,function(e){e.$setPristine()})},a.$setUntouched=function(){r(s,function(e){e.$setUntouched()})},a.$setSubmitted=function(){i.addClass(e,ta),a.$submitted=!0,a.$$parentForm.$setSubmitted()}}function dr(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function hr(e,t,n,r,i,o){fr(e,t,n,r,i,o),dr(r)}function fr(e,t,n,r,i,o){var a=jr(t[0].type);if(!i.android){var s=!1;t.on("compositionstart",function(){s=!0}),t.on("compositionend",function(){s=!1,u()})}var l,u=function(e){if(l&&(o.defer.cancel(l),l=null),!s){var i=t.val(),u=e&&e.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=ni(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))t.on("input",u);else{var c=function(e,t,n){l||(l=o.defer(function(){l=null,t&&t.value===n||u(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||c(e,this,this.value)}),i.hasEvent("paste")&&t.on("paste cut",c)}t.on("change",u),ma[a]&&r.$$hasNativeValidators&&a===n.type&&t.on(pa,function(e){if(!l){var t=this[Or],n=t.badInput,r=t.typeMismatch;l=o.defer(function(){l=null,t.badInput===n&&t.typeMismatch===r||u(e)})}}),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function pr(e,t){if(M(e))return e;if(w(e)){da.lastIndex=0;var n=da.exec(e);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,l=0,u=Xn(r),c=7*(i-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(r,0,u.getDate()+c,o,a,s,l)}}return NaN}function mr(e,t){return function(n,i){var o,a;if(M(n))return n;if(w(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),oa.test(n))return new Date(n);if(e.lastIndex=0,o=e.exec(n))return o.shift(),a=i?{yyyy:i.getFullYear(),MM:i.getMonth()+1,dd:i.getDate(),HH:i.getHours(),mm:i.getMinutes(),ss:i.getSeconds(),sss:i.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(o,function(e,n){n<t.length&&(a[t[n]]=+e)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function gr(e,t,n,r){return function(i,o,a,s,l,u,c){function d(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function h(e){return _(e)&&!M(e)?n(e)||void 0:e}vr(i,o,a,s),fr(i,o,a,s,l,u);var f,p=s&&s.$options&&s.$options.timezone;if(s.$$parserName=e,s.$parsers.push(function(e){if(s.$isEmpty(e))return null;if(t.test(e)){var r=n(e,f);return p&&(r=Z(r,p)),r}}),s.$formatters.push(function(e){if(e&&!M(e))throw Ra("datefmt","Expected `{0}` to be a date",e);return d(e)?(f=e,f&&p&&(f=Z(f,p,!0)),c("date")(e,r,p)):(f=null,"")}),_(a.min)||a.ngMin){var m;s.$validators.min=function(e){return!d(e)||v(m)||n(e)>=m},a.$observe("min",function(e){m=h(e),s.$validate()})}if(_(a.max)||a.ngMax){var g;s.$validators.max=function(e){return!d(e)||v(g)||n(e)<=g},a.$observe("max",function(e){g=h(e),s.$validate()})}}}function vr(e,t,n,r){var i=t[0];(r.$$hasNativeValidators=y(i.validity))&&r.$parsers.push(function(e){var n=t.prop(Or)||{};return n.badInput||n.typeMismatch?void 0:e})}function _r(e){e.$$parserName="number",e.$parsers.push(function(t){return e.$isEmpty(t)?null:la.test(t)?parseFloat(t):void 0}),e.$formatters.push(function(t){if(!e.$isEmpty(t)){if(!L(t))throw Ra("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t})}function yr(e){return _(e)&&!L(e)&&(e=parseFloat(e)),Qr(e)?void 0:e}function br(e){return(0|e)===e}function wr(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var r=/e-(\d+)$/.exec(t);if(r)return Number(r[1])}return 0}return t.length-n-1}function Lr(e,t,n){var r=Number(e);if(!br(r)||!br(t)||!br(n)){var i=Math.max(wr(r),wr(t),wr(n)),o=Math.pow(10,i);r*=o,t*=o,n*=o}return(r-t)%n==0}function Mr(e,t,n,r,i,o){vr(e,t,n,r),fr(e,t,n,r,i,o),_r(r);var a,s;(_(n.min)||n.ngMin)&&(r.$validators.min=function(e){return r.$isEmpty(e)||v(a)||e>=a},n.$observe("min",function(e){a=yr(e),r.$validate()})),(_(n.max)||n.ngMax)&&(r.$validators.max=function(e){return r.$isEmpty(e)||v(s)||e<=s},n.$observe("max",function(e){s=yr(e),r.$validate()}))}function kr(e,t,n,r,i,o){function a(e,r){t.attr(e,n[e]),n.$observe(e,r)}function s(e){if(d=yr(e),!Qr(r.$modelValue))if(c){var n=t.val();d>n&&(n=d,t.val(n)),r.$setViewValue(n)}else r.$validate()}function l(e){if(h=yr(e),!Qr(r.$modelValue))if(c){var n=t.val();h<n&&(t.val(h),n=h<d?d:h),r.$setViewValue(n)}else r.$validate()}function u(e){f=yr(e),Qr(r.$modelValue)||(c&&r.$viewValue!==t.val()?r.$setViewValue(t.val()):r.$validate())}vr(e,t,n,r),_r(r),fr(e,t,n,r,i,o);var c=r.$$hasNativeValidators&&"range"===t[0].type,d=c?0:void 0,h=c?100:void 0,f=c?1:void 0,p=t[0].validity,m=_(n.min),g=_(n.max),y=_(n.step),b=r.$render;r.$render=c&&_(p.rangeUnderflow)&&_(p.rangeOverflow)?function(){b(),r.$setViewValue(t.val())}:b,m&&(r.$validators.min=c?function(){return!0}:function(e,t){return r.$isEmpty(t)||v(d)||t>=d},a("min",s)),g&&(r.$validators.max=c?function(){return!0}:function(e,t){return r.$isEmpty(t)||v(h)||t<=h},a("max",l)),y&&(r.$validators.step=c?function(){return!p.stepMismatch}:function(e,t){return r.$isEmpty(t)||v(f)||Lr(t,d||0,f)},a("step",u))}function xr(e,t,n,r,i,o){fr(e,t,n,r,i,o),dr(r),r.$$parserName="url",r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||aa.test(n)}}function Sr(e,t,n,r,i,o){fr(e,t,n,r,i,o),dr(r),r.$$parserName="email",r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||sa.test(n)}}function Tr(e,t,n,r){v(n.name)&&t.attr("name",a());var i=function(e){t[0].checked&&r.$setViewValue(n.value,e&&e.type)};t.on("click",i),r.$render=function(){var e=n.value;t[0].checked=e==r.$viewValue},n.$observe("value",r.$render)}function $r(e,t,n,r,i){var o;if(_(r)){if(o=e(r),!o.constant)throw Ra("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(t)}return i}function Dr(e,t,n,r,i,o,a,s){var l=$r(s,e,"ngTrueValue",n.ngTrueValue,!0),u=$r(s,e,"ngFalseValue",n.ngFalseValue,!1),c=function(e){r.$setViewValue(t[0].checked,e&&e.type)};t.on("click",c),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return!1===e},r.$formatters.push(function(e){return B(e,l)}),r.$parsers.push(function(e){return e?l:u})}function Cr(e,t){return e="ngClass"+e,["$animate",function(n){function i(e,t){var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i===t[o])continue e;n.push(i)}return n}function o(e){var t=[];return ei(e)?(r(e,function(e){t=t.concat(o(e))}),t):w(e)?e.split(" "):y(e)?(r(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(a,s,l){function u(e){var t=d(e,1);l.$addClass(t)}function c(e){var t=d(e,-1);l.$removeClass(t)}function d(e,t){var n=s.data("$classCounts")||fe(),i=[];return r(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&i.push(e))}),s.data("$classCounts",n),i.join(" ")}function h(e,t){var r=i(t,e),o=i(e,t);r=d(r,1),o=d(o,-1),r&&r.length&&n.addClass(s,r),o&&o.length&&n.removeClass(s,o)}function f(e){if(!0===t||(1&a.$index)===t){var n=o(e||[]);if(p){if(!B(e,p)){var r=o(p);h(r,n)}}else u(n)}p=ei(e)?e.map(function(e){return me(e)}):me(e)}var p;l.$observe("class",function(t){f(a.$eval(l[e]))}),"ngClass"!==e&&a.$watch("$index",function(e,n){var r=1&e;if(r!==(1&n)){var i=o(p);r===t?u(i):c(i)}}),a.$watch(l[e],f,!0)}}}]}function Er(e){function t(e,t,s){v(t)?n("$pending",e,s):r("$pending",e,s),E(t)?t?(c(a.$error,e,s),u(a.$$success,e,s)):(u(a.$error,e,s),c(a.$$success,e,s)):(c(a.$error,e,s),c(a.$$success,e,s)),a.$pending?(i(Ba,!0),a.$valid=a.$invalid=void 0,o("",null)):(i(Ba,!1),a.$valid=Ar(a.$error),a.$invalid=!a.$valid,o("",a.$valid));var l;l=a.$pending&&a.$pending[e]?void 0:!a.$error[e]&&(!!a.$$success[e]||null),o(e,l),a.$$parentForm.$setValidity(e,l,a)}function n(e,t,n){a[e]||(a[e]={}),u(a[e],t,n)}function r(e,t,n){a[e]&&c(a[e],t,n),Ar(a[e])&&(a[e]=void 0)}function i(e,t){t&&!l[e]?(d.addClass(s,e),l[e]=!0):!t&&l[e]&&(d.removeClass(s,e),l[e]=!1)}function o(e,t){e=e?"-"+se(e,"-"):"",i(Ia+e,!0===t),i(ja+e,!1===t)}var a=e.ctrl,s=e.$element,l={},u=e.set,c=e.unset,d=e.$animate;l[ja]=!(l[Ia]=s.hasClass(Ia)),a.$setValidity=t}function Ar(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function Pr(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}var Yr=/^\/(.+)\/([a-z]*)$/,Or="validity",Ir=Object.prototype.hasOwnProperty,jr=function(e){return w(e)?e.toLowerCase():e},Hr=function(e){return w(e)?e.toUpperCase():e},Nr=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Br=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(jr=Nr,Hr=Br);var Rr,Fr,zr,Vr,Ur=[].slice,Wr=[].splice,qr=[].push,Gr=Object.prototype.toString,Zr=Object.getPrototypeOf,Jr=t("ng"),Xr=e.angular||(e.angular={}),Kr=0;Rr=e.document.documentMode;var Qr=Number.isNaN||function(e){return e!==e};f.$inject=[],p.$inject=[];var ei=Array.isArray,ti=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,ni=function(e){return w(e)?e.trim():e},ri=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")
-},ii=function(){if(!_(ii.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");ii.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else ii.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return ii.rules},oi=function(){if(_(oi.name_))return oi.name_;var t,n,r,i,o=si.length;for(n=0;n<o;++n)if(r=si[n],t=e.document.querySelector("["+r.replace(":","\\:")+"jq]")){i=t.getAttribute(r+"jq");break}return oi.name_=i},ai=/:/g,si=["ng-","data-ng-","ng:","x-ng-"],li=function(e){var t=e.currentScript,n=t&&t.getAttribute("src");if(!n)return!0;var r=e.createElement("a");if(r.href=n,e.location.origin===r.origin)return!0;switch(r.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(e.document),ui=/[A-Z]/g,ci=!1,di=1,hi=3,fi=8,pi=9,mi=11,gi={full:"1.5.11",major:1,minor:5,dot:11,codeName:"princely-quest"};Te.expando="ng339";var vi=Te.cache={},_i=1,yi=function(e,t,n){e.addEventListener(t,n,!1)},bi=function(e,t,n){e.removeEventListener(t,n,!1)};Te._data=function(e){return this.cache[e[this.expando]]||{}};var wi=/([:\-_]+(.))/g,Li=/^moz([A-Z])/,Mi={mouseleave:"mouseout",mouseenter:"mouseover"},ki=t("jqLite"),xi=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Si=/<|&#?\w+;/,Ti=/<([\w:-]+)/,$i=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Di={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Di.optgroup=Di.option,Di.tbody=Di.tfoot=Di.colgroup=Di.caption=Di.thead,Di.th=Di.td;var Ci=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Ei=Te.prototype={ready:function(t){function n(){r||(r=!0,t())}var r=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),Te(e).on("load",n))},toString:function(){var e=[];return r(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Fr(e>=0?this[e]:this[this.length+e])},length:0,push:qr,sort:[].sort,splice:[].splice},Ai={};r("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){Ai[jr(e)]=e});var Pi={};r("input,select,option,textarea,button,form,details".split(","),function(e){Pi[e]=!0});var Yi={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};r({data:Pe,removeData:Ee,hasData:Le,cleanData:Me},function(e,t){Te[t]=e}),r({data:Pe,inheritedData:Ne,scope:function(e){return Fr.data(e,"$scope")||Ne(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Fr.data(e,"$isolateScope")||Fr.data(e,"$isolateScopeNoTemplate")},controller:He,injector:function(e){return Ne(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Ye,css:function(e,t,n){if(t=ye(t),!_(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var r=e.nodeType;if(r!==hi&&2!==r&&r!==fi){var i=jr(t);if(Ai[i]){if(!_(n))return e[t]||(e.attributes.getNamedItem(t)||f).specified?i:void 0;n?(e[t]=!0,e.setAttribute(t,i)):(e[t]=!1,e.removeAttribute(i))}else if(_(n))e.setAttribute(t,n);else if(e.getAttribute){var o=e.getAttribute(t,2);return null===o?void 0:o}}},prop:function(e,t,n){if(!_(n))return e[t];e[t]=n},text:function(){function e(e,t){if(v(t)){var n=e.nodeType;return n===di||n===hi?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(v(t)){if(e.multiple&&"select"===j(e)){var n=[];return r(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(v(t))return e.innerHTML;De(e,!0),e.innerHTML=t},empty:Be},function(e,t){Te.prototype[t]=function(t,n){var r,i,o=this.length;if(e!==Be&&v(2===e.length&&e!==Ye&&e!==He?t:n)){if(y(t)){for(r=0;r<o;r++)if(e===Pe)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var a=e.$dv,s=v(a)?Math.min(o,1):o,l=0;l<s;l++){var u=e(this[l],t,n);a=a?a+u:u}return a}for(r=0;r<o;r++)e(this[r],t,n);return this}}),r({removeData:Ee,on:function(e,t,n,r){if(_(r))throw ki("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(we(e)){var i=Ae(e,!0),o=i.events,a=i.handle;a||(a=i.handle=Ue(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,u=function(t,r,i){var s=o[t];s||(s=o[t]=[],s.specialHandlerWrapper=r,"$destroy"===t||i||yi(e,t,a)),s.push(n)};l--;)t=s[l],Mi[t]?(u(Mi[t],qe),u(t,void 0,!0)):u(t)}},off:Ce,one:function(e,t,n){e=Fr(e),e.on(t,function r(){e.off(t,n),e.off(t,r)}),e.on(t,n)},replaceWith:function(e,t){var n,i=e.parentNode;De(e),r(new Te(t),function(t){n?i.insertBefore(t,n.nextSibling):i.replaceChild(t,e),n=t})},children:function(e){var t=[];return r(e.childNodes,function(e){e.nodeType===di&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===di||n===mi){t=new Te(t);for(var r=0,i=t.length;r<i;r++){var o=t[r];e.appendChild(o)}}},prepend:function(e,t){if(e.nodeType===di){var n=e.firstChild;r(new Te(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){Se(e,Fr(t).eq(0).clone()[0])},remove:Re,detach:function(e){Re(e,!0)},after:function(e,t){var n=e,r=e.parentNode;if(r){t=new Te(t);for(var i=0,o=t.length;i<o;i++){var a=t[i];r.insertBefore(a,n.nextSibling),n=a}}},addClass:Ie,removeClass:Oe,toggleClass:function(e,t,n){t&&r(t.split(" "),function(t){var r=n;v(r)&&(r=!Ye(e,t)),(r?Ie:Oe)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==mi?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:$e,triggerHandler:function(e,t,n){var i,o,a,s=t.type||t,l=Ae(e),c=l&&l.events,d=c&&c[s];d&&(i={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:f,type:s,target:e},t.type&&(i=u(i,t)),o=me(d),a=n?[i].concat(n):[i],r(o,function(t){i.isImmediatePropagationStopped()||t.apply(e,a)}))}},function(e,t){Te.prototype[t]=function(t,n,r){for(var i,o=0,a=this.length;o<a;o++)v(i)?(i=e(this[o],t,n,r),_(i)&&(i=Fr(i))):je(i,e(this[o],t,n,r));return _(i)?i:this}}),Te.prototype.bind=Te.prototype.on,Te.prototype.unbind=Te.prototype.off,Je.prototype={put:function(e,t){this[Ze(e,this.nextUid)]=t},get:function(e){return this[Ze(e,this.nextUid)]},remove:function(e){var t=this[e=Ze(e,this.nextUid)];return delete this[e],t}};var Oi=[function(){this.$get=[function(){return Je}]}],Ii=/^([^(]+?)=>/,ji=/^[^(]*\(\s*([^)]*)\)/m,Hi=/,/,Ni=/^\s*(_?)(\S+?)\1\s*$/,Bi=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ri=t("$injector");tt.$$annotate=et;var Fi=t("$animate"),zi=1,Vi=function(){this.$get=f},Ui=function(){var e=new Je,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){function o(e,t,n){var i=!1;return t&&(t=w(t)?t.split(" "):ei(t)?t:[],r(t,function(t){t&&(i=!0,e[t]=n)})),i}function a(){r(t,function(t){var n=e.get(t);if(n){var i=ot(t.attr("class")),o="",a="";r(n,function(e,t){e!==!!i[t]&&(e?o+=(o.length?" ":"")+t:a+=(a.length?" ":"")+t)}),r(t,function(e){o&&Ie(e,o),a&&Oe(e,a)}),e.remove(t)}}),t.length=0}function s(n,r,s){var l=e.get(n)||{},u=o(l,r,!0),c=o(l,s,!1);(u||c)&&(e.put(n,l),t.push(n),1===t.length&&i.$$postDigest(a))}return{enabled:f,on:f,off:f,pin:f,push:function(e,t,r,i){i&&i(),r=r||{},r.from&&e.css(r.from),r.to&&e.css(r.to),(r.addClass||r.removeClass)&&s(e,r.addClass,r.removeClass);var o=new n;return o.complete(),o}}}]},Wi=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw Fi("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){if(new RegExp("(\\s+|\\/)ng-animate(\\s+|\\/)").test(this.$$classNameFilter.toString()))throw Fi("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate")}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var r=it(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,r,i,o){return r=r&&Fr(r),i=i&&Fr(i),r=r||i.parent(),t(n,r,i),e.push(n,"enter",at(o))},move:function(n,r,i,o){return r=r&&Fr(r),i=i&&Fr(i),r=r||i.parent(),t(n,r,i),e.push(n,"move",at(o))},leave:function(t,n){return e.push(t,"leave",at(n),function(){t.remove()})},addClass:function(t,n,r){return r=at(r),r.addClass=rt(r.addclass,n),e.push(t,"addClass",r)},removeClass:function(t,n,r){return r=at(r),r.removeClass=rt(r.removeClass,n),e.push(t,"removeClass",r)},setClass:function(t,n,r,i){return i=at(i),i.addClass=rt(i.addClass,n),i.removeClass=rt(i.removeClass,r),e.push(t,"setClass",i)},animate:function(t,n,r,i,o){return o=at(o),o.from=o.from?u(o.from,n):n,o.to=o.to?u(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=rt(o.tempClasses,i),e.push(t,"animate",o)}}}]}],qi=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e<n.length;e++)n[e]();n=[]})}var n=[];return function(){var e=!1;return t(function(){e=!0}),function(n){e?n():t(n)}}}]},Gi=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,i,o){function a(e){this.setHost(e);var t=n(),r=function(e){o(e,0,!1)};this._doneCallbacks=[],this._tick=function(e){var n=i[0];n&&n.hidden?r(e):t(e)},this._state=0}return a.chain=function(e,t){function n(){if(r===e.length)return void t(!0);e[r](function(e){if(!1===e)return void t(!1);r++,n()})}var r=0;n()},a.all=function(e,t){function n(n){o=o&&n,++i===e.length&&t(o)}var i=0,o=!0;r(e,function(e){e.done(n)})},a.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:f,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){!1===t?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick(function(){t._resolve(e)}))},_resolve:function(e){2!==this._state&&(r(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=2)}},a}]},Zi=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,r){function i(){return e(function(){o(),s||l.complete(),s=!0}),l}function o(){a.addClass&&(t.addClass(a.addClass),a.addClass=null),a.removeClass&&(t.removeClass(a.removeClass),a.removeClass=null),a.to&&(t.css(a.to),a.to=null)}var a=r||{};a.$$prepared||(a=N(a)),a.cleanupStyles&&(a.from=a.to=null),a.from&&(t.css(a.from),a.from=null);var s,l=new n;return{start:i,end:i}}}]},Ji=t("$compile"),Xi=new dt;ht.$inject=["$provide","$$sanitizeUriProvider"],ft.prototype.isFirstChange=function(){return this.previousValue===Xi};var Ki=/^((?:x|data)[:\-_])/i,Qi=t("$controller"),eo=/^(\S+)(\s+as\s+([\w$]+))?$/,to=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof Fr&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},no="application/json",ro={"Content-Type":no+";charset=utf-8"},io=/^\[|^\{(?!\{)/,oo={"[":/]$/,"{":/}$/},ao=/^\)]\}',?\n/,so=t("$http"),lo=function(e){return function(){throw so("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},uo=Xr.$interpolateMinErr=t("$interpolate");uo.throwNoconcat=function(e){throw uo("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",e)},uo.interr=function(e,t){return uo("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var co=function(){this.$get=["$window",function(e){function t(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}var n=e.angular.callbacks,r={};return{createCallback:function(e){var i="_"+(n.$$counter++).toString(36),o="angular.callbacks."+i,a=t(i);return r[o]=n[i]=a,o},wasCalled:function(e){return r[e].called},getResponse:function(e){return r[e].data},removeCallback:function(e){var t=r[e];delete n[t.id],delete r[e]}}}]},ho=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,fo={http:80,https:443,ftp:21},po=t("$location"),mo=/^\s*[\\\/]{2,}/,go={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:Gt("$$absUrl"),url:function(e){if(v(e))return this.$$url;var t=ho.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Gt("$$protocol"),host:Gt("$$host"),port:Gt("$$port"),path:Zt("$$path",function(e){return e=null!==e?e.toString():"","/"===e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(w(e)||L(e))e=e.toString(),this.$$search=K(e);else{if(!y(e))throw po("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");e=N(e,{}),r(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:v(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:Zt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};r([qt,Wt,Ut],function(e){e.prototype=Object.create(go),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Ut||!this.$$html5)throw po("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=v(t)?null:t,this}});var vo=t("$parse"),_o=[].constructor,yo=(!1).constructor,bo=Function.constructor,wo=(0).constructor,Lo={}.constructor,Mo="".constructor,ko=_o.prototype,xo=yo.prototype,So=bo.prototype,To=wo.prototype,$o=Lo.prototype,Do=Mo.prototype,Co=So.call,Eo=So.apply,Ao=So.bind,Po=$o.valueOf,Yo=fe();r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){Yo[e]=!0});var Oo={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Io=function(e){this.options=e};Io.prototype={constructor:Io,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=Yo[t],o=Yo[n],a=Yo[r];if(i||o||a){var s=a?r:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),r=t.charCodeAt(0);return n>=55296&&n<=56319&&r>=56320&&r<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=_(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw vo("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=jr(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"===n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{n+=Oo[o]||o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var jo=function(e,t){this.lexer=e,this.options=t};jo.Program="Program",jo.ExpressionStatement="ExpressionStatement",jo.AssignmentExpression="AssignmentExpression",jo.ConditionalExpression="ConditionalExpression",jo.LogicalExpression="LogicalExpression",jo.BinaryExpression="BinaryExpression",jo.UnaryExpression="UnaryExpression",jo.CallExpression="CallExpression",jo.MemberExpression="MemberExpression",jo.Identifier="Identifier",jo.Literal="Literal",jo.ArrayExpression="ArrayExpression",jo.Property="Property",jo.ObjectExpression="ObjectExpression",jo.ThisExpression="ThisExpression",jo.LocalsExpression="LocalsExpression",jo.NGValueParameter="NGValueParameter",jo.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:jo.Program,body:e}},expressionStatement:function(){return{type:jo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!un(e))throw vo("lval","Trying to assign a value to a non l-value");e={type:jo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:jo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:jo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:jo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:jo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:jo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:jo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:jo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:jo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=N(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:jo.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:jo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:jo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:jo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:jo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:jo.Identifier,name:e.text}},constant:function(){return{type:jo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:jo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:jo.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:jo.ObjectExpression,properties:t}},throwError:function(e,t){throw vo("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw vo("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw vo("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===r||a===i||!t&&!n&&!r&&!i)return o}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return!!i&&(this.tokens.shift(),i)},selfReferential:{this:{type:jo.ThisExpression},$locals:{type:jo.LocalsExpression}}},fn.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},sn(i,n.$filter);var o,a="";if(this.stage="assign",o=cn(i)){this.state.computing="assign";var s=this.nextId();this.recurse(o,s),this.return_(s),a="fn.assign="+this.generateFunction("assign","s,v,l")}var l=ln(i.body);n.stage="inputs",r(l,function(e,t){var r="fn"+t;n.state[r]={vars:[],body:[],own:{}},n.state.computing=r;var i=n.nextId();n.recurse(e,i),n.return_(i),n.state.inputs.push(r),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(i);var u='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",c=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",u)(this.$filter,Kt,en,tn,Qt,nn,rn,on,e);return this.state=this.stage=void 0,c.literal=dn(i),c.constant=hn(i),c},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return r(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return r(this.state.filters,function(n,r){e.push(n+"=$filter("+t.escape(r)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,i,o,a){var s,l,u,c,d,h=this;if(i=i||f,!a&&_(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,i,o,!0));switch(e.type){case jo.Program:r(e.body,function(t,n){h.recurse(t.expression,void 0,void 0,function(e){l=e}),n!==e.body.length-1?h.current().body.push(l,";"):h.return_(l)});break;case jo.Literal:c=this.escape(e.value),this.assign(t,c),i(c);break;case jo.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){l=e}),c=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,c),i(c);break;case jo.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){s=e}),this.recurse(e.right,void 0,void 0,function(e){l=e}),c="+"===e.operator?this.plus(s,l):"-"===e.operator?this.ifDefined(s,0)+e.operator+this.ifDefined(l,0):"("+s+")"+e.operator+"("+l+")",this.assign(t,c),i(c);break;case jo.LogicalExpression:t=t||this.nextId(),h.recurse(e.left,t),h.if_("&&"===e.operator?t:h.not(t),h.lazyRecurse(e.right,t)),i(t);break;case jo.ConditionalExpression:t=t||this.nextId(),h.recurse(e.test,t),h.if_(t,h.lazyRecurse(e.alternate,t),h.lazyRecurse(e.consequent,t)),i(t);break;case jo.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),Kt(e.name),h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",e.name)),function(){h.if_("inputs"===h.stage||"s",function(){o&&1!==o&&h.if_(h.not(h.nonComputedMember("s",e.name)),h.lazyAssign(h.nonComputedMember("s",e.name),"{}")),h.assign(t,h.nonComputedMember("s",e.name))})},t&&h.lazyAssign(t,h.nonComputedMember("l",e.name))),(h.state.expensiveChecks||mn(e.name))&&h.addEnsureSafeObject(t),i(t);break;case jo.MemberExpression:s=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),h.recurse(e.object,s,void 0,function(){h.if_(h.notNull(s),function(){o&&1!==o&&h.addEnsureSafeAssignContext(s),e.computed?(l=h.nextId(),h.recurse(e.property,l),h.getStringValue(l),h.addEnsureSafeMemberName(l),o&&1!==o&&h.if_(h.not(h.computedMember(s,l)),h.lazyAssign(h.computedMember(s,l),"{}")),c=h.ensureSafeObject(h.computedMember(s,l)),h.assign(t,c),n&&(n.computed=!0,n.name=l)):(Kt(e.property.name),o&&1!==o&&h.if_(h.not(h.nonComputedMember(s,e.property.name)),h.lazyAssign(h.nonComputedMember(s,e.property.name),"{}")),c=h.nonComputedMember(s,e.property.name),(h.state.expensiveChecks||mn(e.property.name))&&(c=h.ensureSafeObject(c)),h.assign(t,c),n&&(n.computed=!1,n.name=e.property.name))},function(){h.assign(t,"undefined")}),i(t)},!!o);break;case jo.CallExpression:t=t||this.nextId(),e.filter?(l=h.filter(e.callee.name),u=[],r(e.arguments,function(e){var t=h.nextId();h.recurse(e,t),u.push(t)}),c=l+"("+u.join(",")+")",h.assign(t,c),i(t)):(l=h.nextId(),s={},u=[],h.recurse(e.callee,l,s,function(){h.if_(h.notNull(l),function(){h.addEnsureSafeFunction(l),r(e.arguments,function(e){h.recurse(e,h.nextId(),void 0,function(e){u.push(h.ensureSafeObject(e))})}),s.name?(h.state.expensiveChecks||h.addEnsureSafeObject(s.context),c=h.member(s.context,s.name,s.computed)+"("+u.join(",")+")"):c=l+"("+u.join(",")+")",c=h.ensureSafeObject(c),h.assign(t,c)},function(){h.assign(t,"undefined")}),i(t)}));break;case jo.AssignmentExpression:l=this.nextId(),s={},this.recurse(e.left,void 0,s,function(){h.if_(h.notNull(s.context),function(){h.recurse(e.right,l),h.addEnsureSafeObject(h.member(s.context,s.name,s.computed)),h.addEnsureSafeAssignContext(s.context),c=h.member(s.context,s.name,s.computed)+e.operator+l,h.assign(t,c),i(t||c)})},1);break;case jo.ArrayExpression:u=[],r(e.elements,function(e){h.recurse(e,h.nextId(),void 0,function(e){u.push(e)})}),c="["+u.join(",")+"]",this.assign(t,c),i(c);break;case jo.ObjectExpression:u=[],d=!1,r(e.properties,function(e){e.computed&&(d=!0)}),d?(t=t||this.nextId(),this.assign(t,"{}"),r(e.properties,function(e){e.computed?(s=h.nextId(),h.recurse(e.key,s)):s=e.key.type===jo.Identifier?e.key.name:""+e.key.value,l=h.nextId(),h.recurse(e.value,l),h.assign(h.member(t,s,e.computed),l)})):(r(e.properties,function(t){h.recurse(t.value,e.constant?void 0:h.nextId(),void 0,function(e){u.push(h.escape(t.key.type===jo.Identifier?t.key.name:""+t.key.value)+":"+e)})}),c="{"+u.join(",")+"}",this.assign(t,c)),i(t||c);break;case jo.ThisExpression:this.assign(t,"s"),i("s");break;case jo.LocalsExpression:this.assign(t,"l"),i("l");break;case jo.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/^[$_a-zA-Z][$_a-zA-Z0-9]*$/,r=/[^$_a-zA-Z0-9]/g;return n.test(t)?e+"."+t:e+'["'+t.replace(r,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},
-ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,r,i,o){var a=this;return function(){a.recurse(e,t,n,r,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(L(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw vo("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},pn.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,sn(i,n.$filter);var o,a;(o=cn(i))&&(a=this.recurse(o));var s,l=ln(i.body);l&&(s=[],r(l,function(e,t){var r=n.recurse(e);e.input=r,s.push(r),e.watchId=t}));var u=[];r(i.body,function(e){u.push(n.recurse(e.expression))});var c=0===i.body.length?f:1===i.body.length?u[0]:function(e,t){var n;return r(u,function(r){n=r(e,t)}),n};return a&&(c.assign=function(e,t,n){return a(e,n,t)}),s&&(c.inputs=s),c.literal=dn(i),c.constant=hn(i),c},recurse:function(e,t,n){var i,o,a,s=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case jo.Literal:return this.value(e.value,t);case jo.UnaryExpression:return o=this.recurse(e.argument),this["unary"+e.operator](o,t);case jo.BinaryExpression:case jo.LogicalExpression:return i=this.recurse(e.left),o=this.recurse(e.right),this["binary"+e.operator](i,o,t);case jo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case jo.Identifier:return Kt(e.name,s.expression),s.identifier(e.name,s.expensiveChecks||mn(e.name),t,n,s.expression);case jo.MemberExpression:return i=this.recurse(e.object,!1,!!n),e.computed||(Kt(e.property.name,s.expression),o=e.property.name),e.computed&&(o=this.recurse(e.property)),e.computed?this.computedMember(i,o,t,n,s.expression):this.nonComputedMember(i,o,s.expensiveChecks,t,n,s.expression);case jo.CallExpression:return a=[],r(e.arguments,function(e){a.push(s.recurse(e))}),e.filter&&(o=this.$filter(e.callee.name)),e.filter||(o=this.recurse(e.callee,!0)),e.filter?function(e,n,r,i){for(var s=[],l=0;l<a.length;++l)s.push(a[l](e,n,r,i));var u=o.apply(void 0,s,i);return t?{context:void 0,name:void 0,value:u}:u}:function(e,n,r,i){var l,u=o(e,n,r,i);if(null!=u.value){en(u.context,s.expression),tn(u.value,s.expression);for(var c=[],d=0;d<a.length;++d)c.push(en(a[d](e,n,r,i),s.expression));l=en(u.value.apply(u.context,c),s.expression)}return t?{value:l}:l};case jo.AssignmentExpression:return i=this.recurse(e.left,!0,1),o=this.recurse(e.right),function(e,n,r,a){var l=i(e,n,r,a),u=o(e,n,r,a);return en(l.value,s.expression),nn(l.context),l.context[l.name]=u,t?{value:u}:u};case jo.ArrayExpression:return a=[],r(e.elements,function(e){a.push(s.recurse(e))}),function(e,n,r,i){for(var o=[],s=0;s<a.length;++s)o.push(a[s](e,n,r,i));return t?{value:o}:o};case jo.ObjectExpression:return a=[],r(e.properties,function(e){e.computed?a.push({key:s.recurse(e.key),computed:!0,value:s.recurse(e.value)}):a.push({key:e.key.type===jo.Identifier?e.key.name:""+e.key.value,computed:!1,value:s.recurse(e.value)})}),function(e,n,r,i){for(var o={},s=0;s<a.length;++s)a[s].computed?o[a[s].key(e,n,r,i)]=a[s].value(e,n,r,i):o[a[s].key]=a[s].value(e,n,r,i);return t?{value:o}:o};case jo.ThisExpression:return function(e){return t?{value:e}:e};case jo.LocalsExpression:return function(e,n){return t?{value:n}:n};case jo.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=_(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=_(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,r,i,o){var a=!e(n,r,i,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),l=t(r,i,o,a),u=on(s,l);return n?{value:u}:u}},"binary-":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),l=t(r,i,o,a),u=(_(s)?s:0)-(_(l)?l:0);return n?{value:u}:u}},"binary*":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)*t(r,i,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)/t(r,i,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)%t(r,i,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)===t(r,i,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!==t(r,i,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)==t(r,i,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!=t(r,i,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<t(r,i,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>t(r,i,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<=t(r,i,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>=t(r,i,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)&&t(r,i,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)||t(r,i,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,o,a,s){var l=e(i,o,a,s)?t(i,o,a,s):n(i,o,a,s);return r?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,r,i){return function(o,a,s,l){var u=a&&e in a?a:o;r&&1!==r&&u&&!u[e]&&(u[e]={});var c=u?u[e]:void 0;return t&&en(c,i),n?{context:u,name:e,value:c}:c}},computedMember:function(e,t,n,r,i){return function(o,a,s,l){var u,c,d=e(o,a,s,l);return null!=d&&(u=t(o,a,s,l),u=Qt(u),Kt(u,i),r&&1!==r&&(nn(d),d&&!d[u]&&(d[u]={})),c=d[u],en(c,i)),n?{context:d,name:u,value:c}:c}},nonComputedMember:function(e,t,n,r,i,o){return function(a,s,l,u){var c=e(a,s,l,u);i&&1!==i&&(nn(c),c&&!c[t]&&(c[t]={}));var d=null!=c?c[t]:void 0;return(n||mn(t))&&en(d,o),r?{context:c,name:t,value:d}:d}},inputs:function(e,t){return function(n,r,i,o){return o?o[t]:e(n,r,i)}}};var Ho=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new jo(e,n),this.astCompiler=n.csp?new pn(this.ast,t):new fn(this.ast,t)};Ho.prototype={constructor:Ho,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var No=t("$sce"),Bo={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Ro=t("$compile"),Fo=e.document.createElement("a"),zo=An(e.location.href);On.$inject=["$document"],jn.$inject=["$provide"];var Vo=22,Uo=".",Wo="0";Fn.$inject=["$locale"],zn.$inject=["$locale"];var qo={yyyy:Gn("FullYear",4,0,!1,!0),yy:Gn("FullYear",2,0,!0,!0),y:Gn("FullYear",1,0,!1,!0),MMMM:Zn("Month"),MMM:Zn("Month",!0),MM:Gn("Month",2,1),M:Gn("Month",1,1),LLLL:Zn("Month",!1,!0),dd:Gn("Date",2),d:Gn("Date",1),HH:Gn("Hours",2),H:Gn("Hours",1),hh:Gn("Hours",2,-12),h:Gn("Hours",1,-12),mm:Gn("Minutes",2),m:Gn("Minutes",1),ss:Gn("Seconds",2),s:Gn("Seconds",1),sss:Gn("Milliseconds",3),EEEE:Zn("Day"),EEE:Zn("Day",!0),a:er,Z:Jn,ww:Qn(2),w:Qn(1),G:tr,GG:tr,GGG:tr,GGGG:nr},Go=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Zo=/^-?\d+$/;rr.$inject=["$locale"];var Jo=m(jr),Xo=m(Hr);sr.$inject=["$parse"];var Ko=m({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Gr.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),Qo={};r(Ai,function(e,t){function n(e,n,i){e.$watch(i[r],function(e){i.$set(t,!!e)})}if("multiple"!==e){var r=pt("ng-"+t),i=n;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[r]&&n(e,t,i)}),Qo[r]=function(){return{restrict:"A",priority:100,link:i}}}}),r(Yi,function(e,t){Qo[t]=function(){return{priority:100,link:function(e,n,r){if("ngPattern"===t&&"/"===r.ngPattern.charAt(0)){var i=r.ngPattern.match(Yr);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(r[t],function(e){r.$set(t,e)})}}}}),r(["src","srcset","href"],function(e){var t=pt("ng-"+e);Qo[t]=function(){return{priority:99,link:function(n,r,i){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Gr.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(t,function(t){if(!t)return void("href"===e&&i.$set(a,null));i.$set(a,t),Rr&&o&&r.prop(o,i[a])})}}}});var ea={$addControl:f,$$renameControl:ur,$removeControl:f,$setValidity:f,$setDirty:f,$setPristine:f,$setSubmitted:f},ta="ng-submitted";cr.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var na=function(e){return["$timeout","$parse",function(t,n){function r(e){return""===e?n('this[""]').assign:n(e).assign||f}return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:cr,compile:function(n,i){n.addClass(Ha).addClass(Ia);var o=i.name?"name":!(!e||!i.ngForm)&&"ngForm";return{pre:function(e,n,i,a){var s=a[0];if(!("action"in i)){var l=function(t){e.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),t.preventDefault()};yi(n[0],"submit",l),n.on("$destroy",function(){t(function(){bi(n[0],"submit",l)},0,!1)})}(a[1]||s.$$parentForm).$addControl(s);var c=o?r(s.$name):f;o&&(c(e,s),i.$observe(o,function(t){s.$name!==t&&(c(e,void 0),s.$$parentForm.$$renameControl(s,t),(c=r(s.$name))(e,s))})),n.on("$destroy",function(){s.$$parentForm.$removeControl(s),c(e,void 0),u(s,ea)})}}}}}]},ra=na(),ia=na(!0),oa=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,aa=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,sa=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,la=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,ua=/^(\d{4,})-(\d{2})-(\d{2})$/,ca=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,da=/^(\d{4,})-W(\d\d)$/,ha=/^(\d{4,})-(\d\d)$/,fa=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,pa="keydown wheel mousedown",ma=fe();r("date,datetime-local,month,time,week".split(","),function(e){ma[e]=!0});var ga={text:hr,date:gr("date",ua,mr(ua,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":gr("datetimelocal",ca,mr(ca,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:gr("time",fa,mr(fa,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:gr("week",da,pr,"yyyy-Www"),month:gr("month",ha,mr(ha,["yyyy","MM"]),"yyyy-MM"),number:Mr,url:xr,email:Sr,radio:Tr,range:kr,checkbox:Dr,hidden:f,button:f,submit:f,reset:f,file:f},va=["$browser","$sniffer","$filter","$parse",function(e,t,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){if(s[0]){var l=jr(a.type);"range"!==l||a.hasOwnProperty("ngInputRange")||(l="text"),(ga[l]||ga.text)(i,o,a,s[0],t,e,n,r)}}}}}],_a=/^(true|false|\d+)$/,ya=function(){return{restrict:"A",priority:100,compile:function(e,t){return _a.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},ba=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,function(e){n.textContent=v(e)?"":e})}}}}],wa=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var o=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,o.expressions),r=r[0],i.$observe("ngBindTemplate",function(e){r.textContent=v(e)?"":e})}}}}],La=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(r,i){var o=t(i.ngBindHtml),a=t(i.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(a,function(){var n=o(t);r.html(e.getTrustedHtml(n)||"")})}}}}],Ma=m({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),ka=Cr("",!0),xa=Cr("Odd",0),Sa=Cr("Even",1),Ta=lr({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),$a=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Da={},Ca={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=pt("ng-"+e);Da[t]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,function(n){var i=function(){a(t,{$event:n})};Ca[e]&&r.$$phase?t.$evalAsync(i):t.$apply(i)})}}}}]});var Ea=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,l,u;n.$watch(i.ngIf,function(n){n?l||a(function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),s={clone:n},e.enter(n,r.parent(),r)}):(u&&(u.remove(),u=null),l&&(l.$destroy(),l=null),s&&(u=he(s.clone),e.leave(u).done(function(e){!1!==e&&(u=null)}),s=null))})}}}],Aa=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Xr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,l,u,c){var d,h,f,p=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),f&&(n.leave(f).done(function(e){!1!==e&&(h=null)}),h=f,f=null)};r.$watch(o,function(o){var l=function(e){!1===e||!_(s)||s&&!r.$eval(s)||t()},h=++p;o?(e(o,!0).then(function(e){if(!r.$$destroyed&&h===p){var t=r.$new();u.template=e;var s=c(t,function(e){m(),n.enter(e,null,i).done(l)});d=t,f=s,d.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){r.$$destroyed||h===p&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),u.template=null)})}}}}],Pa=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){if(Gr.call(r[0]).match(/SVG/))return r.empty(),void t(ke(o.template,e.document).childNodes)(n,function(e){r.append(e)},{futureParentElement:r});r.html(o.template),t(r.contents())(n)}}}],Ya=lr({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Oa=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,i){var o=t.attr(n.$attr.ngList)||", ",a="false"!==n.ngTrim,s=a?ni(o):o,l=function(e){if(!v(e)){var t=[];return e&&r(e.split(s),function(e){e&&t.push(a?ni(e):e)}),t}};i.$parsers.push(l),i.$formatters.push(function(e){if(ei(e))return e.join(o)}),i.$isEmpty=function(e){return!e||!e.length}}}},Ia="ng-valid",ja="ng-invalid",Ha="ng-pristine",Na="ng-dirty",Ba="ng-pending",Ra=t("ngModel"),Fa=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,i,o,a,s,l,u,c){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||"",!1)(e),this.$$parentForm=ea;var d,h=o(n.ngModel),p=h.assign,m=h,g=p,y=null,b=this;this.$$setOptions=function(e){if(b.$options=e,e&&e.getterSetter){var t=o(n.ngModel+"()"),r=o(n.ngModel+"($$$p)");m=function(e){var n=h(e);return k(n)&&(n=t(e)),n},g=function(e,t){k(h(e))?r(e,{$$$p:t}):p(e,t)}}else if(!h.assign)throw Ra("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,J(i))},this.$render=f,this.$isEmpty=function(e){return v(e)||""===e||null===e||e!==e},this.$$updateEmptyClasses=function(e){b.$isEmpty(e)?(a.removeClass(i,"ng-not-empty"),a.addClass(i,"ng-empty")):(a.removeClass(i,"ng-empty"),a.addClass(i,"ng-not-empty"))};var w=0;Er({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:a}),this.$setPristine=function(){b.$dirty=!1,b.$pristine=!0,a.removeClass(i,Na),a.addClass(i,Ha)},this.$setDirty=function(){b.$dirty=!0,b.$pristine=!1,a.removeClass(i,Ha),a.addClass(i,Na),b.$$parentForm.$setDirty()},this.$setUntouched=function(){b.$touched=!1,b.$untouched=!0,a.setClass(i,"ng-untouched","ng-touched")},this.$setTouched=function(){b.$touched=!0,b.$untouched=!1,a.setClass(i,"ng-touched","ng-untouched")},this.$rollbackViewValue=function(){s.cancel(y),b.$viewValue=b.$$lastCommittedViewValue,b.$render()},this.$validate=function(){if(!Qr(b.$modelValue)){var e=b.$$lastCommittedViewValue,t=b.$$rawModelValue,n=b.$valid,r=b.$modelValue,i=b.$options&&b.$options.allowInvalid;b.$$runValidators(t,e,function(e){i||n===e||(b.$modelValue=e?t:void 0,b.$modelValue!==r&&b.$$writeModelToScope())})}},this.$$runValidators=function(e,t,n){function i(e,t){a===w&&b.$setValidity(e,t)}function o(e){a===w&&n(e)}w++;var a=w;return function(){var e=b.$$parserName||"parse";return v(d)?(i(e,null),!0):(d||(r(b.$validators,function(e,t){i(t,null)}),r(b.$asyncValidators,function(e,t){i(t,null)})),i(e,d),d)}()&&function(){var n=!0;return r(b.$validators,function(r,o){var a=r(e,t);n=n&&a,i(o,a)}),!!n||(r(b.$asyncValidators,function(e,t){i(t,null)}),!1)}()?void function(){var n=[],a=!0;r(b.$asyncValidators,function(r,o){var s=r(e,t);if(!A(s))throw Ra("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",s);i(o,void 0),n.push(s.then(function(){i(o,!0)},function(){a=!1,i(o,!1)}))}),n.length?u.all(n).then(function(){o(a)},f):o(!0)}():void o(!1)},this.$commitViewValue=function(){var e=b.$viewValue;s.cancel(y),(b.$$lastCommittedViewValue!==e||""===e&&b.$$hasNativeValidators)&&(b.$$updateEmptyClasses(e),b.$$lastCommittedViewValue=e,b.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){b.$modelValue!==o&&b.$$writeModelToScope()}var n=b.$$lastCommittedViewValue,r=n;if(d=!v(r)||void 0)for(var i=0;i<b.$parsers.length;i++)if(r=b.$parsers[i](r),v(r)){d=!1;break}Qr(b.$modelValue)&&(b.$modelValue=m(e));var o=b.$modelValue,a=b.$options&&b.$options.allowInvalid;b.$$rawModelValue=r,a&&(b.$modelValue=r,t()),b.$$runValidators(r,b.$$lastCommittedViewValue,function(e){a||(b.$modelValue=e?r:void 0,t())})},this.$$writeModelToScope=function(){g(e,b.$modelValue),r(b.$viewChangeListeners,function(e){try{e()}catch(e){t(e)}})},this.$setViewValue=function(e,t){b.$viewValue=e,b.$options&&!b.$options.updateOnDefault||b.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,r=0,i=b.$options;i&&_(i.debounce)&&(n=i.debounce,L(n)?r=n:L(n[t])?r=n[t]:L(n.default)&&(r=n.default)),s.cancel(y),r?y=s(function(){b.$commitViewValue()},r):l.$$phase?b.$commitViewValue():e.$apply(function(){b.$commitViewValue()})},e.$watch(function(){var t=m(e);if(t!==b.$modelValue&&(b.$modelValue===b.$modelValue||t===t)){b.$modelValue=b.$$rawModelValue=t,d=void 0;for(var n=b.$formatters,r=n.length,i=t;r--;)i=n[r](i);b.$viewValue!==i&&(b.$$updateEmptyClasses(i),b.$viewValue=b.$$lastCommittedViewValue=i,b.$render(),b.$$runValidators(b.$modelValue,b.$viewValue,f))}return t})}],za=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Fa,priority:1,compile:function(t){return t.addClass(Ha).addClass("ng-untouched").addClass(Ia),{pre:function(e,t,n,r){var i=r[0],o=r[1]||i.$$parentForm;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on("$destroy",function(){i.$$parentForm.$removeControl(i)})},post:function(t,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(e){o.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))})}}}}}],Va=/(\s+|^)default(\s+|$)/,Ua=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=N(e.$eval(t.ngModelOptions)),_(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=ni(this.$options.updateOn.replace(Va,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Wa=lr({terminal:!0,priority:1e3}),qa=t("ngOptions"),Ga=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Za=["$compile","$document","$parse",function(t,i,o){function a(e,t,r){function i(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function a(e){var t;if(!u&&n(e))t=e;else{t=[];for(var r in e)e.hasOwnProperty(r)&&"$"!==r.charAt(0)&&t.push(r)}return t}var s=e.match(Ga);if(!s)throw qa("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,J(t));var l=s[5]||s[7],u=s[6],c=/ as /.test(s[0])&&s[1],d=s[9],h=o(s[2]?s[1]:l),f=c&&o(c),p=f||h,m=d&&o(d),g=d?function(e,t){return m(r,t)}:function(e){return Ze(e)},v=function(e,t){return g(e,M(e,t))},_=o(s[2]||s[1]),y=o(s[3]||""),b=o(s[4]||""),w=o(s[8]),L={},M=u?function(e,t){return L[u]=t,L[l]=e,L}:function(e){return L[l]=e,L};return{trackBy:d,getTrackByValue:v,getWatchables:o(w,function(e){var t=[];e=e||[];for(var n=a(e),i=n.length,o=0;o<i;o++){var l=e===n?o:n[o],u=e[l],c=M(u,l),d=g(u,c);if(t.push(d),s[2]||s[1]){var h=_(r,c);t.push(h)}if(s[4]){var f=b(r,c);t.push(f)}}return t}),getOptions:function(){for(var e=[],t={},n=w(r)||[],o=a(n),s=o.length,l=0;l<s;l++){var u=n===o?l:o[l],c=n[u],h=M(c,u),f=p(r,h),m=g(f,h),L=_(r,h),k=y(r,h),x=b(r,h),S=new i(m,f,L,k,x);e.push(S),t[m]=S}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[v(e)]},getViewValueFromOption:function(e){return d?N(e.viewValue):e.viewValue}}}}}function s(e,n,o,s){function c(e,t){var n=l.cloneNode(!1);t.appendChild(n),d(e,n)}function d(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}function h(){var e=k&&p.readValue();if(k)for(var t=k.items.length-1;t>=0;t--){var r=k.items[t];Re(_(r.group)?r.element.parentNode:r.element)}k=x.getOptions();var i={};if(w&&n.prepend(f),k.items.forEach(function(e){var t;_(e.group)?(t=i[e.group],t||(t=u.cloneNode(!1),S.appendChild(t),t.label=null===e.group?"null":e.group,i[e.group]=t),c(e,t)):c(e,S)}),n[0].appendChild(S),m.$render(),!m.$isEmpty(e)){var o=p.readValue();(x.trackBy||g?B(e,o):e===o)||(m.$setViewValue(o),m.$render())}}for(var f,p=s[0],m=s[1],g=o.multiple,v=0,y=n.children(),b=y.length;v<b;v++)if(""===y[v].value){f=y.eq(v);break}var w=!!f,L=!1,M=Fr(l.cloneNode(!1));M.val("?");var k,x=a(o.ngOptions,n,e),S=i[0].createDocumentFragment(),T=function(){w||n.prepend(f),n.val(""),L&&(f.prop("selected",!0),f.attr("selected",!0))},$=function(){w?L&&f.removeAttr("selected"):f.remove()},D=function(){n.prepend(M),n.val("?"),M.prop("selected",!0),M.attr("selected",!0)},C=function(){M.remove()};g?(m.$isEmpty=function(e){return!e||0===e.length},p.writeValue=function(e){k.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=k.getOptionFromViewValue(e);t&&(t.element.selected=!0)})},p.readValue=function(){var e=n.val()||[],t=[];return r(e,function(e){var n=k.selectValueMap[e];n&&!n.disabled&&t.push(k.getViewValueFromOption(n))}),t},x.trackBy&&e.$watchCollection(function(){if(ei(m.$viewValue))return m.$viewValue.map(function(e){return x.getTrackByValue(e)})},function(){m.$render()})):(p.writeValue=function(e){var t=k.selectValueMap[n.val()],r=k.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),r?(n[0].value!==r.selectValue&&(C(),$(),n[0].value=r.selectValue,r.element.selected=!0),r.element.setAttribute("selected","selected")):null===e||w?(C(),T()):($(),D())},p.readValue=function(){var e=k.selectValueMap[n.val()];return e&&!e.disabled?($(),C(),k.getViewValueFromOption(e)):null},x.trackBy&&e.$watch(function(){return x.getTrackByValue(m.$viewValue)},function(){m.$render()})),w?(f.remove(),t(f)(e),f[0].nodeType===fi?(L=!1,p.registerOption=function(e,t){""===t.val()&&(L=!0,f=t,f.removeClass("ng-scope"),m.$render(),t.on("$destroy",function(){f=void 0,L=!1}))}):(f.removeClass("ng-scope"),L=!0)):f=Fr(l.cloneNode(!1)),n.empty(),h(),e.$watchCollection(x.getWatchables,h)}var l=e.document.createElement("option"),u=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,r){r[0].registerOption=f},post:s}}}],Ja=["$locale","$interpolate","$log",function(e,t,n){var i=/{}/g,o=/^when(Minus)?(.+)$/;return{link:function(a,s,l){function u(e){s.text(e||"")}var c,d=l.count,h=l.$attr.when&&s.attr(l.$attr.when),p=l.offset||0,m=a.$eval(h)||{},g={},_=t.startSymbol(),y=t.endSymbol(),b=_+d+"-"+p+y,w=Xr.noop;r(l,function(e,t){var n=o.exec(t);if(n){var r=(n[1]?"-":"")+jr(n[2]);m[r]=s.attr(l.$attr[t])}}),r(m,function(e,n){g[n]=t(e.replace(i,b))}),a.$watch(d,function(t){var r=parseFloat(t),i=Qr(r);if(i||r in m||(r=e.pluralCat(r-p)),!(r===c||i&&Qr(c))){w();var o=g[r];v(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+h),w=f,u()):w=a.$watch(o,u),c=r}})}}}],Xa=["$parse","$animate","$compile",function(e,i,o){var a=t("ngRepeat"),s=function(e,t,n,r,i,o,a){e[n]=r,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},l=function(e){return e.clone[0]},u=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,c){var d=c.ngRepeat,h=o.$$createComment("end ngRepeat",d),f=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!f)throw a("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var p=f[1],m=f[2],g=f[3],v=f[4];if(!(f=p.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw a("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",p);var _=f[3]||f[1],y=f[2];if(g&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(g)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(g)))throw a("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",g);var b,w,L,M,k={$id:Ze};return v?b=e(v):(L=function(e,t){return Ze(t)},M=function(e){return e}),function(e,t,o,c,f){b&&(w=function(t,n,r){return y&&(k[y]=t),k[_]=n,k.$index=r,b(e,k)});var p=fe();e.$watchCollection(m,function(o){var c,m,v,b,k,x,S,T,$,D,C,E,A=t[0],P=fe();if(g&&(e[g]=o),n(o))$=o,T=w||L;else{T=w||M,$=[];for(var Y in o)Ir.call(o,Y)&&"$"!==Y.charAt(0)&&$.push(Y)}for(b=$.length,C=new Array(b),c=0;c<b;c++)if(k=o===$?c:$[c],x=o[k],S=T(k,x,c),p[S])D=p[S],delete p[S],P[S]=D,C[c]=D;else{if(P[S])throw r(C,function(e){e&&e.scope&&(p[e.id]=e)}),a("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,S,x);C[c]={id:S,scope:void 0,clone:void 0},P[S]=!0}for(var O in p){if(D=p[O],E=he(D.clone),i.leave(E),E[0].parentNode)for(c=0,m=E.length;c<m;c++)E[c].$$NG_REMOVED=!0;D.scope.$destroy()}for(c=0;c<b;c++)if(k=o===$?c:$[c],x=o[k],D=C[c],D.scope){v=A;do{v=v.nextSibling}while(v&&v.$$NG_REMOVED);l(D)!==v&&i.move(he(D.clone),null,A),A=u(D),s(D.scope,c,_,x,y,k,b)}else f(function(e,t){D.scope=t;var n=h.cloneNode(!1);e[e.length++]=n,i.enter(e,null,A),A=n,D.clone=e,P[D.id]=D,s(D.scope,c,_,x,y,k,b)});p=P})}}}}],Ka=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Qa=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],es=lr(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&r(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),ts=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,i,o,a){var s=o.ngSwitch||o.on,l=[],u=[],c=[],d=[],h=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(s,function(n){for(var i,o;c.length;)e.cancel(c.pop());for(i=0,o=d.length;i<o;++i){var s=he(u[i].clone);d[i].$destroy();(c[i]=e.leave(s)).done(h(c,i))}u.length=0,d.length=0,(l=a.cases["!"+n]||a.cases["?"])&&r(l,function(n){n.transclude(function(r,i){d.push(i);var o=n.element;r[r.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:r};u.push(a),e.enter(r,o.parent(),o)})})})}}}],ns=lr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,o){r(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter(function(e,t,n){return n[t-1]!==e}),function(e){i.cases["!"+e]=i.cases["!"+e]||[],i.cases["!"+e].push({transclude:o,element:t})})}}),rs=lr({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),is=t("ngTransclude"),os=["$compile",function(e){return{restrict:"EAC",terminal:!0,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,r,i,o){function a(e,n){e.length?t.append(e):(s(),n.$destroy())}function s(){n(e,function(e){t.append(e)})}if(!o)throw is("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",J(t));r.ngTransclude===r.$attr.ngTransclude&&(r.ngTransclude="");var l=r.ngTransclude||r.ngTranscludeSlot;o(a,null,l),l&&!o.isSlotFilled(l)&&s()}}}}],as=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],ss={$setViewValue:f,$render:f},ls=["$element","$scope",function(t,n){var r=this,i=new Je;r.ngModelCtrl=ss,r.unknownOption=Fr(e.document.createElement("option")),r.renderUnknownOption=function(e){var n="? "+Ze(e)+" ?";r.unknownOption.val(n),t.prepend(r.unknownOption),t.val(n)},n.$on("$destroy",function(){r.renderUnknownOption=f}),r.removeUnknownOption=function(){r.unknownOption.parent()&&r.unknownOption.remove()},r.readValue=function(){return r.removeUnknownOption(),t.val()},r.writeValue=function(e){r.hasOption(e)?(r.removeUnknownOption(),t.val(e),""===e&&r.emptyOption.prop("selected",!0)):null==e&&r.emptyOption?(r.removeUnknownOption(),t.val("")):r.renderUnknownOption(e)},r.addOption=function(e,t){if(t[0].nodeType!==fi){ce(e,'"option value"'),""===e&&(r.emptyOption=t);var n=i.get(e)||0;i.put(e,n+1),r.ngModelCtrl.$render(),Pr(t)}},r.removeOption=function(e){var t=i.get(e);t&&(1===t?(i.remove(e),""===e&&(r.emptyOption=void 0)):i.put(e,t-1))},r.hasOption=function(e){return!!i.get(e)},r.registerOption=function(e,t,n,i,o){if(i){var a;n.$observe("value",function(e){_(a)&&r.removeOption(a),a=e,r.addOption(e,t)})}else o?e.$watch(o,function(e,i){n.$set("value",e),
-i!==e&&r.removeOption(i),r.addOption(e,t)}):r.addOption(n.value,t);t.on("$destroy",function(){r.removeOption(n.value),r.ngModelCtrl.$render()})}}],us=function(){function e(e,t,n,i){var o=i[1];if(o){var a=i[0];if(a.ngModelCtrl=o,t.on("change",function(){e.$apply(function(){o.$setViewValue(a.readValue())})}),n.multiple){a.readValue=function(){var e=[];return r(t.find("option"),function(t){t.selected&&e.push(t.value)}),e},a.writeValue=function(e){var n=new Je(e);r(t.find("option"),function(e){e.selected=_(n.get(e.value))})};var s,l=NaN;e.$watch(function(){l!==o.$viewValue||B(s,o.$viewValue)||(s=me(o.$viewValue),o.$render()),l=o.$viewValue}),o.$isEmpty=function(e){return!e||0===e.length}}}}function t(e,t,n,r){var i=r[1];if(i){var o=r[0];i.$render=function(){o.writeValue(i.$viewValue)}}}return{restrict:"E",require:["select","?ngModel"],controller:ls,priority:1,link:{pre:e,post:t}}},cs=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var r,i;return _(n.ngValue)?r=!0:_(n.value)?r=e(n.value,!0):(i=e(t.text(),!0))||n.$set("value",t.text()),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,r,i)}}}}],ds=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){r&&(n.required=!0,r.$validators.required=function(e,t){return!n.required||!r.$isEmpty(t)},n.$observe("required",function(){r.$validate()}))}}},hs=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,r,i){if(i){var o,a=r.ngPattern||r.pattern;r.$observe("pattern",function(e){if(w(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,e,J(n));o=e||void 0,i.$validate()}),i.$validators.pattern=function(e,t){return i.$isEmpty(t)||v(o)||o.test(t)}}}}},fs=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=-1;n.$observe("maxlength",function(e){var t=d(e);i=Qr(t)?-1:t,r.$validate()}),r.$validators.maxlength=function(e,t){return i<0||r.$isEmpty(t)||t.length<=i}}}}},ps=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=0;n.$observe("minlength",function(e){i=d(e)||0,r.$validate()}),r.$validators.minlength=function(e,t){return r.$isEmpty(t)||t.length>=i}}}}};if(e.angular.bootstrap)return void(e.console&&console.log("WARNING: Tried to load angular more than once."));!function(){var t;if(!ci){var n=oi();zr=v(n)?e.jQuery:n?e[n]:void 0,zr&&zr.fn.on?(Fr=zr,u(zr.fn,{scope:Ei.scope,isolateScope:Ei.isolateScope,controller:Ei.controller,injector:Ei.injector,inheritedData:Ei.inheritedData}),t=zr.cleanData,zr.cleanData=function(e){for(var n,r,i=0;null!=(r=e[i]);i++)(n=zr._data(r,"events"))&&n.$destroy&&zr(r).triggerHandler("$destroy");t(e)}):Fr=Te,Xr.element=Fr,ci=!0}}(),function(n){u(n,{bootstrap:ie,copy:N,extend:u,merge:c,equals:B,element:Fr,forEach:r,injector:tt,noop:f,bind:z,toJson:U,fromJson:W,identity:p,isUndefined:v,isDefined:_,isString:w,isFunction:k,isObject:y,isNumber:L,isElement:O,isArray:ei,version:gi,isDate:M,lowercase:jr,uppercase:Hr,callbacks:{$$counter:0},getTestability:ae,$$minErr:t,$$csp:ii,reloadWithDebugInfo:oe}),(Vr=pe(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Mn}),e.provider("$compile",ht).directive({a:Ko,input:va,textarea:va,form:ra,script:as,select:us,option:cs,ngBind:ba,ngBindHtml:La,ngBindTemplate:wa,ngClass:ka,ngClassEven:Sa,ngClassOdd:xa,ngCloak:Ta,ngController:$a,ngForm:ia,ngHide:Qa,ngIf:Ea,ngInclude:Aa,ngInit:Ya,ngNonBindable:Wa,ngPluralize:Ja,ngRepeat:Xa,ngShow:Ka,ngStyle:es,ngSwitch:ts,ngSwitchWhen:ns,ngSwitchDefault:rs,ngOptions:Za,ngTransclude:os,ngModel:za,ngList:Oa,ngChange:Ma,pattern:hs,ngPattern:hs,required:ds,ngRequired:ds,minlength:ps,ngMinlength:ps,maxlength:fs,ngMaxlength:fs,ngValue:ya,ngModelOptions:Ua}).directive({ngInclude:Pa}).directive(Qo).directive(Da),e.provider({$anchorScroll:nt,$animate:Wi,$animateCss:Zi,$$animateJs:Vi,$$animateQueue:Ui,$$AnimateRunner:Gi,$$animateAsyncRun:qi,$browser:lt,$cacheFactory:ut,$controller:_t,$document:yt,$exceptionHandler:bt,$filter:jn,$$forceReflow:to,$interpolate:Yt,$interval:Ot,$http:Ct,$httpParamSerializer:Lt,$httpParamSerializerJQLike:Mt,$httpBackend:At,$xhrFactory:Et,$jsonpCallbacks:co,$location:Jt,$log:Xt,$parse:vn,$rootScope:Ln,$q:_n,$$q:yn,$sce:Tn,$sceDelegate:Sn,$sniffer:$n,$templateCache:ct,$templateRequest:Dn,$$testability:Cn,$timeout:En,$window:Yn,$$rAF:wn,$$jqLite:Ge,$$HashMap:Oi,$$cookieReader:In})}])}(Xr),Xr.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return-1==t?0:e.length-t-1}function n(e,n){var r=n;void 0===r&&(r=Math.min(t(e),3));var i=Math.pow(10,r);return{v:r,f:(e*i|0)%i}}var r={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var i=0|e,o=n(e,t);return 1==i&&0==o.v?r.ONE:r.OTHER}})}]),Fr(e.document).ready(function(){re(e.document,ie)})}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(e,t){"use strict";function n(e,t,n){if(!e)throw le("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function r(e,t){return e||t?e?t?(W(e)&&(e=e.join(" ")),W(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function i(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}function o(e,t,n){var r="";return e=W(e)?e:e&&X(e)&&e.length?e.split(/\s+/):[],U(e,function(e,i){e&&e.length>0&&(r+=i>0?" ":"",r+=n?t+e:e+t)}),r}function a(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function s(e){if(e instanceof Q)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===j)return e;break;default:return Q(l(e))}if(e.nodeType===j)return Q(e)}function l(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===j)return n}}function u(e,t,n){U(t,function(t){e.addClass(t,n)})}function c(e,t,n){U(t,function(t){e.removeClass(t,n)})}function d(e){return function(t,n){n.addClass&&(u(e,t,n.addClass),n.addClass=null),n.removeClass&&(c(e,t,n.removeClass),n.removeClass=null)}}function h(e){if(e=e||{},!e.$$prepared){var t=e.domOperation||ee;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=ee},e.$$prepared=!0}return e}function f(e,t){p(e,t),m(e,t)}function p(e,t){t.from&&(e.css(t.from),t.from=null)}function m(e,t){t.to&&(e.css(t.to),t.to=null)}function g(e,t,n){var r=t.options||{},i=n.options||{},o=(r.addClass||"")+" "+(i.addClass||""),a=(r.removeClass||"")+" "+(i.removeClass||""),s=v(e.attr("class"),o,a);i.preparationClasses&&(r.preparationClasses=k(i.preparationClasses,r.preparationClasses),delete i.preparationClasses);var l=r.domOperation!==ee?r.domOperation:null;return V(r,i),l&&(r.domOperation=l),s.addClass?r.addClass=s.addClass:r.addClass=null,s.removeClass?r.removeClass=s.removeClass:r.removeClass=null,t.addClass=r.addClass,t.removeClass=r.removeClass,r}function v(e,t,n){function r(e){X(e)&&(e=e.split(" "));var t={};return U(e,function(e){e.length&&(t[e]=!0)}),t}var i={};e=r(e),t=r(t),U(t,function(e,t){i[t]=1}),n=r(n),U(n,function(e,t){i[t]=1===i[t]?null:-1});var o={addClass:"",removeClass:""};return U(i,function(t,n){var r,i;1===t?(r="addClass",i=!e[n]||e[n+N]):-1===t&&(r="removeClass",i=e[n]||e[n+H]),i&&(o[r].length&&(o[r]+=" "),o[r]+=n)}),o}function _(e){return e instanceof Q?e[0]:e}function y(e,t,n){var r="";t&&(r=o(t,B,!0)),n.addClass&&(r=k(r,o(n.addClass,H))),n.removeClass&&(r=k(r,o(n.removeClass,N))),r.length&&(n.preparationClasses=r,e.addClass(r))}function b(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}function w(e,t){var n=t?"-"+t+"s":"";return M(e,[ae,n]),[ae,n]}function L(e,t){var n=t?"paused":"",r=O+re;return M(e,[r,n]),[r,n]}function M(e,t){var n=t[0],r=t[1];e.style[n]=r}function k(e,t){return e?t?e+" "+t:e:t}function x(e){return[oe,e+"s"]}function S(e,t){return[t?ie:ae,e+"s"]}function T(e,t,n){var r=Object.create(null),i=e.getComputedStyle(t)||{};return U(n,function(e,t){var n=i[e];if(n){var o=n.charAt(0);("-"===o||"+"===o||o>=0)&&(n=$(n)),0===n&&(n=null),r[t]=n}}),r}function $(e){var t=0,n=e.split(/\s*,\s*/);return U(n,function(e){"s"===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function D(e){return 0===e||null!=e}function C(e,t){var n=P,r=e+"s";return t?n+=te:r+=" linear all",[n,r]}function E(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function A(e,t,n){U(n,function(n){e[n]=q(e[n])?e[n]:t.style.getPropertyValue(n)})}var P,Y,O,I,j=1,H="-add",N="-remove",B="ng-",R="ng-animate",F="$$ngAnimateChildren";void 0===e.ontransitionend&&void 0!==e.onwebkittransitionend?("-webkit-",P="WebkitTransition",Y="webkitTransitionEnd transitionend"):(P="transition",Y="transitionend"),void 0===e.onanimationend&&void 0!==e.onwebkitanimationend?("-webkit-",O="WebkitAnimation",I="webkitAnimationEnd animationend"):(O="animation",I="animationend");var z,V,U,W,q,G,Z,J,X,K,Q,ee,te="Duration",ne="TimingFunction",re="PlayState",ie=O+"Delay",oe=O+te,ae=P+"Delay",se=P+te,le=t.$$minErr("ng"),ue=["$$rAF",function(e){function t(e){r=r.concat(e),n()}function n(){if(r.length){for(var t=r.shift(),o=0;o<t.length;o++)t[o]();i||e(function(){i||n()})}}var r,i;return r=t.queue=[],t.waitUntilQuiet=function(t){i&&i(),i=e(function(){i=null,t(),n()})},t}],ce=["$interpolate",function(e){return{link:function(t,n,r){function i(e){e="on"===e||"true"===e,n.data(F,e)}var o=r.ngAnimateChildren;X(o)&&0===o.length?n.data(F,!0):(i(e(o)(t)),r.$observe("ngAnimateChildren",i))}}}],de="$$animateCss",he=1e3,fe=3,pe=1.5,me={transitionDuration:se,transitionDelay:ae,transitionProperty:P+"Property",animationDuration:oe,animationDelay:ie,animationIterationCount:O+"IterationCount"},ge={transitionDuration:se,transitionDelay:ae,animationDuration:oe,animationDelay:ie},ve=["$animateProvider",function(e){var t=E(),n=E();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,r,s,l,u,c,g,v){function y(e,t){var n="$$ngAnimateParentKey",r=e.parentNode;return(r[n]||(r[n]=++R))+"-"+e.getAttribute("class")+"-"+t}function b(n,r,i,o){var a=t.get(i);return a||(a=T(e,n,o),"infinite"===a.animationIterationCount&&(a.animationIterationCount=1)),t.put(i,a),a}function k(i,a,s,l){var u;if(t.count(s)>0&&!(u=n.get(s))){var c=o(a,"-stagger");r.addClass(i,c),u=T(e,i,l),u.animationDuration=Math.max(u.animationDuration,0),u.transitionDuration=Math.max(u.transitionDuration,0),r.removeClass(i,c),n.put(s,u)}return u||{}}function $(e){F.push(e),g.waitUntilQuiet(function(){t.flush(),n.flush();for(var e=u(),r=0;r<F.length;r++)F[r](e);F.length=0})}function E(e,t,n){var r=b(e,t,n,me),i=r.animationDelay,o=r.transitionDelay;return r.maxDelay=i&&o?Math.max(i,o):i||o,r.maxDuration=Math.max(r.animationDuration*r.animationIterationCount,r.transitionDuration),r}var j=d(r),R=0,F=[];return function(e,n){function u(){g()}function d(){g(!0)}function g(t){if(!(Z||X&&J)){Z=!0,J=!1,V.$$skipPreparationClasses||r.removeClass(e,be),r.removeClass(e,Le),L(G,!1),w(G,!1),U(se,function(e){G.style[e[0]]=""}),j(e,V),f(e,V),Object.keys(q).length&&U(q,function(e,t){e?G.style.setProperty(t,e):G.style.removeProperty(t)}),V.onDone&&V.onDone(),ce&&ce.length&&e.off(ce.join(" "),R);var n=e.data(de);n&&(l.cancel(n[0].timer),e.removeData(de)),K&&K.complete(!t)}}function b(e){Oe.blockTransition&&w(G,e),Oe.blockKeyframeAnimation&&L(G,!!e)}function T(){return K=new s({end:u,cancel:d}),$(ee),g(),{$$willAnimate:!1,start:function(){return K},end:u}}function R(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),r=parseFloat(t.elapsedTime.toFixed(fe));Math.max(n-ae,0)>=re&&r>=ie&&(X=!0,g())}function F(){function t(){if(!Z){if(b(!1),U(se,function(e){var t=e[0],n=e[1];G.style[t]=n}),j(e,V),r.addClass(e,Le),Oe.recalculateTimingStyles){if(we=G.className+" "+be,ke=y(G,we),Pe=E(G,we,ke),Ye=Pe.maxDelay,te=Math.max(Ye,0),0===(ie=Pe.maxDuration))return void g();Oe.hasTransitions=Pe.transitionDuration>0,Oe.hasAnimations=Pe.animationDuration>0}if(Oe.applyAnimationDelay&&(Ye="boolean"!=typeof V.delay&&D(V.delay)?parseFloat(V.delay):Ye,te=Math.max(Ye,0),Pe.animationDelay=Ye,Ie=S(Ye,!0),se.push(Ie),G.style[Ie[0]]=Ie[1]),re=te*he,oe=ie*he,V.easing){var t,i=V.easing;Oe.hasTransitions&&(t=P+ne,se.push([t,i]),G.style[t]=i),Oe.hasAnimations&&(t=O+ne,se.push([t,i]),G.style[t]=i)}Pe.transitionDuration&&ce.push(Y),Pe.animationDuration&&ce.push(I),ae=Date.now();var o=re+pe*oe,a=ae+o,s=e.data(de)||[],u=!0;if(s.length){var c=s[0];u=a>c.expectedEndTime,u?l.cancel(c.timer):s.push(g)}if(u){var d=l(n,o,!1);s[0]={timer:d,expectedEndTime:a},s.push(g),e.data(de,s)}ce.length&&e.on(ce.join(" "),R),V.to&&(V.cleanupStyles&&A(q,G,Object.keys(V.to)),m(e,V))}}function n(){var t=e.data(de);if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData(de)}}if(!Z){if(!G.parentNode)return void g();var i=function(e){if(X)J&&e&&(J=!1,g());else if(J=!e,Pe.animationDuration){var t=L(G,J);J?se.push(t):a(se,t)}},o=Ee>0&&(Pe.transitionDuration&&0===xe.transitionDuration||Pe.animationDuration&&0===xe.animationDuration)&&Math.max(xe.animationDelay,xe.transitionDelay);o?l(t,Math.floor(o*Ee*he),!1):t(),Q.resume=function(){i(!0)},Q.pause=function(){i(!1)}}}var V=n||{};V.$$prepared||(V=h(z(V)));var q={},G=_(e);if(!G||!G.parentNode||!v.enabled())return T();var Z,J,X,K,Q,te,re,ie,oe,ae,se=[],le=e.attr("class"),ue=i(V),ce=[];if(0===V.duration||!c.animations&&!c.transitions)return T();var me=V.event&&W(V.event)?V.event.join(" "):V.event,ve=me&&V.structural,_e="",ye="";ve?_e=o(me,B,!0):me&&(_e=me),V.addClass&&(ye+=o(V.addClass,H)),V.removeClass&&(ye.length&&(ye+=" "),ye+=o(V.removeClass,N)),V.applyClassesEarly&&ye.length&&j(e,V);var be=[_e,ye].join(" ").trim(),we=le+" "+be,Le=o(be,"-active"),Me=ue.to&&Object.keys(ue.to).length>0;if(!((V.keyframeStyle||"").length>0||Me||be))return T();var ke,xe;if(V.stagger>0){var Se=parseFloat(V.stagger);xe={transitionDelay:Se,animationDelay:Se,transitionDuration:0,animationDuration:0}}else ke=y(G,we),xe=k(G,be,ke,ge);V.$$skipPreparationClasses||r.addClass(e,be);var Te;if(V.transitionStyle){var $e=[P,V.transitionStyle];M(G,$e),se.push($e)}if(V.duration>=0){Te=G.style[P].length>0;var De=C(V.duration,Te);M(G,De),se.push(De)}if(V.keyframeStyle){var Ce=[O,V.keyframeStyle];M(G,Ce),se.push(Ce)}var Ee=xe?V.staggerIndex>=0?V.staggerIndex:t.count(ke):0,Ae=0===Ee;Ae&&!V.skipBlocking&&w(G,9999);var Pe=E(G,we,ke),Ye=Pe.maxDelay;te=Math.max(Ye,0),ie=Pe.maxDuration;var Oe={};if(Oe.hasTransitions=Pe.transitionDuration>0,Oe.hasAnimations=Pe.animationDuration>0,Oe.hasTransitionAll=Oe.hasTransitions&&"all"===Pe.transitionProperty,Oe.applyTransitionDuration=Me&&(Oe.hasTransitions&&!Oe.hasTransitionAll||Oe.hasAnimations&&!Oe.hasTransitions),Oe.applyAnimationDuration=V.duration&&Oe.hasAnimations,Oe.applyTransitionDelay=D(V.delay)&&(Oe.applyTransitionDuration||Oe.hasTransitions),Oe.applyAnimationDelay=D(V.delay)&&Oe.hasAnimations,Oe.recalculateTimingStyles=ye.length>0,(Oe.applyTransitionDuration||Oe.applyAnimationDuration)&&(ie=V.duration?parseFloat(V.duration):ie,Oe.applyTransitionDuration&&(Oe.hasTransitions=!0,Pe.transitionDuration=ie,Te=G.style[P+"Property"].length>0,se.push(C(ie,Te))),Oe.applyAnimationDuration&&(Oe.hasAnimations=!0,Pe.animationDuration=ie,se.push(x(ie)))),0===ie&&!Oe.recalculateTimingStyles)return T();if(null!=V.delay){var Ie;"boolean"!=typeof V.delay&&(Ie=parseFloat(V.delay),te=Math.max(Ie,0)),Oe.applyTransitionDelay&&se.push(S(Ie)),Oe.applyAnimationDelay&&se.push(S(Ie,!0))}return null==V.duration&&Pe.transitionDuration>0&&(Oe.recalculateTimingStyles=Oe.recalculateTimingStyles||Ae),re=te*he,oe=ie*he,V.skipBlocking||(Oe.blockTransition=Pe.transitionDuration>0,Oe.blockKeyframeAnimation=Pe.animationDuration>0&&xe.animationDelay>0&&0===xe.animationDuration),V.from&&(V.cleanupStyles&&A(q,G,Object.keys(V.from)),p(e,V)),Oe.blockTransition||Oe.blockKeyframeAnimation?b(ie):V.skipBlocking||w(G,!1),{$$willAnimate:!0,end:u,start:function(){if(!Z)return Q={end:u,cancel:d,resume:null,pause:null},K=new s(Q),$(F),K}}}}]}],_e=["$$animationProvider",function(e){function t(e){return e.parentNode&&11===e.parentNode.nodeType}e.drivers.push("$$animateCssDriver");var n="ng-animate-shim",r="ng-anchor-out";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,i,o,a,s,l,u){function c(e){return e.replace(/\bng-\S+\b/g,"")}function d(e,t){return X(e)&&(e=e.split(" ")),X(t)&&(t=t.split(" ")),e.filter(function(e){return-1===t.indexOf(e)}).join(" ")}function h(t,i,a){function s(e){var t={},n=_(e).getBoundingClientRect();return U(["width","height","top","left"],function(e){var r=n[e];switch(e){case"top":r+=m.scrollTop;break;case"left":r+=m.scrollLeft}t[e]=Math.floor(r)+"px"}),t}function l(e){return e.attr("class")||""}function u(){var t=c(l(a)),n=d(t,p),i=d(p,t),o=e(f,{to:s(a),addClass:"ng-anchor-in "+n,removeClass:r+" "+i,delay:!0});return o.$$willAnimate?o:null}function h(){f.remove(),i.removeClass(n),a.removeClass(n)}var f=Q(_(i).cloneNode(!0)),p=c(l(f));i.addClass(n),a.addClass(n),f.addClass("ng-anchor"),v.append(f);var g,y=function(){var t=e(f,{addClass:r,delay:!0,from:s(i)});return t.$$willAnimate?t:null}();if(!y&&!(g=u()))return h();var b=y||g;return{start:function(){function e(){n&&n.end()}var t,n=b.start();return n.done(function(){if(n=null,!g&&(g=u()))return n=g.start(),n.done(function(){n=null,h(),t.complete()}),n;h(),t.complete()}),t=new o({end:e,cancel:e})}}}function f(e,t,n,r){var i=p(e),a=p(t),s=[];if(U(r,function(e){var t=e.out,r=e.in,i=h(n,t,r);i&&s.push(i)}),i||a||0!==s.length)return{start:function(){function e(){U(t,function(e){e.end()})}var t=[];i&&t.push(i.start()),a&&t.push(a.start()),U(s,function(e){t.push(e.start())});var n=new o({end:e,cancel:e});return o.all(t,function(e){n.complete(e)}),n}}}function p(t){var n=t.element,r=t.options||{};t.structural&&(r.event=t.event,r.structural=!0,r.applyClassesEarly=!0,"leave"===t.event&&(r.onDone=r.domOperation)),r.preparationClasses&&(r.event=k(r.event,r.preparationClasses));var i=e(n,r);return i.$$willAnimate?i:null}if(!s.animations&&!s.transitions)return ee;var m=u[0].body,g=_(a),v=Q(t(g)||m.contains(g)?g:m);return function(e){return e.from&&e.to?f(e.from,e.to,e.classes,e.anchors):p(e)}}]}],ye=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,r){function i(n){n=W(n)?n:n.split(" ");for(var r=[],i={},o=0;o<n.length;o++){var a=n[o],s=e.$$registeredAnimations[a];s&&!i[a]&&(r.push(t.get(s)),i[a]=!0)}return r}var o=d(r);return function(e,t,r,a){function s(){a.domOperation(),o(e,a)}function l(){p=!0,s(),f(e,a)}function u(e,t,r,i,o){var a;switch(r){case"animate":a=[t,i.from,i.to,o];break;case"setClass":a=[t,v,_,o];break;case"addClass":a=[t,v,o];break;case"removeClass":a=[t,_,o];break;default:a=[t,o]}a.push(i);var s=e.apply(e,a);if(s)if(Z(s.start)&&(s=s.start()),s instanceof n)s.done(o);else if(Z(s))return s;return ee}function c(e,t,r,i,o){var a=[];return U(i,function(i){var s=i[o];s&&a.push(function(){var i,o,a=!1,l=function(e){a||(a=!0,(o||ee)(e),i.complete(!e))};return i=new n({end:function(){l()},cancel:function(){l(!0)}}),o=u(s,e,t,r,function(e){l(!1===e)}),i})}),a}function d(e,t,r,i,o){var a=c(e,t,r,i,o);if(0===a.length){var s,l;"beforeSetClass"===o?(s=c(e,"removeClass",r,i,"beforeRemoveClass"),l=c(e,"addClass",r,i,"beforeAddClass")):"setClass"===o&&(s=c(e,"removeClass",r,i,"removeClass"),l=c(e,"addClass",r,i,"addClass")),s&&(a=a.concat(s)),l&&(a=a.concat(l))}if(0!==a.length)return function(e){var t=[];return a.length&&U(a,function(e){t.push(e())}),t.length?n.all(t,e):e(),function(e){U(t,function(t){e?t.cancel():t.end()})}}}var p=!1;3===arguments.length&&J(r)&&(a=r,r=null),a=h(a),r||(r=e.attr("class")||"",a.addClass&&(r+=" "+a.addClass),a.removeClass&&(r+=" "+a.removeClass));var m,g,v=a.addClass,_=a.removeClass,y=i(r);if(y.length){var b,w;"leave"===t?(w="leave",b="afterLeave"):(w="before"+t.charAt(0).toUpperCase()+t.substr(1),b=t),"enter"!==t&&"move"!==t&&(m=d(e,t,a,y,w)),g=d(e,t,a,y,b)}if(m||g){var L;return{$$willAnimate:!0,end:function(){return L?L.end():(l(),L=new n,L.complete(!0)),L},start:function(){function e(e){l(e),L.complete(e)}function t(t){p||((r||ee)(t),e(t))}if(L)return L;L=new n;var r,i=[];return m&&i.push(function(e){r=m(e)}),i.length?i.push(function(e){s(),e(!0)}):s(),g&&i.push(function(e){r=g(e)}),L.setHost({end:function(){t()},cancel:function(){t(!0)}}),n.chain(i,e),L}}}}}]}],be=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){function n(t){var n=t.element,r=t.event,i=t.options,o=t.classes;return e(n,r,o,i)}return function(e){if(e.from&&e.to){var r=n(e.from),i=n(e.to);if(!r&&!i)return;return{start:function(){function e(){return function(){U(o,function(e){e.end()})}}function n(e){a.complete(e)}var o=[];r&&o.push(r.start()),i&&o.push(i.start()),t.all(o,n);var a=new t({end:e(),cancel:e()});return a}}}return n(e)}}]}],we="data-ng-animate",Le="$ngAnimatePin",Me=["$animateProvider",function(t){function r(e){if(!e)return null;var t=e.split(p),n=Object.create(null);return U(t,function(e){n[e]=!0}),n}function i(e,t){if(e&&t){var n=r(t);return e.split(p).some(function(e){return n[e]})}}function o(e,t,n,r){return m[e].some(function(e){return e(t,n,r)})}function a(e,t){var n=(e.addClass||"").length>0,r=(e.removeClass||"").length>0;return t?n&&r:n||r}var u=1,c=2,p=" ",m=this.rules={skip:[],cancel:[],join:[]};m.join.push(function(e,t,n){return!t.structural&&a(t)}),m.skip.push(function(e,t,n){return!t.structural&&!a(t)}),m.skip.push(function(e,t,n){return"leave"===n.event&&t.structural}),m.skip.push(function(e,t,n){return n.structural&&n.state===c&&!t.structural}),m.cancel.push(function(e,t,n){return n.structural&&t.structural}),m.cancel.push(function(e,t,n){return n.state===c&&t.structural}),m.cancel.push(function(e,t,n){if(n.structural)return!1;var r=t.addClass,o=t.removeClass,a=n.addClass,s=n.removeClass;return!(K(r)&&K(o)||K(a)&&K(s))&&(i(r,s)||i(o,a))}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(r,i,p,m,v,w,L,M,k,x){function S(){var e=!1;return function(t){e?t():i.$$postDigest(function(){e=!0,t()})}}function T(e,t){return g(e,t,{})}function $(e,t,n){var r=_(t),i=_(e),o=[],a=Z[n];return a&&U(a,function(e){re.call(e.node,r)?o.push(e.callback):"leave"===n&&re.call(e.node,i)&&o.push(e.callback)}),o}function D(e,t,n){var r=l(t);return e.filter(function(e){return!(e.node===r&&(!n||e.callback===n))})}function C(e,t){"close"!==e||t[0].parentNode||ie.off(t)}function E(e,t,n){function l(t,n,i,o){x(function(){var t=$(v,e,n);t.length?r(function(){U(t,function(t){t(e,i,o)}),C(i,e)}):C(i,e)}),t.progress(n,i,o)}function d(t){b(e,M),ne(e,M),f(e,M),M.domOperation(),k.complete(!t)}var p,v,M=z(n);e=s(e),e&&(p=_(e),v=e.parent()),M=h(M);var k=new L,x=S();if(W(M.addClass)&&(M.addClass=M.addClass.join(" ")),M.addClass&&!X(M.addClass)&&(M.addClass=null),W(M.removeClass)&&(M.removeClass=M.removeClass.join(" ")),M.removeClass&&!X(M.removeClass)&&(M.removeClass=null),M.from&&!J(M.from)&&(M.from=null),M.to&&!J(M.to)&&(M.to=null),!p)return d(),k;var D=[p.className,M.addClass,M.removeClass].join(" ");if(!te(D))return d(),k;var E=["enter","move","leave"].indexOf(t)>=0,Y=m[0].hidden,j=!B||Y||N.get(p),R=!j&&H.get(p)||{},F=!!R.state;if(j||F&&R.state===u||(j=!O(e,v,t)),j)return Y&&l(k,t,"start"),d(),Y&&l(k,t,"close"),k;E&&A(e);var V={structural:E,element:e,event:t,addClass:M.addClass,removeClass:M.removeClass,close:d,options:M,runner:k};if(F){if(o("skip",e,V,R))return R.state===c?(d(),k):(g(e,R,V),R.runner);if(o("cancel",e,V,R))if(R.state===c)R.runner.end();else{if(!R.structural)return g(e,R,V),R.runner;R.close()}else{if(o("join",e,V,R)){if(R.state!==c)return y(e,E?t:null,M),t=V.event=R.event,M=g(e,R,V),R.runner;T(e,V)}}}else T(e,V);var q=V.structural;if(q||(q="animate"===V.event&&Object.keys(V.options.to||{}).length>0||a(V)),!q)return d(),P(e),k;var G=(R.counter||0)+1;return V.counter=G,I(e,u,V),i.$$postDigest(function(){var n=H.get(p),r=!n;n=n||{};var i=e.parent()||[],o=i.length>0&&("animate"===n.event||n.structural||a(n));if(r||n.counter!==G||!o)return r&&(ne(e,M),f(e,M)),(r||E&&n.event!==t)&&(M.domOperation(),k.end()),void(o||P(e));t=!n.structural&&a(n,!0)?"setClass":n.event,I(e,c);var s=w(e,t,n.options);k.setHost(s),l(k,t,"start",{}),s.done(function(n){d(!n);var r=H.get(p);r&&r.counter===G&&P(_(e)),l(k,t,"close",{})})}),k}function A(e){var t=_(e),n=t.querySelectorAll("["+we+"]");U(n,function(e){var t=parseInt(e.getAttribute(we),10),n=H.get(e);if(n)switch(t){case c:n.runner.end();case u:H.remove(e)}})}function P(e){var t=_(e);t.removeAttribute(we),H.remove(t)}function Y(e,t){return _(e)===_(t)}function O(e,t,n){var r,i=Q(m[0].body),o=Y(e,i)||"HTML"===e[0].nodeName,a=Y(e,p),s=!1,l=N.get(_(e)),u=Q.data(e[0],Le);for(u&&(t=u),t=_(t);t&&(a||(a=Y(t,p)),t.nodeType===j);){var c=H.get(t)||{};if(!s){var d=N.get(t);if(!0===d&&!1!==l){l=!0;break}!1===d&&(l=!1),s=c.structural}if(K(r)||!0===r){var h=Q.data(t,F);q(h)&&(r=h)}if(s&&!1===r)break;if(o||(o=Y(t,i)),o&&a)break;t=a||!(u=Q.data(t,Le))?t.parentNode:_(u)}return(!s||r)&&!0!==l&&a&&o}function I(e,t,n){n=n||{},n.state=t;var r=_(e);r.setAttribute(we,t);var i=H.get(r),o=i?V(i,n):n;H.put(r,o)}var H=new v,N=new v,B=null,R=i.$watch(function(){return 0===M.totalPendingRequests},function(e){e&&(R(),i.$$postDigest(function(){i.$$postDigest(function(){null===B&&(B=!0)})}))}),Z=Object.create(null),ee=t.classNameFilter(),te=ee?function(e){return ee.test(e)}:function(){return!0},ne=d(k),re=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},ie={on:function(e,t,n){var r=l(t);Z[e]=Z[e]||[],Z[e].push({node:r,callback:n}),Q(t).on("$destroy",function(){H.get(r)||ie.off(e,t,n)})},off:function(e,t,n){if(1!==arguments.length||X(arguments[0])){var r=Z[e];r&&(Z[e]=1===arguments.length?null:D(r,t,n))}else{t=arguments[0];for(var i in Z)Z[i]=D(Z[i],t)}},pin:function(e,t){n(G(e),"element","not an element"),n(G(t),"parentElement","not an element"),e.data(Le,t)},push:function(e,t,n,r){return n=n||{},n.domOperation=r,E(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!B;else{if(G(e)){var r=_(e);1===n?t=!N.get(r):N.put(r,!t)}else t=B=!!e}return t}};return ie}]}],ke=["$animateProvider",function(e){function t(e,t){e.data(s,t)}function n(e){e.removeData(s)}function i(e){return e.data(s)}var o="ng-animate-ref",a=this.drivers=[],s="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,s,l,u,c,p){function m(e){function t(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,o=n.parentNode;i.put(n,e);for(var a;o;){if(a=i.get(o)){a.processed||(a=t(a));break}o=o.parentNode}return(a||r).children.push(e),e}var n,r={children:[]},i=new c;for(n=0;n<e.length;n++){var o=e[n];i.put(o.domNode,e[n]={domNode:o.domNode,fn:o.fn,children:[]})}for(n=0;n<e.length;n++)t(e[n]);return function(e){var t,n=[],r=[];for(t=0;t<e.children.length;t++)r.push(e.children[t]);var i=r.length,o=0,a=[];for(t=0;t<r.length;t++){var s=r[t];i<=0&&(i=o,o=0,n.push(a),a=[]),a.push(s.fn),s.children.forEach(function(e){o++,r.push(e)}),i--}return a.length&&n.push(a),n}(r)}var g=[],v=d(e);return function(c,d,y){function b(e){var t="["+o+"]",n=e.hasAttribute(o)?[e]:e.querySelectorAll(t),r=[];return U(n,function(e){var t=e.getAttribute(o);t&&t.length&&r.push(e)}),r}function w(e){var t=[],n={};U(e,function(e,r){var i=e.element,a=_(i),s=e.event,l=["enter","move"].indexOf(s)>=0,u=e.structural?b(a):[];if(u.length){var c=l?"to":"from";U(u,function(e){var t=e.getAttribute(o);n[t]=n[t]||{},n[t][c]={animationID:r,element:Q(e)}})}else t.push(e)});var r={},i={};return U(n,function(n,o){var a=n.from,s=n.to;if(!a||!s){var l=a?a.animationID:s.animationID,u=l.toString();return void(r[u]||(r[u]=!0,t.push(e[l])))}var c=e[a.animationID],d=e[s.animationID],h=a.animationID.toString();if(!i[h]){var f=i[h]={structural:!0,beforeStart:function(){c.beforeStart(),d.beforeStart()},close:function(){c.close(),d.close()},classes:L(c.classes,d.classes),from:c,to:d,anchors:[]};f.classes.length?t.push(f):(t.push(c),t.push(d))}i[h].anchors.push({out:a.element,in:s.element})}),t}function L(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],r=0;r<e.length;r++){var i=e[r];if("ng-"!==i.substring(0,3))for(var o=0;o<t.length;o++)if(i===t[o]){n.push(i);break}}return n.join(" ")}function M(e){for(var t=a.length-1;t>=0;t--){var n=a[t],r=l.get(n),i=r(e);if(i)return i}}function k(){c.addClass(R),E&&e.addClass(c,E),A&&(e.removeClass(c,A),A=null)}function x(e,t){function n(e){var n=i(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}function S(){var e=i(c);!e||"leave"===d&&y.$$domOperationFired||e.end()}function T(t){c.off("$destroy",S),n(c),v(c,y),f(c,y),y.domOperation(),E&&e.removeClass(c,E),c.removeClass(R),D.complete(!t)}y=h(y);var $=["enter","move","leave"].indexOf(d)>=0,D=new u({end:function(){T()},cancel:function(){T(!0)}});if(!a.length)return T(),D;t(c,D);var C=r(c.attr("class"),r(y.addClass,y.removeClass)),E=y.tempClasses;E&&(C+=" "+E,y.tempClasses=null);var A;return $&&(A="ng-"+d+"-prepare",e.addClass(c,A)),g.push({element:c,classes:C,event:d,structural:$,options:y,beforeStart:k,close:T}),c.on("$destroy",S),g.length>1?D:(s.$$postDigest(function(){var e=[];U(g,function(t){i(t.element)?e.push(t):t.close()}),g.length=0;var t=w(e),n=[];U(t,function(e){n.push({domNode:_(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close;if(i(e.anchors?e.from.element||e.to.element:e.element)){var r=M(e);r&&(t=r.start)}if(t){var o=t();o.done(function(e){n(!e)}),x(e,o)}else n()}})}),p(m(n))}),D)}}]}],xe=["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,r,i,o){var a,s;t.$watchCollection(r.ngAnimateSwap||r.for,function(r){a&&e.leave(a),s&&(s.$destroy(),s=null),(r||0===r)&&(s=t.$new(),o(s,function(t){a=t,e.enter(t,null,n)}))})}}}];t.module("ngAnimate",[],function(){ee=t.noop,z=t.copy,V=t.extend,Q=t.element,U=t.forEach,W=t.isArray,X=t.isString,J=t.isObject,K=t.isUndefined,q=t.isDefined,Z=t.isFunction,G=t.isElement
-}).directive("ngAnimateSwap",xe).directive("ngAnimateChildren",ce).factory("$$rAFScheduler",ue).provider("$$animateQueue",Me).provider("$$animation",ke).provider("$animateCss",ve).provider("$$animateCssDriver",_e).provider("$$animateJs",ye).provider("$$animateJsDriver",be)}(window,window.angular),function(e,t){"use strict";function n(){function n(e,t){var n,r={},i=e.split(",");for(n=0;n<i.length;n++)r[t?l(i[n]):i[n]]=!0;return r}function r(t,n){null===t||void 0===t?t="":"string"!=typeof t&&(t=""+t),_.innerHTML=t;var r=5;do{if(0===r)throw h("uinput","Failed to sanitize html because the input is unstable");r--,e.document.documentMode&&g(_),t=_.innerHTML,_.innerHTML=t}while(t!==_.innerHTML);for(var i=_.firstChild;i;){switch(i.nodeType){case 1:n.start(i.nodeName.toLowerCase(),f(i.attributes));break;case 3:n.chars(i.textContent)}var o;if(!((o=i.firstChild)||(1===i.nodeType&&n.end(i.nodeName.toLowerCase()),o=i.nextSibling)))for(;null==o&&(i=i.parentNode)!==_;)o=i.nextSibling,1===i.nodeType&&n.end(i.nodeName.toLowerCase());i=o}for(;i=_.firstChild;)_.removeChild(i)}function f(e){for(var t={},n=0,r=e.length;n<r;n++){var i=e[n];t[i.name]=i.value}return t}function p(e){return e.replace(/&/g,"&amp;").replace(y,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(b,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function m(e,t){var n=!1,r=i(e,e.push);return{start:function(e,i){e=l(e),!n&&$[e]&&(n=e),n||!0!==D[e]||(r("<"),r(e),a(i,function(n,i){var o=l(i),a="img"===e&&"src"===o||"background"===o;!0!==P[o]||!0===C[o]&&!t(n,a)||(r(" "),r(i),r('="'),r(p(n)),r('"'))}),r(">"))},end:function(e){e=l(e),n||!0!==D[e]||!0===w[e]||(r("</"),r(e),r(">")),e==n&&(n=!1)},chars:function(e){n||r(p(e))}}}function g(t){for(;t;){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,r=0,i=n.length;r<i;r++){var o=n[r],a=o.name.toLowerCase();"xmlns:ns1"!==a&&0!==a.lastIndexOf("ns1:",0)||(t.removeAttributeNode(o),r--,i--)}var s=t.firstChild;s&&g(s),t=t.nextSibling}}var v=!1;this.$get=["$$sanitizeUri",function(e){return v&&o(D,T),function(t){var n=[];return c(t,d(n,function(t,n){return!/^unsafe:/.test(e(t,n))})),n.join("")}}],this.enableSvg=function(e){return s(e)?(v=e,this):v},i=t.bind,o=t.extend,a=t.forEach,s=t.isDefined,l=t.lowercase,u=t.noop,c=r,d=m;var _,y=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/([^#-~ |!])/g,w=n("area,br,col,hr,img,wbr"),L=n("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),M=n("rp,rt"),k=o({},M,L),x=o({},L,n("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),S=o({},M,n("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),T=n("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),$=n("script,style"),D=o({},w,x,S,k),C=n("background,cite,href,longdesc,src,xlink:href"),E=n("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),A=n("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),P=o({},C,A,E);!function(e){var t;if(!e.document||!e.document.implementation)throw h("noinert","Can't create an inert html document");t=e.document.implementation.createHTMLDocument("inert");var n=t.documentElement||t.getDocumentElement(),r=n.getElementsByTagName("body");if(1===r.length)_=r[0];else{var i=t.createElement("html");_=t.createElement("body"),i.appendChild(_),t.appendChild(i)}}(e)}function r(e){var t=[];return d(t,u).chars(e),t.join("")}var i,o,a,s,l,u,c,d,h=t.$$minErr("$sanitize");t.module("ngSanitize",[]).provider("$sanitize",n),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,i=/^mailto:/i,o=t.$$minErr("linky"),a=t.isDefined,s=t.isFunction,l=t.isObject,u=t.isString;return function(t,c,d){function h(e){e&&_.push(r(e))}if(null==t||""===t)return t;if(!u(t))throw o("notstring","Expected string but received: {0}",t);for(var f,p,m,g=s(d)?d:l(d)?function(){return d}:function(){return{}},v=t,_=[];f=v.match(n);)p=f[0],f[2]||f[4]||(p=(f[3]?"http://":"mailto:")+p),m=f.index,h(v.substr(0,m)),function(e,t){var n,r=g(e);_.push("<a ");for(n in r)_.push(n+'="'+r[n]+'" ');!a(c)||"target"in r||_.push('target="',c,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),h(t),_.push("</a>")}(p,f[0].replace(i,"")),v=v.substring(m+f[0].length);return h(v),e(_.join(""))}}])}(window,window.angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){"use strict";function r(e,t){return z(new(z(function(){},{prototype:e})),t)}function i(e){return F(arguments,function(t){t!==e&&F(t,function(t,n){e.hasOwnProperty(n)||(e[n]=t)})}),e}function o(e,t){var n=[];for(var r in e.path){if(e.path[r]!==t.path[r])break;n.push(e.path[r])}return n}function a(e){if(Object.keys)return Object.keys(e);var t=[];return F(e,function(e,n){t.push(n)}),t}function s(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,r=Number(arguments[2])||0;for(r=r<0?Math.ceil(r):Math.floor(r),r<0&&(r+=n);r<n;r++)if(r in e&&e[r]===t)return r;return-1}function l(e,t,n,r){var i,l=o(n,r),u={},c=[];for(var d in l)if(l[d]&&l[d].params&&(i=a(l[d].params),i.length))for(var h in i)s(c,i[h])>=0||(c.push(i[h]),u[i[h]]=e[i[h]]);return z({},u,t)}function u(e,t,n){if(!n){n=[];for(var r in e)n.push(r)}for(var i=0;i<n.length;i++){var o=n[i];if(e[o]!=t[o])return!1}return!0}function c(e,t){var n={};return F(e,function(e){n[e]=t[e]}),n}function d(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return F(n,function(n){n in e&&(t[n]=e[n])}),t}function h(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var r in e)-1==s(n,r)&&(t[r]=e[r]);return t}function f(e,t){var n=R(e),r=n?[]:{};return F(e,function(e,i){t(e,i)&&(r[n?r.length:i]=e)}),r}function p(e,t){var n=R(e)?[]:{};return F(e,function(e,r){n[r]=t(e,r)}),n}function m(e,t){var r=1,o=2,l={},u=[],c=l,d=z(e.when(l),{$$promises:l,$$values:l});this.study=function(l){function f(e,n){if(_[n]!==o){if(v.push(n),_[n]===r)throw v.splice(0,s(v,n)),new Error("Cyclic dependency: "+v.join(" -> "));if(_[n]=r,N(e))g.push(n,[function(){return t.get(e)}],u);else{var i=t.annotate(e);F(i,function(e){e!==n&&l.hasOwnProperty(e)&&f(l[e],e)}),g.push(n,e,i)}v.pop(),_[n]=o}}function p(e){return B(e)&&e.then&&e.$$promises}if(!B(l))throw new Error("'invocables' must be an object");var m=a(l||{}),g=[],v=[],_={};return F(l,f),l=v=_=null,function(r,o,a){function s(){--y||(b||i(_,o.$$values),f.$$values=_,f.$$promises=f.$$promises||!0,delete f.$$inheritedValues,u.resolve(_))}function l(e){f.$$failure=e,u.reject(e)}if(p(r)&&a===n&&(a=o,o=r,r=null),r){if(!B(r))throw new Error("'locals' must be an object")}else r=c;if(o){if(!p(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=d;var u=e.defer(),f=u.promise,v=f.$$promises={},_=z({},r),y=1+g.length/3,b=!1;if(j(o.$$failure))return l(o.$$failure),f;o.$$inheritedValues&&i(_,h(o.$$inheritedValues,m)),z(v,o.$$promises),o.$$values?(b=i(_,h(o.$$values,m)),f.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(f.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,l));for(var w=0,L=g.length;w<L;w+=3)r.hasOwnProperty(g[w])?s():function(n,i,o){function u(e){d.reject(e),l(e)}function c(){if(!j(f.$$failure))try{d.resolve(t.invoke(i,a,_)),d.promise.then(function(e){_[n]=e,s()},u)}catch(e){u(e)}}var d=e.defer(),h=0;F(o,function(e){v.hasOwnProperty(e)&&!r.hasOwnProperty(e)&&(h++,v[e].then(function(t){_[e]=t,--h||c()},u))}),h||c(),v[n]=d.promise}(g[w],g[w+1],g[w+2]);return f}},this.resolve=function(e,t,n,r){return this.study(e)(t,n,r)}}function g(e,t,n){this.fromConfig=function(e,t,n){return j(e.template)?this.fromString(e.template,t):j(e.templateUrl)?this.fromUrl(e.templateUrl,t):j(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return H(e)?e(t):e},this.fromUrl=function(n,r){return H(n)&&(n=n(r)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then(function(e){return e.data})},this.fromProvider=function(e,t,r){return n.invoke(e,null,r||{params:t})}}function v(e,t,i){function o(t,n,r,i){if(g.push(t),p[t])return p[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(m[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return m[t]=new W.Param(t,n,r,i),m[t]}function a(e,t,n,r){var i=["",""],o=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return o;switch(n){case!1:i=["(",")"+(r?"?":"")];break;case!0:o=o.replace(/\/$/,""),i=["(?:/(",")|/)?"];break;default:i=["("+n+"|",")?"]}return o+i[0]+t+i[1]}function s(i,o){var a,s,l,u,c;return a=i[2]||i[3],c=t.params[a],l=e.substring(h,i.index),s=o?i[4]:i[4]||("*"==i[1]?".*":null),s&&(u=W.type(s)||r(W.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:l,type:u,cfg:c}}t=z({params:{}},B(t)?t:{});var l,u=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,c=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,d="^",h=0,f=this.segments=[],p=i?i.params:{},m=this.params=i?i.params.$$new():new W.ParamSet,g=[];this.source=e;for(var v,_,y;(l=u.exec(e))&&(v=s(l,!1),!(v.segment.indexOf("?")>=0));)_=o(v.id,v.type,v.cfg,"path"),d+=a(v.segment,_.type.pattern.source,_.squash,_.isOptional),f.push(v.segment),h=u.lastIndex;y=e.substring(h);var b=y.indexOf("?");if(b>=0){var w=this.sourceSearch=y.substring(b);if(y=y.substring(0,b),this.sourcePath=e.substring(0,h+b),w.length>0)for(h=0;l=c.exec(w);)v=s(l,!0),_=o(v.id,v.type,v.cfg,"search"),h=u.lastIndex}else this.sourcePath=e,this.sourceSearch="";d+=a(y)+(!1===t.strict?"/?":"")+"$",f.push(y),this.regexp=new RegExp(d,t.caseInsensitive?"i":n),this.prefix=f[0],this.$$paramNames=g}function _(e){z(this,e)}function y(){function e(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}function i(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e}function o(){return{strict:m,caseInsensitive:h}}function l(e){return H(e)||R(e)&&H(e[e.length-1])}function u(){for(;L.length;){var e=L.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(b[e.name],d.invoke(e.def))}}function c(e){z(this,e||{})}W=this;var d,h=!1,m=!0,g=!1,b={},w=!0,L=[],M={string:{encode:e,decode:i,is:function(e){return null==e||!j(e)||"string"==typeof e},pattern:/[^\/]*/},int:{encode:e,decode:function(e){return parseInt(e,10)},is:function(e){return j(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^\/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};y.$$getDefaultValue=function(e){if(!l(e.value))return e.value;if(!d)throw new Error("Injectable functions cannot be called at configuration time");return d.invoke(e.value)},this.caseInsensitive=function(e){return j(e)&&(h=e),h},this.strictMode=function(e){return j(e)&&(m=e),m},this.defaultSquashPolicy=function(e){if(!j(e))return g;if(!0!==e&&!1!==e&&!N(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return g=e,e},this.compile=function(e,t){return new v(e,z(o(),t))},this.isMatcher=function(e){if(!B(e))return!1;var t=!0;return F(v.prototype,function(n,r){H(n)&&(t=t&&j(e[r])&&H(e[r]))}),t},this.type=function(e,t,n){if(!j(t))return b[e];if(b.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return b[e]=new _(z({name:e},t)),n&&(L.push({name:e,def:n}),w||u()),this},F(M,function(e,t){b[t]=new _(z({name:t},e))}),b=r(b,{}),this.$get=["$injector",function(e){return d=e,w=!1,u(),F(M,function(e,t){b[t]||(b[t]=new _(e))}),this}],this.Param=function(e,r,i,o){function u(){if(!d)throw new Error("Injectable functions cannot be called at configuration time");var e=d.invoke(i.$$fn);if(null!==e&&e!==n&&!m.type.is(e))throw new Error("Default value ("+e+") for parameter '"+m.id+"' is not an instance of Type ("+m.type.name+")");return e}function c(e){function t(e){return function(t){return t.from===e}}return e=function(e){var n=p(f(m.replace,t(e)),function(e){return e.to});return n.length?n[0]:e}(e),j(e)?m.type.$normalize(e):u()}function h(){return"{Param:"+e+" "+r+" squash: '"+w+"' optional: "+y+"}"}var m=this;i=function(e){var t=B(e)?a(e):[];return-1===s(t,"value")&&-1===s(t,"type")&&-1===s(t,"squash")&&-1===s(t,"array")&&(e={value:e}),e.$$fn=l(e.value)?e.value:function(){return e.value},e}(i),r=function(n,r,i){if(n.type&&r)throw new Error("Param '"+e+"' has two type configurations.");return r||(n.type?t.isString(n.type)?b[n.type]:n.type instanceof _?n.type:new _(n.type):"config"===i?b.any:b.string)}(i,r,o);var v=function(){var t={array:"search"===o&&"auto"},n=e.match(/\[\]$/)?{array:!0}:{};return z(t,n,i).array}();r=v?r.$asArray(v,"search"===o):r,"string"!==r.name||v||"path"!==o||i.value!==n||(i.value="");var y=i.value!==n,w=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!j(n)||null==n)return g;if(!0===n||N(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(i,y),L=function(e,t,r,i){var o,a,l=[{from:"",to:r||t?n:""},{from:null,to:r||t?n:""}];return o=R(e.replace)?e.replace:[],N(i)&&o.push({from:i,to:n}),a=p(o,function(e){return e.from}),f(l,function(e){return-1===s(a,e.from)}).concat(o)}(i,v,y,w);z(this,{id:e,type:r,location:o,array:v,squash:w,replace:L,isOptional:y,value:c,dynamic:n,config:i,toString:h})},c.prototype={$$new:function(){return r(this,z(new c,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,r=a(c.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),F(t,function(t){F(a(t),function(t){-1===s(e,t)&&-1===s(r,t)&&e.push(t)})}),e},$$values:function(e){var t={},n=this;return F(n.$$keys(),function(r){t[r]=n[r].value(e&&e[r])}),t},$$equals:function(e,t){var n=!0,r=this;return F(r.$$keys(),function(i){var o=e&&e[i],a=t&&t[i];r[i].type.equals(o,a)||(n=!1)}),n},$$validates:function(e){var r,i,o,a,s,l=this.$$keys();for(r=0;r<l.length&&(i=this[l[r]],(o=e[l[r]])!==n&&null!==o||!i.isOptional);r++){if(a=i.type.$normalize(o),!i.type.is(a))return!1;if(s=i.type.encode(a),t.isString(s)&&!i.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=c}function b(e,r){function i(e){var t=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(e.source);return null!=t?t[1].replace(/\\(.)/g,"$1"):""}function o(e,t){return e.replace(/\$(\$|\d{1,2})/,function(e,n){return t["$"===n?0:Number(n)]})}function a(e,t,n){if(!n)return!1;var r=e.invoke(t,t,{$match:n});return!j(r)||r}function s(r,i,o,a,s){function h(e,t,n){return"/"===g?e:t?g.slice(0,-1)+e:n?g.slice(1)+e:e}function f(e){function t(e){var t=e(o,r);return!!t&&(N(t)&&r.replace().url(t),!0)}if(!e||!e.defaultPrevented){m&&r.url();m=n;var i,a=u.length;for(i=0;i<a;i++)if(t(u[i]))return;c&&t(c)}}function p(){return l=l||i.$on("$locationChangeSuccess",f)}var m,g=a.baseHref(),v=r.url();return d||p(),{sync:function(){f()},listen:function(){return p()},update:function(e){if(e)return void(v=r.url());r.url()!==v&&(r.url(v),r.replace())},push:function(e,t,i){var o=e.format(t||{});null!==o&&t&&t["#"]&&(o+="#"+t["#"]),r.url(o),m=i&&i.$$avoidResync?r.url():n,i&&i.replace&&r.replace()},href:function(n,i,o){if(!n.validates(i))return null;var a=e.html5Mode();t.isObject(a)&&(a=a.enabled),a=a&&s.history;var l=n.format(i);if(o=o||{},a||null===l||(l="#"+e.hashPrefix()+l),null!==l&&i&&i["#"]&&(l+="#"+i["#"]),l=h(l,a,o.absolute),!o.absolute||!l)return l;var u=!a&&l?"/":"",c=r.port();return c=80===c||443===c?"":":"+c,[r.protocol(),"://",r.host(),c,u,l].join("")}}}var l,u=[],c=null,d=!1;this.rule=function(e){if(!H(e))throw new Error("'rule' must be a function");return u.push(e),this},this.otherwise=function(e){if(N(e)){var t=e;e=function(){return t}}else if(!H(e))throw new Error("'rule' must be a function");return c=e,this},this.when=function(e,t){var n,s=N(t);if(N(e)&&(e=r.compile(e)),!s&&!H(t)&&!R(t))throw new Error("invalid 'handler' in when()");var l={matcher:function(e,t){return s&&(n=r.compile(t),t=["$match",function(e){return n.format(e)}]),z(function(n,r){return a(n,t,e.exec(r.path(),r.search()))},{prefix:N(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=t,t=["$match",function(e){return o(n,e)}]),z(function(n,r){return a(n,t,e.exec(r.path()))},{prefix:i(e)})}},u={matcher:r.isMatcher(e),regex:e instanceof RegExp};for(var c in u)if(u[c])return this.rule(l[c](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),d=e},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(e,i){function o(e){return 0===e.indexOf(".")||0===e.indexOf("^")}function h(e,t){if(!e)return n;var r=N(e),i=r?e:e.name;if(o(i)){if(!t)throw new Error("No reference point given for path '"+i+"'");t=h(t);for(var a=i.split("."),s=0,l=a.length,u=t;s<l;s++)if(""!==a[s]||0!==s){if("^"!==a[s])break;if(!u.parent)throw new Error("Path '"+i+"' not valid for state '"+t.name+"'");u=u.parent}else u=t;a=a.slice(s).join("."),i=u.name+(u.name&&a?".":"")+a}var c=x[i];return!c||!r&&(r||c!==e&&c.self!==e)?n:c}function f(e,t){S[e]||(S[e]=[]),S[e].push(t)}function m(e){for(var t=S[e]||[];t.length;)g(t.shift())}function g(t){t=r(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}});var n=t.name;if(!N(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(x.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):N(t.parent)?t.parent:B(t.parent)&&N(t.parent.name)?t.parent.name:"";if(i&&!x[i])return f(i,t.self);for(var o in $)H($[o])&&(t[o]=$[o](t,$.$delegates[o]));return x[n]=t,!t[T]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){k.$current.navigable==t&&u(e,n)||k.transitionTo(t,e,{inherit:!0,location:!1})}]),m(n),t}function v(e){return e.indexOf("*")>-1}function _(e){for(var t=e.split("."),n=k.$current.name.split("."),r=0,i=t.length;r<i;r++)"*"===t[r]&&(n[r]="*");return"**"===t[0]&&(n=n.slice(s(n,t[1])),n.unshift("**")),"**"===t[t.length-1]&&(n.splice(s(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length==n.length&&n.join("")===t.join("")}function y(e,t){return N(e)&&!j(t)?$[e]:H(t)&&N(e)?($[e]&&!$.$delegates[e]&&($.$delegates[e]=$[e]),$[e]=t,this):this}function b(e,t){return B(e)?t=e:t.name=e,g(t),this}function w(e,i,o,s,d,f,m,g,y){function b(t,n,r,o){var a=e.$broadcast("$stateNotFound",t,n,r);if(a.defaultPrevented)return m.update(),D;if(!a.retry)return null;if(o.$retry)return m.update(),C;var s=k.transition=i.when(a.retry);return s.then(function(){return s!==k.transition?S:(t.options.$retry=!0,k.transitionTo(t.to,t.toParams,t.options))},function(){return D}),m.update(),s}function w(e,n,r,a,l,u){function h(){var n=[];return F(e.views,function(r,i){var a=r.resolve&&r.resolve!==e.resolve?r.resolve:{};a.$template=[function(){return o.load(i,{view:r,locals:l.globals,params:f,notify:u.notify})||""}],n.push(d.resolve(a,l.globals,l.resolve,e).then(function(n){if(H(r.controllerProvider)||R(r.controllerProvider)){var o=t.extend({},a,l.globals);n.$$controller=s.invoke(r.controllerProvider,null,o)}else n.$$controller=r.controller;n.$$state=e,n.$$controllerAs=r.controllerAs,l[i]=n}))}),i.all(n).then(function(){return l.globals})}var f=r?n:c(e.params.$$keys(),n),p={$stateParams:f};l.resolve=d.resolve(e.resolve,p,l.resolve,e);var m=[l.resolve.then(function(e){l.globals=e})];return a&&m.push(a),i.all(m).then(h).then(function(e){return l})}var S=i.reject(new Error("transition superseded")),$=i.reject(new Error("transition prevented")),D=i.reject(new Error("transition aborted")),C=i.reject(new Error("transition failed"));return M.locals={resolve:null,globals:{$stateParams:{}}},k={params:{},current:M.self,$current:M,transition:null},k.reload=function(e){return k.transitionTo(k.current,f,{reload:e||!0,inherit:!1,notify:!0})},k.go=function(e,t,n){return k.transitionTo(e,t,z({inherit:!0,relative:k.$current},n))},k.transitionTo=function(t,n,o){n=n||{},o=z({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,u=k.$current,d=k.params,p=u.path,g=h(t,o.relative),v=n["#"];if(!j(g)){var _={to:t,toParams:n,options:o},y=b(_,u.self,d,o);if(y)return y;if(t=_.to,n=_.toParams,o=_.options,g=h(t,o.relative),!j(g)){if(!o.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+o.relative+"'")}}if(g[T])throw new Error("Cannot transition to abstract state '"+t+"'");if(o.inherit&&(n=l(f,n||{},k.$current,g)),!g.params.$$validates(n))return C;n=g.params.$$values(n),t=g;var x=t.path,D=0,E=x[D],A=M.locals,P=[];if(o.reload){if(N(o.reload)||B(o.reload)){if(B(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var Y=!0===o.reload?p[0]:h(o.reload);if(o.reload&&!Y)throw new Error("No such reload state '"+(N(o.reload)?o.reload:o.reload.name)+"'");for(;E&&E===p[D]&&E!==Y;)A=P[D]=E.locals,D++,E=x[D]}}else for(;E&&E===p[D]&&E.ownParams.$$equals(n,d);)A=P[D]=E.locals,D++,E=x[D];if(L(t,n,u,d,A,o))return v&&(n["#"]=v),k.params=n,V(k.params,f),V(c(t.params.$$keys(),f),t.locals.globals.$stateParams),o.location&&t.navigable&&t.navigable.url&&(m.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),k.transition=null,i.when(k.current);if(n=c(t.params.$$keys(),n||{}),v&&(n["#"]=v),o.notify&&e.$broadcast("$stateChangeStart",t.self,n,u.self,d,o).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,u.self,d),null==k.transition&&m.update(),$;for(var O=i.when(A),I=D;I<x.length;I++,E=x[I])A=P[I]=r(A),O=w(E,n,E===t,O,A,o);var H=k.transition=O.then(function(){var r,i,a;if(k.transition!==H)return S;for(r=p.length-1;r>=D;r--)a=p[r],a.self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(r=D;r<x.length;r++)i=x[r],i.locals=P[r],i.self.onEnter&&s.invoke(i.self.onEnter,i.self,i.locals.globals);return k.transition!==H?S:(k.$current=t,k.current=t.self,k.params=n,V(k.params,f),k.transition=null,o.location&&t.navigable&&m.push(t.navigable.url,t.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&e.$broadcast("$stateChangeSuccess",t.self,n,u.self,d),m.update(!0),k.current)},function(r){return k.transition!==H?S:(k.transition=null,a=e.$broadcast("$stateChangeError",t.self,n,u.self,d,r),a.defaultPrevented||m.update(),i.reject(r))});return H},k.is=function(e,t,r){r=z({relative:k.$current},r||{});var i=h(e,r.relative);return j(i)?k.$current===i&&(!t||u(i.params.$$values(t),f)):n},k.includes=function(e,t,r){if(r=z({relative:k.$current},r||{}),N(e)&&v(e)){if(!_(e))return!1;e=k.$current.name}var i=h(e,r.relative);return j(i)?!!j(k.$current.includes[i.name])&&(!t||u(i.params.$$values(t),f,a(t))):n},k.href=function(e,t,r){r=z({lossy:!0,inherit:!0,absolute:!1,relative:k.$current},r||{});var i=h(e,r.relative);if(!j(i))return null;r.inherit&&(t=l(f,t||{},k.$current,i));var o=i&&r.lossy?i.navigable:i;return o&&o.url!==n&&null!==o.url?m.href(o.url,c(i.params.$$keys().concat("#"),t||{}),{absolute:r.absolute}):null},k.get=function(e,t){if(0===arguments.length)return p(a(x),function(e){return x[e].self});var n=h(e,t||k.$current);return n&&n.self?n.self:null},k}function L(e,t,n,r,i,o){if(!o.reload&&e===n&&(i===n.locals||!1===e.self.reloadOnSearch&&function(e,t,n){function r(t){return"search"!=e.params[t].location}var i=e.params.$$keys().filter(r),o=d.apply({},[e.params].concat(i));return new W.ParamSet(o).$$equals(t,n)}(n,r,t)))return!0}var M,k,x={},S={},T="abstract",$={parent:function(e){if(j(e.parent)&&e.parent)return h(e.parent);var t=/^(.+)\.[^.]+$/.exec(e.name);return t?h(t[1]):M},data:function(e){return e.parent&&e.parent.data&&(e.data=e.self.data=r(e.parent.data,e.data)),e.data},url:function(e){var t=e.url,n={params:e.params||{}};if(N(t))return"^"==t.charAt(0)?i.compile(t.substring(1),n):(e.parent.navigable||M).url.concat(t,n);if(!t||i.isMatcher(t))return t;throw new Error("Invalid url '"+t+"' in state '"+e+"'")},navigable:function(e){return e.url?e:e.parent?e.parent.navigable:null},ownParams:function(e){var t=e.url&&e.url.params||new W.ParamSet;return F(e.params||{},function(e,n){t[n]||(t[n]=new W.Param(n,null,e,"config"))}),t},params:function(e){var t=d(e.ownParams,e.ownParams.$$keys());return e.parent&&e.parent.params?z(e.parent.params.$$new(),t):new W.ParamSet},views:function(e){var t={};return F(j(e.views)?e.views:{"":e},function(n,r){r.indexOf("@")<0&&(r+="@"+e.parent.name),t[r]=n}),t},path:function(e){return e.parent?e.parent.path.concat(e):[]},includes:function(e){var t=e.parent?z({},e.parent.includes):{};return t[e.name]=!0,t},$delegates:{}};M=g({name:"",url:"^",views:null,abstract:!0}),M.navigable=null,this.decorator=y,this.state=b,this.$get=w,w.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function L(){function e(e,t){return{load:function(e,n){var r;return n=z({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},n),n.view&&(r=t.fromConfig(n.view,n.params,n.locals)),r}}}this.$get=e,e.$inject=["$rootScope","$templateFactory"]}function M(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n(function(){e[0].scrollIntoView()},0,!1)}}]}function k(e,n,r,i){function o(e,n){function r(e){return 1===q&&G>=4?!!l.enabled(e):1===q&&G>=2?!!l.enabled():!!s}var i={enter:function(e,t,n){t.after(e),n()},leave:function(e,t){e.remove(),t()}};if(e.noanimation)return i;if(l)return{enter:function(e,n,o){r(e)?t.version.minor>2?l.enter(e,null,n).then(o):l.enter(e,null,n,o):i.enter(e,n,o)},leave:function(e,n){r(e)?t.version.minor>2?l.leave(e).then(n):l.leave(e,n):i.leave(e,n)}};if(s){var o=s&&s(n,e);return{enter:function(e,t,n){o.enter(e,null,t),n()},leave:function(e,t){o.leave(e),t()}}}return i}var a=function(){return n.has?function(e){return n.has(e)?n.get(e):null}:function(e){try{return n.get(e)}catch(e){return null}}}(),s=a("$animator"),l=a("$animate");return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,a,s){return function(n,a,l){function u(){function e(){t&&t.remove(),n&&n.$destroy()}var t=d,n=f;n&&(n._willBeDestroyed=!0),h?(v.leave(h,function(){e(),d=null}),d=h):(e(),d=null),h=null,f=null}function c(o){var c,d=S(n,l,a,i),_=d&&e.$current&&e.$current.locals[d];if((o||_!==p)&&!n._willBeDestroyed){c=n.$new(),p=e.$current.locals[d],c.$emit("$viewContentLoading",d);var y=s(c,function(e){v.enter(e,a,function(){f&&f.$emit("$viewContentAnimationEnded"),(t.isDefined(g)&&!g||n.$eval(g))&&r(e)}),u()});h=y,f=c,f.$emit("$viewContentLoaded",d),f.$eval(m)}}var d,h,f,p,m=l.onload||"",g=l.autoscroll,v=o(l,n);n.$on("$stateChangeSuccess",function(){c(!1)}),c(!0)}}}}function x(e,t,n,r){return{restrict:"ECA",priority:-400,compile:function(i){var o=i.html();return function(i,a,s){var l=n.$current,u=S(i,s,a,r),c=l&&l.locals[u];if(c){a.data("$uiView",{name:u,state:c.$$state}),a.html(c.$template?c.$template:o);var d=e(a.contents());if(c.$$controller){c.$scope=i,c.$element=a;var h=t(c.$$controller,c);c.$$controllerAs&&(i[c.$$controllerAs]=h),a.data("$ngControllerController",h),a.children().data("$ngControllerController",h)}d(i)}}}}}function S(e,t,n,r){var i=r(t.uiView||t.name||"")(e),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function T(e,t){var n,r=e.match(/^\s*({[^}]*})\s*$/);if(r&&(e=t+"("+r[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function $(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function D(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function C(e,t,n,r,i){return function(o){var a=o.which||o.button,s=i();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var l=n(function(){t.go(s.state,s.params,s.options)});o.preventDefault();var u=r.isAnchor&&!s.href?1:0;o.preventDefault=function(){u--<=0&&n.cancel(l)}}}}function E(e,t){return{relative:$(e)||t.$current,inherit:!0}}function A(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(r,i,o,a){var s=T(o.uiSref,e.current.name),l={state:s.state,href:null,params:null},u=D(i),c=a[1]||a[0];l.options=z(E(i,e),o.uiSrefOpts?r.$eval(o.uiSrefOpts):{});var d=function(n){n&&(l.params=t.copy(n)),l.href=e.href(s.state,l.params,l.options),c&&c.$$addStateInfo(s.state,l.params),null!==l.href&&o.$set(u.attr,l.href)};s.paramExpr&&(r.$watch(s.paramExpr,function(e){e!==l.params&&d(e)},!0),l.params=t.copy(r.$eval(s.paramExpr))),d(),u.clickable&&i.bind("click",C(i,e,n,u,function(){return l}))}}}function P(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,r,i,o){function a(t){d.state=t[0],d.params=t[1],d.options=t[2],d.href=e.href(d.state,d.params,d.options),l&&l.$$addStateInfo(d.state,d.params),d.href&&i.$set(s.attr,d.href)}var s=D(r),l=o[1]||o[0],u=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],c="["+u.map(function(e){
-return e||"null"}).join(", ")+"]",d={state:null,params:null,options:null,href:null};n.$watch(c,a,!0),a(n.$eval(c)),s.clickable&&r.bind("click",C(r,e,t,s,function(){return d}))}}}function Y(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,r,i,o){function a(t,n,i){var o=e.get(t,$(r)),a=s(t,n);m.push({state:o||{name:t},params:n,hash:a}),g[a]=i}function s(e,n){if(!N(e))throw new Error("state should be a string");return B(n)?e+U(n):(n=t.$eval(n),B(n)?e+U(n):e)}function l(){for(var e=0;e<m.length;e++)d(m[e].state,m[e].params)?u(r,g[m[e].hash]):c(r,g[m[e].hash]),h(m[e].state,m[e].params)?u(r,f):c(r,f)}function u(e,t){o(function(){e.addClass(t)})}function c(e,t){e.removeClass(t)}function d(t,n){return e.includes(t.name,n)}function h(t,n){return e.is(t.name,n)}var f,p,m=[],g={};f=n(i.uiSrefActiveEq||"",!1)(t);try{p=t.$eval(i.uiSrefActive)}catch(e){}p=p||n(i.uiSrefActive||"",!1)(t),B(p)&&F(p,function(n,r){if(N(n)){var i=T(n,e.current.name);a(i.state,t.$eval(i.paramExpr),r)}}),this.$$addStateInfo=function(e,t){B(p)&&m.length>0||(a(e,t,p),l())},t.$on("$stateChangeSuccess",l),l()}]}}function O(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function I(e){var t=function(t,n,r){return e.includes(t,n,r)};return t.$stateful=!0,t}var j=t.isDefined,H=t.isFunction,N=t.isString,B=t.isObject,R=t.isArray,F=t.forEach,z=t.extend,V=t.copy,U=t.toJson;t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",m),g.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",g);var W;v.prototype.concat=function(e,t){var n={caseInsensitive:W.caseInsensitive(),strict:W.strictMode(),squash:W.defaultSquashPolicy()};return new v(this.sourcePath+e+this.sourceSearch,z(n,t),this)},v.prototype.toString=function(){return this.source},v.prototype.exec=function(e,t){var n=this.regexp.exec(e);if(!n)return null;t=t||{};var r,i,o,a=this.parameters(),s=a.length,l=this.segments.length-1,u={};if(l!==n.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var c,d;for(r=0;r<l;r++){for(o=a[r],c=this.params[o],d=n[r+1],i=0;i<c.replace.length;i++)c.replace[i].from===d&&(d=c.replace[i].to);d&&!0===c.array&&(d=function(e){function t(e){return e.split("").reverse().join("")}function n(e){return e.replace(/\\-/g,"-")}return p(p(t(e).split(/-(?!\\)/),t),n).reverse()}(d)),j(d)&&(d=c.type.decode(d)),u[o]=c.value(d)}for(;r<s;r++){for(o=a[r],u[o]=this.params[o].value(t[o]),c=this.params[o],d=t[o],i=0;i<c.replace.length;i++)c.replace[i].from===d&&(d=c.replace[i].to);j(d)&&(d=c.type.decode(d)),u[o]=c.value(d)}return u},v.prototype.parameters=function(e){return j(e)?this.params[e]||null:this.$$paramNames},v.prototype.validates=function(e){return this.params.$$validates(e)},v.prototype.format=function(e){function t(e){return encodeURIComponent(e).replace(/-/g,function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()})}e=e||{};var n=this.segments,r=this.parameters(),i=this.params;if(!this.validates(e))return null;var o,a=!1,s=n.length-1,l=r.length,u=n[0];for(o=0;o<l;o++){var c=o<s,d=r[o],h=i[d],f=h.value(e[d]),m=h.isOptional&&h.type.equals(h.value(),f),g=!!m&&h.squash,v=h.type.encode(f);if(c){var _=n[o+1],y=o+1===s;if(!1===g)null!=v&&(R(v)?u+=p(v,t).join("-"):u+=encodeURIComponent(v)),u+=_;else if(!0===g){var b=u.match(/\/$/)?/\/?(.*)/:/(.*)/;u+=_.match(b)[1]}else N(g)&&(u+=g+_);y&&!0===h.squash&&"/"===u.slice(-1)&&(u=u.slice(0,-1))}else{if(null==v||m&&!1!==g)continue;if(R(v)||(v=[v]),0===v.length)continue;v=p(v,encodeURIComponent).join("&"+d+"="),u+=(a?"&":"?")+d+"="+v,a=!0}}return u},_.prototype.is=function(e,t){return!0},_.prototype.encode=function(e,t){return e},_.prototype.decode=function(e,t){return e},_.prototype.equals=function(e,t){return e==t},_.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},_.prototype.pattern=/.*/,_.prototype.toString=function(){return"{Type:"+this.name+"}"},_.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},_.prototype.$asArray=function(e,t){function r(e,t){function r(e,t){return function(){return e[t].apply(e,arguments)}}function i(e){return R(e)?e:j(e)?[e]:[]}function o(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}function a(e){return!e}function s(e,t){return function(n){if(R(n)&&0===n.length)return n;n=i(n);var r=p(n,e);return!0===t?0===f(r,a).length:o(r)}}this.encode=s(r(e,"encode")),this.decode=s(r(e,"decode")),this.is=s(r(e,"is"),!0),this.equals=function(e){return function(t,n){var r=i(t),o=i(n);if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(!e(r[a],o[a]))return!1;return!0}}(r(e,"equals")),this.pattern=e.pattern,this.$normalize=s(r(e,"$normalize")),this.name=e.name,this.$arrayMode=t}if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new r(this,e)},t.module("ui.router.util").provider("$urlMatcherFactory",y),t.module("ui.router.util").run(["$urlMatcherFactory",function(e){}]),b.$inject=["$locationProvider","$urlMatcherFactoryProvider"],t.module("ui.router.router").provider("$urlRouter",b),w.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],t.module("ui.router.state").factory("$stateParams",function(){return{}}).provider("$state",w),L.$inject=[],t.module("ui.router.state").provider("$view",L),t.module("ui.router.state").provider("$uiViewScroll",M);var q=t.version.major,G=t.version.minor;k.$inject=["$state","$injector","$uiViewScroll","$interpolate"],x.$inject=["$compile","$controller","$state","$interpolate"],t.module("ui.router.state").directive("uiView",k),t.module("ui.router.state").directive("uiView",x),A.$inject=["$state","$timeout"],P.$inject=["$state","$timeout"],Y.$inject=["$state","$stateParams","$interpolate"],t.module("ui.router.state").directive("uiSref",A).directive("uiSrefActive",Y).directive("uiSrefActiveEq",Y).directive("uiState",P),O.$inject=["$state"],I.$inject=["$state"],t.module("ui.router.state").filter("isState",O).filter("includedByState",I)}(window,window.angular),function(){function e(e,t,n,r,i,o){function a(r,a,s,l,c){function d(){O.resizeRequiresRefresh(v.__clientWidth,v.__clientHeight)&&f()}function h(){return L||(L=new e({afterItemsNode:Y[0],containerNode:y,heightData:S,widthData:T,forceRefreshImages:!(!u(s.forceRefreshImages)||"false"===s.forceRefreshImages),keyExpression:M,renderBuffer:E,scope:r,scrollView:l.scrollView,transclude:c}))}function f(){var e=D.length>0;if(e&&(S.computed||T.computed)&&m(),e&&S.computed){if(S.value=$.height,!S.value)throw new Error('collection-repeat tried to compute the height of repeated elements "'+b+'", but was unable to. Please provide the "item-height" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!S.dynamic&&S.getValue&&(S.value=S.getValue());if(e&&T.computed){if(T.value=$.width,!T.value)throw new Error('collection-repeat tried to compute the width of repeated elements "'+b+'", but was unable to. Please provide the "item-width" attribute. http://ionicframework.com/docs/api/directive/collectionRepeat/')}else!T.dynamic&&T.getValue&&(T.value=T.getValue());h().refreshLayout()}function p(e,n){if(e){var r;try{r=t(e)}catch(n){e.trim().match(/\d+(px|%)$/)&&(e='"'+e+'"'),r=t(e)}var i=e.replace(/(\'|\"|px|%)/g,"").trim(),o=i.length&&!/([a-zA-Z]|\$|:|\?)/.test(i);if(n.attrValue=e,o)if(e.indexOf("%")>-1){var a=parseFloat(r())/100;n.getValue=n===S?function(){return Math.floor(a*v.__clientHeight)}:function(){return Math.floor(a*v.__clientWidth)}}else n.value=parseInt(r());else n.dynamic=!0,n.getValue=n===S?function(e,t){var n=r(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*v.__clientHeight):parseInt(n)}:function(e,t){var n=r(e,t);return n.charAt&&"%"===n.charAt(n.length-1)?Math.floor(parseFloat(n)/100*v.__clientWidth):parseInt(n)}}}function m(){j||c(H=r.$new(),function(e){e[0].removeAttribute("collection-repeat"),j=e[0]}),H[M]=(x(r)||[])[0],i.$$phase||H.$digest(),y.appendChild(j);var e=n.getComputedStyle(j);$.width=parseInt(e.width),$.height=parseInt(e.height),y.removeChild(j)}var v=l.scrollView,_=a[0],y=angular.element('<div class="collection-repeat-container">')[0];if(_.parentNode.replaceChild(y,_),v.options.scrollingX&&v.options.scrollingY)throw new Error("collection-repeat expected a parent x or y scrollView, not an xy scrollView.");var b=s.collectionRepeat,w=b.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!w)throw new Error("collection-repeat expected expression in form of '_item_ in _collection_[ track by _id_]' but got '"+s.collectionRepeat+"'.");var L,M=w[1],k=w[2],x=t(k),S={},T={},$={},D=[],C=s.itemRenderBuffer||s.collectionBufferSize,E=angular.isDefined(C)?parseInt(C):g,A=s.itemHeight||s.collectionItemHeight,P=s.itemWidth||s.collectionItemWidth,Y=function(){var e=angular.element(v.__content.querySelector(".collection-repeat-after-container"));if(!e.length){var t=!1,n=[].filter.call(v.__content.childNodes,function(e){return ionic.DomUtil.contains(e,y)?(t=!0,!1):t});e=angular.element('<span class="collection-repeat-after-container">'),v.options.scrollingX&&e.addClass("horizontal"),e.append(n),v.__content.appendChild(e[0])}return e}(),O=function(){var e;return e={dataLength:0,width:0,height:0,resizeRequiresRefresh:function(t,n){var r=e.dataLength&&t&&n&&(t!==e.width||n!==e.height);return e.width=t,e.height=n,!!r},dataChangeRequiresRefresh:function(t){var n=t.length>0||t.length<e.dataLength;return e.dataLength=t.length,!!n}}}();!function(){A?p(A,S):S.computed=!0,P?p(P,T):T.computed=!0}(),l.$element.on("scroll-resize",f),angular.element(n).on("resize",d);var I=i.$on("$ionicExposeAside",ionic.animationFrameThrottle(function(){l.scrollView.resize(),d()}));o(f,0,!1),r.$watchCollection(x,function(e){if(D=e||(e=[]),!angular.isArray(e))throw new Error("collection-repeat expected an array for '"+k+"', but got a "+typeof value);r.$$postDigest(function(){h().setData(D),O.dataChangeRequiresRefresh(D)&&f()})}),r.$on("$destroy",function(){angular.element(n).off("resize",d),I(),l.$element&&l.$element.off("scroll-resize",f),j&&j.parentNode&&j.parentNode.removeChild(j),H&&H.$destroy(),H=j=null,L&&L.destroy(),L=null});var j,H}return{restrict:"A",priority:1e3,transclude:"element",$$tlb:!0,require:"^^$ionicScroll",link:a}}function t(e,t,n){var r={primaryPos:0,secondaryPos:0,primarySize:0,secondarySize:0,rowPrimarySize:0};return function(i){function o(){return a(!0)}function a(t){if(!a.destroyed){var n,i,o,u,c,d=ee.getScrollValue(),h=d+ee.scrollPrimarySize;ee.updateRenderRange(d,h),V=Math.max(0,V-x),U=Math.min(D.length-1,U+x);for(n in X)(n<V||n>U)&&(o=X[n],delete X[n],Z.push(o),o.isShown=!1);for(n=V;n<=U;n++)n>=D.length||X[n]&&!t||(o=X[n]||(X[n]=Z.length?Z.pop():G.length?G.shift():new l),J.push(o),o.isShown=!0,c=o.scope,c.$index=n,c[k]=D[n],c.$first=0===n,c.$last=n===D.length-1,c.$middle=!(c.$first||c.$last),c.$odd=!(c.$even=0==(1&n)),c.$$disconnected&&ionic.Utils.reconnectScope(o.scope),u=ee.getDimensions(n),o.secondaryPos===u.secondaryPos&&o.primaryPos===u.primaryPos||(o.node.style[ionic.CSS.TRANSFORM]=B.replace(H,o.primaryPos=u.primaryPos).replace(N,o.secondaryPos=u.secondaryPos)),o.secondarySize===u.secondarySize&&o.primarySize===u.primarySize||(o.node.style.cssText=o.node.style.cssText.replace(m,R.replace(H,(o.primarySize=u.primarySize)+1).replace(N,o.secondarySize=u.secondarySize))));for(U===D.length-1&&(u=ee.getDimensions(D.length-1)||r,y.style[ionic.CSS.TRANSFORM]=B.replace(H,u.primaryPos+u.primarySize).replace(N,0));Z.length;)o=Z.pop(),o.scope.$broadcast("$collectionRepeatLeave"),ionic.Utils.disconnectScope(o.scope),G.push(o),o.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",o.primaryPos=o.secondaryPos=null;if(w)for(n=0,i=J.length;n<i&&(o=J[n]);n++)if(o.images)for(var f,g=0,v=o.images.length;g<v&&(f=o.images[g]);g++){var _=f.src;f.src=p,f.src=_}if(t)for(var b=e.$$phase;J.length;)o=J.pop(),b||o.scope.$digest();else s()}}function s(){var t;s.running||(s.running=!0,n(function(){for(var n=e.$$phase;J.length;)t=J.pop(),t.isShown&&(n||t.scope.$digest());s.running=!1}))}function l(){var e=this;this.scope=S.$new(),this.id="item"+K++,$(this.scope,function(t){e.element=t,e.element.data("$$collectionRepeatItem",e),e.node=t[0],e.node.style[ionic.CSS.TRANSFORM]="translate3d(-9999px,-9999px,0)",e.node.style.cssText+=" height: 0px; width: 0px;",ionic.Utils.disconnectScope(e.scope),b.appendChild(e.node),e.images=t[0].getElementsByTagName("img")})}function u(){this.getItemPrimarySize=A,this.getItemSecondarySize=Y,this.getScrollValue=function(){return Math.max(0,Math.min(T.__scrollTop-F,T.__maxScrollTop-F-z))},this.refreshDirection=function(){this.scrollPrimarySize=T.__clientHeight,this.scrollSecondarySize=T.__clientWidth,this.estimatedPrimarySize=v,this.estimatedSecondarySize=_,this.estimatedItemsAcross=I&&Math.floor(T.__clientWidth/_)||1}}function c(){this.getItemPrimarySize=Y,this.getItemSecondarySize=A,this.getScrollValue=function(){return Math.max(0,Math.min(T.__scrollLeft-F,T.__maxScrollLeft-F-z))},this.refreshDirection=function(){this.scrollPrimarySize=T.__clientWidth,this.scrollSecondarySize=T.__clientHeight,this.estimatedPrimarySize=_,this.estimatedSecondarySize=v,this.estimatedItemsAcross=I&&Math.floor(T.__clientHeight/v)||1}}function d(){this.getEstimatedSecondaryPos=function(e){return e%this.estimatedItemsAcross*this.estimatedSecondarySize},this.getEstimatedPrimaryPos=function(e){return Math.floor(e/this.estimatedItemsAcross)*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)*this.estimatedItemsAcross}}function h(){this.getEstimatedSecondaryPos=function(){return 0},this.getEstimatedPrimaryPos=function(e){return e*this.estimatedPrimarySize},this.getEstimatedIndex=function(e){return Math.floor(e/this.estimatedPrimarySize)}}function f(){this.getContentSize=function(){return this.getEstimatedPrimaryPos(D.length-1)+this.estimatedPrimarySize+F+z};var e={};this.getDimensions=function(t){return e.primaryPos=this.getEstimatedPrimaryPos(t),e.secondaryPos=this.getEstimatedSecondaryPos(t),e.primarySize=this.estimatedPrimarySize,e.secondarySize=this.estimatedSecondarySize,e},this.updateRenderRange=function(e,t){V=Math.max(0,this.getEstimatedIndex(e)),U=Math.min(D.length-1,this.getEstimatedIndex(t)+this.estimatedItemsAcross-1),q=Math.max(0,this.getEstimatedPrimaryPos(V)),W=this.getEstimatedPrimaryPos(U)+this.estimatedPrimarySize}}function g(){function e(e){var t,o,a;for(t=Math.max(0,n);t<=e&&(a=s[t]);t++)o=s[t-1]||r,a.primarySize=i.getItemPrimarySize(t,D[t]),a.secondarySize=i.scrollSecondarySize,a.primaryPos=o.primaryPos+o.primarySize,a.secondaryPos=0}function t(e){var t,o,a;for(t=Math.max(n,0);t<=e&&(a=s[t]);t++)o=s[t-1]||r,a.secondarySize=Math.min(i.getItemSecondarySize(t,D[t]),i.scrollSecondarySize),a.secondaryPos=o.secondaryPos+o.secondarySize,0===t||a.secondaryPos+a.secondarySize>i.scrollSecondarySize?(a.secondaryPos=0,a.primarySize=i.getItemPrimarySize(t,D[t]),a.primaryPos=o.primaryPos+o.rowPrimarySize,a.rowStartIndex=t,a.rowPrimarySize=a.primarySize):(a.primarySize=i.getItemPrimarySize(t,D[t]),a.primaryPos=o.primaryPos,a.rowStartIndex=o.rowStartIndex,s[a.rowStartIndex].rowPrimarySize=a.rowPrimarySize=Math.max(s[a.rowStartIndex].rowPrimarySize,a.primarySize),a.rowPrimarySize=Math.max(a.primarySize,a.rowPrimarySize))}var n,i=this,o=ionic.debounce(Q,25,!0),a=I?t:e,s=[];this.getContentSize=function(){var e=s[n]||r;return(e.primaryPos+e.primarySize||0)+this.getEstimatedPrimaryPos(D.length-n-1)+F+z},this.onDestroy=function(){s.length=0},this.onRefreshData=function(){var e,t;for(e=s.length,t=D.length;e<t;e++)s.push({});n=-1},this.onRefreshLayout=function(){n=-1},this.getDimensions=function(e){return e=Math.min(e,D.length-1),n<e&&(e>.9*D.length?(a(D.length-1),n=D.length-1,Q()):(a(e),n=e,o())),s[e]};var l=-1,u=-1;this.updateRenderRange=function(e,t){var n,r,i;if(this.getDimensions(2*this.getEstimatedIndex(t)),-1===l||0===e)n=0;else if(e>=u)for(n=l,r=D.length;n<r&&!((i=this.getDimensions(n))&&i.primaryPos+i.rowPrimarySize>=e);n++);else for(n=l;n>=0;n--)if((i=this.getDimensions(n))&&i.primaryPos<=e){n=I?i.rowStartIndex:n;break}V=Math.min(Math.max(0,n),D.length-1),q=-1!==V?this.getDimensions(V).primaryPos:-1;var o;for(n=V+1,r=D.length;n<r;n++)if((i=this.getDimensions(n))&&i.primaryPos+i.rowPrimarySize>t){if(I)for(o=i;n<r-1&&(i=this.getDimensions(n+1)).primaryPos===o.primaryPos;)n++;break}U=Math.min(n,D.length-1),W=-1!==U?(i=this.getDimensions(U)).primaryPos+(i.rowPrimarySize||i.primarySize):-1,u=e,l=V}}var v,_,y=i.afterItemsNode,b=i.containerNode,w=i.forceRefreshImages,L=i.heightData,M=i.widthData,k=i.keyExpression,x=i.renderBuffer,S=i.scope,T=i.scrollView,$=i.transclude,D=[],C={},E=L.getValue||function(){return L.value},A=function(e,t){return C[k]=t,C.$index=e,E(S,C)},P=M.getValue||function(){return M.value},Y=function(e,t){return C[k]=t,C.$index=e,P(S,C)},O=!!T.options.scrollingY,I=O?M.dynamic||M.value!==T.__clientWidth:L.dynamic||L.value!==T.__clientHeight,j=!L.dynamic&&!M.dynamic,H="PRIMARY",N="SECONDARY",B=O?"translate3d(SECONDARYpx,PRIMARYpx,0)":"translate3d(PRIMARYpx,SECONDARYpx,0)",R=O?"height: PRIMARYpx; width: SECONDARYpx;":"height: SECONDARYpx; width: PRIMARYpx;",F=0,z=0,V=-1,U=-1,W=-1,q=-1,G=[],Z=[],J=[],X={},K=0,Q=O?function(){T.setDimensions(null,null,null,ee.getContentSize(),!0)}:function(){T.setDimensions(null,null,ee.getContentSize(),null,!0)},ee=O?new u:new c;(I?d:h).call(ee),(j?f:g).call(ee);var te=O?"getContentHeight":"getContentWidth",ne=T.options[te];T.options[te]=angular.bind(ee,ee.getContentSize),T.__$callback=T.__callback,T.__callback=function(e,t,n,r){var i=ee.getScrollValue();(-1===V||i+ee.scrollPrimarySize>W||i<q)&&a(),T.__$callback(e,t,n,r)};var re=!1,ie=!1;this.refreshLayout=function(){D.length?(v=A(0,D[0]),_=Y(0,D[0])):(v=100,_=100);var e=getComputedStyle(y)||{},n=y.firstElementChild&&getComputedStyle(y.firstElementChild)||{},r=y.lastElementChild&&getComputedStyle(y.lastElementChild)||{};z=(parseInt(e[O?"height":"width"])||0)+(n&&parseInt(n[O?"marginTop":"marginLeft"])||0)+(r&&parseInt(r[O?"marginBottom":"marginRight"])||0),F=0;var i=b;do{F+=i[O?"offsetTop":"offsetLeft"]}while(ionic.DomUtil.contains(T.__content,i=i.offsetParent));var a=b.previousElementSibling,s=a?t.getComputedStyle(a):{},u=parseInt(s[O?"marginBottom":"marginRight"]||0);if(b.style[ionic.CSS.TRANSFORM]=B.replace(H,-u).replace(N,0),F-=u,T.__clientHeight&&T.__clientWidth||(T.__clientWidth=T.__container.clientWidth,T.__clientHeight=T.__container.clientHeight),(ee.onRefreshLayout||angular.noop)(),ee.refreshDirection(),Q(),!re)for(var c=Math.max(20,3*x),d=0;d<c;d++)G.push(new l);(re=!0)&&ie&&((T.__scrollLeft>T.__maxScrollLeft||T.__scrollTop>T.__maxScrollTop)&&T.resize(),o())},this.setData=function(e){D=e,(ee.onRefreshData||angular.noop)(),ie=!0},this.destroy=function(){a.destroyed=!0,G.forEach(function(e){e.scope.$destroy(),e.scope=e.element=e.node=e.images=null}),G.length=J.length=Z.length=0,X={},T.options[te]=ne,T.__callback=T.__$callback,T.resize(),(ee.onDestroy||angular.noop)()}}}function n(e){return["$ionicGesture","$parse",function(t,n){var r=e.substr(2).toLowerCase();return function(i,o,a){var s=n(a[e]),l=function(e){i.$apply(function(){s(i,{$event:e})})},u=t.on(r,l,o);i.$on("$destroy",function(){t.off(u,r,l)})}}]}function r(e){return["$document","$timeout",function(t,n){return{restrict:"E",controller:"$ionicHeaderBar",compile:function(r){function i(t,n,r,i){e?(t.$watch(function(){return n[0].className},function(e){var n=-1===e.indexOf("ng-hide"),r=-1!==e.indexOf("bar-subheader");t.$hasHeader=n&&!r,t.$hasSubheader=n&&r,t.$emit("$ionicSubheader",t.$hasSubheader)}),t.$on("$destroy",function(){delete t.$hasHeader,delete t.$hasSubheader}),i.align(),t.$on("$ionicHeader.align",function(){ionic.requestAnimationFrame(function(){i.align()})})):(t.$watch(function(){return n[0].className},function(e){var n=-1===e.indexOf("ng-hide"),r=-1!==e.indexOf("bar-subfooter");t.$hasFooter=n&&!r,t.$hasSubfooter=n&&r}),t.$on("$destroy",function(){delete t.$hasFooter,delete t.$hasSubfooter}),t.$watch("$hasTabs",function(e){n.toggleClass("has-tabs",!!e)}),i.align(),t.$on("$ionicFooter.align",function(){ionic.requestAnimationFrame(function(){i.align()})}))}return r.addClass(e?"bar bar-header":"bar bar-footer"),n(function(){e&&t[0].getElementsByClassName("tabs-top").length&&r.addClass("has-tabs-top")}),{pre:i}}}}]}function i(e){return e.clientHeight}function o(e){e.stopPropagation()}var a=angular.module("ionic",["ngAnimate","ngSanitize","ui.router","ngIOS9UIWebViewPatch"]),s=angular.extend,l=angular.forEach,u=angular.isDefined,c=angular.isNumber,d=angular.isString,h=angular.element,f=angular.noop;a.factory("$ionicActionSheet",["$rootScope","$compile","$animate","$timeout","$ionicTemplateLoader","$ionicPlatform","$ionicBody","IONIC_BACK_PRIORITY",function(e,t,n,r,i,o,a,l){function u(i){function u(e){e&&/icon/.test(e)&&(c.$actionSheetHasIcon=!0)}var c=e.$new(!0);s(c,{cancel:f,destructiveButtonClicked:f,buttonClicked:f,$deregisterBackButton:f,buttons:[],cancelOnStateChange:!0},i||{});for(var d=0;d<c.buttons.length;d++)u(c.buttons[d].text);u(c.cancelText),u(c.destructiveText);var p=c.element=t('<ion-action-sheet ng-class="cssClass" buttons="buttons"></ion-action-sheet>')(c),m=h(p[0].querySelector(".action-sheet-wrapper")),g=c.cancelOnStateChange?e.$on("$stateChangeSuccess",function(){c.cancel()}):f;return c.removeSheet=function(e){c.removed||(c.removed=!0,m.removeClass("action-sheet-up"),r(function(){a.removeClass("action-sheet-open")},400),c.$deregisterBackButton(),g(),n.removeClass(p,"active").then(function(){c.$destroy(),p.remove(),c.cancel.$scope=m=null,(e||f)(i.buttons)}))},c.showSheet=function(e){c.removed||(a.append(p).addClass("action-sheet-open"),n.addClass(p,"active").then(function(){c.removed||(e||f)()}),r(function(){c.removed||m.addClass("action-sheet-up")},20,!1))},c.$deregisterBackButton=o.registerBackButtonAction(function(){r(c.cancel)},l.actionSheet),c.cancel=function(){c.removeSheet(i.cancel)},c.buttonClicked=function(e){!0===i.buttonClicked(e,i.buttons[e])&&c.removeSheet()},c.destructiveButtonClicked=function(){!0===i.destructiveButtonClicked()&&c.removeSheet()},c.showSheet(),c.cancel.$scope=c,c.cancel}return{show:u}}]),h.prototype.addClass=function(e){var t,n,r,i,o,a;if(e&&"ng-scope"!=e&&"ng-isolate-scope"!=e)for(t=0;t<this.length;t++)if(i=this[t],i.setAttribute)if(e.indexOf(" ")<0&&i.classList.add)i.classList.add(e);else{for(a=(" "+(i.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),o=e.split(" "),n=0;n<o.length;n++)r=o[n].trim(),-1===a.indexOf(" "+r+" ")&&(a+=r+" ");i.setAttribute("class",a.trim())}return this},h.prototype.removeClass=function(e){var t,n,r,i,o;if(e)for(t=0;t<this.length;t++)if(o=this[t],o.getAttribute)if(e.indexOf(" ")<0&&o.classList.remove)o.classList.remove(e);else for(r=e.split(" "),n=0;n<r.length;n++)i=r[n],o.setAttribute("class",(" "+(o.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+i.trim()+" "," ").trim());return this},a.factory("$ionicBackdrop",["$document","$timeout","$$rAF","$rootScope",function(e,t,n,r){function i(){1===++l&&(s.addClass("visible"),r.$broadcast("backdrop.shown"),n(function(){l>=1&&s.addClass("active")}))}function o(){1===l&&(s.removeClass("active"),r.$broadcast("backdrop.hidden"),t(function(){0===l&&s.removeClass("visible")},400,!1)),l=Math.max(0,l-1)}function a(){return s}var s=h('<div class="backdrop">'),l=0;return e[0].body.appendChild(s[0]),{retain:i,release:o,getElement:a,_element:s}}]),a.factory("$ionicBind",["$parse","$interpolate",function(e,t){var n=/^\s*([@=&])(\??)\s*(\w*)\s*$/;return function(r,i,o){l(o||{},function(o,a){var s,l,u=o.match(n)||[],c=u[3]||a,d=u[1];switch(d){case"@":if(!i[c])return;i.$observe(c,function(e){r[a]=e}),i[c]&&(r[a]=t(i[c])(r));break;case"=":if(!i[c])return;l=r.$watch(i[c],function(e){r[a]=e}),r.$on("$destroy",l);break;case"&":if(i[c]&&i[c].match(RegExp(a+"(.*?)")))throw new Error('& expression binding "'+a+'" looks like it will recursively call "'+i[c]+'" and cause a stack overflow! Please choose a different scopeName.');s=e(i[c]),r[a]=function(e){return s(r,e)}}})}}]),a.factory("$ionicBody",["$document",function(e){return{addClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.add(arguments[t]);return this},removeClass:function(){for(var t=0;t<arguments.length;t++)e[0].body.classList.remove(arguments[t]);return this},enableClass:function(e){var t=Array.prototype.slice.call(arguments).slice(1);return e?this.addClass.apply(this,t):this.removeClass.apply(this,t),this},append:function(t){return e[0].body.appendChild(t.length?t[0]:t),this},get:function(){return e[0].body}}}]),a.factory("$ionicClickBlock",["$document","$ionicBody","$timeout",function(e,t,n){function r(e){e.preventDefault(),e.stopPropagation()}function i(){l&&(a?a.classList.remove(u):(a=e[0].createElement("div"),a.className="click-block",t.append(a),a.addEventListener("touchstart",r),a.addEventListener("mousedown",r)),l=!1)}function o(){a&&a.classList.add(u)}var a,s,l,u="click-block-hide";return{show:function(e){l=!0,n.cancel(s),s=n(this.hide,e||310,!1),i()},hide:function(){l=!1,n.cancel(s),o()}}}]),a.factory("$ionicGesture",[function(){return{on:function(e,t,n,r){return window.ionic.onGesture(e,t,n[0],r)},off:function(e,t,n){return window.ionic.offGesture(e,t,n)}}}]),a.factory("$ionicHistory",["$rootScope","$state","$location","$window","$timeout","$ionicViewSwitcher","$ionicNavViewDelegate",function(e,t,n,r,i,o,a){function l(e){return e?S.views[e]:null}function c(e){return e?l(e.backViewId):null}function d(e){return e?l(e.forwardViewId):null}function h(e){return e?S.histories[e]:null}function f(e){var t=p(e);return S.histories[t.historyId]||(S.histories[t.historyId]={historyId:t.historyId,parentHistoryId:p(t.scope.$parent).historyId,stack:[],cursor:-1}),h(t.historyId)}function p(t){for(var n=t;n;){if(n.hasOwnProperty("$historyId"))return{historyId:n.$historyId,scope:n};n=n.$parent}return{historyId:"root",scope:e}}function m(e){S.currentView=l(e),S.backView=c(S.currentView),S.forwardView=d(S.currentView)}function g(){var e;if(t&&t.current&&t.current.name){if(e=t.current.name,t.params)for(var n in t.params)t.params.hasOwnProperty(n)&&t.params[n]&&(e+="_"+n+"="+t.params[n]);return e}return ionic.Utils.nextUid()}function v(){var e;if(t&&t.params)for(var n in t.params)t.params.hasOwnProperty(n)&&(e=e||{},e[n]=t.params[n]);return e}function _(e){return e&&e.length&&/ion-side-menus|ion-tabs/i.test(e[0].tagName)}function y(e,t){if(t&&t.$$state&&!1===t.$$state.self.canSwipeBack)return!1;if(e&&"false"===e.attr("can-swipe-back"))return!1;var n=e.find("ion-view");return!n||"false"!==n.attr("can-swipe-back")}var b,w,L,M,k,x=0,S={histories:{root:{historyId:"root",parentHistoryId:null,stack:[],cursor:-1}},views:{},backView:null,forwardView:null,currentView:null},T=function(){};return T.prototype.initialize=function(e){if(e){for(var t in e)this[t]=e[t];return this}return null},T.prototype.go=function(){if(this.stateName)return t.go(this.stateName,this.stateParams);if(this.url&&this.url!==n.url()){if(S.backView===this)return r.history.go(-1);if(S.forwardView===this)return r.history.go(1);n.url(this.url)}return null},T.prototype.destroy=function(){this.scope&&(this.scope.$destroy&&this.scope.$destroy(),this.scope=null)},{register:function(e,t){var r,a,s,u=g(),d=f(e),_=S.currentView,T=S.backView,$=S.forwardView,D=null,C=null,E="none",A=d.historyId,P=n.url();if(b!==u&&(b=u,x++),k)D=k.viewId,C=k.action,E=k.direction,k=null;else if(T&&T.stateId===u)D=T.viewId,A=T.historyId,C="moveBack",T.historyId===_.historyId?E="back":_&&(E="exit",r=h(T.historyId),r&&r.parentHistoryId===_.historyId?E="enter":(r=h(_.historyId))&&r.parentHistoryId===d.parentHistoryId&&(E="swap"));else if($&&$.stateId===u)D=$.viewId,A=$.historyId,C="moveForward",$.historyId===_.historyId?E="forward":_&&(E="exit",_.historyId===d.parentHistoryId?E="enter":(r=h(_.historyId))&&r.parentHistoryId===d.parentHistoryId&&(E="swap")),r=p(e),$.historyId&&r.scope&&(r.scope.$historyId=$.historyId,A=$.historyId);else if(_&&_.historyId!==A&&d.cursor>-1&&d.stack.length>0&&d.cursor<d.stack.length&&d.stack[d.cursor].stateId===u){var Y=d.stack[d.cursor];if(D=Y.viewId,A=Y.historyId,C="moveBack",E="swap",r=h(_.historyId),r&&r.parentHistoryId===A?E="exit":(r=h(A))&&r.parentHistoryId===_.historyId&&(E="enter"),(r=l(Y.backViewId))&&Y.historyId!==r.historyId){var O=Object.keys(S.views);O.forEach(function(e){var t=S.views[e];t.backViewId===Y.viewId&&t.historyId!==Y.historyId&&(t.backViewId=null)}),d.stack[d.cursor].backViewId=_.viewId}}else{if(s=o.createViewEle(t),this.isAbstractEle(s,t))return{action:"abstractView",direction:"none",ele:s};if(D=ionic.Utils.nextUid(),_){if(_.forwardViewId=D,C="newView",$&&_.stateId!==$.stateId&&_.historyId===$.historyId&&(r=h($.historyId))){for(a=r.stack.length-1;a>=$.index;a--){var I=r.stack[a];I&&I.destroy&&I.destroy(),r.stack.splice(a)}A=$.historyId}d.historyId===_.historyId?E="forward":_.historyId!==d.historyId&&(E="enter",r=h(_.historyId),r&&r.parentHistoryId===d.parentHistoryId?E="swap":(r=h(r.parentHistoryId))&&r.historyId===d.historyId&&(E="exit"))}else C="initialView";x<2&&(E="none"),S.views[D]=this.createView({viewId:D,index:d.stack.length,historyId:d.historyId,backViewId:_&&_.viewId?_.viewId:null,forwardViewId:null,stateId:u,stateName:this.currentStateName(),stateParams:v(),url:P,canSwipeBack:y(s,t)}),d.stack.push(S.views[D])}if(L&&L(),i.cancel(M),w){if(w.disableAnimate&&(E="none"),w.disableBack&&(S.views[D].backViewId=null),w.historyRoot){for(a=0;a<d.stack.length;a++)d.stack[a].viewId===D?(d.stack[a].index=0,d.stack[a].backViewId=d.stack[a].forwardViewId=null):delete S.views[d.stack[a].viewId];d.stack=[S.views[D]]}w=null}if(m(D),S.backView&&A==S.backView.historyId&&u==S.backView.stateId&&P==S.backView.url)for(a=0;a<d.stack.length;a++)if(d.stack[a].viewId==D){C="dupNav",E="none",a>0&&(d.stack[a-1].forwardViewId=null),S.forwardView=null,S.currentView.index=S.backView.index,S.currentView.backViewId=S.backView.backViewId,S.backView=c(S.backView),d.stack.splice(a,1);break}return d.cursor=S.currentView.index,{viewId:D,action:C,direction:E,historyId:A,enableBack:this.enabledBack(S.currentView),isHistoryRoot:0===S.currentView.index,ele:s}},registerHistory:function(e){e.$historyId=ionic.Utils.nextUid()},createView:function(e){return(new T).initialize(e)},getViewById:l,viewHistory:function(){return S},currentView:function(e){return arguments.length&&(S.currentView=e),S.currentView},currentHistoryId:function(){return S.currentView?S.currentView.historyId:null},currentTitle:function(e){if(S.currentView)return arguments.length&&(S.currentView.title=e),S.currentView.title},backView:function(e){return arguments.length&&(S.backView=e),S.backView},backTitle:function(e){var t=e&&l(e.backViewId)||S.backView;return t&&t.title},forwardView:function(e){return arguments.length&&(S.forwardView=e),S.forwardView},currentStateName:function(){return t&&t.current?t.current.name:null},isCurrentStateNavView:function(e){return!!(t&&t.current&&t.current.views&&t.current.views[e])},goToHistoryRoot:function(e){if(e){var t=h(e);if(t&&t.stack.length){if(S.currentView&&S.currentView.viewId===t.stack[0].viewId)return;k={viewId:t.stack[0].viewId,action:"moveBack",direction:"back"},t.stack[0].go()}}},goBack:function(e){if(u(e)&&-1!==e){if(e>-1)return;var t=S.histories[this.currentHistoryId()],n=t.cursor+e+1;n<1&&(n=1),t.cursor=n,m(t.stack[n].viewId);for(var r=n-1,o=[],a=l(t.stack[r].forwardViewId);a&&(o.push(a.stateId||a.viewId),!(++r>=t.stack.length));)a=l(t.stack[r].forwardViewId);var s=this;o.length&&i(function(){s.clearCache(o)},300)}
-S.backView&&S.backView.go()},removeBackView:function(){var e=this,t=S.histories[this.currentHistoryId()],n=t.cursor,r=t.stack[n],i=t.stack[n-1],o=t.stack[n-2];i&&o&&(t.stack.splice(n-1,1),e.clearCache([i.viewId]),r.backViewId=o.viewId,r.index=r.index-1,o.forwardViewId=r.viewId,S.backView=o,t.currentCursor+=-1)},enabledBack:function(e){var t=c(e);return!(!t||t.historyId!==e.historyId)},clearHistory:function(){var e=S.histories,t=S.currentView;if(e)for(var n in e)e[n].stack&&(e[n].stack=[],e[n].cursor=-1),t&&t.historyId===n?(t.backViewId=t.forwardViewId=null,e[n].stack.push(t)):e[n].destroy&&e[n].destroy();for(var r in S.views)r!==t.viewId&&delete S.views[r];t&&m(t.viewId)},clearCache:function(e){return i(function(){a._instances.forEach(function(t){t.clearCache(e)})})},nextViewOptions:function(t){return L&&L(),arguments.length&&(i.cancel(M),null===t?w=t:(w=w||{},s(w,t),w.expire&&(L=e.$on("$stateChangeSuccess",function(){M=i(function(){w=null},w.expire)})))),w},isAbstractEle:function(e,t){return!!(t&&t.$$state&&t.$$state.self.abstract)||!(!e||!_(e)&&!_(e.children()))},isActiveScope:function(e){if(!e)return!1;for(var t,n=e,r=this.currentHistoryId();n;){if(n.$$disconnected)return!1;if(!t&&n.hasOwnProperty("$historyId")&&(t=!0),r){if(n.hasOwnProperty("$historyId")&&r==n.$historyId)return!0;if(n.hasOwnProperty("$activeHistoryId")&&r==n.$activeHistoryId){if(n.hasOwnProperty("$historyId"))return!0;if(!t)return!0}}t&&n.hasOwnProperty("$activeHistoryId")&&(t=!1),n=n.$parent}return!r||"root"==r}}}]).run(["$rootScope","$state","$location","$document","$ionicPlatform","$ionicHistory","IONIC_BACK_PRIORITY",function(e,t,n,r,i,o,a){function s(e){var t=o.backView();return t?t.go():ionic.Platform.exitApp(),e.preventDefault(),!1}e.$on("$ionicView.beforeEnter",function(){ionic.keyboard&&ionic.keyboard.hide&&ionic.keyboard.hide()}),e.$on("$ionicHistory.change",function(e,r){if(!r)return null;var i=o.viewHistory(),a=r.historyId?i.histories[r.historyId]:null;if(a&&a.cursor>-1&&a.cursor<a.stack.length){return a.stack[a.cursor].go(r)}!r.url&&r.uiSref&&(r.url=t.href(r.uiSref)),r.url&&(0===r.url.indexOf("#")&&(r.url=r.url.replace("#","")),r.url!==n.url()&&n.url(r.url))}),e.$ionicGoBack=function(e){o.goBack(e)},e.$on("$ionicView.afterEnter",function(e,t){t&&t.title&&(r[0].title=t.title)}),i.registerBackButtonAction(s,a.view)}]),a.provider("$ionicConfig",function(){function e(e,r){a.platform[e]=r,i.platform[e]={},t(a,a.platform[e]),n(a.platform[e],i.platform[e],"")}function t(e,n){for(var r in e)r!=o&&e.hasOwnProperty(r)&&(angular.isObject(e[r])?(u(n[r])||(n[r]={}),t(e[r],n[r])):u(n[r])||(n[r]=null))}function n(e,t,i){l(e,function(s,l){angular.isObject(e[l])?(t[l]={},n(e[l],t[l],i+"."+l)):t[l]=function(n){if(arguments.length)return e[l]=n,t;if(e[l]==o){var s=r(a.platform,ionic.Platform.platform()+i+"."+l);return s||!1===s?s:r(a.platform,"default"+i+"."+l)}return e[l]}})}function r(e,t){t=t.split(".");for(var n=0;n<t.length;n++){if(!e||!u(e[t[n]]))return null;e=e[t[n]]}return e}var i=this;i.platform={};var o="platform",a={views:{maxCache:o,forwardCache:o,transition:o,swipeBackEnabled:o,swipeBackHitWidth:o},navBar:{alignTitle:o,positionPrimaryButtons:o,positionSecondaryButtons:o,transition:o},backButton:{icon:o,text:o,previousTitleText:o},form:{checkbox:o,toggle:o},scrolling:{jsScrolling:o},spinner:{icon:o},tabs:{style:o,position:o},templates:{maxPrefetch:o},platform:{}};n(a,i,""),e("default",{views:{maxCache:10,forwardCache:!1,transition:"ios",swipeBackEnabled:!0,swipeBackHitWidth:45},navBar:{alignTitle:"center",positionPrimaryButtons:"left",positionSecondaryButtons:"right",transition:"view"},backButton:{icon:"ion-ios-arrow-back",text:"Back",previousTitleText:!0},form:{checkbox:"circle",toggle:"large"},scrolling:{jsScrolling:!0},spinner:{icon:"ios"},tabs:{style:"standard",position:"bottom"},templates:{maxPrefetch:30}}),e("ios",{}),e("android",{views:{transition:"android",swipeBackEnabled:!1},navBar:{alignTitle:"left",positionPrimaryButtons:"right",positionSecondaryButtons:"right"},backButton:{icon:"ion-android-arrow-back",text:!1,previousTitleText:!1},form:{checkbox:"square",toggle:"small"},spinner:{icon:"android"},tabs:{style:"striped",position:"top"},scrolling:{jsScrolling:!1}}),e("windowsphone",{spinner:{icon:"android"}}),i.transitions={views:{},navBar:{}},i.transitions.views.ios=function(e,t,n,r){function i(e,t,n,r){var i={};i[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,i.opacity=t,r>-1&&(i.boxShadow="0 0 10px rgba(0,0,0,"+(o.shouldAnimate?.45*r:.3)+")"),i[ionic.CSS.TRANSFORM]="translate3d("+n+"%,0,0)",ionic.DomUtil.cachedStyles(e,i)}var o={run:function(r){"forward"==n?(i(e,1,99*(1-r),1-r),i(t,1-.1*r,-33*r,-1)):"back"==n?(i(e,1-.1*(1-r),-33*(1-r),-1),i(t,1,100*r,1-r)):(i(e,1,0,-1),i(t,0,0,-1))},shouldAnimate:r&&("forward"==n||"back"==n)};return o},i.transitions.navBar.ios=function(e,t,n,r){function i(e,t,n,r){var i={};i[ionic.CSS.TRANSITION_DURATION]=s.shouldAnimate?"":"0ms",i.opacity=1===t?"":t,e.setCss("buttons-left",i),e.setCss("buttons-right",i),e.setCss("back-button",i),i[ionic.CSS.TRANSFORM]="translate3d("+r+"px,0,0)",e.setCss("back-text",i),i[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e.setCss("title",i)}function o(e,t,n){if(e&&t){i(e,n,(e.titleTextX()+e.titleWidth())*(1-n),t&&(t.titleTextX()-e.backButtonTextLeft())*(1-n)||0)}}function a(e,t,n){if(e&&t){i(e,1-n,(-(e.titleTextX()-t.backButtonTextLeft())-e.titleLeftRight())*n,0)}}var s={run:function(n){var r=e.controller(),i=t&&t.controller();"back"==s.direction?(a(r,i,1-n),o(i,r,1-n)):(o(r,i,n),a(i,r,n))},direction:n,shouldAnimate:r&&("forward"==n||"back"==n)};return s},i.transitions.views.android=function(e,t,n,r){function i(e,t,n){var r={};r[ionic.CSS.TRANSITION_DURATION]=o.shouldAnimate?"":0,r[ionic.CSS.TRANSFORM]="translate3d("+t+"%,0,0)",r.opacity=n,ionic.DomUtil.cachedStyles(e,r)}r=r&&("forward"==n||"back"==n);var o={run:function(r){"forward"==n?(i(e,99*(1-r),1),i(t,-100*r,1)):"back"==n?(i(e,-100*(1-r),1),i(t,100*r,1)):(i(e,0,1),i(t,0,0))},shouldAnimate:r};return o},i.transitions.navBar.android=function(e,t,n,r){function i(e,t){if(e){var n={};n.opacity=1===t?"":t,e.setCss("buttons-left",n),e.setCss("buttons-right",n),e.setCss("back-button",n),e.setCss("back-text",n),e.setCss("title",n)}}return{run:function(n){i(e.controller(),n),i(t&&t.controller(),1-n)},shouldAnimate:r&&("forward"==n||"back"==n)}},i.transitions.views.none=function(e,t){return{run:function(n){i.transitions.views.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},i.transitions.navBar.none=function(e,t){return{run:function(n){i.transitions.navBar.ios(e,t,!1,!1).run(n),i.transitions.navBar.android(e,t,!1,!1).run(n)},shouldAnimate:!1}},i.setPlatformConfig=e,i.$get=function(){return i}}).config(["$compileProvider",function(e){e.aHrefSanitizationWhitelist(/^\s*(https?|sms|tel|geo|ftp|mailto|file|ghttps?|ms-appx-web|ms-appx|x-wmapp0):/),e.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|blob|ms-appx|ms-appx-web|x-wmapp0):|data:image\//)}]),a.constant("$ionicLoadingConfig",{template:"<ion-spinner></ion-spinner>"}).factory("$ionicLoading",["$ionicLoadingConfig","$ionicBody","$ionicTemplateLoader","$ionicBackdrop","$timeout","$q","$log","$compile","$ionicPlatform","$rootScope","IONIC_BACK_PRIORITY",function(e,t,n,r,i,o,a,l,u,c,d){function h(){return g||(g=n.compile({template:'<div class="loading-container"><div class="loading"></div></div>',appendTo:t.get()}).then(function(e){return e.show=function(a){var s=a.templateUrl?n.load(a.templateUrl):o.when(a.template||a.content||"");e.scope=a.scope||e.scope,e.isShown||(e.hasBackdrop=!a.noBackdrop&&!1!==a.showBackdrop,e.hasBackdrop&&(r.retain(),r.getElement().addClass("backdrop-loading"))),a.duration&&(i.cancel(e.durationTimeout),e.durationTimeout=i(angular.bind(e,e.hide),+a.duration)),v(),v=u.registerBackButtonAction(f,d.loading),s.then(function(n){if(n){var r=e.element.children();r.html(n),l(r.contents())(e.scope)}e.isShown&&(e.element.addClass("visible"),ionic.requestAnimationFrame(function(){e.isShown&&(e.element.addClass("active"),t.addClass("loading-active"))}))}),e.isShown=!0},e.hide=function(){v(),e.isShown&&(e.hasBackdrop&&(r.release(),r.getElement().removeClass("backdrop-loading")),e.element.removeClass("active"),t.removeClass("loading-active"),e.element.removeClass("visible"),ionic.requestAnimationFrame(function(){!e.isShown&&e.element.removeClass("visible")})),i.cancel(e.durationTimeout),e.isShown=!1,e.element.children().html("")},e})),g}function p(t){t=s({},e||{},t||{});var n=t.delay||t.showDelay||0;return _(),y(),t.hideOnStateChange&&(_=c.$on("$stateChangeSuccess",m),y=c.$on("$stateChangeError",m)),i.cancel(b),b=i(f,n),b.then(h).then(function(e){return e.show(t)})}function m(){return _(),y(),i.cancel(b),h().then(function(e){return e.hide()})}var g,v=f,_=f,y=f,b=o.when();return{show:p,hide:m,_getLoader:h}}]),a.factory("$ionicModal",["$rootScope","$ionicBody","$compile","$timeout","$ionicPlatform","$ionicTemplateLoader","$$q","$log","$ionicClickBlock","$window","IONIC_BACK_PRIORITY",function(e,t,n,r,i,o,a,l,u,c,d){var p=ionic.views.Modal.inherit({initialize:function(e){ionic.views.Modal.prototype.initialize.call(this,e),this.animation=e.animation||"slide-in-up"},show:function(e){var n=this;if(n.scope.$$destroyed)return l.error("Cannot call "+n.viewType+".show() after remove(). Please create a new "+n.viewType+" instance."),a.when();u.show(600),v.add(n);var o=h(n.modalEl);n.el.classList.remove("hide"),r(function(){n._isShown&&t.addClass(n.viewType+"-open")},400,!1),n.el.parentElement||(o.addClass(n.animation),t.append(n.el));var s=o.data("$$ionicScrollController");return s&&s.resize(),e&&n.positionView&&(n.positionView(e,o),n._onWindowResize=function(){n._isShown&&n.positionView(e,o)},ionic.on("resize",n._onWindowResize,window)),o.addClass("ng-enter active").removeClass("ng-leave ng-leave-active"),n._isShown=!0,n._deregisterBackButton=i.registerBackButtonAction(n.hardwareBackButtonClose?angular.bind(n,n.hide):f,d.modal),ionic.views.Modal.prototype.show.call(n),r(function(){n._isShown&&(o.addClass("ng-enter-active"),ionic.trigger("resize"),n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".shown",n),n.el.classList.add("active"),n.scope.$broadcast("$ionicHeader.align"),n.scope.$broadcast("$ionicFooter.align"),n.scope.$broadcast("$ionic.modalPresented"))},20),r(function(){n._isShown&&(n.$el.on("touchmove",function(e){ionic.DomUtil.getParentOrSelfWithClass(e.target,"scroll")||e.preventDefault()}),n.$el.on("click",function(e){n.backdropClickToClose&&e.target===n.el&&v.isHighest(n)&&n.hide()}))},400)},hide:function(){var e=this,n=h(e.modalEl);return u.show(600),v.remove(e),e.el.classList.remove("active"),n.addClass("ng-leave"),r(function(){e._isShown||(n.addClass("ng-leave-active").removeClass("ng-enter ng-enter-active active"),e.scope.$broadcast("$ionic.modalRemoved"))},20,!1),e.$el.off("click"),e._isShown=!1,e.scope.$parent&&e.scope.$parent.$broadcast(e.viewType+".hidden",e),e._deregisterBackButton&&e._deregisterBackButton(),ionic.views.Modal.prototype.hide.call(e),e.positionView&&ionic.off("resize",e._onWindowResize,window),r(function(){g.length||t.removeClass(e.viewType+"-open"),e.el.classList.add("hide")},e.hideDelay||320)},remove:function(){var e,t,n=this;return n.scope.$parent&&n.scope.$parent.$broadcast(n.viewType+".removed",n),n._isShown?t=n.hide():(e=a.defer(),e.resolve(),t=e.promise),t.then(function(){n.scope.$destroy(),n.$el.remove()})},isShown:function(){return!!this._isShown}}),m=function(t,r){var i=r.scope&&r.scope.$new()||e.$new(!0);r.viewType=r.viewType||"modal",s(i,{$hasHeader:!1,$hasSubheader:!1,$hasFooter:!1,$hasSubfooter:!1,$hasTabs:!1,$hasTabsTop:!1});var o=n("<ion-"+r.viewType+">"+t+"</ion-"+r.viewType+">")(i);r.$el=o,r.el=o[0],r.modalEl=r.el.querySelector("."+r.viewType);var a=new p(r);return a.scope=i,r.scope||(i[r.viewType]=a),a},g=[],v={add:function(e){g.push(e)},remove:function(e){var t=g.indexOf(e);t>-1&&t<g.length&&g.splice(t,1)},isHighest:function(e){var t=g.indexOf(e);return t>-1&&t===g.length-1}};return{fromTemplate:function(e,t){return m(e,t||{})},fromTemplateUrl:function(e,t,n){var r;return angular.isFunction(t)&&(r=t,t=n),o.load(e).then(function(e){var n=m(e,t||{});return r&&r(n),n})},stack:v}}]),a.service("$ionicNavBarDelegate",ionic.DelegateService(["align","showBackButton","showBar","title","changeTitle","setTitle","getTitle","back","getPreviousTitle"])),a.service("$ionicNavViewDelegate",ionic.DelegateService(["clearCache"])),a.constant("IONIC_BACK_PRIORITY",{view:100,sideMenu:150,modal:200,actionSheet:300,popup:400,loading:500}).provider("$ionicPlatform",function(){return{$get:["$q","$ionicScrollDelegate",function(e,t){var n={onHardwareBackButton:function(e){ionic.Platform.ready(function(){document.addEventListener("backbutton",e,!1)})},offHardwareBackButton:function(e){ionic.Platform.ready(function(){document.removeEventListener("backbutton",e)})},$backButtonActions:{},registerBackButtonAction:function(e,t,r){n._hasBackButtonHandler||(n.$backButtonActions={},n.onHardwareBackButton(n.hardwareBackButtonClick),n._hasBackButtonHandler=!0);var i={id:r||ionic.Utils.nextUid(),priority:t||0,fn:e};return n.$backButtonActions[i.id]=i,function(){delete n.$backButtonActions[i.id]}},hardwareBackButtonClick:function(e){var t,r;for(r in n.$backButtonActions)(!t||n.$backButtonActions[r].priority>=t.priority)&&(t=n.$backButtonActions[r]);if(t)return t.fn(e),t},is:function(e){return ionic.Platform.is(e)},on:function(e,t){return ionic.Platform.ready(function(){document.addEventListener(e,t,!1)}),function(){ionic.Platform.ready(function(){document.removeEventListener(e,t)})}},ready:function(n){var r=e.defer();return ionic.Platform.ready(function(){window.addEventListener("statusTap",function(){t.scrollTop(!0)}),r.resolve(),n&&n()}),r.promise}};return n}]}}),a.factory("$ionicPopover",["$ionicModal","$ionicPosition","$document","$window",function(e,t,n,r){function i(e,n){var i=h(e.target||e),a=t.offset(i),s=n.prop("offsetWidth"),l=n.prop("offsetHeight"),u=r.innerWidth,c=r.innerHeight,d={left:a.left+a.width/2-s/2},f=h(n[0].querySelector(".popover-arrow"));d.left<o?d.left=o:d.left+s+o>u&&(d.left=u-s-o),a.top+a.height+l>c&&a.top-l>0?(d.top=a.top-l,n.addClass("popover-bottom")):(d.top=a.top+a.height,n.removeClass("popover-bottom")),f.css({left:a.left+a.width/2-f.prop("offsetWidth")/2-d.left+"px"}),n.css({top:d.top+"px",left:d.left+"px",marginLeft:"0",opacity:"1"})}var o=6,a={viewType:"popover",hideDelay:1,animation:"none",positionView:i};return{fromTemplate:function(t,n){return e.fromTemplate(t,ionic.Utils.extend({},a,n))},fromTemplateUrl:function(t,n){return e.fromTemplateUrl(t,ionic.Utils.extend({},a,n))}}}]),a.factory("$ionicPopup",["$ionicTemplateLoader","$ionicBackdrop","$q","$timeout","$rootScope","$ionicBody","$compile","$ionicPlatform","$ionicModal","IONIC_BACK_PRIORITY",function(e,t,n,r,i,o,a,l,u,c){function d(t){t=s({scope:null,title:"",buttons:[]},t||{});var l={};return l.scope=(t.scope||i).$new(),l.element=h('<div class="popup-container" ng-class="cssClass"><div class="popup"><div class="popup-head"><h3 class="popup-title" ng-bind-html="title"></h3><h5 class="popup-sub-title" ng-bind-html="subTitle" ng-if="subTitle"></h5></div><div class="popup-body"></div><div class="popup-buttons" ng-show="buttons.length"><button ng-repeat="button in buttons" ng-click="$buttonTapped(button, $event)" class="button" ng-class="button.type || \'button-default\'" ng-bind-html="button.text"></button></div></div></div>'),l.responseDeferred=n.defer(),o.get().appendChild(l.element[0]),a(l.element)(l.scope),s(l.scope,{title:t.title,buttons:t.buttons,subTitle:t.subTitle,cssClass:t.cssClass,$buttonTapped:function(e,t){var n=(e.onTap||f).apply(l,[t]);t=t.originalEvent||t,t.defaultPrevented||l.responseDeferred.resolve(n)}}),n.when(t.templateUrl?e.load(t.templateUrl):t.template||t.content||"").then(function(e){var t=h(l.element[0].querySelector(".popup-body"));e?(t.html(e),a(t.contents())(l.scope)):t.remove()}),l.show=function(){l.isShown||l.removed||(u.stack.add(l),l.isShown=!0,ionic.requestAnimationFrame(function(){l.isShown&&(l.element.removeClass("popup-hidden"),l.element.addClass("popup-showing active"),g(l.element))}))},l.hide=function(e){if(e=e||f,!l.isShown)return e();u.stack.remove(l),l.isShown=!1,l.element.removeClass("active"),l.element.addClass("popup-hidden"),r(e,250,!1)},l.remove=function(){l.removed||(l.hide(function(){l.element.remove(),l.scope.$destroy()}),l.removed=!0)},l}function p(){var e=w[w.length-1];e&&e.responseDeferred.resolve()}function m(e){var n=L._createPopup(e),i=0;return w.length>0?(i=b.stackPushDelay,r(w[w.length-1].hide,i,!1)):(o.addClass("popup-open"),t.retain(),L._backButtonActionDone=l.registerBackButtonAction(p,c.popup)),n.responseDeferred.promise.close=function(e){n.removed||n.responseDeferred.resolve(e)},n.responseDeferred.notify({close:n.responseDeferred.close}),function(){w.push(n),r(n.show,i,!1),n.responseDeferred.promise.then(function(e){var i=w.indexOf(n);return-1!==i&&w.splice(i,1),n.remove(),w.length>0?w[w.length-1].show():(t.release(),r(function(){w.length||o.removeClass("popup-open")},400,!1),(L._backButtonActionDone||f)()),e})}(),n.responseDeferred.promise}function g(e){var t=e[0].querySelector("[autofocus]");t&&t.focus()}function v(e){return m(s({buttons:[{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))}function _(e){return m(s({buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){return!1}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return!0}}]},e||{}))}function y(e){var t=i.$new(!0);t.data={},t.data.fieldtype=e.inputType?e.inputType:"text",t.data.response=e.defaultText?e.defaultText:"",t.data.placeholder=e.inputPlaceholder?e.inputPlaceholder:"",t.data.maxlength=e.maxLength?parseInt(e.maxLength):"";var n="";return e.template&&!1===/<[a-z][\s\S]*>/i.test(e.template)&&(n="<span>"+e.template+"</span>",delete e.template),m(s({template:n+'<input ng-model="data.response" type="{{ data.fieldtype }}"maxlength="{{ data.maxlength }}"placeholder="{{ data.placeholder }}">',scope:t,buttons:[{text:e.cancelText||"Cancel",type:e.cancelType||"button-default",onTap:function(){}},{text:e.okText||"OK",type:e.okType||"button-positive",onTap:function(){return t.data.response||""}}]},e||{}))}var b={stackPushDelay:75},w=[],L={show:m,alert:v,confirm:_,prompt:y,_createPopup:d,_popupStack:w};return L}]),a.factory("$ionicPosition",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function r(e){return"static"===(n(e,"position")||"static")}var i=function(t){for(var n=e[0],i=t.offsetParent||n;i&&i!==n&&r(i);)i=i.offsetParent;return i||n};return{position:function(t){var n=this.offset(t),r={top:0,left:0},o=i(t[0]);o!=e[0]&&(r=this.offset(h(o)),r.top+=o.clientTop-o.scrollTop,r.left+=o.clientLeft-o.scrollLeft);var a=t[0].getBoundingClientRect();return{width:a.width||t.prop("offsetWidth"),height:a.height||t.prop("offsetHeight"),top:n.top-r.top,left:n.left-r.left}},offset:function(n){var r=n[0].getBoundingClientRect();return{width:r.width||n.prop("offsetWidth"),height:r.height||n.prop("offsetHeight"),top:r.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}}}}]),a.service("$ionicScrollDelegate",ionic.DelegateService(["resize","scrollTop","scrollBottom","scrollTo","scrollBy","zoomTo","zoomBy","getScrollPosition","anchorScroll","freezeScroll","freezeAllScrolls","getScrollView"])),a.service("$ionicSideMenuDelegate",ionic.DelegateService(["toggleLeft","toggleRight","getOpenRatio","isOpen","isOpenLeft","isOpenRight","canDragContent","edgeDragThreshold"])),a.service("$ionicSlideBoxDelegate",ionic.DelegateService(["update","slide","select","enableSlide","previous","next","stop","autoPlay","start","currentIndex","selected","slidesCount","count","loop"])),a.service("$ionicTabsDelegate",ionic.DelegateService(["select","selectedIndex","showBar"])),function(){var e=[];a.factory("$ionicTemplateCache",["$http","$templateCache","$timeout",function(t,n,r){function i(e){if(void 0===e)return o();d(e)&&(e=[e]),l(e,function(e){s.push(e)}),a&&o()}function o(){var e;if(i._runCount++,a=!0,0!==s.length){for(var l=0;l<4&&(e=s.pop());)d(e)&&t.get(e,{cache:n}),l++;s.length&&r(o,1e3)}}var a,s=e;return i._runCount=0,i}]).config(["$stateProvider","$ionicConfigProvider",function(t,n){var r=t.state;t.state=function(i,o){if("object"==typeof o){var a=!1!==o.prefetchTemplate&&e.length<n.templates.maxPrefetch();if(a&&d(o.templateUrl)&&e.push(o.templateUrl),angular.isObject(o.views))for(var s in o.views)(a=!1!==o.views[s].prefetchTemplate&&e.length<n.templates.maxPrefetch())&&d(o.views[s].templateUrl)&&e.push(o.views[s].templateUrl)}return r.call(t,i,o)}}]).run(["$ionicTemplateCache",function(e){e()}])}(),a.factory("$ionicTemplateLoader",["$compile","$controller","$http","$q","$rootScope","$templateCache",function(e,t,n,r,i,o){function a(e){return n.get(e,{cache:o}).then(function(e){return e.data&&e.data.trim()})}function l(n){return n=s({template:"",templateUrl:"",scope:null,controller:null,locals:{},appendTo:null},n||{}),(n.templateUrl?this.load(n.templateUrl):r.when(n.template)).then(function(r){var o,a=n.scope||i.$new(),l=h("<div>").html(r).contents();return n.controller&&(o=t(n.controller,s(n.locals,{$scope:a})),l.children().data("$ngControllerController",o)),n.appendTo&&h(n.appendTo).append(l),e(l)(a),{element:l,scope:a}})}return{load:a,compile:l}}]),a.factory("$ionicViewService",["$ionicHistory","$log",function(e,t){function n(e,n){t.warn("$ionicViewService"+e+" is deprecated, please use $ionicHistory"+n+" instead: http://ionicframework.com/docs/nightly/api/service/$ionicHistory/")}n("","");var r={getCurrentView:"currentView",getBackView:"backView",getForwardView:"forwardView",getCurrentStateName:"currentStateName",nextViewOptions:"nextViewOptions",clearHistory:"clearHistory"};return l(r,function(t,i){r[i]=function(){return n("."+i,"."+t),e[t].apply(this,arguments)}}),r}]),a.factory("$ionicViewSwitcher",["$timeout","$document","$q","$ionicClickBlock","$ionicConfig","$ionicNavBarDelegate",function(e,t,n,r,i,o){function a(e,t){return c(e).abstract?c(e).name:t?t.stateId||t.viewId:ionic.Utils.nextUid()}function c(e){return e&&e.$$state&&e.$$state.self||{}}function d(e,t,n,r){var o=c(e),a=y||D(t,"view-transition")||o.viewTransition||i.views.transition()||"ios",l=i.navBar.transition();return n=b||D(t,"view-direction")||o.viewDirection||n||"none",s(f(r),{transition:a,navBarTransition:"view"===l?a:l,direction:n,shouldAnimate:"none"!==a&&"none"!==n})}function f(e){return e=e||{},{viewId:e.viewId,historyId:e.historyId,stateId:e.stateId,stateName:e.stateName,stateParams:e.stateParams}}function p(e,t){if(!(arguments.length>1))return D(e,k);D(e,k,t)}function m(e){if(e&&e.length){var t=e.scope();t&&(t.$emit("$ionicView.unloaded",e.data(M)),t.$destroy()),e.remove()}}function g(e,t){var n=e.lastIndexOf("."),r=t.lastIndexOf(".");return!(n<0||r<0)&&e.substring(0,n)===t.substring(0,r)}function v(e,t){if(!e)return null;var n=angular.element(e).attr("abstract"),r=angular.element(e).attr("state");if("true"!==n)return r===t.stateName?angular.element(e).scope():null;for(var i=_(e),o=0;o<i.length;o++)if(angular.element(i[o]).attr("state")===t.stateName)return t.abstractView=!0,angular.element(i[o]).scope();return null}function _(e){for(var t=[],n=angular.element(e).find("ion-nav-view"),r=0;r<n.length;r++){for(var i=angular.element(n[r]).children(),o=[],a=0;a<i.length;a++)o=o.concat(i[a]);t=t.concat(o)}return t}var y,b,w="webkitTransitionEnd transitionend",L="$fallbackTimer",M="$viewData",k="nav-view",x="active",S="cached",T=0;ionic.transition=ionic.transition||{},ionic.transition.isActive=!1;var $,D=ionic.DomUtil.cachedAttr,C=[],E={create:function(t,l,h,_,k,$){var A,P,Y,O=++T,I={init:function(e,t){E.isTransitioning(!0),I.loadViewElements(e),I.render(e,function(){t&&t()})},loadViewElements:function(e){var n,r,i,o=t.getViewElements(),s=a(l,h),c=t.activeEleId();for(n=0,r=o.length;n<r&&(i=o.eq(n),i.data("$eleId")===s?i.data("$noCache")?(i.data("$eleId",s+ionic.Utils.nextUid()),i.data("$destroyEle",!0)):A=i:u(c)&&i.data("$eleId")===c&&(P=i),!A||!P);n++);Y=!!A,Y||(A=e.ele||E.createViewEle(l),A.data("$eleId",s)),$&&t.activeEleId(s),e.ele=null},render:function(e,n){if(Y)ionic.Utils.reconnectScope(A.scope());else{p(A,"stage");var r=d(l,A,e.direction,h);(i.transitions.views[r.transition]||i.transitions.views.none)(A,null,r.direction,!0).run(0),A.data(M,{viewId:r.viewId,historyId:r.historyId,stateName:r.stateName,stateParams:r.stateParams}),!1!==c(l).cache&&"false"!==c(l).cache&&"false"!=A.attr("cache-view")&&0!==i.views.maxCache()||A.data("$noCache",!0);var o=t.appendViewElement(A,l);delete r.direction,delete r.transition,o.$emit("$ionicView.loaded",r)}A.data("$accessed",Date.now()),n&&n()},transition:function(a,u,c){function m(){p(A,F.shouldAnimate?"entering":x),p(P,F.shouldAnimate?"leaving":S),F.run(1),o._instances.forEach(function(e){e.triggerTransitionStart(O)}),F.shouldAnimate||v()}function g(e){e.target===this&&v()}function v(){v.x||(v.x=!0,A.off(w,g),e.cancel(A.data(L)),P&&e.cancel(P.data(L)),H&&H.resolve(t),O===T&&(n.all(C).then(E.transitionEnd),I.emit("after",N,B),I.cleanup(N)),o._instances.forEach(function(e){e.triggerTransitionEnd()}),y=b=h=_=A=P=null)}function M(e){e.target===this&&j()}function j(){p(A,S),p(P,x),A.off(w,M),e.cancel(A.data(L)),E.transitionEnd([t])}var H,N=d(l,A,a,h),B=s(s({},N),f(_));N.transitionId=B.transitionId=O,N.fromCache=!!Y,N.enableBack=!!u,N.renderStart=k,N.renderEnd=$,D(A.parent(),"nav-view-transition",N.transition),D(A.parent(),"nav-view-direction",N.direction),e.cancel(A.data(L));var R=i.transitions.views[N.transition]||i.transitions.views.none,F=R(A,P,N.direction,N.shouldAnimate&&c&&$);if(F.shouldAnimate&&(A.on(w,g),A.data(L,e(v,1100)),r.show(1100)),k&&(I.emit("before",N,B),p(A,"stage"),F.run(0)),$&&(H=n.defer(),C.push(H.promise)),k&&$)e(function(){ionic.requestAnimationFrame(m)});else{if(!$)return p(A,"entering"),p(P,"leaving"),{run:F.run,cancel:function(t){t?(A.on(w,M),A.data(L,e(j,1100)),r.show(1100)):j(),F.shouldAnimate=t,F.run(0),F=null}};$&&m()}},emit:function(e,t,n){var r=v(A,t),i=v(P,n);!t.viewId||t.abstractView?i&&(i.$emit("$ionicView.beforeLeave",n),i.$emit("$ionicView.leave",n),i.$emit("$ionicView.afterLeave",n),i.$broadcast("$ionicParentView.beforeLeave",n),i.$broadcast("$ionicParentView.leave",n),i.$broadcast("$ionicParentView.afterLeave",n)):("after"==e&&(r&&(r.$emit("$ionicView.enter",t),r.$broadcast("$ionicParentView.enter",t)),i?(i.$emit("$ionicView.leave",n),i.$broadcast("$ionicParentView.leave",n)):r&&n&&n.viewId&&t.stateName!==n.stateName&&g(t.stateName,n.stateName)&&r.$emit("$ionicNavView.leave",n)),r&&(r.$emit("$ionicView."+e+"Enter",t),r.$broadcast("$ionicParentView."+e+"Enter",t)),i?(i.$emit("$ionicView."+e+"Leave",n),i.$broadcast("$ionicParentView."+e+"Leave",n)):r&&n&&n.viewId&&t.stateName!==n.stateName&&g(t.stateName,n.stateName)&&r.$emit("$ionicNavView."+e+"Leave",n))},cleanup:function(e){P&&"back"==e.direction&&!i.views.forwardCache()&&m(P);var n,r,o,a=t.getViewElements(),s=a.length,l=s-1>i.views.maxCache(),u=Date.now();for(n=0;n<s;n++)r=a.eq(n),l&&r.data("$accessed")<u?(u=r.data("$accessed"),o=a.eq(n)):r.data("$destroyEle")&&p(r)!=x&&m(r);m(o),A.data("$noCache")&&A.data("$destroyEle",!0)},enteringEle:function(){return A},leavingEle:function(){return P}};return I},transitionEnd:function(e){l(e,function(e){e.transitionEnd()}),E.isTransitioning(!1),r.hide(),C=[]},nextTransition:function(e){y=e},nextDirection:function(e){b=e},isTransitioning:function(t){return arguments.length&&(ionic.transition.isActive=!!t,e.cancel($),t&&($=e(function(){E.isTransitioning(!1)},999))),ionic.transition.isActive},createViewEle:function(e){var n=t[0].createElement("div");return e&&e.$template&&(n.innerHTML=e.$template,1===n.children.length)?(n.children[0].classList.add("pane"),e.$$state&&e.$$state.self&&e.$$state.self.abstract?angular.element(n.children[0]).attr("abstract","true"):e.$$state&&e.$$state.self&&angular.element(n.children[0]).attr("state",e.$$state.self.name),h(n.children[0])):(n.className="pane",h(n))},viewEleIsActive:function(e,t){p(e,t?x:S)},getTransitionData:d,navViewAttr:p,destroyViewEle:m};return E}]),angular.module("ngIOS9UIWebViewPatch",["ng"]).config(["$provide",function(e){"use strict";e.decorator("$browser",["$delegate","$window",function(e,t){return function(e){return/(iPhone|iPad|iPod).* OS 9_\d/.test(e)&&!/Version\/9\./.test(e)}(t.navigator.userAgent)?function(e){function t(){n=null}var n=null,r=e.url;return e.url=function(){return arguments.length?(n=arguments[0],r.apply(e,arguments)):n||r.apply(e,arguments)},window.addEventListener("popstate",t,!1),window.addEventListener("hashchange",t,!1),e}(e):e}])}]),a.config(["$provide",function(e){e.decorator("$compile",["$delegate",function(e){return e.$$addScopeInfo=function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)},e}])}]),a.config(["$provide",function(e){function t(e,t){return e.__hash=e.hash,e.hash=function(n){return u(n)&&n.length>0&&t(function(){var e=document.querySelector(".scroll-content");e&&(e.scrollTop=0)},0,!1),e.__hash(n)},e}e.decorator("$location",["$delegate","$timeout",t])}]),a.controller("$ionicHeaderBar",["$scope","$element","$attrs","$q","$ionicConfig","$ionicHistory",function(e,t,n,r,i,o){function a(e){return _[e]||(_[e]=t[0].querySelector("."+e)),_[e]}var s=this,l="",u="",c=0,d=0,h="",f=!1,p=!0,m=!0,g=!1,v=0;s.beforeEnter=function(t){e.$broadcast("$ionicView.beforeEnter",t)},s.title=function(e){return arguments.length&&e!==l&&(a("title").innerHTML=e,l=e,v=0),l},s.enableBack=function(e,t){return arguments.length&&(f=e,t||s.updateBackButton()),f},s.showBack=function(e,t){return arguments.length&&(p=e,t||s.updateBackButton()),p},s.showNavBack=function(e){m=e,s.updateBackButton()},s.updateBackButton=function(){var e;(p&&m&&f)!==g&&(g=p&&m&&f,(e=a("back-button"))&&e.classList[g?"remove":"add"]("hide")),f&&(e=e||a("back-button"))&&(s.backButtonIcon!==i.backButton.icon()&&(e=a("back-button .icon"))&&(s.backButtonIcon=i.backButton.icon(),e.className="icon "+s.backButtonIcon),s.backButtonText!==i.backButton.text()&&(e=a("back-button .back-text"))&&(e.textContent=s.backButtonText=i.backButton.text()))},s.titleTextWidth=function(){var e=a("title");if(e)for(var t=angular.element(e).children(),n=0;n<t.length;n++)if(angular.element(t[n]).hasClass("nav-bar-title")){e=t[n];break}var r=ionic.DomUtil.getTextBounds(e);return v=Math.min(r&&r.width||30)},s.titleWidth=function(){var e=s.titleTextWidth(),t=a("title").offsetWidth;return t<e&&(e=t+(c-d-5)),e},s.titleTextX=function(){return t[0].offsetWidth/2-s.titleWidth()/2},s.titleLeftRight=function(){return c-d},s.backButtonTextLeft=function(){for(var e=0,t=a("back-text");t;)e+=t.offsetLeft,t=t.parentElement;return e},s.resetBackButton=function(e){if(i.backButton.previousTitleText()){var t=a("previous-title");if(t){t.classList.remove("hide");var n=e&&o.getViewById(e.viewId),r=o.backTitle(n);r!==u&&(u=t.innerHTML=r)}var s=a("default-title");s&&s.classList.remove("hide")}},s.align=function(e){var r=a("title");e=e||n.alignTitle||i.navBar.alignTitle();var o=s.calcWidths(e,!1);if(p&&u&&i.backButton.previousTitleText()){var l=s.calcWidths(e,!0),c=t[0].offsetWidth-l.titleLeft-l.titleRight;s.titleTextWidth()<=c&&(o=l)}return s.updatePositions(r,o.titleLeft,o.titleRight,o.buttonsLeft,o.buttonsRight,o.css,o.showPrevTitle)},s.calcWidths=function(e,n){var r,i,o,s,l,u,c,d,h,f=a("title"),m=a("back-button"),g=t[0].childNodes,v=0,_=0,y=0,b=0,w="",L=0;for(r=0;r<g.length;r++){if(l=g[r],c=0,1==l.nodeType){if(l===f){h=!0;continue}if(l.classList.contains("hide"))continue;if(p&&l===m){for(i=0;i<l.childNodes.length;i++)if(s=l.childNodes[i],
-1==s.nodeType)if(s.classList.contains("back-text"))for(o=0;o<s.children.length;o++)if(u=s.children[o],n){if(u.classList.contains("default-title"))continue;L+=u.offsetWidth}else{if(u.classList.contains("previous-title"))continue;L+=u.offsetWidth}else L+=s.offsetWidth;else 3==s.nodeType&&s.nodeValue.trim()&&(d=ionic.DomUtil.getTextBounds(s),L+=d&&d.width||0);c=L||l.offsetWidth}else c=l.offsetWidth}else 3==l.nodeType&&l.nodeValue.trim()&&(d=ionic.DomUtil.getTextBounds(l),c=d&&d.width||0);h?_+=c:v+=c}if("left"==e)w="title-left",v&&(y=v+15),_&&(b=_+15);else if("right"==e)w="title-right",v&&(y=v+15),_&&(b=_+15);else{var M=Math.max(v,_)+10;M>10&&(y=b=M)}return{backButtonWidth:L,buttonsLeft:v,buttonsRight:_,titleLeft:y,titleRight:b,showPrevTitle:n,css:w}},s.updatePositions=function(e,n,o,l,u,f,p){var m=r.defer();if(e&&(n!==c&&(e.style.left=n?n+"px":"",c=n),o!==d&&(e.style.right=o?o+"px":"",d=o),f!==h&&(f&&e.classList.add(f),h&&e.classList.remove(h),h=f)),i.backButton.previousTitleText()){var g=a("previous-title"),v=a("default-title");g&&g.classList[p?"remove":"add"]("hide"),v&&v.classList[p?"add":"remove"]("hide")}return ionic.requestAnimationFrame(function(){if(e&&e.offsetWidth+10<e.scrollWidth){var n=u+5,r=t[0].offsetWidth-c-s.titleTextWidth()-20;(o=r<n?n:r)!==d&&(e.style.right=o+"px",d=o)}m.resolve()}),m.promise},s.setCss=function(e,t){ionic.DomUtil.cachedStyles(a(e),t)};var _={};e.$on("$destroy",function(){for(var e in _)_[e]=null})}]),a.controller("$ionInfiniteScroll",["$scope","$attrs","$element","$timeout",function(e,t,n,r){function i(){ionic.requestAnimationFrame(function(){n[0].classList.add("active")}),l.isLoading=!0,e.$parent&&e.$parent.$apply(t.onInfinite||"")}function o(){ionic.requestAnimationFrame(function(){n[0].classList.remove("active")}),r(function(){l.jsScrolling&&l.scrollView.resize(),(l.jsScrolling&&l.scrollView.__container&&l.scrollView.__container.offsetHeight>0||!l.jsScrolling)&&l.checkBounds()},30,!1),l.isLoading=!1}function a(){if(!l.isLoading){var e={};if(l.jsScrolling){e=l.getJSMaxScroll();var t=l.scrollView.getValues();(-1!==e.left&&t.left>=e.left||-1!==e.top&&t.top>=e.top)&&i()}else e=l.getNativeMaxScroll(),(-1!==e.left&&l.scrollEl.scrollLeft>=e.left-l.scrollEl.clientWidth||-1!==e.top&&l.scrollEl.scrollTop>=e.top-l.scrollEl.clientHeight)&&i()}}function s(e){var n=(t.distance||"2.5%").trim();return-1!==n.indexOf("%")?e*(1-parseFloat(n)/100):e-parseFloat(n)}var l=this;l.isLoading=!1,e.icon=function(){return u(t.icon)?t.icon:"ion-load-d"},e.spinner=function(){return u(t.spinner)?t.spinner:""},e.$on("scroll.infiniteScrollComplete",function(){o()}),e.$on("$destroy",function(){l.scrollCtrl&&l.scrollCtrl.$element&&l.scrollCtrl.$element.off("scroll",l.checkBounds),l.scrollEl&&l.scrollEl.removeEventListener&&l.scrollEl.removeEventListener("scroll",l.checkBounds)}),l.checkBounds=ionic.Utils.throttle(a,300),l.getJSMaxScroll=function(){var e=l.scrollView.getScrollMax();return{left:l.scrollView.options.scrollingX?s(e.left):-1,top:l.scrollView.options.scrollingY?s(e.top):-1}},l.getNativeMaxScroll=function(){var e={left:l.scrollEl.scrollWidth,top:l.scrollEl.scrollHeight},t=window.getComputedStyle(l.scrollEl)||{};return{left:!e.left||"scroll"!==t.overflowX&&"auto"!==t.overflowX&&"scroll"!==l.scrollEl.style["overflow-x"]?-1:s(e.left),top:!e.top||"scroll"!==t.overflowY&&"auto"!==t.overflowY&&"scroll"!==l.scrollEl.style["overflow-y"]?-1:s(e.top)}},l.__finishInfiniteScroll=o}]),a.service("$ionicListDelegate",ionic.DelegateService(["showReorder","showDelete","canSwipeItems","closeOptionButtons"])).controller("$ionicList",["$scope","$attrs","$ionicListDelegate","$ionicHistory",function(e,t,n,r){var i=this,o=!0,a=!1,s=!1,l=n._registerInstance(i,t.delegateHandle,function(){return r.isActiveScope(e)});e.$on("$destroy",l),i.showReorder=function(e){return arguments.length&&(a=!!e),a},i.showDelete=function(e){return arguments.length&&(s=!!e),s},i.canSwipeItems=function(e){return arguments.length&&(o=!!e),o},i.closeOptionButtons=function(){i.listView&&i.listView.clearDragEffects()}}]),a.controller("$ionicNavBar",["$scope","$element","$attrs","$compile","$timeout","$ionicNavBarDelegate","$ionicConfig","$ionicHistory",function(e,t,n,r,i,o,a,s){function c(e,t){var n=console.warn||console.log;n&&n.call(console,"navBarController."+e+" is deprecated, please use "+t+" instead")}function d(e){if(S[e])return h(S[e])}function f(){for(var e=0;e<x.length;e++)if(x[e].isActive)return x[e]}function p(){for(var e=0;e<x.length;e++)if(!x[e].isActive)return x[e]}function m(e,t){e&&ionic.DomUtil.cachedAttr(e.containerEle(),"nav-bar",t)}function g(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}var v,_,y,b="primaryButtons",w="secondaryButtons",L="backButton",M="primaryButtons secondaryButtons leftButtons rightButtons title".split(" "),k=this,x=[],S={},T=!0;t.parent().data("$ionNavBarController",k);var $=n.delegateHandle||"navBar"+ionic.Utils.nextUid(),D=o._registerInstance(k,$);k.init=function(){t.addClass("nav-bar-container"),ionic.DomUtil.cachedAttr(t,"nav-bar-transition",a.views.transition()),k.createHeaderBar(!1),k.createHeaderBar(!0),e.$emit("ionNavBar.init",$)},k.createHeaderBar=function(i){function o(e,t){e&&("title"===t?g.append(e):"rightButtons"==t||t==w&&"left"!=a.navBar.positionSecondaryButtons()||t==b&&"right"==a.navBar.positionPrimaryButtons()?(m||(m=h('<div class="buttons buttons-right">'),f.append(m)),t==w?m.append(e):m.prepend(e)):(p||(p=h('<div class="buttons buttons-left">'),v[L]?v[L].after(p):f.prepend(p)),t==w?p.append(e):p.prepend(e)))}var s=h('<div class="nav-bar-block">');ionic.DomUtil.cachedAttr(s,"nav-bar",i?"active":"cached");var c=n.alignTitle||a.navBar.alignTitle(),f=h("<ion-header-bar>").addClass(n.class).attr("align-title",c);u(n.noTapScroll)&&f.attr("no-tap-scroll",n.noTapScroll);var p,m,g=h('<div class="title title-'+c+'">'),v={},_={};v[L]=d(L),v[L]&&f.append(v[L]),f.append(g),l(M,function(e){v[e]=d(e),o(v[e],e)});for(var y=0;y<f[0].children.length;y++)f[0].children[y].classList.add("header-item");s.append(f),t.append(r(s)(e.$new()));var k=f.data("$ionHeaderBarController");k.backButtonIcon=a.backButton.icon(),k.backButtonText=a.backButton.text();var S={isActive:i,title:function(e){k.title(e)},setItem:function(e,t){S.removeItem(t),e?("title"===t&&S.title(""),o(e,t),v[t]&&v[t].addClass("hide"),_[t]=e):v[t]&&v[t].removeClass("hide")},removeItem:function(e){_[e]&&(_[e].scope().$destroy(),_[e].remove(),_[e]=null)},containerEle:function(){return s},headerBarEle:function(){return f},afterLeave:function(){l(M,function(e){S.removeItem(e)}),k.resetBackButton()},controller:function(){return k},destroy:function(){l(M,function(e){S.removeItem(e)}),s.scope().$destroy();for(var e in v)v[e]&&(v[e].removeData(),v[e]=null);p&&p.removeData(),m&&m.removeData(),g.removeData(),f.removeData(),s.remove(),s=f=g=p=m=null}};return x.push(S),S},k.navElement=function(e,t){return u(t)&&(S[e]=t),S[e]},k.update=function(e){var t=!e.hasHeaderBar&&e.showNavBar;e.transition=a.views.transition(),t||(e.direction="none"),k.enable(t);var n=k.isInitialized?p():f(),r=k.isInitialized?f():null,i=n.controller();i.enableBack(e.enableBack,!0),i.showBack(e.showBack,!0),i.updateBackButton(),k.title(e.title,n),k.showBar(t),e.navBarItems&&l(M,function(t){n.setItem(e.navBarItems[t],t)}),k.transition(n,r,e),k.isInitialized=!0,g("")},k.transition=function(e,n,r){function o(){for(var t=0;t<x.length;t++)x[t].isActive=!1;e.isActive=!0,m(e,"active"),m(n,"cached"),k.activeTransition=c=_=null}var s=e.controller(),l=a.transitions.navBar[r.navBarTransition]||a.transitions.navBar.none,u=r.transitionId;s.beforeEnter(r);var c=l(e,n,r.direction,r.shouldAnimate&&k.isInitialized);ionic.DomUtil.cachedAttr(t,"nav-bar-transition",r.navBarTransition),ionic.DomUtil.cachedAttr(t,"nav-bar-direction",r.direction),c.shouldAnimate&&r.renderEnd?m(e,"stage"):(m(e,"entering"),m(n,"leaving")),s.resetBackButton(r),c.run(0),k.activeTransition={run:function(e){c.shouldAnimate=!1,c.direction="back",c.run(e)},cancel:function(t,r,i){g(r),m(n,"active"),m(e,"cached"),c.shouldAnimate=t,c.run(0),k.activeTransition=c=null,i.showBar!==k.showBar()&&k.showBar(i.showBar),i.showBackButton!==k.showBackButton()&&k.showBackButton(i.showBackButton)},complete:function(e,t){g(t),c.shouldAnimate=e,c.run(1),_=o}},i(s.align,16),(v=function(){y===u&&(m(e,"entering"),m(n,"leaving"),c.run(1),_=function(){y!=u&&c.shouldAnimate||o()},v=null)})()},k.triggerTransitionStart=function(e){y=e,v&&v()},k.triggerTransitionEnd=function(){_&&_()},k.showBar=function(t){return arguments.length&&(k.visibleBar(t),e.$parent.$hasHeader=!!t),!!e.$parent.$hasHeader},k.visibleBar=function(e){e&&!T?(t.removeClass("hide"),k.align()):!e&&T&&t.addClass("hide"),T=e},k.enable=function(e){k.visibleBar(e);for(var t=0;t<o._instances.length;t++)o._instances[t]!==k&&o._instances[t].visibleBar(!1)},k.showBackButton=function(t){if(arguments.length){for(var n=0;n<x.length;n++)x[n].controller().showNavBack(!!t);e.$isBackButtonShown=!!t}return e.$isBackButtonShown},k.showActiveBackButton=function(e){var t=f();if(t)return arguments.length?t.controller().showBack(e):t.controller().showBack()},k.title=function(t,n){return u(t)&&(t=t||"",n=n||f(),n&&n.title(t),e.$title=t,s.currentTitle(t)),e.$title},k.align=function(e,t){(t=t||f())&&t.controller().align(e)},k.hasTabsTop=function(e){t[e?"addClass":"removeClass"]("nav-bar-tabs-top")},k.hasBarSubheader=function(e){t[e?"addClass":"removeClass"]("nav-bar-has-subheader")},k.changeTitle=function(e){c("changeTitle(val)","title(val)"),k.title(e)},k.setTitle=function(e){c("setTitle(val)","title(val)"),k.title(e)},k.getTitle=function(){return c("getTitle()","title()"),k.title()},k.back=function(){c("back()","$ionicHistory.goBack()"),s.goBack()},k.getPreviousTitle=function(){c("getPreviousTitle()","$ionicHistory.backTitle()"),s.goBack()},e.$on("$destroy",function(){e.$parent.$hasHeader=!1,t.parent().removeData("$ionNavBarController");for(var n=0;n<x.length;n++)x[n].destroy();t.remove(),t=x=null,D()})}]),a.controller("$ionicNavView",["$scope","$element","$attrs","$compile","$controller","$ionicNavBarDelegate","$ionicNavViewDelegate","$ionicHistory","$ionicViewSwitcher","$ionicConfig","$ionicScrollDelegate","$ionicSideMenuDelegate",function(e,t,n,r,i,o,a,l,u,c,d,h){function f(e,n){for(var r,i,o=t.children(),a=0,s=o.length;a<s;a++)if(r=o.eq(a),S(r)==M){i=r.scope(),i&&i.$emit(e.name.replace("Tabs","View"),n),i&&i.$broadcast(e.name.replace("Tabs","ParentView"),n);break}}function p(e){ionic.DomUtil.cachedAttr(t,"nav-swipe",e)}function m(e,t){var n=v();n&&n.hasTabsTop(t)}function g(e,t){var n=v();n&&n.hasBarSubheader(t)}function v(){if(y)for(var e=0;e<o._instances.length;e++)if(o._instances[e].$$delegateHandle==y)return o._instances[e];return t.inheritedData("$ionNavBarController")}var _,y,b,w,L,M="active",k=this,x=!1,S=u.navViewAttr;k.scope=e,k.element=t,k.init=function(){var r=n.name||"",i=t.parent().inheritedData("$uiView"),o=i&&i.state?i.state.name:"";r.indexOf("@")<0&&(r=r+"@"+o);var s={name:r,state:null};t.data("$uiView",s);var l=a._registerInstance(k,n.delegateHandle);return e.$on("$destroy",function(){l(),k.isSwipeFreeze&&d.freezeAllScrolls(!1)}),e.$on("$ionicHistory.deselect",k.cacheCleanup),e.$on("$ionicTabs.top",m),e.$on("$ionicSubheader",g),e.$on("$ionicTabs.beforeLeave",f),e.$on("$ionicTabs.afterLeave",f),e.$on("$ionicTabs.leave",f),ionic.Platform.ready(function(){ionic.Platform.isWebView()&&ionic.Platform.isIOS()&&k.initSwipeBack()}),s},k.register=function(t){var n=s({},l.currentView()),r=l.register(e,t);k.update(r);var i=l.getViewById(r.viewId)||{},o=w!==r.viewId;k.render(r,t,i,n,o,!0)},k.update=function(e){x=!0,_=e.direction;var n=t.parent().inheritedData("$ionNavViewController");n&&(n.isPrimary(!1),"enter"!==_&&"exit"!==_||(n.direction(_),"enter"===_&&(_="none")))},k.render=function(e,t,n,r,i,o){var a=u.create(k,t,n,r,i,o);a.init(e,function(){a.transition(k.direction(),e.enableBack,!L),w=L=null})},k.beforeEnter=function(e){if(x){y=e.navBarDelegate;var t=v();t&&t.update(e),p("")}},k.activeEleId=function(e){return arguments.length&&(b=e),b},k.transitionEnd=function(){var e,n,r,i=t.children();for(e=0,n=i.length;e<n;e++)r=i.eq(e),r.data("$eleId")===b?S(r,M):"leaving"!==S(r)&&S(r)!==M&&"cached"!==S(r)||(r.data("$destroyEle")||r.data("$noCache")?u.destroyViewEle(r):(S(r,"cached"),ionic.Utils.disconnectScope(r.scope())));p(""),k.isSwipeFreeze&&d.freezeAllScrolls(!1)},k.cacheCleanup=function(){for(var e=t.children(),n=0,r=e.length;n<r;n++)e.eq(n).data("$destroyEle")&&u.destroyViewEle(e.eq(n))},k.clearCache=function(e){var n,r,i,o,a,s,l=t.children();for(i=0,o=l.length;i<o;i++)if(n=l.eq(i),e)for(s=n.data("$eleId"),a=0;a<e.length;a++)s===e[a]&&u.destroyViewEle(n);else"cached"==S(n)?u.destroyViewEle(n):S(n)==M&&(r=n.scope())&&r.$broadcast("$ionicView.clearCache")},k.getViewElements=function(){return t.children()},k.appendViewElement=function(n,o){var a=r(n);t.append(n);var s=e.$new();if(o&&o.$$controller){o.$scope=s;var l=i(o.$$controller,o);o.$$controllerAs&&(s[o.$$controllerAs]=l),t.children().data("$ngControllerController",l)}return a(s),s},k.title=function(e){var t=v();t&&t.title(e)},k.enableBackButton=function(e){var t=v();t&&t.enableBackButton(e)},k.showBackButton=function(e){var t=v();return!t||(arguments.length?t.showActiveBackButton(e):t.showActiveBackButton())},k.showBar=function(e){var t=v();return!t||(arguments.length?t.showBar(e):t.showBar())},k.isPrimary=function(e){return arguments.length&&(x=e),x},k.direction=function(e){return arguments.length&&(_=e),_},k.initSwipeBack=function(){function n(e){if(x&&c.views.swipeBackEnabled()&&!h.isOpenRight()&&!((M=o(e))>T)){m=l.backView();var n=l.currentView();if(m&&m.historyId===n.historyId&&!1!==n.canSwipeBack){b||(b=window.innerWidth),k.isSwipeFreeze=d.freezeAllScrolls(!0);var a={direction:"back"};S=[],$={showBar:k.showBar(),showBackButton:k.showBackButton()};var p=u.create(k,a,m,n,!0,!1);p.loadViewElements(a),p.render(a),s=p.transition("back",l.enabledBack(m),!0),f=v(),_=ionic.onGesture("drag",r,t[0]),y=ionic.onGesture("release",i,t[0])}}}function r(e){if(x&&s){var t=o(e);if(S.push({t:Date.now(),x:t}),t>=b-15)i(e);else{var n=Math.min(Math.max(a(t),0),1);s.run(n),f&&f.activeTransition&&f.activeTransition.run(n)}}}function i(e){if(x&&s&&S&&S.length>1){for(var t=Date.now(),n=o(e),l=S[S.length-1],u=S.length-2;u>=0&&!(t-l.t>200);u--)l=S[u];var c=n>=S[S.length-2].x,h=a(n),g=Math.abs(l.x-n)/(t-l.t);if(w=m.viewId,L=h<.03||h>.97,c&&(h>.5||g>.1)){var v=g>.5||g<.05||n>b-45?"fast":"slow";p(L?"":v),m.go(),f&&f.activeTransition&&f.activeTransition.complete(!L,v)}else p(L?"":"fast"),w=null,s.cancel(!L),f&&f.activeTransition&&f.activeTransition.cancel(!L,"fast",$),L=null}ionic.offGesture(_,"drag",r),ionic.offGesture(y,"release",i),b=s=S=null,k.isSwipeFreeze=d.freezeAllScrolls(!1)}function o(e){return ionic.tap.pointerCoord(e.gesture.srcEvent).x}function a(e){return(e-M)/b}var s,f,m,g,_,y,b,M,S,T=c.views.swipeBackHitWidth(),$={};g=ionic.onGesture("dragstart",n,t[0]),e.$on("$destroy",function(){ionic.offGesture(g,"dragstart",n),ionic.offGesture(_,"drag",r),ionic.offGesture(y,"release",i),k.element=s=f=null})}}]),a.controller("$ionicRefresher",["$scope","$attrs","$element","$ionicBind","$timeout",function(e,t,n,r,i){function o(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],A=Math.floor(e.touches[0].screenY)}function a(e){e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],A=e.touches[0].screenY}function s(){A=null,(Y||x)&&(x?(x=!1,T=0,$>D?(_(),p(D,E)):(p(0,E,v),S=!1)):(T=0,S=!1,f(!1)))}function l(e){if(e.touches=e.touches||[{screenX:e.screenX,screenY:e.screenY}],(A||"mousemove"!=e.type)&&Y&&!(e.touches.length>1)){if(null===A&&(A=e.touches[0].screenY),P=e.touches[0].screenY-A,ionic.Platform.isAndroid()&&4.4===ionic.Platform.version()&&!ionic.Platform.isCrosswalk()&&0===L.scrollTop&&P>0&&(x=!0,e.preventDefault()),P-T<=0||0!==L.scrollTop)return S&&(S=!1,f(!1)),x&&h(L,P- -1*T),void(0!==$&&d(0));P>0&&0===L.scrollTop&&!S&&(T=P),e.preventDefault(),S||(S=!0,f(!0)),x=!0,d((P-T)/3),!C&&$>D?(C=!0,ionic.requestAnimationFrame(g)):C&&$<D&&(C=!1,ionic.requestAnimationFrame(v))}}function c(e){Y=0===e.target.scrollTop||x}function d(e){M.style[ionic.CSS.TRANSFORM]="translate3d(0px, "+e+"px, 0px)",$=e}function h(e,t){e.scrollTop=t;var n=document.createEvent("UIEvents");n.initUIEvent("scroll",!0,!0,window,1),e.dispatchEvent(n)}function f(e){e?ionic.requestAnimationFrame(function(){M.classList.add("overscroll"),y()}):ionic.requestAnimationFrame(function(){M.classList.remove("overscroll"),b(),v()})}function p(e,t,n){function r(e){return--e*e*e+1}function i(){var s=Date.now(),l=Math.min(1,(s-o)/t),u=r(l);d(Math.floor(u*(e-a)+a)),l<1?ionic.requestAnimationFrame(i):(e<5&&e>-5&&(S=!1,f(!1)),n&&n())}var o=Date.now(),a=$;if(a===e)return void n();ionic.requestAnimationFrame(i)}function m(){M&&(ionic.off(O,a,M),ionic.off(I,l,M),ionic.off(j,s,M),ionic.off("mousedown",o,M),ionic.off("mousemove",l,M),ionic.off("mouseup",s,M)),L&&ionic.off("scroll",c,L),L=null,M=null}function g(){n[0].classList.add("active"),e.$onPulling()}function v(){i(function(){n.removeClass("active refreshing refreshing-tail"),C&&(C=!1)},150)}function _(){n[0].classList.add("refreshing");var t=e.$onRefresh();t&&t.then&&t.finally(function(){e.$broadcast("scroll.refreshComplete")})}function y(){n[0].classList.remove("invisible")}function b(){n[0].classList.add("invisible")}function w(){n[0].classList.add("refreshing-tail")}var L,M,k=this,x=!1,S=!1,T=0,$=0,D=60,C=!1,E=500,A=null,P=null,Y=!0;u(t.pullingIcon)||t.$set("pullingIcon","ion-android-arrow-down"),e.showSpinner=!u(t.refreshingIcon)&&"none"!=t.spinner,e.showIcon=u(t.refreshingIcon),r(e,t,{pullingIcon:"@",pullingText:"@",refreshingIcon:"@",refreshingText:"@",spinner:"@",disablePullingRotation:"@",$onRefresh:"&onRefresh",$onPulling:"&onPulling"}),e.$on("scroll.refreshComplete",function(){i(function(){ionic.requestAnimationFrame(w),p(0,E,v),i(function(){S&&(S=!1,f(!1))},E)},E)});var O,I,j;window.navigator.pointerEnabled?(O="pointerdown",I="pointermove",j="pointerup"):window.navigator.msPointerEnabled?(O="MSPointerDown",I="MSPointerMove",j="MSPointerUp"):(O="touchstart",I="touchmove",j="touchend"),k.init=function(){if(L=n.parent().parent()[0],M=n.parent()[0],!(L&&L.classList.contains("ionic-scroll")&&M&&M.classList.contains("scroll")))throw new Error("Refresher must be immediate child of ion-content or ion-scroll");ionic.on(O,a,M),ionic.on(I,l,M),ionic.on(j,s,M),ionic.on("mousedown",o,M),ionic.on("mousemove",l,M),ionic.on("mouseup",s,M),ionic.on("scroll",c,L),e.$on("$destroy",m)},k.getRefresherDomMethods=function(){return{activate:g,deactivate:v,start:_,show:y,hide:b,tail:w}},k.__handleTouchmove=l,k.__getScrollChild=function(){return M},k.__getScrollParent=function(){return L}}]),a.controller("$ionicScroll",["$scope","scrollViewOptions","$timeout","$window","$location","$document","$ionicScrollDelegate","$ionicHistory",function(e,t,n,r,i,o,a,s){var l=this;l.__timeout=n,l._scrollViewOptions=t,l.isNative=function(){return!!t.nativeScrolling};var c,d=l.element=t.el,f=l.$element=h(d);c=l.isNative()?l.scrollView=new ionic.views.ScrollNative(t):l.scrollView=new ionic.views.Scroll(t),(f.parent().length?f.parent():f).data("$$ionicScrollController",l);var p=a._registerInstance(l,t.delegateHandle,function(){return s.isActiveScope(e)});u(t.bouncing)||ionic.Platform.ready(function(){c&&c.options&&(c.options.bouncing=!0,ionic.Platform.isAndroid()&&(c.options.bouncing=!1,c.options.deceleration=.95))});var m=angular.bind(c,c.resize);angular.element(r).on("resize",m);var g=function(t){var n=(t.originalEvent||t).detail||{};e.$onScroll&&e.$onScroll({event:t,scrollTop:n.scrollTop||0,scrollLeft:n.scrollLeft||0})};f.on("scroll",g),e.$on("$destroy",function(){p(),c&&c.__cleanup&&c.__cleanup(),angular.element(r).off("resize",m),f&&f.off("scroll",g),l._scrollViewOptions&&(l._scrollViewOptions.el=null),t&&(t.el=null),c=l.scrollView=t=l._scrollViewOptions=d=l.$element=f=null}),n(function(){c&&c.run&&c.run()}),l.getScrollView=function(){return c},l.getScrollPosition=function(){return c.getValues()},l.resize=function(){return n(m,0,!1).then(function(){f&&f.triggerHandler("scroll-resize")})},l.scrollTop=function(e){l.resize().then(function(){c&&c.scrollTo(0,0,!!e)})},l.scrollBottom=function(e){l.resize().then(function(){if(c){var t=c.getScrollMax();c.scrollTo(t.left,t.top,!!e)}})},l.scrollTo=function(e,t,n){l.resize().then(function(){c&&c.scrollTo(e,t,!!n)})},l.zoomTo=function(e,t,n,r){l.resize().then(function(){c&&c.zoomTo(e,!!t,n,r)})},l.zoomBy=function(e,t,n,r){l.resize().then(function(){c&&c.zoomBy(e,!!t,n,r)})},l.scrollBy=function(e,t,n){l.resize().then(function(){c&&c.scrollBy(e,t,!!n)})},l.anchorScroll=function(e){l.resize().then(function(){if(c){var t=i.hash(),n=t&&o[0].getElementById(t);if(!t||!n)return void c.scrollTo(0,0,!!e);var r=n,a=0,s=0;do{null!==r&&(a+=r.offsetLeft),null!==r&&(s+=r.offsetTop),r=r.offsetParent}while(r.attributes!=l.element.attributes&&r.offsetParent);c.scrollTo(a,s,!!e)}})},l.freezeScroll=c.freeze,l.freezeScrollShut=c.freezeShut,l.freezeAllScrolls=function(e){for(var t=0;t<a._instances.length;t++)a._instances[t].freezeScroll(e)},l._setRefresher=function(e,t,n){l.refresher=t;var r=l.refresher.clientHeight||60;c.activatePullToRefresh(r,n)}}]),a.controller("$ionicSideMenus",["$scope","$attrs","$ionicSideMenuDelegate","$ionicPlatform","$ionicBody","$ionicHistory","$ionicScrollDelegate","IONIC_BACK_PRIORITY","$rootScope",function(e,t,n,r,i,o,a,s,l){var u,d,h,p,m,g,v,_=this,y=!0;_.$scope=e,_.initialize=function(e){_.left=e.left,_.right=e.right,_.setContent(e.content),_.dragThresholdX=e.dragThresholdX||10,o.registerHistory(_.$scope)},_.setContent=function(e){e&&(_.content=e,_.content.onDrag=function(e){_._handleDrag(e)},_.content.endDrag=function(e){_._endDrag(e)})},_.isOpenLeft=function(){return _.getOpenAmount()>0},_.isOpenRight=function(){return _.getOpenAmount()<0},_.toggleLeft=function(e){if(!v&&_.left.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t<=0),_.content.enableAnimation(),e?(_.openPercentage(100),l.$emit("$ionicSideMenuOpen","left")):(_.openPercentage(0),l.$emit("$ionicSideMenuClose","left"))}},_.toggleRight=function(e){if(!v&&_.right.isEnabled){var t=_.getOpenAmount();0===arguments.length&&(e=t>=0),_.content.enableAnimation(),e?(_.openPercentage(-100),l.$emit("$ionicSideMenuOpen","right")):(_.openPercentage(0),l.$emit("$ionicSideMenuClose","right"))}},_.toggle=function(e){"right"==e?_.toggleRight():_.toggleLeft()},_.close=function(){_.openPercentage(0),l.$emit("$ionicSideMenuClose","left"),l.$emit("$ionicSideMenuClose","right")},_.getOpenAmount=function(){return _.content&&_.content.getTranslateX()||0},_.getOpenRatio=function(){var e=_.getOpenAmount();return e>=0?e/_.left.width:e/_.right.width},_.isOpen=function(){return 0!==_.getOpenAmount()},_.getOpenPercentage=function(){return 100*_.getOpenRatio()},_.openPercentage=function(e){var t=e/100;_.left&&e>=0?_.openAmount(_.left.width*t):_.right&&e<0&&_.openAmount(_.right.width*t),i.enableClass(0!==e,"menu-open"),_.content.setCanScroll(0==e)},_.openAmount=function(e){var t=_.left&&_.left.width||0,n=_.right&&_.right.width||0;return(!_.left||!_.left.isEnabled)&&e>0||(!_.right||!_.right.isEnabled)&&e<0?void _.content.setTranslateX(0):d&&e>t?void _.content.setTranslateX(t):u&&e<-n?void _.content.setTranslateX(-n):(_.content.setTranslateX(e),d=e>0,u=e<0,void(e>0?(_.right&&_.right.pushDown&&_.right.pushDown(),_.left&&_.left.bringUp&&_.left.bringUp()):(_.right&&_.right.bringUp&&_.right.bringUp(),_.left&&_.left.pushDown&&_.left.pushDown())))},_.snapToRest=function(e){_.content.enableAnimation(),h=!1;var t=_.getOpenRatio();if(0===t)return void _.openPercentage(0);var n=e.gesture.velocityX,r=e.gesture.direction;t>0&&t<.5&&"right"==r&&n<.3?_.openPercentage(0):t>.5&&"left"==r&&n<.3?_.openPercentage(100):t<0&&t>-.5&&"left"==r&&n<.3?_.openPercentage(0):t<.5&&"right"==r&&n<.3?_.openPercentage(-100):"right"==r&&t>=0&&(t>=.5||n>.3)?_.openPercentage(100):"left"==r&&t<=0&&(t<=-.5||n>.3)?_.openPercentage(-100):_.openPercentage(0)},_.enableMenuWithBackViews=function(e){return arguments.length&&(y=!!e),y},_.isAsideExposed=function(){return!!v},_.exposeAside=function(e){(_.left&&_.left.isEnabled||_.right&&_.right.isEnabled)&&(_.close(),v=e,_.left&&_.left.isEnabled&&_.right&&_.right.isEnabled?_.content.setMarginLeftAndRight(v?_.left.width:0,v?_.right.width:0):_.left&&_.left.isEnabled?_.content.setMarginLeft(v?_.left.width:0):_.right&&_.right.isEnabled&&_.content.setMarginRight(v?_.right.width:0),_.$scope.$emit("$ionicExposeAside",v))},_.activeAsideResizing=function(e){i.enableClass(e,"aside-resizing")},_._endDrag=function(e){v||(h&&_.snapToRest(e),p=null,m=null,g=null)},_._handleDrag=function(t){!v&&e.dragContent&&(p?m=t.gesture.touches[0].pageX:(p=t.gesture.touches[0].pageX,m=p),!h&&Math.abs(m-p)>_.dragThresholdX&&(p=m,h=!0,_.content.disableAnimation(),g=_.getOpenAmount()),h&&_.openAmount(g+(m-p)))},_.canDragContent=function(t){return arguments.length&&(e.dragContent=!!t),e.dragContent},_.edgeThreshold=25,_.edgeThresholdEnabled=!1,_.edgeDragThreshold=function(e){return arguments.length&&(c(e)&&e>0?(_.edgeThreshold=e,_.edgeThresholdEnabled=!0):_.edgeThresholdEnabled=!!e),_.edgeThresholdEnabled},_.isDraggableTarget=function(t){var n=_.edgeThresholdEnabled&&!_.isOpen(),r=t.gesture.startEvent&&t.gesture.startEvent.center&&t.gesture.startEvent.center.pageX,i=!n||r<=_.edgeThreshold||r>=_.content.element.offsetWidth-_.edgeThreshold,a=o.backView(),s=!!y||!a;if(!s){var l=o.currentView()||{};return i&&a.historyId!==l.historyId}return(e.dragContent||_.isOpen())&&i&&!t.gesture.srcEvent.defaultPrevented&&s&&!t.target.tagName.match(/input|textarea|select|object|embed/i)&&!t.target.isContentEditable&&!(t.target.dataset?t.target.dataset.preventScroll:"true"==t.target.getAttribute("data-prevent-scroll"))},e.sideMenuContentTranslateX=0;var b=f,w=angular.bind(_,_.close);e.$watch(function(){return 0!==_.getOpenAmount()},function(e){b(),e&&(b=r.registerBackButtonAction(w,s.sideMenu))});var L=n._registerInstance(_,t.delegateHandle,function(){return o.isActiveScope(e)});e.$on("$destroy",function(){L(),b(),_.$scope=null,_.content&&(_.content.setCanScroll(!0),_.content.element=null,_.content=null)}),_.initialize({left:{width:275},right:{width:275}})}]),function(e){function t(e,r,i,a){var s,l,u,c=document.createElement(o[e]||e);for(s in r)if(angular.isArray(r[s]))for(l=0;l<r[s].length;l++)if(r[s][l].fn)for(u=0;u<r[s][l].t;u++)t(s,r[s][l].fn(u,a),c,a);else t(s,r[s][l],c,a);else n(c,s,r[s]);i.appendChild(c)}function n(e,t,n){e.setAttribute(o[t]||t,n)}function r(e,t){var n=e.split(";"),r=n.slice(t),i=n.slice(0,n.length-r.length);return n=r.concat(i).reverse(),n.join(";")+";"+n[0]}function i(e,t){return(e/=t/2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}var o={a:"animate",an:"attributeName",at:"animateTransform",c:"circle",da:"stroke-dasharray",os:"stroke-dashoffset",f:"fill",lc:"stroke-linecap",rc:"repeatCount",sw:"stroke-width",t:"transform",v:"values"},s={v:"0,32,32;360,32,32",an:"transform",type:"rotate",rc:"indefinite",dur:"750ms"},l={sw:4,lc:"round",line:[{fn:function(e,t){return{y1:"ios"==t?17:12,y2:"ios"==t?29:20,t:"translate(32,32) rotate("+(30*e+(e<6?180:-180))+")",a:[{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:r("0;.1;.15;.25;.35;.45;.55;.65;.7;.85;1",e),rc:"indefinite"}},t:1}]}},t:12}]},u={android:{c:[{sw:6,da:128,os:82,r:26,cx:32,cy:32,f:"none"}]},ios:l,"ios-small":l,bubbles:{sw:0,c:[{fn:function(e){return{cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",a:[{fn:function(){return{an:"r",dur:"750ms",v:r("1;2;3;4;5;6;7;8",e),rc:"indefinite"}},t:1}]}},t:8}]},circles:{c:[{fn:function(e){return{r:5,cx:24*Math.cos(2*Math.PI*e/8),cy:24*Math.sin(2*Math.PI*e/8),t:"translate(32,32)",sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:r(".3;.3;.3;.4;.7;.85;.9;1",e),rc:"indefinite"}},t:1}]}},t:8}]},crescent:{c:[{sw:4,da:128,os:82,r:26,cx:32,cy:32,f:"none",at:[s]}]},dots:{c:[{fn:function(e){return{cx:16+16*e,cy:32,sw:0,a:[{fn:function(){return{an:"fill-opacity",dur:"750ms",v:r(".5;.6;.8;1;.8;.6;.5",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"r",dur:"750ms",v:r("4;5;6;5;4;3;3",e),rc:"indefinite"}},t:1}]}},t:3}]},lines:{sw:7,lc:"round",line:[{fn:function(e){return{x1:10+14*e,x2:10+14*e,a:[{fn:function(){return{an:"y1",dur:"750ms",v:r("16;18;28;18;16",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"y2",dur:"750ms",v:r("48;44;36;46;48",e),rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",dur:"750ms",v:r("1;.8;.5;.4;1",e),rc:"indefinite"}},t:1}]}},t:4}]},ripple:{f:"none","fill-rule":"evenodd",sw:3,circle:[{fn:function(e){return{cx:32,cy:32,a:[{fn:function(){return{an:"r",begin:-1*e+"s",dur:"2s",v:"0;24",keyTimes:"0;1",keySplines:"0.1,0.2,0.3,1",calcMode:"spline",rc:"indefinite"}},t:1},{fn:function(){return{an:"stroke-opacity",begin:-1*e+"s",dur:"2s",v:".2;1;.2;0",rc:"indefinite"}},t:1}]}},t:2}]},spiral:{defs:[{linearGradient:[{id:"sGD",gradientUnits:"userSpaceOnUse",x1:55,y1:46,x2:2,y2:46,stop:[{offset:.1,class:"stop1"},{offset:1,class:"stop2"}]}]}],g:[{sw:4,lc:"round",f:"none",path:[{stroke:"url(#sGD)",d:"M4,32 c0,15,12,28,28,28c8,0,16-4,21-9"},{d:"M60,32 C60,16,47.464,4,32,4S4,16,4,32"}],at:[s]}]}},c={android:function(t){function r(){if(!o.stop){var t=i(Date.now()-a,650),d=1,h=0,f=188-58*t,p=182-182*t;s%2&&(d=-1,h=-64,f=128- -58*t,p=182*t);var m=[0,-101,-90,-11,-180,79,-270,-191][s];n(c,"da",Math.max(Math.min(f,188),128)),n(c,"os",Math.max(Math.min(p,182),0)),n(c,"t","scale("+d+",1) translate("+h+",0) rotate("+m+",32,32)"),l+=4.1,l>359&&(l=0),n(u,"t","rotate("+l+",32,32)"),t>=1&&(s++,s>7&&(s=0),a=Date.now()),e.requestAnimationFrame(r)}}var o={};this.stop=!1;var a,s=0,l=0,u=t.querySelector("g"),c=t.querySelector("circle");return function(){return a=Date.now(),r(),o}}};a.controller("$ionicSpinner",["$element","$attrs","$ionicConfig",function(e,n,r){var i,o;this.init=function(){i=n.icon||r.spinner.icon();var o=document.createElement("div");return t("svg",{viewBox:"0 0 64 64",g:[u[i]]},o,i),e.html(o.innerHTML),this.start(),i},this.start=function(){c[i]&&(o=c[i](e[0])())},this.stop=function(){c[i]&&(o.stop=!0)}}])}(ionic),a.controller("$ionicTab",["$scope","$ionicHistory","$attrs","$location","$state",function(e,t,n,r,i){this.$scope=e,this.hrefMatchesState=function(){return n.href&&0===r.path().indexOf(n.href.replace(/^#/,"").replace(/\/$/,""))},this.srefMatchesState=function(){return n.uiSref&&i.includes(n.uiSref.split("(")[0])},this.navNameMatchesState=function(){return this.navViewName&&t.isCurrentStateNavView(this.navViewName)},this.tabMatchesState=function(){return this.hrefMatchesState()||this.srefMatchesState()||this.navNameMatchesState()}}]),a.controller("$ionicTabs",["$scope","$element","$ionicHistory",function(e,t,n){var r,i=this,o=null,a=null,s=!0;i.tabs=[],i.selectedIndex=function(){return i.tabs.indexOf(o)},i.selectedTab=function(){return o},i.previousSelectedTab=function(){return a},i.add=function(e){n.registerHistory(e),i.tabs.push(e)},i.remove=function(e){var t=i.tabs.indexOf(e);if(-1!==t){if(e.$tabSelected)if(i.deselect(e),1===i.tabs.length);else{var n=t===i.tabs.length-1?t-1:t+1;i.select(i.tabs[n])}i.tabs.splice(t,1)}},i.deselect=function(e){e.$tabSelected&&(a=o,o=r=null,e.$tabSelected=!1,(e.onDeselect||f)(),e.$broadcast&&e.$broadcast("$ionicHistory.deselect"))},i.select=function(t,a){var s;if(c(t)){if((s=t)>=i.tabs.length)return;t=i.tabs[s]}else s=i.tabs.indexOf(t);1===arguments.length&&(a=!(!t.navViewName&&!t.uiSref)),o&&o.$historyId==t.$historyId?a&&n.goToHistoryRoot(t.$historyId):r!==s&&(l(i.tabs,function(e){i.deselect(e)}),o=t,r=s,i.$scope&&i.$scope.$parent&&(i.$scope.$parent.$activeHistoryId=t.$historyId),t.$tabSelected=!0,(t.onSelect||f)(),a&&e.$emit("$ionicHistory.change",{type:"tab",tabIndex:s,historyId:t.$historyId,navViewName:t.navViewName,hasNavView:!!t.navViewName,title:t.title,url:t.href,uiSref:t.uiSref}),
-e.$broadcast("tabSelected",{selectedTab:t,selectedTabIndex:s}))},i.hasActiveScope=function(){for(var e=0;e<i.tabs.length;e++)if(n.isActiveScope(i.tabs[e]))return!0;return!1},i.showBar=function(e){return arguments.length&&(e?t.removeClass("tabs-item-hide"):t.addClass("tabs-item-hide"),s=!!e),s}}]),a.controller("$ionicView",["$scope","$element","$attrs","$compile","$rootScope",function(e,t,n,r,i){function o(){var t=u(n.viewTitle)&&"viewTitle"||u(n.title)&&"title";t&&(a(n[t]),v.push(n.$observe(t,a))),u(n.hideBackButton)&&v.push(e.$watch(n.hideBackButton,function(e){h.showBackButton(!e)})),u(n.hideNavBar)&&v.push(e.$watch(n.hideNavBar,function(e){h.showBar(!e)}))}function a(e){u(e)&&e!==p&&(p=e,h.title(p))}function l(){for(var e=0;e<v.length;e++)v[e]();v=[]}function c(t){if(t)return r(t)(e.$new())}function d(t){return!!e.$eval(n[t])}var h,f,p,m=this,g={},v=[],_=e.$on("ionNavBar.init",function(e,t){e.stopPropagation(),f=t});m.init=function(){_();var n=t.inheritedData("$ionModalController");(h=t.inheritedData("$ionNavViewController"))&&!n&&(e.$on("$ionicView.beforeEnter",m.beforeEnter),e.$on("$ionicView.afterEnter",o),e.$on("$ionicView.beforeLeave",l))},m.beforeEnter=function(t,r){if(r&&!r.viewNotified){r.viewNotified=!0,i.$$phase||e.$digest(),p=u(n.viewTitle)?n.viewTitle:n.title;var o={};for(var a in g)o[a]=c(g[a]);h.beforeEnter(s(r,{title:p,showBack:!d("hideBackButton"),navBarItems:o,navBarDelegate:f||null,showNavBar:!d("hideNavBar"),hasHeaderBar:!1})),l()}},m.navElement=function(e,t){g[e]=t}}]),a.directive("ionActionSheet",["$document",function(e){return{restrict:"E",scope:!0,replace:!0,link:function(t,n){var r=function(e){27==e.which&&(t.cancel(),t.$apply())},i=function(e){e.target==n[0]&&(t.cancel(),t.$apply())};t.$on("$destroy",function(){n.remove(),e.unbind("keyup",r)}),e.bind("keyup",r),n.bind("click",i)},template:'<div class="action-sheet-backdrop"><div class="action-sheet-wrapper"><div class="action-sheet" ng-class="{\'action-sheet-has-icons\': $actionSheetHasIcon}"><div class="action-sheet-group action-sheet-options"><div class="action-sheet-title" ng-if="titleText" ng-bind-html="titleText"></div><button class="button action-sheet-option" ng-click="buttonClicked($index)" ng-class="b.className" ng-repeat="b in buttons" ng-bind-html="b.text"></button><button class="button destructive action-sheet-destructive" ng-if="destructiveText" ng-click="destructiveButtonClicked()" ng-bind-html="destructiveText"></button></div><div class="action-sheet-group action-sheet-cancel" ng-if="cancelText"><button class="button" ng-click="cancel()" ng-bind-html="cancelText"></button></div></div></div></div>'}}]),a.directive("ionCheckbox",["$ionicConfig",function(e){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-checkbox"><div class="checkbox checkbox-input-hidden disable-pointer-events"><input type="checkbox"><i class="checkbox-icon"></i></div><div class="item-content disable-pointer-events" ng-transclude></div></label>',compile:function(t,n){var r=t.find("input");l({name:n.name,"ng-value":n.ngValue,"ng-model":n.ngModel,"ng-checked":n.ngChecked,"ng-disabled":n.ngDisabled,"ng-true-value":n.ngTrueValue,"ng-false-value":n.ngFalseValue,"ng-change":n.ngChange,"ng-required":n.ngRequired,required:n.required},function(e,t){u(e)&&r.attr(t,e)}),t[0].querySelector(".checkbox").classList.add("checkbox-"+e.form.checkbox())}}}]),a.directive("collectionRepeat",e).factory("$ionicCollectionManager",t);var p="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",m=/height:.*?px;\s*width:.*?px/,g=3;e.$inject=["$ionicCollectionManager","$parse","$window","$$rAF","$rootScope","$timeout"],t.$inject=["$rootScope","$window","$$rAF"],a.directive("ionContent",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",require:"^?ionNavView",scope:!0,priority:800,compile:function(e,i){function o(e,r,o){function c(){e.$onScrollComplete({scrollTop:s.scrollView.__scrollTop,scrollLeft:s.scrollView.__scrollLeft})}var d=e.$parent;if(e.$watch(function(){return(d.$hasHeader?" has-header":"")+(d.$hasSubheader?" has-subheader":"")+(d.$hasFooter?" has-footer":"")+(d.$hasSubfooter?" has-subfooter":"")+(d.$hasTabs?" has-tabs":"")+(d.$hasTabsTop?" has-tabs-top":"")},function(e,t){r.removeClass(t),r.addClass(e)}),e.$hasHeader=e.$hasSubheader=e.$hasFooter=e.$hasSubfooter=e.$hasTabs=e.$hasTabsTop=!1,n(e,o,{$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",hasBouncing:"@",padding:"@",direction:"@",scrollbarX:"@",scrollbarY:"@",startX:"@",startY:"@",scrollEventInterval:"@"}),e.direction=e.direction||"y",u(o.padding)&&e.$watch(o.padding,function(e){(a||r).toggleClass("padding",!!e)}),"false"===o.scroll);else{var h={};l?(r.addClass("overflow-scroll"),h={el:r[0],delegateHandle:i.delegateHandle,startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,nativeScrolling:!0}):h={el:r[0],delegateHandle:i.delegateHandle,locking:"true"===(i.locking||"true"),bouncing:e.$eval(e.hasBouncing),startX:e.$eval(e.startX)||0,startY:e.$eval(e.startY)||0,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,scrollEventInterval:parseInt(e.scrollEventInterval,10)||10,scrollingComplete:c},s=t("$ionicScroll",{$scope:e,scrollViewOptions:h}),e.scrollCtrl=s,e.$on("$destroy",function(){h&&(h.scrollingComplete=f,delete h.el),a=null,r=null,i.$$element=null})}}var a,s;e.addClass("scroll-content ionic-scroll"),"false"!=i.scroll?(a=h('<div class="scroll"></div>'),a.append(e.contents()),e.append(a)):e.addClass("scroll-content-false");var l="false"!==i.overflowScroll&&("true"===i.overflowScroll||!r.scrolling.jsScrolling());return l&&(l=!e[0].querySelector("[collection-repeat]")),{pre:o}}}}]),a.directive("exposeAsideWhen",["$window",function(e){return{restrict:"A",require:"^ionSideMenus",link:function(t,n,r,i){function o(){var t="large"==r.exposeAsideWhen?"(min-width:768px)":r.exposeAsideWhen;i.exposeAside(e.matchMedia(t).matches),i.activeAsideResizing(!1)}function a(){i.activeAsideResizing(!0),u()}var s=e.innerWidth,l=e.innerHeight;ionic.on("resize",function(){s===e.innerWidth&&l===e.innerHeight||(s=e.innerWidth,l=e.innerHeight,a())},e);var u=ionic.debounce(function(){t.$apply(o)},300,!1);t.$evalAsync(o)}}}]),"onHold onTap onDoubleTap onTouch onRelease onDragStart onDrag onDragEnd onDragUp onDragRight onDragDown onDragLeft onSwipe onSwipeUp onSwipeRight onSwipeDown onSwipeLeft".split(" ").forEach(function(e){a.directive(e,n(e))}),a.directive("ionHeaderBar",r(!0)).directive("ionFooterBar",r(!1)),a.directive("ionInfiniteScroll",["$timeout",function(e){return{restrict:"E",require:["?^$ionicScroll","ionInfiniteScroll"],template:function(e,t){return t.icon?'<i class="icon {{icon()}} icon-refreshing {{scrollingType}}"></i>':'<ion-spinner icon="{{spinner()}}"></ion-spinner>'},scope:!0,controller:"$ionInfiniteScroll",link:function(t,n,r,i){var o=i[1],a=o.scrollCtrl=i[0];if(o.jsScrolling=!a.isNative())o.scrollView=a.scrollView,t.scrollingType="js-scrolling",a.$element.on("scroll",o.checkBounds);else{var s=ionic.DomUtil.getParentOrSelfWithClass(n[0].parentNode,"overflow-scroll");if(o.scrollEl=s,!s)throw"Infinite scroll must be used inside a scrollable div";o.scrollEl.addEventListener("scroll",o.checkBounds)}(!u(r.immediateCheck)||t.$eval(r.immediateCheck))&&e(function(){o.checkBounds()})}}}]);var v=-1;a.directive("ionInput",[function(){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t,this.setInputAriaLabeledBy=function(e){var n=t[0].querySelectorAll("input,textarea");n.length&&n[0].setAttribute("aria-labelledby",e)},this.focus=function(){var e=t[0].querySelectorAll("input,textarea");e.length&&e[0].focus()}}]}}]),a.directive("ionLabel",[function(){return{restrict:"E",require:"?^ionInput",compile:function(){return function(e,t,n,r){var i=t[0];t.addClass("input-label"),t.attr("aria-label",t.text());var o=i.id||"_label-"+ ++v;i.id||t.attr("id",o),r&&(r.setInputAriaLabeledBy(o),t.on("click",function(){r.focus()}))}}}}]),a.directive("inputLabel",[function(){return{restrict:"C",require:"?^ionInput",compile:function(){return function(e,t,n,r){var i=t[0];t.attr("aria-label",t.text());var o=i.id||"_label-"+ ++v;i.id||t.attr("id",o),r&&r.setInputAriaLabeledBy(o)}}}}]),a.directive("ionItem",["$$rAF",function(e){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t}],scope:!0,compile:function(t,n){var r=u(n.href)||u(n.ngHref)||u(n.uiSref);if(r||/ion-(delete|option|reorder)-button/i.test(t.html())){var i=h(r?"<a></a>":"<div></div>");i.addClass("item-content"),(u(n.href)||u(n.ngHref))&&(i.attr("ng-href","{{$href()}}"),u(n.target)&&i.attr("target","{{$target()}}")),i.append(t.contents()),t.addClass("item item-complex").append(i)}else t.addClass("item");return function(t,n,r){t.$href=function(){return r.href||r.ngHref},t.$target=function(){return r.target};var i=n[0].querySelector(".item-content");i&&t.$on("$collectionRepeatLeave",function(){i&&i.$$ionicOptionsOpen&&(i.style[ionic.CSS.TRANSFORM]="",i.style[ionic.CSS.TRANSITION]="none",e(function(){i.style[ionic.CSS.TRANSITION]=""}),i.$$ionicOptionsOpen=!1)})}}}}]);a.directive("ionDeleteButton",function(){function e(e){e.stopPropagation()}return{restrict:"E",require:["^^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),function(t,n,r,i){function o(){(s=s||n.controller("ionList"))&&s.showDelete()&&l.addClass("visible active")}var a=i[0],s=i[1],l=h('<div class="item-left-edit item-delete enable-pointer-events"></div>');l.append(n),a.$element.append(l).addClass("item-left-editable"),n.on("click",e),o(),t.$on("$ionic.reconnectScope",o)}}}}),a.directive("itemFloatingLabel",function(){return{restrict:"C",link:function(e,t){var n=t[0],r=n.querySelector("input, textarea"),i=n.querySelector(".input-label");if(r&&i){var o=function(){r.value?i.classList.add("has-input"):i.classList.remove("has-input")};r.addEventListener("input",o);var a=h(r).controller("ngModel");a&&(a.$render=function(){r.value=a.$viewValue||"",o()}),e.$on("$destroy",function(){r.removeEventListener("input",o)})}}}});a.directive("ionOptionButton",[function(){function e(e){e.stopPropagation()}return{restrict:"E",require:"^ionItem",priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button",!0),function(t,n,r,i){i.optionsContainer||(i.optionsContainer=h('<div class="item-options invisible"></div>'),i.$element.prepend(i.optionsContainer)),i.optionsContainer.prepend(n),i.$element.addClass("item-right-editable"),n.on("click",e)}}}}]);a.directive("ionReorderButton",["$parse",function(e){return{restrict:"E",require:["^ionItem","^?ionList"],priority:Number.MAX_VALUE,compile:function(t,n){return n.$set("class",(n.class||"")+" button icon button-icon",!0),t[0].setAttribute("data-prevent-scroll",!0),function(t,n,r,i){var o=i[0],a=i[1],s=e(r.onReorder);t.$onReorder=function(e,n){s(t,{$fromIndex:e,$toIndex:n})},r.ngClick||r.onClick||r.onclick||(n[0].onclick=function(e){return e.stopPropagation(),!1});var l=h('<div data-prevent-scroll="true" class="item-right-edit item-reorder enable-pointer-events"></div>');l.append(n),o.$element.append(l).addClass("item-right-editable"),a&&a.showReorder()&&l.addClass("visible active")}}}}]),a.directive("keyboardAttach",function(){return function(e,t){function n(e){if(!ionic.Platform.isAndroid()||ionic.Platform.isFullScreen){var n=e.keyboardHeight||e.detail&&e.detail.keyboardHeight;t.css("bottom",n+"px"),o=t.controller("$ionicScroll"),o&&(o.scrollView.__container.style.bottom=n+i(t[0])+"px")}}function r(){ionic.Platform.isAndroid()&&!ionic.Platform.isFullScreen||(t.css("bottom",""),o&&(o.scrollView.__container.style.bottom=""))}ionic.on("native.keyboardshow",n,window),ionic.on("native.keyboardhide",r,window),ionic.on("native.showkeyboard",n,window),ionic.on("native.hidekeyboard",r,window);var o;e.$on("$destroy",function(){ionic.off("native.keyboardshow",n,window),ionic.off("native.keyboardhide",r,window),ionic.off("native.showkeyboard",n,window),ionic.off("native.hidekeyboard",r,window)})}}),a.directive("ionList",["$timeout",function(e){return{restrict:"E",require:["ionList","^?$ionicScroll"],controller:"$ionicList",compile:function(t,n){var r=h('<div class="list">').append(t.contents()).addClass(n.type);return t.append(r),function(t,r,i,o){function a(){function i(e,t){t()&&e.addClass("visible")||e.removeClass("active"),ionic.requestAnimationFrame(function(){t()&&e.addClass("active")||e.removeClass("visible")})}var o=s.listView=new ionic.views.ListView({el:r[0],listEl:r.children()[0],scrollEl:l&&l.element,scrollView:l&&l.scrollView,onReorder:function(t,n,r){var i=h(t).scope();i&&i.$onReorder&&e(function(){i.$onReorder(n,r)})},canSwipe:function(){return s.canSwipeItems()}});t.$on("$destroy",function(){o&&(o.deregister&&o.deregister(),o=null)}),u(n.canSwipe)&&t.$watch("!!("+n.canSwipe+")",function(e){s.canSwipeItems(e)}),u(n.showDelete)&&t.$watch("!!("+n.showDelete+")",function(e){s.showDelete(e)}),u(n.showReorder)&&t.$watch("!!("+n.showReorder+")",function(e){s.showReorder(e)}),t.$watch(function(){return s.showDelete()},function(e,t){if(e||t){e&&s.closeOptionButtons(),s.canSwipeItems(!e),r.children().toggleClass("list-left-editing",e),r.toggleClass("disable-pointer-events",e);i(h(r[0].getElementsByClassName("item-delete")),s.showDelete)}}),t.$watch(function(){return s.showReorder()},function(e,t){if(e||t){e&&s.closeOptionButtons(),s.canSwipeItems(!e),r.children().toggleClass("list-right-editing",e),r.toggleClass("disable-pointer-events",e);i(h(r[0].getElementsByClassName("item-reorder")),s.showReorder)}})}var s=o[0],l=o[1];e(a)}}}}]),a.directive("menuClose",["$ionicHistory","$timeout",function(e,t){return{restrict:"AC",link:function(n,r){r.bind("click",function(){var n=r.inheritedData("$ionSideMenusController");n&&(e.nextViewOptions({historyRoot:!0,disableAnimate:!0,expire:300}),t(function(){e.nextViewOptions({historyRoot:!1,disableAnimate:!1})},300),n.close())})}}}]),a.directive("menuToggle",function(){return{restrict:"AC",link:function(e,t,n){e.$on("$ionicView.beforeEnter",function(e,n){if(n.enableBack){t.inheritedData("$ionSideMenusController").enableMenuWithBackViews()||t.addClass("hide")}else t.removeClass("hide")}),t.bind("click",function(){var e=t.inheritedData("$ionSideMenusController");e&&e.toggle(n.menuToggle)})}}}),a.directive("ionModal",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="modal-backdrop"><div class="modal-backdrop-bg"></div><div class="modal-wrapper" ng-transclude></div></div>'}}]),a.directive("ionModalView",function(){return{restrict:"E",compile:function(e){e.addClass("modal")}}}),a.directive("ionNavBackButton",["$ionicConfig","$document",function(e,t){return{restrict:"E",require:"^ionNavBar",compile:function(n,r){function i(e){return/ion-|icon/.test(e.className)}var o=t[0].createElement("button");for(var a in r.$attr)o.setAttribute(r.$attr[a],r[a]);r.ngClick||o.setAttribute("ng-click","$ionicGoBack()"),o.className="button back-button hide buttons "+(n.attr("class")||""),o.innerHTML=n.html()||"";for(var s,l,u,c,d=i(n[0]),h=0;h<n[0].childNodes.length;h++)s=n[0].childNodes[h],1===s.nodeType?i(s)?d=!0:s.classList.contains("default-title")?u=!0:s.classList.contains("previous-title")&&(c=!0):l||3!==s.nodeType||(l=!!s.nodeValue.trim());var f=e.backButton.icon();if(!d&&f&&"none"!==f&&(o.innerHTML='<i class="icon '+f+'"></i> '+o.innerHTML,o.className+=" button-clear"),!l){var p=t[0].createElement("span");p.className="back-text",!u&&e.backButton.text()&&(p.innerHTML+='<span class="default-title">'+e.backButton.text()+"</span>"),!c&&e.backButton.previousTitleText()&&(p.innerHTML+='<span class="previous-title"></span>'),o.appendChild(p)}return n.attr("class","hide"),n.empty(),{pre:function(e,t,n,r){r.navElement("backButton",o.outerHTML),o=null}}}}}]),a.directive("ionNavBar",function(){return{restrict:"E",controller:"$ionicNavBar",scope:!0,link:function(e,t,n,r){r.init()}}}),a.directive("ionNavButtons",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var r="left";/^primary|secondary|right$/i.test(n.side||"")&&(r=n.side.toLowerCase());var i=e[0].createElement("span");i.className=r+"-buttons",i.innerHTML=t.html();var o=r+"Buttons";return t.attr("class","hide"),t.empty(),{pre:function(e,t,n,r){var a=t.parent().data("$ionViewController");a?a.navElement(o,i.outerHTML):r.navElement(o,i.outerHTML),i=null}}}}}]),a.directive("navDirection",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,r){n.bind("click",function(){e.nextDirection(r.navDirection)})}}}]),a.directive("ionNavTitle",["$document",function(e){return{require:"^ionNavBar",restrict:"E",compile:function(t,n){var r=e[0].createElement("span");for(var i in n.$attr)r.setAttribute(n.$attr[i],n[i]);return r.classList.add("nav-bar-title"),r.innerHTML=t.html(),t.attr("class","hide"),t.empty(),{pre:function(e,t,n,i){var o=t.parent().data("$ionViewController");o?o.navElement("title",r.outerHTML):i.navElement("title",r.outerHTML),r=null}}}}}]),a.directive("navTransition",["$ionicViewSwitcher",function(e){return{restrict:"A",priority:1e3,link:function(t,n,r){n.bind("click",function(){e.nextTransition(r.navTransition)})}}}]),a.directive("ionNavView",["$state","$ionicConfig",function(e,t){return{restrict:"E",terminal:!0,priority:2e3,transclude:!0,controller:"$ionicNavView",compile:function(n,r,i){return n.addClass("view-container"),ionic.DomUtil.cachedAttr(n,"nav-view-transition",t.views.transition()),function(t,n,r,o){function a(t){var n=e.$current&&e.$current.locals[l.name];n&&(t||n!==s)&&(s=n,l.state=n.$$state,o.register(n))}var s;i(t,function(e){n.append(e)});var l=o.init();t.$on("$stateChangeSuccess",function(){a(!1)}),t.$on("$viewContentLoading",function(){a(!1)}),a(!0)}}}}]),a.config(["$provide",function(e){e.decorator("ngClickDirective",["$delegate",function(e){return e.shift(),e}])}]).factory("$ionicNgClick",["$parse",function(e){return function(t,n,r){var i=angular.isFunction(r)?r:e(r);n.on("click",function(e){t.$apply(function(){i(t,{$event:e})})}),n.onclick=f}}]).directive("ngClick",["$ionicNgClick",function(e){return function(t,n,r){e(t,n,r.ngClick)}}]).directive("ionStopEvent",function(){return{restrict:"A",link:function(e,t,n){t.bind(n.ionStopEvent,o)}}}),a.directive("ionPane",function(){return{restrict:"E",link:function(e,t){t.addClass("pane")}}}),a.directive("ionPopover",[function(){return{restrict:"E",transclude:!0,replace:!0,controller:[function(){}],template:'<div class="popover-backdrop"><div class="popover-wrapper" ng-transclude></div></div>'}}]),a.directive("ionPopoverView",function(){return{restrict:"E",compile:function(e){e.append(h('<div class="popover-arrow">')),e.addClass("popover")}}}),a.directive("ionRadio",function(){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<label class="item item-radio"><input type="radio" name="radio-group"><div class="radio-content"><div class="item-content disable-pointer-events" ng-transclude></div><i class="radio-icon disable-pointer-events icon ion-checkmark"></i></div></label>',compile:function(e,t){if(t.icon){e.find("i").removeClass("ion-checkmark").addClass(t.icon)}var n=e.find("input");return l({name:t.name,value:t.value,disabled:t.disabled,"ng-value":t.ngValue,"ng-model":t.ngModel,"ng-disabled":t.ngDisabled,"ng-change":t.ngChange,"ng-required":t.ngRequired,required:t.required},function(e,t){u(e)&&n.attr(t,e)}),function(e,t,n){e.getValue=function(){return e.ngValue||n.value}}}}}),a.directive("ionRefresher",[function(){return{restrict:"E",replace:!0,require:["?^$ionicScroll","ionRefresher"],controller:"$ionicRefresher",template:'<div class="scroll-refresher invisible" collection-repeat-ignore><div class="ionic-refresher-content" ng-class="{\'ionic-refresher-with-text\': pullingText || refreshingText}"><div class="icon-pulling" ng-class="{\'pulling-rotation-disabled\':disablePullingRotation}"><i class="icon {{pullingIcon}}"></i></div><div class="text-pulling" ng-bind-html="pullingText"></div><div class="icon-refreshing"><ion-spinner ng-if="showSpinner" icon="{{spinner}}"></ion-spinner><i ng-if="showIcon" class="icon {{refreshingIcon}}"></i></div><div class="text-refreshing" ng-bind-html="refreshingText"></div></div></div>',link:function(e,t,n,r){var i=r[0],o=r[1];!i||i.isNative()?o.init():(t[0].classList.add("js-scrolling"),i._setRefresher(e,t[0],o.getRefresherDomMethods()),e.$on("scroll.refreshComplete",function(){e.$evalAsync(function(){i.scrollView&&i.scrollView.finishPullToRefresh()})}))}}}]),a.directive("ionScroll",["$timeout","$controller","$ionicBind","$ionicConfig",function(e,t,n,r){return{restrict:"E",scope:!0,controller:function(){},compile:function(e,i){function o(e,r,i){function o(){e.$onScrollComplete&&e.$onScrollComplete({scrollTop:d.scrollView.__scrollTop,scrollLeft:d.scrollView.__scrollLeft})}n(e,i,{direction:"@",paging:"@",$onScroll:"&onScroll",$onScrollComplete:"&onScrollComplete",scroll:"@",scrollbarX:"@",scrollbarY:"@",zooming:"@",minZoom:"@",maxZoom:"@"}),e.direction=e.direction||"y",u(i.padding)&&e.$watch(i.padding,function(e){a.toggleClass("padding",!!e)}),!0===e.$eval(e.paging)&&a.addClass("scroll-paging"),e.direction||(e.direction="y");var l=!0===e.$eval(e.paging);s&&r.addClass("overflow-scroll"),r.addClass("scroll-"+e.direction);var c={el:r[0],delegateHandle:i.delegateHandle,locking:"true"===(i.locking||"true"),bouncing:e.$eval(i.hasBouncing),paging:l,scrollbarX:!1!==e.$eval(e.scrollbarX),scrollbarY:!1!==e.$eval(e.scrollbarY),scrollingX:e.direction.indexOf("x")>=0,scrollingY:e.direction.indexOf("y")>=0,zooming:!0===e.$eval(e.zooming),maxZoom:e.$eval(e.maxZoom)||3,minZoom:e.$eval(e.minZoom)||.5,preventDefault:!0,nativeScrolling:s,scrollingComplete:o};l&&(c.speedMultiplier=.8,c.bouncing=!1);var d=t("$ionicScroll",{$scope:e,scrollViewOptions:c})}e.addClass("scroll-view ionic-scroll");var a=h('<div class="scroll"></div>');a.append(e.contents()),e.append(a);var s="false"!==i.overflowScroll&&("true"===i.overflowScroll||!r.scrolling.jsScrolling());return{pre:o}}}}]),a.directive("ionSideMenu",function(){return{restrict:"E",require:"^ionSideMenus",scope:!0,compile:function(e,t){return angular.isUndefined(t.isEnabled)&&t.$set("isEnabled","true"),angular.isUndefined(t.width)&&t.$set("width","275"),e.addClass("menu menu-"+t.side),function(e,n,r,i){e.side=r.side||"left";var o=i[e.side]=new ionic.views.SideMenu({width:t.width,el:n[0],isEnabled:!0});e.$watch(r.width,function(e){var t=+e;t&&t==e&&o.setWidth(+e)}),e.$watch(r.isEnabled,function(e){o.setIsEnabled(!!e)})}}}}),a.directive("ionSideMenuContent",["$timeout","$ionicGesture","$window",function(e,t,n){return{restrict:"EA",require:"^ionSideMenus",scope:!0,compile:function(r,i){function o(o,a,s,l){function c(e){0!==l.getOpenAmount()?(l.close(),e.gesture.srcEvent.preventDefault(),m=null,g=null):m||(m=ionic.tap.pointerCoord(e.gesture.srcEvent))}function d(e){l.isDraggableTarget(e)&&"x"==p(e)&&(l._handleDrag(e),e.gesture.srcEvent.preventDefault())}function h(e){"x"==p(e)&&e.gesture.srcEvent.preventDefault()}function f(e){l._endDrag(e),m=null,g=null}function p(e){if(g)return g;if(e&&e.gesture){if(m){var t=ionic.tap.pointerCoord(e.gesture.srcEvent),n=Math.abs(t.x-m.x),r=Math.abs(t.y-m.y),i=n<r?"y":"x";return Math.max(n,r)>30&&(g=i),i}m=ionic.tap.pointerCoord(e.gesture.srcEvent)}return"y"}var m=null,g=null;u(i.dragContent)?o.$watch(i.dragContent,function(e){l.canDragContent(e)}):l.canDragContent(!0),u(i.edgeDragThreshold)&&o.$watch(i.edgeDragThreshold,function(e){l.edgeDragThreshold(e)});var v={element:r[0],onDrag:function(){},endDrag:function(){},setCanScroll:function(e){var t=a[0].querySelector(".scroll");if(t){var n=angular.element(t.parentElement);if(n){var r=n.scope();r.scrollCtrl&&r.scrollCtrl.freezeScrollShut(!e)}}},getTranslateX:function(){return o.sideMenuContentTranslateX||0},setTranslateX:ionic.animationFrameThrottle(function(t){var n=v.offsetX+t;a[0].style[ionic.CSS.TRANSFORM]="translate3d("+n+"px,0,0)",e(function(){o.sideMenuContentTranslateX=t})}),setMarginLeft:ionic.animationFrameThrottle(function(e){e?(e=parseInt(e,10),a[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",a[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",a[0].style.width="",v.offsetX=0)}),setMarginRight:ionic.animationFrameThrottle(function(e){e?(e=parseInt(e,10),a[0].style.width=n.innerWidth-e+"px",v.offsetX=e):(a[0].style.width="",v.offsetX=0),a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)"}),setMarginLeftAndRight:ionic.animationFrameThrottle(function(e,t){e=e&&parseInt(e,10)||0,t=t&&parseInt(t,10)||0;var r=e+t;r>0?(a[0].style[ionic.CSS.TRANSFORM]="translate3d("+e+"px,0,0)",a[0].style.width=n.innerWidth-r+"px",v.offsetX=e):(a[0].style[ionic.CSS.TRANSFORM]="translate3d(0,0,0)",a[0].style.width="",v.offsetX=0)}),enableAnimation:function(){o.animationEnabled=!0,a[0].classList.add("menu-animated")},disableAnimation:function(){o.animationEnabled=!1,a[0].classList.remove("menu-animated")},offsetX:0};l.setContent(v);var _={stop_browser_behavior:!1};_.prevent_default_directions=["left","right"];var y=t.on("tap",c,a,_),b=t.on("dragright",d,a,_),w=t.on("dragleft",d,a,_),L=t.on("dragup",h,a,_),M=t.on("dragdown",h,a,_),k=t.on("release",f,a,_);o.$on("$destroy",function(){v&&(v.element=null,v=null),t.off(w,"dragleft",d),t.off(b,"dragright",d),t.off(L,"dragup",h),t.off(M,"dragdown",h),t.off(k,"release",f),t.off(y,"tap",c)})}return r.addClass("menu-content pane"),{pre:o}}}}]),a.directive("ionSideMenus",["$ionicBody",function(e){return{restrict:"ECA",controller:"$ionicSideMenus",compile:function(t,n){function r(t,n,r,i){i.enableMenuWithBackViews(t.$eval(r.enableMenuWithBackViews)),t.$on("$ionicExposeAside",function(n,r){t.$exposeAside||(t.$exposeAside={}),t.$exposeAside.active=r,e.enableClass(r,"aside-open")}),t.$on("$ionicView.beforeEnter",function(e,n){n.historyId&&(t.$activeHistoryId=n.historyId)}),t.$on("$destroy",function(){e.removeClass("menu-open","aside-open")})}return n.$set("class",(n.class||"")+" view"),{pre:r}}}}]),a.directive("ionSlideBox",["$animate","$timeout","$compile","$ionicSlideBoxDelegate","$ionicHistory","$ionicScrollDelegate",function(e,t,n,r,i,o){return{restrict:"E",replace:!0,transclude:!0,scope:{autoPlay:"=",doesContinue:"@",slideInterval:"@",showPager:"@",pagerClick:"&",disableScroll:"@",onSlideChanged:"&",activeSlide:"=?",bounce:"@"},controller:["$scope","$element","$attrs",function(e,n,a){function s(e){e&&!l.isScrollFreeze?o.freezeAllScrolls(e):!e&&l.isScrollFreeze&&o.freezeAllScrolls(!1),l.isScrollFreeze=e}var l=this,c=!0===e.$eval(e.doesContinue),d=!1!==e.$eval(e.bounce),h=!!u(a.autoPlay)&&!!e.autoPlay,f=h?e.$eval(e.slideInterval)||4e3:0,p=new ionic.views.Slider({el:n[0],auto:f,continuous:c,startSlide:e.activeSlide,bouncing:d,slidesChanged:function(){e.currentSlide=p.currentIndex(),t(function(){})},callback:function(n){e.currentSlide=n,e.onSlideChanged({index:e.currentSlide,$index:e.currentSlide}),e.$parent.$broadcast("slideBox.slideChanged",n),e.activeSlide=n,t(function(){})},onDrag:function(){s(!0)},onDragEnd:function(){s(!1)}});p.enableSlide(!0!==e.$eval(a.disableScroll)),e.$watch("activeSlide",function(e){u(e)&&p.slide(e)}),e.$on("slideBox.nextSlide",function(){p.next()}),e.$on("slideBox.prevSlide",function(){p.prev()}),e.$on("slideBox.setSlide",function(e,t){p.slide(t)}),this.__slider=p;var m=r._registerInstance(p,a.delegateHandle,function(){return i.isActiveScope(e)});e.$on("$destroy",function(){m(),p.kill()}),this.slidesCount=function(){return p.slidesCount()},this.onPagerClick=function(t){e.pagerClick({index:t})},t(function(){p.load()})}],template:'<div class="slider"><div class="slider-slides" ng-transclude></div></div>',link:function(t,r,i){function o(){if(!a){var e=t.$new();a=h("<ion-pager></ion-pager>"),r.append(a),a=n(a)(e)}return a}e.enabled(r,!1),u(i.showPager)||(t.showPager=!0,o().toggleClass("hide",!1)),i.$observe("showPager",function(e){void 0!==e&&(e=t.$eval(e),o().toggleClass("hide",!e))});var a}}}]).directive("ionSlide",function(){return{restrict:"E",require:"?^ionSlideBox",compile:function(e){e.addClass("slider-slide")}}}).directive("ionPager",function(){return{restrict:"E",replace:!0,require:"^ionSlideBox",template:'<div class="slider-pager"><span class="slider-pager-page" ng-repeat="slide in numSlides() track by $index" ng-class="{active: $index == currentSlide}" ng-click="pagerClick($index)"><i class="icon ion-record"></i></span></div>',link:function(e,t,n,r){var i=function(e){for(var n=t[0].children,r=n.length,i=0;i<r;i++)i==e?n[i].classList.add("active"):n[i].classList.remove("active")};e.pagerClick=function(e){r.onPagerClick(e)},e.numSlides=function(){return new Array(r.slidesCount())},e.$watch("currentSlide",function(e){i(e)})}}}),a.directive("ionSlides",["$animate","$timeout","$compile",function(e,t,n){return{restrict:"E",transclude:!0,scope:{options:"=",slider:"="},template:'<div class="swiper-container"><div class="swiper-wrapper" ng-transclude></div><div ng-hide="!showPager" class="swiper-pagination"></div></div>',controller:["$scope","$element",function(e,r){var i=this;this.update=function(){t(function(){if(i.__slider){i.__slider.update(),i._options.loop&&i.__slider.createLoop();var t=i.__slider.slides.length;t>10&&(e.showPager=!1),i.__slider.activeIndex>t-1&&i.__slider.slideTo(t-1)}})},this.rapidUpdate=ionic.debounce(function(){i.update()},50),this.getSlider=function(){return i.__slider};var o=e.options||{},a=angular.extend({pagination:r.children().children()[1],paginationClickable:!0,lazyLoading:!0,preloadImages:!1},o);this._options=a,t(function(){var t=new ionic.views.Swiper(r.children()[0],a,e,n);e.$emit("$ionicSlides.sliderInitialized",{slider:t}),i.__slider=t,e.slider=i.__slider,e.$on("$destroy",function(){t.destroy(),i.__slider=null})}),t(function(){i.rapidUpdate()},200)}],link:function(e){e.showPager=!0}}}]).directive("ionSlidePage",[function(){return{restrict:"E",require:"?^ionSlides",transclude:!0,replace:!0,template:'<div class="swiper-slide" ng-transclude></div>',link:function(e,t,n,r){r.rapidUpdate(),e.$on("$destroy",function(){r.rapidUpdate()})}}}]),a.directive("ionSpinner",function(){return{restrict:"E",controller:"$ionicSpinner",link:function(e,t,n,r){var i=r.init();t.addClass("spinner spinner-"+i),t.on("$destroy",function(){r.stop()})}}}),a.directive("ionTab",["$compile","$ionicConfig","$ionicBind","$ionicViewSwitcher",function(e,t,n,r){function i(e,t){return u(t)?" "+e+'="'+t+'"':""}return{restrict:"E",require:["^ionTabs","ionTab"],controller:"$ionicTab",scope:!0,compile:function(o,a){for(var s="<ion-tab-nav"+i("ng-click",a.ngClick)+i("title",a.title)+i("icon",a.icon)+i("icon-on",a.iconOn)+i("icon-off",a.iconOff)+i("badge",a.badge)+i("badge-style",a.badgeStyle)+i("hidden",a.hidden)+i("disabled",a.disabled)+i("class",a.class)+"></ion-tab-nav>",l=document.createElement("div"),u=0;u<o[0].children.length;u++)l.appendChild(o[0].children[u].cloneNode(!0));var c=l.childElementCount;o.empty();var d,f;return c&&("ION-NAV-VIEW"===l.children[0].tagName&&(d=l.children[0].getAttribute("name"),l.children[0].classList.add("view-container"),f=!0),1===c&&(l=l.children[0]),f||l.classList.add("pane"),l.classList.add("tab-content")),function(i,o,a,u){function f(){y.tabMatchesState()&&_.select(i,!1)}function p(n){n&&c?(b||(g=i.$new(),v=h(l),r.viewEleIsActive(v,!0),_.$element.append(v),e(v)(g),b=!0),r.viewEleIsActive(v,!0)):b&&v&&(t.views.maxCache()>0?r.viewEleIsActive(v,!1):m())}function m(){g&&g.$destroy(),b&&v&&v.remove(),l.innerHTML="",b=g=v=null}var g,v,_=u[0],y=u[1],b=!1;i.$tabSelected=!1,n(i,a,{onSelect:"&",onDeselect:"&",title:"@",uiSref:"@",href:"@"}),_.add(i),i.$on("$destroy",function(){i.$tabsDestroy||_.remove(i),
-w.isolateScope().$destroy(),w.remove(),w=l=v=null}),o[0].removeAttribute("title"),d&&(y.navViewName=i.navViewName=d),i.$on("$stateChangeSuccess",f),f();var w=h(s);w.data("$ionTabsController",_),w.data("$ionTabController",y),_.$tabsElement.append(e(w)(i)),i.$watch("$tabSelected",p),i.$on("$ionicView.afterEnter",function(){r.viewEleIsActive(v,i.$tabSelected)}),i.$on("$ionicView.clearCache",function(){i.$tabSelected||m()})}}}}]),a.directive("ionTabNav",[function(){return{restrict:"E",replace:!0,require:["^ionTabs","^ionTab"],template:"<a ng-class=\"{'has-badge':badge, 'tab-hidden':isHidden(), 'tab-item-active': isTabActive()}\" "+' ng-disabled="disabled()" class="tab-item"><span class="badge {{badgeStyle}}" ng-if="badge">{{badge}}</span><i class="icon {{getIcon()}}" ng-if="getIcon()"></i><span class="tab-title" ng-bind-html="title"></span></a>',scope:{title:"@",icon:"@",iconOn:"@",iconOff:"@",badge:"=",hidden:"@",disabled:"&",badgeStyle:"@",class:"@"},link:function(e,t,n,r){var i=r[0],o=r[1];t[0].removeAttribute("title"),e.selectTab=function(e){e.preventDefault(),i.select(o.$scope,!0)},n.ngClick||t.on("click",function(t){e.$apply(function(){e.selectTab(t)})}),e.isHidden=function(){return"true"===n.hidden||!0===n.hidden},e.getIconOn=function(){return e.iconOn||e.icon},e.getIconOff=function(){return e.iconOff||e.icon},e.isTabActive=function(){return i.selectedTab()===o.$scope},e.getIcon=function(){return i.selectedTab()===o.$scope?e.iconOn||e.icon:e.iconOff||e.icon}}}}]),a.directive("ionTabs",["$ionicTabsDelegate","$ionicConfig",function(e,t){return{restrict:"E",scope:!0,controller:"$ionicTabs",compile:function(n){function r(t,n,r,i){function a(e,t){e.stopPropagation();var n=i.previousSelectedTab();n&&n.$broadcast(e.name.replace("NavView","Tabs"),t)}var s=e._registerInstance(i,r.delegateHandle,i.hasActiveScope);i.$scope=t,i.$element=n,i.$tabsElement=h(n[0].querySelector(".tabs")),t.$watch(function(){return n[0].className},function(e){var n=-1!==e.indexOf("tabs-top"),r=-1!==e.indexOf("tabs-item-hide");t.$hasTabs=!n&&!r,t.$hasTabsTop=n&&!r,t.$emit("$ionicTabs.top",t.$hasTabsTop)}),t.$on("$ionicNavView.beforeLeave",a),t.$on("$ionicNavView.afterLeave",a),t.$on("$ionicNavView.leave",a),t.$on("$destroy",function(){t.$tabsDestroy=!0,s(),i.$tabsElement=i.$element=i.$scope=o=null,delete t.$hasTabs,delete t.$hasTabsTop})}function i(e,t,n,r){r.selectedTab()||r.select(0)}var o=h('<div class="tab-nav tabs">');return o.append(n.contents()),n.append(o).addClass("tabs-"+t.tabs.position()+" tabs-"+t.tabs.style()),{pre:r,post:i}}}}]),a.directive("ionTitle",[function(){return{restrict:"E",compile:function(e){e.addClass("title")}}}]),a.directive("ionToggle",["$timeout","$ionicConfig",function(e,t){return{restrict:"E",replace:!0,require:"?ngModel",transclude:!0,template:'<div class="item item-toggle"><div ng-transclude></div><label class="toggle"><input type="checkbox"><div class="track"><div class="handle"></div></div></label></div>',compile:function(e,n){var r=e.find("input");return l({name:n.name,"ng-value":n.ngValue,"ng-model":n.ngModel,"ng-checked":n.ngChecked,"ng-disabled":n.ngDisabled,"ng-true-value":n.ngTrueValue,"ng-false-value":n.ngFalseValue,"ng-change":n.ngChange,"ng-required":n.ngRequired,required:n.required},function(e,t){u(e)&&r.attr(t,e)}),n.toggleClass&&e[0].getElementsByTagName("label")[0].classList.add(n.toggleClass),e.addClass("toggle-"+t.form.toggle()),function(e,t){var n=t[0].getElementsByTagName("label")[0],r=n.children[0],i=n.children[1],o=i.children[0],a=h(r).controller("ngModel");e.toggle=new ionic.views.Toggle({el:n,track:i,checkbox:r,handle:o,onChange:function(){a&&(a.$setViewValue(r.checked),e.$apply())}}),e.$on("$destroy",function(){e.toggle.destroy()})}}}}]),a.directive("ionView",function(){return{restrict:"EA",priority:1e3,controller:"$ionicView",compile:function(e){return e.addClass("pane"),e[0].removeAttribute("title"),function(e,t,n,r){r.init()}}}})}(),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(function(){try{return require("angular")}catch(e){}}()):"function"==typeof define&&define.amd?define(["angular"],t):"object"==typeof exports?exports.ionicMaterial=t(function(){try{return require("angular")}catch(e){}}()):e.ionicMaterial=t(e.angular)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";e.exports=function(){var e;try{e=n(1)}catch(e){}if(e&&e.version||(e=window.angular),!e||!e.version)throw new Error("ionic-material could not load angular module :(");var t=e.module("ionic-material",["ionic"]);return n(2)(t),n(3)(t),"ionic-material"}()},function(t,n,r){if(void 0===e){var i=new Error('Cannot find module "angular"');throw i.code="MODULE_NOT_FOUND",i}t.exports=e},function(e,t,n){"use strict";e.exports=function(e){function t(){function e(e){return null!==e&&e===e.window}function t(t){return e(t)?t:9===t.nodeType&&t.defaultView}function n(e){var n,r,i={top:0,left:0},o=e&&e.ownerDocument;return n=o.documentElement,void 0!==e.getBoundingClientRect&&(i=e.getBoundingClientRect()),r=t(o),{top:i.top+r.pageYOffset-n.clientTop,left:i.left+r.pageXOffset-n.clientLeft}}function r(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null}function i(e){var t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+":"+e[n]+";");return t}var o,a=a||{};if(document&&document.querySelectorAll&&document.querySelectorAll.bind)try{o=document.querySelectorAll.bind(document)}catch(e){}else if(window&&window.angular&&window.angular.element)o=window.angular.element;else{var s=function(e,t,n){var r=e.length;t=null==t?0:t<0?Math.max(r+t,0):Math.min(t,r),n=null==n?r:n<0?Math.max(r+n,0):Math.min(n,r);for(var i=[];t<n;)i.push(e[t++]);return i};o=function(e,t,n){var r=s(arguments,2);return function(){return e.apply(t,r.concat(s(arguments)))}}(document.querySelectorAll,document)}if(!o)throw new Error("ionic material ink module could not create reference of DOM nodes");var l={duration:500,show:function(e){if(2===e.button)return!1;var t=this,o=document.createElement("div"),a=this.dataset.inkColor,s=this.dataset.inkOpacity,u=a||s;o.className="ink-ripple",t.appendChild(o);var c=n(t),d=e.pageY-c.top,h=e.pageX-c.left,f="scale("+t.clientWidth/100*2.5+")";"touches"in e&&(d=e.touches[0].pageY-c.top,h=e.touches[0].pageX-c.left),o.setAttribute("data-hold",Date.now()),o.setAttribute("data-scale",f),o.setAttribute("data-x",h),o.setAttribute("data-y",d);var p={top:d+"px",left:h+"px"};if(o.className=o.className+" ink-notransition",u){var m;if(a){var g=r(a);m=g.r+","+g.g+","+g.b}else m="0,0,0";s||(s=.2);var v="rgba("+m+","+s+")";p["background-color"]=v}o.setAttribute("style",i(p)),o.className=o.className.replace("ink-notransition",""),p["-webkit-transform"]=f,p["-moz-transform"]=f,p["-ms-transform"]=f,p["-o-transform"]=f,p.transform=f,p.opacity="1",p["-webkit-transition-duration"]=l.duration+"ms",p["-moz-transition-duration"]=l.duration+"ms",p["-o-transition-duration"]=l.duration+"ms",p["transition-duration"]=l.duration+"ms",o.setAttribute("style",i(p))},hide:function(){for(var e=this,t=(e.clientWidth,null),n=e.children.length,r=0;r<n;r++)-1===e.children[r].className.indexOf("ink-ripple")||(t=e.children[r]);if(!t)return!1;var o=t.getAttribute("data-x"),a=t.getAttribute("data-y"),s=t.getAttribute("data-scale"),u=Date.now()-Number(t.getAttribute("data-hold")),c=500-u;c<0&&(c=0),setTimeout(function(){var n={top:a+"px",left:o+"px",opacity:"0","-webkit-transition-duration":l.duration+"ms","-moz-transition-duration":l.duration+"ms","-o-transition-duration":l.duration+"ms","transition-duration":l.duration+"ms","-webkit-transform":s,"-moz-transform":s,"-ms-transform":s,"-o-transform":s,transform:s};t.setAttribute("style",i(n)),setTimeout(function(){try{e.removeChild(t)}catch(e){return!1}},l.duration)},c)},wrapInput:function(e){for(var t=0;t<e.length;t++){var n=e[t];if("input"===n.tagName.toLowerCase()){var r=n.parentNode;if("i"===r.tagName.toLowerCase()&&-1!==r.className.indexOf("ink")&&-1!==r.className.indexOf("tab-item")&&-1!==r.className.indexOf("button-fab")&&-1!==r.className.indexOf("button-raised")&&-1!==r.className.indexOf("button-flat")&&-1!==r.className.indexOf("button-clear")&&-1!==r.className.indexOf("button")&&-1!==r.className.indexOf("item"))return!1;var i=document.createElement("i");i.className=n.className+" ink-input-wrapper";var o=n.getAttribute("style");o||(o=""),i.setAttribute("style",o),n.className="ink-button-input",n.removeAttribute("style"),r.replaceChild(i,n),i.appendChild(n)}}}};return a.displayEffect=function(e){"duration"in(e=e||{})&&(l.duration=e.duration);var t=".ink,.tab-item,.button-fab,.button-raised,.button-flat,.button-clear,a.item,.popup .button";l.wrapInput(o(t)),Array.prototype.forEach.call(o(t),function(e){"ontouchstart"in window?(e.addEventListener("touchstart",l.show,!1),e.addEventListener("touchend",l.hide,!1),e.addEventListener("touchcancel",l.hide,!1)):(e.addEventListener("mousedown",l.show,!1),e.addEventListener("mouseup",l.hide,!1),e.addEventListener("mouseleave",l.hide,!1))})},a}e.factory("ionicMaterialInk",t),t.inject=[]}},function(e,t,n){e.exports=function(e){function t(){"use strict";function e(){return window.innerHeight}function t(e,t){for(var n=0;n<t;n++){var r=e[n];r.className+=" in",r.className+=" done"}}function n(n){var r={finishDelayThrottle:2,finishSpeedPercent:.5,leftOffsetPercentage:.8,selector:".animate-blinds .item",startVelocity:1100};if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||r.finishDelayThrottle,n.finishSpeedPercent=n.finishSpeedPercent||r.finishSpeedPercent,n.leftOffsetPercentage=n.leftOffsetPercentage||r.leftOffsetPercentage,n.startVelocity=n.startVelocity||r.startVelocity,void 0===n.selector&&(n.selector=r.selector),void 0===n.selector||""===n.selector)return console.log("invalid blinds selector"),!1;for(var i=document.querySelectorAll(n.selector),o=i.length,a=0,s=e(),l=0;l<o&&i[l].offsetTop<s;l++)a+=1;for(var u=n.startVelocity,l=0;l<a;l++){var c=i[l],d=c.getBoundingClientRect(),h=d.left*n.leftOffsetPercentage+d.top,f=parseFloat(h/u).toFixed(2);c.style.webkitTransitionDelay=f+"s",c.style.transitionDelay=f+"s",c.className+=" in"}setTimeout(function(){for(var e=0;e<a;e++){var t=i[e],r=t.getBoundingClientRect(),o=r.left*n.leftOffsetPercentage+r.top;parseFloat(o/u/n.finishDelayThrottle).toFixed(2);i[e].className+=" done"}},u*n.finishSpeedPercent),t(i,o)}function r(n){var r={finishDelayThrottle:2,finishSpeedPercent:.72,leftOffsetPercentage:.8,selector:".animate-fade-slide-in .item",startVelocity:1100};if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||r.finishDelayThrottle,n.finishSpeedPercent=n.finishSpeedPercent||r.finishSpeedPercent,n.leftOffsetPercentage=n.leftOffsetPercentage||r.leftOffsetPercentage,n.startVelocity=n.startVelocity||r.startVelocity,void 0===n.selector&&(n.selector=r.selector),void 0===n.selector||""===n.selector)return console.log("invalid fadeSlideIn selector"),!1;for(var i=document.querySelectorAll(n.selector),o=i.length,a=0,s=e(),l=0;l<o&&i[l].offsetTop<s;l++)a+=1;for(var u=n.startVelocity,l=0;l<a;l++){var c=i[l],d=c.getBoundingClientRect(),h=d.left*n.leftOffsetPercentage+d.top,f=parseFloat(h/u).toFixed(2);c.style.webkitTransitionDelay=f+"s",c.style.transitionDelay=f+"s",c.className+=" in"}setTimeout(function(){for(var e=0;e<a;e++){var t=i[e],r=t.getBoundingClientRect(),o=r.left*n.leftOffsetPercentage+r.top,s=o/u/n.finishDelayThrottle;parseFloat(s).toFixed(2)}i[0].className+=" done"},u*n.finishSpeedPercent),t(i,o)}function i(n){var r={finishDelayThrottle:2,finishSpeedPercent:.72,leftOffsetPercentage:.8,selector:".animate-fade-slide-in-right .item",startVelocity:1100};if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||r.finishDelayThrottle,n.finishSpeedPercent=n.finishSpeedPercent||r.finishSpeedPercent,n.leftOffsetPercentage=n.leftOffsetPercentage||r.leftOffsetPercentage,n.startVelocity=n.startVelocity||r.startVelocity,void 0===n.selector&&(n.selector=r.selector),void 0===n.selector||""===n.selector)return console.log("invalid fadeSlideInRight selector"),!1;for(var i=document.querySelectorAll(n.selector),o=i.length,a=0,s=e(),l=0;l<o&&i[l].offsetTop<s;l++)a+=1;for(var u=n.startVelocity,l=0;l<a;l++){var c=i[l],d=c.getBoundingClientRect(),h=d.left*n.leftOffsetPercentage+d.top,f=parseFloat(h/u).toFixed(2);c.style.webkitTransitionDelay=f+"s",c.style.transitionDelay=f+"s",c.className+=" in"}setTimeout(function(){for(var e=0;e<a;e++){var t=i[e],r=t.getBoundingClientRect(),o=r.left*n.leftOffsetPercentage+r.top,s=o/u/n.finishDelayThrottle;parseFloat(s).toFixed(2)}i[0].className+=" done"},u*n.finishSpeedPercent),t(i,o)}function o(n){var r={finishDelayThrottle:2,finishSpeedPercent:.72,leftOffsetPercentage:.8,selector:".animate-ripple .item",startVelocity:1100};if(void 0===n&&(n={}),n.finishDelayThrottle=n.finishDelayThrottle||r.finishDelayThrottle,n.finishSpeedPercent=n.finishSpeedPercent||r.finishSpeedPercent,n.leftOffsetPercentage=n.leftOffsetPercentage||r.leftOffsetPercentage,n.startVelocity=n.startVelocity||r.startVelocity,void 0===n.selector&&(n.selector=r.selector),void 0===n.selector||""===n.selector)return console.log("invalid ripple selector"),!1;for(var i=document.querySelectorAll(n.selector),o=i.length,a=0,s=e(),l=0;l<i.length&&i[l].offsetTop<s;l++)a+=1;for(var u=n.startVelocity,l=0;l<a;l++){var c=i[l],d=c.getBoundingClientRect(),h=d.left*n.leftOffsetPercentage+d.top,f=parseFloat(h/u).toFixed(2);c.style.webkitTransitionDelay=f+"s",c.style.transitionDelay=f+"s",c.className+=" in"}setTimeout(function(){for(var e=0;e<a;e++){var t=i[e],r=t.getBoundingClientRect(),o=r.left*n.leftOffsetPercentage+r.top,s=o/u/n.finishDelayThrottle;parseFloat(s).toFixed(2)}i[0].className+=" done"},u*n.finishSpeedPercent),t(i,o)}function a(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.log("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,r=0;r<n;r++){var i=t[r],o=i.className.lastIndexOf("animate-pan-in-left");i.className=i.className.substr(0,o)}}function s(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.log("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,r=0;r<n;r++){var i=t[r],o=e.selector.split(".")[1],a=i.className.lastIndexOf(o);i.className=i.className.substr(0,a)}}function l(e){if("string"==typeof e&&(e={selector:e}),void 0===e.selector||""===e.selector)return console.log("invalid pushDown selector"),!1;for(var t=document.querySelectorAll(e.selector),n=t.length,r=0;r<n;r++){var i=t[r],o=e.selector.split(".")[1],a=i.className.lastIndexOf(o);i.className=i.className.substr(0,a)}}return{blinds:n,fadeSlideIn:r,fadeSlideInRight:i,panInLeft:a,pushDown:s,ripple:o,slideUp:l}}e.factory("ionicMaterialMotion",t),t.$inject=[]}}])}),function(e,t){"use strict";function n(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&a.test("."+e)}function r(e,r){if(!n(r))throw o("badmember",'Dotted member path "@{0}" is invalid.',r);for(var i=r.split("."),a=0,s=i.length;a<s&&t.isDefined(e);a++){var l=i[a];e=null!==e?e[l]:void 0}return e}function i(e,n){n=n||{},t.forEach(n,function(e,t){delete n[t]});for(var r in e)!e.hasOwnProperty(r)||"$"===r.charAt(0)&&"$"===r.charAt(1)||(n[r]=e[r]);return n}var o=t.$$minErr("$resource"),a=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;t.module("ngResource",["ng"]).provider("$resource",function(){var e=/^https?:\/\/[^\/]*/,n=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},delete:{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(a,s,l,u){function c(e){return d(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function d(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function h(e,t){this.template=e,this.defaults=g({},n.defaults,t),this.urlParams={}}function f(e,t,c,d){function L(e,n){var i={};return n=g({},t,n),m(n,function(t,n){b(t)&&(t=t(e)),i[n]=t&&t.charAt&&"@"===t.charAt(0)?r(e,t.substr(1)):t}),i}function M(e){return e.resource}function k(e){i(e||{},this)}var x=new h(e,d);return c=g({},n.defaults.actions,c),k.prototype.toJSON=function(){var e=g({},this);return delete e.$promise,delete e.$resolved,delete e.$cancelRequest,e},m(c,function(e,t){var n=/^(POST|PUT|PATCH)$/i.test(e.method),r=e.timeout,c=y(e.cancellable)?e.cancellable:x.defaults.cancellable;r&&!w(r)&&(s.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,r=null),k[t]=function(s,d,h,f){var y,w,S,T={};switch(arguments.length){case 4:S=f,w=h;case 3:case 2:if(!b(d)){T=s,y=d,w=h;break}if(b(s)){w=s,S=d;break}w=d,S=h;case 1:b(s)?w=s:n?y=s:T=s;break;case 0:break;default:throw o("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var $,D,C=this instanceof k,E=C?y:e.isArray?[]:new k(y),A={},P=e.interceptor&&e.interceptor.response||M,Y=e.interceptor&&e.interceptor.responseError||void 0;m(e,function(e,t){switch(t){default:A[t]=v(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}}),!C&&c&&($=l.defer(),A.timeout=$.promise,r&&(D=u($.resolve,r))),n&&(A.data=y),x.setUrlParams(A,g({},L(y,e.params||{}),T),e.url);var O=a(A).then(function(n){var r=n.data;if(r){if(_(r)!==!!e.isArray)throw o("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",t,e.isArray?"array":"object",_(r)?"array":"object",A.method,A.url);if(e.isArray)E.length=0,m(r,function(e){"object"==typeof e?E.push(new k(e)):E.push(e)});else{var a=E.$promise;i(r,E),E.$promise=a}}return n.resource=E,n},function(e){return(S||p)(e),l.reject(e)});return O.finally(function(){E.$resolved=!0,!C&&c&&(E.$cancelRequest=p,u.cancel(D),$=D=A.timeout=null)}),O=O.then(function(e){var t=P(e);return(w||p)(t,e.headers,e.status,e.statusText),t},Y),C?O:(E.$promise=O,E.$resolved=!1,c&&(E.$cancelRequest=$.resolve),E)},k.prototype["$"+t]=function(e,n,r){b(e)&&(r=n,n=e,e={});var i=k[t].call(this,e,this,n,r);return i.$promise||i}}),k.bind=function(n){var r=g({},t,n);return f(e,r,c,d)},k}var p=t.noop,m=t.forEach,g=t.extend,v=t.copy,_=t.isArray,y=t.isDefined,b=t.isFunction,w=t.isNumber;return h.prototype={setUrlParams:function(t,n,r){var i,a,s=this,l=r||s.template,u="",h=s.urlParams={};m(l.split(/\W/),function(e){if("hasOwnProperty"===e)throw o("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(l)&&(h[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(l)})}),l=l.replace(/\\:/g,":"),l=l.replace(e,function(e){return u=e,""}),n=n||{},m(s.urlParams,function(e,t){i=n.hasOwnProperty(t)?n[t]:s.defaults[t],y(i)&&null!==i?(a=e.isQueryParamValue?d(i,!0):c(i),l=l.replace(new RegExp(":"+t+"(\\W|$)","g"),function(e,t){return a+t})):l=l.replace(new RegExp("(/?):"+t+"(\\W|$)","g"),function(e,t,n){return"/"===n.charAt(0)?n:t+n})}),s.defaults.stripTrailingSlashes&&(l=l.replace(/\/+$/,"")||"/"),l=l.replace(/\/\.(?=\w+($|\?))/,"."),t.url=u+l.replace(/\/\\\./,"/."),m(n,function(e,n){s.urlParams[n]||(t.params=t.params||{},t.params[n]=e)})}},f}]})}(window,window.angular),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t()}):"object"==typeof module&&module.exports?module.exports=t():t()}(0,function(){function e(e){"use strict";var t=e.storageKey(),n=e.storage(),r=function(){var r=e.preferredLanguage();angular.isString(r)?e.use(r):n.put(t,e.use())};r.displayName="fallbackFromIncorrectStorageValue",n?n.get(t)?e.use(n.get(t)).catch(r):r():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function t(){"use strict";var e,t,n,r=null,i=!1,o=!1;n={sanitize:function(e,t){return"text"===t&&(e=s(e)),e},escape:function(e,t){return"text"===t&&(e=a(e)),e},sanitizeParameters:function(e,t){return"params"===t&&(e=u(e,s)),e},escapeParameters:function(e,t){return"params"===t&&(e=u(e,a)),e},sce:function(e,t,n){return"text"===t?e=l(e):"params"===t&&"filter"!==n&&(e=u(e,a)),e},sceParameters:function(e,t){return"params"===t&&(e=u(e,l)),e}},n.escaped=n.escapeParameters,this.addStrategy=function(e,t){return n[e]=t,this},this.removeStrategy=function(e){return delete n[e],this},this.useStrategy=function(e){return i=!0,r=e,this},this.$get=["$injector","$log",function(a,s){var l={},u=function(e,t,r,i){return angular.forEach(i,function(i){if(angular.isFunction(i))e=i(e,t,r);else if(angular.isFunction(n[i]))e=n[i](e,t,r);else{if(!angular.isString(n[i]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+i+"'");if(!l[n[i]])try{l[n[i]]=a.get(n[i])}catch(e){throw l[n[i]]=function(){},new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+i+"'")}e=l[n[i]](e,t,r)}}),e},c=function(){i||o||(s.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),o=!0)};return a.has("$sanitize")&&(e=a.get("$sanitize")),a.has("$sce")&&(t=a.get("$sce")),{useStrategy:function(e){return function(t){e.useStrategy(t)}}(this),sanitize:function(e,t,n,i){if(r||c(),n||null===n||(n=r),!n)return e;i||(i="service");var o=angular.isArray(n)?n:[n];return u(e,t,i,o)}}}];var a=function(e){var t=angular.element("<div></div>");return t.text(e),t.html()},s=function(t){if(!e)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return e(t)},l=function(e){if(!t)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sce service.");return t.trustAsHtml(e)},u=function(e,t,n){if(angular.isDate(e))return e;if(angular.isObject(e)){var r=angular.isArray(e)?[]:{};if(n){if(n.indexOf(e)>-1)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object")}else n=[];return n.push(e),angular.forEach(e,function(e,i){angular.isFunction(e)||(r[i]=u(e,t,n))}),n.splice(-1,1),r}return angular.isNumber(e)?e:!0===e||!1===e?e:angular.isUndefined(e)||null===e?e:t(e)}}function n(e,t,n,r){"use strict";var i,o,a,s,l,u,c,d,h,f,p,m,g,v,_,y,b={},w=[],L=e,M=[],k="translate-cloak",x=!1,S=!1,T=".",$=!1,D=!1,C=0,E=!0,A="default",P={default:function(e){return(e||"").split("-").join("_")},java:function(e){var t=(e||"").split("-").join("_"),n=t.split("_");return n.length>1?n[0].toLowerCase()+"_"+n[1].toUpperCase():t},bcp47:function(e){var t=(e||"").split("_").join("-"),n=t.split("-");switch(n.length){case 1:n[0]=n[0].toLowerCase();break;case 2:n[0]=n[0].toLowerCase(),4===n[1].length?n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase():n[1]=n[1].toUpperCase();break;case 3:n[0]=n[0].toLowerCase(),n[1]=n[1].charAt(0).toUpperCase()+n[1].slice(1).toLowerCase(),n[2]=n[2].toUpperCase();break;default:return t}return n.join("-")},"iso639-1":function(e){return(e||"").split("_").join("-").split("-")[0].toLowerCase()}},Y=function(){if(angular.isFunction(r.getLocale))return r.getLocale();var e,n,i=t.$get().navigator,o=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(i.languages))for(e=0;e<i.languages.length;e++)if((n=i.languages[e])&&n.length)return n;for(e=0;e<o.length;e++)if((n=i[o[e]])&&n.length)return n;return null};Y.displayName="angular-translate/service: getFirstBrowserLanguage";var O=function(){var e=Y()||"";return P[A]&&(e=P[A](e)),e};O.displayName="angular-translate/service: getLocale";var I=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},j=function(){return this.toString().replace(/^\s+|\s+$/g,"")},H=function(e){return angular.isString(e)?e.toLowerCase():e},N=function(e){if(e){for(var t=[],n=H(e),r=0,i=w.length;r<i;r++)t.push(H(w[r]));if((r=I(t,n))>-1)return w[r];if(o){var a;for(var s in o)if(o.hasOwnProperty(s)){var l=!1,u=Object.prototype.hasOwnProperty.call(o,s)&&H(s)===H(e);if("*"===s.slice(-1)&&(l=H(s.slice(0,-1))===H(e.slice(0,s.length-1))),(u||l)&&(a=o[s],I(t,H(a))>-1))return a}}var c=e.split("_");return c.length>1&&I(t,H(c[0]))>-1?c[0]:void 0}},B=function(e,t){if(!e&&!t)return b;if(e&&!t){if(angular.isString(e))return b[e]}else angular.isObject(b[e])||(b[e]={}),angular.extend(b[e],R(t));return this};this.translations=B,this.cloakClassName=function(e){return e?(k=e,this):k},this.nestedObjectDelimeter=function(e){return e?(T=e,this):T};var R=function(e,t,n,r){var i,o,a,s;t||(t=[]),n||(n={});for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&(s=e[i],angular.isObject(s)?R(s,t.concat(i),n,i):(o=t.length?""+t.join(T)+T+i:i,t.length&&i===r&&(a=""+t.join(T),n[a]="@:"+o),n[o]=s));return n};R.displayName="flatObject",this.addInterpolation=function(e){return M.push(e),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(e){return f=e,this},this.useSanitizeValueStrategy=function(e){return n.useStrategy(e),this},this.preferredLanguage=function(e){return e?(F(e),this):i};var F=function(e){return e&&(i=e),i};this.translationNotFoundIndicator=function(e){return this.translationNotFoundIndicatorLeft(e),this.translationNotFoundIndicatorRight(e),this},this.translationNotFoundIndicatorLeft=function(e){return e?(g=e,this):g},this.translationNotFoundIndicatorRight=function(e){return e?(v=e,this):v},this.fallbackLanguage=function(e){return z(e),this};var z=function(e){return e?(angular.isString(e)?(s=!0,a=[e]):angular.isArray(e)&&(s=!1,a=e),angular.isString(i)&&I(a,i)<0&&a.push(i),this):s?a[0]:a};this.use=function(e){if(e){if(!b[e]&&!p)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+e+"'");return l=e,this}return l},this.resolveClientLocale=function(){return O()};var V=function(e){return e?(L=e,this):d?d+L:L};this.storageKey=V,this.useUrlLoader=function(e,t){return this.useLoader("$translateUrlLoader",angular.extend({url:e},t))},this.useStaticFilesLoader=function(e){return this.useLoader("$translateStaticFilesLoader",e)},this.useLoader=function(e,t){return p=e,m=t||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(e){return c=e,this},this.storagePrefix=function(e){return e?(d=e,this):e},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(e){return h=e,this},this.usePostCompiling=function(e){return x=!!e,this},this.forceAsyncReload=function(e){return S=!!e,this},this.uniformLanguageTag=function(e){return e?angular.isString(e)&&(e={standard:e}):e={},A=e.standard,this},this.determinePreferredLanguage=function(e){var t=e&&angular.isFunction(e)?e():O();return i=w.length?N(t)||t:t,this},this.registerAvailableLanguageKeys=function(e,t){return e?(w=e,t&&(o=t),this):w},this.useLoaderCache=function(e){return!1===e?_=void 0:!0===e?_=!0:void 0===e?_="$translationCache":e&&(_=e),this},this.directivePriority=function(e){return void 0===e?C:(C=e,this)},this.statefulFilter=function(e){return void 0===e?E:(E=e,this)},this.postProcess=function(e){return y=e||void 0,this},this.keepContent=function(e){return D=!!e,this},this.$get=["$log","$injector","$rootScope","$q",function(e,t,n,r){var o,d,A,P=t.get(f||"$translateDefaultInterpolation"),Y=!1,H={},U={},W=function(e,t,n,s,u,h){!l&&i&&(l=i);var f=u&&u!==l?N(u)||u:l;if(u&&ue(u),angular.isArray(e)){return function(e){for(var i={},o=[],a=0,l=e.length;a<l;a++)o.push(function(e){var o=r.defer(),a=function(t){i[e]=t,o.resolve([e,t])};return W(e,t,n,s,u,h).then(a,a),o.promise}(e[a]));return r.all(o).then(function(){return i})}(e)}var p=r.defer();e&&(e=j.apply(e));var m=function(){var e=U[f]||U[i];if(d=0,c&&!e){var t=o.get(L);if(e=U[t],a&&a.length){var n=I(a,t);d=0===n?1:0,I(a,i)<0&&a.push(i)}}return e}();if(m){var g=function(){u||(f=l),oe(e,t,n,s,f,h).then(p.resolve,p.reject)};g.displayName="promiseResolved",m.finally(g).catch(angular.noop)}else oe(e,t,n,s,f,h).then(p.resolve,p.reject);return p.promise},q=function(e){return g&&(e=[g,e].join(" ")),v&&(e=[e,v].join(" ")),e},G=function(e){l=e,c&&o.put(W.storageKey(),l),n.$emit("$translateChangeSuccess",{language:e}),P.setLocale(l);var t=function(e,t){H[t].setLocale(l)};t.displayName="eachInterpolatorLocaleSetter",angular.forEach(H,t),n.$emit("$translateChangeEnd",{language:e})},Z=function(e){if(!e)throw"No language key specified for loading.";var i=r.defer();n.$emit("$translateLoadingStart",{language:e}),Y=!0;var o=_;"string"==typeof o&&(o=t.get(o));var a=angular.extend({},m,{key:e,$http:angular.extend({},{cache:o},m.$http)}),s=function(t){var r={};n.$emit("$translateLoadingSuccess",{language:e}),angular.isArray(t)?angular.forEach(t,function(e){angular.extend(r,R(e))}):angular.extend(r,R(t)),Y=!1,i.resolve({key:e,table:r}),n.$emit("$translateLoadingEnd",{language:e})};s.displayName="onLoaderSuccess";var l=function(e){n.$emit("$translateLoadingError",{language:e}),i.reject(e),n.$emit("$translateLoadingEnd",{language:e})};return l.displayName="onLoaderError",t.get(p)(a).then(s,l),i.promise};if(c&&(o=t.get(c),!o.get||!o.put))throw new Error("Couldn't use storage '"+c+"', missing get() or put() method!");if(M.length){var J=function(e){var n=t.get(e);n.setLocale(i||l),H[n.getInterpolationIdentifier()]=n};J.displayName="interpolationFactoryAdder",angular.forEach(M,J)}var X=function(e){var t=r.defer();if(Object.prototype.hasOwnProperty.call(b,e))t.resolve(b[e]);else if(U[e]){var n=function(e){B(e.key,e.table),t.resolve(e.table)};n.displayName="translationTableResolver",U[e].then(n,t.reject)}else t.reject();return t.promise},K=function(e,t,n,i,o){var a=r.defer(),s=function(r){if(Object.prototype.hasOwnProperty.call(r,t)&&null!==r[t]){i.setLocale(e);var s=r[t];if("@:"===s.substr(0,2))K(e,s.substr(2),n,i,o).then(a.resolve,a.reject);else{var u=i.interpolate(r[t],n,"service",o,t);u=le(t,r[t],u,n,e),a.resolve(u)}i.setLocale(l)}else a.reject()};return s.displayName="fallbackTranslationResolver",X(e).then(s,a.reject),a.promise},Q=function(e,t,n,r,i){var o,a=b[e];if(a&&Object.prototype.hasOwnProperty.call(a,t)&&null!==a[t]){if(r.setLocale(e),o=r.interpolate(a[t],n,"filter",i,t),o=le(t,a[t],o,n,e,i),!angular.isString(o)&&angular.isFunction(o.$$unwrapTrustedValue)){var s=o.$$unwrapTrustedValue();if("@:"===s.substr(0,2))return Q(e,s.substr(2),n,r,i)}else if("@:"===o.substr(0,2))return Q(e,o.substr(2),n,r,i);r.setLocale(l)}return o},ee=function(e,n,r,i){return h?t.get(h)(e,l,n,r,i):e},te=function(e,t,n,i,o,s){var l=r.defer();if(e<a.length){var u=a[e];K(u,t,n,i,s).then(function(e){l.resolve(e)},function(){return te(e+1,t,n,i,o,s).then(l.resolve,l.reject)})}else if(o)l.resolve(o);else{var c=ee(t,n,o);h&&c?l.resolve(c):l.reject(q(t))}return l.promise},ne=function(e,t,n,r,i){var o;if(e<a.length){var s=a[e];o=Q(s,t,n,r,i),o||""===o||(o=ne(e+1,t,n,r))}return o},re=function(e,t,n,r,i){return te(A>0?A:d,e,t,n,r,i)},ie=function(e,t,n,r){return ne(A>0?A:d,e,t,n,r)},oe=function(e,t,n,i,o,s){var l=r.defer(),u=o?b[o]:b,c=n?H[n]:P;if(u&&Object.prototype.hasOwnProperty.call(u,e)&&null!==u[e]){
-var d=u[e];if("@:"===d.substr(0,2))W(d.substr(2),t,n,i,o,s).then(l.resolve,l.reject);else{var f=c.interpolate(d,t,"service",s,e);f=le(e,d,f,t,o),l.resolve(f)}}else{var p;h&&!Y&&(p=ee(e,t,i)),o&&a&&a.length?re(e,t,c,i,s).then(function(e){l.resolve(e)},function(e){l.reject(q(e))}):h&&!Y&&p?i?l.resolve(i):l.resolve(p):i?l.resolve(i):l.reject(q(e))}return l.promise},ae=function(e,t,n,r,i){var o,s=r?b[r]:b,l=P;if(H&&Object.prototype.hasOwnProperty.call(H,n)&&(l=H[n]),s&&Object.prototype.hasOwnProperty.call(s,e)&&null!==s[e]){var u=s[e];"@:"===u.substr(0,2)?o=ae(u.substr(2),t,n,r,i):(o=l.interpolate(u,t,"filter",i,e),o=le(e,u,o,t,r,i))}else{var c;h&&!Y&&(c=ee(e,t,i)),r&&a&&a.length?(d=0,o=ie(e,t,l,i)):o=h&&!Y&&c?c:q(e)}return o},se=function(e){u===e&&(u=void 0),U[e]=void 0},le=function(e,n,r,i,o,a){var s=y;return s&&("string"==typeof s&&(s=t.get(s)),s)?s(e,n,r,i,o,a):r},ue=function(e){b[e]||!p||U[e]||(U[e]=Z(e).then(function(e){return B(e.key,e.table),e}))};W.preferredLanguage=function(e){return e&&F(e),i},W.cloakClassName=function(){return k},W.nestedObjectDelimeter=function(){return T},W.fallbackLanguage=function(e){if(void 0!==e&&null!==e){if(z(e),p&&a&&a.length)for(var t=0,n=a.length;t<n;t++)U[a[t]]||(U[a[t]]=Z(a[t]));W.use(W.use())}return s?a[0]:a},W.useFallbackLanguage=function(e){if(void 0!==e&&null!==e)if(e){var t=I(a,e);t>-1&&(A=t)}else A=0},W.proposedLanguage=function(){return u},W.storage=function(){return o},W.negotiateLocale=N,W.use=function(e){if(!e)return l;var t=r.defer();t.promise.then(null,angular.noop),n.$emit("$translateChangeStart",{language:e});var i=N(e);return w.length>0&&!i?r.reject(e):(i&&(e=i),u=e,!S&&b[e]||!p||U[e]?U[e]?U[e].then(function(e){return u===e.key&&G(e.key),t.resolve(e.key),e},function(e){return!l&&a&&a.length>0&&a[0]!==e?W.use(a[0]).then(t.resolve,t.reject):t.reject(e)}):(t.resolve(e),G(e)):(U[e]=Z(e).then(function(n){return B(n.key,n.table),t.resolve(n.key),u===e&&G(n.key),n},function(e){return n.$emit("$translateChangeError",{language:e}),t.reject(e),n.$emit("$translateChangeEnd",{language:e}),r.reject(e)}),U[e].finally(function(){se(e)}).catch(angular.noop)),t.promise)},W.resolveClientLocale=function(){return O()},W.storageKey=function(){return V()},W.isPostCompilingEnabled=function(){return x},W.isForceAsyncReloadEnabled=function(){return S},W.isKeepContent=function(){return D},W.refresh=function(e){function t(e){var t=Z(e);return U[e]=t,t.then(function(t){b[e]={},B(e,t.table),o[e]=!0},angular.noop),t}if(!p)throw new Error("Couldn't refresh translation table, no loader registered!");n.$emit("$translateRefreshStart",{language:e});var i=r.defer(),o={};if(i.promise.then(function(){for(var e in b)b.hasOwnProperty(e)&&(e in o||delete b[e]);l&&G(l)},angular.noop).finally(function(){n.$emit("$translateRefreshEnd",{language:e})}),e)b[e]?t(e).then(i.resolve,i.reject):i.reject();else{var s=a&&a.slice()||[];l&&-1===s.indexOf(l)&&s.push(l),r.all(s.map(t)).then(i.resolve,i.reject)}return i.promise},W.instant=function(e,t,n,r,o){var s=r&&r!==l?N(r)||r:l;if(null===e||angular.isUndefined(e))return e;if(r&&ue(r),angular.isArray(e)){for(var u={},c=0,d=e.length;c<d;c++)u[e[c]]=W.instant(e[c],t,n,r,o);return u}if(angular.isString(e)&&e.length<1)return e;e&&(e=j.apply(e));var f,p=[];i&&p.push(i),s&&p.push(s),a&&a.length&&(p=p.concat(a));for(var m=0,_=p.length;m<_;m++){var y=p[m];if(b[y]&&void 0!==b[y][e]&&(f=ae(e,t,n,s,o)),void 0!==f)break}if(!f&&""!==f)if(g||v)f=q(e);else{f=P.interpolate(e,t,"filter",o);var w;h&&!Y&&(w=ee(e,t,o)),h&&!Y&&w&&(f=w)}return f},W.versionInfo=function(){return"2.18.1"},W.loaderCache=function(){return _},W.directivePriority=function(){return C},W.statefulFilter=function(){return E},W.isReady=function(){return $};var ce=r.defer();ce.promise.then(function(){$=!0}),W.onReady=function(e){var t=r.defer();return angular.isFunction(e)&&t.promise.then(e),$?t.resolve():ce.promise.then(t.resolve),t.promise},W.getAvailableLanguageKeys=function(){return w.length>0?w:null},W.getTranslationTable=function(e){return e=e||W.use(),e&&b[e]?angular.copy(b[e]):null};var de=n.$on("$translateReady",function(){ce.resolve(),de(),de=null}),he=n.$on("$translateChangeEnd",function(){ce.resolve(),he(),he=null});if(p){if(angular.equals(b,{})&&W.use()&&W.use(W.use()),a&&a.length)for(var fe=function(e){return B(e.key,e.table),n.$emit("$translateChangeEnd",{language:e.key}),e},pe=0,me=a.length;pe<me;pe++){var ge=a[pe];!S&&b[ge]||(U[ge]=Z(ge).then(fe))}}else n.$emit("$translateReady",{language:W.use()});return W}]}function r(e,t){"use strict";var n,r={};return r.setLocale=function(e){n=e},r.getInterpolationIdentifier=function(){return"default"},r.useSanitizeValueStrategy=function(e){return t.useStrategy(e),this},r.interpolate=function(n,r,i,o,a){r=r||{},r=t.sanitize(r,"params",o,i);var s;return angular.isNumber(n)?s=""+n:angular.isString(n)?(s=e(n)(r),s=t.sanitize(s,"text",o,i)):s="",s},r}function i(e,t,n,r,i){"use strict";var a=function(){return this.toString().replace(/^\s+|\s+$/g,"")},s=function(e){return angular.isString(e)?e.toLowerCase():e};return{restrict:"AE",scope:!0,priority:e.directivePriority(),compile:function(l,u){var c=u.translateValues?u.translateValues:void 0,d=u.translateInterpolation?u.translateInterpolation:void 0,h=u.translateSanitizeStrategy?u.translateSanitizeStrategy:void 0,f=l[0].outerHTML.match(/translate-value-+/i),p="^(.*)("+t.startSymbol()+".*"+t.endSymbol()+")(.*)",m="^(.*)"+t.startSymbol()+"(.*)"+t.endSymbol()+"(.*)";return function(l,g,v){l.interpolateParams={},l.preText="",l.postText="",l.translateNamespace=o(l);var _={},y=function(e){if(angular.isFunction(y._unwatchOld)&&(y._unwatchOld(),y._unwatchOld=void 0),angular.equals(e,"")||!angular.isDefined(e)){var n=a.apply(g.text()),r=n.match(p);if(angular.isArray(r)){l.preText=r[1],l.postText=r[3],_.translate=t(r[2])(l.$parent);var i=n.match(m);angular.isArray(i)&&i[2]&&i[2].length&&(y._unwatchOld=l.$watch(i[2],function(e){_.translate=e,M()}))}else _.translate=n||void 0}else _.translate=e;M()};!function(e,t,n){if(t.translateValues&&angular.extend(e,r(t.translateValues)(l.$parent)),f)for(var i in n)if(Object.prototype.hasOwnProperty.call(t,i)&&"translateValue"===i.substr(0,14)&&"translateValues"!==i){var o=s(i.substr(14,1))+i.substr(15);e[o]=n[i]}}(l.interpolateParams,v,u);var b=!0;v.$observe("translate",function(e){void 0===e?y(""):""===e&&b||(_.translate=e,M()),b=!1});for(var w in v)v.hasOwnProperty(w)&&"translateAttr"===w.substr(0,13)&&w.length>13&&function(e){v.$observe(e,function(t){_[e]=t,M()})}(w);if(v.$observe("translateDefault",function(e){l.defaultText=e,M()}),h&&v.$observe("translateSanitizeStrategy",function(e){l.sanitizeStrategy=r(e)(l.$parent),M()}),c&&v.$observe("translateValues",function(e){e&&l.$parent.$watch(function(){angular.extend(l.interpolateParams,r(e)(l.$parent))})}),f){for(var L in v)Object.prototype.hasOwnProperty.call(v,L)&&"translateValue"===L.substr(0,14)&&"translateValues"!==L&&function(e){v.$observe(e,function(t){var n=s(e.substr(14,1))+e.substr(15);l.interpolateParams[n]=t})}(L)}var M=function(){for(var e in _)_.hasOwnProperty(e)&&void 0!==_[e]&&k(e,_[e],l,l.interpolateParams,l.defaultText,l.translateNamespace)},k=function(t,n,r,i,o,a){n?(a&&"."===n.charAt(0)&&(n=a+n),e(n,i,d,o,r.translateLanguage,r.sanitizeStrategy).then(function(e){x(e,r,!0,t)},function(e){x(e,r,!1,t)})):x(n,r,!1,t)},x=function(t,r,i,o){if(i||void 0!==r.defaultText&&(t=r.defaultText),"translate"===o){(i||!i&&!e.isKeepContent()&&void 0===v.translateKeepContent)&&g.empty().append(r.preText+t+r.postText);var a=e.isPostCompilingEnabled(),s=void 0!==u.translateCompile,l=s&&"false"!==u.translateCompile;(a&&!s||l)&&n(g.contents())(r)}else{var c=v.$attr[o];"data-"===c.substr(0,5)&&(c=c.substr(5)),c=c.substr(15),g.attr(c,t)}};(c||f||v.translateDefault)&&l.$watch("interpolateParams",M,!0),l.$on("translateLanguageChanged",M);var S=i.$on("$translateChangeSuccess",M);g.text().length?y(v.translate?v.translate:""):v.translate&&y(v.translate),M(),l.$on("$destroy",S)}}}}function o(e){"use strict";return e.translateNamespace?e.translateNamespace:e.$parent?o(e.$parent):void 0}function a(e,t){"use strict";return{restrict:"A",priority:e.directivePriority(),link:function(n,r,i){var o,a,l,u={},c=function(){angular.forEach(o,function(t,o){t&&(u[o]=!0,n.translateNamespace&&"."===t.charAt(0)&&(t=n.translateNamespace+t),e(t,a,i.translateInterpolation,void 0,n.translateLanguage,l).then(function(e){r.attr(o,e)},function(e){r.attr(o,e)}))}),angular.forEach(u,function(e,t){o[t]||(r.removeAttr(t),delete u[t])})};s(n,i.translateAttr,function(e){o=e},c),s(n,i.translateValues,function(e){a=e},c),s(n,i.translateSanitizeStrategy,function(e){l=e},c),i.translateValues&&n.$watch(i.translateValues,c,!0),n.$on("translateLanguageChanged",c);var d=t.$on("$translateChangeSuccess",c);c(),n.$on("$destroy",d)}}}function s(e,t,n,r){"use strict";t&&("::"===t.substr(0,2)?t=t.substr(2):e.$watch(t,function(e){n(e),r()},!0),n(e.$eval(t)))}function l(e,t){"use strict";return{compile:function(n){var r=function(t){t.addClass(e.cloakClassName())},i=function(t){t.removeClass(e.cloakClassName())};return r(n),function(n,o,a){var s=i.bind(this,o),l=r.bind(this,o);a.translateCloak&&a.translateCloak.length?(a.$observe("translateCloak",function(t){e(t).then(s,l)}),t.$on("$translateChangeSuccess",function(){e(a.translateCloak).then(s,l)})):e.onReady(s)}}}}function u(){"use strict";return{restrict:"A",scope:!0,compile:function(){return{pre:function(e,t,n){e.translateNamespace=c(e),e.translateNamespace&&"."===n.translateNamespace.charAt(0)?e.translateNamespace+=n.translateNamespace:e.translateNamespace=n.translateNamespace}}}}}function c(e){"use strict";return e.translateNamespace?e.translateNamespace:e.$parent?c(e.$parent):void 0}function d(){"use strict";return{restrict:"A",scope:!0,compile:function(){return function(e,t,n){n.$observe("translateLanguage",function(t){e.translateLanguage=t}),e.$watch("translateLanguage",function(){e.$broadcast("translateLanguageChanged")})}}}}function h(e,t){"use strict";var n=function(n,r,i,o){if(!angular.isObject(r)){var a=this||{__SCOPE_IS_NOT_AVAILABLE:"More info at https://github.com/angular/angular.js/commit/8863b9d04c722b278fa93c5d66ad1e578ad6eb1f"};r=e(r)(a)}return t.instant(n,r,i,o)};return t.statefulFilter()&&(n.$stateful=!0),n}function f(e){"use strict";return e("translations")}return e.$inject=["$translate"],n.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],r.$inject=["$interpolate","$translateSanitization"],i.$inject=["$translate","$interpolate","$compile","$parse","$rootScope"],a.$inject=["$translate","$rootScope"],l.$inject=["$translate","$rootScope"],h.$inject=["$parse","$translate"],f.$inject=["$cacheFactory"],angular.module("pascalprecht.translate",["ng"]).run(e),e.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",t),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",n),n.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",r),r.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",i),i.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateAttr",a),a.displayName="translateAttrDirective",angular.module("pascalprecht.translate").directive("translateCloak",l),l.displayName="translateCloakDirective",angular.module("pascalprecht.translate").directive("translateNamespace",u),u.displayName="translateNamespaceDirective",angular.module("pascalprecht.translate").directive("translateLanguage",d),d.displayName="translateLanguageDirective",angular.module("pascalprecht.translate").filter("translate",h),h.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",f),f.displayName="$translationCache","pascalprecht.translate"}),function(e,t){"use strict";function n(){function e(e,t){if(e)return i(e)?e.indexOf(t)>=0:e.hasOwnProperty(t)}return["$animate",function(t){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(n,r,o,a,s){var l,u=r[0],c=o.ngMessage||o.when,d=o.ngMessageExp||o.whenExp,h=function(e){l=e?i(e)?e:e.split(/[\s,]+/):null,a.reRender()};d?(h(n.$eval(d)),n.$watchCollection(d,h)):h(c);var f,p;a.register(u,p={test:function(t){return e(l,t)},attach:function(){f||s(function(e,n){t.enter(e,null,r),f=e;var i=f.$$attachId=a.getAttachId();f.on("$destroy",function(){f&&f.$$attachId===i&&(a.deregister(u),p.detach()),n.$destroy()})})},detach:function(){if(f){var e=f;f=null,t.leave(e)}}})}}}]}var r,i,o,a;t.module("ngMessages",[],function(){r=t.forEach,i=t.isArray,o=t.isString,a=t.element}).directive("ngMessages",["$animate",function(e){function t(e,t){return o(t)&&0===t.length||n(e.$eval(t))}function n(e){return o(e)?e.length:!!e}return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(i,o,a){function s(e,t){for(var n=t,r=[];n&&n!==e;){var i=n.$$ngMessageNode;if(i&&i.length)return m[i];n.childNodes.length&&-1===r.indexOf(n)?(r.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,r.push(n))}}function l(e,t,n){var r=m[n];if(c.head){var i=s(e,t);i?(r.next=i.next,i.next=r):(r.next=c.head,c.head=r)}else c.head=r}function u(e,t,n){var r=m[n],i=s(e,t);i?i.next=r.next:c.head=r.next}var c=this,d=0,h=0;this.getAttachId=function(){return h++};var f,p,m=this.messages={};this.render=function(s){s=s||{},f=!1,p=s;for(var l=t(o,a.ngMessagesMultiple)||t(o,a.multiple),u=[],d={},h=c.head,m=!1,g=0;null!=h;){g++;var v=h.message,_=!1;m||r(s,function(e,t){if(!_&&n(e)&&v.test(t)){if(d[t])return;d[t]=!0,_=!0,v.attach()}}),_?m=!l:u.push(v),h=h.next}r(u,function(e){e.detach()}),u.length!==g?e.setClass(i,"ng-active","ng-inactive"):e.setClass(i,"ng-inactive","ng-active")},o.$watchCollection(a.ngMessages||a.for,c.render),i.on("$destroy",function(){r(m,function(e){e.message.detach()})}),this.reRender=function(){f||(f=!0,o.$evalAsync(function(){f&&p&&c.render(p)}))},this.register=function(e,t){var n=d.toString();m[n]={message:t},l(i[0],e,n),e.$$ngMessageNode=n,d++,c.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,u(i[0],e,t),delete m[t],c.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){function r(e,r){var i=n.$$createComment?n.$$createComment("ngMessagesInclude",r):t[0].createComment(" ngMessagesInclude: "+r+" "),o=a(i);e.after(o),e.remove()}return{restrict:"AE",require:"^^ngMessages",link:function(t,i,a){var s=a.ngMessagesInclude||a.src;e(s).then(function(e){t.$$destroyed||(o(e)&&!e.trim()?r(i,s):n(e)(t,function(e){i.after(e),r(i,s)}))})}}}]).directive("ngMessage",n()).directive("ngMessageExp",n())}(window,window.angular),function(e,t,n){"use strict";t.module("ngApi",[]).factory("Api",["$q","$rootScope",function(e,n){function r(e,t,r,i){return n.$on(e,function(){var e=Array.prototype.slice.call(arguments);e.splice(0,1),t.apply(i||r,e)})}var i=function(e,t){this.gantt=e,this.apiId=t,this.eventListeners=[]};return i.prototype.suppressEvents=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach(function(e){a=i.eventListeners.filter(function(t){return e===t.handler})}),a.forEach(function(e){e.dereg()}),n(),a.forEach(function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)})},i.prototype.registerEvent=function(t,i){var o=this;o[t]||(o[t]={});var a=o[t];a.on||(a.on={},a.raise={},a.raisePromise={});var s="event:api:"+this.apiId+":"+t+":"+i;a.raise[i]=function(){n.$emit.apply(n,[s].concat(Array.prototype.slice.call(arguments)))},a.raisePromise[i]=function(){var t=n.$$listenerCount[s];if(!t)return e.when();var r=e.defer();t>1&&(r={promise:r.promise,notify:r.notify,raw:r,count:0,errors:[],results:[]},r.checkFinish=function(){r.count<t||(r.count=0,r.errors.length?(1==r.errors.length?r.raw.reject(r.errors[0]):r.raw.reject(r.errors),r.errors=[]):(r.raw.resolve(r.results),r.results=[]))},r.resolve=function(e){r.results.push(e),r.count++,r.checkFinish()},r.reject=function(e){r.errors.push(e),r.count++,r.checkFinish()});var i=[s].concat(Array.prototype.slice.call(arguments)).concat([r]);return n.$emit.apply(n,i),r.promise},a.on[i]=function(e,t,n){var i=r(s,t,o.gantt,n),a={handler:t,dereg:i,eventId:s,scope:e,_this:n};o.eventListeners.push(a);var l=function(){a.dereg();var e=o.eventListeners.indexOf(a);o.eventListeners.splice(e,1)};return e.$on("$destroy",function(){l()}),l}},i.prototype.hasListeners=function(e,n){var i=this,o=t.isArray(e)?e:[e],a=[];o.forEach(function(e){a=i.eventListeners.filter(function(t){return e===t.handler})}),a.forEach(function(e){e.dereg()}),n(),a.forEach(function(e){e.dereg=r(e.eventId,e.handler,i.gantt,e._this)})},i.prototype.registerMethod=function(e,t,n,r){this[e]||(this[e]={}),this[e][t]=function(){n.apply(r||this.app,arguments)}},i}])}(window,window.angular),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t("undefined"==typeof angular?require("angular"):angular):"function"==typeof define&&define.amd?define("angular-cache",["angular"],t):e.angularCacheModuleName=t(e.angular)}(this,function(e){"use strict";function t(e,t){if(e||(e=function(e){return e}),t||(t=function(e,t){return e===t}),"function"!=typeof e)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');if("function"!=typeof t)throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');this.weightFunc=e,this.compareFunc=t,this.heap=[]}function n(e){var t=[],n=void 0;if(!m.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&t.push(n);return t}function r(e){return e&&"function"==typeof e.then}function i(e){return m.isNumber(e)?e.toString():e}function o(e){var t={},n=void 0;if(!m.isObject(e))return t;for(n in e)e.hasOwnProperty(n)&&(t[n]=n);return t}function a(e,a){if(e in v)throw new Error(e+" already exists!");if(!m.isString(e))throw new Error("cacheId must be a string!");var s={},l={},u=null,d=new t(function(e){return e.expires},m.equals),h=new t(function(e){return e.accessed},m.equals),f=v[e]={$$id:e,destroy:function(){clearInterval(this.$$cacheFlushIntervalId),clearInterval(this.$$recycleFreqId),this.removeAll(),u&&(u().removeItem(this.$$prefix+".keys"),u().removeItem(this.$$prefix)),u=null,s=null,h=null,d=null,this.$$prefix=null,delete v[this.$$id]},disable:function(){this.$$disabled=!0},enable:function(){delete this.$$disabled},get:function(e,t){var n=this;if(Array.isArray(e)){var r=function(){var r=e,i=[];return r.forEach(function(e){var r=n.get(e,t);null!==r&&void 0!==r&&i.push(r)}),{v:i}}();if("object"===(void 0===r?"undefined":c.typeof(r)))return r.v}else if(e=i(e),this.$$disabled)return;if(t=t||{},!m.isString(e))throw new Error("key must be a string!");if(t&&!m.isObject(t))throw new Error("options must be an object!");if(t.onExpire&&!m.isFunction(t.onExpire))throw new Error("options.onExpire must be a function!");var o=void 0;if(u){if(l[e])return l[e];var a=u().getItem(this.$$prefix+".data."+e);if(!a)return;o=m.fromJson(a)}else if(m.isObject(s)){if(!(e in s))return;o=s[e]}var d=o.value,f=(new Date).getTime();return u?(h.remove({key:e,accessed:o.accessed}),o.accessed=f,h.push({key:e,accessed:f})):(h.remove(o),o.accessed=f,h.push(o)),"passive"===this.$$deleteOnExpire&&"expires"in o&&o.expires<f?(this.remove(e),this.$$onExpire?this.$$onExpire(e,o.value,t.onExpire):t.onExpire&&t.onExpire.call(this,e,o.value),d=void 0):u&&u().setItem(this.$$prefix+".data."+e,JSON.stringify(o)),d},info:function(e){if(e){var t=void 0;if(u){var n=u().getItem(this.$$prefix+".data."+e);return n?(t=m.fromJson(n),{created:t.created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}):void 0}return m.isObject(s)&&e in s?(t=s[e],{created:t.created,accessed:t.accessed,expires:t.expires,isExpired:(new Date).getTime()-t.created>(t.maxAge||this.$$maxAge)}):void 0}return{id:this.$$id,capacity:this.$$capacity,maxAge:this.$$maxAge,deleteOnExpire:this.$$deleteOnExpire,onExpire:this.$$onExpire,cacheFlushInterval:this.$$cacheFlushInterval,recycleFreq:this.$$recycleFreq,storageMode:this.$$storageMode,storageImpl:u?u():void 0,disabled:!!this.$$disabled,size:h&&h.size()||0}},keys:function(){if(u){var e=u().getItem(this.$$prefix+".keys");return e?m.fromJson(e):[]}return n(s)},keySet:function(){if(u){var e=u().getItem(this.$$prefix+".keys"),t={};if(e)for(var n=m.fromJson(e),r=0;r<n.length;r++)t[n[r]]=n[r];return t}return o(s)},put:function(e,t,n){var o=this;n||(n={});var a="storeOnResolve"in n?!!n.storeOnResolve:this.$$storeOnResolve,c="storeOnReject"in n?!!n.storeOnReject:this.$$storeOnReject,f=function(t,n){return function(r){if(t&&(delete l[e],m.isObject(r)&&"status"in r&&"data"in r?(r=[r.status,r.data,r.headers(),r.statusText],o.put(e,r)):o.put(e,r)),n){if(m.Promise)return m.Promise.reject(r);throw r}return r}};if(!this.$$disabled&&m.isObject(s)&&null!==t&&void 0!==t){if(e=i(e),!m.isString(e))throw new Error("key must be a string!");var p=(new Date).getTime(),g={key:e,value:r(t)?t.then(f(a,!1),f(c,!0)):t,created:void 0===n.created?p:n.created,accessed:void 0===n.accessed?p:n.accessed};if(n.maxAge&&(g.maxAge=n.maxAge),void 0===n.expires?g.expires=g.created+(g.maxAge||this.$$maxAge):g.expires=n.expires,u){if(r(g.value))return l[e]=g.value,l[e];var v=u().getItem(this.$$prefix+".keys"),_=v?m.fromJson(v):[];u().getItem(this.$$prefix+".data."+e)&&this.remove(e),d.push({key:e,expires:g.expires}),h.push({key:e,accessed:g.accessed}),u().setItem(this.$$prefix+".data."+e,JSON.stringify(g));for(var y=!1,b=0;b<_.length;b++)if(_[b]===e){y=!0;break}y||_.push(e),u().setItem(this.$$prefix+".keys",JSON.stringify(_))}else s[e]&&this.remove(e),d.push(g),h.push(g),s[e]=g,delete l[e];return h.size()>this.$$capacity&&this.remove(h.peek().key),t}},remove:function(e){if(e+="",delete l[e],u){var t=u().getItem(this.$$prefix+".data."+e);if(t){var n=m.fromJson(t);h.remove({key:e,accessed:n.accessed}),d.remove({key:e,expires:n.expires}),u().removeItem(this.$$prefix+".data."+e);var r=u().getItem(this.$$prefix+".keys"),i=r?m.fromJson(r):[],o=i.indexOf(e);return o>=0&&i.splice(o,1),u().setItem(this.$$prefix+".keys",JSON.stringify(i)),n.value}}else if(m.isObject(s)){var a=s[e]?s[e].value:void 0;return h.remove(s[e]),d.remove(s[e]),s[e]=null,delete s[e],a}},removeAll:function(){if(u){h.removeAll(),d.removeAll();var e=u().getItem(this.$$prefix+".keys");if(e)for(var t=m.fromJson(e),n=0;n<t.length;n++)this.remove(t[n]);u().setItem(this.$$prefix+".keys",JSON.stringify([]))}else if(m.isObject(s)){h.removeAll(),d.removeAll();for(var r in s)s[r]=null;s={}}else h.removeAll(),d.removeAll(),s={};l={}},removeExpired:function(){for(var e=(new Date).getTime(),t={},n=void 0,r=void 0;(r=d.peek())&&r.expires<=e;)t[r.key]=r.value?r.value:null,d.pop();if(u)for(n in t){var i=u().getItem(this.$$prefix+".data."+n);i&&(t[n]=m.fromJson(i).value,this.remove(n))}else for(n in t)this.remove(n);if(this.$$onExpire)for(n in t)this.$$onExpire(n,t[n]);return t},setCacheFlushInterval:function(e){var t=this;if(null===e)delete t.$$cacheFlushInterval;else{if(!m.isNumber(e))throw new Error("cacheFlushInterval must be a number!");if(e<0)throw new Error("cacheFlushInterval must be greater than zero!");e!==t.$$cacheFlushInterval&&(t.$$cacheFlushInterval=e,clearInterval(t.$$cacheFlushIntervalId),t.$$cacheFlushIntervalId=setInterval(function(){t.removeAll()},t.$$cacheFlushInterval))}},setCapacity:function(e){if(null===e)delete this.$$capacity;else{if(!m.isNumber(e))throw new Error("capacity must be a number!");if(e<0)throw new Error("capacity must be greater than zero!");this.$$capacity=e}for(var t={};h.size()>this.$$capacity;)t[h.peek().key]=this.remove(h.peek().key);return t},setDeleteOnExpire:function(e,t){if(null===e)delete this.$$deleteOnExpire;else{if(!m.isString(e))throw new Error("deleteOnExpire must be a string!");if("none"!==e&&"passive"!==e&&"aggressive"!==e)throw new Error('deleteOnExpire must be "none", "passive" or "aggressive"!');this.$$deleteOnExpire=e}!1!==t&&this.setRecycleFreq(this.$$recycleFreq)},setMaxAge:function(e){if(null===e)this.$$maxAge=Number.MAX_VALUE;else{if(!m.isNumber(e))throw new Error("maxAge must be a number!");if(e<0)throw new Error("maxAge must be greater than zero!");this.$$maxAge=e}var t=void 0,r=void 0,i=void 0;if(d.removeAll(),u){var o=u().getItem(this.$$prefix+".keys");for(r=o?m.fromJson(o):[],t=0;t<r.length;t++){i=r[t];var a=u().getItem(this.$$prefix+".data."+i);if(a){var l=m.fromJson(a);this.$$maxAge===Number.MAX_VALUE?l.expires=Number.MAX_VALUE:l.expires=l.created+(l.maxAge||this.$$maxAge),d.push({key:i,expires:l.expires})}}}else for(r=n(s),t=0;t<r.length;t++)i=r[t],this.$$maxAge===Number.MAX_VALUE?s[i].expires=Number.MAX_VALUE:s[i].expires=s[i].created+(s[i].maxAge||this.$$maxAge),d.push(s[i]);return"aggressive"===this.$$deleteOnExpire?this.removeExpired():{}},setOnExpire:function(e){if(null===e)delete this.$$onExpire;else{if(!m.isFunction(e))throw new Error("onExpire must be a function!");this.$$onExpire=e}},setOptions:function(e,t){if(e=e||{},t=!!t,!m.isObject(e))throw new Error("cacheOptions must be an object!");"storagePrefix"in e?this.$$storagePrefix=e.storagePrefix:t&&(this.$$storagePrefix=g.storagePrefix),this.$$prefix=this.$$storagePrefix+this.$$id,"disabled"in e?this.$$disabled=!!e.disabled:t&&(this.$$disabled=g.disabled),"deleteOnExpire"in e?this.setDeleteOnExpire(e.deleteOnExpire,!1):t&&this.setDeleteOnExpire(g.deleteOnExpire,!1),"recycleFreq"in e?this.setRecycleFreq(e.recycleFreq):t&&this.setRecycleFreq(g.recycleFreq),"maxAge"in e?this.setMaxAge(e.maxAge):t&&this.setMaxAge(g.maxAge),"storeOnResolve"in e?this.$$storeOnResolve=!!e.storeOnResolve:t&&(this.$$storeOnResolve=g.storeOnResolve),"storeOnReject"in e?this.$$storeOnReject=!!e.storeOnReject:t&&(this.$$storeOnReject=g.storeOnReject),"capacity"in e?this.setCapacity(e.capacity):t&&this.setCapacity(g.capacity),"cacheFlushInterval"in e?this.setCacheFlushInterval(e.cacheFlushInterval):t&&this.setCacheFlushInterval(g.cacheFlushInterval),"onExpire"in e?this.setOnExpire(e.onExpire):t&&this.setOnExpire(g.onExpire),"storageMode"in e||"storageImpl"in e?this.setStorageMode(e.storageMode||g.storageMode,e.storageImpl||g.storageImpl):t&&this.setStorageMode(g.storageMode,g.storageImpl)},setRecycleFreq:function(e){if(null===e)delete this.$$recycleFreq;else{if(!m.isNumber(e))throw new Error("recycleFreq must be a number!");if(e<0)throw new Error("recycleFreq must be greater than zero!");this.$$recycleFreq=e}clearInterval(this.$$recycleFreqId),"aggressive"===this.$$deleteOnExpire?function(e){e.$$recycleFreqId=setInterval(function(){e.removeExpired()},e.$$recycleFreq)}(this):delete this.$$recycleFreqId},setStorageMode:function(e,t){function n(e,t){var n=this.keys(),r=n.length;if(r){for(var i=void 0,s=m.isObject(t),l=0;l<r;l++){if(i=n[l],e){var u=e().getItem(this.$$prefix+".data."+i);u&&(a[i]=m.fromJson(u))}else s&&(a[i]=t[i]);this.remove(i)}o=!0}}if(!m.isString(e))throw new Error("storageMode must be a string!");if("memory"!==e&&"localStorage"!==e&&"sessionStorage"!==e)throw new Error('storageMode must be "memory", "localStorage" or "sessionStorage"!');var r=u,i=s,o=!1,a={};if(this.$$initializing||n.call(this,r,i),this.$$storageMode=e,t){if(!m.isObject(t))throw new Error("storageImpl must be an object!");if(!("setItem"in t&&"function"==typeof t.setItem))throw new Error('storageImpl must implement "setItem(key, value)"!');if(!("getItem"in t&&"function"==typeof t.getItem))throw new Error('storageImpl must implement "getItem(key)"!');if(!("removeItem"in t)||"function"!=typeof t.removeItem)throw new Error('storageImpl must implement "removeItem(key)"!');u=function(){return t}}else if("localStorage"===this.$$storageMode)try{localStorage.setItem("cachefactory","cachefactory"),localStorage.removeItem("cachefactory"),u=function(){return localStorage}}catch(e){u=null,this.$$storageMode="memory"}else if("sessionStorage"===this.$$storageMode)try{sessionStorage.setItem("cachefactory","cachefactory"),sessionStorage.removeItem("cachefactory"),u=function(){return sessionStorage}}catch(e){u=null,this.$$storageMode="memory"}else u=null,this.$$storageMode="memory";if(this.$$initializing&&n.call(this,u,s),o){var l=void 0;for(var c in a)l=a[c],this.put(c,l.value,{created:l.created,accessed:l.accessed,expires:l.expires})}},touch:function(e,t){var n=this;if(e){var r=this.get(e,{onExpire:function(e,t){return n.put(e,t)}});r&&this.put(e,r,t)}else for(var i=this.keys(),o=0;o<i.length;o++)this.touch(i[o],t)},values:function(){for(var e=this.keys(),t=[],n=0;n<e.length;n++)t.push(this.get(e[n]));return t}};return f.$$initializing=!0,f.setOptions(a,!0),f.$$initializing=!1,f}function s(e,t){return a(e,t)}function l(){this.$get=function(){return s.BinaryHeap}}function u(){this.defaults=s.defaults,this.defaults.storagePrefix="angular-cache.caches.",this.$get=["$q",function(e){return s.utils.Promise=e,s}]}e="default"in e?e.default:e;var c={};c.typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};var d=function(e,t,n){for(var r=e[n],i=t(r);n>0;){var o=Math.floor((n+1)/2)-1,a=e[o];if(i>=t(a))break;e[o]=r,e[n]=a,n=o}},h=function(e,t,n){for(var r=e.length,i=e[n],o=t(i);;){var a=2*(n+1),s=a-1,l=null;if(s<r){t(e[s])<o&&(l=s)}if(a<r){t(e[a])<(null===l?o:t(e[s]))&&(l=a)}if(null===l)break;e[n]=e[l],e[l]=i,n=l}},f=t.prototype;f.push=function(e){this.heap.push(e),d(this.heap,this.weightFunc,this.heap.length-1)},f.peek=function(){return this.heap[0]},f.pop=function(){var e=this.heap[0],t=this.heap.pop();return this.heap.length>0&&(this.heap[0]=t,h(this.heap,this.weightFunc,0)),e},f.remove=function(e){for(var t=this.heap.length,n=0;n<t;n++)if(this.compareFunc(this.heap[n],e)){var r=this.heap[n],i=this.heap.pop();return n!==t-1&&(this.heap[n]=i,d(this.heap,this.weightFunc,n),h(this.heap,this.weightFunc,n)),r}return null},f.removeAll=function(){this.heap=[]},f.size=function(){return this.heap.length};var p=null;try{p=window.Promise}catch(e){}var m={isNumber:function(e){return"number"==typeof e},isString:function(e){return"string"==typeof e},isObject:function(e){return null!==e&&"object"===(void 0===e?"undefined":c.typeof(e))},isFunction:function(e){return"function"==typeof e},fromJson:function(e){return JSON.parse(e)},equals:function(e,t){return e===t},Promise:p},g={capacity:Number.MAX_VALUE,maxAge:Number.MAX_VALUE,deleteOnExpire:"none",onExpire:null,cacheFlushInterval:null,recycleFreq:1e3,storageMode:"memory",storageImpl:null,disabled:!1,storagePrefix:"cachefactory.caches.",storeOnResolve:!1,storeOnReject:!1},v={};s.createCache=a,s.defaults=g,s.info=function(){var e=n(v),t={size:e.length,caches:{}};for(var r in g)g.hasOwnProperty(r)&&(t[r]=g[r]);for(var i=0;i<e.length;i++){var o=e[i];t.caches[o]=v[o].info()}return t},s.get=function(e){return v[e]},s.keySet=function(){return o(v)},s.keys=function(){return n(v)},s.destroy=function(e){v[e]&&(v[e].destroy(),delete v[e])},s.destroyAll=function(){for(var e in v)v[e].destroy();v={}},s.clearAll=function(){for(var e in v)v[e].removeAll()},s.removeExpiredFromAll=function(){var e={};for(var t in v)e[t]=v[t].removeExpired();return e},s.enableAll=function(){for(var e in v)v[e].$$disabled=!1},s.disableAll=function(){for(var e in v)v[e].$$disabled=!0},s.touchAll=function(){for(var e in v)v[e].touch()},s.utils=m,s.BinaryHeap=t,s.utils.equals=e.equals,s.utils.isObject=e.isObject,s.utils.fromJson=e.fromJson,e.module("angular-cache",[]).provider("BinaryHeap",l).provider("CacheFactory",u);return"angular-cache"}),function(){"use strict";function e(){this.config={},this.$get=function(){return{config:this.config}}}function t(e,t,n,r,i){
-function o(e){return angular.isString(e)?(e=e.split(/\s*,\s*/),e.some(function(e){return!!t.matchMedia(g[e]).matches||void 0})):void 0}function a(t,n){var r=null,i=o(t),a={active:i,unbind:null};if(!f){n=n||e;var s=n.$on("screenmatch::resize",function(){r=i,i=o(t),r!==i&&(a.active=i)});a.unbind=function(){s()}}return a}function s(t,n,i){var a=!1,s=null,l=o(t);if(angular.isFunction(n)&&(l&&(a=!0,r(function(){n()})),!f&&!a)){i=i||e;var u=i.$on("screenmatch::resize",function(){s=l,l=o(t),l&&s!==l&&(a=!0,r(function(){n()})),a&&u()})}}function l(t,n,i,a){var s=null,l=o(t);if(angular.isUndefined(a)&&!angular.isUndefined(i)&&(angular.isFunction(i)||(a=i,i=void 0)),angular.isFunction(n)&&(angular.isFunction(i)||angular.isUndefined(i))&&(l?r(function(){n()}):i&&r(function(){i()}),!f)){a=a||e;return{cancel:a.$on("screenmatch::resize",function(){s=l,l=o(t),s!==l&&(l?r(function(){n()}):i&&r(function(){i()}))})}}}function u(){if(g=angular.isObject(d)&&!angular.equals({},d)?d:m[d]||m.bootstrap,!angular.equals({},h)&&angular.isObject(h)){var e={};angular.forEach(h,function(t,n){angular.isString(t)&&(e[n]=t)}),angular.extend(g,e)}}function c(){var r=angular.element(t),i=!1;r.on("resize",function(){if(!i)var t=n(function(){e.$broadcast("screenmatch::resize",!0),i&&(n.cancel(t),i=!1)},p);i=!0})}var d=i.config.rules,h=i.config.extraRules||{},f=i.config.nobind||!1,p=i.config.debounce||250,m={bootstrap:{lg:"(min-width: 1200px)",md:"(min-width: 992px) and (max-width: 1199px)",sm:"(min-width: 768px) and (max-width: 991px)",xs:"(max-width: 767px)"},matchmedia:{print:"print",screen:"screen",phone:"(max-width: 767px)",tablet:"(min-width: 768px) and (max-width: 991px)",desktop:"(min-width: 992px)",portrait:"(orientation: portrait)",landscape:"(orientation: landscape)"}},g={},v={is:o,bind:a,once:s,when:l};return function(){u(),f||c()}(),v}function n(e,t){function n(e,n,i){var o=i.asmScreen,a=t.bind(o,e);i.ngIf=function(){return a.active},r.link.apply(r,arguments)}var r=e[0];return{link:n,terminal:r.terminal,transclude:r.transclude,priority:r.priority,restrict:r.restrict}}function r(e){(angular.isUndefined(e.matchMedia)||!angular.isFunction(e.matchMedia("all").addListener))&&(e.matchMedia=function(){var t=e.styleMedia||e.media;if(!t){var n=document.createElement("style"),r=document.getElementsByTagName("script")[0],i=null;n.type="text/css",n.id="matchmediajs-test",r.parentNode.insertBefore(n,r),i="getComputedStyle"in e&&e.getComputedStyle(n,null)||n.currentStyle,t={matchMedium:function(e){var t="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return n.styleSheet?n.styleSheet.cssText=t:n.textContent=t,"1px"===i.width}}}return function(e){return{matches:t.matchMedium(e||"all"),media:e||"all"}}}())}angular.module("angular.screenmatch",[]).run(r).provider("screenmatchConfig",e).factory("screenmatch",t).directive("asmScreen",n),t.$inject=["$rootScope","$window","$interval","$timeout","screenmatchConfig"],n.$inject=["ngIfDirective","screenmatch"],r.$inject=["$window"]}(),function(){"use strict";function e(e,t){function n(t,n,r){n!==r&&e.$broadcast("$$rebind::"+t)}Object.keys(t).forEach(function(r){e.$watch(t[r],n.bind(null,r),"object"==typeof e[t[r]])})}function t(e,t){function n(e,n){t.forEach(function(t){e.$on("$$rebind::"+t,n)})}function r(e,t,r,i,o){var a=e.bind(this,t,r,i,o);return n(t,a),a()}if(e.$$watchDelegate.wrapped)return e.$$watchDelegate;var i=r.bind(this,e.$$watchDelegate);return i.wrapped=!0,i}function n(e){function n(e,n,r){function i(e,i,o){var a,s,l,u,c;if("string"!=typeof i||!n.test(i))return e.call(this,i,o);for(a=i.split(":"),c=[];a.length;)if((s=a.shift())&&s.trim()){if(!r.test(s)){u=[s].concat(a).join(":");break}c.push(s)}return u||(u=c.splice(-1,1)[0]),l=e.call(this,"::"+u,o),l.$$watchDelegate=t(l,c),l}return i.bind(null,e)}n.$inject=["$delegate","bindNotifierRegex","bindNotifierKeyRegex"],e.decorator("$parse",n)}function r(){return{restrict:"A",scope:!0,compile:function(t,n){var r={};return n.bindNotifier.replace(/[\{\}\s]/g,"").split(",").forEach(function(e){var t=e.split(":");r[t[0]]=t[1]}),function(t){e(t,r)}}}}function i(){return function(t,n){if(!t)throw new Error("No $scope given");if(!n)throw new Error("No notifier object given");e(t,n)}}n.$inject=["$provide"],angular.module("angular.bind.notifier",[]).constant("bindNotifierKeyRegex",/^[a-zA-Z0-9][\w-]*$/).constant("bindNotifierRegex",/^[\s]*:([a-zA-Z0-9][\w-]*):(.+\n?)+$/).factory("$Notifier",i).directive("bindNotifier",r).config(n)}(),function(){var e=function(e,t,n){var r=e,i=t||0,o=0;this.getRawData=function(){return r},"string"==typeof e?(o=n||r.length,this.getByteAt=function(e){return 255&r.charCodeAt(e+i)},this.getBytesAt=function(e,t){for(var n=[],o=0;o<t;o++)n[o]=255&r.charCodeAt(e+o+i);return n}):"unknown"==typeof e&&(o=n||IEBinary_getLength(r),this.getByteAt=function(e){return IEBinary_getByteAt(r,e+i)},this.getBytesAt=function(e,t){return new VBArray(IEBinary_getBytesAt(r,e+i,t)).toArray()}),this.getLength=function(){return o},this.getSByteAt=function(e){var t=this.getByteAt(e);return t>127?t-256:t},this.getShortAt=function(e,t){var n=t?(this.getByteAt(e)<<8)+this.getByteAt(e+1):(this.getByteAt(e+1)<<8)+this.getByteAt(e);return n<0&&(n+=65536),n},this.getSShortAt=function(e,t){var n=this.getShortAt(e,t);return n>32767?n-65536:n},this.getLongAt=function(e,t){var n=this.getByteAt(e),r=this.getByteAt(e+1),i=this.getByteAt(e+2),o=this.getByteAt(e+3),a=t?(((n<<8)+r<<8)+i<<8)+o:(((o<<8)+i<<8)+r<<8)+n;return a<0&&(a+=4294967296),a},this.getSLongAt=function(e,t){var n=this.getLongAt(e,t);return n>2147483647?n-4294967296:n},this.getStringAt=function(e,t){for(var n=[],r=this.getBytesAt(e,t),i=0;i<t;i++)n[i]=String.fromCharCode(r[i]);return n.join("")},this.getCharAt=function(e){return String.fromCharCode(this.getByteAt(e))},this.toBase64=function(){return window.btoa(r)},this.fromBase64=function(e){r=window.atob(e)}},t=function(){function e(e){return!!e.exifdata}function t(e,t){BinaryAjax(e.src,function(r){var i=n(r.binaryResponse);e.exifdata=i||{},t&&t.call(e)})}function n(e){if(255!=e.getByteAt(0)||216!=e.getByteAt(1))return!1;for(var t,n=2,r=e.getLength();n<r;){if(255!=e.getByteAt(n))return d&&console.log("Not a valid marker at offset "+n+", found: "+e.getByteAt(n)),!1;if(22400==(t=e.getByteAt(n+1)))return d&&console.log("Found 0xFFE1 marker"),o(e,n+4,e.getShortAt(n+2,!0));if(225==t)return d&&console.log("Found 0xFFE1 marker"),o(e,n+4,e.getShortAt(n+2,!0));n+=2+e.getShortAt(n+2,!0)}}function r(e,t,n,r,o){var a,s,l,u=e.getShortAt(n,o),c={};for(l=0;l<u;l++)a=n+12*l+2,s=r[e.getShortAt(a,o)],!s&&d&&console.log("Unknown tag: "+e.getShortAt(a,o)),c[s]=i(e,a,t,n,o);return c}function i(e,t,n,r,i){var o,a,s,l,u,c,d=e.getShortAt(t+2,i),h=e.getLongAt(t+4,i),f=e.getLongAt(t+8,i)+n;switch(d){case 1:case 7:if(1==h)return e.getByteAt(t+8,i);for(o=h>4?f:t+8,a=[],l=0;l<h;l++)a[l]=e.getByteAt(o+l);return a;case 2:return o=h>4?f:t+8,e.getStringAt(o,h-1);case 3:if(1==h)return e.getShortAt(t+8,i);for(o=h>2?f:t+8,a=[],l=0;l<h;l++)a[l]=e.getShortAt(o+2*l,i);return a;case 4:if(1==h)return e.getLongAt(t+8,i);a=[];for(var l=0;l<h;l++)a[l]=e.getLongAt(f+4*l,i);return a;case 5:if(1==h)return u=e.getLongAt(f,i),c=e.getLongAt(f+4,i),s=new Number(u/c),s.numerator=u,s.denominator=c,s;for(a=[],l=0;l<h;l++)u=e.getLongAt(f+8*l,i),c=e.getLongAt(f+4+8*l,i),a[l]=new Number(u/c),a[l].numerator=u,a[l].denominator=c;return a;case 9:if(1==h)return e.getSLongAt(t+8,i);for(a=[],l=0;l<h;l++)a[l]=e.getSLongAt(f+4*l,i);return a;case 10:if(1==h)return e.getSLongAt(f,i)/e.getSLongAt(f+4,i);for(a=[],l=0;l<h;l++)a[l]=e.getSLongAt(f+8*l,i)/e.getSLongAt(f+4+8*l,i);return a}}function o(e,t){if("Exif"!=e.getStringAt(t,4))return d&&console.log("Not valid EXIF data! "+e.getStringAt(t,4)),!1;var n,i,o,a,s,l=t+6;if(18761==e.getShortAt(l))n=!1;else{if(19789!=e.getShortAt(l))return d&&console.log("Not valid TIFF data! (no 0x4949 or 0x4D4D)"),!1;n=!0}if(42!=e.getShortAt(l+2,n))return d&&console.log("Not valid TIFF data! (no 0x002A)"),!1;if(8!=e.getLongAt(l+4,n))return d&&console.log("Not valid TIFF data! (First offset not 8)",e.getShortAt(l+4,n)),!1;if(i=r(e,l,l+8,f,n),i.ExifIFDPointer){a=r(e,l,l+i.ExifIFDPointer,h,n);for(o in a){switch(o){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":a[o]=m[o][a[o]];break;case"ExifVersion":case"FlashpixVersion":a[o]=String.fromCharCode(a[o][0],a[o][1],a[o][2],a[o][3]);break;case"ComponentsConfiguration":a[o]=m.Components[a[o][0]]+m.Components[a[o][1]]+m.Components[a[o][2]]+m.Components[a[o][3]]}i[o]=a[o]}}if(i.GPSInfoIFDPointer){s=r(e,l,l+i.GPSInfoIFDPointer,p,n);for(o in s){switch(o){case"GPSVersionID":s[o]=s[o][0]+"."+s[o][1]+"."+s[o][2]+"."+s[o][3]}i[o]=s[o]}}return i}function a(n,r){return!!n.complete&&(e(n)?r&&r.call(n):t(n,r),!0)}function s(t,n){if(e(t))return t.exifdata[n]}function l(t){if(!e(t))return{};var n,r=t.exifdata,i={};for(n in r)r.hasOwnProperty(n)&&(i[n]=r[n]);return i}function u(t){if(!e(t))return"";var n,r=t.exifdata,i="";for(n in r)r.hasOwnProperty(n)&&("object"==typeof r[n]?r[n]instanceof Number?i+=n+" : "+r[n]+" ["+r[n].numerator+"/"+r[n].denominator+"]\r\n":i+=n+" : ["+r[n].length+" values]\r\n":i+=n+" : "+r[n]+"\r\n");return i}function c(e){return n(e)}var d=!1,h={36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRation",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",40965:"InteroperabilityIFDPointer",42016:"ImageUniqueID"},f={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright"},p={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential"},m={ExposureProgram:{0:"Not defined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Not defined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},Components:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"}};return{readFromBinaryFile:c,pretty:u,getTag:s,getAllTags:l,getData:a,Tags:h,TiffTags:f,GPSTags:p,StringValues:m}}();angular.module("ImageCropper",[]).directive("imageCrop",function(){return{template:'<div id="image-crop-{{ rand }}" class="ng-image-crop ng-image-crop--{{ shape }}" ng-style="moduleStyles"><section ng-style="sectionStyles" ng-show="step==1"></section><section ng-style="sectionStyles" ng-show="step==2"><canvas class="cropping-canvas" width="{{ canvasWidth }}" height="{{ canvasHeight }}" ng-mousemove="onCanvasMouseMove($event)" ng-mousedown="onCanvasMouseDown($event)"></canvas><div ng-style="croppingGuideStyles" class="cropping-guide"></div><div class="zoom-handle" ng-mousemove="onHandleMouseMove($event)" ng-mousedown="onHandleMouseDown($event)" ng-mouseup="onHandleMouseUp($event)"><span>&larr; zoom &rarr;</span></div></section><section ng-style="sectionStyles" class="image-crop-section-final" ng-show="step==3"><img class="image-crop-final" ng-src="{{ croppedDataUri }}" /></section></div>',replace:!0,restrict:"AE",scope:{crop:"=",width:"@",height:"@",shape:"@",src:"=",resultBlob:"=",result:"=",step:"=",padding:"@",maxSize:"@"},link:function(n,r,i){function o(e){return new Promise(function(t,n){if(!W)return t(e);var r=new Image;r.src=e,r.onload=function(){var n=r.height,i=r.width;if(n<=W&&i<=W)return t(e);var o=i/n;o>1?(i=W,n=W/o):(i=W*o,n=W),i=Math.round(i),n=Math.round(n);var a=document.createElement("canvas");a.width=i,a.height=n;var s=a.getContext("2d");s.drawImage(r,0,0,r.width,r.height,0,0,a.width,a.height),s.save();var l=a.toDataURL();t(l)}})}function a(e,t){return new Promise(function(n,r){var i=new Image;i.src=e,i.onload=function(){var e=document.createElement("canvas");t.Orientation>=5?(e.width=i.height,e.height=i.width):(e.width=i.width,e.height=i.height);var r=e.getContext("2d");switch(t.Orientation){case 1:break;case 2:r.translate(i.width,0),r.scale(-1,1);break;case 3:r.translate(i.width,i.height),r.rotate(Math.PI);break;case 4:r.translate(0,i.height),r.scale(1,-1);break;case 5:r.rotate(.5*Math.PI),r.scale(1,-1);break;case 6:r.rotate(.5*Math.PI),r.translate(0,-i.height);break;case 7:r.rotate(.5*Math.PI),r.translate(i.width,-i.height),r.scale(-1,1);break;case 8:r.rotate(-.5*Math.PI),r.translate(-i.width,0)}r.drawImage(i,0,0),r.save();var o=e.toDataURL();n(o)}})}function s(n){var r=atob(n.split(",")[1]),i=new e(r,0,r.length);Z=t.readFromBinaryFile(i),o(n).then(function(e){return Z&&Z.Orientation&&Z.Orientation>1?a(e,Z):e}).then(function(e){L.src=e}).catch(function(e){console.log(e)})}function l(){J=[],H=1,$=0,D=0,C=!1,E=0,A=0,P=!1,G.clearRect(0,0,y.width,y.height),L.src=""}function u(e,t){return e=e<F?F:e,e=e>z?z:e,t=t<V?V:t,t=t>U?U:t,I=e,j=t,G.clearRect(0,0,y.width,y.height),G.drawImage(L,e,t,Y,O),e==F||e==z||t==V||t==U}function c(e){return Math.round(1e3*e)/1e3}function d(){F=y.width-L.width*H-v/2,V=y.height-L.height*H-v/2}function h(e){if(e){var t=c(H+e);if(!(t<B||t>R)){H=t,d(),Y=L.width*H,O=L.height*H;var n=$*H,r=D*H;n<F?n=F:n>z&&(n=z),r<V?r=V:r>U&&(r=U),G.clearRect(0,0,y.width,y.height),G.drawImage(L,n,r,Y,O)}}}function f(e,t){var n=Math.sqrt(Math.pow(e,2)+Math.pow(t,2)),r=c(n/N),i=c((R-B)*r*q);return e>0?-i:i}function p(e){var t,n;t=-1!==e.split(",")[0].indexOf("base64")?atob(e.split(",")[1]):decodeURI(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0];for(var r=new Array,i=0;i<t.length;i++)r[i]=t.charCodeAt(i);return new Blob([new Uint8Array(r)],{type:n})}function m(e,t){document.documentElement.addEventListener(e,t,!1)}function g(e,t){document.documentElement.removeEventListener(e,t)}var v=n.padding?Number(n.padding):200;n.rand=Math.round(99999*Math.random()),n.step=n.step||1,n.shape=n.shape||"circle",n.width=parseInt(n.width,10)||300,n.height=parseInt(n.height,10)||300,n.canvasWidth=n.width+v,n.canvasHeight=n.height+v;var _=r[0],y=_.getElementsByClassName("cropping-canvas")[0],b=_.getElementsByClassName("zoom-handle")[0],w=_.getElementsByClassName("image-crop-final")[0],L=new Image,M=new FileReader,k=0,x=0,S=0,T=0,$=0,D=0,C=!1,E=0,A=0,P=!1,Y=S,O=T,I=0,j=0,H=1,N=0,B=0,R=2,F=0,z=v/2,V=0,U=v/2,W=n.maxSize?Number(n.maxSize):null,q=.6,G=y.getContext("2d"),Z=null,J=[];n.moduleStyles={width:n.width+v+"px",height:n.height+v+"px"},n.sectionStyles={width:n.width+v+"px",height:n.height+v+"px"},n.croppingGuideStyles={width:n.width+"px",height:n.height+"px",top:v/2+"px",left:v/2+"px"},M.onload=function(e){s(this.resultBlob)},L.onload=function(){n.step=2,n.$apply(),G.drawImage(L,0,0),S=L.width,T=L.height,k=n.width+v-this.width,x=n.height+v-this.height,Y=S,O=T,B=S>=T?(y.height-v)/T:(y.width-v)/S,N=c(Math.sqrt(Math.pow(y.width,2)+Math.pow(y.height,2))),d(),u(Math.round((F+z)/2),Math.round((V+U)/2))},n.$watch("src",function(){n.src?3!=n.step&&("Blob"==typeof n.src?M.readAsDataURL(n.src):s(n.src)):(n.step=1,l())}),n.$watch("crop",function(){n.crop&&(n.doCrop(),n.crop=!1)}),w.onload=function(){var e=document.createElement("canvas");e.width=this.width-v,e.height=this.height-v,e.style.display="none",e.getContext("2d").drawImage(w,-v/2,-v/2),_.getElementsByClassName("image-crop-section-final")[0].appendChild(e);var t=e.toDataURL();n.result=t,n.resultBlob=p(t),n.$apply()},n.doCrop=function(){n.croppedDataUri=y.toDataURL(),n.step=3},n.onCanvasMouseUp=function(e){C&&(e.preventDefault(),e.stopPropagation(),E=0,A=0,C=!1,$=I,D=j,g("mouseup",n.onCanvasMouseUp),g("touchend",n.onCanvasMouseUp),g("mousemove",n.onCanvasMouseMove),g("touchmove",n.onCanvasMouseMove))},y.addEventListener("touchend",n.onCanvasMouseUp,!1),n.onCanvasMouseDown=function(e){E="touchstart"===e.type?e.changedTouches[0].clientX:e.clientX,A="touchstart"===e.type?e.changedTouches[0].clientY:e.clientY,P=!1,C=!0,m("mouseup",n.onCanvasMouseUp),m("mousemove",n.onCanvasMouseMove)},y.addEventListener("touchstart",n.onCanvasMouseDown,!1),n.onHandleMouseDown=function(e){e.preventDefault(),e.stopPropagation(),E=X="touchstart"===e.type?e.changedTouches[0].clientX:e.clientX,A=K="touchstart"===e.type?e.changedTouches[0].clientY:e.clientY,C=!1,P=!0,m("mouseup",n.onHandleMouseUp),m("touchend",n.onHandleMouseUp),m("mousemove",n.onHandleMouseMove),m("touchmove",n.onHandleMouseMove)},b.addEventListener("touchstart",n.onHandleMouseDown,!1),n.onHandleMouseUp=function(e){P&&(e.preventDefault(),e.stopPropagation(),E=0,A=0,P=!1,$=I,D=j,g("mouseup",n.onHandleMouseUp),g("touchend",n.onHandleMouseUp),g("mousemove",n.onHandleMouseMove),g("touchmove",n.onHandleMouseMove))},b.addEventListener("touchend",n.onHandleMouseUp,!1),n.onCanvasMouseMove=function(e){if(e.preventDefault(),e.stopPropagation(),C){var t=E-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=A-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);u($-t,D-n)}},y.addEventListener("touchmove",n.onCanvasMouseMove,!1);var X=null,K=null;n.onHandleMouseMove=function(e){if(e.stopPropagation(),e.preventDefault(),!P)return!1;var t=X-("touchmove"===e.type?e.changedTouches[0].clientX:e.clientX),n=K-("touchmove"===e.type?e.changedTouches[0].clientY:e.clientY);X="touchmove"===e.type?e.changedTouches[0].clientX:e.clientX,K="touchmove"===e.type?e.changedTouches[0].clientY:e.clientY,h(f(t,n))},b.addEventListener("touchmove",n.onHandleMouseMove,!1),n.onHandleMouseWheel=function(e){e.preventDefault(),h(e.deltaY>0?-.05:.05)},y.addEventListener("mousewheel",n.onHandleMouseWheel),b.addEventListener("mousewheel",n.onHandleMouseWheel)}}})}(),function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";e.exports="ngFileSaver",angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",n(1)]).factory("FileSaverUtils",[n(2)]).factory("Blob",["$window",n(3)]).factory("SaveAs",[n(5)])},function(e,t){"use strict";e.exports=function(e,t,n){function r(e,r,i){try{t(e,r,i)}catch(e){n.handleErrors(e.message)}}return{saveAs:function(e,t,i){return n.isBlobInstance(e)||n.handleErrors("Data argument should be a blob instance"),n.isString(t)||n.handleErrors("Filename argument should be a string"),r(e,t,i)}}}},function(e,t){"use strict";e.exports=function(){return{handleErrors:function(e){throw new Error(e)},isString:function(e){return"string"==typeof e||e instanceof String},isUndefined:function(e){return void 0===e},isBlobInstance:function(e){return e instanceof Blob}}}},function(e,t,n){"use strict";n(4),e.exports=function(e){return e.Blob}},function(e,t){!function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(e){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},r=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},i=n.prototype,o=r.prototype,a=e.FileReaderSync,s=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),u=l.length,c=e.URL||e.webkitURL||e,d=c.createObjectURL,h=c.revokeObjectURL,f=c,p=e.btoa,m=e.atob,g=e.ArrayBuffer,v=e.Uint8Array,_=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(r.fake=o.fake=!0;u--;)s.prototype[l[u]]=u+1;return c.createObjectURL||(f=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(_),n.origin=t&&t[1])),n}),f.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof r?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):p?t+";base64,"+p(e.data):t+","+encodeURIComponent(e.data)):d?d.call(c,e):void 0},f.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(c,e)},i.append=function(e){var n=this.data;if(v&&(e instanceof g||e instanceof v)){for(var i="",o=new v(e),l=0,u=o.length;l<u;l++)i+=String.fromCharCode(o[l]);n.push(i)}else if("Blob"===t(e)||"File"===t(e)){if(!a)throw new s("NOT_READABLE_ERR");var c=new a;n.push(c.readAsBinaryString(e))}else e instanceof r?"base64"===e.encoding&&m?n.push(m(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!=typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},i.getBlob=function(e){return arguments.length||(e=null),new r(this.data.join(""),e,"raw")},i.toString=function(){return"[object BlobBuilder]"},o.slice=function(e,t,n){var i=arguments.length;return i<3&&(n=null),new r(this.data.slice(e,i>1?t:this.data.length),n,this.encoding)},o.toString=function(){return"[object Blob]"},o.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var r=n?n.type||"":"",i=new t;if(e)for(var o=0,a=e.length;o<a;o++)Uint8Array&&e[o]instanceof Uint8Array?i.append(e[o].buffer):i.append(e[o]);var s=i.getBlob(r);return!s.slice&&s.webkitSlice&&(s.slice=s.webkitSlice),s};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},function(e,t,n){"use strict";e.exports=function(){return n(6).saveAs||function(){}}},function(e,t,n){var r,i=i||function(e){"use strict";if(!(void 0===e||"undefined"!=typeof navigator&&/MSIE [1-9]\./.test(navigator.userAgent))){var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),i="download"in r,o=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},a=/constructor/i.test(e.HTMLElement)||e.safari,s=/CriOS\/[\d]+/.test(navigator.userAgent),l=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},u=function(e){var t=function(){"string"==typeof e?n().revokeObjectURL(e):e.remove()};setTimeout(t,4e4)},c=function(e,t,n){t=[].concat(t);for(var r=t.length;r--;){var i=e["on"+t[r]];if("function"==typeof i)try{i.call(e,n||e)}catch(e){l(e)}}},d=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e},h=function(t,l,h){h||(t=d(t));var f,p=this,m=t.type,g="application/octet-stream"===m,v=function(){c(p,"writestart progress write writeend".split(" "))};if(p.readyState=p.INIT,i)return f=n().createObjectURL(t),void setTimeout(function(){r.href=f,r.download=l,o(r),v(),u(f),p.readyState=p.DONE});!function(){if((s||g&&a)&&e.FileReader){var r=new FileReader;return r.onloadend=function(){var t=s?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");e.open(t,"_blank")||(e.location.href=t),t=void 0,p.readyState=p.DONE,v()},r.readAsDataURL(t),void(p.readyState=p.INIT)}if(f||(f=n().createObjectURL(t)),g)e.location.href=f;else{e.open(f,"_blank")||(e.location.href=f)}p.readyState=p.DONE,v(),u(f)}()},f=h.prototype,p=function(e,t,n){return new h(e,t||e.name||"download",n)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(e,t,n){return t=t||e.name||"download",n||(e=d(e)),navigator.msSaveOrOpenBlob(e,t)}:(f.abort=function(){},f.readyState=f.INIT=0,f.WRITING=1,f.DONE=2,f.error=f.onwritestart=f.onprogress=f.onwrite=f.onabort=f.onerror=f.onwriteend=null,p)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);void 0!==e&&e.exports?e.exports.saveAs=i:null!==n(7)&&null!==n(8)&&void 0!==(r=function(){return i}.call(t,n,t,e))&&(e.exports=r)},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){(function(t){e.exports=t}).call(t,{})}])}),function(e,t,n){"use strict";t.module("ngIdle",["ngIdle.keepalive","ngIdle.idle","ngIdle.countdown","ngIdle.title","ngIdle.localStorage"]),t.module("ngIdle.keepalive",[]).provider("Keepalive",function(){var e={http:null,interval:600};this.http=function(n){if(!n)throw new Error("Argument must be a string containing a URL, or an object containing the HTTP request configuration.");t.isString(n)&&(n={url:n,method:"GET"}),n.cache=!1,e.http=n};var n=this.interval=function(t){if(t=parseInt(t),isNaN(t)||t<=0)throw new Error("Interval must be expressed in seconds and be greater than 0.");e.interval=t};this.$get=["$rootScope","$log","$interval","$http",function(r,i,o,a){function s(e){r.$broadcast("KeepaliveResponse",e.data,e.status)}function l(){r.$broadcast("Keepalive"),t.isObject(e.http)&&a(e.http).then(s).catch(s)}var u={ping:null};return{_options:function(){return e},setInterval:n,start:function(){return o.cancel(u.ping),u.ping=o(l,1e3*e.interval),u.ping},stop:function(){o.cancel(u.ping)},ping:function(){l()}}}]}),t.module("ngIdle.idle",["ngIdle.keepalive","ngIdle.localStorage"]).provider("Idle",function(){var e={idle:1200,timeout:30,autoResume:"idle",interrupt:"mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll",windowInterrupt:null,keepalive:!0},n=this.timeout=function(n){if(!1===n)e.timeout=0;else{if(!(t.isNumber(n)&&n>=0))throw new Error("Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.");e.timeout=n}};this.interrupt=function(t){e.interrupt=t},this.windowInterrupt=function(t){e.windowInterrupt=t};var r=this.idle=function(t){if(t<=0)throw new Error("Idle must be a value in seconds, greater than 0.");e.idle=t};this.autoResume=function(t){e.autoResume=!0===t?"idle":!1===t?"off":t},this.keepalive=function(t){e.keepalive=!0===t},this.$get=["$interval","$log","$rootScope","$document","Keepalive","IdleLocalStorage","$window",function(i,o,a,s,l,u,c){function d(){e.keepalive&&(b.running&&l.ping(),l.start())}function h(){e.keepalive&&l.stop()}function f(){b.idling=!b.idling;var t=b.idling?"IdleStart":"IdleEnd";b.idling?(a.$broadcast(t),h(),e.timeout&&(b.countdown=e.timeout,p(),b.timeout=i(p,1e3,e.timeout,!1))):(d(),a.$broadcast(t)),i.cancel(b.idle)}function p(){if(b.idling){if(b.countdown<=0)return void g();a.$broadcast("IdleWarn",b.countdown),b.countdown--}}function m(e){a.$broadcast("IdleInterrupt",e)}function g(){h(),i.cancel(b.idle),i.cancel(b.timeout),b.idling=!0,b.running=!1,b.countdown=0,a.$broadcast("IdleTimeout")}function v(e,t,n){var r=e.running();e.unwatch(),t(n),r&&e.watch()}function _(){var e=u.get("expiry");return e&&e.time?new Date(e.time):null}function y(e){e?u.set("expiry",{id:w,time:e}):u.remove("expiry")}var b={idle:null,timeout:null,idling:!1,running:!1,countdown:null},w=(new Date).getTime(),L={_options:function(){return e},_getNow:function(){return new Date},getIdle:function(){return e.idle},getTimeout:function(){return e.timeout},setIdle:function(e){v(this,r,e)},setTimeout:function(e){v(this,n,e)},isExpired:function(){var e=_();return null!==e&&e<=this._getNow()},running:function(){return b.running},idling:function(){return b.idling},watch:function(t){i.cancel(b.idle),i.cancel(b.timeout)
-;var n=e.timeout?e.timeout:0;t||y(new Date((new Date).getTime()+1e3*(e.idle+n))),b.idling?f():b.running||d(),b.running=!0,b.idle=i(f,1e3*e.idle,0,!1)},unwatch:function(){i.cancel(b.idle),i.cancel(b.timeout),b.idling=!1,b.running=!1,y(null),h()},interrupt:function(t){if(b.running){if(e.timeout&&this.isExpired())return void g();m(t),(t||"idle"===e.autoResume||"notIdle"===e.autoResume&&!b.idling)&&this.watch(t)}}},M={clientX:null,clientY:null,swap:function(e){var t={clientX:this.clientX,clientY:this.clientY};return this.clientX=e.clientX,this.clientY=e.clientY,t},hasMoved:function(e){var t=this.swap(e);return!(null!==this.clientX&&!e.movementX&&!e.movementY)||(t.clientX!=e.clientX||t.clientY!=e.clientY)}};if(s.find("html").on(e.interrupt,function(e){"mousemove"===e.type&&e.originalEvent&&0===e.originalEvent.movementX&&0===e.originalEvent.movementY||("mousemove"!==e.type||M.hasMoved(e))&&L.interrupt()}),e.windowInterrupt)for(var k=e.windowInterrupt.split(" "),x=function(){L.interrupt()},S=0;S<k.length;S++)c.addEventListener?c.addEventListener(k[S],x,!1):c.attachEvent(k[S],x);var T=function(e){if("ngIdle.expiry"===e.key&&e.newValue&&e.newValue!==e.oldValue){if(t.fromJson(e.newValue).id===w)return;L.interrupt(!0)}};return c.addEventListener?c.addEventListener("storage",T,!1):c.attachEvent&&c.attachEvent("onstorage",T),L}]}),t.module("ngIdle.countdown",["ngIdle.idle"]).directive("idleCountdown",["Idle",function(e){return{restrict:"A",scope:{value:"=idleCountdown"},link:function(t){t.value=e.getTimeout(),t.$on("IdleWarn",function(e,n){t.$evalAsync(function(){t.value=n})}),t.$on("IdleTimeout",function(){t.$evalAsync(function(){t.value=0})})}}}]),t.module("ngIdle.title",[]).provider("Title",function(){function e(e,t,n){return new Array(t-String(e).length+1).join(n||"0")+e}var n={enabled:!0},r=this.enabled=function(e){n.enabled=!0===e};this.$get=["$document","$interpolate",function(i,o){var a={original:null,idle:"{{minutes}}:{{seconds}} until your session times out!",timedout:"Your session has expired."};return{setEnabled:r,isEnabled:function(){return n.enabled},original:function(e){if(t.isUndefined(e))return a.original;a.original=e},store:function(e){!e&&a.original||(a.original=this.value())},value:function(e){if(t.isUndefined(e))return i[0].title;i[0].title=e},idleMessage:function(e){if(t.isUndefined(e))return a.idle;a.idle=e},timedOutMessage:function(e){if(t.isUndefined(e))return a.timedout;a.timedout=e},setAsIdle:function(t){this.store();var n={totalSeconds:t};n.minutes=Math.floor(t/60),n.seconds=e(t-60*n.minutes,2),this.value(o(this.idleMessage())(n))},setAsTimedOut:function(){this.store(),this.value(this.timedOutMessage())},restore:function(){this.original()&&this.value(this.original())}}}]}).directive("title",["Title",function(e){return{restrict:"E",link:function(t,n,r){e.isEnabled()&&!r.idleDisabled&&(e.store(!0),t.$on("IdleStart",function(){e.original(n[0].innerText)}),t.$on("IdleWarn",function(t,n){e.setAsIdle(n)}),t.$on("IdleEnd",function(){e.restore()}),t.$on("IdleTimeout",function(){e.setAsTimedOut()}))}}}]),t.module("ngIdle.localStorage",[]).service("IdleStorageAccessor",["$window",function(e){return{get:function(){return e.localStorage}}}]).service("IdleLocalStorage",["IdleStorageAccessor",function(e){function r(){var e={};this.setItem=function(t,n){e[t]=n},this.getItem=function(t){return void 0!==e[t]?e[t]:null},this.removeItem=function(t){e[t]=n}}var i=function(){try{var t=e.get();return t.setItem("ngIdleStorage",""),t.removeItem("ngIdleStorage"),t}catch(e){return new r}}();return{set:function(e,n){i.setItem("ngIdle."+e,t.toJson(n))},get:function(e){return t.fromJson(i.getItem("ngIdle."+e))},remove:function(e){i.removeItem("ngIdle."+e)},_wrapped:function(){return i}}}])}(window,window.angular),function(e,t){t.module("nemLogging",[]),t.module("nemLogging").provider("nemDebug",function(){return this.$get=function(){return null},this.debug=null,this});var n=function(e,t){return function(){return e.apply(t,arguments)}},r=[].slice;t.module("nemLogging").provider("nemSimpleLogger",["nemDebugProvider",function(e){var t,i,o,a,s,l,u,c,d,h,f,p;for(f=e.debug,o={},a=["debug","info","warn","error","log"],t={},d=c=0,h=a.length;c<h;d=++c)p=a[d],t[p]=d;return l=function(e,t,n){if(e>=t)return n()},s=function(e){var t,n,r;if(t=!1,!e)return t;for(n=0,r=a.length;n<r&&(p=a[n],t=null!=e[p]&&"function"==typeof e[p]);n++);return t},u=function(e,t){var n,r,i,s;for(null==o[e]&&(o[e]=f(e)),n=o[e],s={},r=0,i=a.length;r<i;r++)p=a[r],s[p]="debug"===p?n:t[p];return s},i=function(){function e(e){var i,o,u,c,d;if(this.$log=e,this.spawn=n(this.spawn,this),!this.$log)throw"internalLogger undefined";if(!s(this.$log))throw"@$log is invalid";for(this.doLog=!0,d={},i=function(e){return function(n){return d[n]=function(){var i;if(i=1<=arguments.length?r.call(arguments,0):[],e.doLog)return l(t[n],e.currentLevel,function(){var t;return(t=e.$log)[n].apply(t,i)})},e[n]=d[n]}}(this),o=0,u=a.length;o<u;o++)c=a[o],i(c);this.LEVELS=t,this.currentLevel=t.error}return e.prototype.spawn=function(t){if("string"==typeof t){if(!s(this.$log))throw"@$log is invalid";if(!f)throw"nemDebug is undefined this is probably the light version of this library sep debug logggers is not supported!";return u(t,this.$log)}return new e(t||this.$log)},e}(),this.decorator=["$log",function(e){var n;return n=new i(e),n.currentLevel=t.debug,n}],this.$get=["$log",function(e){return new i(e)}],this}])}(window,angular),function(e){"use strict";e.module("ui-leaflet",["nemLogging"]).directive("leaflet",["$q","leafletData","leafletMapDefaults","leafletHelpers","leafletMapEvents",function(e,t,n,r,i){return{restrict:"EA",replace:!0,scope:{center:"=",lfCenter:"=",defaults:"=",maxbounds:"=",bounds:"=",markers:"=",legend:"=",geojson:"=",paths:"=",tiles:"=",layers:"=",controls:"=",decorations:"=",eventBroadcast:"=",watchOptions:"=",id:"@"},transclude:!0,template:'<div class="angular-leaflet-map"><div ng-transclude></div></div>',controller:["$scope",function(t){this._leafletMap=e.defer(),this.getMap=function(){return this._leafletMap.promise},this.getLeafletScope=function(){return t}}],link:function(e,o,a,s){function l(){isNaN(a.width)?o.css("width",a.width):o.css("width",a.width+"px")}function u(){isNaN(a.height)?o.css("height",a.height):o.css("height",a.height+"px")}var c=r.isDefined,d=n.setDefaults(e.defaults,a.id),h=i.getAvailableMapEvents(),f=i.addEvents;e.mapId=a.id,t.setDirectiveControls({},a.id);var p=new L.Map(o[0],n.getMapCreationDefaults(a.id));if(s._leafletMap.resolve(p),c(a.width)&&(l(),e.$watch(function(){return o[0].getAttribute("width")},function(){l(),p.invalidateSize()})),c(a.height)&&(u(),e.$watch(function(){return o[0].getAttribute("height")},function(){u(),p.invalidateSize()})),c(a.center)||c(a.lfCenter)||p.setView([d.center.lat,d.center.lng],d.center.zoom),!c(a.tiles)&&!c(a.layers)){var m=L.tileLayer(d.tileLayer,d.tileLayerOptions);m.addTo(p),t.setTiles(m,a.id)}if(c(p.zoomControl)&&c(d.zoomControlPosition)&&p.zoomControl.setPosition(d.zoomControlPosition),c(p.zoomControl)&&!1===d.zoomControl&&p.zoomControl.removeFrom(p),c(p.zoomsliderControl)&&c(d.zoomsliderControl)&&!1===d.zoomsliderControl&&p.zoomsliderControl.removeFrom(p),!c(a.eventBroadcast)){f(p,a.id,h,"eventName",e,"broadcast")}p.whenReady(function(){t.setMap(p,a.id)}),e.$on("$destroy",function(){n.reset(),p.remove(),t.unresolveMap(a.id)}),e.$on("invalidateSize",function(){p.invalidateSize()})}}}]),function(){e.module("ui-leaflet").factory("eventManager",[function(){var e=function(){this.listeners={}};return e.prototype={addEventListener:function(e,t,n){for(var r=[],i=arguments.length,o=0;o<i;o++)r.push(arguments[o]);r=r.length>3?r.splice(3,r.length-1):[],void 0!==this.listeners[e]?this.listeners[e].push({scope:n,callback:t,args:r}):this.listeners[e]=[{scope:n,callback:t,args:r}]},removeEventListener:function(e,t,n){if(void 0!==this.listeners[e]){for(var r=this.listeners[e].length,i=[],o=0;o<r;o++){var a=this.listeners[e][o];a.scope===n&&a.callback===t||i.push(a)}this.listeners[e]=i}},hasEventListener:function(e,t,n){if(void 0!==this.listeners[e]){var r=this.listeners[e].length;if(void 0===t&&void 0===n)return r>0;for(var i=0;i<r;i++){var o=this.listeners[e][i];if((!n||o.scope===n)&&o.callback===t)return!0}}return!1},dispatch:function(e,t){for(var n=0,r={type:e,target:t},i=[],o=arguments.length,a=0;a<o;a++)i.push(arguments[a]);if(i=i.length>2?i.splice(2,i.length-1):[],i=[r].concat(i),void 0!==this.listeners[e])for(var s=this.listeners[e].length,l=0;l<s;l++){var u=this.listeners[e][l];if(u&&u.callback){var c=i.concat(u.args);u.callback.apply(u.scope,c),n+=1}}},getEvents:function(){var e="";for(var t in this.listeners)for(var n=this.listeners[t].length,r=0;r<n;r++){var i=this.listeners[t][r];e+=i.scope&&i.scope.className?i.scope.className:"anonymous",e+=" listen for '"+t+"'\n"}return e}},e}]).service("eventManager",["EventManager",function(e){return new e}])}(),e.module("ui-leaflet").factory("leafletBoundsHelpers",["leafletLogger","leafletHelpers",function(t,n){function r(t){return e.isDefined(t)&&e.isDefined(t.southWest)&&e.isDefined(t.northEast)&&e.isNumber(t.southWest.lat)&&e.isNumber(t.southWest.lng)&&e.isNumber(t.northEast.lat)&&e.isNumber(t.northEast.lng)}var i=n.isArray,o=n.isNumber,a=n.isFunction,s=n.isDefined,l=t;return{createLeafletBounds:function(e){if(r(e))return L.latLngBounds([e.southWest.lat,e.southWest.lng],[e.northEast.lat,e.northEast.lng])},isValidBounds:r,createBoundsFromArray:function(e){return i(e)&&2===e.length&&i(e[0])&&i(e[1])&&2===e[0].length&&2===e[1].length&&o(e[0][0])&&o(e[0][1])&&o(e[1][0])&&o(e[1][1])?{northEast:{lat:e[0][0],lng:e[0][1]},southWest:{lat:e[1][0],lng:e[1][1]}}:void l.error("[AngularJS - Leaflet] The bounds array is not valid.")},createBoundsFromLeaflet:function(e){if(!(s(e)&&a(e.getNorthEast)&&a(e.getSouthWest)))return void l.error("[AngularJS - Leaflet] The leaflet bounds is not valid object.");var t=e.getNorthEast(),n=e.getSouthWest();return{northEast:{lat:t.lat,lng:t.lng},southWest:{lat:n.lat,lng:n.lng}}}}}]),e.module("ui-leaflet").factory("leafletControlHelpers",["$rootScope","leafletLogger","leafletHelpers","leafletLayerHelpers","leafletMapDefaults",function(t,n,r,i,o){var a=r.isDefined,s=r.isObject,l=i.createLayer,u={},c=r.errorHeader+" [Controls] ",d=n,h=function(e,t,n){if(!o.getDefaults(n).controls.layers.visible)return!1;var r=!1;return s(e)&&Object.keys(e).forEach(function(t){var n=e[t];a(n.layerOptions)&&!1===n.layerOptions.showOnSelector||(r=!0)}),s(t)&&Object.keys(t).forEach(function(e){var n=t[e];a(n.layerParams)&&!1===n.layerParams.showOnSelector||(r=!0)}),r},f=function(t){var n=o.getDefaults(t),r={collapsed:n.controls.layers.collapsed,position:n.controls.layers.position,autoZIndex:!1};e.extend(r,n.controls.layers.options);return n.controls.layers&&a(n.controls.layers.control)?n.controls.layers.control.apply(this,[[],[],r]):new L.control.layers([],[],r)},p={draw:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Draw)||(d.error(c+" Draw plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Draw(e)}},scale:{isPluginLoaded:function(){return!0},checkValidParams:function(){return!0},createControl:function(e){return new L.control.scale(e)}},fullscreen:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Fullscreen)||(d.error(c+" Fullscreen plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Fullscreen(e)}},search:{isPluginLoaded:function(){return!!e.isDefined(L.Control.Search)||(d.error(c+" Search plugin is not loaded."),!1)},checkValidParams:function(){return!0},createControl:function(e){return new L.Control.Search(e)}},custom:{},minimap:{isPluginLoaded:function(){return!!e.isDefined(L.Control.MiniMap)||(d.error(c+" Minimap plugin is not loaded."),!1)},checkValidParams:function(e){return!!a(e.layer)||(d.warn(c+' minimap "layer" option should be defined.'),!1)},createControl:function(e){var t=l(e.layer);return a(t)?new L.Control.MiniMap(t,e):void d.warn(c+' minimap control "layer" could not be created.')}}};return{layersControlMustBeVisible:h,isValidControlType:function(e){return-1!==Object.keys(p).indexOf(e)},createControl:function(e,t){if(p[e].checkValidParams(t))return p[e].createControl(t)},updateLayersControl:function(e,t,n,r,i,o){var s,l=u[t],c=h(r,i,t);if(a(l)&&n){for(s in o.baselayers)l.removeLayer(o.baselayers[s]);for(s in o.overlays)l.removeLayer(o.overlays[s]);e.removeControl(l),delete u[t]}if(c){l=f(t),u[t]=l;for(s in r){!(a(r[s].layerOptions)&&!1===r[s].layerOptions.showOnSelector)&&a(o.baselayers[s])&&l.addBaseLayer(o.baselayers[s],r[s].name)}for(s in i){!(a(i[s].layerParams)&&!1===i[s].layerParams.showOnSelector)&&a(o.overlays[s])&&l.addOverlay(o.overlays[s],i[s].name)}e.addControl(l)}return c},destroyMapLayersControl:function(e){delete u[e]}}}]),e.module("ui-leaflet").service("leafletData",["leafletLogger","$q","leafletHelpers",function(e,t,n){var r=n.getDefer,i=n.getUnresolvedDefer,o=n.setResolvedDefer,a={},s=this,l=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},u=["map","tiles","layers","paths","markers","geoJSON","UTFGrid","decorations","directiveControls"];u.forEach(function(e){a[e]={}}),this.unresolveMap=function(e){var t=n.obtainEffectiveMapId(a.map,e);u.forEach(function(e){a[e][t]=void 0})},u.forEach(function(e){var t=l(e);s["set"+t]=function(t,n){i(a[e],n).resolve(t),o(a[e],n)},s["get"+t]=function(t){return r(a[e],t).promise}})}]),e.module("ui-leaflet").service("leafletDirectiveControlsHelpers",["leafletLogger","leafletData","leafletHelpers",function(t,n,r){var i=r.isDefined,o=r.isString,a=r.isObject,s=r.errorHeader,l=t,u=s+"[leafletDirectiveControlsHelpers";return{extend:function(t,r,s,c){var d=u+".extend] ",h={};if(!i(r))return void l.error(d+"thingToAddName cannot be undefined");if(o(r)&&i(s)&&i(c))h[r]={create:s,clean:c};else{if(!a(r)||i(s)||i(c))return void l.error(d+"incorrect arguments");h=r}n.getDirectiveControls().then(function(r){e.extend(r,h),n.setDirectiveControls(r,t)})}}}]),e.module("ui-leaflet").service("leafletGeoJsonHelpers",["leafletHelpers","leafletIterators",function(t,n){var r=t,i=n,o=function(e,t){return this.lat=e,this.lng=t,this},a=function(e){return Array.isArray(e)&&2===e.length?e[1]:r.isDefined(e.type)&&"Point"===e.type?+e.coordinates[1]:+e.lat},s=function(e){return Array.isArray(e)&&2===e.length?e[0]:r.isDefined(e.type)&&"Point"===e.type?+e.coordinates[0]:+e.lng},l=function(e){if(r.isUndefined(e))return!1;if(r.isArray(e)){if(2===e.length&&r.isNumber(e[0])&&r.isNumber(e[1]))return!0}else if(r.isDefined(e.type)&&"Point"===e.type&&r.isArray(e.coordinates)&&2===e.coordinates.length&&r.isNumber(e.coordinates[0])&&r.isNumber(e.coordinates[1]))return!0;return i.all(["lat","lng"],function(t){return r.isDefined(e[t])&&r.isNumber(e[t])})};return{getLat:a,getLng:s,validateCoords:l,getCoords:function(t){if(t&&l(t)){var n=null;if(Array.isArray(t)&&2===t.length)n=new o(t[1],t[0]);else{if(!r.isDefined(t.type)||"Point"!==t.type)return t;n=new o(t.coordinates[1],t.coordinates[0])}return e.extend(t,n)}}}}]),e.module("ui-leaflet").service("leafletHelpers",["$q","$log","$timeout",function(t,n,r){function i(t,r){var i,o;if(e.isDefined(r))i=r;else if(0===Object.keys(t).length)i="main";else if(Object.keys(t).length>=1)for(o in t)t.hasOwnProperty(o)&&(i=o);else n.error(a+"- You have more than 1 map on the DOM, you must provide the map ID to the leafletData.getXXX call");return i}function o(n,r){var o,a=i(n,r);return e.isDefined(n[a])&&!0!==n[a].resolvedDefer?o=n[a].defer:(o=t.defer(),n[a]={defer:o,resolvedDefer:!1}),o}var a="[ui-leaflet] ",s=e.copy,l=s,u=function(t,n){var r;if(t&&e.isObject(t))return null!==n&&e.isString(n)?(r=t,n.split(".").forEach(function(e){r&&(r=r[e])}),r):n},c=function(e){return e.split(".").reduce(function(e,t){return e+'["'+t+'"]'})},d=function(e){return e.reduce(function(e,t){return e+"."+t})},h=function(t){return e.isDefined(t)&&null!==t},f=function(e){return!h(e)},p=/([\:\-\_]+(.))/g,m=/^moz([A-Z])/,g=/^((?:x|data)[\:\-_])/i,v=function(e){return e.replace(p,function(e,t,n,r){return r?n.toUpperCase():n}).replace(m,"Moz$1")},_=function(e){return v(e.replace(g,""))};return{watchTrapDelayMilliSec:10,modelChangeInDirective:function(e,t,n){if(!e)throw new Error(a+"trapObj is undefined");if(!t)throw new Error(a+"trapField is undefined");e[t]=!0;var i=n();return r(function(){e[t]=!1},10),i},camelCase:v,directiveNormalize:_,copy:s,clone:l,errorHeader:a,getObjectValue:u,getObjectArrayPath:c,getObjectDotPath:d,defaultTo:function(e,t){return h(e)?e:t},isTruthy:function(e){return"true"===e||!0===e},isEmpty:function(e){return 0===Object.keys(e).length},isUndefinedOrEmpty:function(t){return e.isUndefined(t)||null===t||0===Object.keys(t).length},isDefined:h,isUndefined:f,isNumber:e.isNumber,isString:e.isString,isArray:e.isArray,isObject:e.isObject,isFunction:e.isFunction,equals:e.equals,isValidCenter:function(t){return e.isDefined(t)&&e.isNumber(t.lat)&&e.isNumber(t.lng)&&e.isNumber(t.zoom)},isValidPoint:function(t){return!!e.isDefined(t)&&(e.isArray(t)?2===t.length&&e.isNumber(t[0])&&e.isNumber(t[1]):e.isNumber(t.lat)&&e.isNumber(t.lng))},isSameCenterOnMap:function(e,t){var n=t.getCenter(),r=t.getZoom();return!(!e.lat||!e.lng||n.lat.toFixed(4)!==e.lat.toFixed(4)||n.lng.toFixed(4)!==e.lng.toFixed(4)||r!==e.zoom)},safeApply:function(e,t){var n=e.$root.$$phase;"$apply"===n||"$digest"===n?e.$eval(t):e.$evalAsync(t)},obtainEffectiveMapId:i,getDefer:function(t,n){var r=i(t,n);return e.isDefined(t[r])&&!1!==t[r].resolvedDefer?t[r].defer:o(t,n)},getUnresolvedDefer:o,setResolvedDefer:function(e,t){e[i(e,t)].resolvedDefer=!0},rangeIsSupported:function(){var e=document.createElement("input");return e.setAttribute("type","range"),"range"===e.type},FullScreenControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.Fullscreen)}},MiniMapControlPlugin:{isLoaded:function(){return e.isDefined(L.Control.MiniMap)}},AwesomeMarkersPlugin:{isLoaded:function(){return e.isDefined(L.AwesomeMarkers)&&e.isDefined(L.AwesomeMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.AwesomeMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},VectorMarkersPlugin:{isLoaded:function(){return e.isDefined(L.VectorMarkers)&&e.isDefined(L.VectorMarkers.Icon)},is:function(e){return!!this.isLoaded()&&e instanceof L.VectorMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},DomMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.DomMarkers)||!e.isDefined(L.DomMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.DomMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},PolylineDecoratorPlugin:{isLoaded:function(){return!!e.isDefined(L.PolylineDecorator)},is:function(e){return!!this.isLoaded()&&e instanceof L.PolylineDecorator},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},MakiMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.MakiMarkers)||!e.isDefined(L.MakiMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.MakiMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},ExtraMarkersPlugin:{isLoaded:function(){return!(!e.isDefined(L.ExtraMarkers)||!e.isDefined(L.ExtraMarkers.Icon))},is:function(e){return!!this.isLoaded()&&e instanceof L.ExtraMarkers.Icon},equal:function(t,n){return!!this.isLoaded()&&!!this.is(t)&&e.equals(t,n)}},LabelPlugin:{isLoaded:function(){return e.isDefined(L.Label)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},MarkerClusterPlugin:{isLoaded:function(){return e.isDefined(L.MarkerClusterGroup)},is:function(e){return!!this.isLoaded()&&e instanceof L.MarkerClusterGroup}},GeoJSONPlugin:{isLoaded:function(){return e.isDefined(L.TileLayer.GeoJSON)},is:function(e){return!!this.isLoaded()&&e instanceof L.TileLayer.GeoJSON}},CartoDB:{isLoaded:function(){return cartodb},is:function(){return!0}},Leaflet:{DivIcon:{is:function(e){return e instanceof L.DivIcon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}},Icon:{is:function(e){return e instanceof L.Icon},equal:function(t,n){return!!this.is(t)&&e.equals(t,n)}}},watchOptions:{type:"watchDeep",individual:{type:"watchDeep"}}}}]),e.module("ui-leaflet").service("leafletIterators",["leafletLogger","leafletHelpers",function(e,t){var n,r=t,i=t.errorHeader+"leafletIterators: ",o=Object.keys,a=r.isFunction,s=r.isObject,l=e,u=Math.pow(2,53)-1,c=function(e){var t=null!==e&&e.length;return r.isNumber(t)&&t>=0&&t<=u},d=function(e){return e},h=function(e){return function(t){return null===t?void 0:t[e]}},f=function(e,t,n){if(void 0===t)return e;switch(null===n?3:n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)}}return function(){return e.apply(t,arguments)}};n=function(e,t){return function(n){var r=arguments.length;if(r<2||null===n)return n;for(var i=1;i<r;i++)for(var o=arguments[i],a=e(o),s=a.length,l=0;l<s;l++){var u=a[l];t&&void 0!==n[u]||(n[u]=o[u])}return n}}(o);var p,m=function(e,t){var n=o(t),r=n.length;if(null===e)return!r;for(var i=Object(e),a=0;a<r;a++){var s=n[a];if(t[s]!==i[s]||!(s in i))return!1}return!0};p=function(e){return e=n({},e),function(t){return m(t,e)}};var g,v=function(e,t,n){return null===e?d:a(e)?f(e,t,n):s(e)?p(e):h(e)},_=null;g=_=function(e,t,n){t=v(t,n);for(var r=!c(e)&&o(e),i=(r||e).length,a=0;a<i;a++){var s=r?r[a]:a;if(!t(e[s],s,e))return!1}return!0};var y=function(e,t,n,o){return!(n||r.isDefined(e)&&r.isDefined(t))||!r.isFunction(t)&&(o=r.defaultTo(t,"cb"),l.error(i+o+" is not a function"),!0)},b=function(e,t,n){if(!y(void 0,n,!0,"internalCb")&&!y(e,t))for(var r in e)e.hasOwnProperty(r)&&n(e[r],r)},w=function(e,t){b(e,t,function(e,n){t(e,n)})};return{each:w,forEach:w,every:g,all:_}}]),e.module("ui-leaflet").factory("leafletLayerHelpers",["$rootScope","$q","leafletLogger","leafletHelpers","leafletIterators",function(t,n,r,i,o){function a(e){return d(e.type)?-1===Object.keys(y).indexOf(e.type)?(v.error("[AngularJS - Leaflet] A layer must have a valid type: "+Object.keys(y)),!1):y[e.type].mustHaveUrl&&!d(e.url)?(v.error("[AngularJS - Leaflet] A base layer must have an url"),!1):y[e.type].mustHaveData&&!p(e.data)?(v.error('[AngularJS - Leaflet] The base layer must have a "data" array attribute'),!1):y[e.type].mustHaveLayer&&!p(e.layer)?(v.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have an layer defined"),!1):y[e.type].mustHaveBounds&&!p(e.bounds)?(v.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have bounds defined"),!1):!(y[e.type].mustHaveKey&&!p(e.key))||(v.error("[AngularJS - Leaflet] The type of layer "+e.type+" must have key defined"),!1):(v.error("[AngularJS - Leaflet] A layer must have a valid type defined."),!1)}function s(e){if(a(e)){if(!d(e.name))return void v.error("[AngularJS - Leaflet] A base layer must have a name");h(e.layerParams)||(e.layerParams={}),h(e.layerOptions)||(e.layerOptions={});for(var t in e.layerParams)e.layerOptions[t]=e.layerParams[t];var n={url:e.url,data:e.data,options:e.layerOptions,layer:e.layer,icon:e.icon,type:e.layerType,bounds:e.bounds,key:e.key,apiKey:e.apiKey,pluginOptions:e.pluginOptions,user:e.user,$parent:e};return y[e.type].createLayer(n)}}function l(e,t){t&&"function"==typeof t.addTo?t.addTo(e):e.addLayer(t)}function u(t,n,r){if(p(r)&&p(r.loadedDefer))if(e.isFunction(r.loadedDefer)){var i=r.loadedDefer();v.debug("Loaded Deferred",i);var o=i.length;if(o>0)for(var a=function(){0===--o&&t.removeLayer(n)},s=0;s<i.length;s++)i[s].promise.then(a);else t.removeLayer(n)}else r.loadedDefer.promise.then(function(){t.removeLayer(n)});else t.removeLayer(n)}var c=i,d=i.isString,h=i.isObject,f=i.isArray,p=i.isDefined,m=i.errorHeader,g=o,v=r,_=function(n){if(!c.UTFGridPlugin.isLoaded())return void v.error("[AngularJS - Leaflet] The UTFGrid plugin is not loaded.");var r=new L.UtfGrid(n.url,n.pluginOptions),i={model:n.$parent};return r.on("mouseover",function(n){e.extend(i,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseover",i)}),r.on("mouseout",function(n){e.extend(i,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMouseout",i)}),r.on("click",function(n){e.extend(i,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridClick",i)}),r.on("mousemove",function(n){e.extend(i,{leafletEvent:n,leafletObject:n.target}),t.$broadcast("leafletDirectiveMap.utfgridMousemove",i)}),r},y={xyz:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer(e.url,e.options)}},geoJSON:{mustHaveUrl:!0,createLayer:function(e){if(c.GeoJSONPlugin.isLoaded())return new L.TileLayer.GeoJSON(e.url,e.pluginOptions,e.options)}},geoJSONShape:{mustHaveUrl:!1,createLayer:function(e){return new L.GeoJSON(e.data,e.options)}},geoJSONAwesomeMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.AwesomeMarkers.icon(e.icon)})}})}},geoJSONVectorMarker:{mustHaveUrl:!1,createLayer:function(e){return new L.geoJson(e.data,{pointToLayer:function(t,n){return L.marker(n,{icon:L.VectorMarkers.icon(e.icon)})}})}},cartodbTiles:{mustHaveKey:!0,createLayer:function(e){var t=p(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return t+="/api/v1/map/"+e.key+"/{z}/{x}/{y}.png",L.tileLayer(t,e.options)}},cartodbUTFGrid:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(e){var t=p(e.url)?e.url+"/"+e.user:"//"+e.user+".cartodb.com";return e.url=t+"/api/v1/map/"+e.key+"/"+e.layer+"/{z}/{x}/{y}.grid.json",_(e)}},cartodbInteractive:{mustHaveKey:!0,mustHaveLayer:!0,createLayer:function(t){var n=p(t.url)?t.url+"/"+t.user:"//"+t.user+".cartodb.com",r=n+"/api/v1/map/"+t.key+"/{z}/{x}/{y}.png",i=L.tileLayer(r,t.options),o=[i],a=function(t,r,i){var o=e.copy(r);o.url=n+"/api/v1/map/"+o.key+"/"+i+"/{z}/{x}/{y}.grid.json",t.push(_(o))};if(f(t.layer))for(var s=0;s<t.layer.length;s++)a(o,t,t.layer[s]);else a(o,t,t.layer);return L.layerGroup(o)}},wms:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wms(e.url,e.options)}},wmts:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.wmts(e.url,e.options)}},group:{mustHaveUrl:!1,createLayer:function(e){var t=[];return g.each(e.options.layers,function(e){t.push(s(e))}),e.options.loadedDefer=function(){var t=[];if(p(e.options.layers))for(var n=0;n<e.options.layers.length;n++){var r=e.options.layers[n].layerOptions.loadedDefer;p(r)&&t.push(r)}return t},L.layerGroup(t)}},featureGroup:{mustHaveUrl:!1,createLayer:function(){return L.featureGroup()}},markercluster:{mustHaveUrl:!1,createLayer:function(e){return c.MarkerClusterPlugin.isLoaded()?new L.MarkerClusterGroup(e.options):void v.warn(m+" The markercluster plugin is not loaded.")}},imageOverlay:{mustHaveUrl:!0,mustHaveBounds:!0,createLayer:function(e){return L.imageOverlay(e.url,e.bounds,e.options)}},iip:{mustHaveUrl:!0,createLayer:function(e){return L.tileLayer.iip(e.url,e.options)}},custom:{createLayer:function(t){if(t.layer instanceof L.Class)return e.copy(t.layer);v.error("[AngularJS - Leaflet] A custom layer must be a leaflet Class")}},cartodb:{mustHaveUrl:!0,createLayer:function(e){return cartodb.createLayer(e.map,e.url)}}};return{createLayer:s,layerTypes:y,safeAddLayer:l,safeRemoveLayer:u,changeOpacityListener:function(e){return function(t){p(t.setOpacity)&&t.setOpacity(e)}}}}]),e.module("ui-leaflet").factory("leafletLegendHelpers",["$http","$q","$log","leafletHelpers",function(e,t,n,r){var i={},o=r.isDefined,a=function t(n){var r=i[n],o=r[0];e(o.c).then(function(e){r.shift(),o.d.resolve(e),r.length>0&&t(n)},function(e){r.shift(),o.d.reject(e),r.length>0&&t(n)})},s=function(e,t,n,r){if(e.innerHTML="",t.error)e.innerHTML+='<div class="info-title alert alert-danger">'+t.error.message+"</div>";else if("arcgis"===n)for(var i=0;i<t.layers.length;i++){var o=t.layers[i];e.innerHTML+='<div class="info-title" data-layerid="'+o.layerId+'">'+o.layerName+"</div>";for(var a=0;a<o.legend.length;a++){var s=o.legend[a];e.innerHTML+='<div class="inline" data-layerid="'+o.layerId+'"><img src="data:'+s.contentType+";base64,"+s.imageData+'" /></div><div class="info-label" data-layerid="'+o.layerId+'">'+s.label+"</div>"}}else"image"===n&&(e.innerHTML='<img src="'+r+'"/>')};return{getOnAddLegend:function(e,t,n,r){return function(){var i=L.DomUtil.create("div",t);return L.Browser.touch?L.DomEvent.on(i,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(i),L.DomEvent.on(i,"mousewheel",L.DomEvent.stopPropagation)),s(i,e,n,r),i}},getOnAddArrayLegend:function(e,t){return function(){for(var n=L.DomUtil.create("div",t),r=0;r<e.colors.length;r++)n.innerHTML+='<div class="outline"><i style="background:'+e.colors[r]+'"></i></div><div class="info-label">'+e.labels[r]+"</div>";return L.Browser.touch?L.DomEvent.on(n,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(n),L.DomEvent.on(n,"mousewheel",L.DomEvent.stopPropagation)),n}},updateLegend:s,addLegendURL:function(e,n){var r=t.defer();return o(i[e])||(i[e]=[]),i[e].push({c:n,d:r}),1===i[e].length&&a(e),r.promise}}}]),e.module("ui-leaflet").factory("leafletMapDefaults",["$q","leafletHelpers",function(t,n){function r(){return{keyboard:!0,dragging:!0,worldCopyJump:!1,doubleClickZoom:!0,scrollWheelZoom:!0,tap:!0,touchZoom:!0,zoomControl:!0,zoomsliderControl:!1,zoomControlPosition:"topleft",attributionControl:!0,controls:{layers:{visible:!0,position:"topright",collapsed:!0}},nominatim:{server:" http://nominatim.openstreetmap.org/search"},crs:L.CRS.EPSG3857,tileLayer:"//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",tileLayerOptions:{attribution:'&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'},path:{weight:10,opacity:1,color:"#0000ff"},center:{lat:0,lng:0,zoom:1},trackResize:!0}}var i=n.isDefined,o=n.isObject,a=n.obtainEffectiveMapId,s={};return{reset:function(){s={}},getDefaults:function(e){var t=a(s,e);return s[t]},getMapCreationDefaults:function(e){var t=a(s,e),n=s[t],r={maxZoom:n.maxZoom,keyboard:n.keyboard,dragging:n.dragging,zoomControl:n.zoomControl,doubleClickZoom:n.doubleClickZoom,scrollWheelZoom:n.scrollWheelZoom,tap:n.tap,touchZoom:n.touchZoom,attributionControl:n.attributionControl,worldCopyJump:n.worldCopyJump,crs:n.crs,trackResize:n.trackResize};if(i(n.minZoom)&&(r.minZoom=n.minZoom),i(n.zoomAnimation)&&(r.zoomAnimation=n.zoomAnimation),i(n.fadeAnimation)&&(r.fadeAnimation=n.fadeAnimation),i(n.markerZoomAnimation)&&(r.markerZoomAnimation=n.markerZoomAnimation),n.map)for(var o in n.map)r[o]=n.map[o];return r},setDefaults:function(t,n){var l=r();i(t)&&(l.doubleClickZoom=i(t.doubleClickZoom)?t.doubleClickZoom:l.doubleClickZoom,l.scrollWheelZoom=i(t.scrollWheelZoom)?t.scrollWheelZoom:l.doubleClickZoom,l.tap=i(t.tap)?t.tap:l.tap,l.touchZoom=i(t.touchZoom)?t.touchZoom:l.doubleClickZoom,l.zoomControl=i(t.zoomControl)?t.zoomControl:l.zoomControl,l.zoomsliderControl=i(t.zoomsliderControl)?t.zoomsliderControl:l.zoomsliderControl,l.attributionControl=i(t.attributionControl)?t.attributionControl:l.attributionControl,l.tileLayer=i(t.tileLayer)?t.tileLayer:l.tileLayer,l.zoomControlPosition=i(t.zoomControlPosition)?t.zoomControlPosition:l.zoomControlPosition,l.keyboard=i(t.keyboard)?t.keyboard:l.keyboard,l.dragging=i(t.dragging)?t.dragging:l.dragging,l.trackResize=i(t.trackResize)?t.trackResize:l.trackResize,i(t.controls)&&e.extend(l.controls,t.controls),o(t.crs)?l.crs=t.crs:i(L.CRS[t.crs])&&(l.crs=L.CRS[t.crs]),i(t.center)&&e.copy(t.center,l.center),i(t.tileLayerOptions)&&e.copy(t.tileLayerOptions,l.tileLayerOptions),i(t.maxZoom)&&(l.maxZoom=t.maxZoom),i(t.minZoom)&&(l.minZoom=t.minZoom),i(t.zoomAnimation)&&(l.zoomAnimation=t.zoomAnimation),i(t.fadeAnimation)&&(l.fadeAnimation=t.fadeAnimation),
-i(t.markerZoomAnimation)&&(l.markerZoomAnimation=t.markerZoomAnimation),i(t.worldCopyJump)&&(l.worldCopyJump=t.worldCopyJump),i(t.map)&&(l.map=t.map),i(t.path)&&(l.path=t.path));var u=a(s,n);return s[u]=l,l}}}]),e.module("ui-leaflet").service("leafletMarkersHelpers",["$rootScope","$timeout","leafletHelpers","leafletLogger","$compile","leafletGeoJsonHelpers","leafletWatchHelpers",function(t,n,r,i,o,a,s){var l=r.isDefined,u=r.defaultTo,c=r.MarkerClusterPlugin,d=r.AwesomeMarkersPlugin,h=r.VectorMarkersPlugin,f=r.MakiMarkersPlugin,p=r.ExtraMarkersPlugin,m=r.DomMarkersPlugin,g=r.safeApply,v=r,_=r.isString,y=r.isNumber,b=r.isObject,w={},M=a,k=r.errorHeader,x=s.maybeWatch,S=i,T=function(e){var t="";return["_icon","_latlng","_leaflet_id","_map","_shadow"].forEach(function(n){t+=n+": "+u(e[n],"undefined")+" \n"}),"[leafletMarker] : \n"+t},$=function(e,t){(t?console:S).debug(T(e))},D=function(t){return e.element(w[t]._map._container).parent().length>0},C=function(n){if(l(n)&&l(n.type)&&"awesomeMarker"===n.type)return d.isLoaded()||S.error(k+" The AwesomeMarkers Plugin is not loaded."),new L.AwesomeMarkers.icon(n);if(l(n)&&l(n.type)&&"vectorMarker"===n.type)return h.isLoaded()||S.error(k+" The VectorMarkers Plugin is not loaded."),new L.VectorMarkers.icon(n);if(l(n)&&l(n.type)&&"makiMarker"===n.type)return f.isLoaded()||S.error(k+"The MakiMarkers Plugin is not loaded."),new L.MakiMarkers.icon(n);if(l(n)&&l(n.type)&&"extraMarker"===n.type)return p.isLoaded()||S.error(k+"The ExtraMarkers Plugin is not loaded."),new L.ExtraMarkers.icon(n);if(l(n)&&l(n.type)&&"div"===n.type)return new L.divIcon(n);if(l(n)&&l(n.type)&&"dom"===n.type){m.isLoaded()||S.error(k+"The DomMarkers Plugin is not loaded.");var r=e.isFunction(n.getMarkerScope)?n.getMarkerScope().$new():t,i=o(n.template)(r),a=e.copy(n);return a.ngElement=i,a.element=i[0],e.isFunction(n.getMarkerScope)&&(a.scope=r),new L.DomMarkers.icon(a)}if(l(n)&&l(n.type)&&"icon"===n.type)return n.icon;return l(n)&&l(n.iconUrl)?new L.Icon(n):new L.Icon.Default({iconUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAGmklEQVRYw7VXeUyTZxjvNnfELFuyIzOabermMZEeQC/OclkO49CpOHXOLJl/CAURuYbQi3KLgEhbrhZ1aDwmaoGqKII6odATmH/scDFbdC7LvFqOCc+e95s2VG50X/LLm/f4/Z7neY/ne18aANCmAr5E/xZf1uDOkTcGcWR6hl9247tT5U7Y6SNvWsKT63P58qbfeLJG8M5qcgTknrvvrdDbsT7Ml+tv82X6vVxJE33aRmgSyYtcWVMqX97Yv2JvW39UhRE2HuyBL+t+gK1116ly06EeWFNlAmHxlQE0OMiV6mQCScusKRlhS3QLeVJdl1+23h5dY4FNB3thrbYboqptEFlphTC1hSpJnbRvxP4NWgsE5Jyz86QNNi/5qSUTGuFk1gu54tN9wuK2wc3o+Wc13RCmsoBwEqzGcZsxsvCSy/9wJKf7UWf1mEY8JWfewc67UUoDbDjQC+FqK4QqLVMGGR9d2wurKzqBk3nqIT/9zLxRRjgZ9bqQgub+DdoeCC03Q8j+0QhFhBHR/eP3U/zCln7Uu+hihJ1+bBNffLIvmkyP0gpBZWYXhKussK6mBz5HT6M1Nqpcp+mBCPXosYQfrekGvrjewd59/GvKCE7TbK/04/ZV5QZYVWmDwH1mF3xa2Q3ra3DBC5vBT1oP7PTj4C0+CcL8c7C2CtejqhuCnuIQHaKHzvcRfZpnylFfXsYJx3pNLwhKzRAwAhEqG0SpusBHfAKkxw3w4627MPhoCH798z7s0ZnBJ/MEJbZSbXPhER2ih7p2ok/zSj2cEJDd4CAe+5WYnBCgR2uruyEw6zRoW6/DWJ/OeAP8pd/BGtzOZKpG8oke0SX6GMmRk6GFlyAc59K32OTEinILRJRchah8HQwND8N435Z9Z0FY1EqtxUg+0SO6RJ/mmXz4VuS+DpxXC3gXmZwIL7dBSH4zKE50wESf8qwVgrP1EIlTO5JP9Igu0aexdh28F1lmAEGJGfh7jE6ElyM5Rw/FDcYJjWhbeiBYoYNIpc2FT/SILivp0F1ipDWk4BIEo2VuodEJUifhbiltnNBIXPUFCMpthtAyqws/BPlEF/VbaIxErdxPphsU7rcCp8DohC+GvBIPJS/tW2jtvTmmAeuNO8BNOYQeG8G/2OzCJ3q+soYB5i6NhMaKr17FSal7GIHheuV3uSCY8qYVuEm1cOzqdWr7ku/R0BDoTT+DT+ohCM6/CCvKLKO4RI+dXPeAuaMqksaKrZ7L3FE5FIFbkIceeOZ2OcHO6wIhTkNo0ffgjRGxEqogXHYUPHfWAC/lADpwGcLRY3aeK4/oRGCKYcZXPVoeX/kelVYY8dUGf8V5EBRbgJXT5QIPhP9ePJi428JKOiEYhYXFBqou2Guh+p/mEB1/RfMw6rY7cxcjTrneI1FrDyuzUSRm9miwEJx8E/gUmqlyvHGkneiwErR21F3tNOK5Tf0yXaT+O7DgCvALTUBXdM4YhC/IawPU+2PduqMvuaR6eoxSwUk75ggqsYJ7VicsnwGIkZBSXKOUww73WGXyqP+J2/b9c+gi1YAg/xpwck3gJuucNrh5JvDPvQr0WFXf0piyt8f8/WI0hV4pRxxkQZdJDfDJNOAmM0Ag8jyT6hz0WGXWuP94Yh2jcfjmXAGvHCMslRimDHYuHuDsy2QtHuIavznhbYURq5R57KpzBBRZKPJi8eQg48h4j8SDdowifdIrEVdU+gbO6QNvRRt4ZBthUaZhUnjlYObNagV3keoeru3rU7rcuceqU1mJBxy+BWZYlNEBH+0eH4vRiB+OYybU2hnblYlTvkHinM4m54YnxSyaZYSF6R3jwgP7udKLGIX6r/lbNa9N6y5MFynjWDtrHd75ZvTYAPO/6RgF0k76mQla3FGq7dO+cH8sKn0Vo7nDllwAhqwLPkxrHwWmHJOo+AKJ4rab5OgrM7rVu8eWb2Pu0Dh4eDgXoOfvp7Y7QeqknRmvcTBEyq9m/HQQSCSz6LHq3z0yzsNySRfMS253wl2KyRDbcZPcfJKjZmSEOjcxyi+Y8dUOtsIEH6R2wNykdqrkYJ0RV92H0W58pkfQk7cKevsLK10Py8SdMGfXNXATY+pPbyJR/ET6n9nIfztNtZYRV9XniQu9IA2vOVgy4ir7GCLVmmd+zjkH0eAF9Po6K61pmCXHxU5rHMYd1ftc3owjwRSVRzLjKvqZEty6cRUD7jGqiOdu5HG6MdHjNcNYGqfDm5YRzLBBCCDl/2bk8a8gdbqcfwECu62Fg/HrggAAAABJRU5ErkJggg==",shadowUrl:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAC5ElEQVRYw+2YW4/TMBCF45S0S1luXZCABy5CgLQgwf//S4BYBLTdJLax0fFqmB07nnQfEGqkIydpVH85M+NLjPe++dcPc4Q8Qh4hj5D/AaQJx6H/4TMwB0PeBNwU7EGQAmAtsNfAzoZkgIa0ZgLMa4Aj6CxIAsjhjOCoL5z7Glg1JAOkaicgvQBXuncwJAWjksLtBTWZe04CnYRktUGdilALppZBOgHGZcBzL6OClABvMSVIzyBjazOgrvACf1ydC5mguqAVg6RhdkSWQFj2uxfaq/BrIZOLEWgZdALIDvcMcZLD8ZbLC9de4yR1sYMi4G20S4Q/PWeJYxTOZn5zJXANZHIxAd4JWhPIloTJZhzMQduM89WQ3MUVAE/RnhAXpTycqys3NZALOBbB7kFrgLesQl2h45Fcj8L1tTSohUwuxhy8H/Qg6K7gIs+3kkaigQCOcyEXCHN07wyQazhrmIulvKMQAwMcmLNqyCVyMAI+BuxSMeTk3OPikLY2J1uE+VHQk6ANrhds+tNARqBeaGc72cK550FP4WhXmFmcMGhTwAR1ifOe3EvPqIegFmF+C8gVy0OfAaWQPMR7gF1OQKqGoBjq90HPMP01BUjPOqGFksC4emE48tWQAH0YmvOgF3DST6xieJgHAWxPAHMuNhrImIdvoNOKNWIOcE+UXE0pYAnkX6uhWsgVXDxHdTfCmrEEmMB2zMFimLVOtiiajxiGWrbU52EeCdyOwPEQD8LqyPH9Ti2kgYMf4OhSKB7qYILbBv3CuVTJ11Y80oaseiMWOONc/Y7kJYe0xL2f0BaiFTxknHO5HaMGMublKwxFGzYdWsBF174H/QDknhTHmHHN39iWFnkZx8lPyM8WHfYELmlLKtgWNmFNzQcC1b47gJ4hL19i7o65dhH0Negbca8vONZoP7doIeOC9zXm8RjuL0Gf4d4OYaU5ljo3GYiqzrWQHfJxA6ALhDpVKv9qYeZA8eM3EhfPSCmpuD0AAAAASUVORK5CYII=",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]})},E=function(e){l(w[e])&&delete w[e]},A=function(){w={}},P=function(){for(var e in w)D(e)||E(e)},Y=function(e){e.options.icon.options.ngElement&&e.options.icon.options.ngElement.remove(),e.options.icon.options.scope&&e.options.icon.options.scope.$destroy()},O=function(e,t,n){if(e.closePopup(),e.options.icon&&e.options.icon.options&&"dom"===e.options.icon.options.type&&Y(e),l(n)&&l(n.overlays))for(var r in n.overlays)if((n.overlays[r]instanceof L.LayerGroup||n.overlays[r]instanceof L.FeatureGroup)&&n.overlays[r].hasLayer(e))return void n.overlays[r].removeLayer(e);if(l(w))for(var i in w)w[i].hasLayer(e)&&w[i].removeLayer(e);t.hasLayer(e)&&t.removeLayer(e)},I=function(e,t){var n=e._popup._container.offsetHeight,r=new L.Point(e._popup._containerLeft,-n-e._popup._containerBottom);null!==t.layerPointToContainerPoint(r)&&e._popup._adjustPan()},j=function(e,t){o(e._popup._contentNode)(t)},H=function e(t,r,i){(t._popup._contentNode.innerText||t._popup._contentNode.textContent).length<1&&n(function(){e(t,r,i)});var o=t._popup._contentNode.offsetWidth;return t._popup._updateLayout(),t._popup._updatePosition(),t._popup.options.autoPan&&I(t,i),o},N=function(n,r,i){var o=e.isFunction(r.getMessageScope)?r.getMessageScope():t;if(!l(r.compileMessage)||r.compileMessage){if(!l(n._popup)||!l(n._popup._contentNode))return S.error(k+"Popup is invalid or does not have any content."),!1;j(n,o),H(n,r,i)}},B=function(n,r){var i=e.isFunction(r.getMessageScope)?r.getMessageScope():t,a=e.isFunction(r.getLabelScope)?r.getLabelScope():i,s=!l(r.compileMessage)||r.compileMessage;v.LabelPlugin.isLoaded()&&l(r.label)&&(l(r.label.options)&&!0===r.label.options.noHide&&n.showLabel(),s&&l(n.label)&&o(n.label._container)(a))},R=function(t,n,r,i,o,a,s){if(l(n)){if(!M.validateCoords(t))return S.warn("There are problems with lat-lng data, please verify your marker model"),void O(r,s,a);var u=t===n;if(l(t.iconAngle)&&n.iconAngle!==t.iconAngle&&r.setIconAngle(t.iconAngle),_(t.layer)||_(n.layer)&&(l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(r)&&(a.overlays[n.layer].removeLayer(r),r.closePopup()),s.hasLayer(r)||s.addLayer(r)),(y(t.opacity)||y(parseFloat(t.opacity)))&&t.opacity!==n.opacity&&r.setOpacity(t.opacity),_(t.layer)&&n.layer!==t.layer){if(_(n.layer)&&l(a.overlays[n.layer])&&a.overlays[n.layer].hasLayer(r)&&a.overlays[n.layer].removeLayer(r),r.closePopup(),s.hasLayer(r)&&s.removeLayer(r),!l(a.overlays[t.layer]))return void S.error(k+"You must use a name of an existing layer");var c=a.overlays[t.layer];if(!(c instanceof L.LayerGroup||c instanceof L.FeatureGroup))return void S.error(k+'A marker can only be added to a layer of type "group" or "featureGroup"');c.addLayer(r),s.hasLayer(r)&&!0===t.focus&&r.openPopup()}if(!0!==t.draggable&&!0===n.draggable&&l(r.dragging)&&r.dragging.disable(),!0===t.draggable&&!0!==n.draggable&&(r.dragging?r.dragging.enable():L.Handler.MarkerDrag&&(r.dragging=new L.Handler.MarkerDrag(r),r.options.draggable=!0,r.dragging.enable())),b(t.icon)||b(n.icon)&&("dom"===n.icon.type&&Y(r),r.setIcon(C()),r.closePopup(),r.unbindPopup(),_(t.message)&&r.bindPopup(t.message,t.popupOptions)),b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)){var d=!1;r.dragging&&(d=r.dragging.enabled()),"dom"===n.icon.type&&Y(r),r.setIcon(C(t.icon)),d&&r.dragging.enable(),r.closePopup(),r.unbindPopup(),_(t.message)&&(r.bindPopup(t.message,t.popupOptions),s.hasLayer(r)&&!0===t.focus&&r.openPopup())}!_(t.message)&&_(n.message)&&(r.closePopup(),r.unbindPopup()),v.LabelPlugin.isLoaded()&&(l(t.label)&&l(t.label.message)?"label"in n&&"message"in n.label&&!e.equals(t.label.message,n.label.message)?r.updateLabelContent(t.label.message):!e.isFunction(r.getLabel)||e.isFunction(r.getLabel)&&!l(r.getLabel())?(r.bindLabel(t.label.message,t.label.options),B(r,t)):B(r,t):"label"in t&&!("message"in t.label)||e.isFunction(r.unbindLabel)&&r.unbindLabel()),_(t.message)&&!_(n.message)&&r.bindPopup(t.message,t.popupOptions),_(t.message)&&_(n.message)&&t.message!==n.message&&r.setPopupContent(t.message);var h=!1;!0!==t.focus&&!0===n.focus&&(r.closePopup(),h=!0),(!0===t.focus&&(!l(n.focus)||!1===n.focus)||u&&!0===t.focus)&&(r.openPopup(),h=!0),n.zIndexOffset!==t.zIndexOffset&&r.setZIndexOffset(t.zIndexOffset);var f=r.getLatLng();_(t.layer)&&v.MarkerClusterPlugin.is(a.overlays[t.layer])?h?t.lat===n.lat&&t.lng===n.lng||(a.overlays[t.layer].removeLayer(r),r.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(r)):f.lat!==t.lat||f.lng!==t.lng?(a.overlays[t.layer].removeLayer(r),r.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(r)):t.lat!==n.lat||t.lng!==n.lng?(a.overlays[t.layer].removeLayer(r),r.setLatLng([t.lat,t.lng]),a.overlays[t.layer].addLayer(r)):b(t.icon)&&b(n.icon)&&!e.equals(t.icon,n.icon)&&(a.overlays[t.layer].removeLayer(r),a.overlays[t.layer].addLayer(r)):f.lat===t.lat&&f.lng===t.lng||r.setLatLng([t.lat,t.lng])}},F=function(e,t){if(l(e))return t?e[t]:e},z=function(e,t,n){if(l(e))return t?n?e[n][t]:e[t]:void S.error(k+"marker id missing in getMarker")};return{resetMarkerGroup:E,resetMarkerGroups:A,resetUnusedMarkerGroups:P,deleteMarker:O,manageOpenPopup:N,manageOpenLabel:B,createMarker:function(e){if(!l(e)||!M.validateCoords(e))return void S.error(k+"The marker definition is not valid.");var t=M.getCoords(e);if(!l(t))return void S.error(k+"Unable to get coordinates from markerData.");var n={icon:C(e.icon),title:l(e.title)?e.title:"",draggable:!!l(e.draggable)&&e.draggable,clickable:!l(e.clickable)||e.clickable,riseOnHover:!!l(e.riseOnHover)&&e.riseOnHover,zIndexOffset:l(e.zIndexOffset)?e.zIndexOffset:0,iconAngle:l(e.iconAngle)?e.iconAngle:0};for(var r in e)e.hasOwnProperty(r)&&!n.hasOwnProperty(r)&&(n[r]=e[r]);var i=new L.marker(t,n);return _(e.message)||i.unbindPopup(),i},addMarkerToGroup:function(e,t,n,r){return _(t)?c.isLoaded()?(l(w[t])||(w[t]=new L.MarkerClusterGroup(n),r.addLayer(w[t])),void w[t].addLayer(e)):void S.error(k+"The MarkerCluster plugin is not loaded."):void S.error(k+"The marker group you have specified is invalid.")},listenMarkerEvents:function(e,t,n,r,i){e.on("popupopen",function(){g(n,function(){(l(e._popup)||l(e._popup._contentNode))&&(t.focus=!0,N(e,t,i))})}),e.on("popupclose",function(){g(n,function(){t.focus=!1})}),e.on("add",function(){g(n,function(){"label"in t&&B(e,t)})})},updateMarker:R,addMarkerWatcher:function(e,t,n,r,i,o){var a=v.getObjectArrayPath("markers."+t);x(n,a,o,function(t,n,o){if(!l(t))return O(e,i,r),void o();R(t,n,e,0,0,r,i)})},string:T,log:$,getModelFromModels:z,getLayerModels:F}}]),e.module("ui-leaflet").factory("leafletPathsHelpers",["$rootScope","leafletLogger","leafletHelpers",function(e,t,n){function r(e){return e.filter(function(e){return c(e)}).map(function(e){return i(e)})}function i(e){return l(e)?new L.LatLng(e[0],e[1]):new L.LatLng(e.lat,e.lng)}function o(e){return e.map(function(e){return r(e)})}function a(e,t){for(var n={},r=0;r<h.length;r++){var i=h[r];s(e[i])?n[i]=e[i]:s(t.path[i])&&(n[i]=t.path[i])}return n}var s=n.isDefined,l=n.isArray,u=n.isNumber,c=n.isValidPoint,d=t,h=["stroke","weight","color","opacity","fill","fillColor","fillOpacity","dashArray","lineCap","lineJoin","clickable","pointerEvents","className","smoothFactor","noClip"],f=function(e,t){for(var n={},r=0;r<h.length;r++){var i=h[r];s(t[i])&&(n[i]=t[i])}e.setStyle(t)},p=function(e){if(!l(e))return!1;for(var t=0;t<e.length;t++){var n=e[t];if(!c(n))return!1}return!0},m={polyline:{isValid:function(e){var t=e.latlngs;return p(t)},createPath:function(e){return new L.Polyline([],e)},setPath:function(e,t){e.setLatLngs(r(t.latlngs)),f(e,t)}},multiPolyline:{isValid:function(e){var t=e.latlngs;if(!l(t))return!1;for(var n in t){var r=t[n];if(!p(r))return!1}return!0},createPath:function(e){return new L.multiPolyline([[[0,0],[1,1]]],e)},setPath:function(e,t){e.setLatLngs(o(t.latlngs)),f(e,t)}},polygon:{isValid:function(e){var t=e.latlngs;return p(t)},createPath:function(e){return new L.Polygon([],e)},setPath:function(e,t){e.setLatLngs(r(t.latlngs)),f(e,t)}},multiPolygon:{isValid:function(e){var t=e.latlngs;if(!l(t))return!1;for(var n in t){var r=t[n];if(!p(r))return!1}return!0},createPath:function(e){return new L.MultiPolygon([[[0,0],[1,1],[0,1]]],e)},setPath:function(e,t){e.setLatLngs(o(t.latlngs)),f(e,t)}},rectangle:{isValid:function(e){var t=e.latlngs;if(!l(t)||2!==t.length)return!1;for(var n in t){var r=t[n];if(!c(r))return!1}return!0},createPath:function(e){return new L.Rectangle([[0,0],[1,1]],e)},setPath:function(e,t){e.setBounds(new L.LatLngBounds(r(t.latlngs))),f(e,t)}},circle:{isValid:function(e){var t=e.latlngs;return c(t)&&u(e.radius)},createPath:function(e){return new L.Circle([0,0],1,e)},setPath:function(e,t){e.setLatLng(i(t.latlngs)),s(t.radius)&&e.setRadius(t.radius),f(e,t)}},circleMarker:{isValid:function(e){var t=e.latlngs;return c(t)&&u(e.radius)},createPath:function(e){return new L.CircleMarker([0,0],e)},setPath:function(e,t){e.setLatLng(i(t.latlngs)),s(t.radius)&&e.setRadius(t.radius),f(e,t)}}},g=function(e){var t={};return e.latlngs&&(t.latlngs=e.latlngs),e.radius&&(t.radius=e.radius),t};return{setPathOptions:function(e,t,n){s(t)||(t="polyline"),m[t].setPath(e,n)},createPath:function(e,t,n){s(t.type)||(t.type="polyline");var r=a(t,n),i=g(t);return m[t.type].isValid(i)?m[t.type].createPath(r):void d.error("[AngularJS - Leaflet] Invalid data passed to the "+t.type+" path")}}}]),e.module("ui-leaflet").service("leafletWatchHelpers",function(){var e=function(e,t,n,r,i){var o=e[t](n,function(e,t){i(e,t,o),null===r.type&&o()},"watchDeep"===r.type);return o};return{maybeWatch:function(t,n,r,i){var o;return o="watchCollection"===r.type?"$watchCollection":"$watch",e(t,o,n,r,i)}}}),e.module("ui-leaflet").service("leafletLogger",["nemSimpleLogger",function(e){return e.spawn()}]),e.module("ui-leaflet").factory("nominatimService",["$q","$http","leafletHelpers","leafletMapDefaults",function(e,t,n,r){var i=n.isDefined;return{query:function(n,o){var a=r.getDefaults(o),s=a.nominatim.server,l=e.defer();return t.get(s,{params:{format:"json",limit:1,q:n}}).success(function(e){e.length>0&&i(e[0].boundingbox)?l.resolve(e[0]):l.reject("[Nominatim] Invalid address")}),l.promise}}}]),e.module("ui-leaflet").directive("bounds",["leafletLogger","$timeout","$http","leafletHelpers","nominatimService","leafletBoundsHelpers",function(t,n,r,i,o,a){var s=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,r,l,u){var c=i.isDefined,d=a.createLeafletBounds,h=u[0].getLeafletScope(),f=u[0],p=i.errorHeader+" [Bounds] ",m=function(e){return 0===e._southWest.lat&&0===e._southWest.lng&&0===e._northEast.lat&&0===e._northEast.lng};f.getMap().then(function(r){h.$on("boundsChanged",function(t){var i=t.currentScope,o=r.getBounds();if(!m(o)&&!i.settingBoundsFromScope){i.settingBoundsFromLeaflet=!0;var a={northEast:{lat:o._northEast.lat,lng:o._northEast.lng},southWest:{lat:o._southWest.lat,lng:o._southWest.lng},options:o.options};e.equals(i.bounds,a)||(i.bounds=a),n(function(){i.settingBoundsFromLeaflet=!1})}});var i;h.$watch("bounds",function(e){if(!t.settingBoundsFromLeaflet){if(c(e.address)&&e.address!==i)return t.settingBoundsFromScope=!0,o.query(e.address,l.id).then(function(e){var t=e.boundingbox,n=[[t[0],t[2]],[t[1],t[3]]];r.fitBounds(n)},function(e){s.error(p+" "+e+".")}),i=e.address,void n(function(){t.settingBoundsFromScope=!1});var a=d(e);a&&!r.getBounds().equals(a)&&(t.settingBoundsFromScope=!0,r.fitBounds(a,e.options),n(function(){t.settingBoundsFromScope=!1}))}},!0)})}}}]);var t=["center","lfCenter"],n={};t.forEach(function(t){n[t]=["leafletLogger","$q","$location","$timeout","leafletMapDefaults","leafletHelpers","leafletBoundsHelpers","leafletMapEvents",function(n,r,i,o,a,s,l,u){var c,d=s.isDefined,h=s.isNumber,f=s.isSameCenterOnMap,p=s.safeApply,m=s.isValidCenter,g=l.isValidBounds,v=s.isUndefinedOrEmpty,_=s.errorHeader,y=n,b=function(e,t){return d(e)&&g(e)&&v(t)};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:function(){c=r.defer(),this.getCenter=function(){return c.promise}},link:function(n,r,s,g){var v=g.getLeafletScope(),w=v[t];g.getMap().then(function(n){var r=a.getDefaults(s.id);if(-1!==s[t].search("-"))return y.error(_+' The "center" variable can\'t use a "-" on its key name: "'+s[t]+'".'),void n.setView([r.center.lat,r.center.lng],r.center.zoom);if(b(v.bounds,w))n.fitBounds(l.createLeafletBounds(v.bounds),v.bounds.options),w=n.getCenter(),p(v,function(r){e.extend(r[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1})}),p(v,function(e){var t=n.getBounds();e.bounds={northEast:{lat:t._northEast.lat,lng:t._northEast.lng},southWest:{lat:t._southWest.lat,lng:t._southWest.lng}}});else{if(!d(w))return y.error(_+' The "center" property is not defined in the main scope'),void n.setView([r.center.lat,r.center.lng],r.center.zoom);d(w.lat)&&d(w.lng)||d(w.autoDiscover)||e.copy(r.center,w)}var g,L;if("yes"===s.urlHashCenter){var M=function(){var e,t=i.search(),n=s.urlHashParam?s.urlHashParam:"c";if(d(t[n])){var r=t[n].split(":");3===r.length&&(e={lat:parseFloat(r[0]),lng:parseFloat(r[1]),zoom:parseInt(r[2],10)})}return e};g=M(),v.$on("$locationChangeSuccess",function(r){var i=r.currentScope,o=M();d(o)&&!f(o,n)&&e.extend(i[t],{lat:o.lat,lng:o.lng,zoom:o.zoom})})}v.$watch(t,function(t){if(!v.settingCenterFromLeaflet)return d(g)&&(e.copy(g,t),g=void 0),m(t)||!0===t.autoDiscover?!0===t.autoDiscover?(h(t.zoom)||n.setView([r.center.lat,r.center.lng],r.center.zoom),void(h(t.zoom)&&t.zoom>r.center.zoom?n.locate({setView:!0,maxZoom:t.zoom}):d(r.maxZoom)?n.locate({setView:!0,maxZoom:r.maxZoom}):n.locate({setView:!0}))):void(L&&f(t,n)||(v.settingCenterFromScope=!0,n.setView([t.lat,t.lng],t.zoom),u.notifyCenterChangedToBounds(v,n),o(function(){v.settingCenterFromScope=!1}))):void y.warn(_+" invalid 'center'")},!0),n.whenReady(function(){L=!0}),n.on("moveend",function(){c.resolve(),u.notifyCenterUrlHashChanged(v,n,s,i.search()),f(w,n)||v.settingCenterFromScope||(v.settingCenterFromLeaflet=!0,p(v,function(r){v.settingCenterFromScope||e.extend(r[t],{lat:n.getCenter().lat,lng:n.getCenter().lng,zoom:n.getZoom(),autoDiscover:!1}),u.notifyCenterChangedToBounds(v,n),o(function(){v.settingCenterFromLeaflet=!1})}))}),!0===w.autoDiscover&&n.on("locationerror",function(){y.warn(_+" The Geolocation API is unauthorized on this page."),m(w)?(n.setView([w.lat,w.lng],w.zoom),u.notifyCenterChangedToBounds(v,n)):(n.setView([r.center.lat,r.center.lng],r.center.zoom),u.notifyCenterChangedToBounds(v,n))})})}}}]}),t.forEach(function(t){e.module("ui-leaflet").directive(t,n[t])}),e.module("ui-leaflet").directive("controls",["leafletLogger","leafletHelpers","leafletControlHelpers",function(e,t,n){var r=e;return{restrict:"A",scope:!1,replace:!1,require:"?^leaflet",link:function(e,i,o,a){if(a){var s=n.createControl,l=n.isValidControlType,u=a.getLeafletScope(),c=t.isDefined,d=t.isArray,h={},f=t.errorHeader+" [Controls] ";e.$on("$destroy",function(){n.destroyMapLayersControl(e.mapId)}),a.getMap().then(function(e){u.$watchCollection("controls",function(t){for(var n in h)c(t[n])||(e.hasControl(h[n])&&e.removeControl(h[n]),delete h[n]);for(var i in t){var o,a=c(t[i].type)?t[i].type:i;if(!l(a))return void r.error(f+" Invalid control type: "+a+".");if("custom"!==a)o=s(a,t[i]),e.addControl(o),h[i]=o;else{var u=t[i];if(d(u))for(var p=0;p<u.length;p++){var m=u[p];e.addControl(m),h[i]=c(h[i])?h[i].concat([m]):[m]}else e.addControl(u),h[i]=u}}})})}}}}]),e.module("ui-leaflet").directive("decorations",["leafletLogger","leafletHelpers",function(t,n){var r=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,i,o,a){function s(e){return d(e)&&d(e.coordinates)&&(c.isLoaded()||r.error("[AngularJS - Leaflet] The PolylineDecorator Plugin is not loaded.")),L.polylineDecorator(e.coordinates)}function l(e,t){if(d(e)&&d(t)&&d(t.coordinates)&&d(t.patterns))return e.setPaths(t.coordinates),e.setPatterns(t.patterns),e}var u=a.getLeafletScope(),c=n.PolylineDecoratorPlugin,d=n.isDefined,h={};a.getMap().then(function(t){u.$watch("decorations",function(n){for(var r in h)d(n[r])&&e.equals(n[r],h)||(t.removeLayer(h[r]),delete h[r]);for(var i in n){var o=n[i],a=s(o);d(a)&&(h[i]=a,t.addLayer(a),l(a,o))}},!0)})}}}]),e.module("ui-leaflet").directive("eventBroadcast",["leafletLogger","$rootScope","leafletHelpers","leafletMapEvents","leafletIterators",function(e,t,n,r,i){var o=e;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,a,s){var l=n.isObject,u=n.isDefined,c=s.getLeafletScope(),d=c.eventBroadcast,h=r.getAvailableMapEvents(),f=r.addEvents;s.getMap().then(function(e){var t=[],n="broadcast";u(d.map)?l(d.map)?("emit"!==d.map.logic&&"broadcast"!==d.map.logic?o.warn("[AngularJS - Leaflet] Available event propagation logic are: 'emit' or 'broadcast'."):n=d.map.logic,l(d.map.enable)&&d.map.enable.length>=0?i.each(d.map.enable,function(e){-1===t.indexOf(e)&&-1!==h.indexOf(e)&&t.push(e)}):o.warn("[AngularJS - Leaflet] event-broadcast.map.enable must be an object check your model.")):o.warn("[AngularJS - Leaflet] event-broadcast.map must be an object check your model."):t=h,f(e,a.id,t,"eventName",c,n)})}}}]),e.module("ui-leaflet").directive("geojson",["$timeout","leafletLogger","leafletData","leafletHelpers","leafletWatchHelpers","leafletDirectiveControlsHelpers","leafletIterators","leafletGeoJsonEvents",function(t,n,r,i,o,a,s,l){var u=o.maybeWatch,c=i.watchOptions,d=a.extend,h=i,f=s,p={changeFromDirective:!1};return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,n,o,a){var s=i.isDefined,m=a.getLeafletScope(),g={},v=!1;a.getMap().then(function(t){var n;n=m.watchOptions&&m.watchOptions.geojson?m.watchOptions.geojson:c;var a=function(t,n){return e.isFunction(t.onEachFeature)?t.onEachFeature:function(e,r){i.LabelPlugin.isLoaded()&&s(e.properties.description)&&r.bindLabel(e.properties.description),l.bindEvents(o.id,r,null,e,m,n,{resetStyleOnMouseout:t.resetStyleOnMouseout,mapId:o.id})}},_=h.isDefined(o.geojsonNested)&&h.isTruthy(o.geojsonNested),y=function(){if(g){var e=function(e){s(e)&&t.hasLayer(e)&&t.removeLayer(e)};if(_)return void f.each(g,function(t){e(t)});e(g)}},b=function(e,n){if(s(e)&&s(e.data)){var i=a(e,n);s(e.options)||h.modelChangeInDirective(p,"changeFromDirective",function(){e.options={style:e.style,filter:e.filter,onEachFeature:i,pointToLayer:e.pointToLayer}});var l=L.geoJson(e.data,e.options);n&&h.isString(n)?g[n]=l:g=l,l.addTo(t),v||(v=!0,r.setGeoJSON(g,o.id))}},w=function(e){if(y(),_){if(!e||!Object.keys(e).length)return;return void f.each(e,function(e,t){b(e,t)})}b(e)};d(o.id,"geojson",w,y),u(m,"geojson",n,function(e){p.changeFromDirective||w(e)})})}}}]),e.module("ui-leaflet").directive("layercontrol",["$filter","leafletLogger","leafletData","leafletHelpers",function(t,n,r,i){var o=n;return{restrict:"E",scope:{icons:"=?",autoHideOpacity:"=?",showGroups:"=?",title:"@",baseTitle:"@",overlaysTitle:"@"},replace:!0,transclude:!1,require:"^leaflet",controller:["$scope","$element","$sce",function(t,n,a){o.debug("[Angular Directive - Layers] layers",t,n);var s=i.safeApply,l=i.isDefined;e.extend(t,{baselayer:"",oldGroup:"",layerProperties:{},groupProperties:{},rangeIsSupported:i.rangeIsSupported(),changeBaseLayer:function(e,n){i.safeApply(t,function(n){n.baselayer=e,r.getMap().then(function(i){r.getLayers().then(function(r){if(!i.hasLayer(r.baselayers[e])){for(var o in n.layers.baselayers)n.layers.baselayers[o].icon=n.icons.unradio,i.hasLayer(r.baselayers[o])&&i.removeLayer(r.baselayers[o]);i.addLayer(r.baselayers[e]),n.layers.baselayers[e].icon=t.icons.radio}})})}),n.preventDefault()},moveLayer:function(e,n,r){var i=Object.keys(t.layers.baselayers).length;if(n>=1+i&&n<=t.overlaysArray.length+i){var o;for(var a in t.layers.overlays)if(t.layers.overlays[a].index===n){o=t.layers.overlays[a];break}o&&s(t,function(){o.index=e.index,e.index=n})}r.stopPropagation(),r.preventDefault()},initIndex:function(e,n){var r=Object.keys(t.layers.baselayers).length;e.index=l(e.index)?e.index:n+r+1},initGroup:function(e){t.groupProperties[e]=t.groupProperties[e]?t.groupProperties[e]:{}},toggleOpacity:function(e,n){if(n.visible){if(t.autoHideOpacity&&!t.layerProperties[n.name].opacityControl)for(var r in t.layerProperties)t.layerProperties[r].opacityControl=!1;t.layerProperties[n.name].opacityControl=!t.layerProperties[n.name].opacityControl}e.stopPropagation(),e.preventDefault()},toggleLegend:function(e){t.layerProperties[e.name].showLegend=!t.layerProperties[e.name].showLegend},showLegend:function(e){return e.legend&&t.layerProperties[e.name].showLegend},unsafeHTML:function(e){return a.trustAsHtml(e)},getOpacityIcon:function(e){return e.visible&&t.layerProperties[e.name].opacityControl?t.icons.close:t.icons.open},getGroupIcon:function(e){return e.visible?t.icons.check:t.icons.uncheck},changeGroupVisibility:function(e){if(l(t.groupProperties[e])){var n=t.groupProperties[e].visible;for(var r in t.layers.overlays){var i=t.layers.overlays[r];i.group===e&&(i.visible=n)}}}});var u=n.get(0);L.Browser.touch?L.DomEvent.on(u,"click",L.DomEvent.stopPropagation):(L.DomEvent.disableClickPropagation(u),L.DomEvent.on(u,"mousewheel",L.DomEvent.stopPropagation))}],template:'<div class="angular-leaflet-control-layers" ng-show="overlaysArray.length"><h4 ng-if="title">{{ title }}</h4><div class="lf-baselayers"><h5 class="lf-title" ng-if="baseTitle">{{ baseTitle }}</h5><div class="lf-row" ng-repeat="(key, layer) in baselayersArray"><label class="lf-icon-bl" ng-click="changeBaseLayer(key, $event)"><input class="leaflet-control-layers-selector" type="radio" name="lf-radio" ng-show="false" ng-checked="baselayer === key" ng-value="key" /> <i class="lf-icon lf-icon-radio" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label></div></div><div class="lf-overlays"><h5 class="lf-title" ng-if="overlaysTitle">{{ overlaysTitle }}</h5><div class="lf-container"><div class="lf-row" ng-repeat="layer in (o = (overlaysArray | orderBy:\'index\':order))" ng-init="initIndex(layer, $index)"><label class="lf-icon-ol-group" ng-if="showGroups &amp;&amp; layer.group &amp;&amp; layer.group != o[$index-1].group"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-change="changeGroupVisibility(layer.group)" ng-model="groupProperties[layer.group].visible"/> <i class="lf-icon lf-icon-check" ng-class="getGroupIcon(groupProperties[layer.group])"></i><div class="lf-text">{{ layer.group }}</div></label><label class="lf-icon-ol"><input class="lf-control-layers-selector" type="checkbox" ng-show="false" ng-model="layer.visible"/> <i class="lf-icon lf-icon-check" ng-class="layer.icon"></i><div class="lf-text">{{layer.name}}</div></label><div class="lf-icons"><i class="lf-icon lf-up" ng-class="icons.up" ng-click="moveLayer(layer, layer.index - orderNumber, $event)"></i> <i class="lf-icon lf-down" ng-class="icons.down" ng-click="moveLayer(layer, layer.index + orderNumber, $event)"></i> <i class="lf-icon lf-toggle-legend" ng-class="icons.toggleLegend" ng-if="layer.legend" ng-click="toggleLegend(layer)"></i> <i class="lf-icon lf-open" ng-class="getOpacityIcon(layer)" ng-click="toggleOpacity($event, layer)"></i></div><div class="lf-legend" ng-if="showLegend(layer)" ng-bind-html="unsafeHTML(layer.legend)"></div><div class="lf-opacity clearfix" ng-if="layer.visible &amp;&amp; layerProperties[layer.name].opacityControl"><label ng-if="rangeIsSupported" class="pull-left" style="width: 50%">0</label><label ng-if="rangeIsSupported" class="pull-left text-right" style="width: 50%">100</label><input ng-if="rangeIsSupported" class="clearfix" type="range" min="0" max="1" step="0.05" class="lf-opacity-control" ng-model="layerProperties[layer.name].layerOptions.opacity"/><h6 ng-if="!rangeIsSupported">Range is not supported in this browser</h6></div></div></div></div></div>',link:function(t,n,o,a){var s=i.isDefined,l=a.getLeafletScope(),u=l.layers;t.$watch("icons",function(){var n={uncheck:"fa fa-square-o",check:"fa fa-check-square-o",radio:"fa fa-dot-circle-o",unradio:"fa fa-circle-o",up:"fa fa-angle-up",down:"fa fa-angle-down",open:"fa fa-angle-double-down",close:"fa fa-angle-double-up",toggleLegend:"fa fa-pencil-square-o"};s(t.icons)?(e.extend(n,t.icons),e.extend(t.icons,n)):t.icons=n}),o.order=!s(o.order)||"normal"!==o.order&&"reverse"!==o.order?"normal":o.order,t.order="normal"===o.order,t.orderNumber="normal"===o.order?-1:1,t.layers=u,a.getMap().then(function(e){l.$watch("layers.baselayers",function(n){var i={};r.getLayers().then(function(r){var o;for(o in n){var a=n[o];a.icon=t.icons[e.hasLayer(r.baselayers[o])?"radio":"unradio"],i[o]=a}t.baselayersArray=i})}),l.$watch("layers.overlays",function(e){var n=[],i={};r.getLayers().then(function(){var r;for(r in e){var o=e[r];o.icon=t.icons[o.visible?"check":"uncheck"],n.push(o),s(t.layerProperties[o.name])||(s(o.layerOptions.opacity)&&(o.layerOptions.opacity=1),t.layerProperties[o.name]={opacityControl:!1,showLegend:!0,layerOptions:o.layerOptions}),s(o.group)&&(s(t.groupProperties[o.group])||(t.groupProperties[o.group]={visible:!1}),i[o.group]=s(i[o.group])?i[o.group]:{count:0,visibles:0},i[o.group].count++,o.visible&&i[o.group].visibles++)}for(r in i)t.groupProperties[r].visible=i[r].visibles===i[r].count;t.overlaysArray=n})},!0)})}}}]),e.module("ui-leaflet").directive("layers",["leafletLogger","$q","leafletData","leafletHelpers","leafletLayerHelpers","leafletControlHelpers",function(t,n,r,i,o,a){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",controller:["$scope",function(e){e._leafletLayers=n.defer(),this.getLayers=function(){return e._leafletLayers.promise}}],link:function(t,n,s,l){var u=i.isDefined,c={},d=l.getLeafletScope(),h=d.layers,f=o.createLayer,p=o.safeAddLayer,m=o.safeRemoveLayer,g=o.changeOpacityListener,v=a.updateLayersControl,_=!1;t.$on("$destroy",function(){a.destroyMapLayersControl(t.mapId)}),l.getMap().then(function(n){t._leafletLayers.resolve(c),r.setLayers(c,s.id),c.baselayers={},c.overlays={};var i=s.id,o=!1;for(var a in h.baselayers){var l=f(h.baselayers[a]);u(l)?(c.baselayers[a]=l,!0===h.baselayers[a].top&&(p(n,c.baselayers[a]),o=!0)):delete h.baselayers[a]}!o&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(h.baselayers)[0]]);for(a in h.overlays){h.overlays[a].type;var y=f(h.overlays[a]);u(y)?(c.overlays[a]=y,!0===h.overlays[a].visible&&p(n,c.overlays[a])):delete h.overlays[a]}d.$watch("layers.baselayers",function(t,r){
-if(e.equals(t,r))return _=v(n,i,_,t,h.overlays,c),!0;for(var o in c.baselayers)u(t[o])&&!t[o].doRefresh||(n.hasLayer(c.baselayers[o])&&n.removeLayer(c.baselayers[o]),delete c.baselayers[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1));for(var a in t)if(u(c.baselayers[a]))!0!==t[a].top||n.hasLayer(c.baselayers[a])?!1===t[a].top&&n.hasLayer(c.baselayers[a])&&n.removeLayer(c.baselayers[a]):p(n,c.baselayers[a]);else{var s=f(t[a]);u(s)&&(c.baselayers[a]=s,!0===t[a].top&&p(n,c.baselayers[a]))}var l=!1;for(var d in c.baselayers)if(n.hasLayer(c.baselayers[d])){l=!0;break}!l&&Object.keys(c.baselayers).length>0&&p(n,c.baselayers[Object.keys(c.baselayers)[0]]),_=v(n,i,_,t,h.overlays,c)},!0),d.$watch("layers.overlays",function(t,r){if(e.equals(t,r))return _=v(n,i,_,h.baselayers,t,c),!0;for(var o in c.overlays)if(!u(t[o])||t[o].doRefresh){if(n.hasLayer(c.overlays[o])){var a=u(t[o])?t[o].layerOptions:null;m(n,c.overlays[o],a)}delete c.overlays[o],t[o]&&t[o].doRefresh&&(t[o].doRefresh=!1)}for(var s in t){if(u(c.overlays[s])){t[s].visible&&!n.hasLayer(c.overlays[s])?p(n,c.overlays[s]):!1===t[s].visible&&n.hasLayer(c.overlays[s])&&m(n,c.overlays[s],t[s].layerOptions);var l=c.overlays[s];n.hasLayer(c.overlays[s])&&(t[s].layerOptions.opacity!==r[s].layerOptions.opacity&&(u(l.setOpacity)&&l.setOpacity(t[s].layerOptions.opacity),u(l.getLayers)&&u(l.eachLayer)&&l.eachLayer(g(t[s].layerOptions.opacity))),u(t[s].index)&&l.setZIndex&&t[s].index!==r[s].index&&l.setZIndex(t[s].index))}else{var d=f(t[s]);if(!u(d))continue;c.overlays[s]=d,!0===t[s].visible&&p(n,c.overlays[s]),u(t[s].index)&&c.overlays[s].setZIndex&&c.overlays[s].setZIndex(t[s].index)}t[s].visible&&n._loaded&&t[s].data&&"heatmap"===t[s].type&&(c.overlays[s].setData(t[s].data),c.overlays[s].update())}_=v(n,i,_,h.baselayers,t,c)},!0)})}}}]),e.module("ui-leaflet").directive("legend",["leafletLogger","$http","$timeout","leafletHelpers","leafletLegendHelpers",function(e,t,n,r,i){var o=e,a=r.errorHeader+" [Legend] ";return{restrict:"A",scope:!1,replace:!1,require:"leaflet",transclude:!1,link:function(e,t,n,s){var l,u,c,d,h=r.isArray,f=r.isString,p=r.isDefined,m=r.isFunction,g=s.getLeafletScope(),v=g.legend;g.$watch("legend",function(e){p(e)&&(l=e.legendClass?e.legendClass:"legend",u=e.position||"bottomright",d=e.type||"arcgis")},!0);var _=function(e,t,n){t&&t.layers&&t.layers.length>0&&(p(c)?i.updateLegend(c.getContainer(),t,d,n):(c=L.control({position:u}),c.onAdd=i.getOnAddLegend(t,l,d,n),c.addTo(e)),p(v.loadedData)&&m(v.loadedData)&&v.loadedData())};s.getMap().then(function(e){g.$watch("legend",function(t){return p(t)?p(t.url)||"arcgis"!==d||h(t.colors)&&h(t.labels)&&t.colors.length===t.labels.length?p(t.url)?void o.info(a+" loading legend service."):(p(c)&&(c.removeFrom(e),c=null),c=L.control({position:u}),"arcgis"===d&&(c.onAdd=i.getOnAddArrayLegend(t,l)),void c.addTo(e)):void o.warn(a+" legend.colors and legend.labels must be set."):void(p(c)&&(c.removeFrom(e),c=null))}),g.$watch("legend.url",function(t){if(p(t)){if(!h(t)&&!f(t))return void o.warn(a+" legend.url must be an array or string.");for(var r,s=f(t)?[t]:t,l=function(e){o.warn(a+" legend.url not loaded.",e)},u=0;u<s.length;u++)i.addLegendURL(n.id,{url:s[u],method:"GET"}).then(function(n,i){return function(l){p(l.data.error)?o.warn(a+"Error loadin legend from: "+i,l.data.error.message):r&&r.layers&&r.layers.length>0?r.layers=r.layers.concat(l.data.layers):r=l.data,n===s.length-1&&_(e,r,t)}}(u)).catch(l)}}),g.$watch("legend.legendData",function(t){o.debug("legendData",t),!p(g.legend.url)&&p(t)&&_(e,t)},!0)})}}}]),e.module("ui-leaflet").directive("markers",["leafletLogger","$rootScope","$q","leafletData","leafletHelpers","leafletMapDefaults","leafletMarkersHelpers","leafletMarkerEvents","leafletIterators","leafletWatchHelpers","leafletDirectiveControlsHelpers",function(t,n,r,i,o,a,s,l,u,c,d){var h=o.isDefined,f=o.errorHeader,p=o,m=o.isString,g=s.addMarkerWatcher,v=s.updateMarker,_=s.listenMarkerEvents,y=s.addMarkerToGroup,b=s.createMarker,w=s.deleteMarker,M=s.getModelFromModels,k=s.getLayerModels,x=s.resetUnusedMarkerGroups,S=u,T=o.watchOptions,$=c.maybeWatch,D=d.extend,C=t,E={changeFromDirective:!1},A=function(e,t,n){if(Object.keys(e).length){if(n&&m(n)){if(!e[n]||!Object.keys(e[n]).length)return;return e[n][t]}return e[t]}},P=function(e,t,n,r){return r&&m(r)?(h(t[r])||(t[r]={}),t[r][n]=e):t[n]=e,e},Y=function(e,t,n,r,i,o){if(!m(e))return C.error(f+" A layername must be a string"),!1;if(!h(t))return C.error(f+" You must add layers to the directive if the markers are going to use this functionality."),!1;if(!h(t.overlays)||!h(t.overlays[e]))return C.error(f+' A marker can only be added to a layer of type "group"'),!1;var a=t.overlays[e];return a instanceof L.LayerGroup||a instanceof L.FeatureGroup?(a.addLayer(r),null===i&&o.hasLayer(r)&&!0===n.focus&&r.openPopup(),!0):(C.error(f+' Adding a marker to an overlay needs a overlay of the type "group" or "featureGroup"'),!1)},O=function(e,t,n,r,i,o,a,s,u,c){S.each(t,function(t,d){if(!c[d]){if(-1!==d.search("-"))return void C.error('The marker can\'t use a "-" on his key name: "'+d+'".');var m=p.getObjectDotPath(u?[u,d]:[d]),w=A(o,d,u);p.modelChangeInDirective(E,"changeFromDirective",function(){if(h(w)){var c=M(n,d,u);v(t,c,w,m,a,i,r)}else{var L=b(t),k=(t?t.layer:void 0)||u;if(!h(L))return void C.error(f+" Received invalid data on the marker "+d+".");if(P(L,o,d,u),h(t.message)&&L.bindPopup(t.message,t.popupOptions),h(t.group)){var x=h(t.groupOption)?t.groupOption:null;y(L,t.group,x,r)}if(p.LabelPlugin.isLoaded()&&h(t.label)&&h(t.label.message)&&L.bindLabel(t.label.message,t.label.options),h(t)&&(h(t.layer)||h(u))){if(!Y(k,i,t,L,s.individual.type,r))return}else h(t.group)||(r.addLayer(L),null===s.individual.type&&!0===t.focus&&L.openPopup());null!==s.individual.type&&g(L,m,a,i,r,s.individual),_(L,t,a,s.individual.type,r),l.bindEvents(e,L,m,t,a,k)}})}})},I=function(t,n,r,i,o){var a,s,l=!1,u=!1,c=h(n);for(var d in r)l||(C.debug(f+"[markers] destroy: "),l=!0),c&&(s=t[d],a=n[d],u=i&&e.equals(s,a)),h(t)&&Object.keys(t).length&&h(t[d])&&Object.keys(t[d]).length&&!u||o&&p.isFunction(o)&&o(s,a,d)},j=function(e,t,n,r,i){I(e,t,n,!1,function(e,t,o){C.debug(f+"[marker] is deleting marker: "+o),w(n[o],r,i),delete n[o]})},H=function(e,t,n){var r={};return I(e,t,n,!0,function(e,t,n){C.debug(f+"[marker] is already rendered, marker: "+n),r[n]=e}),r};return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,t,n,o){var a=o[0],s=a.getLeafletScope();a.getMap().then(function(t){var a,l={};a=h(o[1])?o[1].getLayers:function(){var e=r.defer();return e.resolve(),e.promise};var u;u=s.watchOptions&&s.watchOptions.markers?s.watchOptions.markers:T;var c=h(n.markersNested)&&p.isTruthy(n.markersNested);a().then(function(r){var o=function(e,n){if(x(),c)return void S.each(e,function(e,i){var o=k(n,i);j(e,o,l[i],t,r)});j(e,n,l,t,r)},a=function(e,i){o(e,i);var a=null;if(c)return void S.each(e,function(o,c){var d=k(i,c),h=k(e,c);a=H(h,d,l[c]),O(n.id,o,i,t,r,l,s,u,c,a)});a=H(e,i,l),O(n.id,e,i,t,r,l,s,u,void 0,a)};D(n.id,"markers",a,o),i.setMarkers(l,n.id),$(s,"markers",u,function(e,t){E.changeFromDirective||a(e,t)}),e.$on("$destroy",function(){j(s.markers,{},l,t,r)})})})}}}]),e.module("ui-leaflet").directive("maxbounds",["leafletLogger","leafletMapDefaults","leafletBoundsHelpers","leafletHelpers",function(e,t,n,r){return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(e,t,i,o){var a=o.getLeafletScope(),s=n.isValidBounds,l=r.isNumber;o.getMap().then(function(e){a.$watch("maxbounds",function(t){if(!s(t))return void e.setMaxBounds();var r=n.createLeafletBounds(t);l(t.pad)&&(r=r.pad(t.pad)),e.setMaxBounds(r),i.center||i.lfCenter||e.fitBounds(r)})})}}}]),e.module("ui-leaflet").directive("paths",["leafletLogger","$q","leafletData","leafletMapDefaults","leafletHelpers","leafletPathsHelpers","leafletPathEvents","leafletWatchHelpers",function(e,t,n,r,i,o,a,s){var l=e;return{restrict:"A",scope:!1,replace:!1,require:["leaflet","?layers"],link:function(e,u,c,d){var h=d[0],f=i.isDefined,p=i.isString,m=h.getLeafletScope(),g=m.paths,v=o.createPath,_=a.bindPathEvents,y=o.setPathOptions,b=s.maybeWatch;h.getMap().then(function(e){var o,a=r.getDefaults(c.id);if(o=f(d[1])?d[1].getLayers:function(){var e=t.defer();return e.resolve(),e.promise},f(g)){var s,u={type:"watchCollection",individual:{type:"watchDeep"}};s=m.watchOptions&&m.watchOptions.paths?m.watchOptions.paths:u,o().then(function(t){var r={};n.setPaths(r,c.id);var o=function(n,r,i){b(m,'paths["'+r+'"]',i,function(r,i,o){if(!f(r)){if(f(i.layer))for(var a in t.overlays){var s=t.overlays[a];s.removeLayer(n)}return e.removeLayer(n),void o()}y(n,r.type,r)})},u=function(t){for(var n in r)f(t[n])||(e.removeLayer(r[n]),delete r[n])},d=function(n){u(n);for(var d in n)if(0!==d.search("\\$"))if(-1===d.search("-")){if(!f(r[d])){var h=n[d],g=v(d,n[d],a);if(f(g)&&f(h.message)&&g.bindPopup(h.message,h.popupOptions),i.LabelPlugin.isLoaded()&&f(h.label)&&f(h.label.message)&&g.bindLabel(h.label.message,h.label.options),f(h)&&f(h.layer)){if(!p(h.layer)){l.error("[AngularJS - Leaflet] A layername must be a string");continue}if(!f(t)){l.error("[AngularJS - Leaflet] You must add layers to the directive if the markers are going to use this functionality.");continue}if(!f(t.overlays)||!f(t.overlays[h.layer])){l.error('[AngularJS - Leaflet] A path can only be added to a layer of type "group"');continue}var b=t.overlays[h.layer];if(!(b instanceof L.LayerGroup||b instanceof L.FeatureGroup)){l.error('[AngularJS - Leaflet] Adding a path to an overlay needs a overlay of the type "group" or "featureGroup"');continue}r[d]=g,b.addLayer(g),null!==s.individual.type?o(g,d,s.individual):y(g,h.type,h)}else f(g)&&(r[d]=g,e.addLayer(g),null!==s.individual.type?o(g,d,s.individual):y(g,h.type,h));_(c.id,g,d,h,m)}}else l.error('[AngularJS - Leaflet] The path name "'+d+'" is not valid. It must not include "-" and a number.')};b(m,"paths",s,function(e){d(e)})})}})}}}]),e.module("ui-leaflet").directive("tiles",["leafletLogger","leafletData","leafletMapDefaults","leafletHelpers",function(t,n,r,i){var o=t;return{restrict:"A",scope:!1,replace:!1,require:"leaflet",link:function(t,a,s,l){var u=i.isDefined,c=l.getLeafletScope(),d=c.tiles;if(!u(d)||!u(d.url))return void o.warn("[AngularJS - Leaflet] The 'tiles' definition doesn't have the 'url' property.");l.getMap().then(function(t){var i,o=r.getDefaults(s.id);c.$watch("tiles",function(r){var a=o.tileLayerOptions,l=o.tileLayer;return!u(r.url)&&u(i)?void t.removeLayer(i):u(i)?u(r.url)&&u(r.options)&&!e.equals(r.options,a)?(t.removeLayer(i),a=o.tileLayerOptions,e.copy(r.options,a),l=r.url,i=L.tileLayer(l,a),i.addTo(t),void n.setTiles(i,s.id)):void(u(r.url)&&i.setUrl(r.url)):(u(r.options)&&e.copy(r.options,a),u(r.url)&&(l=r.url),i=L.tileLayer(l,a),i.addTo(t),void n.setTiles(i,s.id))},!0)})}}}]),e.module("ui-leaflet").directive("watchOptions",["$log","$rootScope","$q","leafletData","leafletHelpers",function(t,n,r,i,o){var a=o.isDefined,s=o.errorHeader,l=o.isObject,u=t;return{restrict:"A",scope:!1,replace:!1,require:["leaflet"],link:function(t,n,r,i){var o=i[0],c=o.getLeafletScope(),d=function(e){return"watch"===e||"watchCollection"===e||"watchDeep"===e||null===e};a(c.watchOptions)&&l(c.watchOptions)&&e.forEach(["markers","geojson","paths"],function(e){a(c.watchOptions[e])&&(d(c.watchOptions[e].type)||u.error(s+" watchOptions."+e+".type is not a valid type."),a(c.watchOptions[e].individual)?d(c.watchOptions[e].individual.type)||u.error(s+" watchOptions."+e+".individual.type is not a valid type."):u.error(s+" watchOptions."+e+".type.individual must be defined."))})}}}]),e.module("ui-leaflet").factory("leafletEventsHelpersFactory",["$rootScope","$q","leafletLogger","leafletHelpers",function(t,n,r,i){var o=i.safeApply,a=i.isDefined,s=i.isObject,l=i.isArray,u=i.errorHeader,c=r,d=function(e,t){this.rootBroadcastName=e,c.debug("leafletEventsHelpersFactory: lObjectType: "+t+"rootBroadcastName: "+e),this.lObjectType=t};return d.prototype.getAvailableEvents=function(){return[]},d.prototype.genDispatchEvent=function(e,t,n,r,i,o,a,s,l){var u=this;return e=e||"",e&&(e="."+e),function(d){var h=u.rootBroadcastName+e+"."+t;c.debug(h),u.fire(r,h,n,d,d.target||i,a,o,s,l)}},d.prototype.fire=function(n,r,i,s,l,u,c,d,h){o(n,function(){var o={leafletEvent:s,leafletObject:l,modelName:c,model:u};a(d)&&e.extend(o,{layerName:d}),"emit"===i?n.$emit(r,o):t.$broadcast(r,o)})},d.prototype.bindEvents=function(e,t,n,r,i,o,d){var h=[],f=this;if(a(i.eventBroadcast))if(s(i.eventBroadcast))if(a(i.eventBroadcast[f.lObjectType]))if(s(i.eventBroadcast[f.lObjectType])){a(i.eventBroadcast[this.lObjectType].logic)&&"emit"!==i.eventBroadcast[f.lObjectType].logic&&"broadcast"!==i.eventBroadcast[f.lObjectType].logic&&c.warn(u+"Available event propagation logic are: 'emit' or 'broadcast'.");var p=!1,m=!1;a(i.eventBroadcast[f.lObjectType].enable)&&l(i.eventBroadcast[f.lObjectType].enable)&&(p=!0),a(i.eventBroadcast[f.lObjectType].disable)&&l(i.eventBroadcast[f.lObjectType].disable)&&(m=!0),p&&m?c.warn(u+"can not enable and disable events at the same time"):p||m?p?i.eventBroadcast[this.lObjectType].enable.forEach(function(e){-1!==h.indexOf(e)?c.warn(u+"This event "+e+" is already enabled"):-1===f.getAvailableEvents().indexOf(e)?c.warn(u+"This event "+e+" does not exist"):h.push(e)}):(h=this.getAvailableEvents(),i.eventBroadcast[f.lObjectType].disable.forEach(function(e){var t=h.indexOf(e);-1===t?c.warn(u+"This event "+e+" does not exist or has been already disabled"):h.splice(t,1)})):c.warn(u+"must enable or disable events")}else c.warn(u+"event-broadcast."+[f.lObjectType]+" must be an object check your model.");else h=this.getAvailableEvents();else c.error(u+"event-broadcast must be an object check your model.");else h=this.getAvailableEvents();return h.forEach(function(a){t.on(a,f.genDispatchEvent(e,a,"emit",i,t,n,r,o,d))}),"emit"},d}]).service("leafletEventsHelpers",["leafletEventsHelpersFactory",function(e){return new e}]),e.module("ui-leaflet").factory("leafletGeoJsonEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletData",function(e,t,n,r,i,o){var a=r.safeApply,s=i,l=function(){s.call(this,"leafletDirectiveGeoJson","geojson")};return l.prototype=new s,l.prototype.genDispatchEvent=function(t,n,r,i,l,u,c,d,h){var f=s.prototype.genDispatchEvent.call(this,t,n,r,i,l,u,c,d),p=this;return function(t){"mouseout"===n&&(h.resetStyleOnMouseout&&o.getGeoJSON(h.mapId).then(function(e){(d?e[d]:e).resetStyle(t.target)}),a(i,function(){e.$broadcast(p.rootBroadcastName+".mouseout",t)})),f(t)}},l.prototype.getAvailableEvents=function(){return["click","dblclick","mouseover","mouseout"]},new l}]),e.module("ui-leaflet").factory("leafletLabelEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory",function(e,t,n,r,i){var o=r,a=i,s=function(){a.call(this,"leafletDirectiveLabel","markers")};return s.prototype=new a,s.prototype.genDispatchEvent=function(e,t,n,r,i,o,s,l){var u=o.replace("markers.","");return a.prototype.genDispatchEvent.call(this,e,t,n,r,i,u,s,l)},s.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu"]},s.prototype.genEvents=function(e,t,n,r,i,a,s,l){var u=this,c=this.getAvailableEvents(),d=o.getObjectArrayPath("markers."+a);c.forEach(function(t){i.label.on(t,u.genDispatchEvent(e,t,n,r,i.label,d,s,l))})},s.prototype.bindEvents=function(e,t,n,r,i,o){},new s}]),e.module("ui-leaflet").factory("leafletMapEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpers","leafletIterators",function(e,t,n,r,i,o){var a=r.isDefined,s=i.fire,l=function(){return["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","contextmenu","focus","blur","preclick","load","unload","viewreset","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomanim","zoomend","zoomlevelschange","resize","autopanstart","layeradd","layerremove","baselayerchange","overlayadd","overlayremove","locationfound","locationerror","popupopen","popupclose","draw:created","draw:edited","draw:deleted","draw:drawstart","draw:drawstop","draw:editstart","draw:editstop","draw:deletestart","draw:deletestop"]},u=function(e,t,r,i){return i&&(i+="."),function(o){var a="leafletDirectiveMap."+i+t;n.debug(a),s(e,a,r,o,o.target,e)}};return{getAvailableMapEvents:l,genDispatchMapEvent:u,notifyCenterChangedToBounds:function(e){e.$broadcast("boundsChanged")},notifyCenterUrlHashChanged:function(e,t,n,r){if(a(n.urlHashCenter)){var i=t.getCenter(),o=i.lat.toFixed(4)+":"+i.lng.toFixed(4)+":"+t.getZoom();a(r.c)&&r.c===o||e.$emit("centerUrlHash",o)}},addEvents:function(e,t,n,r,i,a){o.each(n,function(n){var o={};o[r]=n,t||(t=e._container.id||""),e.on(n,u(i,n,a,t),o)})}}}]),e.module("ui-leaflet").factory("leafletMarkerEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletEventsHelpersFactory","leafletLabelEvents",function(e,t,n,r,i,o){var a=r.safeApply,s=r.isDefined,l=r,u=o,c=i,d=function(){c.call(this,"leafletDirectiveMarker","markers")};return d.prototype=new c,d.prototype.genDispatchEvent=function(t,n,r,i,o,s,l,u){var d=c.prototype.genDispatchEvent.call(this,t,n,r,i,o,s,l,u);return function(t){"click"===n?a(i,function(){e.$broadcast("leafletDirectiveMarkersClick",s)}):"dragend"===n&&(a(i,function(){l.lat=o.getLatLng().lat,l.lng=o.getLatLng().lng}),l.message&&!0===l.focus&&o.openPopup()),d(t)}},d.prototype.getAvailableEvents=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","dragstart","drag","dragend","move","remove","popupopen","popupclose","touchend","touchstart","touchmove","touchcancel","touchleave"]},d.prototype.bindEvents=function(e,t,n,r,i,o){var a=c.prototype.bindEvents.call(this,e,t,n,r,i,o);l.LabelPlugin.isLoaded()&&s(t.label)&&u.genEvents(e,n,a,i,t,r,o)},new d}]);var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};e.module("ui-leaflet").factory("leafletPathEvents",["$rootScope","$q","leafletLogger","leafletHelpers","leafletLabelEvents","leafletEventsHelpers",function(e,t,n,i,o,a){var s=i.isDefined,l=i.isObject,u=i,c=i.errorHeader,d=o,h=a.fire,f=n,p=function(e,t,n,r,i,o,a,s){return e=e||"",e&&(e="."+e),function(l){var u="leafletDirectivePath"+e+"."+t;f.debug(u),h(r,u,n,l,l.target||i,a,o,s)}},m=function(e,t,n,i,o){var a,h,m=[],v="broadcast";if(s(o.eventBroadcast))if(l(o.eventBroadcast))if(s(o.eventBroadcast.path))if(l(o.eventBroadcast.paths))f.warn(c+"event-broadcast.path must be an object check your model.");else{void 0!==o.eventBroadcast.path.logic&&null!==o.eventBroadcast.path.logic&&("emit"!==o.eventBroadcast.path.logic&&"broadcast"!==o.eventBroadcast.path.logic?f.warn(c+"Available event propagation logic are: 'emit' or 'broadcast'."):"emit"===o.eventBroadcast.path.logic&&(v="emit"));var _=!1,y=!1;if(void 0!==o.eventBroadcast.path.enable&&null!==o.eventBroadcast.path.enable&&"object"===r(o.eventBroadcast.path.enable)&&(_=!0),void 0!==o.eventBroadcast.path.disable&&null!==o.eventBroadcast.path.disable&&"object"===r(o.eventBroadcast.path.disable)&&(y=!0),_&&y)f.warn(c+"can not enable and disable events at the same time");else if(_||y)if(_)for(a=0;a<o.eventBroadcast.path.enable.length;a++)h=o.eventBroadcast.path.enable[a],-1!==m.indexOf(h)?f.warn(c+"This event "+h+" is already enabled"):-1===g().indexOf(h)?f.warn(c+"This event "+h+" does not exist"):m.push(h);else for(m=g(),a=0;a<o.eventBroadcast.path.disable.length;a++){h=o.eventBroadcast.path.disable[a];var b=m.indexOf(h);-1===b?f.warn(c+"This event "+h+" does not exist or has been already disabled"):m.splice(b,1)}else f.warn(c+"must enable or disable events")}else m=g();else f.error(c+"event-broadcast must be an object check your model.");else m=g();for(a=0;a<m.length;a++)h=m[a],t.on(h,p(e,h,v,o,m,n));u.LabelPlugin.isLoaded()&&s(t.label)&&d.genEvents(e,n,v,o,t,i)},g=function(){return["click","dblclick","mousedown","mouseover","mouseout","contextmenu","add","remove","popupopen","popupclose"]};return{getAvailablePathEvents:g,bindPathEvents:m}}])}(angular),!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters.hidden,.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper.hidden{visibility:hidden}.digit-keyboard{position:absolute;left:0;right:0;bottom:0;background:0 0;font-size:24px;z-index:5000}.digit-keyboard *{box-sizing:border-box}.digit-keyboard .digit-keyboard-row{display:flex;flex-direction:row;border-bottom:1px solid #333}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper{flex:1;text-align:center;position:relative;height:60px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{display:block;margin:0 auto;position:absolute;left:0;top:0;right:0;bottom:0;border-right:1px solid #333;border-left:1px solid #333;line-height:60px;-webkit-transition:background-color .1s linear;-moz-transition:background-color .1s linear;-o-transition:background-color .1s linear;-ms-transition:background-color .1s linear;transition:background-color .1s linear}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{font-size:1em;vertical-align:middle;display:inline-block;line-height:normal;text-align:center;margin-top:-.4em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{font-size:9.6px;line-height:9.6px;height:9.6px;margin-top:-.25em}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-action{position:absolute;left:0;top:0;right:0;bottom:0;line-height:60px;font-size:24px}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:first-child .digit-keyboard-key{border-right:none}.digit-keyboard .digit-keyboard-row .digit-keyboard-key-wrapper:last-child .digit-keyboard-key{border-left:none}.digit-keyboard .digit-keyboard-row:first-child{border-top:1px solid #333}.digit-keyboard .digit-keyboard-row:last-child{border:none}.digit-keyboard .digit-keyboard-row:last-child .digit-keyboard-key-wrapper .digit-keyboard-key{border-bottom:1px solid #333}.digit-keyboard.align-center{margin:0 auto}.digit-keyboard.align-left{margin-right:auto}.digit-keyboard.align-right{margin-left:auto}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{margin-top:-.3em}.digit-keyboard.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number .digit-keyboard-key-letters{display:none}.digit-keyboard.round-buttons .digit-keyboard-row{border:none}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper{margin:10px 0 0}.digit-keyboard.round-buttons .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key{width:60px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:1px solid #333}.digit-keyboard.round-buttons .digit-keyboard-row:last-child .digit-keyboard-key-wrapper{margin-bottom:10px}.digit-keyboard.round-buttons.no-letters .digit-keyboard-row .digit-keyboard-key-wrapper .digit-keyboard-key .digit-keyboard-key-number{height:57.6px;line-height:57.6px}.digit-keyboard.keyboard-light *{border-color:#e6e6e6!important}.digit-keyboard.keyboard-light .digit-keyboard-key{background:#fff;color:#444}.digit-keyboard.keyboard-light .digit-keyboard-key.activated{background:#e6e6e6}.digit-keyboard.keyboard-stable *{border-color:#dfdfdf!important}.digit-keyboard.keyboard-stable .digit-keyboard-key{background:#f8f8f8;color:#444}.digit-keyboard.keyboard-stable .digit-keyboard-key.activated{background:#dfdfdf}.digit-keyboard.keyboard-positive *{border-color:#0c60ee!important}.digit-keyboard.keyboard-positive .digit-keyboard-key{background:#387ef5;color:#fff}.digit-keyboard.keyboard-positive .digit-keyboard-key.activated{background:#0c60ee}.digit-keyboard.keyboard-calm *{border-color:#0a9dc7!important}.digit-keyboard.keyboard-calm .digit-keyboard-key{background:#11c1f3;color:#fff}.digit-keyboard.keyboard-calm .digit-keyboard-key.activated{background:#0a9dc7}.digit-keyboard.keyboard-balanced *{border-color:#28a54c!important}.digit-keyboard.keyboard-balanced .digit-keyboard-key{background:#33cd5f;color:#fff}.digit-keyboard.keyboard-balanced .digit-keyboard-key.activated{background:#28a54c}.digit-keyboard.keyboard-energized *{border-color:#e6b500!important}.digit-keyboard.keyboard-energized .digit-keyboard-key{background:#ffc900;color:#fff}.digit-keyboard.keyboard-energized .digit-keyboard-key.activated{background:#e6b500}.digit-keyboard.keyboard-assertive *{border-color:#e42112!important}.digit-keyboard.keyboard-assertive .digit-keyboard-key{background:#ef473a;color:#fff}.digit-keyboard.keyboard-assertive .digit-keyboard-key.activated{background:#e42112}.digit-keyboard.keyboard-royal *{border-color:#6b46e5!important}.digit-keyboard.keyboard-royal .digit-keyboard-key{background:#886aea;color:#fff}.digit-keyboard.keyboard-royal .digit-keyboard-key.activated{background:#6b46e5}.digit-keyboard.keyboard-dark *{border-color:#2b2b2b!important}.digit-keyboard.keyboard-dark .digit-keyboard-key{background:#444;color:#fff}.digit-keyboard.keyboard-dark .digit-keyboard-key.activated{background:#2b2b2b}.digit-keyboard.keyboard-opaque-black *{border-color:rgba(0,0,0,.75)!important}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key{background:rgba(0,0,0,.15);color:rgba(0,0,0,.75)}.digit-keyboard.keyboard-opaque-black .digit-keyboard-key.activated{background:rgba(0,0,0,.25)}.digit-keyboard.keyboard-opaque-white *{border-color:rgba(255,255,255,.75)!important}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key{background:rgba(255,255,255,.15);color:rgba(255,255,255,.75)}.digit-keyboard.keyboard-opaque-white .digit-keyboard-key.activated{background:rgba(255,255,255,.25)}.digit-keyboard.animation-slide-up{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:translate3d(0,0,0)}.digit-keyboard.animation-slide-up.ng-hide{transform:translate3d(0,100%,0)}.digit-keyboard.animation-pop{-webkit-transition:transform linear 150ms;transition:transform linear 150ms;transform:scale3d(1,1,1)}.digit-keyboard.animation-pop.ng-hide{transform:scale3d(0,0,1)}"),function(e){try{e=angular.module("ion-digit-keyboard.templates")}catch(t){e=angular.module("ion-digit-keyboard.templates",[])}e.run(["$templateCache",function(e){e.put("keyboard.tpl.html","<div class=\"digit-keyboard align-{{align}} keyboard-{{theme}} animation-{{animation}} {{roundButtons ? 'round-buttons' : ''}} {{showLetters == false ? 'no-letters' : ''}} {{(ngShow == false || ngHide == true) ? 'ng-hide' : ''}}\" style=\"width: {{width}};\"><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(1)><div class=digit-keyboard-key-number>1<div class=digit-keyboard-key-letters></div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(2)><div class=digit-keyboard-key-number>2<div class=digit-keyboard-key-letters>ABC</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(3)><div class=digit-keyboard-key-number>3<div class=digit-keyboard-key-letters>DEF</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(4)><div class=digit-keyboard-key-number>4<div class=digit-keyboard-key-letters>GHI</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(5)><div class=digit-keyboard-key-number>5<div class=digit-keyboard-key-letters>JKL</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(6)><div class=digit-keyboard-key-number>6<div class=digit-keyboard-key-letters>MNO</div></div></div></div></div><div class=digit-keyboard-row><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(7)><div class=digit-keyboard-key-number>7<div class=digit-keyboard-key-letters>PQRS</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(8)><div class=digit-keyboard-key-number>8<div class=digit-keyboard-key-letters>TUV</div></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(9)><div class=digit-keyboard-key-number>9<div class=digit-keyboard-key-letters>WXYZ</div></div></div></div></div><div class=digit-keyboard-row><div class=\"digit-keyboard-key-wrapper {{showLeftAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=leftAction($event) style={{leftStyle}}><div class=digit-keyboard-key-action ng-bind-html=leftHtml style={{leftFontSize}}></div></div></div><div class=digit-keyboard-key-wrapper><div class=digit-keyboard-key ng-click=numberAction(0)><div class=digit-keyboard-key-number style=\"margin-top: -0.30em;\">0</div></div></div><div class=\"digit-keyboard-key-wrapper {{showRightAction == false ? 'hidden' : ''}}\"><div class=digit-keyboard-key ng-click=rightAction($event) style={{rightStyle}}><div class=digit-keyboard-key-action ng-bind-html=rightHtml style={{rightFontSize}}></div></div></div></div></div>")}])}(),angular.module("ion-digit-keyboard.directive",[]).directive("ionDigitKeyboard",["$timeout","$ionicScrollDelegate","$templateCache",function(e,t,n){return{restrict:"EA",template:n.get("keyboard.tpl.html"),replace:!0,scope:{settings:"=settings",ngShow:"=",ngHide:"="},link:function(n,r,i){function o(){1==d&&(u.style.bottom="0px",u.style.height=c)}function a(){e(function(){if(1==d){var e=r[0].offsetHeight;c=u.style.height,u.style.height="auto",u.style.bottom=e+1+"px"}},160)}function s(){!0===n.ngShow?a():!1===n.ngShow&&o(),t.resize()}function l(){!0===n.ngHide?o():!1===n.ngHide&&a(),t.resize()}void 0===n.settings&&(n.settings={});var u,c,d=!0,h="ion-content",f={},p={};if(n.leftStyle="",n.rightStyle="",n.leftFontSize="",n.rightFontSize="",n.showLetters=void 0!==n.settings.showLetters&&n.settings.showLetters,n.roundButtons=void 0!==n.settings.roundButtons&&n.settings.roundButtons,n.numberAction=n.settings.action||function(){},n.width=n.settings.width||"100%",n.align=n.settings.align||"center",n.animation=n.settings.animation||"slide-up",n.theme=n.settings.theme||"stable",void 0!==n.settings.leftButton&&"object"==typeof n.settings.leftButton.style&&(void 0!==n.settings.leftButton.style.color&&(n.leftStyle+="color: "+n.settings.leftButton.style.color+";"),void 0!==n.settings.leftButton.style.bgColor&&(f.default=n.settings.leftButton.style.bgColor,n.leftStyle+="background-color: "+f.default+";"),void 0!==n.settings.leftButton.style.activeBgColor&&(f.active=n.settings.leftButton.style.activeBgColor),void 0!==n.settings.leftButton.style.borderColor&&(n.leftStyle+="border-color: "+n.settings.leftButton.style.borderColor+" !important;"),void 0!==n.settings.leftButton.style.fontSize&&(n.leftFontSize="font-size: "+n.settings.leftButton.style.fontSize+" !important;")),void 0!==n.settings.rightButton&&"object"==typeof n.settings.rightButton.style&&(void 0!==n.settings.rightButton.style.color&&(n.rightStyle+="color: "+n.settings.rightButton.style.color+";"),void 0!==n.settings.rightButton.style.bgColor&&(p.default=n.settings.rightButton.style.bgColor,n.rightStyle+="background-color: "+p.default+";"),
-void 0!==n.settings.rightButton.style.activeBgColor&&(p.active=n.settings.rightButton.style.activeBgColor),void 0!==n.settings.rightButton.style.borderColor&&(n.rightStyle+="border-color: "+n.settings.rightButton.style.borderColor+" !important;"),void 0!==n.settings.rightButton.style.fontSize&&(n.rightFontSize="font-size: "+n.settings.rightButton.style.fontSize+" !important;")),n.showLeftAction=!1,void 0!==n.settings.leftButton&&(n.leftHtml=n.settings.leftButton.html,n.showLeftAction=!0,n.leftAction=function(e){if(f.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===f.default&&(f.default=t.style.backgroundColor),t.style.backgroundColor=f.active,setTimeout(function(){t.style.backgroundColor=f.default},100)}n.settings.leftButton.action()}),n.showRightAction=!1,void 0!==n.settings.rightButton&&(n.rightHtml=n.settings.rightButton.html,n.showRightAction=!0,n.rightAction=function(e){if(p.active){var t=e.target;"I"==t.tagName?t=t.parentNode.parentNode:t.className.indexOf("digit-keyboard-key-action")>-1&&(t=t.parentNode),void 0===p.default&&(p.default=t.style.backgroundColor),t.style.backgroundColor=p.active,setTimeout(function(){t.style.backgroundColor=p.default},100)}n.settings.rightButton.action()}),"object"==typeof n.settings.resizeContent||"boolean"==typeof n.settings.resizeContent)if("object"==typeof n.settings.resizeContent)var d=void 0===n.settings.resizeContent.enable||n.settings.resizeContent.enable,h=void 0===n.settings.resizeContent.element?"ion-content":n.settings.resizeContent.element;else"boolean"==typeof n.settings.resizeContent&&(d=n.settings.resizeContent);u=r[0].parentElement.querySelectorAll(h)[0],n.$watch("ngShow",s),n.$watch("ngHide",l)}}}]),angular.module("ion-digit-keyboard",["ionic","ion-digit-keyboard.templates","ion-digit-keyboard.directive"]),function(e){"use strict";if("object"==typeof exports)module.exports=e("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js"));else if("function"==typeof define&&define.amd)define(["angular","chart"],e);else{if("undefined"==typeof angular)throw new Error("AngularJS framework needs to be included, see https://angularjs.org/");if("undefined"==typeof Chart)throw new Error("Chart.js library needs to be included, see http://jtblin.github.io/angular-chart.js/");e(angular,Chart)}}(function(e,t){"use strict";function n(){var n={responsive:!0},r={Chart:t,getOptions:function(t){var r=t&&n[t]||{};return e.extend({},n,r)}};this.setOptions=function(t,i){i?n[t]=e.merge(n[t]||{},i):(i=t,n=e.merge(n,i)),e.merge(r.Chart.defaults,n)},this.$get=function(){return r}}function r(n,r){function o(e,t,r){var i=L(e,t);if(v(t)&&S(e,t,r,i)){var o=r[0],a=o.getContext("2d");t.chartGetColor=_(t);var s=y(e,t);T(t),t.chart=new n.Chart(a,{type:e,data:s,options:i}),t.$emit("chart-create",t.chart),M(o,t)}}function a(e,t){return!!(e&&t&&e.length&&t.length)&&(Array.isArray(e[0])?e.length===t.length&&e.every(function(e,n){return e.length===t[n].length}):t.reduce(s,0)>0&&e.length===t.length)}function s(e,t){return e+t}function l(t,n,r){var i={point:void 0,points:void 0};return function(o){var a=t.chart.getElementAtEvent||t.chart.getPointAtEvent,s=t.chart.getElementsAtEvent||t.chart.getPointsAtEvent;if(s){var l=s.call(t.chart,o),u=a?a.call(t.chart,o)[0]:void 0;!1!==r&&(e.equals(i.points,l)||e.equals(i.point,u))||(i.point=u,i.points=l,t[n](l,o,u))}}}function u(r,i){for(var o=e.copy(i.chartColors||n.getOptions(r).chartColors||t.defaults.global.colors),a=o.length<i.chartData.length;o.length<i.chartData.length;)o.push(i.chartGetColor());return a&&(i.chartColors=o),o.map(c)}function c(e){return"string"==typeof e&&"r"===e[0]?h(g(e)):"string"==typeof e&&"#"===e[0]?h(m(e.substr(1))):"object"==typeof e&&null!==e?e:d()}function d(){return h([f(0,255),f(0,255),f(0,255)])}function h(e){var t=e[3]||1;return e=e.slice(0,3),{backgroundColor:p(e,.2),pointBackgroundColor:p(e,t),pointHoverBackgroundColor:p(e,.8),borderColor:p(e,t),pointBorderColor:"#fff",pointHoverBorderColor:p(e,t)}}function f(e,t){return Math.floor(Math.random()*(t-e+1))+e}function p(e,t){return i?"rgb("+e.join(",")+")":"rgba("+e.concat(t).join(",")+")"}function m(e){var t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}function g(e){var t=e.match(/^rgba?\(([\d,.]+)\)$/);if(!t)throw new Error("Cannot parse rgb value");return e=t[1].split(","),e.map(Number)}function v(e){return e.chartData&&e.chartData.length}function _(e){return"function"==typeof e.chartGetColor?e.chartGetColor:d}function y(e,t){var n=u(e,t);return Array.isArray(t.chartData[0])?b(t.chartLabels,t.chartData,t.chartSeries||[],n,t.chartDatasetOverride):w(t.chartLabels,t.chartData,n,t.chartDatasetOverride)}function b(t,n,r,i,o){return{labels:t,datasets:n.map(function(t,n){var a=e.extend({},i[n],{label:r[n],data:t});return o&&o.length>=n&&e.merge(a,o[n]),a})}}function w(t,n,r,i){var o={labels:t,datasets:[{data:n,backgroundColor:r.map(function(e){return e.pointBackgroundColor}),hoverBackgroundColor:r.map(function(e){return e.backgroundColor})}]};return i&&e.merge(o.datasets[0],i),o}function L(t,r){return e.extend({},n.getOptions(t),r.chartOptions)}function M(t,n){t.onclick=n.chartClick?l(n,"chartClick",!1):e.noop,t.onmousemove=n.chartHover?l(n,"chartHover",!0):e.noop}function k(e,t){Array.isArray(t.chartData[0])?t.chart.data.datasets.forEach(function(t,n){t.data=e[n]}):t.chart.data.datasets[0].data=e,t.chart.update(),t.$emit("chart-update",t.chart)}function x(e){return!e||Array.isArray(e)&&!e.length||"object"==typeof e&&!Object.keys(e).length}function S(e,t,n,i){return!i.responsive||0!==n[0].clientHeight||(r(function(){o(e,t,n)},50,!1),!1)}function T(e){e.chart&&(e.chart.destroy(),e.$emit("chart-destroy",e.chart))}return function(t){return{restrict:"CA",scope:{chartGetColor:"=?",chartType:"=",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColors:"=?",chartClick:"=?",chartHover:"=?",chartDatasetOverride:"=?"},link:function(n,r){function s(e,i){if(!e||!e.length||Array.isArray(e[0])&&!e[0].length)return void T(n);var s=t||n.chartType;return s?n.chart&&a(e,i)?k(e,n):void o(s,n,r):void 0}function l(i,a){if(!x(i)&&!e.equals(i,a)){var s=t||n.chartType;s&&o(s,n,r)}}function u(t,i){x(t)||e.equals(t,i)||o(t,n,r)}i&&window.G_vmlCanvasManager.initElement(r[0]),n.$watch("chartData",s,!0),n.$watch("chartSeries",l,!0),n.$watch("chartLabels",l,!0),n.$watch("chartOptions",l,!0),n.$watch("chartColors",l,!0),n.$watch("chartDatasetOverride",l,!0),n.$watch("chartType",u,!1),n.$on("$destroy",function(){T(n)}),n.$on("$resize",function(){n.chart&&n.chart.resize()})}}}}t.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",t.defaults.global.tooltips.mode="label",t.defaults.global.elements.line.borderWidth=2,t.defaults.global.elements.rectangle.borderWidth=2,t.defaults.global.legend.display=!1,t.defaults.global.colors=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var i="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return i&&(t.defaults.global.animation=!1),e.module("chart.js",[]).provider("ChartJs",n).factory("ChartJsFactory",["ChartJs","$timeout",r]).directive("chartBase",["ChartJsFactory",function(e){return new e}]).directive("chartLine",["ChartJsFactory",function(e){return new e("line")}]).directive("chartBar",["ChartJsFactory",function(e){return new e("bar")}]).directive("chartHorizontalBar",["ChartJsFactory",function(e){return new e("horizontalBar")}]).directive("chartRadar",["ChartJsFactory",function(e){return new e("radar")}]).directive("chartDoughnut",["ChartJsFactory",function(e){return new e("doughnut")}]).directive("chartPie",["ChartJsFactory",function(e){return new e("pie")}]).directive("chartPolarArea",["ChartJsFactory",function(e){return new e("polarArea")}]).directive("chartBubble",["ChartJsFactory",function(e){return new e("bubble")}]).name}),function(e){var t=function(e){var t=e.module("FBAngular",[]);return t.factory("Fullscreen",["$document","$rootScope",function(t,n){var r=t[0],i=n.$new();t.on("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",function(){i.$emit("FBFullscreen.change",o.isEnabled())});var o={$on:e.bind(i,i.$on),all:function(e){o.enable(r.documentElement,e)},enable:function(e,t){e.requestFullScreen?e.requestFullScreen(t):e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.msRequestFullscreen&&e.msRequestFullscreen()},cancel:function(){r.cancelFullScreen?r.cancelFullScreen():r.mozCancelFullScreen?r.mozCancelFullScreen():r.webkitExitFullscreen?r.webkitExitFullscreen():r.msExitFullscreen&&r.msExitFullscreen()},isEnabled:function(){return!!(r.fullscreenElement||r.mozFullScreenElement||r.webkitFullscreenElement||r.msFullscreenElement)},toggleAll:function(){o.isEnabled()?o.cancel():o.all()},isSupported:function(){var e=r.documentElement;return!!(e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullscreen||e.msRequestFullscreen)}};return o}]),t.directive("fullscreen",["Fullscreen",function(e){return{link:function(t,n,r){if(r.fullscreen){t.$watch(r.fullscreen,function(t){var r=e.isEnabled();t&&!r?(e.enable(n[0]),n.addClass("isInFullScreen")):!t&&r&&(e.cancel(),n.removeClass("isInFullScreen"))});var i=e.$on("FBFullscreen.change",function(e,i){i||t.$evalAsync(function(){t.$eval(r.fullscreen+"= false"),n.removeClass("isInFullScreen")})});t.$on("$destroy",function(){i()})}else{if(void 0!==r.onlyWatchedProperty)return;n.on("click",function(t){e.enable(n[0])})}}}}]),t};"function"==typeof define&&define.amd?define("FBAngular",["angular"],function(e){return t(e)}):"undefined"!=typeof module&&module.exports?module.exports=t(e.angular).name:t(e.angular)}(window),function(){var e=("undefined"!=typeof module&&null!==module?module.exports:void 0)||(window.Base58={});e.alphabet="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",e.alphabetMap={};for(var t=0;t<e.alphabet.length;t++)e.alphabetMap[e.alphabet.charAt(t)]=t;e.encode=function(n){var r,i,o;if(0===n.length)return"";for(t=void 0,o=void 0,i=[0],t=0;t<n.length;){for(o=0;o<i.length;)i[o]<<=8,o++;for(i[0]+=n[t],r=0,o=0;o<i.length;)i[o]+=r,r=i[o]/58|0,i[o]%=58,++o;for(;r;)i.push(r%58),r=r/58|0;t++}for(t=0;0===n[t]&&t<n.length-1;)i.push(0),t++;return i.reverse().map(function(t){return e.alphabet[t]}).join("")},e.decode=function(n){var r,i,o,a;if(0===n.length)return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(0):new Buffer(0);for(t=void 0,a=void 0,r=[0],t=0;t<n.length;){if(!((i=n[t])in e.alphabetMap))throw"Base58.decode received unacceptable input. Character '"+i+"' is not in the Base58 alphabet.";for(a=0;a<r.length;)r[a]*=58,a++;for(r[0]+=e.alphabetMap[i],o=0,a=0;a<r.length;)r[a]+=o,o=r[a]>>8,r[a]&=255,++a;for(;o;)r.push(255&o),o>>=8;t++}for(t=0;"1"===n[t]&&t<n.length-1;)r.push(0),t++;return"undefined"!=typeof Uint8Array&&null!==Uint8Array?new Uint8Array(r.reverse()):new Buffer(r.reverse())}}.call(this),function(){"use strict";function e(e,t){t?(d[0]=d[16]=d[1]=d[2]=d[3]=d[4]=d[5]=d[6]=d[7]=d[8]=d[9]=d[10]=d[11]=d[12]=d[13]=d[14]=d[15]=0,this.blocks=d):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}var t="object"==typeof window?window:{},n=!t.JS_SHA256_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;n&&(t=global);var r=!t.JS_SHA256_NO_COMMON_JS&&"object"==typeof module&&module.exports,i="function"==typeof define&&define.amd,o="undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),s=[-2147483648,8388608,32768,128],l=[24,16,8,0],u=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],c=["hex","array","digest","arrayBuffer"],d=[],h=function(t,n){return function(r){return new e(n,!0).update(r)[t]()}},f=function(t){var r=h("hex",t);n&&(r=p(r,t)),r.create=function(){return new e(t)},r.update=function(e){return r.create().update(e)};for(var i=0;i<c.length;++i){var o=c[i];r[o]=h(o,t)}return r},p=function(e,t){var n=require("crypto"),r=require("buffer").Buffer,i=t?"sha224":"sha256";return function(t){if("string"==typeof t)return n.createHash(i).update(t,"utf8").digest("hex");if(o&&t instanceof ArrayBuffer)t=new Uint8Array(t);else if(void 0===t.length)return e(t);return n.createHash(i).update(new r(t)).digest("hex")}};e.prototype.update=function(e){if(!this.finalized){var n="string"!=typeof e;n&&o&&e instanceof t.ArrayBuffer&&(e=new Uint8Array(e));for(var r,i,a=0,s=e.length||0,u=this.blocks;s>a;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),n)for(i=this.start;s>a&&64>i;++a)u[i>>2]|=e[a]<<l[3&i++];else for(i=this.start;s>a&&64>i;++a)r=e.charCodeAt(a),128>r?u[i>>2]|=r<<l[3&i++]:2048>r?(u[i>>2]|=(192|r>>6)<<l[3&i++],u[i>>2]|=(128|63&r)<<l[3&i++]):55296>r||r>=57344?(u[i>>2]|=(224|r>>12)<<l[3&i++],u[i>>2]|=(128|r>>6&63)<<l[3&i++],u[i>>2]|=(128|63&r)<<l[3&i++]):(r=65536+((1023&r)<<10|1023&e.charCodeAt(++a)),u[i>>2]|=(240|r>>18)<<l[3&i++],u[i>>2]|=(128|r>>12&63)<<l[3&i++],u[i>>2]|=(128|r>>6&63)<<l[3&i++],u[i>>2]|=(128|63&r)<<l[3&i++]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=u[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this}},e.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=s[3&t],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[15]=this.bytes<<3,this.hash()}},e.prototype.hash=function(){var e,t,n,r,i,o,a,s,l,c,d,h=this.h0,f=this.h1,p=this.h2,m=this.h3,g=this.h4,v=this.h5,_=this.h6,y=this.h7,b=this.blocks;for(e=16;64>e;++e)i=b[e-15],t=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,i=b[e-2],n=(i>>>17|i<<15)^(i>>>19|i<<13)^i>>>10,b[e]=b[e-16]+t+b[e-7]+n<<0;for(d=f&p,e=0;64>e;e+=4)this.first?(this.is224?(s=300032,i=b[0]-1413257819,y=i-150054599<<0,m=i+24177077<<0):(s=704751109,i=b[0]-210244248,y=i-1521486534<<0,m=i+143694565<<0),this.first=!1):(t=(h>>>2|h<<30)^(h>>>13|h<<19)^(h>>>22|h<<10),n=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),s=h&f,r=s^h&p^d,a=g&v^~g&_,i=y+n+a+u[e]+b[e],o=t+r,y=m+i<<0,m=i+o<<0),t=(m>>>2|m<<30)^(m>>>13|m<<19)^(m>>>22|m<<10),n=(y>>>6|y<<26)^(y>>>11|y<<21)^(y>>>25|y<<7),l=m&h,r=l^m&f^s,a=y&g^~y&v,i=_+n+a+u[e+1]+b[e+1],o=t+r,_=p+i<<0,p=i+o<<0,t=(p>>>2|p<<30)^(p>>>13|p<<19)^(p>>>22|p<<10),n=(_>>>6|_<<26)^(_>>>11|_<<21)^(_>>>25|_<<7),c=p&m,r=c^p&h^l,a=_&y^~_&g,i=v+n+a+u[e+2]+b[e+2],o=t+r,v=f+i<<0,f=i+o<<0,t=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),n=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7),d=f&p,r=d^f&m^c,a=v&_^~v&y,i=g+n+a+u[e+3]+b[e+3],o=t+r,g=h+i<<0,h=i+o<<0;this.h0=this.h0+h<<0,this.h1=this.h1+f<<0,this.h2=this.h2+p<<0,this.h3=this.h3+m<<0,this.h4=this.h4+g<<0,this.h5=this.h5+v<<0,this.h6=this.h6+_<<0,this.h7=this.h7+y<<0},e.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,s=this.h6,l=this.h7,u=a[e>>28&15]+a[e>>24&15]+a[e>>20&15]+a[e>>16&15]+a[e>>12&15]+a[e>>8&15]+a[e>>4&15]+a[15&e]+a[t>>28&15]+a[t>>24&15]+a[t>>20&15]+a[t>>16&15]+a[t>>12&15]+a[t>>8&15]+a[t>>4&15]+a[15&t]+a[n>>28&15]+a[n>>24&15]+a[n>>20&15]+a[n>>16&15]+a[n>>12&15]+a[n>>8&15]+a[n>>4&15]+a[15&n]+a[r>>28&15]+a[r>>24&15]+a[r>>20&15]+a[r>>16&15]+a[r>>12&15]+a[r>>8&15]+a[r>>4&15]+a[15&r]+a[i>>28&15]+a[i>>24&15]+a[i>>20&15]+a[i>>16&15]+a[i>>12&15]+a[i>>8&15]+a[i>>4&15]+a[15&i]+a[o>>28&15]+a[o>>24&15]+a[o>>20&15]+a[o>>16&15]+a[o>>12&15]+a[o>>8&15]+a[o>>4&15]+a[15&o]+a[s>>28&15]+a[s>>24&15]+a[s>>20&15]+a[s>>16&15]+a[s>>12&15]+a[s>>8&15]+a[s>>4&15]+a[15&s];return this.is224||(u+=a[l>>28&15]+a[l>>24&15]+a[l>>20&15]+a[l>>16&15]+a[l>>12&15]+a[l>>8&15]+a[l>>4&15]+a[15&l]),u},e.prototype.toString=e.prototype.hex,e.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,n=this.h2,r=this.h3,i=this.h4,o=this.h5,a=this.h6,s=this.h7,l=[e>>24&255,e>>16&255,e>>8&255,255&e,t>>24&255,t>>16&255,t>>8&255,255&t,n>>24&255,n>>16&255,n>>8&255,255&n,r>>24&255,r>>16&255,r>>8&255,255&r,i>>24&255,i>>16&255,i>>8&255,255&i,o>>24&255,o>>16&255,o>>8&255,255&o,a>>24&255,a>>16&255,a>>8&255,255&a];return this.is224||l.push(s>>24&255,s>>16&255,s>>8&255,255&s),l},e.prototype.array=e.prototype.digest,e.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};var m=f();m.sha256=m,m.sha224=f(!0),r?module.exports=m:(t.sha256=m.sha256,t.sha224=m.sha224,i&&define(function(){return m}))}(),function(){angular.module("ngCordova",["ngCordova.plugins"]),angular.module("ngCordova.plugins.3dtouch",[]).factory("$cordova3DTouch",["$q",function(e){var t=[],n={},r=function(e){return function(t){for(var n in e)t.type===n&&e[n]()}};return{isAvailable:function(){var t=e.defer();return window.cordova?window.ThreeDeeTouch?window.ThreeDeeTouch.isAvailable(function(e){t.resolve(e)},function(e){t.reject(e)}):t.reject("Could not find 3D touch plugin"):t.reject("Not supported in browser"),t.promise},addQuickAction:function(i,o,a,s,l,u){var c=e.defer(),d={type:i,title:o,subtitle:l};return a&&(d.iconType=a),s&&(d.iconTemplate=s),this.isAvailable().then(function(){t.push(d),n[i]=u,window.ThreeDeeTouch.configureQuickActions(t),window.ThreeDeeTouch.onHomeIconPressed=r(n),c.resolve(t)},function(e){c.reject(e)}),c.promise},addQuickActionHandler:function(t,i){var o=e.defer();return this.isAvailable().then(function(){n[t]=i,window.ThreeDeeTouch.onHomeIconPressed=r(n),o.resolve(!0)},function(e){o.reject(e)}),o.promise},enableLinkPreview:function(){var t=e.defer();return this.isAvailable().then(function(){window.ThreeDeeTouch.enableLinkPreview(),t.resolve(!0)},function(e){t.reject(e)}),t.promise},addForceTouchHandler:function(t){var n=e.defer();return this.isAvailable().then(function(){window.ThreeDeeTouch.watchForceTouches(t),n.resolve(!0)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.actionSheet",[]).factory("$cordovaActionSheet",["$q","$window",function(e,t){return{show:function(n){var r=e.defer();return t.plugins.actionsheet.show(n,function(e){r.resolve(e)}),r.promise},hide:function(){return t.plugins.actionsheet.hide()}}}]),angular.module("ngCordova.plugins.adMob",[]).factory("$cordovaAdMob",["$q","$window",function(e,t){return{createBannerView:function(n){var r=e.defer();return t.plugins.AdMob.createBannerView(n,function(){r.resolve()},function(){r.reject()}),r.promise},createInterstitialView:function(n){var r=e.defer();return t.plugins.AdMob.createInterstitialView(n,function(){r.resolve()},function(){r.reject()}),r.promise},requestAd:function(n){var r=e.defer();return t.plugins.AdMob.requestAd(n,function(){r.resolve()},function(){r.reject()}),r.promise},showAd:function(n){var r=e.defer();return t.plugins.AdMob.showAd(n,function(){r.resolve()},function(){r.reject()}),r.promise},requestInterstitialAd:function(n){var r=e.defer();return t.plugins.AdMob.requestInterstitialAd(n,function(){r.resolve()},function(){r.reject()}),r.promise}}}]),angular.module("ngCordova.plugins.appAvailability",[]).factory("$cordovaAppAvailability",["$q",function(e){return{check:function(t){var n=e.defer();return appAvailability.check(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.appRate",[]).provider("$cordovaAppRate",[function(){this.setPreferences=function(e){e&&angular.isObject(e)&&(AppRate.preferences.useLanguage=e.language||null,AppRate.preferences.displayAppName=e.appName||"",AppRate.preferences.promptAgainForEachNewVersion=e.promptForNewVersion||!0,AppRate.preferences.openStoreInApp=e.openStoreInApp||!1,AppRate.preferences.usesUntilPrompt=e.usesUntilPrompt||3,AppRate.preferences.useCustomRateDialog=e.useCustomRateDialog||!1,AppRate.preferences.storeAppURL.ios=e.iosURL||null,AppRate.preferences.storeAppURL.android=e.androidURL||null,AppRate.preferences.storeAppURL.blackberry=e.blackberryURL||null,AppRate.preferences.storeAppURL.windows8=e.windowsURL||null)},this.setCustomLocale=function(e){var t={title:"Rate %@",message:"If you enjoy using %@, would you mind taking a moment to rate it? It won’t take more than a minute. Thanks for your support!",cancelButtonLabel:"No, Thanks",laterButtonLabel:"Remind Me Later",rateButtonLabel:"Rate It Now"};t=angular.extend(t,e),AppRate.preferences.customLocale=t},this.$get=["$q",function(e){return{promptForRating:function(t){var n=e.defer(),r=AppRate.promptForRating(t);return n.resolve(r),n.promise},navigateToAppStore:function(){var t=e.defer(),n=AppRate.navigateToAppStore();return t.resolve(n),t.promise},onButtonClicked:function(e){AppRate.preferences.callbacks.onButtonClicked=e.bind(this)},onRateDialogShow:function(e){AppRate.preferences.callbacks.onRateDialogShow=e.bind(this)}}}]}]),angular.module("ngCordova.plugins.appVersion",[]).factory("$cordovaAppVersion",["$q",function(e){return{getAppName:function(){var t=e.defer();return cordova.getAppVersion.getAppName(function(e){t.resolve(e)}),t.promise},getPackageName:function(){var t=e.defer();return cordova.getAppVersion.getPackageName(function(e){t.resolve(e)}),t.promise},getVersionNumber:function(){var t=e.defer();return cordova.getAppVersion.getVersionNumber(function(e){t.resolve(e)}),t.promise},getVersionCode:function(){var t=e.defer();return cordova.getAppVersion.getVersionCode(function(e){t.resolve(e)}),t.promise}}}]),angular.module("ngCordova.plugins.backgroundGeolocation",[]).factory("$cordovaBackgroundGeolocation",["$q","$window",function(e,t){return{init:function(){t.navigator.geolocation.getCurrentPosition(function(e){return e})},configure:function(n){this.init();var r=e.defer();return t.plugins.backgroundGeoLocation.configure(function(e){r.notify(e),t.plugins.backgroundGeoLocation.finish()},function(e){r.reject(e)},n),this.start(),r.promise},start:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.start(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},stop:function(){var n=e.defer();return t.plugins.backgroundGeoLocation.stop(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.badge",[]).factory("$cordovaBadge",["$q",function(e){return{hasPermission:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission(function(e){e?t.resolve(!0):t.reject("You do not have permission")}),t.promise},promptForPermission:function(){return cordova.plugins.notification.badge.promptForPermission()},set:function(t,n,r){var i=e.defer();return cordova.plugins.notification.badge.hasPermission(function(e){e?i.resolve(cordova.plugins.notification.badge.set(t,n,r)):i.reject("You do not have permission to set Badge")}),i.promise},get:function(){var t=e.defer();return cordova.plugins.notification.badge.hasPermission(function(e){e?cordova.plugins.notification.badge.get(function(e){t.resolve(e)}):t.reject("You do not have permission to get Badge")}),t.promise},clear:function(t,n){var r=e.defer();return cordova.plugins.notification.badge.hasPermission(function(e){e?r.resolve(cordova.plugins.notification.badge.clear(t,n)):r.reject("You do not have permission to clear Badge")}),r.promise},increase:function(t,n,r){var i=e.defer();return this.hasPermission().then(function(){i.resolve(cordova.plugins.notification.badge.increase(t,n,r))},function(){i.reject("You do not have permission to increase Badge")}),i.promise},decrease:function(t,n,r){var i=e.defer();return this.hasPermission().then(function(){i.resolve(cordova.plugins.notification.badge.decrease(t,n,r))},function(){i.reject("You do not have permission to decrease Badge")}),i.promise},configure:function(e){return cordova.plugins.notification.badge.configure(e)}}}]),angular.module("ngCordova.plugins.barcodeScanner",[]).factory("$cordovaBarcodeScanner",["$q",function(e){return{scan:function(t){var n=e.defer();return cordova.plugins.barcodeScanner.scan(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},encode:function(t,n){var r=e.defer();return t=t||"TEXT_TYPE",cordova.plugins.barcodeScanner.encode(t,n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}}}]),angular.module("ngCordova.plugins.batteryStatus",[]).factory("$cordovaBatteryStatus",["$rootScope","$window","$timeout",function(e,t,n){var r=function(t){n(function(){e.$broadcast("$cordovaBatteryStatus:status",t)})},i=function(t){n(function(){e.$broadcast("$cordovaBatteryStatus:critical",t)})},o=function(t){n(function(){e.$broadcast("$cordovaBatteryStatus:low",t)})};return document.addEventListener("deviceready",function(){navigator.battery&&(t.addEventListener("batterystatus",r,!1),t.addEventListener("batterycritical",i,!1),t.addEventListener("batterylow",o,!1))},!1),!0}]).run(["$injector",function(e){e.get("$cordovaBatteryStatus")}]),angular.module("ngCordova.plugins.beacon",[]).factory("$cordovaBeacon",["$window","$rootScope","$timeout","$q",function(e,t,n,r){var i=null,o=null,a=null,s=null,l=null,u=null,c=null,d=null;return document.addEventListener("deviceready",function(){if(e.cordova&&e.cordova.plugins&&e.cordova.plugins.locationManager){var r=new e.cordova.plugins.locationManager.Delegate;r.didDetermineStateForRegion=function(e){n(function(){t.$broadcast("$cordovaBeacon:didDetermineStateForRegion",e)}),i&&i(e)},r.didStartMonitoringForRegion=function(e){n(function(){t.$broadcast("$cordovaBeacon:didStartMonitoringForRegion",e)}),o&&o(e)},r.didExitRegion=function(e){n(function(){t.$broadcast("$cordovaBeacon:didExitRegion",e)}),a&&a(e)},r.didEnterRegion=function(e){n(function(){t.$broadcast("$cordovaBeacon:didEnterRegion",e)}),s&&s(e)},r.didRangeBeaconsInRegion=function(e){n(function(){t.$broadcast("$cordovaBeacon:didRangeBeaconsInRegion",e)}),l&&l(e)},r.peripheralManagerDidStartAdvertising=function(e){n(function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidStartAdvertising",e)}),u&&u(e)},r.peripheralManagerDidUpdateState=function(e){n(function(){t.$broadcast("$cordovaBeacon:peripheralManagerDidUpdateState",e)}),c&&c(e)},r.didChangeAuthorizationStatus=function(e){n(function(){t.$broadcast("$cordovaBeacon:didChangeAuthorizationStatus",e)}),d&&d(e)},e.cordova.plugins.locationManager.setDelegate(r)}},!1),{setCallbackDidDetermineStateForRegion:function(e){i=e},setCallbackDidStartMonitoringForRegion:function(e){o=e},setCallbackDidExitRegion:function(e){a=e},setCallbackDidEnterRegion:function(e){s=e},setCallbackDidRangeBeaconsInRegion:function(e){l=e},setCallbackPeripheralManagerDidStartAdvertising:function(e){u=e},setCallbackPeripheralManagerDidUpdateState:function(e){c=e},setCallbackDidChangeAuthorizationStatus:function(e){d=e},createBeaconRegion:function(t,n,r,i,o){return r=r||void 0,i=i||void 0,new e.cordova.plugins.locationManager.BeaconRegion(t,n,r,i,o)},isBluetoothEnabled:function(){return r.when(e.cordova.plugins.locationManager.isBluetoothEnabled())},enableBluetooth:function(){return r.when(e.cordova.plugins.locationManager.enableBluetooth())},disableBluetooth:function(){return r.when(e.cordova.plugins.locationManager.disableBluetooth())},startMonitoringForRegion:function(t){return r.when(e.cordova.plugins.locationManager.startMonitoringForRegion(t))},stopMonitoringForRegion:function(t){return r.when(e.cordova.plugins.locationManager.stopMonitoringForRegion(t))},requestStateForRegion:function(t){return r.when(e.cordova.plugins.locationManager.requestStateForRegion(t))},startRangingBeaconsInRegion:function(t){return r.when(e.cordova.plugins.locationManager.startRangingBeaconsInRegion(t))},stopRangingBeaconsInRegion:function(t){return r.when(e.cordova.plugins.locationManager.stopRangingBeaconsInRegion(t))},getAuthorizationStatus:function(){return r.when(e.cordova.plugins.locationManager.getAuthorizationStatus())},requestWhenInUseAuthorization:function(){return r.when(e.cordova.plugins.locationManager.requestWhenInUseAuthorization())},requestAlwaysAuthorization:function(){return r.when(e.cordova.plugins.locationManager.requestAlwaysAuthorization())},getMonitoredRegions:function(){return r.when(e.cordova.plugins.locationManager.getMonitoredRegions())},getRangedRegions:function(){return r.when(e.cordova.plugins.locationManager.getRangedRegions())},isRangingAvailable:function(){return r.when(e.cordova.plugins.locationManager.isRangingAvailable())},isMonitoringAvailableForClass:function(t){return r.when(e.cordova.plugins.locationManager.isMonitoringAvailableForClass(t))},startAdvertising:function(t,n){return r.when(e.cordova.plugins.locationManager.startAdvertising(t,n))},stopAdvertising:function(){return r.when(e.cordova.plugins.locationManager.stopAdvertising())},isAdvertisingAvailable:function(){return r.when(e.cordova.plugins.locationManager.isAdvertisingAvailable())},isAdvertising:function(){return r.when(e.cordova.plugins.locationManager.isAdvertising())},disableDebugLogs:function(){return r.when(e.cordova.plugins.locationManager.disableDebugLogs())},enableDebugNotifications:function(){return r.when(e.cordova.plugins.locationManager.enableDebugNotifications())},disableDebugNotifications:function(){return r.when(e.cordova.plugins.locationManager.disableDebugNotifications())},enableDebugLogs:function(){return r.when(e.cordova.plugins.locationManager.enableDebugLogs())},appendToDeviceLog:function(t){return r.when(e.cordova.plugins.locationManager.appendToDeviceLog(t))}}}]),angular.module("ngCordova.plugins.ble",[]).factory("$cordovaBLE",["$q","$timeout","$log",function(e,t,n){return{scan:function(n,r){var i=e.defer();return ble.startScan(n,function(e){i.notify(e)},function(e){i.reject(e)}),t(function(){ble.stopScan(function(){i.resolve()},function(e){i.reject(e)})},1e3*r),i.promise},startScan:function(e,t,n){return ble.startScan(e,t,n)},stopScan:function(){var t=e.defer();return ble.stopScan(function(){t.resolve()},function(e){t.reject(e)}),t.promise},connect:function(t){var n=e.defer();return ble.connect(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},disconnect:function(t){var n=e.defer();return ble.disconnect(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},read:function(t,n,r){var i=e.defer();return ble.read(t,n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},write:function(t,n,r,i){var o=e.defer();return ble.write(t,n,r,i,function(e){o.resolve(e)},function(e){o.reject(e)}),o.promise},writeWithoutResponse:function(t,n,r,i){var o=e.defer();return ble.writeWithoutResponse(t,n,r,i,function(e){o.resolve(e)},function(e){o.reject(e)}),o.promise},writeCommand:function(e,t,r,i){return n.warning("writeCommand is deprecated, use writeWithoutResponse"),this.writeWithoutResponse(e,t,r,i)},startNotification:function(e,t,n,r,i){return ble.startNotification(e,t,n,r,i)},
-stopNotification:function(t,n,r){var i=e.defer();return ble.stopNotification(t,n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},isConnected:function(t){var n=e.defer();return ble.isConnected(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},enable:function(){var t=e.defer();return ble.enable(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},isEnabled:function(){var t=e.defer();return ble.isEnabled(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}}}]),angular.module("ngCordova.plugins.bluetoothSerial",[]).factory("$cordovaBluetoothSerial",["$q","$window",function(e,t){return{connect:function(n){var r=e.defer(),i=e.defer(),o=!1;return t.bluetoothSerial.connect(n,function(){o=!0,r.resolve(i)},function(e){!1===o&&i.reject(e),r.reject(e)}),r.promise},connectInsecure:function(n){var r=e.defer();return t.bluetoothSerial.connectInsecure(n,function(){r.resolve()},function(e){r.reject(e)}),r.promise},disconnect:function(){var n=e.defer();return t.bluetoothSerial.disconnect(function(){n.resolve()},function(e){n.reject(e)}),n.promise},list:function(){var n=e.defer();return t.bluetoothSerial.list(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},discoverUnpaired:function(){var n=e.defer();return t.bluetoothSerial.discoverUnpaired(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},setDeviceDiscoveredListener:function(){var n=e.defer();return t.bluetoothSerial.setDeviceDiscoveredListener(function(e){n.notify(e)}),n.promise},clearDeviceDiscoveredListener:function(){t.bluetoothSerial.clearDeviceDiscoveredListener()},showBluetoothSettings:function(){var n=e.defer();return t.bluetoothSerial.showBluetoothSettings(function(){n.resolve()},function(e){n.reject(e)}),n.promise},isEnabled:function(){var n=e.defer();return t.bluetoothSerial.isEnabled(function(){n.resolve()},function(){n.reject()}),n.promise},enable:function(){var n=e.defer();return t.bluetoothSerial.enable(function(){n.resolve()},function(){n.reject()}),n.promise},isConnected:function(){var n=e.defer();return t.bluetoothSerial.isConnected(function(){n.resolve()},function(){n.reject()}),n.promise},available:function(){var n=e.defer();return t.bluetoothSerial.available(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},read:function(){var n=e.defer();return t.bluetoothSerial.read(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},readUntil:function(n){var r=e.defer();return t.bluetoothSerial.readUntil(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},write:function(n){var r=e.defer();return t.bluetoothSerial.write(n,function(){r.resolve()},function(e){r.reject(e)}),r.promise},subscribe:function(n){var r=e.defer();return t.bluetoothSerial.subscribe(n,function(e){r.notify(e)},function(e){r.reject(e)}),r.promise},subscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.subscribeRawData(function(e){n.notify(e)},function(e){n.reject(e)}),n.promise},unsubscribe:function(){var n=e.defer();return t.bluetoothSerial.unsubscribe(function(){n.resolve()},function(e){n.reject(e)}),n.promise},unsubscribeRawData:function(){var n=e.defer();return t.bluetoothSerial.unsubscribeRawData(function(){n.resolve()},function(e){n.reject(e)}),n.promise},clear:function(){var n=e.defer();return t.bluetoothSerial.clear(function(){n.resolve()},function(e){n.reject(e)}),n.promise},readRSSI:function(){var n=e.defer();return t.bluetoothSerial.readRSSI(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.brightness",[]).factory("$cordovaBrightness",["$q","$window",function(e,t){return{get:function(){var n=e.defer();return t.cordova?t.cordova.plugins.brightness.getBrightness(function(e){n.resolve(e)},function(e){n.reject(e)}):n.reject("Not supported without cordova.js"),n.promise},set:function(n){var r=e.defer();return t.cordova?t.cordova.plugins.brightness.setBrightness(n,function(e){r.resolve(e)},function(e){r.reject(e)}):r.reject("Not supported without cordova.js"),r.promise},setKeepScreenOn:function(n){var r=e.defer();return t.cordova?t.cordova.plugins.brightness.setKeepScreenOn(n,function(e){r.resolve(e)},function(e){r.reject(e)}):r.reject("Not supported without cordova.js"),r.promise}}}]),angular.module("ngCordova.plugins.calendar",[]).factory("$cordovaCalendar",["$q","$window",function(e,t){return{createCalendar:function(n){var r=e.defer(),i=t.plugins.calendar.getCreateCalendarOptions();return"string"==typeof n?i.calendarName=n:i=angular.extend(i,n),t.plugins.calendar.createCalendar(i,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},deleteCalendar:function(n){var r=e.defer();return t.plugins.calendar.deleteCalendar(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},createEvent:function(n){var r=e.defer(),i={title:null,location:null,notes:null,startDate:null,endDate:null};return i=angular.extend(i,n),t.plugins.calendar.createEvent(i.title,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},createEventWithOptions:function(n){var r=e.defer(),i=[],o=window.plugins.calendar.getCalendarOptions(),a={title:null,location:null,notes:null,startDate:null,endDate:null};i=Object.keys(a);for(var s in n)-1===i.indexOf(s)?o[s]=n[s]:a[s]=n[s];return t.plugins.calendar.createEventWithOptions(a.title,a.location,a.notes,new Date(a.startDate),new Date(a.endDate),o,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},createEventInteractively:function(n){var r=e.defer(),i={title:null,location:null,notes:null,startDate:null,endDate:null};return i=angular.extend(i,n),t.plugins.calendar.createEventInteractively(i.title,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},createEventInNamedCalendar:function(n){var r=e.defer(),i={title:null,location:null,notes:null,startDate:null,endDate:null,calendarName:null};return i=angular.extend(i,n),t.plugins.calendar.createEventInNamedCalendar(i.title,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),i.calendarName,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},findEvent:function(n){var r=e.defer(),i={title:null,location:null,notes:null,startDate:null,endDate:null};return i=angular.extend(i,n),t.plugins.calendar.findEvent(i.title,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},listEventsInRange:function(n,r){var i=e.defer();return t.plugins.calendar.listEventsInRange(n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},listCalendars:function(){var n=e.defer();return t.plugins.calendar.listCalendars(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},findAllEventsInNamedCalendar:function(n){var r=e.defer();return t.plugins.calendar.findAllEventsInNamedCalendar(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},modifyEvent:function(n){var r=e.defer(),i={title:null,location:null,notes:null,startDate:null,endDate:null,newTitle:null,newLocation:null,newNotes:null,newStartDate:null,newEndDate:null};return i=angular.extend(i,n),t.plugins.calendar.modifyEvent(i.title,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),i.newTitle,i.newLocation,i.newNotes,new Date(i.newStartDate),new Date(i.newEndDate),function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},deleteEvent:function(n){var r=e.defer(),i={newTitle:null,location:null,notes:null,startDate:null,endDate:null};return i=angular.extend(i,n),t.plugins.calendar.deleteEvent(i.newTitle,i.location,i.notes,new Date(i.startDate),new Date(i.endDate),function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}}}]),angular.module("ngCordova.plugins.camera",[]).factory("$cordovaCamera",["$q",function(e){return{getPicture:function(t){var n=e.defer();return navigator.camera?(navigator.camera.getPicture(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise):(n.resolve(null),n.promise)},cleanup:function(){var t=e.defer();return navigator.camera.cleanup(function(){t.resolve()},function(e){t.reject(e)}),t.promise}}}]),angular.module("ngCordova.plugins.capture",[]).factory("$cordovaCapture",["$q",function(e){return{captureAudio:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureAudio(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise):(n.resolve(null),n.promise)},captureImage:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureImage(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise):(n.resolve(null),n.promise)},captureVideo:function(t){var n=e.defer();return navigator.device.capture?(navigator.device.capture.captureVideo(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise):(n.resolve(null),n.promise)}}}]),angular.module("ngCordova.plugins.cardIO",[]).provider("$cordovaNgCardIO",[function(){var e=["card_type","redacted_card_number","card_number","expiry_month","expiry_year","short_expiry_year","cvv","zip"],t={expiry:!0,cvv:!0,zip:!1,suppressManual:!1,suppressConfirm:!1,hideLogo:!0};this.setCardIOResponseFields=function(t){t&&angular.isArray(t)&&(e=t)},this.setScanerConfig=function(e){e&&angular.isObject(e)&&(t.expiry=e.expiry||!0,t.cvv=e.cvv||!0,t.zip=e.zip||!1,t.suppressManual=e.suppressManual||!1,t.suppressConfirm=e.suppressConfirm||!1,t.hideLogo=e.hideLogo||!0)},this.$get=["$q",function(n){return{scanCard:function(){var r=n.defer();return CardIO.scan(t,function(t){if(null===t)r.reject(null);else{for(var n={},i=0,o=e.length;o>i;i++){var a=e[i];n[a]="short_expiry_year"===a?String(t.expiry_year).substr(2,2)||"":t[a]||""}r.resolve(n)}},function(){r.reject(null)}),r.promise}}}]}]),angular.module("ngCordova.plugins.clipboard",[]).factory("$cordovaClipboard",["$q","$window",function(e,t){return{copy:function(n){var r=e.defer();return t.cordova.plugins.clipboard.copy(n,function(){r.resolve()},function(){r.reject()}),r.promise},paste:function(){var n=e.defer();return t.cordova.plugins.clipboard.paste(function(e){n.resolve(e)},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.contacts",[]).factory("$cordovaContacts",["$q",function(e){return{save:function(t){var n=e.defer();return navigator.contacts.create(t).save(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},remove:function(t){var n=e.defer();return navigator.contacts.create(t).remove(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},clone:function(e){return navigator.contacts.create(e).clone(e)},find:function(t){var n=e.defer(),r=t.fields||["id","displayName"];return delete t.fields,0===Object.keys(t).length?navigator.contacts.find(r,function(e){n.resolve(e)},function(e){n.reject(e)}):navigator.contacts.find(r,function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},pickContact:function(){var t=e.defer();return navigator.contacts.pickContact(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}}}]),angular.module("ngCordova.plugins.datePicker",[]).factory("$cordovaDatePicker",["$window","$q",function(e,t){return{show:function(n){var r=t.defer();return n=n||{date:new Date,mode:"date"},e.datePicker.show(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}}}]),angular.module("ngCordova.plugins.device",[]).factory("$cordovaDevice",[function(){return{getDevice:function(){return device},getCordova:function(){return device.cordova},getModel:function(){return device.model},getName:function(){return device.name},getPlatform:function(){return device.platform},getUUID:function(){return device.uuid},getVersion:function(){return device.version},getManufacturer:function(){return device.manufacturer}}}]),angular.module("ngCordova.plugins.deviceMotion",[]).factory("$cordovaDeviceMotion",["$q",function(e){return{getCurrentAcceleration:function(){var t=e.defer();return angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.getCurrentAcceleration)?(t.reject("Device do not support watchAcceleration"),t.promise):(navigator.accelerometer.getCurrentAcceleration(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise)},watchAcceleration:function(t){var n=e.defer();if(angular.isUndefined(navigator.accelerometer)||!angular.isFunction(navigator.accelerometer.watchAcceleration))return n.reject("Device do not support watchAcceleration"),n.promise;var r=navigator.accelerometer.watchAcceleration(function(e){n.notify(e)},function(e){n.reject(e)},t);return n.promise.cancel=function(){navigator.accelerometer.clearWatch(r)},n.promise.clearWatch=function(e){navigator.accelerometer.clearWatch(e||r)},n.promise.watchID=r,n.promise},clearWatch:function(e){return navigator.accelerometer.clearWatch(e)}}}]),angular.module("ngCordova.plugins.deviceOrientation",[]).factory("$cordovaDeviceOrientation",["$q",function(e){var t={frequency:3e3};return{getCurrentHeading:function(){var t=e.defer();return navigator.compass?(navigator.compass.getCurrentHeading(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise):(t.reject("No compass on Device"),t.promise)},watchHeading:function(n){var r=e.defer();if(!navigator.compass)return r.reject("No compass on Device"),r.promise;var i=angular.extend(t,n),o=navigator.compass.watchHeading(function(e){r.notify(e)},function(e){r.reject(e)},i);return r.promise.cancel=function(){navigator.compass.clearWatch(o)},r.promise.clearWatch=function(e){navigator.compass.clearWatch(e||o)},r.promise.watchID=o,r.promise},clearWatch:function(e){return navigator.compass.clearWatch(e)}}}]),angular.module("ngCordova.plugins.dialogs",[]).factory("$cordovaDialogs",["$q","$window",function(e,t){return{alert:function(n,r,i){var o=e.defer();return t.navigator.notification?navigator.notification.alert(n,function(){o.resolve()},r,i):(t.alert(n),o.resolve()),o.promise},confirm:function(n,r,i){var o=e.defer();return t.navigator.notification?navigator.notification.confirm(n,function(e){o.resolve(e)},r,i):t.confirm(n)?o.resolve(1):o.resolve(2),o.promise},prompt:function(n,r,i,o){var a=e.defer();if(t.navigator.notification)navigator.notification.prompt(n,function(e){a.resolve(e)},r,i,o);else{var s=t.prompt(n,o);null!==s?a.resolve({input1:s,buttonIndex:1}):a.resolve({input1:s,buttonIndex:2})}return a.promise},beep:function(e){return navigator.notification.beep(e)},activityStart:function(t,n){var r=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStart(n,t),r.resolve()):r.reject(t,n),r.promise},activityStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.activityStop(),t.resolve()):t.reject(),t.promise},progressStart:function(t,n){var r=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStart(n,t),r.resolve()):r.reject(t,n),r.promise},progressStop:function(){var t=e.defer();return"android"===cordova.platformId?(navigator.notification.progressStop(),t.resolve()):t.reject(),t.promise},progressValue:function(t){var n=e.defer();return"android"===cordova.platformId?(navigator.notification.progressValue(t),n.resolve()):n.reject(t),n.promise}}}]),angular.module("ngCordova.plugins.emailComposer",[]).factory("$cordovaEmailComposer",["$q",function(e){return{isAvailable:function(){var t=e.defer();return cordova.plugins.email.isAvailable(function(e){e?t.resolve():t.reject()}),t.promise},open:function(t){var n=e.defer();return cordova.plugins.email.open(t,function(){n.reject()}),n.promise},addAlias:function(e,t){cordova.plugins.email.addAlias(e,t)}}}]),angular.module("ngCordova.plugins.facebook",[]).provider("$cordovaFacebook",[function(){this.browserInit=function(e,t){this.appID=e,this.appVersion=t||"v2.0",facebookConnectPlugin.browserInit(this.appID,this.appVersion)},this.$get=["$q",function(e){return{login:function(t){var n=e.defer();return facebookConnectPlugin.login(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},showDialog:function(t){var n=e.defer();return facebookConnectPlugin.showDialog(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},api:function(t,n){var r=e.defer();return facebookConnectPlugin.api(t,n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},getAccessToken:function(){var t=e.defer();return facebookConnectPlugin.getAccessToken(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},getLoginStatus:function(){var t=e.defer();return facebookConnectPlugin.getLoginStatus(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},logout:function(){var t=e.defer();return facebookConnectPlugin.logout(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}}}]}]),angular.module("ngCordova.plugins.facebookAds",[]).factory("$cordovaFacebookAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.FacebookAds.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.FacebookAds.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.FacebookAds.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.FacebookAds.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.FacebookAds.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.FacebookAds.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.FacebookAds.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.FacebookAds.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.file",[]).constant("$cordovaFileError",{1:"NOT_FOUND_ERR",2:"SECURITY_ERR",3:"ABORT_ERR",4:"NOT_READABLE_ERR",5:"ENCODING_ERR",6:"NO_MODIFICATION_ALLOWED_ERR",7:"INVALID_STATE_ERR",8:"SYNTAX_ERR",9:"INVALID_MODIFICATION_ERR",10:"QUOTA_EXCEEDED_ERR",11:"TYPE_MISMATCH_ERR",12:"PATH_EXISTS_ERR"}).provider("$cordovaFile",[function(){this.$get=["$q","$window","$cordovaFileError",function(e,t,n){return{getFreeDiskSpace:function(){var t=e.defer();return cordova.exec(function(e){t.resolve(e)},function(e){t.reject(e)},"File","getFreeDiskSpace",[]),t.promise},checkDir:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("directory cannot start with /");try{var a=r+i;t.resolveLocalFileSystemURL(a,function(e){!0===e.isDirectory?o.resolve(e):o.reject({code:13,message:"input is not a directory"})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},checkFile:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("directory cannot start with /");try{var a=r+i;t.resolveLocalFileSystemURL(a,function(e){!0===e.isFile?o.resolve(e):o.reject({code:13,message:"input is not a file"})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},createDir:function(r,i,o){var a=e.defer();/^\//.test(i)&&a.reject("directory cannot start with /"),o=!o;var s={create:!0,exclusive:o};try{t.resolveLocalFileSystemURL(r,function(e){e.getDirectory(i,s,function(e){a.resolve(e)},function(e){e.message=n[e.code],a.reject(e)})},function(e){e.message=n[e.code],a.reject(e)})}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},createFile:function(r,i,o){var a=e.defer();/^\//.test(i)&&a.reject("file-name cannot start with /"),o=!o;var s={create:!0,exclusive:o};try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,s,function(e){a.resolve(e)},function(e){e.message=n[e.code],a.reject(e)})},function(e){e.message=n[e.code],a.reject(e)})}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},removeDir:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getDirectory(i,{create:!1},function(e){e.remove(function(){o.resolve({success:!0,fileRemoved:e})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeFile:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.remove(function(){o.resolve({success:!0,fileRemoved:e})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},removeRecursively:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getDirectory(i,{create:!1},function(e){e.removeRecursively(function(){o.resolve({success:!0,fileRemoved:e})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},writeFile:function(r,i,o,a){var s=e.defer();/^\//.test(i)&&s.reject("file-name cannot start with /"),a=!a;var l={create:!0,exclusive:a};try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,l,function(e){e.createWriter(function(e){!0===l.append&&e.seek(e.length),l.truncate&&e.truncate(l.truncate),e.onwriteend=function(e){this.error?s.reject(this.error):s.resolve(e)},e.write(o),s.promise.abort=function(){e.abort()}})},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},writeExistingFile:function(r,i,o){var a=e.defer();/^\//.test(i)&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.createWriter(function(e){e.seek(e.length),e.onwriteend=function(e){this.error?a.reject(this.error):a.resolve(e)},e.write(o),a.promise.abort=function(){e.abort()}})},function(e){e.message=n[e.code],a.reject(e)})},function(e){e.message=n[e.code],a.reject(e)})}catch(e){e.message=n[e.code],a.reject(e)}return a.promise},readAsText:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsText(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsDataURL:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsDataURL(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsBinaryString:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsBinaryString(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},readAsArrayBuffer:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1},function(e){e.file(function(e){var t=new FileReader;t.onloadend=function(e){void 0!==e.target.result||null!==e.target.result?o.resolve(e.target.result):void 0!==e.target.error||null!==e.target.error?o.reject(e.target.error):o.reject({code:null,message:"READER_ONLOADEND_ERR"})},t.readAsArrayBuffer(e)})},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise},moveFile:function(n,r,i,o){var a=e.defer();o=o||r,(/^\//.test(r)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,function(e){e.getFile(r,{create:!1},function(e){t.resolveLocalFileSystemURL(i,function(t){e.moveTo(t,o,function(e){a.resolve(e)},function(e){a.reject(e)})},function(e){a.reject(e)})},function(e){a.reject(e)})},function(e){a.reject(e)})}catch(e){a.reject(e)}return a.promise},moveDir:function(n,r,i,o){var a=e.defer();o=o||r,(/^\//.test(r)||/^\//.test(o))&&a.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(n,function(e){e.getDirectory(r,{create:!1},function(e){t.resolveLocalFileSystemURL(i,function(t){e.moveTo(t,o,function(e){a.resolve(e)},function(e){a.reject(e)})},function(e){a.reject(e)})},function(e){a.reject(e)})},function(e){a.reject(e)})}catch(e){a.reject(e)}return a.promise},copyDir:function(r,i,o,a){var s=e.defer();a=a||i,(/^\//.test(i)||/^\//.test(a))&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getDirectory(i,{create:!1,exclusive:!1},function(e){t.resolveLocalFileSystemURL(o,function(t){e.copyTo(t,a,function(e){s.resolve(e)},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},copyFile:function(r,i,o,a){var s=e.defer();a=a||i,/^\//.test(i)&&s.reject("file-name cannot start with /");try{t.resolveLocalFileSystemURL(r,function(e){e.getFile(i,{create:!1,exclusive:!1},function(e){t.resolveLocalFileSystemURL(o,function(t){e.copyTo(t,a,function(e){s.resolve(e)},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})},function(e){e.message=n[e.code],s.reject(e)})}catch(e){e.message=n[e.code],s.reject(e)}return s.promise},readFileMetadata:function(r,i){var o=e.defer();/^\//.test(i)&&o.reject("directory cannot start with /");try{var a=r+i;t.resolveLocalFileSystemURL(a,function(e){e.file(function(e){o.resolve(e)},function(e){e.message=n[e.code],o.reject(e)})},function(e){e.message=n[e.code],o.reject(e)})}catch(e){e.message=n[e.code],o.reject(e)}return o.promise}}}]}]),angular.module("ngCordova.plugins.fileOpener2",[]).factory("$cordovaFileOpener2",["$q",function(e){return{open:function(t,n){var r=e.defer();return cordova.plugins.fileOpener2.open(t,n,{error:function(e){r.reject(e)},success:function(){r.resolve()}}),r.promise},uninstall:function(t){var n=e.defer();return cordova.plugins.fileOpener2.uninstall(t,{error:function(e){n.reject(e)},success:function(){n.resolve()}}),n.promise},appIsInstalled:function(t){var n=e.defer();return cordova.plugins.fileOpener2.appIsInstalled(t,{success:function(e){n.resolve(e)}}),n.promise}}}]),angular.module("ngCordova.plugins.fileTransfer",[]).factory("$cordovaFileTransfer",["$q","$timeout",function(e,t){return{download:function(n,r,i,o){var a=e.defer(),s=new FileTransfer,l=i&&!1===i.encodeURI?n:encodeURI(n);return i&&void 0!==i.timeout&&null!==i.timeout&&(t(function(){s.abort()},i.timeout),i.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.download(l,r,a.resolve,a.reject,o,i),a.promise},upload:function(n,r,i,o){var a=e.defer(),s=new FileTransfer,l=i&&!1===i.encodeURI?n:encodeURI(n);return i&&void 0!==i.timeout&&null!==i.timeout&&(t(function(){s.abort()},i.timeout),i.timeout=null),s.onprogress=function(e){a.notify(e)},a.promise.abort=function(){s.abort()},s.upload(r,l,a.resolve,a.reject,i,o),a.promise}}}]),angular.module("ngCordova.plugins.flashlight",[]).factory("$cordovaFlashlight",["$q","$window",function(e,t){return{available:function(){var n=e.defer();return t.plugins.flashlight.available(function(e){n.resolve(e)}),n.promise},switchOn:function(){var n=e.defer();return t.plugins.flashlight.switchOn(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},switchOff:function(){var n=e.defer();return t.plugins.flashlight.switchOff(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},toggle:function(){var n=e.defer();return t.plugins.flashlight.toggle(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.flurryAds",[]).factory("$cordovaFlurryAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.FlurryAds.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.FlurryAds.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.FlurryAds.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.FlurryAds.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.FlurryAds.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.FlurryAds.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.FlurryAds.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.FlurryAds.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.ga",[]).factory("$cordovaGA",["$q","$window",function(e,t){return{init:function(n,r){var i=e.defer();return r=r>=0?r:10,t.plugins.gaPlugin.init(function(e){i.resolve(e)},function(e){i.reject(e)},n,r),i.promise},trackEvent:function(n,r,i,o,a,s){var l=e.defer();return t.plugins.gaPlugin.trackEvent(function(e){l.resolve(e)},function(e){l.reject(e)},i,o,a,s),l.promise},trackPage:function(n,r,i){var o=e.defer();return t.plugins.gaPlugin.trackPage(function(e){o.resolve(e)},function(e){o.reject(e)},i),o.promise},setVariable:function(n,r,i,o){var a=e.defer();return t.plugins.gaPlugin.setVariable(function(e){a.resolve(e)},function(e){a.reject(e)},i,o),a.promise},exit:function(){var n=e.defer();return t.plugins.gaPlugin.exit(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.geolocation",[]).factory("$cordovaGeolocation",["$q",function(e){return{getCurrentPosition:function(t){var n=e.defer();return navigator.geolocation.getCurrentPosition(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},watchPosition:function(t){var n=e.defer(),r=navigator.geolocation.watchPosition(function(e){n.notify(e)},function(e){n.reject(e)},t);return n.promise.cancel=function(){navigator.geolocation.clearWatch(r)},n.promise.clearWatch=function(e){navigator.geolocation.clearWatch(e||r)},n.promise.watchID=r,n.promise},clearWatch:function(e){return navigator.geolocation.clearWatch(e)}}}]),angular.module("ngCordova.plugins.globalization",[]).factory("$cordovaGlobalization",["$q",function(e){return{getPreferredLanguage:function(){var t=e.defer()
-;return navigator.globalization.getPreferredLanguage(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},getLocaleName:function(){var t=e.defer();return navigator.globalization.getLocaleName(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},getFirstDayOfWeek:function(){var t=e.defer();return navigator.globalization.getFirstDayOfWeek(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},dateToString:function(t,n){var r=e.defer();return navigator.globalization.dateToString(t,function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise},stringToDate:function(t,n){var r=e.defer();return navigator.globalization.stringToDate(t,function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise},getDatePattern:function(t){var n=e.defer();return navigator.globalization.getDatePattern(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},getDateNames:function(t){var n=e.defer();return navigator.globalization.getDateNames(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},isDayLightSavingsTime:function(t){var n=e.defer();return navigator.globalization.isDayLightSavingsTime(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},numberToString:function(t,n){var r=e.defer();return navigator.globalization.numberToString(t,function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise},stringToNumber:function(t,n){var r=e.defer();return navigator.globalization.stringToNumber(t,function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise},getNumberPattern:function(t){var n=e.defer();return navigator.globalization.getNumberPattern(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},getCurrencyPattern:function(t){var n=e.defer();return navigator.globalization.getCurrencyPattern(t,function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.googleAds",[]).factory("$cordovaGoogleAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.AdMob.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.AdMob.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.AdMob.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.AdMob.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.AdMob.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.AdMob.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.AdMob.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.AdMob.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.googleAnalytics",[]).factory("$cordovaGoogleAnalytics",["$q","$window",function(e,t){return{startTrackerWithId:function(n){var r=e.defer();return t.analytics.startTrackerWithId(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},setUserId:function(n){var r=e.defer();return t.analytics.setUserId(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},debugMode:function(){var n=e.defer();return t.analytics.debugMode(function(e){n.resolve(e)},function(){n.reject()}),n.promise},trackView:function(n){var r=e.defer();return t.analytics.trackView(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},addCustomDimension:function(n,r){var i=e.defer(),o=parseInt(n,10);return isNaN(o)&&i.reject('Parameter "key" must be an integer.'),t.analytics.addCustomDimension(o,r,function(){i.resolve()},function(e){i.reject(e)}),i.promise},trackEvent:function(n,r,i,o){var a=e.defer();return t.analytics.trackEvent(n,r,i,o,function(e){a.resolve(e)},function(e){a.reject(e)}),a.promise},trackException:function(n,r){var i=e.defer();return t.analytics.trackException(n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},trackTiming:function(n,r,i,o){var a=e.defer();return t.analytics.trackTiming(n,r,i,o,function(e){a.resolve(e)},function(e){a.reject(e)}),a.promise},addTransaction:function(n,r,i,o,a,s){var l=e.defer();return t.analytics.addTransaction(n,r,i,o,a,s,function(e){l.resolve(e)},function(e){l.reject(e)}),l.promise},addTransactionItem:function(n,r,i,o,a,s,l){var u=e.defer();return t.analytics.addTransactionItem(n,r,i,o,a,s,l,function(e){u.resolve(e)},function(e){u.reject(e)}),u.promise}}}]),angular.module("ngCordova.plugins.googleMap",[]).factory("$cordovaGoogleMap",["$q","$window",function(e,t){var n=null;return{getMap:function(r){var i=e.defer();if(t.plugin.google.maps){var o=document.getElementById("map_canvas");n=t.plugin.google.maps.Map.getMap(r),n.setDiv(o),i.resolve(n)}else i.reject(null);return i.promise},isMapLoaded:function(){return!!n},addMarker:function(t){var r=e.defer();return n.addMarker(t,function(e){r.resolve(e)}),r.promise},getMapTypeIds:function(){return t.plugin.google.maps.mapTypeId},setVisible:function(t){var r=e.defer();return n.setVisible(t),r.promise},cleanup:function(){n=null}}}]),angular.module("ngCordova.plugins.googlePlayGame",[]).factory("$cordovaGooglePlayGame",["$q",function(e){return{auth:function(){var t=e.defer();return googleplaygame.auth(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise},signout:function(){var t=e.defer();return googleplaygame.signout(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise},isSignedIn:function(){var t=e.defer();return googleplaygame.isSignedIn(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise},showPlayer:function(){var t=e.defer();return googleplaygame.showPlayer(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise},submitScore:function(t){var n=e.defer();return googleplaygame.submitScore(t,function(e){return n.resolve(e)},function(e){return n.reject(e)}),n.promise},showAllLeaderboards:function(){var t=e.defer();return googleplaygame.showAllLeaderboards(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise},showLeaderboard:function(t){var n=e.defer();return googleplaygame.showLeaderboard(t,function(e){return n.resolve(e)},function(e){return n.reject(e)}),n.promise},unlockAchievement:function(t){var n=e.defer();return googleplaygame.unlockAchievement(t,function(e){return n.resolve(e)},function(e){return n.reject(e)}),n.promise},incrementAchievement:function(t){var n=e.defer();return googleplaygame.incrementAchievement(t,function(e){return n.resolve(e)},function(e){return n.reject(e)}),n.promise},showAchievements:function(){var t=e.defer();return googleplaygame.showAchievements(function(e){return t.resolve(e)},function(e){return t.reject(e)}),t.promise}}}]),angular.module("ngCordova.plugins.googlePlus",[]).factory("$cordovaGooglePlus",["$q","$window",function(e,t){return{login:function(n){var r=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.login({iOSApiKey:n},function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},silentLogin:function(n){var r=e.defer();return void 0===n&&(n={}),t.plugins.googleplus.trySilentLogin({iOSApiKey:n},function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},logout:function(){var n=e.defer();t.plugins.googleplus.logout(function(e){n.resolve(e)})},disconnect:function(){var n=e.defer();t.plugins.googleplus.disconnect(function(e){n.resolve(e)})},isAvailable:function(){var n=e.defer();return t.plugins.googleplus.isAvailable(function(e){e?n.resolve(e):n.reject(e)}),n.promise}}}]),angular.module("ngCordova.plugins.healthKit",[]).factory("$cordovaHealthKit",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugins.healthkit.available(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise},checkAuthStatus:function(n){var r=e.defer();return n=n||"HKQuantityTypeIdentifierHeight",t.plugins.healthkit.checkAuthStatus({type:n},function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},requestAuthorization:function(n,r){var i=e.defer();return n=n||["HKCharacteristicTypeIdentifierDateOfBirth","HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight"],r=r||["HKQuantityTypeIdentifierActiveEnergyBurned","HKQuantityTypeIdentifierHeight","HKQuantityTypeIdentifierDistanceCycling"],t.plugins.healthkit.requestAuthorization({readTypes:n,writeTypes:r},function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},readDateOfBirth:function(){var n=e.defer();return t.plugins.healthkit.readDateOfBirth(function(e){n.resolve(e)},function(e){n.resolve(e)}),n.promise},readGender:function(){var n=e.defer();return t.plugins.healthkit.readGender(function(e){n.resolve(e)},function(e){n.resolve(e)}),n.promise},saveWeight:function(n,r,i){var o=e.defer();return t.plugins.healthkit.saveWeight({unit:r||"lb",amount:n,date:i||new Date},function(e){o.resolve(e)},function(e){o.resolve(e)}),o.promise},readWeight:function(n){var r=e.defer();return t.plugins.healthkit.readWeight({unit:n||"lb"},function(e){r.resolve(e)},function(e){r.resolve(e)}),r.promise},saveHeight:function(n,r,i){var o=e.defer();return t.plugins.healthkit.saveHeight({unit:r||"in",amount:n,date:i||new Date},function(e){o.resolve(e)},function(e){o.resolve(e)}),o.promise},readHeight:function(n){var r=e.defer();return t.plugins.healthkit.readHeight({unit:n||"in"},function(e){r.resolve(e)},function(e){r.resolve(e)}),r.promise},findWorkouts:function(){var n=e.defer();return t.plugins.healthkit.findWorkouts({},function(e){n.resolve(e)},function(e){n.resolve(e)}),n.promise},saveWorkout:function(n){var r=e.defer();return t.plugins.healthkit.saveWorkout(n,function(e){r.resolve(e)},function(e){r.resolve(e)}),r.promise},querySampleType:function(n){var r=e.defer();return t.plugins.healthkit.querySampleType(n,function(e){r.resolve(e)},function(e){r.resolve(e)}),r.promise}}}]),angular.module("ngCordova.plugins.httpd",[]).factory("$cordovaHttpd",["$q",function(e){return{startServer:function(t){var n=e.defer();return cordova.plugins.CorHttpd.startServer(t,function(){n.resolve()},function(){n.reject()}),n.promise},stopServer:function(){var t=e.defer();return cordova.plugins.CorHttpd.stopServer(function(){t.resolve()},function(){t.reject()}),t.promise},getURL:function(){var t=e.defer();return cordova.plugins.CorHttpd.getURL(function(e){t.resolve(e)},function(){t.reject()}),t.promise},getLocalPath:function(){var t=e.defer();return cordova.plugins.CorHttpd.getLocalPath(function(e){t.resolve(e)},function(){t.reject()}),t.promise}}}]),angular.module("ngCordova.plugins.iAd",[]).factory("$cordovaiAd",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.iAd.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.iAd.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.iAd.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.iAd.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.iAd.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.iAd.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.iAd.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.iAd.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.imagePicker",[]).factory("$cordovaImagePicker",["$q","$window",function(e,t){return{getPictures:function(n){var r=e.defer();return t.imagePicker.getPictures(function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise}}}]),angular.module("ngCordova.plugins.inAppBrowser",[]).provider("$cordovaInAppBrowser",[function(){var e,t=this.defaultOptions={};this.setDefaultOptions=function(e){t=angular.extend(t,e)},this.$get=["$rootScope","$q","$window","$timeout",function(n,r,i,o){return{open:function(a,s,l){var u=r.defer();if(l&&!angular.isObject(l))return u.reject("options must be an object"),u.promise;var c=angular.extend({},t,l),d=[];angular.forEach(c,function(e,t){d.push(t+"="+e)});var h=d.join();return e=i.open(a,s,h),e.addEventListener("loadstart",function(e){o(function(){n.$broadcast("$cordovaInAppBrowser:loadstart",e)})},!1),e.addEventListener("loadstop",function(e){u.resolve(e),o(function(){n.$broadcast("$cordovaInAppBrowser:loadstop",e)})},!1),e.addEventListener("loaderror",function(e){u.reject(e),o(function(){n.$broadcast("$cordovaInAppBrowser:loaderror",e)})},!1),e.addEventListener("exit",function(e){o(function(){n.$broadcast("$cordovaInAppBrowser:exit",e)})},!1),u.promise},close:function(){e.close(),e=null},show:function(){e.show()},executeScript:function(t){var n=r.defer();return e.executeScript(t,function(e){n.resolve(e)}),n.promise},insertCSS:function(t){var n=r.defer();return e.insertCSS(t,function(e){n.resolve(e)}),n.promise}}}]}]),angular.module("ngCordova.plugins.insomnia",[]).factory("$cordovaInsomnia",["$window",function(e){return{keepAwake:function(){return e.plugins.insomnia.keepAwake()},allowSleepAgain:function(){return e.plugins.insomnia.allowSleepAgain()}}}]),angular.module("ngCordova.plugins.instagram",[]).factory("$cordovaInstagram",["$q",function(e){return{share:function(t){var n=e.defer();return window.Instagram?(Instagram.share(t.image,t.caption,function(e){e?n.reject(e):n.resolve(!0)}),n.promise):(console.error("Tried to call Instagram.share but the Instagram plugin isn't installed!"),n.resolve(null),n.promise)},isInstalled:function(){var t=e.defer();return window.Instagram?(Instagram.isInstalled(function(e,n){e?t.reject(e):t.resolve(n)}),t.promise):(console.error("Tried to call Instagram.isInstalled but the Instagram plugin isn't installed!"),t.resolve(null),t.promise)}}}]),angular.module("ngCordova.plugins.keyboard",[]).factory("$cordovaKeyboard",["$rootScope",function(e){var t=function(){e.$evalAsync(function(){e.$broadcast("$cordovaKeyboard:show")})},n=function(){e.$evalAsync(function(){e.$broadcast("$cordovaKeyboard:hide")})};return document.addEventListener("deviceready",function(){cordova.plugins.Keyboard&&(window.addEventListener("native.keyboardshow",t,!1),window.addEventListener("native.keyboardhide",n,!1))}),{hideAccessoryBar:function(e){return cordova.plugins.Keyboard.hideKeyboardAccessoryBar(e)},close:function(){return cordova.plugins.Keyboard.close()},show:function(){return cordova.plugins.Keyboard.show()},disableScroll:function(e){return cordova.plugins.Keyboard.disableScroll(e)},isVisible:function(){return cordova.plugins.Keyboard.isVisible},clearShowWatch:function(){document.removeEventListener("native.keyboardshow",t),e.$$listeners["$cordovaKeyboard:show"]=[]},clearHideWatch:function(){document.removeEventListener("native.keyboardhide",n),e.$$listeners["$cordovaKeyboard:hide"]=[]}}}]),angular.module("ngCordova.plugins.keychain",[]).factory("$cordovaKeychain",["$q",function(e){return{getForKey:function(t,n){var r=e.defer();return(new Keychain).getForKey(r.resolve,r.reject,t,n),r.promise},setForKey:function(t,n,r){var i=e.defer();return(new Keychain).setForKey(i.resolve,i.reject,t,n,r),i.promise},removeForKey:function(t,n){var r=e.defer();return(new Keychain).removeForKey(r.resolve,r.reject,t,n),r.promise}}}]),angular.module("ngCordova.plugins.launchNavigator",[]).factory("$cordovaLaunchNavigator",["$q",function(e){return{navigate:function(t,n,r){var i=e.defer();return launchnavigator.navigate(t,n,function(){i.resolve()},function(e){i.reject(e)},r),i.promise}}}]),angular.module("ngCordova.plugins.localNotification",[]).factory("$cordovaLocalNotification",["$q","$window","$rootScope","$timeout",function(e,t,n,r){return document.addEventListener("deviceready",function(){t.cordova&&t.cordova.plugins&&t.cordova.plugins.notification&&t.cordova.plugins.notification.local&&(t.cordova.plugins.notification.local.on("schedule",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:schedule",e,t)})}),t.cordova.plugins.notification.local.on("trigger",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:trigger",e,t)})}),t.cordova.plugins.notification.local.on("update",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:update",e,t)})}),t.cordova.plugins.notification.local.on("clear",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:clear",e,t)})}),t.cordova.plugins.notification.local.on("clearall",function(e){r(function(){n.$broadcast("$cordovaLocalNotification:clearall",e)})}),t.cordova.plugins.notification.local.on("cancel",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:cancel",e,t)})}),t.cordova.plugins.notification.local.on("cancelall",function(e){r(function(){n.$broadcast("$cordovaLocalNotification:cancelall",e)})}),t.cordova.plugins.notification.local.on("click",function(e,t){r(function(){n.$broadcast("$cordovaLocalNotification:click",e,t)})}))},!1),{schedule:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.schedule(n,function(e){i.resolve(e)},r),i.promise},add:function(n,r){console.warn('Deprecated: use "schedule" instead.');var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.schedule(n,function(e){i.resolve(e)},r),i.promise},update:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.update(n,function(e){i.resolve(e)},r),i.promise},clear:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.clear(n,function(e){i.resolve(e)},r),i.promise},clearAll:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.clearAll(function(e){r.resolve(e)},n),r.promise},cancel:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.cancel(n,function(e){i.resolve(e)},r),i.promise},cancelAll:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.cancelAll(function(e){r.resolve(e)},n),r.promise},isPresent:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.isPresent(n,function(e){i.resolve(e)},r),i.promise},isScheduled:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.isScheduled(n,function(e){i.resolve(e)},r),i.promise},isTriggered:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.isTriggered(n,function(e){i.resolve(e)},r),i.promise},hasPermission:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.hasPermission(function(e){e?r.resolve(e):r.reject(e)},n),r.promise},registerPermission:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission(function(e){e?r.resolve(e):r.reject(e)},n),r.promise},promptForPermission:function(n){console.warn('Deprecated: use "registerPermission" instead.');var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.registerPermission(function(e){e?r.resolve(e):r.reject(e)},n),r.promise},getAllIds:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllIds(function(e){r.resolve(e)},n),r.promise},getIds:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getIds(function(e){r.resolve(e)},n),r.promise},getScheduledIds:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getScheduledIds(function(e){r.resolve(e)},n),r.promise},getTriggeredIds:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getTriggeredIds(function(e){r.resolve(e)},n),r.promise},get:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.get(n,function(e){i.resolve(e)},r),i.promise},getAll:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAll(function(e){r.resolve(e)},n),r.promise},getScheduled:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.getScheduled(n,function(e){i.resolve(e)},r),i.promise},getAllScheduled:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllScheduled(function(e){r.resolve(e)},n),r.promise},getTriggered:function(n,r){var i=e.defer();return r=r||null,t.cordova.plugins.notification.local.getTriggered(n,function(e){i.resolve(e)},r),i.promise},getAllTriggered:function(n){var r=e.defer();return n=n||null,t.cordova.plugins.notification.local.getAllTriggered(function(e){r.resolve(e)},n),r.promise},getDefaults:function(){return t.cordova.plugins.notification.local.getDefaults()},setDefaults:function(e){t.cordova.plugins.notification.local.setDefaults(e)}}}]),angular.module("ngCordova.plugins.mMediaAds",[]).factory("$cordovaMMediaAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.mMedia.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.mMedia.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.mMedia.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.mMedia.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.mMedia.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.mMedia.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.mMedia.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.mMedia.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.media",[]).service("NewMedia",["$q","$interval",function(e,t){function n(e){angular.isDefined(u)||(u=t(function(){0>h&&(h=e.getDuration(),a&&h>0&&a.notify({duration:h})),e.getCurrentPosition(function(e){e>-1&&(d=e)},function(e){console.log("Error getting pos="+e)}),a&&a.notify({position:d})},1e3))}function r(){angular.isDefined(u)&&(t.cancel(u),u=void 0)}function i(){d=-1,h=-1}function o(e){this.media=new Media(e,function(e){r(),i(),a.resolve(e)},function(e){r(),i(),a.reject(e)},function(e){c=e,a.notify({status:c})})}var a,s,l,u,c=null,d=-1,h=-1;return o.prototype.play=function(t){return a=e.defer(),"object"!=typeof t&&(t={}),this.media.play(t),n(this.media),a.promise},o.prototype.pause=function(){r(),this.media.pause()},o.prototype.stop=function(){this.media.stop()},o.prototype.release=function(){this.media.release(),this.media=void 0},o.prototype.seekTo=function(e){this.media.seekTo(e)},o.prototype.setVolume=function(e){this.media.setVolume(e)},o.prototype.startRecord=function(){this.media.startRecord()},o.prototype.stopRecord=function(){this.media.stopRecord()},o.prototype.currentTime=function(){return s=e.defer(),this.media.getCurrentPosition(function(e){s.resolve(e)}),s.promise},o.prototype.getDuration=function(){return l=e.defer(),this.media.getDuration(function(e){l.resolve(e)}),l.promise},o}]).factory("$cordovaMedia",["NewMedia",function(e){return{newMedia:function(t){return new e(t)}}}]),angular.module("ngCordova.plugins.mobfoxAds",[]).factory("$cordovaMobFoxAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.MobFox.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.MobFox.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.MobFox.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.MobFox.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.MobFox.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.MobFox.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.MobFox.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.MobFox.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins",["ngCordova.plugins.3dtouch","ngCordova.plugins.actionSheet","ngCordova.plugins.adMob","ngCordova.plugins.appAvailability","ngCordova.plugins.appRate","ngCordova.plugins.appVersion","ngCordova.plugins.backgroundGeolocation","ngCordova.plugins.badge","ngCordova.plugins.barcodeScanner","ngCordova.plugins.batteryStatus","ngCordova.plugins.beacon","ngCordova.plugins.ble","ngCordova.plugins.bluetoothSerial","ngCordova.plugins.brightness","ngCordova.plugins.calendar","ngCordova.plugins.camera","ngCordova.plugins.capture","ngCordova.plugins.clipboard","ngCordova.plugins.contacts","ngCordova.plugins.datePicker","ngCordova.plugins.device","ngCordova.plugins.deviceMotion","ngCordova.plugins.deviceOrientation","ngCordova.plugins.dialogs","ngCordova.plugins.emailComposer","ngCordova.plugins.facebook","ngCordova.plugins.facebookAds","ngCordova.plugins.file","ngCordova.plugins.fileTransfer","ngCordova.plugins.fileOpener2","ngCordova.plugins.flashlight","ngCordova.plugins.flurryAds","ngCordova.plugins.ga","ngCordova.plugins.geolocation","ngCordova.plugins.globalization","ngCordova.plugins.googleAds","ngCordova.plugins.googleAnalytics","ngCordova.plugins.googleMap","ngCordova.plugins.googlePlayGame","ngCordova.plugins.googlePlus","ngCordova.plugins.healthKit","ngCordova.plugins.httpd","ngCordova.plugins.iAd","ngCordova.plugins.imagePicker","ngCordova.plugins.inAppBrowser","ngCordova.plugins.instagram","ngCordova.plugins.keyboard","ngCordova.plugins.keychain","ngCordova.plugins.launchNavigator","ngCordova.plugins.localNotification","ngCordova.plugins.media","ngCordova.plugins.mMediaAds","ngCordova.plugins.mobfoxAds","ngCordova.plugins.mopubAds","ngCordova.plugins.nativeAudio","ngCordova.plugins.network","ngCordova.plugins.pinDialog","ngCordova.plugins.preferences","ngCordova.plugins.printer","ngCordova.plugins.progressIndicator","ngCordova.plugins.push","ngCordova.plugins.push_v5","ngCordova.plugins.sms","ngCordova.plugins.socialSharing","ngCordova.plugins.spinnerDialog","ngCordova.plugins.splashscreen","ngCordova.plugins.sqlite","ngCordova.plugins.statusbar","ngCordova.plugins.toast","ngCordova.plugins.touchid","ngCordova.plugins.vibration","ngCordova.plugins.videoCapturePlus","ngCordova.plugins.zip","ngCordova.plugins.insomnia"]),angular.module("ngCordova.plugins.mopubAds",[]).factory("$cordovaMoPubAds",["$q","$window",function(e,t){return{setOptions:function(n){var r=e.defer();return t.MoPub.setOptions(n,function(){r.resolve()},function(){r.reject()}),r.promise},createBanner:function(n){var r=e.defer();return t.MoPub.createBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},removeBanner:function(){var n=e.defer();return t.MoPub.removeBanner(function(){n.resolve()},function(){n.reject()}),n.promise},showBanner:function(n){var r=e.defer();return t.MoPub.showBanner(n,function(){r.resolve()},function(){r.reject()}),r.promise},showBannerAtXY:function(n,r){var i=e.defer();return t.MoPub.showBannerAtXY(n,r,function(){i.resolve()},function(){i.reject()}),i.promise},hideBanner:function(){var n=e.defer();return t.MoPub.hideBanner(function(){n.resolve()},function(){n.reject()}),n.promise},prepareInterstitial:function(n){var r=e.defer();return t.MoPub.prepareInterstitial(n,function(){r.resolve()},function(){r.reject()}),r.promise},showInterstitial:function(){var n=e.defer();return t.MoPub.showInterstitial(function(){n.resolve()},function(){n.reject()}),n.promise}}}]),angular.module("ngCordova.plugins.nativeAudio",[]).factory("$cordovaNativeAudio",["$q","$window",function(e,t){return{preloadSimple:function(n,r){var i=e.defer();return t.plugins.NativeAudio.preloadSimple(n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise},preloadComplex:function(n,r,i,o,a){var s=e.defer();return t.plugins.NativeAudio.preloadComplex(n,r,i,o,a,function(e){s.resolve(e)},function(e){s.reject(e)}),s.promise},play:function(n,r){var i=e.defer();return t.plugins.NativeAudio.play(n,function(e){i.resolve(e)},function(e){i.reject(e)},r),i.promise},stop:function(n){var r=e.defer();return t.plugins.NativeAudio.stop(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},loop:function(n){var r=e.defer();return t.plugins.NativeAudio.loop(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},unload:function(n){var r=e.defer();return t.plugins.NativeAudio.unload(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},setVolumeForComplexAsset:function(n,r){var i=e.defer();return t.plugins.NativeAudio.setVolumeForComplexAsset(n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise}}}]),angular.module("ngCordova.plugins.network",[]).factory("$cordovaNetwork",["$rootScope","$timeout",function(e,t){var n=function(){var n=navigator.connection.type;t(function(){e.$broadcast("$cordovaNetwork:offline",n)})},r=function(){var n=navigator.connection.type;t(function(){e.$broadcast("$cordovaNetwork:online",n)})};return document.addEventListener("deviceready",function(){navigator.connection&&(document.addEventListener("offline",n,!1),document.addEventListener("online",r,!1))}),{getNetwork:function(){return navigator.connection.type},isOnline:function(){var e=navigator.connection.type;return e!==Connection.UNKNOWN&&e!==Connection.NONE},isOffline:function(){var e=navigator.connection.type;return e===Connection.UNKNOWN||e===Connection.NONE},clearOfflineWatch:function(){document.removeEventListener("offline",n),e.$$listeners["$cordovaNetwork:offline"]=[]},clearOnlineWatch:function(){document.removeEventListener("online",r),e.$$listeners["$cordovaNetwork:online"]=[]}}}]).run(["$injector",function(e){e.get("$cordovaNetwork")}]),angular.module("ngCordova.plugins.pinDialog",[]).factory("$cordovaPinDialog",["$q","$window",function(e,t){return{prompt:function(n,r,i){var o=e.defer();return t.plugins.pinDialog.prompt(n,function(e){o.resolve(e)},r,i),o.promise}}}]),angular.module("ngCordova.plugins.preferences",[]).factory("$cordovaPreferences",["$window","$q",function(e,t){return{pluginNotEnabledMessage:"Plugin not enabled",decoratePromise:function(e){e.success=function(t){return e.then(t),e},e.error=function(t){return e.then(null,t),e}},store:function(n,r,i){function o(e){s.resolve(e)}function a(e){s.reject(new Error(e))}var s=t.defer(),l=s.promise;if(e.plugins){var u;u=3===arguments.length?e.plugins.appPreferences.store(i,n,r):e.plugins.appPreferences.store(n,r),u.then(o,a)}else s.reject(new Error(this.pluginNotEnabledMessage));return this.decoratePromise(l),l},fetch:function(n,r){function i(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;if(e.plugins){var l;l=2===arguments.length?e.plugins.appPreferences.fetch(r,n):e.plugins.appPreferences.fetch(n),l.then(i,o)}else a.reject(new Error(this.pluginNotEnabledMessage));return this.decoratePromise(s),s},remove:function(n,r){function i(e){a.resolve(e)}function o(e){a.reject(new Error(e))}var a=t.defer(),s=a.promise;if(e.plugins){var l;l=2===arguments.length?e.plugins.appPreferences.remove(r,n):e.plugins.appPreferences.remove(n),l.then(i,o)}else a.reject(new Error(this.pluginNotEnabledMessage))
-;return this.decoratePromise(s),s},show:function(){function n(e){i.resolve(e)}function r(e){i.reject(new Error(e))}var i=t.defer(),o=i.promise;return e.plugins?e.plugins.appPreferences.show().then(n,r):i.reject(new Error(this.pluginNotEnabledMessage)),this.decoratePromise(o),o}}}]),angular.module("ngCordova.plugins.printer",[]).factory("$cordovaPrinter",["$q","$window",function(e,t){return{isAvailable:function(){var n=e.defer();return t.plugin.printer.isAvailable(function(e){n.resolve(e)}),n.promise},print:function(n,r){var i=e.defer();return t.plugin.printer.print(n,r,function(){i.resolve()}),i.promise}}}]),angular.module("ngCordova.plugins.progressIndicator",[]).factory("$cordovaProgress",[function(){return{show:function(e){var t=e||"Please wait...";return ProgressIndicator.show(t)},showSimple:function(e){var t=e||!1;return ProgressIndicator.showSimple(t)},showSimpleWithLabel:function(e,t){var n=e||!1,r=t||"Loading...";return ProgressIndicator.showSimpleWithLabel(n,r)},showSimpleWithLabelDetail:function(e,t,n){var r=e||!1,i=t||"Loading...",o=n||"Please wait";return ProgressIndicator.showSimpleWithLabelDetail(r,i,o)},showDeterminate:function(e,t){var n=e||!1,r=t||5e4;return ProgressIndicator.showDeterminate(n,r)},showDeterminateWithLabel:function(e,t,n){var r=e||!1,i=t||5e4,o=n||"Loading...";return ProgressIndicator.showDeterminateWithLabel(r,i,o)},showAnnular:function(e,t){var n=e||!1,r=t||5e4;return ProgressIndicator.showAnnular(n,r)},showAnnularWithLabel:function(e,t,n){var r=e||!1,i=t||5e4,o=n||"Loading...";return ProgressIndicator.showAnnularWithLabel(r,i,o)},showBar:function(e,t){var n=e||!1,r=t||5e4;return ProgressIndicator.showBar(n,r)},showBarWithLabel:function(e,t,n){var r=e||!1,i=t||5e4,o=n||"Loading...";return ProgressIndicator.showBarWithLabel(r,i,o)},showSuccess:function(e,t){var n=e||!1,r=t||"Success";return ProgressIndicator.showSuccess(n,r)},showText:function(e,t,n){var r=e||!1,i=t||"Warning",o=n||"center";return ProgressIndicator.showText(r,i,o)},hide:function(){return ProgressIndicator.hide()}}}]),angular.module("ngCordova.plugins.push",[]).factory("$cordovaPush",["$q","$window","$rootScope","$timeout",function(e,t,n,r){return{onNotification:function(e){r(function(){n.$broadcast("$cordovaPush:notificationReceived",e)})},register:function(n){var r,i=e.defer();return void 0!==n&&void 0===n.ecb&&(r=null===document.querySelector("[ng-app]")?"document.body":"document.querySelector('[ng-app]')",n.ecb="angular.element("+r+").injector().get('$cordovaPush').onNotification"),t.plugins.pushNotification.register(function(e){i.resolve(e)},function(e){i.reject(e)},n),i.promise},unregister:function(n){var r=e.defer();return t.plugins.pushNotification.unregister(function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise},setBadgeNumber:function(n){var r=e.defer();return t.plugins.pushNotification.setApplicationIconBadgeNumber(function(e){r.resolve(e)},function(e){r.reject(e)},n),r.promise}}}]),angular.module("ngCordova.plugins.push_v5",[]).factory("$cordovaPushV5",["$q","$rootScope","$timeout",function(e,t,n){var r;return{initialize:function(t){var n=e.defer();return r=PushNotification.init(t),n.resolve(r),n.promise},onNotification:function(){n(function(){r.on("notification",function(e){t.$emit("$cordovaPushV5:notificationReceived",e)})})},onError:function(){n(function(){r.on("error",function(e){t.$emit("$cordovaPushV5:errorOccurred",e)})})},register:function(){var t=e.defer();return void 0===r?t.reject(new Error("init must be called before any other operation")):r.on("registration",function(e){t.resolve(e.registrationId)}),t.promise},unregister:function(){var t=e.defer();return void 0===r?t.reject(new Error("init must be called before any other operation")):r.unregister(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},getBadgeNumber:function(){var t=e.defer();return void 0===r?t.reject(new Error("init must be called before any other operation")):r.getApplicationIconBadgeNumber(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise},setBadgeNumber:function(t){var n=e.defer();return void 0===r?n.reject(new Error("init must be called before any other operation")):r.setApplicationIconBadgeNumber(function(e){n.resolve(e)},function(e){n.reject(e)},t),n.promise},finish:function(){var t=e.defer();return void 0===r?t.reject(new Error("init must be called before any other operation")):r.finish(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise}}}]),angular.module("ngCordova.plugins.recentsControl",[]).factory("$cordovaRecents",function(){return{setColor:function(e){return RecentsControl.setColor(e)},setDescription:function(e){return RecentsControl.setDescription(e)},setOptions:function(e,t){return RecentsControl.setOptions(e,t)}}}),angular.module("ngCordova.plugins.screenshot",[]).factory("$cordovaScreenshot",["$q",function(e){return{captureToFile:function(t){var n=t||{},r=n.extension||"jpg",i=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.save(function(e,t){e?o.reject(e):o.resolve(t.filePath)},r,i,n.filename),o.promise):(o.resolve(null),o.promise)},captureToUri:function(t){var n=t||{},r=n.extension||"jpg",i=n.quality||"100",o=e.defer();return navigator.screenshot?(navigator.screenshot.URI(function(e,t){e?o.reject(e):o.resolve(t.URI)},r,i,n.filename),o.promise):(o.resolve(null),o.promise)}}}]),angular.module("ngCordova.plugins.serial",[]).factory("$cordovaSerial",["$q",function(e){var t={};return t.requestPermission=function(t){var n=e.defer();return serial.requestPermission(t,function(){n.resolve()},function(e){n.reject(e)}),n.promise},t.open=function(t){var n=e.defer();return serial.open(t,function(){n.resolve()},function(e){n.reject(e)}),n.promise},t.write=function(t){var n=e.defer();return serial.write(t,function(){n.resolve()},function(e){n.reject(e)}),n.promise},t.writeHex=function(t){var n=e.defer();return serial.writeHex(t,function(){n.resolve()},function(e){n.reject(e)}),n.promise},t.read=function(){var t=e.defer();return serial.read(function(e){var n=new Uint8Array(e);t.resolve(n)},function(e){t.reject(e)}),t.promise},t.registerReadCallback=function(e,t){serial.registerReadCallback(function(t){var n=new Uint8Array(t);e(n)},t)},t.close=function(){var t=e.defer();return serial.close(function(){t.resolve()},function(e){t.reject(e)}),t.promise},t}]),angular.module("ngCordova.plugins.sms",[]).factory("$cordovaSms",["$q",function(e){return{send:function(t,n,r){var i=e.defer();return sms.send(t,n,r,function(e){i.resolve(e)},function(e){i.reject(e)}),i.promise}}}]),angular.module("ngCordova.plugins.socialSharing",[]).factory("$cordovaSocialSharing",["$q","$window",function(e,t){return{share:function(n,r,i,o){var a=e.defer();return r=r||null,i=i||null,o=o||null,t.plugins.socialsharing.share(n,r,i,o,function(){a.resolve(!0)},function(){a.reject(!1)}),a.promise},shareWithOptions:function(n){var r=e.defer();return t.plugins.socialsharing.shareWithOptions(n,function(){r.resolve(!0)},function(){r.reject(!1)}),r.promise},shareViaTwitter:function(n,r,i){var o=e.defer();return r=r||null,i=i||null,t.plugins.socialsharing.shareViaTwitter(n,r,i,function(){o.resolve(!0)},function(){o.reject(!1)}),o.promise},shareViaWhatsApp:function(n,r,i){var o=e.defer();return r=r||null,i=i||null,t.plugins.socialsharing.shareViaWhatsApp(n,r,i,function(){o.resolve(!0)},function(){o.reject(!1)}),o.promise},shareViaFacebook:function(n,r,i){var o=e.defer();return n=n||null,r=r||null,i=i||null,t.plugins.socialsharing.shareViaFacebook(n,r,i,function(){o.resolve(!0)},function(){o.reject(!1)}),o.promise},shareViaFacebookWithPasteMessageHint:function(n,r,i,o){var a=e.defer();return r=r||null,i=i||null,t.plugins.socialsharing.shareViaFacebookWithPasteMessageHint(n,r,i,o,function(){a.resolve(!0)},function(){a.reject(!1)}),a.promise},shareViaSMS:function(n,r){var i=e.defer();return t.plugins.socialsharing.shareViaSMS(n,r,function(){i.resolve(!0)},function(){i.reject(!1)}),i.promise},shareViaEmail:function(n,r,i,o,a,s){var l=e.defer();return i=i||null,o=o||null,a=a||null,s=s||null,t.plugins.socialsharing.shareViaEmail(n,r,i,o,a,s,function(){l.resolve(!0)},function(){l.reject(!1)}),l.promise},shareVia:function(n,r,i,o,a){var s=e.defer();return r=r||null,i=i||null,o=o||null,a=a||null,t.plugins.socialsharing.shareVia(n,r,i,o,a,function(){s.resolve(!0)},function(){s.reject(!1)}),s.promise},canShareViaEmail:function(){var n=e.defer();return t.plugins.socialsharing.canShareViaEmail(function(){n.resolve(!0)},function(){n.reject(!1)}),n.promise},canShareVia:function(n,r,i,o,a){var s=e.defer();return t.plugins.socialsharing.canShareVia(n,r,i,o,a,function(e){s.resolve(e)},function(e){s.reject(e)}),s.promise},available:function(){var t=e.defer();return window.plugins.socialsharing.available(function(e){e?t.resolve():t.reject()}),t.promise}}}]),angular.module("ngCordova.plugins.spinnerDialog",[]).factory("$cordovaSpinnerDialog",["$window",function(e){return{show:function(t,n,r,i){return r=r||!1,e.plugins.spinnerDialog.show(t,n,r,i)},hide:function(){return e.plugins.spinnerDialog.hide()}}}]),angular.module("ngCordova.plugins.splashscreen",[]).factory("$cordovaSplashscreen",[function(){return{hide:function(){return navigator.splashscreen.hide()},show:function(){return navigator.splashscreen.show()}}}]),angular.module("ngCordova.plugins.sqlite",[]).factory("$cordovaSQLite",["$q","$window",function(e,t){return{openDB:function(e,n){return angular.isObject(e)&&!angular.isString(e)?(void 0!==n&&(e.bgType=n),t.sqlitePlugin.openDatabase(e)):t.sqlitePlugin.openDatabase({name:e,bgType:n})},execute:function(t,n,r){var i=e.defer();return t.transaction(function(e){e.executeSql(n,r,function(e,t){i.resolve(t)},function(e,t){i.reject(t)})}),i.promise},insertCollection:function(t,n,r){var i=e.defer(),o=r.slice(0);return t.transaction(function(e){!function t(){var r=o.splice(0,1)[0];try{e.executeSql(n,r,function(e,n){0===o.length?i.resolve(n):t()},function(e,t){i.reject(t)})}catch(e){i.reject(e)}}()}),i.promise},nestedExecute:function(t,n,r,i,o){var a=e.defer();return t.transaction(function(e){e.executeSql(n,i,function(e,t){a.resolve(t),e.executeSql(r,o,function(e,t){a.resolve(t)})})},function(e,t){a.reject(t)}),a.promise},deleteDB:function(n){var r=e.defer();return t.sqlitePlugin.deleteDatabase(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise}}}]),angular.module("ngCordova.plugins.statusbar",[]).factory("$cordovaStatusbar",[function(){return{overlaysWebView:function(e){return StatusBar.overlaysWebView(!!e)},STYLES:{DEFAULT:0,LIGHT_CONTENT:1,BLACK_TRANSLUCENT:2,BLACK_OPAQUE:3},style:function(e){switch(e){case 0:return StatusBar.styleDefault();case 1:return StatusBar.styleLightContent();case 2:return StatusBar.styleBlackTranslucent();case 3:return StatusBar.styleBlackOpaque();default:return StatusBar.styleDefault()}},styleColor:function(e){return StatusBar.backgroundColorByName(e)},styleHex:function(e){return StatusBar.backgroundColorByHexString(e)},hide:function(){return StatusBar.hide()},show:function(){return StatusBar.show()},isVisible:function(){return StatusBar.isVisible}}}]),angular.module("ngCordova.plugins.toast",[]).factory("$cordovaToast",["$q","$window",function(e,t){return{showShortTop:function(n){var r=e.defer();return t.plugins.toast.showShortTop(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showShortCenter:function(n){var r=e.defer();return t.plugins.toast.showShortCenter(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showShortBottom:function(n){var r=e.defer();return t.plugins.toast.showShortBottom(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showLongTop:function(n){var r=e.defer();return t.plugins.toast.showLongTop(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showLongCenter:function(n){var r=e.defer();return t.plugins.toast.showLongCenter(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showLongBottom:function(n){var r=e.defer();return t.plugins.toast.showLongBottom(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},showWithOptions:function(n){var r=e.defer();return t.plugins.toast.showWithOptions(n,function(e){r.resolve(e)},function(e){r.reject(e)}),r.promise},show:function(n,r,i){var o=e.defer();return t.plugins.toast.show(n,r,i,function(e){o.resolve(e)},function(e){o.reject(e)}),o.promise},hide:function(){var n=e.defer();try{t.plugins.toast.hide(),n.resolve()}catch(e){n.reject(e&&e.message)}return n.promise}}}]),angular.module("ngCordova.plugins.touchid",[]).factory("$cordovaTouchID",["$q",function(e){return{checkSupport:function(){var t=e.defer();return window.cordova?touchid.checkSupport(function(e){t.resolve(e)},function(e){t.reject(e)}):t.reject("Not supported without cordova.js"),t.promise},authenticate:function(t){var n=e.defer();return window.cordova?touchid.authenticate(function(e){n.resolve(e)},function(e){n.reject(e)},t):n.reject("Not supported without cordova.js"),n.promise}}}]),angular.module("ngCordova.plugins.tts",[]).factory("$cordovaTTS",function(){return{speak:function(e,t,n){return TTS.speak(e,t,n)}}}),angular.module("ngCordova.plugins.upsPush",[]).factory("$cordovaUpsPush",["$q","$window","$rootScope","$timeout",function(e,t,n,r){return{register:function(i){var o=e.defer();return t.push.register(function(e){r(function(){n.$broadcast("$cordovaUpsPush:notificationReceived",e)})},function(){o.resolve()},function(e){o.reject(e)},i),o.promise},unregister:function(n){var r=e.defer();return t.push.unregister(function(){r.resolve()},function(e){r.reject(e)},n),r.promise},setBadgeNumber:function(n){var r=e.defer();return t.push.setApplicationIconBadgeNumber(function(){r.resolve()},n),r.promise}}}]),angular.module("ngCordova.plugins.vibration",[]).factory("$cordovaVibration",[function(){return{vibrate:function(e){return navigator.notification.vibrate(e)},vibrateWithPattern:function(e,t){return navigator.notification.vibrateWithPattern(e,t)},cancelVibration:function(){return navigator.notification.cancelVibration()}}}]),angular.module("ngCordova.plugins.videoCapturePlus",[]).provider("$cordovaVideoCapturePlus",[function(){var e={};this.setLimit=function(t){e.limit=t},this.setMaxDuration=function(t){e.duration=t},this.setHighQuality=function(t){e.highquality=t},this.useFrontCamera=function(t){e.frontcamera=t},this.setPortraitOverlay=function(t){e.portraitOverlay=t},this.setLandscapeOverlay=function(t){e.landscapeOverlay=t},this.setOverlayText=function(t){e.overlayText=t},this.$get=["$q","$window",function(t,n){return{captureVideo:function(r){var i=t.defer();return n.plugins.videocaptureplus?(n.plugins.videocaptureplus.captureVideo(i.resolve,i.reject,angular.extend({},e,r)),i.promise):(i.resolve(null),i.promise)}}}]}]),angular.module("ngCordova.plugins.zip",[]).factory("$cordovaZip",["$q","$window",function(e,t){return{unzip:function(n,r){var i=e.defer();return t.zip.unzip(n,r,function(e){0===e?i.resolve():i.reject()},function(e){i.notify(e)}),i.promise}}}])}(),function(e,t,n){var r=e.L,i={};i.version="0.7.7","object"==typeof module&&"object"==typeof module.exports?module.exports=i:"function"==typeof define&&define.amd&&define(i),i.noConflict=function(){return e.L=r,this},e.L=i,i.Util={extend:function(e){var t,n,r,i,o=Array.prototype.slice.call(arguments,1);for(n=0,r=o.length;r>n;n++){i=o[n]||{};for(t in i)i.hasOwnProperty(t)&&(e[t]=i[t])}return e},bind:function(e,t){var n=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return e.apply(t,n||arguments)}},stamp:function(){var e=0,t="_leaflet_id";return function(n){return n[t]=n[t]||++e,n[t]}}(),invokeEach:function(e,t,n){var r,i;if("object"==typeof e){i=Array.prototype.slice.call(arguments,3);for(r in e)t.apply(n,[r,e[r]].concat(i));return!0}return!1},limitExecByInterval:function(e,t,n){var r,i;return function o(){var a=arguments;return r?void(i=!0):(r=!0,setTimeout(function(){r=!1,i&&(o.apply(n,a),i=!1)},t),void e.apply(n,a))}},falseFn:function(){return!1},formatNum:function(e,t){var n=Math.pow(10,t||5);return Math.round(e*n)/n},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},splitWords:function(e){return i.Util.trim(e).split(/\s+/)},setOptions:function(e,t){return e.options=i.extend({},e.options,t),e.options},getParamString:function(e,t,n){var r=[];for(var i in e)r.push(encodeURIComponent(n?i.toUpperCase():i)+"="+encodeURIComponent(e[i]));return(t&&-1!==t.indexOf("?")?"&":"?")+r.join("&")},template:function(e,t){return e.replace(/\{ *([\w_]+) *\}/g,function(e,r){var i=t[r];if(i===n)throw new Error("No value provided for variable "+e);return"function"==typeof i&&(i=i(t)),i})},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},function(){function t(t){var n,r,i=["webkit","moz","o","ms"];for(n=0;n<i.length&&!r;n++)r=e[i[n]+t];return r}function n(t){var n=+new Date,i=Math.max(0,16-(n-r));return r=n+i,e.setTimeout(t,i)}var r=0,o=e.requestAnimationFrame||t("RequestAnimationFrame")||n,a=e.cancelAnimationFrame||t("CancelAnimationFrame")||t("CancelRequestAnimationFrame")||function(t){e.clearTimeout(t)};i.Util.requestAnimFrame=function(t,r,a,s){return t=i.bind(t,r),a&&o===n?void t():o.call(e,t,s)},i.Util.cancelAnimFrame=function(t){t&&a.call(e,t)}}(),i.extend=i.Util.extend,i.bind=i.Util.bind,i.stamp=i.Util.stamp,i.setOptions=i.Util.setOptions,i.Class=function(){},i.Class.extend=function(e){var t=function(){this.initialize&&this.initialize.apply(this,arguments),this._initHooks&&this.callInitHooks()},n=function(){};n.prototype=this.prototype;var r=new n;r.constructor=t,t.prototype=r;for(var o in this)this.hasOwnProperty(o)&&"prototype"!==o&&(t[o]=this[o]);e.statics&&(i.extend(t,e.statics),delete e.statics),e.includes&&(i.Util.extend.apply(null,[r].concat(e.includes)),delete e.includes),e.options&&r.options&&(e.options=i.extend({},r.options,e.options)),i.extend(r,e),r._initHooks=[];var a=this;return t.__super__=a.prototype,r.callInitHooks=function(){if(!this._initHooksCalled){a.prototype.callInitHooks&&a.prototype.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=r._initHooks.length;t>e;e++)r._initHooks[e].call(this)}},t},i.Class.include=function(e){i.extend(this.prototype,e)},i.Class.mergeOptions=function(e){i.extend(this.prototype.options,e)},i.Class.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n="function"==typeof e?e:function(){this[e].apply(this,t)};this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n)};var o="_leaflet_events";i.Mixin={},i.Mixin.Events={addEventListener:function(e,t,n){if(i.Util.invokeEach(e,this.addEventListener,this,t,n))return this;var r,a,s,l,u,c,d,h=this[o]=this[o]||{},f=n&&n!==this&&i.stamp(n);for(e=i.Util.splitWords(e),r=0,a=e.length;a>r;r++)s={action:t,context:n||this},l=e[r],f?(u=l+"_idx",c=u+"_len",d=h[u]=h[u]||{},d[f]||(d[f]=[],h[c]=(h[c]||0)+1),d[f].push(s)):(h[l]=h[l]||[],h[l].push(s));return this},hasEventListeners:function(e){var t=this[o];return!!t&&(e in t&&t[e].length>0||e+"_idx"in t&&t[e+"_idx_len"]>0)},removeEventListener:function(e,t,n){if(!this[o])return this;if(!e)return this.clearAllEventListeners();if(i.Util.invokeEach(e,this.removeEventListener,this,t,n))return this;var r,a,s,l,u,c,d,h,f,p=this[o],m=n&&n!==this&&i.stamp(n);for(e=i.Util.splitWords(e),r=0,a=e.length;a>r;r++)if(s=e[r],c=s+"_idx",d=c+"_len",h=p[c],t){if(l=m&&h?h[m]:p[s]){for(u=l.length-1;u>=0;u--)l[u].action!==t||n&&l[u].context!==n||(f=l.splice(u,1),f[0].action=i.Util.falseFn);n&&h&&0===l.length&&(delete h[m],p[d]--)}}else delete p[s],delete p[c],delete p[d];return this},clearAllEventListeners:function(){return delete this[o],this},fireEvent:function(e,t){if(!this.hasEventListeners(e))return this;var n,r,a,s,l,u=i.Util.extend({},t,{type:e,target:this}),c=this[o];if(c[e])for(n=c[e].slice(),r=0,a=n.length;a>r;r++)n[r].action.call(n[r].context,u);s=c[e+"_idx"];for(l in s)if(n=s[l].slice())for(r=0,a=n.length;a>r;r++)n[r].action.call(n[r].context,u);return this},addOneTimeEventListener:function(e,t,n){if(i.Util.invokeEach(e,this.addOneTimeEventListener,this,t,n))return this;var r=i.bind(function(){this.removeEventListener(e,t,n).removeEventListener(e,r,n)},this);return this.addEventListener(e,t,n).addEventListener(e,r,n)}},i.Mixin.Events.on=i.Mixin.Events.addEventListener,i.Mixin.Events.off=i.Mixin.Events.removeEventListener,i.Mixin.Events.once=i.Mixin.Events.addOneTimeEventListener,i.Mixin.Events.fire=i.Mixin.Events.fireEvent,function(){var r="ActiveXObject"in e,o=r&&!t.addEventListener,a=navigator.userAgent.toLowerCase(),s=-1!==a.indexOf("webkit"),l=-1!==a.indexOf("chrome"),u=-1!==a.indexOf("phantom"),c=-1!==a.indexOf("android"),d=-1!==a.search("android [23]"),h=-1!==a.indexOf("gecko"),f=typeof orientation!=n+"",p=!e.PointerEvent&&e.MSPointerEvent,m=e.PointerEvent&&e.navigator.pointerEnabled||p,g="devicePixelRatio"in e&&e.devicePixelRatio>1||"matchMedia"in e&&e.matchMedia("(min-resolution:144dpi)")&&e.matchMedia("(min-resolution:144dpi)").matches,v=t.documentElement,_=r&&"transition"in v.style,y="WebKitCSSMatrix"in e&&"m11"in new e.WebKitCSSMatrix&&!d,b="MozPerspective"in v.style,w="OTransition"in v.style,L=!e.L_DISABLE_3D&&(_||y||b||w)&&!u,M=!e.L_NO_TOUCH&&!u&&(m||"ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch);i.Browser={ie:r,ielt9:o,webkit:s,gecko:h&&!s&&!e.opera&&!r,android:c,android23:d,chrome:l,ie3d:_,webkit3d:y,gecko3d:b,opera3d:w,any3d:L,mobile:f,mobileWebkit:f&&s,mobileWebkit3d:f&&y,mobileOpera:f&&e.opera,touch:M,msPointer:p,pointer:m,retina:g}}(),i.Point=function(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t},i.Point.prototype={clone:function(){return new i.Point(this.x,this.y)},add:function(e){return this.clone()._add(i.point(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(i.point(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},distanceTo:function(e){e=i.point(e);var t=e.x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return e=i.point(e),e.x===this.x&&e.y===this.y},contains:function(e){return e=i.point(e),Math.abs(e.x)<=Math.abs(this.x)&&Math.abs(e.y)<=Math.abs(this.y)},toString:function(){return"Point("+i.Util.formatNum(this.x)+", "+i.Util.formatNum(this.y)+")"}},i.point=function(e,t,r){return e instanceof i.Point?e:i.Util.isArray(e)?new i.Point(e[0],e[1]):e===n||null===e?e:new i.Point(e,t,r)},i.Bounds=function(e,t){if(e)for(var n=t?[e,t]:e,r=0,i=n.length;i>r;r++)this.extend(n[r])},i.Bounds.prototype={extend:function(e){return e=i.point(e),this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(e.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(e.y,this.max.y)):(this.min=e.clone(),this.max=e.clone()),this},getCenter:function(e){return new i.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return new i.Point(this.min.x,this.max.y)},getTopRight:function(){return new i.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(e){var t,n;return e="number"==typeof e[0]||e instanceof i.Point?i.point(e):i.bounds(e),e instanceof i.Bounds?(t=e.min,n=e.max):t=n=e,t.x>=this.min.x&&n.x<=this.max.x&&t.y>=this.min.y&&n.y<=this.max.y},intersects:function(e){e=i.bounds(e);var t=this.min,n=this.max,r=e.min,o=e.max,a=o.x>=t.x&&r.x<=n.x,s=o.y>=t.y&&r.y<=n.y;return a&&s},isValid:function(){return!(!this.min||!this.max)}},i.bounds=function(e,t){return!e||e instanceof i.Bounds?e:new i.Bounds(e,t)},i.Transformation=function(e,t,n,r){this._a=e,this._b=t,this._c=n,this._d=r},i.Transformation.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t=t||1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t=t||1,new i.Point((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}},i.DomUtil={get:function(e){return"string"==typeof e?t.getElementById(e):e},getStyle:function(e,n){var r=e.style[n];if(!r&&e.currentStyle&&(r=e.currentStyle[n]),(!r||"auto"===r)&&t.defaultView){var i=t.defaultView.getComputedStyle(e,null);r=i?i[n]:null}return"auto"===r?null:r},getViewportOffset:function(e){var n,r=0,o=0,a=e,s=t.body,l=t.documentElement;do{if(r+=a.offsetTop||0,o+=a.offsetLeft||0,r+=parseInt(i.DomUtil.getStyle(a,"borderTopWidth"),10)||0,o+=parseInt(i.DomUtil.getStyle(a,"borderLeftWidth"),10)||0,n=i.DomUtil.getStyle(a,"position"),a.offsetParent===s&&"absolute"===n)break;if("fixed"===n){r+=s.scrollTop||l.scrollTop||0,o+=s.scrollLeft||l.scrollLeft||0;break}if("relative"===n&&!a.offsetLeft){var u=i.DomUtil.getStyle(a,"width"),c=i.DomUtil.getStyle(a,"max-width"),d=a.getBoundingClientRect();("none"!==u||"none"!==c)&&(o+=d.left+a.clientLeft),r+=d.top+(s.scrollTop||l.scrollTop||0);break}a=a.offsetParent}while(a);a=e;do{if(a===s)break;r-=a.scrollTop||0,o-=a.scrollLeft||0,a=a.parentNode}while(a);return new i.Point(o,r)},documentIsLtr:function(){return i.DomUtil._docIsLtrCached||(i.DomUtil._docIsLtrCached=!0,i.DomUtil._docIsLtr="ltr"===i.DomUtil.getStyle(t.body,"direction")),i.DomUtil._docIsLtr},create:function(e,n,r){var i=t.createElement(e);return i.className=n,r&&r.appendChild(i),i},hasClass:function(e,t){if(e.classList!==n)return e.classList.contains(t);var r=i.DomUtil._getClass(e);return r.length>0&&new RegExp("(^|\\s)"+t+"(\\s|$)").test(r)},addClass:function(e,t){if(e.classList!==n)for(var r=i.Util.splitWords(t),o=0,a=r.length;a>o;o++)e.classList.add(r[o]);else if(!i.DomUtil.hasClass(e,t)){var s=i.DomUtil._getClass(e);i.DomUtil._setClass(e,(s?s+" ":"")+t)}},removeClass:function(e,t){e.classList!==n?e.classList.remove(t):i.DomUtil._setClass(e,i.Util.trim((" "+i.DomUtil._getClass(e)+" ").replace(" "+t+" "," ")))},_setClass:function(e,t){e.className.baseVal===n?e.className=t:e.className.baseVal=t},_getClass:function(e){return e.className.baseVal===n?e.className:e.className.baseVal},setOpacity:function(e,t){if("opacity"in e.style)e.style.opacity=t;else if("filter"in e.style){var n=!1,r="DXImageTransform.Microsoft.Alpha";try{n=e.filters.item(r)}catch(e){if(1===t)return}t=Math.round(100*t),n?(n.Enabled=100!==t,n.Opacity=t):e.style.filter+=" progid:"+r+"(opacity="+t+")"}},testProp:function(e){for(var n=t.documentElement.style,r=0;r<e.length;r++)if(e[r]in n)return e[r];return!1},getTranslateString:function(e){var t=i.Browser.webkit3d,n="translate"+(t?"3d":"")+"(",r=(t?",0":"")+")";return n+e.x+"px,"+e.y+"px"+r},getScaleString:function(e,t){return i.DomUtil.getTranslateString(t.add(t.multiplyBy(-1*e)))+" scale("+e+") "},setPosition:function(e,t,n){e._leaflet_pos=t,!n&&i.Browser.any3d?e.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(t):(e.style.left=t.x+"px",e.style.top=t.y+"px")},getPosition:function(e){return e._leaflet_pos}},i.DomUtil.TRANSFORM=i.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),i.DomUtil.TRANSITION=i.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),i.DomUtil.TRANSITION_END="webkitTransition"===i.DomUtil.TRANSITION||"OTransition"===i.DomUtil.TRANSITION?i.DomUtil.TRANSITION+"End":"transitionend",function(){if("onselectstart"in t)i.extend(i.DomUtil,{disableTextSelection:function(){i.DomEvent.on(e,"selectstart",i.DomEvent.preventDefault)},enableTextSelection:function(){i.DomEvent.off(e,"selectstart",i.DomEvent.preventDefault)}});else{var n=i.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);i.extend(i.DomUtil,{disableTextSelection:function(){if(n){var e=t.documentElement.style;this._userSelect=e[n],e[n]="none"}},enableTextSelection:function(){n&&(t.documentElement.style[n]=this._userSelect,delete this._userSelect)}})}i.extend(i.DomUtil,{disableImageDrag:function(){i.DomEvent.on(e,"dragstart",i.DomEvent.preventDefault)},enableImageDrag:function(){i.DomEvent.off(e,"dragstart",i.DomEvent.preventDefault)}})}(),i.LatLng=function(e,t,r){if(e=parseFloat(e),t=parseFloat(t),isNaN(e)||isNaN(t))throw new Error("Invalid LatLng object: ("+e+", "+t+")");this.lat=e,this.lng=t,r!==n&&(this.alt=parseFloat(r))},i.extend(i.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9}),i.LatLng.prototype={equals:function(e){return!!e&&(e=i.latLng(e),Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng))<=i.LatLng.MAX_MARGIN)},toString:function(e){return"LatLng("+i.Util.formatNum(this.lat,e)+", "+i.Util.formatNum(this.lng,e)+")"},distanceTo:function(e){e=i.latLng(e);var t=i.LatLng.DEG_TO_RAD,n=(e.lat-this.lat)*t,r=(e.lng-this.lng)*t,o=this.lat*t,a=e.lat*t,s=Math.sin(n/2),l=Math.sin(r/2),u=s*s+l*l*Math.cos(o)*Math.cos(a);return 12756274*Math.atan2(Math.sqrt(u),Math.sqrt(1-u))},wrap:function(e,t){var n=this.lng;return e=e||-180,t=t||180,n=(n+t)%(t-e)+(e>n||n===t?t:e),new i.LatLng(this.lat,n)}},i.latLng=function(e,t){return e instanceof i.LatLng?e:i.Util.isArray(e)?"number"==typeof e[0]||"string"==typeof e[0]?new i.LatLng(e[0],e[1],e[2]):null:e===n||null===e?e:"object"==typeof e&&"lat"in e?new i.LatLng(e.lat,"lng"in e?e.lng:e.lon):t===n?null:new i.LatLng(e,t)},i.LatLngBounds=function(e,t){if(e)for(var n=t?[e,t]:e,r=0,i=n.length;i>r;r++)this.extend(n[r])},i.LatLngBounds.prototype={extend:function(e){if(!e)return this;var t=i.latLng(e);return e=null!==t?t:i.latLngBounds(e),e instanceof i.LatLng?this._southWest||this._northEast?(this._southWest.lat=Math.min(e.lat,this._southWest.lat),this._southWest.lng=Math.min(e.lng,this._southWest.lng),this._northEast.lat=Math.max(e.lat,this._northEast.lat),this._northEast.lng=Math.max(e.lng,this._northEast.lng)):(this._southWest=new i.LatLng(e.lat,e.lng),this._northEast=new i.LatLng(e.lat,e.lng)):e instanceof i.LatLngBounds&&(this.extend(e._southWest),this.extend(e._northEast)),this},pad:function(e){var t=this._southWest,n=this._northEast,r=Math.abs(t.lat-n.lat)*e,o=Math.abs(t.lng-n.lng)*e;return new i.LatLngBounds(new i.LatLng(t.lat-r,t.lng-o),new i.LatLng(n.lat+r,n.lng+o))},getCenter:function(){return new i.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new i.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new i.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(e){e="number"==typeof e[0]||e instanceof i.LatLng?i.latLng(e):i.latLngBounds(e);var t,n,r=this._southWest,o=this._northEast;return e instanceof i.LatLngBounds?(t=e.getSouthWest(),n=e.getNorthEast()):t=n=e,t.lat>=r.lat&&n.lat<=o.lat&&t.lng>=r.lng&&n.lng<=o.lng},intersects:function(e){e=i.latLngBounds(e);var t=this._southWest,n=this._northEast,r=e.getSouthWest(),o=e.getNorthEast(),a=o.lat>=t.lat&&r.lat<=n.lat,s=o.lng>=t.lng&&r.lng<=n.lng;return a&&s},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(e){return!!e&&(e=i.latLngBounds(e),this._southWest.equals(e.getSouthWest())&&this._northEast.equals(e.getNorthEast()))},isValid:function(){return!(!this._southWest||!this._northEast)}},i.latLngBounds=function(e,t){return!e||e instanceof i.LatLngBounds?e:new i.LatLngBounds(e,t)},
-i.Projection={},i.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(e){var t=i.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,r=Math.max(Math.min(n,e.lat),-n),o=e.lng*t,a=r*t;return a=Math.log(Math.tan(Math.PI/4+a/2)),new i.Point(o,a)},unproject:function(e){var t=i.LatLng.RAD_TO_DEG,n=e.x*t,r=(2*Math.atan(Math.exp(e.y))-Math.PI/2)*t;return new i.LatLng(r,n)}},i.Projection.LonLat={project:function(e){return new i.Point(e.lng,e.lat)},unproject:function(e){return new i.LatLng(e.y,e.x)}},i.CRS={latLngToPoint:function(e,t){var n=this.projection.project(e),r=this.scale(t);return this.transformation._transform(n,r)},pointToLatLng:function(e,t){var n=this.scale(t),r=this.transformation.untransform(e,n);return this.projection.unproject(r)},project:function(e){return this.projection.project(e)},scale:function(e){return 256*Math.pow(2,e)},getSize:function(e){var t=this.scale(e);return i.point(t,t)}},i.CRS.Simple=i.extend({},i.CRS,{projection:i.Projection.LonLat,transformation:new i.Transformation(1,0,-1,0),scale:function(e){return Math.pow(2,e)}}),i.CRS.EPSG3857=i.extend({},i.CRS,{code:"EPSG:3857",projection:i.Projection.SphericalMercator,transformation:new i.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(e){return this.projection.project(e).multiplyBy(6378137)}}),i.CRS.EPSG900913=i.extend({},i.CRS.EPSG3857,{code:"EPSG:900913"}),i.CRS.EPSG4326=i.extend({},i.CRS,{code:"EPSG:4326",projection:i.Projection.LonLat,transformation:new i.Transformation(1/360,.5,-1/360,.5)}),i.Map=i.Class.extend({includes:i.Mixin.Events,options:{crs:i.CRS.EPSG3857,fadeAnimation:i.DomUtil.TRANSITION&&!i.Browser.android23,trackResize:!0,markerZoomAnimation:i.DomUtil.TRANSITION&&i.Browser.any3d},initialize:function(e,t){t=i.setOptions(this,t),this._initContainer(e),this._initLayout(),this._onResize=i.bind(this._onResize,this),this._initEvents(),t.maxBounds&&this.setMaxBounds(t.maxBounds),t.center&&t.zoom!==n&&this.setView(i.latLng(t.center),t.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._tileLayersNum=0,this.callInitHooks(),this._addLayers(t.layers)},setView:function(e,t){return t=t===n?this.getZoom():t,this._resetView(i.latLng(e),this._limitZoom(t)),this},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=this._limitZoom(e),this)},zoomIn:function(e,t){return this.setZoom(this._zoom+(e||1),t)},zoomOut:function(e,t){return this.setZoom(this._zoom-(e||1),t)},setZoomAround:function(e,t,n){var r=this.getZoomScale(t),o=this.getSize().divideBy(2),a=e instanceof i.Point?e:this.latLngToContainerPoint(e),s=a.subtract(o).multiplyBy(1-1/r),l=this.containerPointToLatLng(o.add(s));return this.setView(l,t,{zoom:n})},fitBounds:function(e,t){t=t||{},e=e.getBounds?e.getBounds():i.latLngBounds(e);var n=i.point(t.paddingTopLeft||t.padding||[0,0]),r=i.point(t.paddingBottomRight||t.padding||[0,0]),o=this.getBoundsZoom(e,!1,n.add(r));o=t.maxZoom?Math.min(t.maxZoom,o):o;var a=r.subtract(n).divideBy(2),s=this.project(e.getSouthWest(),o),l=this.project(e.getNorthEast(),o),u=this.unproject(s.add(l).divideBy(2).add(a),o);return this.setView(u,o,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e){return this.fire("movestart"),this._rawPanBy(i.point(e)),this.fire("move"),this.fire("moveend")},setMaxBounds:function(e){return e=i.latLngBounds(e),this.options.maxBounds=e,e?(this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds,this)):this.off("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(e,t){var n=this.getCenter(),r=this._limitCenter(n,this._zoom,e);return n.equals(r)?this:this.panTo(r,t)},addLayer:function(e){var t=i.stamp(e);return this._layers[t]?this:(this._layers[t]=e,!e.options||isNaN(e.options.maxZoom)&&isNaN(e.options.minZoom)||(this._zoomBoundLayers[t]=e,this._updateZoomLevels()),this.options.zoomAnimation&&i.TileLayer&&e instanceof i.TileLayer&&(this._tileLayersNum++,this._tileLayersToLoad++,e.on("load",this._onTileLayerLoad,this)),this._loaded&&this._layerAdd(e),this)},removeLayer:function(e){var t=i.stamp(e);return this._layers[t]?(this._loaded&&e.onRemove(this),delete this._layers[t],this._loaded&&this.fire("layerremove",{layer:e}),this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels()),this.options.zoomAnimation&&i.TileLayer&&e instanceof i.TileLayer&&(this._tileLayersNum--,this._tileLayersToLoad--,e.off("load",this._onTileLayerLoad,this)),this):this},hasLayer:function(e){return!!e&&i.stamp(e)in this._layers},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},invalidateSize:function(e){if(!this._loaded)return this;e=i.extend({animate:!1,pan:!0},!0===e?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._initialCenter=null;var n=this.getSize(),r=t.divideBy(2).round(),o=n.divideBy(2).round(),a=r.subtract(o);return a.x||a.y?(e.animate&&e.pan?this.panBy(a):(e.pan&&this._rawPanBy(a),this.fire("move"),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:t,newSize:n})):this},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&&n.enable(),this},remove:function(){this._loaded&&this.fire("unload"),this._initEvents("off");try{delete this._container._leaflet}catch(e){this._container._leaflet=n}return this._clearPanes(),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this},getCenter:function(){return this._checkIfLoaded(),this._initialCenter&&!this._moved()?this._initialCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds(),t=this.unproject(e.getBottomLeft()),n=this.unproject(e.getTopRight());return new i.LatLngBounds(t,n)},getMinZoom:function(){return this.options.minZoom===n?this._layersMinZoom===n?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===n?this._layersMaxZoom===n?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(e,t,n){e=i.latLngBounds(e);var r,o=this.getMinZoom()-(t?1:0),a=this.getMaxZoom(),s=this.getSize(),l=e.getNorthWest(),u=e.getSouthEast(),c=!0;n=i.point(n||[0,0]);do{o++,r=this.project(u,o).subtract(this.project(l,o)).add(n),c=t?r.x<s.x||r.y<s.y:s.contains(r)}while(c&&a>=o);return c&&t?null:t?o:o-1},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new i.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(){var e=this._getTopLeftPoint();return new i.Bounds(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e){var t=this.options.crs;return t.scale(e)/t.scale(this._zoom)},getScaleZoom:function(e){return this._zoom+Math.log(e)/Math.LN2},project:function(e,t){return t=t===n?this._zoom:t,this.options.crs.latLngToPoint(i.latLng(e),t)},unproject:function(e,t){return t=t===n?this._zoom:t,this.options.crs.pointToLatLng(i.point(e),t)},layerPointToLatLng:function(e){var t=i.point(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){return this.project(i.latLng(e))._round()._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(e){return i.point(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return i.point(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(i.point(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(i.latLng(e)))},mouseEventToContainerPoint:function(e){return i.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=i.DomUtil.get(e);if(!t)throw new Error("Map container not found.");if(t._leaflet)throw new Error("Map container is already initialized.");t._leaflet=!0},_initLayout:function(){var e=this._container;i.DomUtil.addClass(e,"leaflet-container"+(i.Browser.touch?" leaflet-touch":"")+(i.Browser.retina?" leaflet-retina":"")+(i.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var t=i.DomUtil.getStyle(e,"position");"absolute"!==t&&"relative"!==t&&"fixed"!==t&&(e.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var e=this._panes={};this._mapPane=e.mapPane=this._createPane("leaflet-map-pane",this._container),this._tilePane=e.tilePane=this._createPane("leaflet-tile-pane",this._mapPane),e.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane),e.shadowPane=this._createPane("leaflet-shadow-pane"),e.overlayPane=this._createPane("leaflet-overlay-pane"),e.markerPane=this._createPane("leaflet-marker-pane"),e.popupPane=this._createPane("leaflet-popup-pane");var t=" leaflet-zoom-hide";this.options.markerZoomAnimation||(i.DomUtil.addClass(e.markerPane,t),i.DomUtil.addClass(e.shadowPane,t),i.DomUtil.addClass(e.popupPane,t))},_createPane:function(e,t){return i.DomUtil.create("div",e,t||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(e){e=e?i.Util.isArray(e)?e:[e]:[];for(var t=0,n=e.length;n>t;t++)this.addLayer(e[t])},_resetView:function(e,t,n,r){var o=this._zoom!==t;r||(this.fire("movestart"),o&&this.fire("zoomstart")),this._zoom=t,this._initialCenter=e,this._initialTopLeftPoint=this._getNewTopLeftPoint(e),n?this._initialTopLeftPoint._add(this._getMapPanePos()):i.DomUtil.setPosition(this._mapPane,new i.Point(0,0)),this._tileLayersToLoad=this._tileLayersNum;var a=!this._loaded;this._loaded=!0,this.fire("viewreset",{hard:!n}),a&&(this.fire("load"),this.eachLayer(this._layerAdd,this)),this.fire("move"),(o||r)&&this.fire("zoomend"),this.fire("moveend",{hard:!n})},_rawPanBy:function(e){i.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var e,t=1/0,r=-1/0,i=this._getZoomSpan();for(e in this._zoomBoundLayers){var o=this._zoomBoundLayers[e];isNaN(o.options.minZoom)||(t=Math.min(t,o.options.minZoom)),isNaN(o.options.maxZoom)||(r=Math.max(r,o.options.maxZoom))}e===n?this._layersMaxZoom=this._layersMinZoom=n:(this._layersMaxZoom=r,this._layersMinZoom=t),i!==this._getZoomSpan()&&this.fire("zoomlevelschange")},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){if(i.DomEvent){t=t||"on",i.DomEvent[t](this._container,"click",this._onMouseClick,this);var n,r,o=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"];for(n=0,r=o.length;r>n;n++)i.DomEvent[t](this._container,o[n],this._fireMouseEvent,this);this.options.trackResize&&i.DomEvent[t](e,"resize",this._onResize,this)}},_onResize:function(){i.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=i.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this,!1,this._container)},_onMouseClick:function(e){!this._loaded||!e._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||i.DomEvent._skipped(e)||(this.fire("preclick"),this._fireMouseEvent(e))},_fireMouseEvent:function(e){if(this._loaded&&!i.DomEvent._skipped(e)){var t=e.type;if(t="mouseenter"===t?"mouseover":"mouseleave"===t?"mouseout":t,this.hasEventListeners(t)){"contextmenu"===t&&i.DomEvent.preventDefault(e);var n=this.mouseEventToContainerPoint(e),r=this.containerPointToLayerPoint(n),o=this.layerPointToLatLng(r);this.fire(t,{latlng:o,layerPoint:r,containerPoint:n,originalEvent:e})}}},_onTileLayerLoad:function(){this._tileLayersToLoad--,this._tileLayersNum&&!this._tileLayersToLoad&&this.fire("tilelayersload")},_clearHandlers:function(){for(var e=0,t=this._handlers.length;t>e;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,this):this.on("load",e,t),this},_layerAdd:function(e){e.onAdd(this),this.fire("layeradd",{layer:e})},_getMapPanePos:function(){return i.DomUtil.getPosition(this._mapPane)},_moved:function(){var e=this._getMapPanePos();return e&&!e.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._round()},_latLngToNewLayerPoint:function(e,t,n){var r=this._getNewTopLeftPoint(n,t).add(this._getMapPanePos());return this.project(e,t)._subtract(r)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var r=this.project(e,t),o=this.getSize().divideBy(2),a=new i.Bounds(r.subtract(o),r.add(o)),s=this._getBoundsOffset(a,n,t);return this.unproject(r.add(s),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),r=new i.Bounds(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(r,t))},_getBoundsOffset:function(e,t,n){var r=this.project(t.getNorthWest(),n).subtract(e.min),o=this.project(t.getSouthEast(),n).subtract(e.max),a=this._rebound(r.x,-o.x),s=this._rebound(r.y,-o.y);return new i.Point(a,s)},_rebound:function(e,t){return e+t>0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom();return Math.max(t,Math.min(n,e))}}),i.map=function(e,t){return new i.Map(e,t)},i.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(e){var t=i.LatLng.DEG_TO_RAD,n=this.MAX_LATITUDE,r=Math.max(Math.min(n,e.lat),-n),o=this.R_MAJOR,a=this.R_MINOR,s=e.lng*t*o,l=r*t,u=a/o,c=Math.sqrt(1-u*u),d=c*Math.sin(l);d=Math.pow((1-d)/(1+d),.5*c);var h=Math.tan(.5*(.5*Math.PI-l))/d;return l=-o*Math.log(h),new i.Point(s,l)},unproject:function(e){for(var t,n=i.LatLng.RAD_TO_DEG,r=this.R_MAJOR,o=this.R_MINOR,a=e.x*n/r,s=o/r,l=Math.sqrt(1-s*s),u=Math.exp(-e.y/r),c=Math.PI/2-2*Math.atan(u),d=15,h=.1;Math.abs(h)>1e-7&&--d>0;)t=l*Math.sin(c),h=Math.PI/2-2*Math.atan(u*Math.pow((1-t)/(1+t),.5*l))-c,c+=h;return new i.LatLng(c*n,a)}},i.CRS.EPSG3395=i.extend({},i.CRS,{code:"EPSG:3395",projection:i.Projection.Mercator,transformation:function(){var e=i.Projection.Mercator,t=e.R_MAJOR,n=.5/(Math.PI*t);return new i.Transformation(n,.5,-n,.5)}()}),i.TileLayer=i.Class.extend({includes:i.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:i.Browser.mobile,updateWhenIdle:i.Browser.mobile},initialize:function(e,t){t=i.setOptions(this,t),t.detectRetina&&i.Browser.retina&&t.maxZoom>0&&(t.tileSize=Math.floor(t.tileSize/2),t.zoomOffset++,t.minZoom>0&&t.minZoom--,this.options.maxZoom--),t.bounds&&(t.bounds=i.latLngBounds(t.bounds)),this._url=e;var n=this.options.subdomains;"string"==typeof n&&(this.options.subdomains=n.split(""))},onAdd:function(e){this._map=e,this._animated=e._zoomAnimated,this._initContainer(),e.on({viewreset:this._reset,moveend:this._update},this),this._animated&&e.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||(this._limitedUpdate=i.Util.limitExecByInterval(this._update,150,this),e.on("move",this._limitedUpdate,this)),this._reset(),this._update()},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this._container.parentNode.removeChild(this._container),e.off({viewreset:this._reset,moveend:this._update},this),this._animated&&e.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this),this.options.updateWhenIdle||e.off("move",this._limitedUpdate,this),this._container=null,this._map=null},bringToFront:function(){var e=this._map._panes.tilePane;return this._container&&(e.appendChild(this._container),this._setAutoZIndex(e,Math.max)),this},bringToBack:function(){var e=this._map._panes.tilePane;return this._container&&(e.insertBefore(this._container,e.firstChild),this._setAutoZIndex(e,Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},setUrl:function(e,t){return this._url=e,t||this.redraw(),this},redraw:function(){return this._map&&(this._reset({hard:!0}),this._update()),this},_updateZIndex:function(){this._container&&this.options.zIndex!==n&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e,t){var n,r,i,o=e.children,a=-t(1/0,-1/0);for(r=0,i=o.length;i>r;r++)o[r]!==this._container&&(n=parseInt(o[r].style.zIndex,10),isNaN(n)||(a=t(a,n)));this.options.zIndex=this._container.style.zIndex=(isFinite(a)?a:0)+t(1,-1)},_updateOpacity:function(){var e,t=this._tiles;if(i.Browser.ielt9)for(e in t)i.DomUtil.setOpacity(t[e],this.options.opacity);else i.DomUtil.setOpacity(this._container,this.options.opacity)},_initContainer:function(){var e=this._map._panes.tilePane;if(!this._container){if(this._container=i.DomUtil.create("div","leaflet-layer"),this._updateZIndex(),this._animated){var t="leaflet-tile-container";this._bgBuffer=i.DomUtil.create("div",t,this._container),this._tileContainer=i.DomUtil.create("div",t,this._container)}else this._tileContainer=this._container;e.appendChild(this._container),this.options.opacity<1&&this._updateOpacity()}},_reset:function(e){for(var t in this._tiles)this.fire("tileunload",{tile:this._tiles[t]});this._tiles={},this._tilesToLoad=0,this.options.reuseTiles&&(this._unusedTiles=[]),this._tileContainer.innerHTML="",this._animated&&e&&e.hard&&this._clearBgBuffer(),this._initContainer()},_getTileSize:function(){var e=this._map,t=e.getZoom()+this.options.zoomOffset,n=this.options.maxNativeZoom,r=this.options.tileSize;return n&&t>n&&(r=Math.round(e.getZoomScale(t)/e.getZoomScale(n)*r)),r},_update:function(){if(this._map){var e=this._map,t=e.getPixelBounds(),n=e.getZoom(),r=this._getTileSize();if(!(n>this.options.maxZoom||n<this.options.minZoom)){var o=i.bounds(t.min.divideBy(r)._floor(),t.max.divideBy(r)._floor());this._addTilesFromCenterOut(o),(this.options.unloadInvisibleTiles||this.options.reuseTiles)&&this._removeOtherTiles(o)}}},_addTilesFromCenterOut:function(e){var n,r,o,a=[],s=e.getCenter();for(n=e.min.y;n<=e.max.y;n++)for(r=e.min.x;r<=e.max.x;r++)o=new i.Point(r,n),this._tileShouldBeLoaded(o)&&a.push(o);var l=a.length;if(0!==l){a.sort(function(e,t){return e.distanceTo(s)-t.distanceTo(s)});var u=t.createDocumentFragment();for(this._tilesToLoad||this.fire("loading"),this._tilesToLoad+=l,r=0;l>r;r++)this._addTile(a[r],u);this._tileContainer.appendChild(u)}},_tileShouldBeLoaded:function(e){if(e.x+":"+e.y in this._tiles)return!1;var t=this.options;if(!t.continuousWorld){var n=this._getWrapTileNum();if(t.noWrap&&(e.x<0||e.x>=n.x)||e.y<0||e.y>=n.y)return!1}if(t.bounds){var r=this._getTileSize(),i=e.multiplyBy(r),o=i.add([r,r]),a=this._map.unproject(i),s=this._map.unproject(o);if(t.continuousWorld||t.noWrap||(a=a.wrap(),s=s.wrap()),!t.bounds.intersects([a,s]))return!1}return!0},_removeOtherTiles:function(e){var t,n,r,i;for(i in this._tiles)t=i.split(":"),n=parseInt(t[0],10),r=parseInt(t[1],10),(n<e.min.x||n>e.max.x||r<e.min.y||r>e.max.y)&&this._removeTile(i)},_removeTile:function(e){var t=this._tiles[e];this.fire("tileunload",{tile:t,url:t.src}),this.options.reuseTiles?(i.DomUtil.removeClass(t,"leaflet-tile-loaded"),this._unusedTiles.push(t)):t.parentNode===this._tileContainer&&this._tileContainer.removeChild(t),i.Browser.android||(t.onload=null,t.src=i.Util.emptyImageUrl),delete this._tiles[e]},_addTile:function(e,t){var n=this._getTilePos(e),r=this._getTile();i.DomUtil.setPosition(r,n,i.Browser.chrome),this._tiles[e.x+":"+e.y]=r,this._loadTile(r,e),r.parentNode!==this._tileContainer&&t.appendChild(r)},_getZoomForUrl:function(){var e=this.options,t=this._map.getZoom();return e.zoomReverse&&(t=e.maxZoom-t),t+=e.zoomOffset,e.maxNativeZoom?Math.min(t,e.maxNativeZoom):t},_getTilePos:function(e){var t=this._map.getPixelOrigin(),n=this._getTileSize();return e.multiplyBy(n).subtract(t)},getTileUrl:function(e){return i.Util.template(this._url,i.extend({s:this._getSubdomain(e),z:e.z,x:e.x,y:e.y},this.options))},_getWrapTileNum:function(){return this._map.options.crs.getSize(this._map.getZoom()).divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(e){var t=this._getWrapTileNum();this.options.continuousWorld||this.options.noWrap||(e.x=(e.x%t.x+t.x)%t.x),this.options.tms&&(e.y=t.y-e.y-1),e.z=this._getZoomForUrl()},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var e=this._unusedTiles.pop();return this._resetTile(e),e}return this._createTile()},_resetTile:function(){},_createTile:function(){var e=i.DomUtil.create("img","leaflet-tile");return e.style.width=e.style.height=this._getTileSize()+"px",e.galleryimg="no",e.onselectstart=e.onmousemove=i.Util.falseFn,i.Browser.ielt9&&this.options.opacity!==n&&i.DomUtil.setOpacity(e,this.options.opacity),i.Browser.mobileWebkit3d&&(e.style.WebkitBackfaceVisibility="hidden"),e},_loadTile:function(e,t){e._layer=this,e.onload=this._tileOnLoad,e.onerror=this._tileOnError,this._adjustTilePoint(t),e.src=this.getTileUrl(t),this.fire("tileloadstart",{tile:e,url:e.src})},_tileLoaded:function(){this._tilesToLoad--,this._animated&&i.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated"),this._tilesToLoad||(this.fire("load"),this._animated&&(clearTimeout(this._clearBgBufferTimer),this._clearBgBufferTimer=setTimeout(i.bind(this._clearBgBuffer,this),500)))},_tileOnLoad:function(){var e=this._layer;this.src!==i.Util.emptyImageUrl&&(i.DomUtil.addClass(this,"leaflet-tile-loaded"),e.fire("tileload",{tile:this,url:this.src})),e._tileLoaded()},_tileOnError:function(){var e=this._layer;e.fire("tileerror",{tile:this,url:this.src});var t=e.options.errorTileUrl;t&&(this.src=t),e._tileLoaded()}}),i.tileLayer=function(e,t){return new i.TileLayer(e,t)},i.TileLayer.WMS=i.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(e,t){this._url=e;var n=i.extend({},this.defaultWmsParams),r=t.tileSize||this.options.tileSize;t.detectRetina&&i.Browser.retina?n.width=n.height=2*r:n.width=n.height=r;for(var o in t)this.options.hasOwnProperty(o)||"crs"===o||(n[o]=t[o]);this.wmsParams=n,i.setOptions(this,t)},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[t]=this._crs.code,i.TileLayer.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._map,n=this.options.tileSize,r=e.multiplyBy(n),o=r.add([n,n]),a=this._crs.project(t.unproject(r,e.z)),s=this._crs.project(t.unproject(o,e.z)),l=this._wmsVersion>=1.3&&this._crs===i.CRS.EPSG4326?[s.y,a.x,a.y,s.x].join(","):[a.x,s.y,s.x,a.y].join(","),u=i.Util.template(this._url,{s:this._getSubdomain(e)});return u+i.Util.getParamString(this.wmsParams,u,!0)+"&BBOX="+l},setParams:function(e,t){return i.extend(this.wmsParams,e),t||this.redraw(),this}}),i.tileLayer.wms=function(e,t){return new i.TileLayer.WMS(e,t)},i.TileLayer.Canvas=i.TileLayer.extend({options:{async:!1},initialize:function(e){i.setOptions(this,e)},redraw:function(){this._map&&(this._reset({hard:!0}),this._update());for(var e in this._tiles)this._redrawTile(this._tiles[e]);return this},_redrawTile:function(e){this.drawTile(e,e._tilePoint,this._map._zoom)},_createTile:function(){var e=i.DomUtil.create("canvas","leaflet-tile");return e.width=e.height=this.options.tileSize,e.onselectstart=e.onmousemove=i.Util.falseFn,e},_loadTile:function(e,t){e._layer=this,e._tilePoint=t,this._redrawTile(e),this.options.async||this.tileDrawn(e)},drawTile:function(){},tileDrawn:function(e){this._tileOnLoad.call(e)}}),i.tileLayer.canvas=function(e){return new i.TileLayer.Canvas(e)},i.ImageOverlay=i.Class.extend({includes:i.Mixin.Events,options:{opacity:1},initialize:function(e,t,n){this._url=e,this._bounds=i.latLngBounds(t),i.setOptions(this,n)},onAdd:function(e){this._map=e,this._image||this._initImage(),e._panes.overlayPane.appendChild(this._image),e.on("viewreset",this._reset,this),e.options.zoomAnimation&&i.Browser.any3d&&e.on("zoomanim",this._animateZoom,this),this._reset()},onRemove:function(e){e.getPanes().overlayPane.removeChild(this._image),e.off("viewreset",this._reset,this),e.options.zoomAnimation&&e.off("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},bringToFront:function(){return this._image&&this._map._panes.overlayPane.appendChild(this._image),this},bringToBack:function(){var e=this._map._panes.overlayPane;return this._image&&e.insertBefore(this._image,e.firstChild),this},setUrl:function(e){this._url=e,this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=i.DomUtil.create("img","leaflet-image-layer"),this._map.options.zoomAnimation&&i.Browser.any3d?i.DomUtil.addClass(this._image,"leaflet-zoom-animated"):i.DomUtil.addClass(this._image,"leaflet-zoom-hide"),this._updateOpacity(),i.extend(this._image,{galleryimg:"no",onselectstart:i.Util.falseFn,onmousemove:i.Util.falseFn,onload:i.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var t=this._map,n=this._image,r=t.getZoomScale(e.zoom),o=this._bounds.getNorthWest(),a=this._bounds.getSouthEast(),s=t._latLngToNewLayerPoint(o,e.zoom,e.center),l=t._latLngToNewLayerPoint(a,e.zoom,e.center)._subtract(s),u=s._add(l._multiplyBy(.5*(1-1/r)));n.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(u)+" scale("+r+") "},_reset:function(){var e=this._image,t=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),n=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(t);i.DomUtil.setPosition(e,t),e.style.width=n.x+"px",e.style.height=n.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){i.DomUtil.setOpacity(this._image,this.options.opacity)}}),i.imageOverlay=function(e,t,n){return new i.ImageOverlay(e,t,n)},i.Icon=i.Class.extend({options:{className:""},initialize:function(e){i.setOptions(this,e)},createIcon:function(e){return this._createIcon("icon",e)},createShadow:function(e){return this._createIcon("shadow",e)},_createIcon:function(e,t){var n=this._getIconUrl(e);if(!n){if("icon"===e)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var r;return r=t&&"IMG"===t.tagName?this._createImg(n,t):this._createImg(n),this._setIconStyles(r,e),r},_setIconStyles:function(e,t){var n,r=this.options,o=i.point(r[t+"Size"]);n="shadow"===t?i.point(r.shadowAnchor||r.iconAnchor):i.point(r.iconAnchor),!n&&o&&(n=o.divideBy(2,!0)),e.className="leaflet-marker-"+t+" "+r.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),o&&(e.style.width=o.x+"px",e.style.height=o.y+"px")},_createImg:function(e,n){return n=n||t.createElement("img"),n.src=e,n},_getIconUrl:function(e){return i.Browser.retina&&this.options[e+"RetinaUrl"]?this.options[e+"RetinaUrl"]:this.options[e+"Url"]}}),i.icon=function(e){return new i.Icon(e)},i.Icon.Default=i.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(e){var t=e+"Url";if(this.options[t])return this.options[t];i.Browser.retina&&"icon"===e&&(e+="-2x");var n=i.Icon.Default.imagePath;if(!n)throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.");return n+"/marker-"+e+".png"}}),i.Icon.Default.imagePath=function(){var e,n,r,i,o=t.getElementsByTagName("script"),a=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;for(e=0,n=o.length;n>e;e++)if(r=o[e].src,r.match(a))return i=r.split(a)[0],(i?i+"/":"")+"images"}(),i.Marker=i.Class.extend({includes:i.Mixin.Events,options:{icon:new i.Icon.Default,title:"",alt:"",clickable:!0,draggable:!1,keyboard:!0,zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250},initialize:function(e,t){i.setOptions(this,t),this._latlng=i.latLng(e)},onAdd:function(e){this._map=e,e.on("viewreset",this.update,this),this._initIcon(),this.update(),this.fire("add"),e.options.zoomAnimation&&e.options.markerZoomAnimation&&e.on("zoomanim",this._animateZoom,this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){this.dragging&&this.dragging.disable(),this._removeIcon(),this._removeShadow(),this.fire("remove"),e.off({viewreset:this.update,zoomanim:this._animateZoom},this),this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=i.latLng(e),this.update(),this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update(),this},setIcon:function(e){return this.options.icon=e,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup),this},update:function(){return this._icon&&this._setPos(this._map.latLngToLayerPoint(this._latlng).round()),this},_initIcon:function(){var e=this.options,t=this._map,n=t.options.zoomAnimation&&t.options.markerZoomAnimation,r=n?"leaflet-zoom-animated":"leaflet-zoom-hide",o=e.icon.createIcon(this._icon),a=!1;o!==this._icon&&(this._icon&&this._removeIcon(),a=!0,e.title&&(o.title=e.title),e.alt&&(o.alt=e.alt)),i.DomUtil.addClass(o,r),e.keyboard&&(o.tabIndex="0"),this._icon=o,this._initInteraction(),e.riseOnHover&&i.DomEvent.on(o,"mouseover",this._bringToFront,this).on(o,"mouseout",this._resetZIndex,this);var s=e.icon.createShadow(this._shadow),l=!1;s!==this._shadow&&(this._removeShadow(),l=!0),s&&i.DomUtil.addClass(s,r),this._shadow=s,e.opacity<1&&this._updateOpacity();var u=this._map._panes;a&&u.markerPane.appendChild(this._icon),s&&l&&u.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&i.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex),this._map._panes.markerPane.removeChild(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow),this._shadow=null},_setPos:function(e){i.DomUtil.setPosition(this._icon,e),this._shadow&&i.DomUtil.setPosition(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon.style.zIndex=this._zIndex+e},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(this.options.clickable){var e=this._icon,t=["dblclick","mousedown","mouseover","mouseout","contextmenu"];i.DomUtil.addClass(e,"leaflet-clickable"),i.DomEvent.on(e,"click",this._onMouseClick,this),i.DomEvent.on(e,"keypress",this._onKeyPress,this);for(var n=0;n<t.length;n++)i.DomEvent.on(e,t[n],this._fireMouseEvent,this);i.Handler.MarkerDrag&&(this.dragging=new i.Handler.MarkerDrag(this),this.options.draggable&&this.dragging.enable())}},_onMouseClick:function(e){var t=this.dragging&&this.dragging.moved();(this.hasEventListeners(e.type)||t)&&i.DomEvent.stopPropagation(e),
-t||(this.dragging&&this.dragging._enabled||!this._map.dragging||!this._map.dragging.moved())&&this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){13===e.keyCode&&this.fire("click",{originalEvent:e,latlng:this._latlng})},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng}),"contextmenu"===e.type&&this.hasEventListeners(e.type)&&i.DomEvent.preventDefault(e),"mousedown"!==e.type?i.DomEvent.stopPropagation(e):i.DomEvent.preventDefault(e)},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},_updateOpacity:function(){i.DomUtil.setOpacity(this._icon,this.options.opacity),this._shadow&&i.DomUtil.setOpacity(this._shadow,this.options.opacity)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),i.marker=function(e,t){return new i.Marker(e,t)},i.DivIcon=i.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:!1},createIcon:function(e){var n=e&&"DIV"===e.tagName?e:t.createElement("div"),r=this.options;return!1!==r.html?n.innerHTML=r.html:n.innerHTML="",r.bgPos&&(n.style.backgroundPosition=-r.bgPos.x+"px "+-r.bgPos.y+"px"),this._setIconStyles(n,"icon"),n},createShadow:function(){return null}}),i.divIcon=function(e){return new i.DivIcon(e)},i.Map.mergeOptions({closePopupOnClick:!0}),i.Popup=i.Class.extend({includes:i.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:!0,closeButton:!0,offset:[0,7],autoPanPadding:[5,5],keepInView:!1,className:"",zoomAnimation:!0},initialize:function(e,t){i.setOptions(this,e),this._source=t,this._animated=i.Browser.any3d&&this.options.zoomAnimation,this._isOpen=!1},onAdd:function(e){this._map=e,this._container||this._initLayout();var t=e.options.fadeAnimation;t&&i.DomUtil.setOpacity(this._container,0),e._panes.popupPane.appendChild(this._container),e.on(this._getEvents(),this),this.update(),t&&i.DomUtil.setOpacity(this._container,1),this.fire("open"),e.fire("popupopen",{popup:this}),this._source&&this._source.fire("popupopen",{popup:this})},addTo:function(e){return e.addLayer(this),this},openOn:function(e){return e.openPopup(this),this},onRemove:function(e){e._panes.popupPane.removeChild(this._container),i.Util.falseFn(this._container.offsetWidth),e.off(this._getEvents(),this),e.options.fadeAnimation&&i.DomUtil.setOpacity(this._container,0),this._map=null,this.fire("close"),e.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this})},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=i.latLng(e),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,this.update(),this},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},_getEvents:function(){var e={viewreset:this._updatePosition};return this._animated&&(e.zoomanim=this._zoomAnimation),("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(e.preclick=this._close),this.options.keepInView&&(e.moveend=this._adjustPan),e},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var e,t="leaflet-popup",n=t+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),r=this._container=i.DomUtil.create("div",n);this.options.closeButton&&(e=this._closeButton=i.DomUtil.create("a",t+"-close-button",r),e.href="#close",e.innerHTML="&#215;",i.DomEvent.disableClickPropagation(e),i.DomEvent.on(e,"click",this._onCloseButtonClick,this));var o=this._wrapper=i.DomUtil.create("div",t+"-content-wrapper",r);i.DomEvent.disableClickPropagation(o),this._contentNode=i.DomUtil.create("div",t+"-content",o),i.DomEvent.disableScrollPropagation(this._contentNode),i.DomEvent.on(o,"contextmenu",i.DomEvent.stopPropagation),this._tipContainer=i.DomUtil.create("div",t+"-tip-container",r),this._tip=i.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateContent:function(){if(this._content){if("string"==typeof this._content)this._contentNode.innerHTML=this._content;else{for(;this._contentNode.hasChildNodes();)this._contentNode.removeChild(this._contentNode.firstChild);this._contentNode.appendChild(this._content)}this.fire("contentupdate")}},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width="",t.whiteSpace="nowrap";var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+"px",t.whiteSpace="",t.height="";var r=e.offsetHeight,o=this.options.maxHeight,a="leaflet-popup-scrolled";o&&r>o?(t.height=o+"px",i.DomUtil.addClass(e,a)):i.DomUtil.removeClass(e,a),this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(this._map){var e=this._map.latLngToLayerPoint(this._latlng),t=this._animated,n=i.point(this.options.offset);t&&i.DomUtil.setPosition(this._container,e),this._containerBottom=-n.y-(t?0:e.y),this._containerLeft=-Math.round(this._containerWidth/2)+n.x+(t?0:e.x),this._container.style.bottom=this._containerBottom+"px",this._container.style.left=this._containerLeft+"px"}},_zoomAnimation:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);i.DomUtil.setPosition(this._container,t)},_adjustPan:function(){if(this.options.autoPan){var e=this._map,t=this._container.offsetHeight,n=this._containerWidth,r=new i.Point(this._containerLeft,-t-this._containerBottom);this._animated&&r._add(i.DomUtil.getPosition(this._container));var o=e.layerPointToContainerPoint(r),a=i.point(this.options.autoPanPadding),s=i.point(this.options.autoPanPaddingTopLeft||a),l=i.point(this.options.autoPanPaddingBottomRight||a),u=e.getSize(),c=0,d=0;o.x+n+l.x>u.x&&(c=o.x+n-u.x+l.x),o.x-c-s.x<0&&(c=o.x-s.x),o.y+t+l.y>u.y&&(d=o.y+t-u.y+l.y),o.y-d-s.y<0&&(d=o.y-s.y),(c||d)&&e.fire("autopanstart").panBy([c,d])}},_onCloseButtonClick:function(e){this._close(),i.DomEvent.stop(e)}}),i.popup=function(e,t){return new i.Popup(e,t)},i.Map.include({openPopup:function(e,t,n){if(this.closePopup(),!(e instanceof i.Popup)){var r=e;e=new i.Popup(n).setLatLng(t).setContent(r)}return e._isOpen=!0,this._popup=e,this.addLayer(e)},closePopup:function(e){return e&&e!==this._popup||(e=this._popup,this._popup=null),e&&(this.removeLayer(e),e._isOpen=!1),this}}),i.Marker.include({openPopup:function(){return this._popup&&this._map&&!this._map.hasLayer(this._popup)&&(this._popup.setLatLng(this._latlng),this._map.openPopup(this._popup)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(){return this._popup&&(this._popup._isOpen?this.closePopup():this.openPopup()),this},bindPopup:function(e,t){var n=i.point(this.options.icon.options.popupAnchor||[0,0]);return n=n.add(i.Popup.prototype.options.offset),t&&t.offset&&(n=n.add(t.offset)),t=i.extend({offset:n},t),this._popupHandlersAdded||(this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this),this._popupHandlersAdded=!0),e instanceof i.Popup?(i.setOptions(e,t),this._popup=e,e._source=this):this._popup=new i.Popup(t,this).setContent(e),this},setPopupContent:function(e){return this._popup&&this._popup.setContent(e),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this),this._popupHandlersAdded=!1),this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}}),i.LayerGroup=i.Class.extend({initialize:function(e){this._layers={};var t,n;if(e)for(t=0,n=e.length;n>t;t++)this.addLayer(e[t])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&&this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return!!e&&(e in this._layers||this.getLayerId(e)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this),this},invoke:function(e){var t,n,r=Array.prototype.slice.call(arguments,1);for(t in this._layers)n=this._layers[t],n[e]&&n[e].apply(n,r);return this},onAdd:function(e){this._map=e,this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e),this._map=null},addTo:function(e){return e.addLayer(this),this},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];for(var t in this._layers)e.push(this._layers[t]);return e},setZIndex:function(e){return this.invoke("setZIndex",e)},getLayerId:function(e){return i.stamp(e)}}),i.layerGroup=function(e){return new i.LayerGroup(e)},i.FeatureGroup=i.LayerGroup.extend({includes:i.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(e){return this.hasLayer(e)?this:("on"in e&&e.on(i.FeatureGroup.EVENTS,this._propagateEvent,this),i.LayerGroup.prototype.addLayer.call(this,e),this._popupContent&&e.bindPopup&&e.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&&(e=this._layers[e]),"off"in e&&e.off(i.FeatureGroup.EVENTS,this._propagateEvent,this),i.LayerGroup.prototype.removeLayer.call(this,e),this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:e})):this},bindPopup:function(e,t){return this._popupContent=e,this._popupOptions=t,this.invoke("bindPopup",e,t)},openPopup:function(e){for(var t in this._layers){this._layers[t].openPopup(e);break}return this},setStyle:function(e){return this.invoke("setStyle",e)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var e=new i.LatLngBounds;return this.eachLayer(function(t){e.extend(t instanceof i.Marker?t.getLatLng():t.getBounds())}),e},_propagateEvent:function(e){e=i.extend({layer:e.target,target:this},e),this.fire(e.type,e)}}),i.featureGroup=function(e){return new i.FeatureGroup(e)},i.Path=i.Class.extend({includes:[i.Mixin.Events],statics:{CLIP_PADDING:function(){var t=i.Browser.mobile?1280:2e3,n=(t/Math.max(e.outerWidth,e.outerHeight)-1)/2;return Math.max(0,Math.min(.5,n))}()},options:{stroke:!0,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:!1,fillColor:null,fillOpacity:.2,clickable:!0},initialize:function(e){i.setOptions(this,e)},onAdd:function(e){this._map=e,this._container||(this._initElements(),this._initEvents()),this.projectLatlngs(),this._updatePath(),this._container&&this._map._pathRoot.appendChild(this._container),this.fire("add"),e.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(e){return e.addLayer(this),this},onRemove:function(e){e._pathRoot.removeChild(this._container),this.fire("remove"),this._map=null,i.Browser.vml&&(this._container=null,this._stroke=null,this._fill=null),e.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(e){return i.setOptions(this,e),this._container&&this._updateStyle(),this},redraw:function(){return this._map&&(this.projectLatlngs(),this._updatePath()),this}}),i.Map.include({_updatePathViewport:function(){var e=i.Path.CLIP_PADDING,t=this.getSize(),n=i.DomUtil.getPosition(this._mapPane),r=n.multiplyBy(-1)._subtract(t.multiplyBy(e)._round()),o=r.add(t.multiplyBy(1+2*e)._round());this._pathViewport=new i.Bounds(r,o)}}),i.Path.SVG_NS="http://www.w3.org/2000/svg",i.Browser.svg=!(!t.createElementNS||!t.createElementNS(i.Path.SVG_NS,"svg").createSVGRect),i.Path=i.Path.extend({statics:{SVG:i.Browser.svg},bringToFront:function(){var e=this._map._pathRoot,t=this._container;return t&&e.lastChild!==t&&e.appendChild(t),this},bringToBack:function(){var e=this._map._pathRoot,t=this._container,n=e.firstChild;return t&&n!==t&&e.insertBefore(t,n),this},getPathString:function(){},_createElement:function(e){return t.createElementNS(i.Path.SVG_NS,e)},_initElements:function(){this._map._initPathRoot(),this._initPath(),this._initStyle()},_initPath:function(){this._container=this._createElement("g"),this._path=this._createElement("path"),this.options.className&&i.DomUtil.addClass(this._path,this.options.className),this._container.appendChild(this._path)},_initStyle:function(){this.options.stroke&&(this._path.setAttribute("stroke-linejoin","round"),this._path.setAttribute("stroke-linecap","round")),this.options.fill&&this._path.setAttribute("fill-rule","evenodd"),this.options.pointerEvents&&this._path.setAttribute("pointer-events",this.options.pointerEvents),this.options.clickable||this.options.pointerEvents||this._path.setAttribute("pointer-events","none"),this._updateStyle()},_updateStyle:function(){this.options.stroke?(this._path.setAttribute("stroke",this.options.color),this._path.setAttribute("stroke-opacity",this.options.opacity),this._path.setAttribute("stroke-width",this.options.weight),this.options.dashArray?this._path.setAttribute("stroke-dasharray",this.options.dashArray):this._path.removeAttribute("stroke-dasharray"),this.options.lineCap&&this._path.setAttribute("stroke-linecap",this.options.lineCap),this.options.lineJoin&&this._path.setAttribute("stroke-linejoin",this.options.lineJoin)):this._path.setAttribute("stroke","none"),this.options.fill?(this._path.setAttribute("fill",this.options.fillColor||this.options.color),this._path.setAttribute("fill-opacity",this.options.fillOpacity)):this._path.setAttribute("fill","none")},_updatePath:function(){var e=this.getPathString();e||(e="M0 0"),this._path.setAttribute("d",e)},_initEvents:function(){if(this.options.clickable){(i.Browser.svg||!i.Browser.vml)&&i.DomUtil.addClass(this._path,"leaflet-clickable"),i.DomEvent.on(this._container,"click",this._onMouseClick,this);for(var e=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"],t=0;t<e.length;t++)i.DomEvent.on(this._container,e[t],this._fireMouseEvent,this)}},_onMouseClick:function(e){this._map.dragging&&this._map.dragging.moved()||this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(this._map&&this.hasEventListeners(e.type)){var t=this._map,n=t.mouseEventToContainerPoint(e),r=t.containerPointToLayerPoint(n),o=t.layerPointToLatLng(r);this.fire(e.type,{latlng:o,layerPoint:r,containerPoint:n,originalEvent:e}),"contextmenu"===e.type&&i.DomEvent.preventDefault(e),"mousemove"!==e.type&&i.DomEvent.stopPropagation(e)}}}),i.Map.include({_initPathRoot:function(){this._pathRoot||(this._pathRoot=i.Path.prototype._createElement("svg"),this._panes.overlayPane.appendChild(this._pathRoot),this.options.zoomAnimation&&i.Browser.any3d?(i.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated"),this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})):i.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide"),this.on("moveend",this._updateSvgViewport),this._updateSvgViewport())},_animatePathZoom:function(e){var t=this.getZoomScale(e.zoom),n=this._getCenterOffset(e.center)._multiplyBy(-t)._add(this._pathViewport.min);this._pathRoot.style[i.DomUtil.TRANSFORM]=i.DomUtil.getTranslateString(n)+" scale("+t+") ",this._pathZooming=!0},_endPathZoom:function(){this._pathZooming=!1},_updateSvgViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max,r=n.x-t.x,o=n.y-t.y,a=this._pathRoot,s=this._panes.overlayPane;i.Browser.mobileWebkit&&s.removeChild(a),i.DomUtil.setPosition(a,t),a.setAttribute("width",r),a.setAttribute("height",o),a.setAttribute("viewBox",[t.x,t.y,r,o].join(" ")),i.Browser.mobileWebkit&&s.appendChild(a)}}}),i.Path.include({bindPopup:function(e,t){return e instanceof i.Popup?this._popup=e:((!this._popup||t)&&(this._popup=new i.Popup(t,this)),this._popup.setContent(e)),this._popupHandlersAdded||(this.on("click",this._openPopup,this).on("remove",this.closePopup,this),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this._popup=null,this.off("click",this._openPopup).off("remove",this.closePopup),this._popupHandlersAdded=!1),this},openPopup:function(e){return this._popup&&(e=e||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)],this._openPopup({latlng:e})),this},closePopup:function(){return this._popup&&this._popup._close(),this},_openPopup:function(e){this._popup.setLatLng(e.latlng),this._map.openPopup(this._popup)}}),i.Browser.vml=!i.Browser.svg&&function(){try{var e=t.createElement("div");e.innerHTML='<v:shape adj="1"/>';var n=e.firstChild;return n.style.behavior="url(#default#VML)",n&&"object"==typeof n.adj}catch(e){return!1}}(),i.Path=i.Browser.svg||!i.Browser.vml?i.Path:i.Path.extend({statics:{VML:!0,CLIP_PADDING:.02},_createElement:function(){try{return t.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(e){return t.createElement("<lvml:"+e+' class="lvml">')}}catch(e){return function(e){return t.createElement("<"+e+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var e=this._container=this._createElement("shape");i.DomUtil.addClass(e,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:"")),this.options.clickable&&i.DomUtil.addClass(e,"leaflet-clickable"),e.coordsize="1 1",this._path=this._createElement("path"),e.appendChild(this._path),this._map._pathRoot.appendChild(e)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var e=this._stroke,t=this._fill,n=this.options,r=this._container;r.stroked=n.stroke,r.filled=n.fill,n.stroke?(e||(e=this._stroke=this._createElement("stroke"),e.endcap="round",r.appendChild(e)),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=i.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",n.lineCap&&(e.endcap=n.lineCap.replace("butt","flat")),n.lineJoin&&(e.joinstyle=n.lineJoin)):e&&(r.removeChild(e),this._stroke=null),n.fill?(t||(t=this._fill=this._createElement("fill"),r.appendChild(t)),t.color=n.fillColor||n.color,t.opacity=n.fillOpacity):t&&(r.removeChild(t),this._fill=null)},_updatePath:function(){var e=this._container.style;e.display="none",this._path.v=this.getPathString()+" ",e.display=""}}),i.Map.include(i.Browser.svg||!i.Browser.vml?{}:{_initPathRoot:function(){if(!this._pathRoot){var e=this._pathRoot=t.createElement("div");e.className="leaflet-vml-container",this._panes.overlayPane.appendChild(e),this.on("moveend",this._updatePathViewport),this._updatePathViewport()}}}),i.Browser.canvas=function(){return!!t.createElement("canvas").getContext}(),i.Path=i.Path.SVG&&!e.L_PREFER_CANVAS||!i.Browser.canvas?i.Path:i.Path.extend({statics:{CANVAS:!0,SVG:!1},redraw:function(){return this._map&&(this.projectLatlngs(),this._requestUpdate()),this},setStyle:function(e){return i.setOptions(this,e),this._map&&(this._updateStyle(),this._requestUpdate()),this},onRemove:function(e){e.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this),this.options.clickable&&(this._map.off("click",this._onClick,this),this._map.off("mousemove",this._onMouseMove,this)),this._requestUpdate(),this.fire("remove"),this._map=null},_requestUpdate:function(){this._map&&!i.Path._updateRequest&&(i.Path._updateRequest=i.Util.requestAnimFrame(this._fireMapMoveEnd,this._map))},_fireMapMoveEnd:function(){i.Path._updateRequest=null,this.fire("moveend")},_initElements:function(){this._map._initPathRoot(),this._ctx=this._map._canvasCtx},_updateStyle:function(){var e=this.options;e.stroke&&(this._ctx.lineWidth=e.weight,this._ctx.strokeStyle=e.color),e.fill&&(this._ctx.fillStyle=e.fillColor||e.color),e.lineCap&&(this._ctx.lineCap=e.lineCap),e.lineJoin&&(this._ctx.lineJoin=e.lineJoin)},_drawPath:function(){var e,t,n,r,o,a;for(this._ctx.beginPath(),e=0,n=this._parts.length;n>e;e++){for(t=0,r=this._parts[e].length;r>t;t++)o=this._parts[e][t],a=(0===t?"move":"line")+"To",this._ctx[a](o.x,o.y);this instanceof i.Polygon&&this._ctx.closePath()}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(!this._checkIfEmpty()){var e=this._ctx,t=this.options;this._drawPath(),e.save(),this._updateStyle(),t.fill&&(e.globalAlpha=t.fillOpacity,e.fill(t.fillRule||"evenodd")),t.stroke&&(e.globalAlpha=t.opacity,e.stroke()),e.restore()}},_initEvents:function(){this.options.clickable&&(this._map.on("mousemove",this._onMouseMove,this),this._map.on("click dblclick contextmenu",this._fireMouseEvent,this))},_fireMouseEvent:function(e){this._containsPoint(e.layerPoint)&&this.fire(e.type,e)},_onMouseMove:function(e){this._map&&!this._map._animatingZoom&&(this._containsPoint(e.layerPoint)?(this._ctx.canvas.style.cursor="pointer",this._mouseInside=!0,this.fire("mouseover",e)):this._mouseInside&&(this._ctx.canvas.style.cursor="",this._mouseInside=!1,this.fire("mouseout",e)))}}),i.Map.include(i.Path.SVG&&!e.L_PREFER_CANVAS||!i.Browser.canvas?{}:{_initPathRoot:function(){var e,n=this._pathRoot;n||(n=this._pathRoot=t.createElement("canvas"),n.style.position="absolute",e=this._canvasCtx=n.getContext("2d"),e.lineCap="round",e.lineJoin="round",this._panes.overlayPane.appendChild(n),this.options.zoomAnimation&&(this._pathRoot.className="leaflet-zoom-animated",this.on("zoomanim",this._animatePathZoom),this.on("zoomend",this._endPathZoom)),this.on("moveend",this._updateCanvasViewport),this._updateCanvasViewport())},_updateCanvasViewport:function(){if(!this._pathZooming){this._updatePathViewport();var e=this._pathViewport,t=e.min,n=e.max.subtract(t),r=this._pathRoot;i.DomUtil.setPosition(r,t),r.width=n.x,r.height=n.y,r.getContext("2d").translate(-t.x,-t.y)}}}),i.LineUtil={simplify:function(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=this._reducePoints(e,n),e=this._simplifyDP(e,n)},pointToSegmentDistance:function(e,t,n){return Math.sqrt(this._sqClosestPointOnSegment(e,t,n,!0))},closestPointOnSegment:function(e,t,n){return this._sqClosestPointOnSegment(e,t,n)},_simplifyDP:function(e,t){var r=e.length,i=typeof Uint8Array!=n+""?Uint8Array:Array,o=new i(r);o[0]=o[r-1]=1,this._simplifyDPStep(e,o,t,0,r-1);var a,s=[];for(a=0;r>a;a++)o[a]&&s.push(e[a]);return s},_simplifyDPStep:function(e,t,n,r,i){var o,a,s,l=0;for(a=r+1;i-1>=a;a++)(s=this._sqClosestPointOnSegment(e[a],e[r],e[i],!0))>l&&(o=a,l=s);l>n&&(t[o]=1,this._simplifyDPStep(e,t,n,r,o),this._simplifyDPStep(e,t,n,o,i))},_reducePoints:function(e,t){for(var n=[e[0]],r=1,i=0,o=e.length;o>r;r++)this._sqDist(e[r],e[i])>t&&(n.push(e[r]),i=r);return o-1>i&&n.push(e[o-1]),n},clipSegment:function(e,t,n,r){var i,o,a,s=r?this._lastCode:this._getBitCode(e,n),l=this._getBitCode(t,n);for(this._lastCode=l;;){if(!(s|l))return[e,t];if(s&l)return!1;i=s||l,o=this._getEdgeIntersection(e,t,i,n),a=this._getBitCode(o,n),i===s?(e=o,s=a):(t=o,l=a)}},_getEdgeIntersection:function(e,t,n,r){var o=t.x-e.x,a=t.y-e.y,s=r.min,l=r.max;return 8&n?new i.Point(e.x+o*(l.y-e.y)/a,l.y):4&n?new i.Point(e.x+o*(s.y-e.y)/a,s.y):2&n?new i.Point(l.x,e.y+a*(l.x-e.x)/o):1&n?new i.Point(s.x,e.y+a*(s.x-e.x)/o):void 0},_getBitCode:function(e,t){var n=0;return e.x<t.min.x?n|=1:e.x>t.max.x&&(n|=2),e.y<t.min.y?n|=4:e.y>t.max.y&&(n|=8),n},_sqDist:function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},_sqClosestPointOnSegment:function(e,t,n,r){var o,a=t.x,s=t.y,l=n.x-a,u=n.y-s,c=l*l+u*u;return c>0&&(o=((e.x-a)*l+(e.y-s)*u)/c,o>1?(a=n.x,s=n.y):o>0&&(a+=l*o,s+=u*o)),l=e.x-a,u=e.y-s,r?l*l+u*u:new i.Point(a,s)}},i.Polyline=i.Path.extend({initialize:function(e,t){i.Path.prototype.initialize.call(this,t),this._latlngs=this._convertLatLngs(e)},options:{smoothFactor:1,noClip:!1},projectLatlngs:function(){this._originalPoints=[];for(var e=0,t=this._latlngs.length;t>e;e++)this._originalPoints[e]=this._map.latLngToLayerPoint(this._latlngs[e])},getPathString:function(){for(var e=0,t=this._parts.length,n="";t>e;e++)n+=this._getPathPartStr(this._parts[e]);return n},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._latlngs=this._convertLatLngs(e),this.redraw()},addLatLng:function(e){return this._latlngs.push(i.latLng(e)),this.redraw()},spliceLatLngs:function(){var e=[].splice.apply(this._latlngs,arguments);return this._convertLatLngs(this._latlngs,!0),this.redraw(),e},closestLayerPoint:function(e){for(var t,n,r=1/0,o=this._parts,a=null,s=0,l=o.length;l>s;s++)for(var u=o[s],c=1,d=u.length;d>c;c++){t=u[c-1],n=u[c];var h=i.LineUtil._sqClosestPointOnSegment(e,t,n,!0);r>h&&(r=h,a=i.LineUtil._sqClosestPointOnSegment(e,t,n))}return a&&(a.distance=Math.sqrt(r)),a},getBounds:function(){return new i.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(e,t){var n,r,o=t?e:[];for(n=0,r=e.length;r>n;n++){if(i.Util.isArray(e[n])&&"number"!=typeof e[n][0])return;o[n]=i.latLng(e[n])}return o},_initEvents:function(){i.Path.prototype._initEvents.call(this)},_getPathPartStr:function(e){for(var t,n=i.Path.VML,r=0,o=e.length,a="";o>r;r++)t=e[r],n&&t._round(),a+=(r?"L":"M")+t.x+" "+t.y;return a},_clipPoints:function(){var e,t,n,r=this._originalPoints,o=r.length;if(this.options.noClip)return void(this._parts=[r]);this._parts=[];var a=this._parts,s=this._map._pathViewport,l=i.LineUtil;for(e=0,t=0;o-1>e;e++)(n=l.clipSegment(r[e],r[e+1],s,e))&&(a[t]=a[t]||[],a[t].push(n[0]),(n[1]!==r[e+1]||e===o-2)&&(a[t].push(n[1]),t++))},_simplifyPoints:function(){for(var e=this._parts,t=i.LineUtil,n=0,r=e.length;r>n;n++)e[n]=t.simplify(e[n],this.options.smoothFactor)},_updatePath:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),i.Path.prototype._updatePath.call(this))}}),i.polyline=function(e,t){return new i.Polyline(e,t)},i.PolyUtil={},i.PolyUtil.clipPolygon=function(e,t){var n,r,o,a,s,l,u,c,d,h=[1,4,2,8],f=i.LineUtil;for(r=0,u=e.length;u>r;r++)e[r]._code=f._getBitCode(e[r],t);for(a=0;4>a;a++){for(c=h[a],n=[],r=0,u=e.length,o=u-1;u>r;o=r++)s=e[r],l=e[o],s._code&c?l._code&c||(d=f._getEdgeIntersection(l,s,c,t),d._code=f._getBitCode(d,t),n.push(d)):(l._code&c&&(d=f._getEdgeIntersection(l,s,c,t),d._code=f._getBitCode(d,t),n.push(d)),n.push(s));e=n}return e},i.Polygon=i.Polyline.extend({options:{fill:!0},initialize:function(e,t){i.Polyline.prototype.initialize.call(this,e,t),this._initWithHoles(e)},_initWithHoles:function(e){var t,n,r;if(e&&i.Util.isArray(e[0])&&"number"!=typeof e[0][0])for(this._latlngs=this._convertLatLngs(e[0]),this._holes=e.slice(1),t=0,n=this._holes.length;n>t;t++)r=this._holes[t]=this._convertLatLngs(this._holes[t]),r[0].equals(r[r.length-1])&&r.pop();e=this._latlngs,e.length>=2&&e[0].equals(e[e.length-1])&&e.pop()},projectLatlngs:function(){if(i.Polyline.prototype.projectLatlngs.call(this),this._holePoints=[],this._holes){var e,t,n,r;for(e=0,n=this._holes.length;n>e;e++)for(this._holePoints[e]=[],t=0,r=this._holes[e].length;r>t;t++)this._holePoints[e][t]=this._map.latLngToLayerPoint(this._holes[e][t])}},setLatLngs:function(e){return e&&i.Util.isArray(e[0])&&"number"!=typeof e[0][0]?(this._initWithHoles(e),this.redraw()):i.Polyline.prototype.setLatLngs.call(this,e)},_clipPoints:function(){var e=this._originalPoints,t=[];if(this._parts=[e].concat(this._holePoints),!this.options.noClip){for(var n=0,r=this._parts.length;r>n;n++){var o=i.PolyUtil.clipPolygon(this._parts[n],this._map._pathViewport);o.length&&t.push(o)}this._parts=t}},_getPathPartStr:function(e){return i.Polyline.prototype._getPathPartStr.call(this,e)+(i.Browser.svg?"z":"x")}}),i.polygon=function(e,t){return new i.Polygon(e,t)},function(){function e(e){return i.FeatureGroup.extend({initialize:function(e,t){this._layers={},this._options=t,this.setLatLngs(e)},setLatLngs:function(t){var n=0,r=t.length;for(this.eachLayer(function(e){r>n?e.setLatLngs(t[n++]):this.removeLayer(e)},this);r>n;)this.addLayer(new e(t[n++],this._options));return this},getLatLngs:function(){var e=[];return this.eachLayer(function(t){e.push(t.getLatLngs())}),e}})}i.MultiPolyline=e(i.Polyline),i.MultiPolygon=e(i.Polygon),i.multiPolyline=function(e,t){return new i.MultiPolyline(e,t)},i.multiPolygon=function(e,t){return new i.MultiPolygon(e,t)}}(),i.Rectangle=i.Polygon.extend({initialize:function(e,t){i.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return e=i.latLngBounds(e),[e.getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}}),i.rectangle=function(e,t){return new i.Rectangle(e,t)},i.Circle=i.Path.extend({initialize:function(e,t,n){i.Path.prototype.initialize.call(this,n),this._latlng=i.latLng(e),this._mRadius=t},options:{fill:!0},setLatLng:function(e){return this._latlng=i.latLng(e),this.redraw()},setRadius:function(e){return this._mRadius=e,this.redraw()},projectLatlngs:function(){var e=this._getLngRadius(),t=this._latlng,n=this._map.latLngToLayerPoint([t.lat,t.lng-e]);this._point=this._map.latLngToLayerPoint(t),this._radius=Math.max(this._point.x-n.x,1)},getBounds:function(){var e=this._getLngRadius(),t=this._mRadius/40075017*360,n=this._latlng;return new i.LatLngBounds([n.lat-t,n.lng-e],[n.lat+t,n.lng+e])},getLatLng:function(){return this._latlng},getPathString:function(){var e=this._point,t=this._radius;return this._checkIfEmpty()?"":i.Browser.svg?"M"+e.x+","+(e.y-t)+"A"+t+","+t+",0,1,1,"+(e.x-.1)+","+(e.y-t)+" z":(e._round(),t=Math.round(t),"AL "+e.x+","+e.y+" "+t+","+t+" 0,23592600")},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(i.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map)return!1;var e=this._map._pathViewport,t=this._radius,n=this._point;return n.x-t>e.max.x||n.y-t>e.max.y||n.x+t<e.min.x||n.y+t<e.min.y}}),i.circle=function(e,t,n){return new i.Circle(e,t,n)},i.CircleMarker=i.Circle.extend({options:{radius:10,weight:2},initialize:function(e,t){i.Circle.prototype.initialize.call(this,e,null,t),this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){i.Circle.prototype._updateStyle.call(this),this.setRadius(this.options.radius)},setLatLng:function(e){return i.Circle.prototype.setLatLng.call(this,e),this._popup&&this._popup._isOpen&&this._popup.setLatLng(e),this},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius}}),i.circleMarker=function(e,t){return new i.CircleMarker(e,t)},i.Polyline.include(i.Path.CANVAS?{_containsPoint:function(e,t){var n,r,o,a,s,l,u,c=this.options.weight/2;for(i.Browser.touch&&(c+=10),n=0,a=this._parts.length;a>n;n++)for(u=this._parts[n],r=0,s=u.length,o=s-1;s>r;o=r++)if((t||0!==r)&&(l=i.LineUtil.pointToSegmentDistance(e,u[o],u[r]),c>=l))return!0;return!1}}:{}),i.Polygon.include(i.Path.CANVAS?{_containsPoint:function(e){var t,n,r,o,a,s,l,u,c=!1;if(i.Polyline.prototype._containsPoint.call(this,e,!0))return!0;for(o=0,l=this._parts.length;l>o;o++)for(t=this._parts[o],a=0,u=t.length,s=u-1;u>a;s=a++)n=t[a],r=t[s],n.y>e.y!=r.y>e.y&&e.x<(r.x-n.x)*(e.y-n.y)/(r.y-n.y)+n.x&&(c=!c);return c}}:{}),i.Circle.include(i.Path.CANVAS?{_drawPath:function(){var e=this._point;this._ctx.beginPath(),this._ctx.arc(e.x,e.y,this._radius,0,2*Math.PI,!1)},_containsPoint:function(e){var t=this._point,n=this.options.stroke?this.options.weight/2:0;return e.distanceTo(t)<=this._radius+n}}:{}),i.CircleMarker.include(i.Path.CANVAS?{_updateStyle:function(){i.Path.prototype._updateStyle.call(this)}}:{}),i.GeoJSON=i.FeatureGroup.extend({initialize:function(e,t){i.setOptions(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t,n,r,o=i.Util.isArray(e)?e:e.features;if(o){for(t=0,n=o.length;n>t;t++)r=o[t],(r.geometries||r.geometry||r.features||r.coordinates)&&this.addData(o[t]);return this}var a=this.options;if(!a.filter||a.filter(e)){
-var s=i.GeoJSON.geometryToLayer(e,a.pointToLayer,a.coordsToLatLng,a);return s.feature=i.GeoJSON.asFeature(e),s.defaultOptions=s.options,this.resetStyle(s),a.onEachFeature&&a.onEachFeature(e,s),this.addLayer(s)}},resetStyle:function(e){var t=this.options.style;t&&(i.Util.extend(e.options,e.defaultOptions),this._setLayerStyle(e,t))},setStyle:function(e){this.eachLayer(function(t){this._setLayerStyle(t,e)},this)},_setLayerStyle:function(e,t){"function"==typeof t&&(t=t(e.feature)),e.setStyle&&e.setStyle(t)}}),i.extend(i.GeoJSON,{geometryToLayer:function(e,t,n,r){var o,a,s,l,u="Feature"===e.type?e.geometry:e,c=u.coordinates,d=[];switch(n=n||this.coordsToLatLng,u.type){case"Point":return o=n(c),t?t(e,o):new i.Marker(o);case"MultiPoint":for(s=0,l=c.length;l>s;s++)o=n(c[s]),d.push(t?t(e,o):new i.Marker(o));return new i.FeatureGroup(d);case"LineString":return a=this.coordsToLatLngs(c,0,n),new i.Polyline(a,r);case"Polygon":if(2===c.length&&!c[1].length)throw new Error("Invalid GeoJSON object.");return a=this.coordsToLatLngs(c,1,n),new i.Polygon(a,r);case"MultiLineString":return a=this.coordsToLatLngs(c,1,n),new i.MultiPolyline(a,r);case"MultiPolygon":return a=this.coordsToLatLngs(c,2,n),new i.MultiPolygon(a,r);case"GeometryCollection":for(s=0,l=u.geometries.length;l>s;s++)d.push(this.geometryToLayer({geometry:u.geometries[s],type:"Feature",properties:e.properties},t,n,r));return new i.FeatureGroup(d);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(e){return new i.LatLng(e[1],e[0],e[2])},coordsToLatLngs:function(e,t,n){var r,i,o,a=[];for(i=0,o=e.length;o>i;i++)r=t?this.coordsToLatLngs(e[i],t-1,n):(n||this.coordsToLatLng)(e[i]),a.push(r);return a},latLngToCoords:function(e){var t=[e.lng,e.lat];return e.alt!==n&&t.push(e.alt),t},latLngsToCoords:function(e){for(var t=[],n=0,r=e.length;r>n;n++)t.push(i.GeoJSON.latLngToCoords(e[n]));return t},getFeature:function(e,t){return e.feature?i.extend({},e.feature,{geometry:t}):i.GeoJSON.asFeature(t)},asFeature:function(e){return"Feature"===e.type?e:{type:"Feature",properties:{},geometry:e}}});var a={toGeoJSON:function(){return i.GeoJSON.getFeature(this,{type:"Point",coordinates:i.GeoJSON.latLngToCoords(this.getLatLng())})}};i.Marker.include(a),i.Circle.include(a),i.CircleMarker.include(a),i.Polyline.include({toGeoJSON:function(){return i.GeoJSON.getFeature(this,{type:"LineString",coordinates:i.GeoJSON.latLngsToCoords(this.getLatLngs())})}}),i.Polygon.include({toGeoJSON:function(){var e,t,n,r=[i.GeoJSON.latLngsToCoords(this.getLatLngs())];if(r[0].push(r[0][0]),this._holes)for(e=0,t=this._holes.length;t>e;e++)n=i.GeoJSON.latLngsToCoords(this._holes[e]),n.push(n[0]),r.push(n);return i.GeoJSON.getFeature(this,{type:"Polygon",coordinates:r})}}),function(){function e(e){return function(){var t=[];return this.eachLayer(function(e){t.push(e.toGeoJSON().geometry.coordinates)}),i.GeoJSON.getFeature(this,{type:e,coordinates:t})}}i.MultiPolyline.include({toGeoJSON:e("MultiLineString")}),i.MultiPolygon.include({toGeoJSON:e("MultiPolygon")}),i.LayerGroup.include({toGeoJSON:function(){var t,n=this.feature&&this.feature.geometry,r=[];if(n&&"MultiPoint"===n.type)return e("MultiPoint").call(this);var o=n&&"GeometryCollection"===n.type;return this.eachLayer(function(e){e.toGeoJSON&&(t=e.toGeoJSON(),r.push(o?t.geometry:i.GeoJSON.asFeature(t)))}),o?i.GeoJSON.getFeature(this,{geometries:r,type:"GeometryCollection"}):{type:"FeatureCollection",features:r}}})}(),i.geoJson=function(e,t){return new i.GeoJSON(e,t)},i.DomEvent={addListener:function(e,t,n,r){var o,a,s,l=i.stamp(n),u="_leaflet_"+t+l;return e[u]?this:(o=function(t){return n.call(r||e,t||i.DomEvent._getEvent())},i.Browser.pointer&&0===t.indexOf("touch")?this.addPointerListener(e,t,o,l):(i.Browser.touch&&"dblclick"===t&&this.addDoubleTapListener&&this.addDoubleTapListener(e,o,l),"addEventListener"in e?"mousewheel"===t?(e.addEventListener("DOMMouseScroll",o,!1),e.addEventListener(t,o,!1)):"mouseenter"===t||"mouseleave"===t?(a=o,s="mouseenter"===t?"mouseover":"mouseout",o=function(t){return i.DomEvent._checkMouse(e,t)?a(t):void 0},e.addEventListener(s,o,!1)):"click"===t&&i.Browser.android?(a=o,o=function(e){return i.DomEvent._filterClick(e,a)},e.addEventListener(t,o,!1)):e.addEventListener(t,o,!1):"attachEvent"in e&&e.attachEvent("on"+t,o),e[u]=o,this))},removeListener:function(e,t,n){var r=i.stamp(n),o="_leaflet_"+t+r,a=e[o];return a?(i.Browser.pointer&&0===t.indexOf("touch")?this.removePointerListener(e,t,r):i.Browser.touch&&"dblclick"===t&&this.removeDoubleTapListener?this.removeDoubleTapListener(e,r):"removeEventListener"in e?"mousewheel"===t?(e.removeEventListener("DOMMouseScroll",a,!1),e.removeEventListener(t,a,!1)):"mouseenter"===t||"mouseleave"===t?e.removeEventListener("mouseenter"===t?"mouseover":"mouseout",a,!1):e.removeEventListener(t,a,!1):"detachEvent"in e&&e.detachEvent("on"+t,a),e[o]=null,this):this},stopPropagation:function(e){return e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,i.DomEvent._skipped(e),this},disableScrollPropagation:function(e){var t=i.DomEvent.stopPropagation;return i.DomEvent.on(e,"mousewheel",t).on(e,"MozMousePixelScroll",t)},disableClickPropagation:function(e){for(var t=i.DomEvent.stopPropagation,n=i.Draggable.START.length-1;n>=0;n--)i.DomEvent.on(e,i.Draggable.START[n],t);return i.DomEvent.on(e,"click",i.DomEvent._fakeStop).on(e,"dblclick",t)},preventDefault:function(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this},stop:function(e){return i.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,t){if(!t)return new i.Point(e.clientX,e.clientY);var n=t.getBoundingClientRect();return new i.Point(e.clientX-n.left-t.clientLeft,e.clientY-n.top-t.clientTop)},getWheelDelta:function(e){var t=0;return e.wheelDelta&&(t=e.wheelDelta/120),e.detail&&(t=-e.detail/3),t},_skipEvents:{},_fakeStop:function(e){i.DomEvent._skipEvents[e.type]=!0},_skipped:function(e){var t=this._skipEvents[e.type];return this._skipEvents[e.type]=!1,t},_checkMouse:function(e,t){var n=t.relatedTarget;if(!n)return!0;try{for(;n&&n!==e;)n=n.parentNode}catch(e){return!1}return n!==e},_getEvent:function(){var t=e.event;if(!t)for(var n=arguments.callee.caller;n&&(!(t=n.arguments[0])||e.Event!==t.constructor);)n=n.caller;return t},_filterClick:function(e,t){var n=e.timeStamp||e.originalEvent.timeStamp,r=i.DomEvent._lastClick&&n-i.DomEvent._lastClick;return r&&r>100&&500>r||e.target._simulatedClick&&!e._simulated?void i.DomEvent.stop(e):(i.DomEvent._lastClick=n,t(e))}},i.DomEvent.on=i.DomEvent.addListener,i.DomEvent.off=i.DomEvent.removeListener,i.Draggable=i.Class.extend({includes:i.Mixin.Events,statics:{START:i.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(e,t){this._element=e,this._dragStartTarget=t||e},enable:function(){if(!this._enabled){for(var e=i.Draggable.START.length-1;e>=0;e--)i.DomEvent.on(this._dragStartTarget,i.Draggable.START[e],this._onDown,this);this._enabled=!0}},disable:function(){if(this._enabled){for(var e=i.Draggable.START.length-1;e>=0;e--)i.DomEvent.off(this._dragStartTarget,i.Draggable.START[e],this._onDown,this);this._enabled=!1,this._moved=!1}},_onDown:function(e){if(this._moved=!1,!e.shiftKey&&(1===e.which||1===e.button||e.touches)&&(i.DomEvent.stopPropagation(e),!i.Draggable._disabled&&(i.DomUtil.disableImageDrag(),i.DomUtil.disableTextSelection(),!this._moving))){var n=e.touches?e.touches[0]:e;this._startPoint=new i.Point(n.clientX,n.clientY),this._startPos=this._newPos=i.DomUtil.getPosition(this._element),i.DomEvent.on(t,i.Draggable.MOVE[e.type],this._onMove,this).on(t,i.Draggable.END[e.type],this._onUp,this)}},_onMove:function(e){if(e.touches&&e.touches.length>1)return void(this._moved=!0);var n=e.touches&&1===e.touches.length?e.touches[0]:e,r=new i.Point(n.clientX,n.clientY),o=r.subtract(this._startPoint);(o.x||o.y)&&(i.Browser.touch&&Math.abs(o.x)+Math.abs(o.y)<3||(i.DomEvent.preventDefault(e),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=i.DomUtil.getPosition(this._element).subtract(o),i.DomUtil.addClass(t.body,"leaflet-dragging"),this._lastTarget=e.target||e.srcElement,i.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(o),this._moving=!0,i.Util.cancelAnimFrame(this._animRequest),this._animRequest=i.Util.requestAnimFrame(this._updatePosition,this,!0,this._dragStartTarget)))},_updatePosition:function(){this.fire("predrag"),i.DomUtil.setPosition(this._element,this._newPos),this.fire("drag")},_onUp:function(){i.DomUtil.removeClass(t.body,"leaflet-dragging"),this._lastTarget&&(i.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var e in i.Draggable.MOVE)i.DomEvent.off(t,i.Draggable.MOVE[e],this._onMove).off(t,i.Draggable.END[e],this._onUp);i.DomUtil.enableImageDrag(),i.DomUtil.enableTextSelection(),this._moved&&this._moving&&(i.Util.cancelAnimFrame(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1}}),i.Handler=i.Class.extend({initialize:function(e){this._map=e},enable:function(){this._enabled||(this._enabled=!0,this.addHooks())},disable:function(){this._enabled&&(this._enabled=!1,this.removeHooks())},enabled:function(){return!!this._enabled}}),i.Map.mergeOptions({dragging:!0,inertia:!i.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,inertiaThreshold:i.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:!1}),i.Map.Drag=i.Handler.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new i.Draggable(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),e.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDrag,this),e.on("viewreset",this._onViewReset,this),e.whenReady(this._onViewReset,this))}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var e=this._map;e._panAnim&&e._panAnim.stop(),e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(){if(this._map.options.inertia){var e=this._lastTime=+new Date,t=this._lastPos=this._draggable._newPos;this._positions.push(t),this._times.push(e),e-this._times[0]>200&&(this._positions.shift(),this._times.shift())}this._map.fire("move").fire("drag")},_onViewReset:function(){var e=this._map.getSize()._divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,r=this._draggable._newPos.x,i=(r-t+n)%e+t-n,o=(r+t+n)%e-t-n,a=Math.abs(i+n)<Math.abs(o+n)?i:o;this._draggable._newPos.x=a},_onDragEnd:function(e){var t=this._map,n=t.options,r=+new Date-this._lastTime,o=!n.inertia||r>n.inertiaThreshold||!this._positions[0];if(t.fire("dragend",e),o)t.fire("moveend");else{var a=this._lastPos.subtract(this._positions[0]),s=(this._lastTime+r-this._times[0])/1e3,l=n.easeLinearity,u=a.multiplyBy(l/s),c=u.distanceTo([0,0]),d=Math.min(n.inertiaMaxSpeed,c),h=u.multiplyBy(d/c),f=d/(n.inertiaDeceleration*l),p=h.multiplyBy(-f/2).round();p.x&&p.y?(p=t._limitOffset(p,t.options.maxBounds),i.Util.requestAnimFrame(function(){t.panBy(p,{duration:f,easeLinearity:l,noMoveStart:!0})})):t.fire("moveend")}}}),i.Map.addInitHook("addHandler","dragging",i.Map.Drag),i.Map.mergeOptions({doubleClickZoom:!0}),i.Map.DoubleClickZoom=i.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom()+(e.originalEvent.shiftKey?-1:1);"center"===t.options.doubleClickZoom?t.setZoom(n):t.setZoomAround(e.containerPoint,n)}}),i.Map.addInitHook("addHandler","doubleClickZoom",i.Map.DoubleClickZoom),i.Map.mergeOptions({scrollWheelZoom:!0}),i.Map.ScrollWheelZoom=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this),i.DomEvent.on(this._map._container,"MozMousePixelScroll",i.DomEvent.preventDefault),this._delta=0},removeHooks:function(){i.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll),i.DomEvent.off(this._map._container,"MozMousePixelScroll",i.DomEvent.preventDefault)},_onWheelScroll:function(e){var t=i.DomEvent.getWheelDelta(e);this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||(this._startTime=+new Date);var n=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(i.bind(this._performZoom,this),n),i.DomEvent.preventDefault(e),i.DomEvent.stopPropagation(e)},_performZoom:function(){var e=this._map,t=this._delta,n=e.getZoom();t=t>0?Math.ceil(t):Math.floor(t),t=Math.max(Math.min(t,4),-4),t=e._limitZoom(n+t)-n,this._delta=0,this._startTime=null,t&&("center"===e.options.scrollWheelZoom?e.setZoom(n+t):e.setZoomAround(this._lastMousePos,n+t))}}),i.Map.addInitHook("addHandler","scrollWheelZoom",i.Map.ScrollWheelZoom),i.extend(i.DomEvent,{_touchstart:i.Browser.msPointer?"MSPointerDown":i.Browser.pointer?"pointerdown":"touchstart",_touchend:i.Browser.msPointer?"MSPointerUp":i.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(e,n,r){function o(e){var t;if(i.Browser.pointer?(p.push(e.pointerId),t=p.length):t=e.touches.length,!(t>1)){var n=Date.now(),r=n-(s||n);l=e.touches?e.touches[0]:e,u=r>0&&c>=r,s=n}}function a(e){if(i.Browser.pointer){var t=p.indexOf(e.pointerId);if(-1===t)return;p.splice(t,1)}if(u){if(i.Browser.pointer){var r,o={};for(var a in l)r=l[a],o[a]="function"==typeof r?r.bind(l):r;l=o}l.type="dblclick",n(l),s=null}}var s,l,u=!1,c=250,d="_leaflet_",h=this._touchstart,f=this._touchend,p=[];e[d+h+r]=o,e[d+f+r]=a;var m=i.Browser.pointer?t.documentElement:e;return e.addEventListener(h,o,!1),m.addEventListener(f,a,!1),i.Browser.pointer&&m.addEventListener(i.DomEvent.POINTER_CANCEL,a,!1),this},removeDoubleTapListener:function(e,n){var r="_leaflet_";return e.removeEventListener(this._touchstart,e[r+this._touchstart+n],!1),(i.Browser.pointer?t.documentElement:e).removeEventListener(this._touchend,e[r+this._touchend+n],!1),i.Browser.pointer&&t.documentElement.removeEventListener(i.DomEvent.POINTER_CANCEL,e[r+this._touchend+n],!1),this}}),i.extend(i.DomEvent,{POINTER_DOWN:i.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:i.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:i.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:i.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:!1,addPointerListener:function(e,t,n,r){switch(t){case"touchstart":return this.addPointerListenerStart(e,t,n,r);case"touchend":return this.addPointerListenerEnd(e,t,n,r);case"touchmove":return this.addPointerListenerMove(e,t,n,r);default:throw"Unknown touch event type"}},addPointerListenerStart:function(e,n,r,o){var a=this._pointers,s=function(e){"mouse"!==e.pointerType&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&i.DomEvent.preventDefault(e);for(var t=!1,n=0;n<a.length;n++)if(a[n].pointerId===e.pointerId){t=!0;break}t||a.push(e),e.touches=a.slice(),e.changedTouches=[e],r(e)};if(e["_leaflet_touchstart"+o]=s,e.addEventListener(this.POINTER_DOWN,s,!1),!this._pointerDocumentListener){var l=function(e){for(var t=0;t<a.length;t++)if(a[t].pointerId===e.pointerId){a.splice(t,1);break}};t.documentElement.addEventListener(this.POINTER_UP,l,!1),t.documentElement.addEventListener(this.POINTER_CANCEL,l,!1),this._pointerDocumentListener=!0}return this},addPointerListenerMove:function(e,t,n,r){function i(e){if(e.pointerType!==e.MSPOINTER_TYPE_MOUSE&&"mouse"!==e.pointerType||0!==e.buttons){for(var t=0;t<o.length;t++)if(o[t].pointerId===e.pointerId){o[t]=e;break}e.touches=o.slice(),e.changedTouches=[e],n(e)}}var o=this._pointers;return e["_leaflet_touchmove"+r]=i,e.addEventListener(this.POINTER_MOVE,i,!1),this},addPointerListenerEnd:function(e,t,n,r){var i=this._pointers,o=function(e){for(var t=0;t<i.length;t++)if(i[t].pointerId===e.pointerId){i.splice(t,1);break}e.touches=i.slice(),e.changedTouches=[e],n(e)};return e["_leaflet_touchend"+r]=o,e.addEventListener(this.POINTER_UP,o,!1),e.addEventListener(this.POINTER_CANCEL,o,!1),this},removePointerListener:function(e,t,n){var r=e["_leaflet_"+t+n];switch(t){case"touchstart":e.removeEventListener(this.POINTER_DOWN,r,!1);break;case"touchmove":e.removeEventListener(this.POINTER_MOVE,r,!1);break;case"touchend":e.removeEventListener(this.POINTER_UP,r,!1),e.removeEventListener(this.POINTER_CANCEL,r,!1)}return this}}),i.Map.mergeOptions({touchZoom:i.Browser.touch&&!i.Browser.android23,bounceAtZoomLimits:!0}),i.Map.TouchZoom=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){i.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(e){var n=this._map;if(e.touches&&2===e.touches.length&&!n._animatingZoom&&!this._zooming){var r=n.mouseEventToLayerPoint(e.touches[0]),o=n.mouseEventToLayerPoint(e.touches[1]),a=n._getCenterLayerPoint();this._startCenter=r.add(o)._divideBy(2),this._startDist=r.distanceTo(o),this._moved=!1,this._zooming=!0,this._centerOffset=a.subtract(this._startCenter),n._panAnim&&n._panAnim.stop(),i.DomEvent.on(t,"touchmove",this._onTouchMove,this).on(t,"touchend",this._onTouchEnd,this),i.DomEvent.preventDefault(e)}},_onTouchMove:function(e){var t=this._map;if(e.touches&&2===e.touches.length&&this._zooming){var n=t.mouseEventToLayerPoint(e.touches[0]),r=t.mouseEventToLayerPoint(e.touches[1]);this._scale=n.distanceTo(r)/this._startDist,this._delta=n._add(r)._divideBy(2)._subtract(this._startCenter),1!==this._scale&&(t.options.bounceAtZoomLimits||!(t.getZoom()===t.getMinZoom()&&this._scale<1||t.getZoom()===t.getMaxZoom()&&this._scale>1))&&(this._moved||(i.DomUtil.addClass(t._mapPane,"leaflet-touching"),t.fire("movestart").fire("zoomstart"),this._moved=!0),i.Util.cancelAnimFrame(this._animRequest),this._animRequest=i.Util.requestAnimFrame(this._updateOnMove,this,!0,this._map._container),i.DomEvent.preventDefault(e))}},_updateOnMove:function(){var e=this._map,t=this._getScaleOrigin(),n=e.layerPointToLatLng(t),r=e.getScaleZoom(this._scale);e._animateZoom(n,r,this._startCenter,this._scale,this._delta,!1,!0)},_onTouchEnd:function(){if(!this._moved||!this._zooming)return void(this._zooming=!1);var e=this._map;this._zooming=!1,i.DomUtil.removeClass(e._mapPane,"leaflet-touching"),i.Util.cancelAnimFrame(this._animRequest),i.DomEvent.off(t,"touchmove",this._onTouchMove).off(t,"touchend",this._onTouchEnd);var n=this._getScaleOrigin(),r=e.layerPointToLatLng(n),o=e.getZoom(),a=e.getScaleZoom(this._scale)-o,s=a>0?Math.ceil(a):Math.floor(a),l=e._limitZoom(o+s),u=e.getZoomScale(l)/this._scale;e._animateZoom(r,l,n,u)},_getScaleOrigin:function(){var e=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(e)}}),i.Map.addInitHook("addHandler","touchZoom",i.Map.TouchZoom),i.Map.mergeOptions({tap:!0,tapTolerance:15}),i.Map.Tap=i.Handler.extend({addHooks:function(){i.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){i.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(e){if(e.touches){if(i.DomEvent.preventDefault(e),this._fireClick=!0,e.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var n=e.touches[0],r=n.target;this._startPos=this._newPos=new i.Point(n.clientX,n.clientY),r.tagName&&"a"===r.tagName.toLowerCase()&&i.DomUtil.addClass(r,"leaflet-active"),this._holdTimeout=setTimeout(i.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",n))},this),1e3),i.DomEvent.on(t,"touchmove",this._onMove,this).on(t,"touchend",this._onUp,this)}},_onUp:function(e){if(clearTimeout(this._holdTimeout),i.DomEvent.off(t,"touchmove",this._onMove,this).off(t,"touchend",this._onUp,this),this._fireClick&&e&&e.changedTouches){var n=e.changedTouches[0],r=n.target;r&&r.tagName&&"a"===r.tagName.toLowerCase()&&i.DomUtil.removeClass(r,"leaflet-active"),this._isTapValid()&&this._simulateEvent("click",n)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(e){var t=e.touches[0];this._newPos=new i.Point(t.clientX,t.clientY)},_simulateEvent:function(n,r){var i=t.createEvent("MouseEvents");i._simulated=!0,r.target._simulatedClick=!0,i.initMouseEvent(n,!0,!0,e,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),r.target.dispatchEvent(i)}}),i.Browser.touch&&!i.Browser.pointer&&i.Map.addInitHook("addHandler","tap",i.Map.Tap),i.Map.mergeOptions({boxZoom:!0}),i.Map.BoxZoom=i.Handler.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._moved=!1},addHooks:function(){i.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){i.DomEvent.off(this._container,"mousedown",this._onMouseDown),this._moved=!1},moved:function(){return this._moved},_onMouseDown:function(e){return this._moved=!1,!(!e.shiftKey||1!==e.which&&1!==e.button)&&(i.DomUtil.disableTextSelection(),i.DomUtil.disableImageDrag(),this._startLayerPoint=this._map.mouseEventToLayerPoint(e),void i.DomEvent.on(t,"mousemove",this._onMouseMove,this).on(t,"mouseup",this._onMouseUp,this).on(t,"keydown",this._onKeyDown,this))},_onMouseMove:function(e){this._moved||(this._box=i.DomUtil.create("div","leaflet-zoom-box",this._pane),i.DomUtil.setPosition(this._box,this._startLayerPoint),this._container.style.cursor="crosshair",this._map.fire("boxzoomstart"));var t=this._startLayerPoint,n=this._box,r=this._map.mouseEventToLayerPoint(e),o=r.subtract(t),a=new i.Point(Math.min(r.x,t.x),Math.min(r.y,t.y));i.DomUtil.setPosition(n,a),this._moved=!0,n.style.width=Math.max(0,Math.abs(o.x)-4)+"px",n.style.height=Math.max(0,Math.abs(o.y)-4)+"px"},_finish:function(){this._moved&&(this._pane.removeChild(this._box),this._container.style.cursor=""),i.DomUtil.enableTextSelection(),i.DomUtil.enableImageDrag(),i.DomEvent.off(t,"mousemove",this._onMouseMove).off(t,"mouseup",this._onMouseUp).off(t,"keydown",this._onKeyDown)},_onMouseUp:function(e){this._finish();var t=this._map,n=t.mouseEventToLayerPoint(e);if(!this._startLayerPoint.equals(n)){var r=new i.LatLngBounds(t.layerPointToLatLng(this._startLayerPoint),t.layerPointToLatLng(n));t.fitBounds(r),t.fire("boxzoomend",{boxZoomBounds:r})}},_onKeyDown:function(e){27===e.keyCode&&this._finish()}}),i.Map.addInitHook("addHandler","boxZoom",i.Map.BoxZoom),i.Map.mergeOptions({keyboard:!0,keyboardPanOffset:80,keyboardZoomOffset:1}),i.Map.Keyboard=i.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(e){this._map=e,this._setPanOffset(e.options.keyboardPanOffset),this._setZoomOffset(e.options.keyboardZoomOffset)},addHooks:function(){var e=this._map._container;-1===e.tabIndex&&(e.tabIndex="0"),i.DomEvent.on(e,"focus",this._onFocus,this).on(e,"blur",this._onBlur,this).on(e,"mousedown",this._onMouseDown,this),this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var e=this._map._container;i.DomEvent.off(e,"focus",this._onFocus,this).off(e,"blur",this._onBlur,this).off(e,"mousedown",this._onMouseDown,this),this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(!this._focused){var n=t.body,r=t.documentElement,i=n.scrollTop||r.scrollTop,o=n.scrollLeft||r.scrollLeft;this._map._container.focus(),e.scrollTo(o,i)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanOffset:function(e){var t,n,r=this._panKeys={},i=this.keyCodes;for(t=0,n=i.left.length;n>t;t++)r[i.left[t]]=[-1*e,0];for(t=0,n=i.right.length;n>t;t++)r[i.right[t]]=[e,0];for(t=0,n=i.down.length;n>t;t++)r[i.down[t]]=[0,e];for(t=0,n=i.up.length;n>t;t++)r[i.up[t]]=[0,-1*e]},_setZoomOffset:function(e){var t,n,r=this._zoomKeys={},i=this.keyCodes;for(t=0,n=i.zoomIn.length;n>t;t++)r[i.zoomIn[t]]=e;for(t=0,n=i.zoomOut.length;n>t;t++)r[i.zoomOut[t]]=-e},_addHooks:function(){i.DomEvent.on(t,"keydown",this._onKeyDown,this)},_removeHooks:function(){i.DomEvent.off(t,"keydown",this._onKeyDown,this)},_onKeyDown:function(e){var t=e.keyCode,n=this._map;if(t in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;n.panBy(this._panKeys[t]),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else{if(!(t in this._zoomKeys))return;n.setZoom(n.getZoom()+this._zoomKeys[t])}i.DomEvent.stop(e)}}),i.Map.addInitHook("addHandler","keyboard",i.Map.Keyboard),i.Handler.MarkerDrag=i.Handler.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||(this._draggable=new i.Draggable(e,e)),this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this),this._draggable.enable(),i.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this),this._draggable.disable(),i.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var e=this._marker,t=e._shadow,n=i.DomUtil.getPosition(e._icon),r=e._map.layerPointToLatLng(n);t&&i.DomUtil.setPosition(t,n),e._latlng=r,e.fire("move",{latlng:r}).fire("drag")},_onDragEnd:function(e){this._marker.fire("moveend").fire("dragend",e)}}),i.Control=i.Class.extend({options:{position:"topright"},initialize:function(e){i.setOptions(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),r=e._controlCorners[n];return i.DomUtil.addClass(t,"leaflet-control"),-1!==n.indexOf("bottom")?r.insertBefore(t,r.firstChild):r.appendChild(t),this},removeFrom:function(e){var t=this.getPosition();return e._controlCorners[t].removeChild(this._container),this._map=null,this.onRemove&&this.onRemove(e),this},_refocusOnMap:function(){this._map&&this._map.getContainer().focus()}}),i.control=function(e){return new i.Control(e)},i.Map.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.removeFrom(this),this},_initControlPos:function(){function e(e,o){var a=n+e+" "+n+o;t[e+o]=i.DomUtil.create("div",a,r)}var t=this._controlCorners={},n="leaflet-",r=this._controlContainer=i.DomUtil.create("div",n+"control-container",this._container);e("top","left"),e("top","right"),e("bottom","left"),e("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}}),i.Control.Zoom=i.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(e){var t="leaflet-control-zoom",n=i.DomUtil.create("div",t+" leaflet-bar");return this._map=e,this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,t+"-in",n,this._zoomIn,this),this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,t+"-out",n,this._zoomOut,this),this._updateDisabled(),e.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(e){e.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(e,t,n,r,o,a){var s=i.DomUtil.create("a",n,r);s.innerHTML=e,s.href="#",s.title=t;var l=i.DomEvent.stopPropagation;return i.DomEvent.on(s,"click",l).on(s,"mousedown",l).on(s,"dblclick",l).on(s,"click",i.DomEvent.preventDefault).on(s,"click",o,a).on(s,"click",this._refocusOnMap,a),s},_updateDisabled:function(){var e=this._map,t="leaflet-disabled";i.DomUtil.removeClass(this._zoomInButton,t),i.DomUtil.removeClass(this._zoomOutButton,t),e._zoom===e.getMinZoom()&&i.DomUtil.addClass(this._zoomOutButton,t),e._zoom===e.getMaxZoom()&&i.DomUtil.addClass(this._zoomInButton,t)}}),i.Map.mergeOptions({zoomControl:!0}),i.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new i.Control.Zoom,this.addControl(this.zoomControl))}),i.control.zoom=function(e){return new i.Control.Zoom(e)},i.Control.Attribution=i.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(e){i.setOptions(this,e),this._attributions={}},onAdd:function(e){this._container=i.DomUtil.create("div","leaflet-control-attribution"),i.DomEvent.disableClickPropagation(this._container);for(var t in e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return e.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this),this._update(),this._container},onRemove:function(e){e.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e?(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update(),this):void 0},removeAttribution:function(e){return e?(this._attributions[e]&&(this._attributions[e]--,this._update()),this):void 0},_update:function(){if(this._map){var e=[];for(var t in this._attributions)this._attributions[t]&&e.push(t);var n=[];this.options.prefix&&n.push(this.options.prefix),e.length&&n.push(e.join(", ")),this._container.innerHTML=n.join(" | ")}},_onLayerAdd:function(e){e.layer.getAttribution&&this.addAttribution(e.layer.getAttribution())},_onLayerRemove:function(e){e.layer.getAttribution&&this.removeAttribution(e.layer.getAttribution())}}),i.Map.mergeOptions({attributionControl:!0}),i.Map.addInitHook(function(){this.options.attributionControl&&(this.attributionControl=(new i.Control.Attribution).addTo(this))}),i.control.attribution=function(e){return new i.Control.Attribution(e)},i.Control.Scale=i.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0,updateWhenIdle:!1},onAdd:function(e){this._map=e;var t="leaflet-control-scale",n=i.DomUtil.create("div",t),r=this.options;return this._addScales(r,t,n),e.on(r.updateWhenIdle?"moveend":"move",this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(e,t,n){e.metric&&(this._mScale=i.DomUtil.create("div",t+"-line",n)),e.imperial&&(this._iScale=i.DomUtil.create("div",t+"-line",n))},_update:function(){var e=this._map.getBounds(),t=e.getCenter().lat,n=6378137*Math.PI*Math.cos(t*Math.PI/180),r=n*(e.getNorthEast().lng-e.getSouthWest().lng)/180,i=this._map.getSize(),o=this.options,a=0;i.x>0&&(a=r*(o.maxWidth/i.x)),this._updateScales(o,a)},_updateScales:function(e,t){e.metric&&t&&this._updateMetric(t),e.imperial&&t&&this._updateImperial(t)},_updateMetric:function(e){var t=this._getRoundNum(e);this._mScale.style.width=this._getScaleWidth(t/e)+"px",this._mScale.innerHTML=1e3>t?t+" m":t/1e3+" km"},_updateImperial:function(e){var t,n,r,i=3.2808399*e,o=this._iScale;i>5280?(t=i/5280,n=this._getRoundNum(t),
-o.style.width=this._getScaleWidth(n/t)+"px",o.innerHTML=n+" mi"):(r=this._getRoundNum(i),o.style.width=this._getScaleWidth(r/i)+"px",o.innerHTML=r+" ft")},_getScaleWidth:function(e){return Math.round(this.options.maxWidth*e)-10},_getRoundNum:function(e){var t=Math.pow(10,(Math.floor(e)+"").length-1),n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:1,t*n}}),i.control.scale=function(e){return new i.Control.Scale(e)},i.Control.Layers=i.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0},initialize:function(e,t,n){i.setOptions(this,n),this._layers={},this._lastZIndex=0,this._handlingClick=!1;for(var r in e)this._addLayer(e[r],r);for(r in t)this._addLayer(t[r],r,!0)},onAdd:function(e){return this._initLayout(),this._update(),e.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this),this._container},onRemove:function(e){e.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._update(),this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._update(),this},removeLayer:function(e){var t=i.stamp(e);return delete this._layers[t],this._update(),this},_initLayout:function(){var e="leaflet-control-layers",t=this._container=i.DomUtil.create("div",e);t.setAttribute("aria-haspopup",!0),i.Browser.touch?i.DomEvent.on(t,"click",i.DomEvent.stopPropagation):i.DomEvent.disableClickPropagation(t).disableScrollPropagation(t);var n=this._form=i.DomUtil.create("form",e+"-list");if(this.options.collapsed){i.Browser.android||i.DomEvent.on(t,"mouseover",this._expand,this).on(t,"mouseout",this._collapse,this);var r=this._layersLink=i.DomUtil.create("a",e+"-toggle",t);r.href="#",r.title="Layers",i.Browser.touch?i.DomEvent.on(r,"click",i.DomEvent.stop).on(r,"click",this._expand,this):i.DomEvent.on(r,"focus",this._expand,this),i.DomEvent.on(n,"click",function(){setTimeout(i.bind(this._onInputClick,this),0)},this),this._map.on("click",this._collapse,this)}else this._expand();this._baseLayersList=i.DomUtil.create("div",e+"-base",n),this._separator=i.DomUtil.create("div",e+"-separator",n),this._overlaysList=i.DomUtil.create("div",e+"-overlays",n),t.appendChild(n)},_addLayer:function(e,t,n){var r=i.stamp(e);this._layers[r]={layer:e,name:t,overlay:n},this.options.autoZIndex&&e.setZIndex&&(this._lastZIndex++,e.setZIndex(this._lastZIndex))},_update:function(){if(this._container){this._baseLayersList.innerHTML="",this._overlaysList.innerHTML="";var e,t,n=!1,r=!1;for(e in this._layers)t=this._layers[e],this._addItem(t),r=r||t.overlay,n=n||!t.overlay;this._separator.style.display=r&&n?"":"none"}},_onLayerChange:function(e){var t=this._layers[i.stamp(e.layer)];if(t){this._handlingClick||this._update();var n=t.overlay?"layeradd"===e.type?"overlayadd":"overlayremove":"layeradd"===e.type?"baselayerchange":null;n&&this._map.fire(n,t)}},_createRadioElement:function(e,n){var r='<input type="radio" class="leaflet-control-layers-selector" name="'+e+'"';n&&(r+=' checked="checked"'),r+="/>";var i=t.createElement("div");return i.innerHTML=r,i.firstChild},_addItem:function(e){var n,r=t.createElement("label"),o=this._map.hasLayer(e.layer);e.overlay?(n=t.createElement("input"),n.type="checkbox",n.className="leaflet-control-layers-selector",n.defaultChecked=o):n=this._createRadioElement("leaflet-base-layers",o),n.layerId=i.stamp(e.layer),i.DomEvent.on(n,"click",this._onInputClick,this);var a=t.createElement("span");return a.innerHTML=" "+e.name,r.appendChild(n),r.appendChild(a),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(r),r},_onInputClick:function(){var e,t,n,r=this._form.getElementsByTagName("input"),i=r.length;for(this._handlingClick=!0,e=0;i>e;e++)t=r[e],n=this._layers[t.layerId],t.checked&&!this._map.hasLayer(n.layer)?this._map.addLayer(n.layer):!t.checked&&this._map.hasLayer(n.layer)&&this._map.removeLayer(n.layer);this._handlingClick=!1,this._refocusOnMap()},_expand:function(){i.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}}),i.control.layers=function(e,t,n){return new i.Control.Layers(e,t,n)},i.PosAnimation=i.Class.extend({includes:i.Mixin.Events,run:function(e,t,n,r){this.stop(),this._el=e,this._inProgress=!0,this._newPos=t,this.fire("start"),e.style[i.DomUtil.TRANSITION]="all "+(n||.25)+"s cubic-bezier(0,0,"+(r||.5)+",1)",i.DomEvent.on(e,i.DomUtil.TRANSITION_END,this._onTransitionEnd,this),i.DomUtil.setPosition(e,t),i.Util.falseFn(e.offsetWidth),this._stepTimer=setInterval(i.bind(this._onStep,this),50)},stop:function(){this._inProgress&&(i.DomUtil.setPosition(this._el,this._getPos()),this._onTransitionEnd(),i.Util.falseFn(this._el.offsetWidth))},_onStep:function(){var e=this._getPos();return e?(this._el._leaflet_pos=e,void this.fire("step")):void this._onTransitionEnd()},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var t,n,r,o=this._el,a=e.getComputedStyle(o);if(i.Browser.any3d){if(!(r=a[i.DomUtil.TRANSFORM].match(this._transformRe)))return;t=parseFloat(r[1]),n=parseFloat(r[2])}else t=parseFloat(a.left),n=parseFloat(a.top);return new i.Point(t,n,!0)},_onTransitionEnd:function(){i.DomEvent.off(this._el,i.DomUtil.TRANSITION_END,this._onTransitionEnd,this),this._inProgress&&(this._inProgress=!1,this._el.style[i.DomUtil.TRANSITION]="",this._el._leaflet_pos=this._newPos,clearInterval(this._stepTimer),this.fire("step").fire("end"))}}),i.Map.include({setView:function(e,t,r){if(t=t===n?this._zoom:this._limitZoom(t),e=this._limitCenter(i.latLng(e),t,this.options.maxBounds),r=r||{},this._panAnim&&this._panAnim.stop(),this._loaded&&!r.reset&&!0!==r){r.animate!==n&&(r.zoom=i.extend({animate:r.animate},r.zoom),r.pan=i.extend({animate:r.animate},r.pan));if(this._zoom!==t?this._tryAnimatedZoom&&this._tryAnimatedZoom(e,t,r.zoom):this._tryAnimatedPan(e,r.pan))return clearTimeout(this._sizeTimer),this}return this._resetView(e,t),this},panBy:function(e,t){if(e=i.point(e).round(),t=t||{},!e.x&&!e.y)return this;if(this._panAnim||(this._panAnim=new i.PosAnimation,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire("movestart"),!1!==t.animate){i.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var n=this._getMapPanePos().subtract(e);this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire("move").fire("moveend");return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){i.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._floor();return!(!0!==(t&&t.animate)&&!this.getSize().contains(n))&&(this.panBy(n,t),!0)}}),i.PosAnimation=i.DomUtil.TRANSITION?i.PosAnimation:i.PosAnimation.extend({run:function(e,t,n,r){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(r||.5,.2),this._startPos=i.DomUtil.getPosition(e),this._offset=t.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(),this._complete())},_animate:function(){this._animId=i.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(){var e=+new Date-this._startTime,t=1e3*this._duration;t>e?this._runFrame(this._easeOut(e/t)):(this._runFrame(1),this._complete())},_runFrame:function(e){var t=this._startPos.add(this._offset.multiplyBy(e));i.DomUtil.setPosition(this._el,t),this.fire("step")},_complete:function(){i.Util.cancelAnimFrame(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(e){return 1-Math.pow(1-e,this._easeOutPower)}}),i.Map.mergeOptions({zoomAnimation:!0,zoomAnimationThreshold:4}),i.DomUtil.TRANSITION&&i.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&i.DomUtil.TRANSITION&&i.Browser.any3d&&!i.Browser.android23&&!i.Browser.mobileOpera,this._zoomAnimated&&i.DomEvent.on(this._mapPane,i.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}),i.Map.include(i.DomUtil.TRANSITION?{_catchTransitionEnd:function(e){this._animatingZoom&&e.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;if(n=n||{},!this._zoomAnimated||!1===n.animate||this._nothingToAnimate()||Math.abs(t-this._zoom)>this.options.zoomAnimationThreshold)return!1;var r=this.getZoomScale(t),i=this._getCenterOffset(e)._divideBy(1-1/r),o=this._getCenterLayerPoint()._add(i);return!(!0!==n.animate&&!this.getSize().contains(i))&&(this.fire("movestart").fire("zoomstart"),this._animateZoom(e,t,o,r,null,!0),!0)},_animateZoom:function(e,t,n,r,o,a,s){s||(this._animatingZoom=!0),i.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim"),this._animateToCenter=e,this._animateToZoom=t,i.Draggable&&(i.Draggable._disabled=!0),i.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:e,zoom:t,origin:n,scale:r,delta:o,backwards:a}),setTimeout(i.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._animatingZoom=!1,i.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),i.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,!0,!0),i.Draggable&&(i.Draggable._disabled=!1)},this))}}:{}),i.TileLayer.include({_animateZoom:function(e){this._animating||(this._animating=!0,this._prepareBgBuffer());var t=this._bgBuffer,n=i.DomUtil.TRANSFORM,r=e.delta?i.DomUtil.getTranslateString(e.delta):t.style[n],o=i.DomUtil.getScaleString(e.scale,e.origin);t.style[n]=e.backwards?o+" "+r:r+" "+o},_endZoomAnim:function(){var e=this._tileContainer,t=this._bgBuffer;e.style.visibility="",e.parentNode.appendChild(e),i.Util.falseFn(t.offsetWidth);var n=this._map.getZoom();(n>this.options.maxZoom||n<this.options.minZoom)&&this._clearBgBuffer(),this._animating=!1},_clearBgBuffer:function(){var e=this._map;!e||e._animatingZoom||e.touchZoom._zooming||(this._bgBuffer.innerHTML="",this._bgBuffer.style[i.DomUtil.TRANSFORM]="")},_prepareBgBuffer:function(){var e=this._tileContainer,t=this._bgBuffer,n=this._getLoadedTilesPercentage(t),r=this._getLoadedTilesPercentage(e);return t&&n>.5&&.5>r?(e.style.visibility="hidden",void this._stopLoadingImages(e)):(t.style.visibility="hidden",t.style[i.DomUtil.TRANSFORM]="",this._tileContainer=t,t=this._bgBuffer=e,this._stopLoadingImages(t),void clearTimeout(this._clearBgBufferTimer))},_getLoadedTilesPercentage:function(e){var t,n,r=e.getElementsByTagName("img"),i=0;for(t=0,n=r.length;n>t;t++)r[t].complete&&i++;return i/n},_stopLoadingImages:function(e){var t,n,r,o=Array.prototype.slice.call(e.getElementsByTagName("img"));for(t=0,n=o.length;n>t;t++)r=o[t],r.complete||(r.onload=i.Util.falseFn,r.onerror=i.Util.falseFn,r.src=i.Util.emptyImageUrl,r.parentNode.removeChild(r))}}),i.Map.include({_defaultLocateOptions:{watch:!1,setView:!1,maxZoom:1/0,timeout:1e4,maximumAge:0,enableHighAccuracy:!1},locate:function(e){if(e=this._locateOptions=i.extend(this._defaultLocateOptions,e),!navigator.geolocation)return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var t=i.bind(this._handleGeolocationResponse,this),n=i.bind(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,n,e):navigator.geolocation.getCurrentPosition(t,n,e),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){var t=e.code,n=e.message||(1===t?"permission denied":2===t?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:t,message:"Geolocation error: "+n+"."})},_handleGeolocationResponse:function(e){var t=e.coords.latitude,n=e.coords.longitude,r=new i.LatLng(t,n),o=180*e.coords.accuracy/40075017,a=o/Math.cos(i.LatLng.DEG_TO_RAD*t),s=i.latLngBounds([t-o,n-a],[t+o,n+a]),l=this._locateOptions;if(l.setView){var u=Math.min(this.getBoundsZoom(s),l.maxZoom);this.setView(r,u)}var c={latlng:r,bounds:s,timestamp:e.timestamp};for(var d in e.coords)"number"==typeof e.coords[d]&&(c[d]=e.coords[d]);this.fire("locationfound",c)}})}(window,document),function(e,t,n){"use strict";L.AwesomeMarkers={},L.AwesomeMarkers.version="2.0.1",L.AwesomeMarkers.Icon=L.Icon.extend({options:{iconSize:[35,45],iconAnchor:[17,42],popupAnchor:[1,-32],shadowAnchor:[10,12],shadowSize:[36,16],className:"awesome-marker",prefix:"glyphicon",spinClass:"fa-spin",icon:"home",markerColor:"blue",iconColor:"white"},initialize:function(e){e=L.Util.setOptions(this,e)},createIcon:function(){var e=t.createElement("div"),n=this.options;return n.icon&&(e.innerHTML=this._createInner()),n.bgPos&&(e.style.backgroundPosition=-n.bgPos.x+"px "+-n.bgPos.y+"px"),this._setIconStyles(e,"icon-"+n.markerColor),e},_createInner:function(){var e,t="",n="",r="",i=this.options;return e=i.icon.slice(0,i.prefix.length+1)===i.prefix+"-"?i.icon:i.prefix+"-"+i.icon,i.spin&&"string"==typeof i.spinClass&&(t=i.spinClass),i.iconColor&&("white"===i.iconColor||"black"===i.iconColor?n="icon-"+i.iconColor:r="style='color: "+i.iconColor+"' "),"<i "+r+"class='"+i.prefix+" "+e+" "+t+" "+n+"'></i>"},_setIconStyles:function(e,t){var n,r=this.options,i=L.point(r["shadow"===t?"shadowSize":"iconSize"]);n="shadow"===t?L.point(r.shadowAnchor||r.iconAnchor):L.point(r.iconAnchor),!n&&i&&(n=i.divideBy(2,!0)),e.className="awesome-marker-"+t+" "+r.className,n&&(e.style.marginLeft=-n.x+"px",e.style.marginTop=-n.y+"px"),i&&(e.style.width=i.x+"px",e.style.height=i.y+"px")},createShadow:function(){var e=t.createElement("div");return this._setIconStyles(e,"shadow"),e}}),L.AwesomeMarkers.icon=function(e){return new L.AwesomeMarkers.Icon(e)}}(0,document),function(e){if("function"==typeof define&&define.amd)define(["leaflet"],e);else if("undefined"!=typeof module)module.exports=e(require("leaflet"));else{if(void 0===window.L)throw"Leaflet must be loaded first";e(window.L)}}(function(e){function t(e,t){var n=t.split("."),r=n.pop(),i=n.length,o=n[0],a=1;if(i>0)for(;(e=e[o])&&a<i;)o=n[a++];if(e)return e[r]}function n(e){return"[object Object]"===Object.prototype.toString.call(e)}return e.Control.Search=e.Control.extend({includes:e.Mixin.Events,options:{url:"",layer:null,sourceData:null,jsonpParam:null,propertyLoc:"loc",propertyName:"title",formatData:null,filterData:null,moveToLocation:null,buildTip:null,container:"",zoom:null,minLength:1,initial:!0,casesensitive:!1,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,firstTipSubmit:!1,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,textErr:"Location not found",textCancel:"Cancel",textPlaceholder:"Search...",position:"topleft",hideMarkerOnCollapse:!1,marker:{icon:!1,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}}},initialize:function(t){e.Util.setOptions(this,t||{}),this._inputMinSize=this.options.textPlaceholder?this.options.textPlaceholder.length:10,this._layer=this.options.layer||new e.LayerGroup,this._filterData=this.options.filterData||this._defaultFilterData,this._formatData=this.options.formatData||this._defaultFormatData,this._moveToLocation=this.options.moveToLocation||this._defaultMoveToLocation,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={},this._curReq=null},onAdd:function(t){return this._map=t,this._container=e.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.textPlaceholder,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.textPlaceholder,"search-button"),this._alert=this._createAlert("search-alert"),!1===this.options.collapsed&&this.expand(this.options.collapsed),this.options.marker&&(this.options.marker instanceof e.Marker||this.options.marker instanceof e.CircleMarker?this._markerSearch=this.options.marker:n(this.options.marker)&&(this._markerSearch=new e.Control.Search.Marker([0,0],this.options.marker)),this._markerSearch._isMarkerSearch=!0),this.setLayer(this._layer),t.on({resize:this._handleAutoresize},this),this._container},addTo:function(t){return this.options.container?(this._container=this.onAdd(t),this._wrapper=e.DomUtil.get(this.options.container),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):e.Control.prototype.addTo.call(this,t),this},onRemove:function(e){this._recordsCache={}},setLayer:function(e){return this._layer=e,this._layer.addTo(this._map),this},showAlert:function(e){e=e||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=e,clearTimeout(this.timerAlert);var t=this;return this.timerAlert=setTimeout(function(){t.hideAlert()},this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this._hideTooltip(),this},expand:function(t){return t="boolean"!=typeof t||t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),!1!==t&&(this._input.focus(),this._map.on("dragstart click",this.collapse,this)),this.fire("search:expanded"),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",e.DomUtil.removeClass(this._container,"search-exp"),this.options.hideMarkerOnCollapse&&this._map.removeLayer(this._markerSearch),this._map.off("dragstart click",this.collapse,this)),this.fire("search:collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var e=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout(function(){e.collapse()},this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(t){var n=e.DomUtil.create("div",t,this._container);return n.style.display="none",e.DomEvent.on(n,"click",e.DomEvent.stop,this).on(n,"click",this.hideAlert,this),n},_createInput:function(t,n){var r=e.DomUtil.create("label",n,this._container),i=e.DomUtil.create("input",n,this._container);return i.type="text",i.size=this._inputMinSize,i.value="",i.autocomplete="off",i.autocorrect="off",i.autocapitalize="off",i.placeholder=t,i.style.display="none",i.role="search",i.id=i.role+i.type+i.size,r.htmlFor=i.id,r.style.display="none",r.value=t,e.DomEvent.disableClickPropagation(i).on(i,"keydown",this._handleKeypress,this).on(i,"blur",this.collapseDelayed,this).on(i,"focus",this.collapseDelayedStop,this),i},_createCancel:function(t,n){var r=e.DomUtil.create("a",n,this._container);return r.href="#",r.title=t,r.style.display="none",r.innerHTML="<span>&otimes;</span>",e.DomEvent.on(r,"click",e.DomEvent.stop,this).on(r,"click",this.cancel,this),r},_createButton:function(t,n){var r=e.DomUtil.create("a",n,this._container);return r.href="#",r.title=t,e.DomEvent.on(r,"click",e.DomEvent.stop,this).on(r,"click",this._handleSubmit,this).on(r,"focus",this.collapseDelayedStop,this).on(r,"blur",this.collapseDelayed,this),r},_createTooltip:function(t){var n=e.DomUtil.create("ul",t,this._container);n.style.display="none";var r=this;return e.DomEvent.disableClickPropagation(n).on(n,"blur",this.collapseDelayed,this).on(n,"mousewheel",function(t){r.collapseDelayedStop(),e.DomEvent.stopPropagation(t)},this).on(n,"mouseover",function(e){r.collapseDelayedStop()},this),n},_createTip:function(t,n){var r;if(this.options.buildTip){if("string"==typeof(r=this.options.buildTip.call(this,t,n))){var i=e.DomUtil.create("div");i.innerHTML=r,r=i.firstChild}}else r=e.DomUtil.create("li",""),r.innerHTML=t;return e.DomUtil.addClass(r,"search-tip"),r._text=t,this.options.tipAutoSubmit&&e.DomEvent.disableClickPropagation(r).on(r,"click",e.DomEvent.stop,this).on(r,"click",function(e){this._input.value=t,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this._handleSubmit()},this),r},_getUrl:function(e){return"function"==typeof this.options.url?this.options.url(e):this.options.url},_defaultFilterData:function(e,t){var n,r,i,o={};if(""===(e=e.replace(/[.*+?^${}()|[\]\\]/g,"")))return[];n=this.options.initial?"^":"",r=this.options.casesensitive?void 0:"i",i=new RegExp(n+e,r);for(var a in t)i.test(a)&&(o[a]=t[a]);return o},showTooltip:function(e){if(this._countertips=0,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1,this.options.tooltipLimit)for(var t in e){if(this._countertips===this.options.tooltipLimit)break;this._countertips++,this._tooltip.appendChild(this._createTip(t,e[t]))}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFormatData:function(n){var r,i=this.options.propertyName,o=this.options.propertyLoc,a={};if(e.Util.isArray(o))for(r in n)a[t(n[r],i)]=e.latLng(n[r][o[0]],n[r][o[1]]);else for(r in n)a[t(n[r],i)]=e.latLng(t(n[r],o));return a},_recordsFromJsonp:function(t,n){e.Control.Search.callJsonp=n;var r=e.DomUtil.create("script","leaflet-search-jsonp",document.getElementsByTagName("body")[0]),i=e.Util.template(this._getUrl(t)+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:t});return r.type="text/javascript",r.src=i,{abort:function(){r.parentNode.removeChild(r)}}},_recordsFromAjax:function(t,n){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(e){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(e){throw new Error("XMLHttpRequest is not supported")}}});var r=e.Browser.ie&&!window.atob&&document.querySelector,i=r?new XDomainRequest:new XMLHttpRequest,o=e.Util.template(this._getUrl(t),{s:t});i.open("GET",o);return i.onload=function(){n(JSON.parse(i.responseText))},i.onreadystatechange=function(){4===i.readyState&&200===i.status&&this.onload()},i.send(),i},_recordsFromLayer:function(){var n,r={},i=this.options.propertyName;return this._layer.eachLayer(function(o){if(!o.hasOwnProperty("_isMarkerSearch"))if(o instanceof e.Marker||o instanceof e.CircleMarker)try{if(t(o.options,i))n=o.getLatLng(),n.layer=o,r[t(o.options,i)]=n;else{if(!t(o.feature.properties,i))throw new Error("propertyName '"+i+"' not found in marker");n=o.getLatLng(),n.layer=o,r[t(o.feature.properties,i)]=n}}catch(e){console}else if(o.hasOwnProperty("feature"))try{if(!o.feature.properties.hasOwnProperty(i))throw new Error("propertyName '"+i+"' not found in feature");n=o.getBounds().getCenter(),n.layer=o,r[o.feature.properties[i]]=n}catch(e){console}else o instanceof e.LayerGroup&&o.eachLayer(function(e){n=e.getLatLng(),n.layer=e,r[e.feature.properties[i]]=n})},this),r},_autoType:function(){var e=this._input.value.length,t=this._tooltip.firstChild?this._tooltip.firstChild._text:"",n=t.length;if(0===t.indexOf(this._input.value))if(this._input.value=t,this._handleAutoresize(),this._input.createTextRange){var r=this._input.createTextRange();r.collapse(!0),r.moveStart("character",e),r.moveEnd("character",n),r.select()}else this._input.setSelectionRange?this._input.setSelectionRange(e,n):this._input.selectionStart&&(this._input.selectionStart=e,this._input.selectionEnd=n)},_hideAutoType:function(){var e;if((e=this._input.selection)&&e.empty)e.empty();else if(this._input.createTextRange){e=this._input.createTextRange(),e.collapse(!0);var t=this._input.value.length;e.moveStart("character",t),e.moveEnd("character",t),e.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(e){switch(e.keyCode){case 27:this.collapse();break;case 13:(1==this._countertips||this.options.firstTipSubmit&&this._countertips>0)&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 8:case 45:case 46:this._autoTypeTmp=!1;break;case 37:case 39:case 16:case 17:case 35:case 36:break;default:if(this._input.value.length?this._cancel.style.display="block":this._cancel.style.display="none",this._input.value.length>=this.options.minLength){var t=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout(function(){t._fillRecordsCache()},this.options.delayType)}else this._hideTooltip()}this._handleAutoresize()},searchText:function(t){var n=t.charCodeAt(t.length);this._input.value=t,this._input.style.display="block",e.DomUtil.addClass(this._container,"search-exp"),this._autoTypeTmp=!1,this._handleKeypress({keyCode:n})},_fillRecordsCache:function(){var t,n=this._input.value,r=this;this._curReq&&this._curReq.abort&&this._curReq.abort(),e.DomUtil.addClass(this._container,"search-load"),this.options.layer?(this._recordsCache=this._recordsFromLayer(),t=this._filterData(this._input.value,this._recordsCache),this.showTooltip(t),e.DomUtil.removeClass(this._container,"search-load")):(this.options.sourceData?this._retrieveData=this.options.sourceData:this.options.url&&(this._retrieveData=this.options.jsonpParam?this._recordsFromJsonp:this._recordsFromAjax),this._curReq=this._retrieveData.call(this,n,function(n){r._recordsCache=r._formatData(n),t=r.options.sourceData?r._filterData(r._input.value,r._recordsCache):r._recordsCache,r.showTooltip(t),e.DomUtil.removeClass(r._container,"search-load")}))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=e.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45<this._map._container.offsetWidth&&(this._input.size=this._input.value.length<this._inputMinSize?this._inputMinSize:this._input.value.length)},_handleArrowSelect:function(t){var n=this._tooltip.hasChildNodes()?this._tooltip.childNodes:[];for(i=0;i<n.length;i++)e.DomUtil.removeClass(n[i],"search-tip-select");if(1==t&&this._tooltip.currentSelection>=n.length-1)e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select");else if(-1==t&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=t,e.DomUtil.addClass(n[this._tooltip.currentSelection],"search-tip-select"),this._input.value=n[this._tooltip.currentSelection]._text;var r=n[this._tooltip.currentSelection].offsetTop;r+n[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=r-this._tooltip.clientHeight+n[this._tooltip.currentSelection].clientHeight:r<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=r)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var e=this._getLocation(this._input.value);!1===e?this.showAlert():(this.showLocation(e,this._input.value),this.fire("search:locationfound",{latlng:e,text:this._input.value,layer:e.layer?e.layer:null}))}},_getLocation:function(e){return!!this._recordsCache.hasOwnProperty(e)&&this._recordsCache[e]},_defaultMoveToLocation:function(e,t,n){this.options.zoom?this._map.setView(e,this.options.zoom):this._map.panTo(e)},showLocation:function(e,t){var n=this;return n._map.once("moveend zoomend",function(t){n._markerSearch&&n._markerSearch.addTo(n._map).setLatLng(e)}),n._moveToLocation(e,t,n._map),n.options.autoCollapse&&n.collapse(),n}}),e.Control.Search.Marker=e.Marker.extend({includes:e.Mixin.Events,options:{icon:new e.Icon.Default,animate:!0,circle:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1}},initialize:function(t,r){e.setOptions(this,r),!0===r.icon&&(r.icon=new e.Icon.Default),e.Marker.prototype.initialize.call(this,t,r),n(this.options.circle)&&(this._circleLoc=new e.CircleMarker(t,this.options.circle))},onAdd:function(t){e.Marker.prototype.onAdd.call(this,t),this._circleLoc&&(t.addLayer(this._circleLoc),this.options.animate&&this.animate())},onRemove:function(t){e.Marker.prototype.onRemove.call(this,t),this._circleLoc&&t.removeLayer(this._circleLoc)},setLatLng:function(t){return e.Marker.prototype.setLatLng.call(this,t),this._circleLoc&&this._circleLoc.setLatLng(t),this},_initIcon:function(){this.options.icon&&e.Marker.prototype._initIcon.call(this)},_removeIcon:function(){this.options.icon&&e.Marker.prototype._removeIcon.call(this)},animate:function(){if(this._circleLoc){var e=this._circleLoc,t=parseInt(e._radius/5),n=this.options.circle.radius,r=2*e._radius,i=0;e._timerAnimLoc=setInterval(function(){i+=.5,t+=i,r-=t,e.setRadius(r),r<n&&(clearInterval(e._timerAnimLoc),e.setRadius(n))},200)}return this}}),e.Map.addInitHook(function(){this.options.searchControl&&(this.searchControl=e.control.search(this.options.searchControl),this.addControl(this.searchControl))}),e.control.search=function(t){return new e.Control.Search(t)},e.Control.Search}),function(){function e(e,n){this.title=e.title,this.stateName=e.stateName?e.stateName:"unnamed-state",this.icon=L.DomUtil.create("span",""),L.DomUtil.addClass(this.icon,"button-state state-"+this.stateName.replace(/(^\s*|\s*$)/g,"")),this.icon.innerHTML=t(e.icon),this.onClick=L.Util.bind(e.onClick?e.onClick:function(){},n)}function t(e){var t;return e.match(/[&;=<>"']/)?t=e:(e=e.replace(/(^\s*|\s*$)/g,""),t=L.DomUtil.create("span",""),0===e.indexOf("fa-")?L.DomUtil.addClass(t,"fa "+e):0===e.indexOf("glyphicon-")?L.DomUtil.addClass(t,"glyphicon "+e):L.DomUtil.addClass(t,e),t=t.outerHTML),t}L.Control.EasyBar=L.Control.extend({options:{position:"topleft",id:null,leafletClasses:!0},initialize:function(e,t){t&&L.Util.setOptions(this,t),this._buildContainer(),this._buttons=[];for(var n=0;n<e.length;n++)e[n]._bar=this,e[n]._container=e[n].button,this._buttons.push(e[n]),this.container.appendChild(e[n].button)},_buildContainer:function(){this._container=this.container=L.DomUtil.create("div",""),this.options.leafletClasses&&L.DomUtil.addClass(this.container,"leaflet-bar easy-button-container leaflet-control"),this.options.id&&(this.container.id=this.options.id)},enable:function(){return L.DomUtil.addClass(this.container,"enabled"),L.DomUtil.removeClass(this.container,"disabled"),this.container.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.container,"disabled"),L.DomUtil.removeClass(this.container,"enabled"),this.container.setAttribute("aria-hidden","true"),this},onAdd:function(){return this.container},addTo:function(e){this._map=e;for(var t=0;t<this._buttons.length;t++)this._buttons[t]._map=e;var n=this._container=this.onAdd(e),r=this.getPosition(),i=e._controlCorners[r];return L.DomUtil.addClass(n,"leaflet-control"),-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this}}),L.easyBar=function(){for(var e=[L.Control.EasyBar],t=0;t<arguments.length;t++)e.push(arguments[t]);return new(Function.prototype.bind.apply(L.Control.EasyBar,e))},L.Control.EasyButton=L.Control.extend({options:{position:"topleft",id:null,type:"replace",states:[],leafletClasses:!0,tagName:"button"},initialize:function(t,n,r,i){this.options.states=[],null!=i&&(this.options.id=i),this.storage={},"object"==typeof arguments[arguments.length-1]&&L.Util.setOptions(this,arguments[arguments.length-1]),0===this.options.states.length&&"string"==typeof t&&"function"==typeof n&&this.options.states.push({icon:t,onClick:n,title:"string"==typeof r?r:""}),this._states=[]
-;for(var o=0;o<this.options.states.length;o++)this._states.push(new e(this.options.states[o],this));this._buildButton(),this._activateState(this._states[0])},_buildButton:function(){if(this.button=L.DomUtil.create(this.options.tagName,""),"button"===this.options.tagName&&this.button.setAttribute("type","button"),this.options.id&&(this.button.id=this.options.id),this.options.leafletClasses&&L.DomUtil.addClass(this.button,"easy-button-button leaflet-bar-part leaflet-interactive"),L.DomEvent.addListener(this.button,"dblclick",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mousedown",L.DomEvent.stop),L.DomEvent.addListener(this.button,"mouseup",L.DomEvent.stop),L.DomEvent.addListener(this.button,"click",function(e){L.DomEvent.stop(e),this._currentState.onClick(this,this._map?this._map:null),this._map&&this._map.getContainer().focus()},this),"replace"==this.options.type)this.button.appendChild(this._currentState.icon);else for(var e=0;e<this._states.length;e++)this.button.appendChild(this._states[e].icon)},_currentState:{stateName:"unnamed",icon:function(){return document.createElement("span")}()},_states:null,state:function(e){return 0===arguments.length?this._currentState.stateName:("string"==typeof e?this._activateStateNamed(e):"number"==typeof e&&this._activateState(this._states[e]),this)},_activateStateNamed:function(e){for(var t=0;t<this._states.length;t++)this._states[t].stateName==e&&this._activateState(this._states[t])},_activateState:function(e){if(e!==this._currentState){"replace"==this.options.type&&(this.button.appendChild(e.icon),this.button.removeChild(this._currentState.icon)),e.title?this.button.title=e.title:this.button.removeAttribute("title");for(var t=0;t<this._states.length;t++)L.DomUtil.removeClass(this._states[t].icon,this._currentState.stateName+"-active"),L.DomUtil.addClass(this._states[t].icon,e.stateName+"-active");L.DomUtil.removeClass(this.button,this._currentState.stateName+"-active"),L.DomUtil.addClass(this.button,e.stateName+"-active"),this._currentState=e}},enable:function(){return L.DomUtil.addClass(this.button,"enabled"),L.DomUtil.removeClass(this.button,"disabled"),this.button.setAttribute("aria-hidden","false"),this},disable:function(){return L.DomUtil.addClass(this.button,"disabled"),L.DomUtil.removeClass(this.button,"enabled"),this.button.setAttribute("aria-hidden","true"),this},onAdd:function(e){var t=L.easyBar([this],{position:this.options.position,leafletClasses:this.options.leafletClasses});return this._anonymousBar=t,this._container=t.container,this._anonymousBar.container},removeFrom:function(e){return this._map===e&&this.remove(),this}}),L.easyButton=function(){var e=Array.prototype.concat.apply([L.Control.EasyButton],arguments);return new(Function.prototype.bind.apply(L.Control.EasyButton,e))}}(),function(){function e(e){e.Control.Loading=e.Control.extend({options:{delayIndicator:null,position:"topleft",separate:!1,zoomControl:null,spinjs:!1,spin:{lines:7,length:3,width:3,radius:5,rotate:13,top:"83%"}},initialize:function(t){e.setOptions(this,t),this._dataLoaders={},null!==this.options.zoomControl&&(this.zoomControl=this.options.zoomControl)},onAdd:function(n){if(this.options.spinjs&&"function"!=typeof Spinner)return t.error("Leaflet.loading cannot load because you didn't load spin.js (http://fgnass.github.io/spin.js/), even though you set it in options.");this._addLayerListeners(n),this._addMapListeners(n),this.options.separate||this.zoomControl||(n.zoomControl?this.zoomControl=n.zoomControl:n.zoomsliderControl&&(this.zoomControl=n.zoomsliderControl));var r,i="leaflet-control-loading";return this.zoomControl&&!this.options.separate?(r=this.zoomControl._container,i+=" leaflet-bar-part-bottom leaflet-bar-part last",e.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom")):r=e.DomUtil.create("div","leaflet-control-zoom leaflet-control-layer-container leaflet-bar"),this._indicatorContainer=r,this._indicator=e.DomUtil.create("a",i,r),this.options.spinjs&&(this._spinner=new Spinner(this.options.spin).spin(),this._indicator.appendChild(this._spinner.el)),r},onRemove:function(e){this._removeLayerListeners(e),this._removeMapListeners(e)},removeFrom:function(t){return this.zoomControl&&!this.options.separate?(this._container.removeChild(this._indicator),this._map=null,this.onRemove(t),this):e.Control.prototype.removeFrom.call(this,t)},addLoader:function(e){if(this._dataLoaders[e]=!0,this.options.delayIndicator&&!this.delayIndicatorTimeout){var t=this;this.delayIndicatorTimeout=setTimeout(function(){t.updateIndicator(),t.delayIndicatorTimeout=null},this.options.delayIndicator)}else this.updateIndicator()},removeLoader:function(e){delete this._dataLoaders[e],this.updateIndicator(),this.options.delayIndicator&&this.delayIndicatorTimeout&&!this.isLoading()&&(clearTimeout(this.delayIndicatorTimeout),this.delayIndicatorTimeout=null)},updateIndicator:function(){this.isLoading()?this._showIndicator():this._hideIndicator()},isLoading:function(){return this._countLoaders()>0},_countLoaders:function(){var e,t=0;for(e in this._dataLoaders)this._dataLoaders.hasOwnProperty(e)&&t++;return t},_showIndicator:function(){e.DomUtil.addClass(this._indicator,"is-loading"),e.DomUtil.addClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof e.Control.Zoom?e.DomUtil.removeClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof e.Control.Zoomslider&&this.zoomControl instanceof e.Control.Zoomslider&&e.DomUtil.removeClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_hideIndicator:function(){e.DomUtil.removeClass(this._indicator,"is-loading"),e.DomUtil.removeClass(this._indicatorContainer,"is-loading"),this.options.separate||(this.zoomControl instanceof e.Control.Zoom?e.DomUtil.addClass(this._getLastControlButton(),"leaflet-bar-part-bottom"):"function"==typeof e.Control.Zoomslider&&this.zoomControl instanceof e.Control.Zoomslider&&e.DomUtil.addClass(this.zoomControl._ui.zoomOut,"leaflet-bar-part-bottom"))},_getLastControlButton:function(){for(var e=this.zoomControl._container,t=e.children.length-1;t>0;){var n=e.children[t];if(this._indicator!==n&&0!==n.offsetWidth&&0!==n.offsetHeight)break;t--}return e.children[t]},_handleLoading:function(e){this.addLoader(this.getEventId(e))},_handleBaseLayerChange:function(t){var n=this;t.layer&&t.layer.eachLayer&&"function"==typeof t.layer.eachLayer?t.layer.eachLayer(function(e){n._handleBaseLayerChange({layer:e})}):e.TileLayer.Canvas&&t.layer instanceof e.TileLayer.Canvas||n._handleLoading(t)},_handleLoad:function(e){this.removeLoader(this.getEventId(e))},getEventId:function(e){return e.id?e.id:e.layer?e.layer._leaflet_id:e.target._leaflet_id},_layerAdd:function(e){if(e.layer&&e.layer.on)try{e.layer.on({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){t.warn("L.Control.Loading: Tried and failed to add  event handlers to layer",e.layer),t.warn("L.Control.Loading: Full details",n)}},_layerRemove:function(e){if(e.layer&&e.layer.off)try{e.layer.off({loading:this._handleLoading,load:this._handleLoad},this)}catch(n){t.warn("L.Control.Loading: Tried and failed to remove event handlers from layer",e.layer),t.warn("L.Control.Loading: Full details",n)}},_addLayerListeners:function(e){e.eachLayer(function(e){e.on&&e.on({loading:this._handleLoading,load:this._handleLoad},this)},this),e.on("layeradd",this._layerAdd,this),e.on("layerremove",this._layerRemove,this)},_removeLayerListeners:function(e){e.eachLayer(function(e){e.off&&e.off({loading:this._handleLoading,load:this._handleLoad},this)},this),e.off("layeradd",this._layerAdd,this),e.off("layerremove",this._layerRemove,this)},_addMapListeners:function(e){e.on({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)},_removeMapListeners:function(e){e.off({baselayerchange:this._handleBaseLayerChange,dataloading:this._handleLoading,dataload:this._handleLoad,layerremove:this._handleLoad},this)}}),e.Map.addInitHook(function(){this.options.loadingControl&&(this.loadingControl=new e.Control.Loading,this.addControl(this.loadingControl))}),e.Control.loading=function(t){return new e.Control.Loading(t)}}var t=window.console||{error:function(){},warn:function(){}};"function"==typeof define&&define.amd?define(["leaflet"],function(t){e(t)}):e(L)}(),function(e,t,n){L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.on(L.FeatureGroup.EVENTS,this._propagateEvent,this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[];var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.addLayers(t)}if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this;if(!this._map)return this._needsClustering.push(e),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this._topClusterLevel._recalculateBounds();var r=e,i=this._map.getZoom();if(e.__parent)for(;r.__parent._zoom>=i;)r=r.__parent;return this._currentShownBounds.contains(r.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,r):this._animationAddLayerNonAnimated(e,r)),this},removeLayer:function(e){if(e instanceof L.LayerGroup){var t=[];for(var n in e._layers)t.push(e._layers[n]);return this.removeLayers(t)}return e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this._topClusterLevel._recalculateBounds(),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push(e),this):(this._nonPointGroup.removeLayer(e),this)},addLayers:function(e){var t,n,r,i,o=this._featureGroup,a=this._nonPointGroup,s=this.options.chunkedLoading,l=this.options.chunkInterval,u=this.options.chunkProgress;if(this._map){var c=0,d=(new Date).getTime(),h=L.bind(function(){for(var t=(new Date).getTime();c<e.length;c++){if(s&&0==c%200){if((new Date).getTime()-t>l)break}if(i=e[c],i.getLatLng){if(!this.hasLayer(i)&&(this._addLayer(i,this._maxZoom),i.__parent&&2===i.__parent.getChildCount())){var n=i.__parent.getAllChildMarkers(),r=n[0]===i?n[1]:n[0];o.removeLayer(r)}}else a.addLayer(i)}u&&u(c,e.length,(new Date).getTime()-d),c===e.length?(this._topClusterLevel._recalculateBounds(),this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()}),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(h,this.options.chunkDelay)},this);h()}else{for(t=[],n=0,r=e.length;r>n;n++)i=e[n],i.getLatLng?this.hasLayer(i)||t.push(i):a.addLayer(i);this._needsClustering=this._needsClustering.concat(t)}return this},removeLayers:function(e){var t,n,r,i=this._featureGroup,o=this._nonPointGroup;if(!this._map){for(t=0,n=e.length;n>t;t++)r=e[t],this._arraySplice(this._needsClustering,r),o.removeLayer(r),this.hasLayer(r)&&this._needsRemoving.push(r);return this}if(this._unspiderfy)for(this._unspiderfy(),t=0,n=e.length;n>t;t++)r=e[t],this._unspiderfyLayer(r);for(t=0,n=e.length;n>t;t++)r=e[t],r.__parent?(this._removeLayer(r,!0,!0),i.hasLayer(r)&&(i.removeLayer(r),r.clusterShow&&r.clusterShow())):o.removeLayer(r);return this._topClusterLevel._recalculateBounds(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),i.eachLayer(function(e){e instanceof L.MarkerCluster&&e._updateIcon()}),this},clearLayers:function(){return this._map||(this._needsClustering=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){delete e.__parent}),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var n,r=this._needsClustering.slice();for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(r),n=r.length-1;n>=0;n--)e.call(t,r[n]);this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer(function(t){e.push(t)}),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer(function(n){L.stamp(n)===e&&(t=n)}),t},hasLayer:function(e){if(!e)return!1;var t,n=this._needsClustering;for(t=n.length-1;t>=0;t--)if(n[t]===e)return!0;for(n=this._needsRemoving,t=n.length-1;t>=0;t--)if(n[t]===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var n=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",n,this),this.off("animationend",n,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};if(e._icon&&this._map.getBounds().contains(e.getLatLng()))t();else if(e.__parent._zoom<this._map.getZoom())this._map.on("moveend",n,this),this._map.panTo(e.getLatLng());else{var r=function(){this._map.off("movestart",r,this),r=null};this._map.on("movestart",r,this),this._map.on("moveend",n,this),this.on("animationend",n,this),e.__parent.zoomToBounds(),r&&n.call(this)}},onAdd:function(e){this._map=e;var t,n,r;if(!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.onAdd(e),this._nonPointGroup.onAdd(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,n=this._needsRemoving.length;n>t;t++)r=this._needsRemoving[t],this._removeLayer(r,!0);this._needsRemoving=[],this._zoom=this._map.getZoom(),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),n=this._needsClustering,this._needsClustering=[],this.addLayers(n)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.onRemove(e),this._nonPointGroup.onRemove(e),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var n=e.length-1;n>=0;n--)if(e[n]===t)return e.splice(n,1),!0},_removeFromGridUnclustered:function(e,t){for(var n=this._map,r=this._gridUnclustered;t>=0&&r[t].removeObject(e,n.project(e.getLatLng(),t));t--);},_removeLayer:function(e,t,n){var r=this._gridClusters,i=this._gridUnclustered,o=this._featureGroup,a=this._map;t&&this._removeFromGridUnclustered(e,this._maxZoom);var s,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<0));)t&&l._childCount<=1?(s=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,a.project(l._cLatLng,l._zoom)),i[l._zoom].addObject(s,a.project(s.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(s),s.__parent=l.__parent,l._icon&&(o.removeLayer(l),n||o.addLayer(s))):n&&l._icon||l._updateIcon(),l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},_propagateEvent:function(e){if(e.layer instanceof L.MarkerCluster){if(e.originalEvent&&this._isOrIsParent(e.layer._icon,e.originalEvent.relatedTarget))return;e.type="cluster"+e.type}this.fire(e.type,e)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),n=" marker-cluster-";return n+=10>t?"small":100>t?"medium":"large",new L.DivIcon({html:"<div><span>"+t+"</span></div>",className:"marker-cluster"+n,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,n=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick;(t||r)&&this.on("clusterclick",this._zoomOrSpiderfy,this),n&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,n=t;1===n._childClusters.length;)n=n._childClusters[0];n._zoom===this._maxZoom&&n._childCount===t._childCount?this.options.spiderfyOnMaxZoom&&t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,r=this._map;(e||n)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),r.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=this._map._zoom,this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._map._zoom,e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=this._map.getMaxZoom(),t=this.options.maxClusterRadius,n=t;"function"!=typeof t&&(n=function(){return t}),this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var r=e;r>=0;r--)this._gridClusters[r]=new L.DistanceGrid(n(r)),this._gridUnclustered[r]=new L.DistanceGrid(n(r));this._topClusterLevel=new this._markerCluster(this,-1)},_addLayer:function(e,t){var n,r,i=this._gridClusters,o=this._gridUnclustered;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e);t>=0;t--){n=this._map.project(e.getLatLng(),t);var a=i[t].getNearObject(n);if(a)return a._addChild(e),void(e.__parent=a);if(a=o[t].getNearObject(n)){var s=a.__parent;s&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);i[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(r=t-1;r>s._zoom;r--)u=new this._markerCluster(this,r,u),i[r].addObject(u,this._map.project(a.getLatLng(),r));return s._addChild(u),void this._removeFromGridUnclustered(a,t)}o[t].addObject(e,n)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){this._processQueue(),this._zoom<this._map._zoom&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,this._map._zoom)):this._zoom>this._map._zoom?(this._animationStart(),this._animationZoomOut(this._zoom,this._map._zoom)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==n&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var n=t.getAllChildMarkers();this._featureGroup.removeLayer(n[0]),this._featureGroup.removeLayer(n[1])}else t._updateIcon()},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}}),L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(e,t){var n,r=this._getExpandedVisibleBounds(),i=this._featureGroup;this._topClusterLevel._recursively(r,e,0,function(o){var a,s=o._latlng,l=o._markers;for(r.contains(s)||(s=null),o._isSingleParent()&&e+1===t?(i.removeLayer(o),o._recursivelyAddChildrenToMap(null,t,r)):(o.clusterHide(),o._recursivelyAddChildrenToMap(s,t,r)),n=l.length-1;n>=0;n--)a=l[n],r.contains(a._latlng)||i.removeLayer(a)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(r,t),i.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(r,e,t,function(e){e._recursivelyRestoreChildPositions(t)}),this._enqueue(function(){this._topClusterLevel._recursively(r,e,0,function(e){i.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var n=this,r=this._featureGroup;r.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),n._animationEnd()})):(this._forceLayout(),n._animationStart(),n._animationZoomOutSingle(t,this._map.getMaxZoom(),this._map.getZoom())))}},_animationZoomOutSingle:function(e,t,n){var r=this._getExpandedVisibleBounds();e._recursivelyAnimateChildrenInAndAddSelfToMap(r,t+1,n);var i=this;this._forceLayout(),e._recursivelyBecomeVisible(r,n),this._enqueue(function(){if(1===e._childCount){var o=e._markers[0];o.setLatLng(o.getLatLng()),o.clusterShow&&o.clusterShow()}else e._recursively(r,n,0,function(e){e._recursivelyRemoveChildrenFromMap(r,t+1)});i._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(t.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)},L.MarkerCluster=L.Marker.extend({initialize:function(e,t,n,r){L.Marker.prototype.initialize.call(this,n?n._cLatLng||n.getLatLng():new L.LatLng(0,0),{icon:this}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,n&&this._addChild(n),r&&this._addChild(r)},getAllChildMarkers:function(e){e=e||[];for(var t=this._childClusters.length-1;t>=0;t--)this._childClusters[t].getAllChildMarkers(e);for(var n=this._markers.length-1;n>=0;n--)e.push(this._markers[n]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(){for(var e,t=this._childClusters.slice(),n=this._group._map,r=n.getBoundsZoom(this._bounds),i=this._zoom+1,o=n.getZoom();t.length>0&&r>i;){i++;var a=[];for(e=0;e<t.length;e++)a=a.concat(t[e]._childClusters);t=a}r>i?this._group._map.setView(this._latlng,i):o>=r?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,n,r,i=this._markers,o=this._childClusters,a=0,s=0,l=this._childCount;if(0!==l){for(this._resetBounds(),e=0;e<i.length;e++)n=i[e]._latlng,this._bounds.extend(n),a+=n.lat,s+=n.lng;for(e=0;e<o.length;e++)t=o[e],t._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),n=t._wLatLng,r=t._childCount,a+=n.lat*r,s+=n.lng*r;this._latlng=this._wLatLng=new L.LatLng(a/l,s/l),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,n){this._recursively(e,0,n-1,function(e){var n,r,i=e._markers;for(n=i.length-1;n>=0;n--)r=i[n],r._icon&&(r._setPos(t),r.clusterHide())},function(e){var n,r,i=e._childClusters;for(n=i.length-1;n>=0;n--)r=i[n],r._icon&&(r._setPos(t),r.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,n){this._recursively(e,n,0,function(r){r._recursivelyAnimateChildrenIn(e,r._group._map.latLngToLayerPoint(r.getLatLng()).round(),t),r._isSingleParent()&&t-1===n?(r.clusterShow(),r._recursivelyRemoveChildrenFromMap(e,t)):r.clusterHide(),r._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,0,t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(e,t,n){this._recursively(n,-1,t,function(r){if(t!==r._zoom)for(var i=r._markers.length-1;i>=0;i--){var o=r._markers[i];n.contains(o._latlng)&&(e&&(o._backupLatlng=o.getLatLng(),o.setLatLng(e),o.clusterHide&&o.clusterHide()),r._group._featureGroup.addLayer(o))}},function(t){t._addToMap(e)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var n=this._markers[t];n._backupLatlng&&(n.setLatLng(n._backupLatlng),delete n._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._restorePosition();else for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,n){var r,i;this._recursively(e,-1,t-1,function(e){for(i=e._markers.length-1;i>=0;i--)r=e._markers[i],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())},function(e){for(i=e._childClusters.length-1;i>=0;i--)r=e._childClusters[i],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())})},_recursively:function(e,t,n,r,i){var o,a,s=this._childClusters,l=this._zoom;if(t>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,r,i);else if(r&&r(this),i&&this._zoom===n&&i(this),n>l)for(o=s.length-1;o>=0;o--)a=s[o],e.intersects(a._bounds)&&a._recursively(e,t,n,r,i)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}}),L.Marker.include({clusterHide:function(){return this.options.opacityWhenUnclustered=this.options.opacity||1,this.setOpacity(0)},clusterShow:function(){var e=this.setOpacity(this.options.opacity||this.options.opacityWhenUnclustered);return delete this.options.opacityWhenUnclustered,e}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var n=this._getCoord(t.x),r=this._getCoord(t.y),i=this._grid,o=i[r]=i[r]||{},a=o[n]=o[n]||[],s=L.Util.stamp(e);this._objectPoint[s]=t,a.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var n,r,i=this._getCoord(t.x),o=this._getCoord(t.y),a=this._grid,s=a[o]=a[o]||{},l=s[i]=s[i]||[];for(delete this._objectPoint[L.Util.stamp(e)],n=0,r=l.length;r>n;n++)if(l[n]===e)return l.splice(n,1),1===r&&delete s[i],!0},eachObject:function(e,t){var n,r,i,o,a,s,l=this._grid;for(n in l){a=l[n];for(r in a)for(s=a[r],i=0,o=s.length;o>i;i++)e.call(t,s[i])&&(i--,o--)}},getNearObject:function(e){var t,n,r,i,o,a,s,l,u=this._getCoord(e.x),c=this._getCoord(e.y),d=this._objectPoint,h=this._sqCellSize,f=null;for(t=c-1;c+1>=t;t++)if(i=this._grid[t])for(n=u-1;u+1>=n;n++)if(o=i[n])for(r=0,a=o.length;a>r;r++)s=o[r],l=this._sqDist(d[L.Util.stamp(s)],e),h>l&&(h=l,f=s);return f},_getCoord:function(e){return Math.floor(e/this._cellSize)},_sqDist:function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r}},function(){L.QuickHull={getDistant:function(e,t){var n=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+n*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var n,r,i,o=0,a=null,s=[];for(n=t.length-1;n>=0;n--)r=t[n],(i=this.getDistant(r,e))>0&&(s.push(r),i>o&&(o=i,a=r));return{maxPoint:a,newPoints:s}},buildConvexHull:function(e,t){var n=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?(n=n.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints)),n=n.concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints))):[e[0]]},getConvexHull:function(e){var t,n=!1,r=!1,i=!1,o=!1,a=null,s=null,l=null,u=null,c=null,d=null;for(t=e.length-1;t>=0;t--){var h=e[t];(!1===n||h.lat>n)&&(a=h,n=h.lat),(!1===r||h.lat<r)&&(s=h,r=h.lat),(!1===i||h.lng>i)&&(l=h,i=h.lng),(!1===o||h.lng<o)&&(u=h,
-o=h.lng)}return r!==n?(d=s,c=a):(d=u,c=l),[].concat(this.buildConvexHull([d,c],e),this.buildConvexHull([c,d],e))}}}(),L.MarkerCluster.include({getConvexHull:function(){var e,t,n=this.getAllChildMarkers(),r=[];for(t=n.length-1;t>=0;t--)e=n[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:Math.PI/6,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(),n=this._group,r=n._map,i=r.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,i):(i.y+=10,e=this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var n,r,i=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e),o=i/this._2PI,a=this._2PI/e,s=[];for(s.length=e,n=e-1;n>=0;n--)r=this._circleStartAngle+n*a,s[n]=new L.Point(t.x+o*Math.cos(r),t.y+o*Math.sin(r))._round();return s},_generatePointsSpiral:function(e,t){var n,r=this._group.options.spiderfyDistanceMultiplier,i=r*this._spiralLengthStart,o=r*this._spiralFootSeparation,a=r*this._spiralLengthFactor*this._2PI,s=0,l=[];for(l.length=e,n=e-1;n>=0;n--)s+=o/i+5e-4*n,l[n]=new L.Point(t.x+i*Math.cos(s),t.y+i*Math.sin(s))._round(),i+=a/s;return l},_noanimationUnspiderfy:function(){var e,t,n=this._group,r=n._map,i=n._featureGroup,o=this.getAllChildMarkers();for(this.setOpacity(1),t=o.length-1;t>=0;t--)e=o[t],i.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);n.fire("unspiderfied",{cluster:this,markers:o}),n._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var n,r,i,o,a=this._group,s=a._map,l=a._featureGroup,u=this._group.options.spiderLegPolylineOptions;for(n=0;n<e.length;n++)o=s.layerPointToLatLng(t[n]),r=e[n],i=new L.Polyline([this._latlng,o],u),s.addLayer(i),r._spiderLeg=i,r._preSpiderfyLatlng=r._latlng,r.setLatLng(o),r.setZIndexOffset&&r.setZIndexOffset(1e6),l.addLayer(r);this.setOpacity(.3),a.fire("spiderfied",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var r,i,o,a,s,l,u=this,c=this._group,d=c._map,h=c._featureGroup,f=this._latlng,p=d.latLngToLayerPoint(f),m=L.Path.SVG,g=L.extend({},this._group.options.spiderLegPolylineOptions),v=g.opacity;for(v===n&&(v=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),m?(g.opacity=0,g.className=(g.className||"")+" leaflet-cluster-spider-leg"):g.opacity=v,r=0;r<e.length;r++)i=e[r],l=d.layerPointToLatLng(t[r]),o=new L.Polyline([f,l],g),d.addLayer(o),i._spiderLeg=o,m&&(a=o._path,s=a.getTotalLength()+.1,a.style.strokeDasharray=s,a.style.strokeDashoffset=s),i.setZIndexOffset&&i.setZIndexOffset(1e6),i.clusterHide&&i.clusterHide(),h.addLayer(i),i._setPos&&i._setPos(p);for(c._forceLayout(),c._animationStart(),r=e.length-1;r>=0;r--)l=d.layerPointToLatLng(t[r]),i=e[r],i._preSpiderfyLatlng=i._latlng,i.setLatLng(l),i.clusterShow&&i.clusterShow(),m&&(o=i._spiderLeg,a=o._path,a.style.strokeDashoffset=0,o.setStyle({opacity:v}));this.setOpacity(.3),setTimeout(function(){c._animationEnd(),c.fire("spiderfied",{cluster:u,markers:e})},200)},_animationUnspiderfy:function(e){var t,n,r,i,o,a,s=this,l=this._group,u=l._map,c=l._featureGroup,d=e?u._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):u.latLngToLayerPoint(this._latlng),h=this.getAllChildMarkers(),f=L.Path.SVG;for(l._animationStart(),this.setOpacity(1),n=h.length-1;n>=0;n--)t=h[n],t._preSpiderfyLatlng&&(t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,a=!0,t._setPos&&(t._setPos(d),a=!1),t.clusterHide&&(t.clusterHide(),a=!1),a&&c.removeLayer(t),f&&(r=t._spiderLeg,i=r._path,o=i.getTotalLength()+.1,i.style.strokeDashoffset=o,r.setStyle({opacity:0})));setTimeout(function(){var e=0;for(n=h.length-1;n>=0;n--)t=h[n],t._spiderLeg&&e++;for(n=h.length-1;n>=0;n--)t=h[n],t._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&c.removeLayer(t),u.removeLayer(t._spiderLeg),delete t._spiderLeg);l._animationEnd(),l.fire("unspiderfied",{cluster:s,markers:h})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,n;for(t in e)for(n=e[t].__parent;n;)n._iconNeedsUpdate=!0,n=n.__parent},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_refreshSingleMarkerModeMarkers:function(e){var t,n;for(t in e)n=e[t],this.hasLayer(n)&&n.setIcon(this._overrideMarkerIcon(n))}}),L.Marker.include({refreshIconOptions:function(e,t){var n=this.options.icon;return L.setOptions(n,e),this.setIcon(n),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}})}(window,document),function(e,t){"function"==typeof define&&define.amd?define(["leaflet"],t):t("object"==typeof module&&module.exports?require("leaflet"):e.L)}(this,function(e){e.FeatureGroup.SubGroup=e.FeatureGroup.extend({statics:{version:"0.1.2"},initialize:function(t,n){e.FeatureGroup.prototype.initialize.call(this,n),this.setParentGroup(t)},setParentGroup:function(t){var n=t instanceof e.LayerGroup;return this._parentGroup=t,this.onAdd=n?"function"==typeof t.addLayers?this._onAddToGroupBatch:this._onAddToGroup:this._onAddToMap,this.onRemove=n?"function"==typeof t.removeLayers?this._onRemoveFromGroupBatch:this._onRemoveFromGroup:this._onRemoveFromMap,this.addLayer=n?this._addLayerToGroup:this._addLayerToMap,this.removeLayer=n?this._removeLayerFromGroup:this._removeLayerFromMap,this},setParentGroupSafe:function(e){var t=this._map;return t&&t.removeLayer(this),this.setParentGroup(e),t&&t.addLayer(this),this},getParentGroup:function(){return this._parentGroup},_onAddToGroupBatch:function(e){var t=this.getLayers();this._map=e,this._parentGroup.addLayers(t)},_onRemoveFromGroupBatch:function(){var e=this.getLayers();this._parentGroup.removeLayers(e),this._map=null},_onAddToGroup:function(e){var t=this._parentGroup;this._map=e,this.eachLayer(t.addLayer,t)},_onRemoveFromGroup:function(){var e=this._parentGroup;this.eachLayer(e.removeLayer,e),this._map=null},_onAddToMap:e.FeatureGroup.prototype.onAdd,_onRemoveFromMap:e.FeatureGroup.prototype.onRemove,_addLayerToGroup:function(t){if(this.hasLayer(t))return this;t.on&&t.on(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=this.getLayerId(t);return this._layers[n]=t,this._map&&this._parentGroup.addLayer(t),this._popupContent&&t.bindPopup&&t.bindPopup(this._popupContent,this._popupOptions),this.fire("layeradd",{layer:t})},_removeLayerFromGroup:function(t){if(!this.hasLayer(t))return this;t in this._layers&&(t=this._layers[t]),t.off&&t.off(e.FeatureGroup.EVENTS,this._propagateEvent,this);var n=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[n]&&this._parentGroup.removeLayer(n),delete this._layers[n],this._popupContent&&this.invoke("unbindPopup"),this.fire("layerremove",{layer:t})},_addLayerToMap:e.FeatureGroup.prototype.addLayer,_removeLayerFromMap:e.FeatureGroup.prototype.removeLayer}),e.featureGroup.subGroup=function(t,n){return new e.FeatureGroup.SubGroup(t,n)}});
\ No newline at end of file
diff --git a/assets/www/index.html b/assets/www/index.html
index 122e19e719ddff48f96c94683649f685d759b26b..8984c12806fb883a42ee6460c3c2e0012bcedb4b 100644
--- a/assets/www/index.html
+++ b/assets/www/index.html
@@ -13,7 +13,7 @@
     <link rel="apple-touch-icon" href="img/logo_57px.png">
 
     <link rel="manifest" href="manifest.json">
-    <link rel="stylesheet" href="dist_css/cesium-136da7166b.css">
+    <link rel="stylesheet" href="dist_css/cesium-5af6568327.css">
 
     
 
@@ -26,13 +26,13 @@
       </div>
     </ion-nav-view>
 
-    <script src="dist_js/vendor-5fc0296825.js"></script>
+    <script src="dist_js/vendor-4db1ac7d45.js"></script>
 
     <!--removeIf(no-device)-->
     <script src="cordova.js"></script>
     <!--endRemoveIf(no-device)-->
 
-    <script src="dist_js/cesium-33384bdb49.js"></script>
+    <script src="dist_js/cesium-c52c7fd0a4.js"></script>
 
     <script src="config.js"></script>
   </body>
diff --git a/assets/www/manifest.json b/assets/www/manifest.json
index b0fb053001d64a1751db8c74a33cb7e5f4a6dc0d..f61122049ebe5c2fdf2117c76e8b31990d438693 100644
--- a/assets/www/manifest.json
+++ b/assets/www/manifest.json
@@ -2,7 +2,7 @@
   "short_name": "Cesium",
   "name": "Cesium",
   "manifest_version": 1,
-  "version": "1.4.18",
+  "version": "1.4.19",
   "default_locale": "fr",
   "description": "Manage your Duniter Wallet on a libre currency, like Äž1",
   "icons": [
diff --git a/res/xml/config.xml b/res/xml/config.xml
index fddf2fa2dd4b6df87c557a6fbb4a0c60ec010b63..eb86e5ae80e9205a5a0d4c8cf5cb8e1a83f6c4cc 100644
--- a/res/xml/config.xml
+++ b/res/xml/config.xml
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<widget android-versionCode="104018" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.4.18" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+<widget android-versionCode="104019" id="fr.duniter.cesium" ios-CFBundleIdentifier="org.duniter.cesium" version="1.4.19" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
     <feature name="Clipboard">
         <param name="android-package" value="com.verso.cordova.clipboard.Clipboard" />
     </feature>