diff --git a/chrome-extension/css/etherwallet-master.css b/chrome-extension/css/etherwallet-master.css
index 7e2c4c8e26..393c7542fd 100644
--- a/chrome-extension/css/etherwallet-master.css
+++ b/chrome-extension/css/etherwallet-master.css
@@ -4319,6 +4319,24 @@ input[type="password"] + .eye:before {
.input-group-addon {
cursor: pointer;
}
+article + .no-items {
+ display: none;
+}
+.no-items {
+ margin-top: 2em;
+ animation: fadein 1.5s;
+}
+@keyframes fadein {
+ 0% {
+ opacity: 0;
+ }
+ 70% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
#etherWalletPopUp {
padding: 25px 8px 10px;
width: 355px;
diff --git a/chrome-extension/css/etherwallet-master.min.css b/chrome-extension/css/etherwallet-master.min.css
index 7ffa716e82..c8d552f458 100644
--- a/chrome-extension/css/etherwallet-master.min.css
+++ b/chrome-extension/css/etherwallet-master.min.css
@@ -1,3 +1,3 @@
@font-face{font-family:Lato;src:url(../fonts/Lato-Light.eot);src:url(../fonts/Lato-Light.eot?#iefix) format('embedded-opentype'),url(../fonts/Lato-Light.woff) format('woff'),url(../fonts/Lato-Light.ttf) format('truetype'),url(../fonts/Lato-Light.svg#a629611727a36c86101ab9fa7aceda04) format('svg');font-style:normal;font-weight:300}@font-face{font-family:Lato;src:url(../fonts/Lato-Regular.eot);src:url(../fonts/Lato-Regular.eot?#iefix) format('embedded-opentype'),url(../fonts/Lato-Regular.woff) format('woff'),url(../fonts/Lato-Regular.ttf) format('truetype'),url(../fonts/Lato-Regular.svg#f53cbacd8b0fdfdba3b5d3fcc369dc1c) format('svg');font-style:normal;font-weight:400}@font-face{font-family:Lato;src:url(../fonts/Lato-Bold.eot);src:url(../fonts/Lato-Bold.eot?#iefix) format('embedded-opentype'),url(../fonts/Lato-Bold.woff) format('woff'),url(../fonts/Lato-Bold.ttf) format('truetype'),url(../fonts/Lato-Bold.svg#27d695091e6c815cf171653bd8e07de1) format('svg');font-style:normal;font-weight:700}
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
-/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}.print-text{color:#1a81a2!important}footer{border-top:1px solid #000}header{border-bottom:1px solid #000}}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Lato,sans-serif;font-size:15px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#21a4ce;text-decoration:none}a:focus,a:hover{color:#166f8c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:2px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ececec}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:700;line-height:1.2;color:inherit;letter-spacing:.02em}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:inherit}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}h2{margin-top:10.5px}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:39px}.h1,.h2,h1,h2{font-weight:300}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h3,.h4,h3,h4{font-weight:700}.h4,.h5,h4,h5{font-size:19px}.h5,.h6,h5,h6{font-weight:400}.h6,h6{font-size:15px}p{margin:0 0 10.5px;font-weight:300}p.strong,p .strong,p strong{font-weight:400}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}a{cursor:pointer}.small,small{font-size:86%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#9a9a9a}.text-primary{color:#21a4ce}a.text-primary:focus,a.text-primary:hover{color:#1d92b8}.text-success{color:#449d44}a.text-success:focus,a.text-success:hover{color:#3d8b3d}.text-info{color:#172333}a.text-info:focus,a.text-info:hover{color:#0f1721}.text-warning{color:#ec971f}a.text-warning:focus,a.text-warning:hover{color:#df8a13}.text-danger{color:#c9302c}a.text-danger:focus,a.text-danger:hover{color:#b52b27}.text-underline{text-decoration:underline}.text-light{font-weight:200}.bg-primary{color:#fff;background-color:#21a4ce}a.bg-primary:focus,a.bg-primary:hover{background-color:#1a81a2}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ececec}ol,ul{margin-top:1em;margin-bottom:1.2em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{margin-bottom:.5em;font-weight:300}li strong{font-weight:400}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #9a9a9a}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ececec}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#9a9a9a}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ececec;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4}code,kbd{padding:2px 4px;font-size:90%;border-radius:2px}kbd{color:#fff;background-color:#333;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:25px;padding-right:25px}@media (min-width:768px){.container{width:770px}}@media (min-width:992px){.container{width:990px}}@media (min-width:1200px){.container{width:1190px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:25px;padding-right:25px}.row{margin-left:-25px;margin-right:-25px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:25px;padding-right:25px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent;margin-bottom:10px;border-bottom:1px solid #ddd}caption{padding-top:8px;padding-bottom:8px;color:#9a9a9a}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}label small{font-weight:300;font-size:1em}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:15px;line-height:1.42857143;color:#555}.form-control{width:100%;height:35px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#ababab;opacity:1}.form-control:-ms-input-placeholder{color:#ababab}.form-control::-webkit-input-placeholder{color:#ababab}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#efefef;opacity:1;cursor:text!important}.form-control[disabled],fieldset[disabled] .form-control{cursor:default}textarea.form-control{height:auto}input[readonly]{background-color:#efefef;cursor:text!important}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:35px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:31px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:48px}}.form-group{margin-bottom:.5em;display:block}.checkbox,.radio{position:relative;display:block;margin:15px 0}.checkbox label,.radio label{min-height:21px;padding-left:20px;padding-right:15px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}input[type=radio]{margin-right:5px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:default}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}select.input-sm{height:31px;line-height:31px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}select.input-lg{height:48px;line-height:48px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}.form-group-lg select.form-control{height:48px;line-height:48px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:48px;min-height:40px;padding:11px 16px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:43.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:1;display:block;width:35px;height:35px;line-height:35px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:48px;height:48px;line-height:48px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#449d44}.has-success .form-control{border-color:#449d44;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#357935;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #80c780}.has-success .input-group-addon{color:#449d44;border-color:#449d44;background-color:#dff0d8}.has-success .form-control-feedback{color:#449d44}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#ec971f}.has-warning .form-control{border-color:#ec971f;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#c77c11;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f4c37d}.has-warning .input-group-addon{color:#ec971f;border-color:#ec971f;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#ec971f}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#c9302c}.has-error .form-control{border-color:#c9302c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#a02622;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #e27c79}.has-error .input-group-addon{color:#c9302c;border-color:#c9302c;background-color:#f2dede}.has-error .form-control-feedback{color:#c9302c}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:28px}.form-horizontal .form-group{margin-left:-25px;margin-right:-25px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:25px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;letter-spacing:.05em;border-bottom-width:3px;box-shadow:inset 3px 3px 3px hsla(0,0%,78%,.2);padding:6px 12px;font-size:15px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none;border-bottom-color:transparent;box-shadow:inset 3px 3px 3px hsla(0,0%,78%,.1)}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:default;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#21a4ce;border-color:#1d92b8}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#1a81a2;border-color:#0c3b4a}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#1a81a2;border-color:#156883}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#156883;border-color:#0c3b4a}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#21a4ce;border-color:#1d92b8}.btn-primary .badge{color:#21a4ce;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#263c56;border-color:#1e3045}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#172333;border-color:#000}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#172333;border-color:#0c121a}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#0c121a;border-color:#000}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#263c56;border-color:#1e3045}.btn-info .badge{color:#263c56;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-group .btn-default{border-bottom-width:1px}.btn-group .btn-default.active{border:1px solid #21a4ce;color:#21a4ce;background:#f5f5f5}.btn-link{color:#21a4ce;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#166f8c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#9a9a9a;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;background:red;cursor:inherit;display:block}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;margin-bottom:5px}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:1;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:48px;line-height:48px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#ececec;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:2px}.input-group-addon.input-lg{padding:10px 16px;font-size:19px;border-radius:2px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:1}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:1;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}ul.nav{margin-top:0}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#fff}.nav>li.disabled>a{color:#9a9a9a}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#9a9a9a;text-decoration:none;background-color:transparent;cursor:default}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#fff;border-color:#21a4ce}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{padding-top:5px;margin:0 -15px;border-bottom:2px solid #ececec}.nav-tabs>li{float:left;margin-bottom:-2px}.nav-tabs>li>a{line-height:1.42857143;border-radius:0;color:#166f8c}.nav-tabs>li>a:after{content:"";background:#21a4ce;height:2px;position:absolute;width:100%;left:0;bottom:-2px;transition:all .25s ease 0s;transform:scale(0)}.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#21a4ce;transition:all .25s ease 0s}.nav-tabs>li>a:focus:after,.nav-tabs>li>a:hover:after{transform:scale(1)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#21a4ce;cursor:default;border-bottom:2px solid #21a4ce}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ececec}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ececec;border-radius:2px 2px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#ececec}}@media screen and (max-width:888px){.nav-tabs>li{display:block;float:left;text-align:center;width:50%;padding:0 15px;font-size:14px;height:40px}.nav-tabs>li>a{border-bottom:1px solid #ececec;padding:19px 0;line-height:0}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#21a4ce}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ececec}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ececec;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#ececec}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.alert{padding:10px;margin-bottom:21px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:30px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#449d44}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#357935}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#172333}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#070b10}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#ec971f}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#c77c11}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#c9302c}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#a02622}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well h1:first-child,.well h2:first-child,.well h3:first-child,.well h4:first-child{margin-top:0}.well-lg{padding:24px;border-radius:2px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transform:translateY(-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:2px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:800px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}body,html{height:100%}.container{width:100%;max-width:1300px;padding:0 5%}img{max-width:100%}textarea{resize:vertical}@media screen and (max-width:768px){header{text-align:center}}header p{float:right;font-size:18px;font-weight:200;margin-top:23px}@media screen and (max-width:768px){header p{float:none;text-align:center}}header img{float:left}@media screen and (max-width:768px){header img{float:none}}footer{background-color:#263c56;color:#fff;margin-top:100px}footer p{margin:10px 0}footer a{color:#74c4de}footer a:focus,footer a:hover{color:#5fbbd9}.announcement{padding:5px 10px;text-align:center;font-weight:300;color:#fff;display:block;background-color:#21a4ce}.announcement a{text-decoration:underline;color:#fff}.announcement:focus,.announcement:hover{color:#f2f2f2;text-decoration:none;background-color:#1d92b8}.announcement strong{font-weight:400}.annoucement-warning{background-color:#d9534f}.annoucement-warning:focus,.annoucement-warning:hover{background-color:#d43f3a}.annoucement-danger{background-color:#d9534f}.annoucement-danger a:focus,.annoucement-danger a:hover{color:#f2f2f2}.address-identicon-container{padding-left:0;padding-top:10px;text-align:right}@media screen and (max-width:768px){.address-identicon-container{padding-left:0;padding-top:0}}#addressIdenticon{width:64px;height:64px;background-size:cover;background-repeat:no-repeat;border-radius:50%;box-shadow:inset 0 2px 2px hsla(0,0%,100%,.5),inset 0 -1px 8px rgba(0,0,0,.6)}#addressIdenticon.med{width:40px;height:40px}#addressIdenticon.small{width:24px;height:24px}.address-identicon-container.small{display:inline}.address-identicon-container.small #addressIdenticon{width:32px;height:32px;box-shadow:inset 0 2px 2px hsla(0,0%,100%,.5),inset 0 -1px 5px rgba(0,0,0,.6);display:inline-block;vertical-align:middle}.wrap{word-wrap:break-word}.bigger-on-mobile.form-control[readonly]{height:120px}#paneHelp h3{margin-top:2em}.account-help-icon{position:relative;display:inline-block}.account-help-text{background:#fff;border-radius:3px;border:1px solid #cdcdcd;box-shadow:0 0 5px hsla(0,0%,39%,.2);display:none;font-size:14px;font-weight:400;left:30px;padding:5px;position:absolute;top:-5px;width:280px;z-index:2}.account-help-icon:hover .account-help-text{display:block}@media screen and (max-width:767px){.account-help-icon{width:100%}.account-help-icon svg{float:left;margin-right:5px;margin-top:7px}.account-help-icon .account-help-text{display:block;position:static;width:100%;border:none;box-shadow:0 0 0 #fff;padding:5px 0 0 30px;font-weight:300}.form-group{margin:15px 0}}.collapseButton{cursor:pointer;width:15px;margin:0 0 0 -21px;display:inline-block;padding:0 5px}.collapseContainer{margin-top:15px;margin-bottom:15px}.collapseContainer h4{font-size:20px;margin-top:1.5em;margin-bottom:.5em}#accountAddress,#accountAddressMainTbl-1,#accountBalance,#accountBalanceBtc,#accountBalanceEur,#accountBalancePopMB-0,#accountBalancePopMB-2,#accountBalanceUsd,.form-control,.mono{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-weight:400;letter-spacing:.02em}.offline-qrcode{margin-top:-150px;max-width:300px}@media screen and (max-width:942px){.offline-qrcode{margin-top:-78px}}@media screen and (max-width:769px){.offline-qrcode{margin-top:0}}.item .label,.item .output,.item label{display:block}.item .label em,.item .output em,.item label em{color:#9a9a9a}.item .check{font-weight:300}.item .output{font-weight:400;margin:5px 0}.boolean-yes:before{background:url(../images/icon-check.svg)}.boolean-no:before,.boolean-yes:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle}.boolean-no:before{background:url(../images/icon-x.svg)}input[type=text]+.eye{cursor:pointer}input[type=text]+.eye:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle;background:url(../images/icon-eye.svg)}input[type=password]+.eye{cursor:pointer}input[type=password]+.eye:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle;background:url(../images/icon-eye-closed.svg)}.read-function{padding:5px 10px;background-color:#ececec}.read-function .output{margin-left:5px}.write-function{margin-top:15px;width:100%}.word-wrap{word-wrap:break-word}.form-control.valid:not(.ng-pristine){border:1px solid #5cb85c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(92,184,92,.6)}.form-control.invalid:not(.ng-pristine){border:1px solid #d9534f;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(217,83,79,.6)}.proposal-container{border-left:1px solid #fff}.proposal-container .proposal-item:nth-child(odd){background-color:#f5f5f5}.proposal-filter-container{display:block}.proposal-filter{width:50%;float:left;color:#fff;padding:10px 20px;text-align:center;border:1px solid #fff;border-bottom:0;background:#1b84a6;white-space:nowrap;margin-bottom:10px}.proposal-filter:focus,.proposal-filter:hover{color:#fff;text-decoration:none;background:#21a4ce}.proposal-filter.active{background:#21a4ce}.proposal-top{cursor:pointer}.proposal-item{padding:0 0 12px}.proposal-item h4{margin:0 0 4px;font-size:18px}.proposal-item p{margin:0 0 5px;font-size:14px}.proposal-item .description-html{font-size:16px;font-weight:500;padding:1em 0;border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-top:1em;margin-bottom:1em}.proposal-item .description-html p{font-size:16px}.proposal-item .description-html ul{margin:.5em 0}.proposal-item .description-html li{margin-bottom:0}.proposal-expanded tr:first-child td{border-top:0}.proposal-expanded table{margin:0 -8px}.proposal-expanded .form-group{padding:10px 0 0;margin:0 0 10px}.proposalOutput{vertical-align:middle}.proposalOutput .label{font-weight:300;padding-right:15px}.proposalOutput em{color:#9a9a9a}.proposalOutput tr:first-child td{border-top:0}.graph-container{position:relative;padding:0 0 21px}.graph-needed{background:#9a9a9a}.graph-needed,.graph-yes{position:absolute;left:0;height:5px}.graph-yes{background:#21a4ce}.graph-no{left:0;background:#d9534f}.graph-no,.graph-unfilled{position:absolute;height:5px}.graph-unfilled{right:0;width:100%;background:#ececec}.votes-yes:before{background-color:#21a4ce}.votes-no:before,.votes-yes:before{content:"";margin-right:5px;width:12px;height:12px;display:inline-block}.votes-no:before{background-color:#d9534f}.votes-needed:before{content:"";margin-right:5px;width:12px;height:12px;display:inline-block;background-color:#9a9a9a}.table-borderless td{border:0!important}.graph-bigger .graph-needed,.graph-bigger .graph-no,.graph-bigger .graph-unfilled,.graph-bigger .graph-yes{height:10px}.input-group-addon{cursor:pointer}#etherWalletPopUp{padding:25px 8px 10px;width:355px;position:relative}#etherWalletPopUp .back-icon{position:absolute;left:5px;top:5px}#etherWalletPopUp .back-icon:active,#etherWalletPopUp .back-icon:focus,#etherWalletPopUp .back-icon:hover{outline:0}.quicksend-address{font-family:Menlo,Monaco,Consolas,Courier New,monospace;max-width:170px;word-wrap:break-word;font-size:12px;font-weight:300;display:block}.text-navy{color:#263c56}.text-gray-lighter{color:#ececec}.text-blue{color:#21a4ce}.text-white{color:#fff}.bg-navy{background:#263c56}.bg-gradient{background:#122528;background:linear-gradient(135deg,#122528,#2e4868 26%,#2e4868 28%,#21a4ce 65%,#1ab29e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#122528',endColorstr='#1ab29e',GradientType=1)}.bg-gray-lighter{background-color:#ececec}.bg-blue{background-color:#21a4ce}.bg-white{background-color:#fff}.text-serif{font-family:Georgia,Times New Roman,Times,serif}.text-sans-serif{font-family:Lato,sans-serif}.pad-v-sm{padding-top:.5em;padding-bottom:.5em}.pad-v-md{padding-top:1em;padding-bottom:1em}.pad-v-lg{padding-top:1.5em;padding-bottom:1.5em}.pad-v-xl{padding-top:2em;padding-bottom:2em}.marg-v-sm{margin-top:.5em;margin-bottom:.5em}.marg-v-md{margin-top:1em;margin-bottom:1em}.marg-v-lg{margin-top:1.5em;margin-bottom:1.5em}.marg-v-xl{margin-top:2em;margin-bottom:2em}.img-fill{width:100%;height:auto;max-width:100%}.print-container{width:680px;height:280px;border:1px solid gray;margin-bottom:50px;position:relative}.print-title{float:left}.print-text{color:#1a81a2;text-transform:uppercase;letter-spacing:.05em;transform:rotate(-90deg);position:absolute;right:0;bottom:0;font-size:13px;font-weight:600}.print-qr-code-1{width:28%;float:left;position:relative;padding:20px}.print-qr-code-1 .print-text{right:-35px;bottom:69px}.print-qr-code-2{width:28%;float:left;position:relative;padding:20px}.print-qr-code-2 .print-text{right:-45px;bottom:69px}.print-notes{width:28%;float:left;position:relative;padding:20px}.print-notes .print-text{right:-45px;bottom:69px}.print-address-container{float:left;width:85%;padding:0 25px}.print-address-container p{font-size:14px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.ether-logo-1{position:absolute;left:100px}.ether-logo-2{position:absolute;right:32px;bottom:64px}
\ No newline at end of file
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}.print-text{color:#1a81a2!important}footer{border-top:1px solid #000}header{border-bottom:1px solid #000}}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Lato,sans-serif;font-size:15px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#21a4ce;text-decoration:none}a:focus,a:hover{color:#166f8c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:2px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:2px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ececec}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:700;line-height:1.2;color:inherit;letter-spacing:.02em}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:inherit}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}h2{margin-top:10.5px}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:39px}.h1,.h2,h1,h2{font-weight:300}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h3,.h4,h3,h4{font-weight:700}.h4,.h5,h4,h5{font-size:19px}.h5,.h6,h5,h6{font-weight:400}.h6,h6{font-size:15px}p{margin:0 0 10.5px;font-weight:300}p.strong,p .strong,p strong{font-weight:400}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}a{cursor:pointer}.small,small{font-size:86%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#9a9a9a}.text-primary{color:#21a4ce}a.text-primary:focus,a.text-primary:hover{color:#1d92b8}.text-success{color:#449d44}a.text-success:focus,a.text-success:hover{color:#3d8b3d}.text-info{color:#172333}a.text-info:focus,a.text-info:hover{color:#0f1721}.text-warning{color:#ec971f}a.text-warning:focus,a.text-warning:hover{color:#df8a13}.text-danger{color:#c9302c}a.text-danger:focus,a.text-danger:hover{color:#b52b27}.text-underline{text-decoration:underline}.text-light{font-weight:200}.bg-primary{color:#fff;background-color:#21a4ce}a.bg-primary:focus,a.bg-primary:hover{background-color:#1a81a2}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ececec}ol,ul{margin-top:1em;margin-bottom:1.2em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{margin-bottom:.5em;font-weight:300}li strong{font-weight:400}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #9a9a9a}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ececec}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#9a9a9a}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ececec;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4}code,kbd{padding:2px 4px;font-size:90%;border-radius:2px}kbd{color:#fff;background-color:#333;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:25px;padding-right:25px}@media (min-width:768px){.container{width:770px}}@media (min-width:992px){.container{width:990px}}@media (min-width:1200px){.container{width:1190px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:25px;padding-right:25px}.row{margin-left:-25px;margin-right:-25px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:25px;padding-right:25px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent;margin-bottom:10px;border-bottom:1px solid #ddd}caption{padding-top:8px;padding-bottom:8px;color:#9a9a9a}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}label small{font-weight:300;font-size:1em}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:15px;line-height:1.42857143;color:#555}.form-control{width:100%;height:35px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#ababab;opacity:1}.form-control:-ms-input-placeholder{color:#ababab}.form-control::-webkit-input-placeholder{color:#ababab}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#efefef;opacity:1;cursor:text!important}.form-control[disabled],fieldset[disabled] .form-control{cursor:default}textarea.form-control{height:auto}input[readonly]{background-color:#efefef;cursor:text!important}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:35px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:31px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:48px}}.form-group{margin-bottom:.5em;display:block}.checkbox,.radio{position:relative;display:block;margin:15px 0}.checkbox label,.radio label{min-height:21px;padding-left:20px;padding-right:15px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}input[type=radio]{margin-right:5px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:default}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}select.input-sm{height:31px;line-height:31px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}select.input-lg{height:48px;line-height:48px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}.form-group-lg select.form-control{height:48px;line-height:48px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:48px;min-height:40px;padding:11px 16px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:43.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:1;display:block;width:35px;height:35px;line-height:35px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:48px;height:48px;line-height:48px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#449d44}.has-success .form-control{border-color:#449d44;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#357935;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #80c780}.has-success .input-group-addon{color:#449d44;border-color:#449d44;background-color:#dff0d8}.has-success .form-control-feedback{color:#449d44}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#ec971f}.has-warning .form-control{border-color:#ec971f;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#c77c11;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f4c37d}.has-warning .input-group-addon{color:#ec971f;border-color:#ec971f;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#ec971f}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#c9302c}.has-error .form-control{border-color:#c9302c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#a02622;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #e27c79}.has-error .input-group-addon{color:#c9302c;border-color:#c9302c;background-color:#f2dede}.has-error .form-control-feedback{color:#c9302c}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:28px}.form-horizontal .form-group{margin-left:-25px;margin-right:-25px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:25px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;letter-spacing:.05em;border-bottom-width:3px;box-shadow:inset 3px 3px 3px hsla(0,0%,78%,.2);padding:6px 12px;font-size:15px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none;border-bottom-color:transparent;box-shadow:inset 3px 3px 3px hsla(0,0%,78%,.1)}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:default;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#21a4ce;border-color:#1d92b8}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#1a81a2;border-color:#0c3b4a}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#1a81a2;border-color:#156883}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#156883;border-color:#0c3b4a}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#21a4ce;border-color:#1d92b8}.btn-primary .badge{color:#21a4ce;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#263c56;border-color:#1e3045}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#172333;border-color:#000}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#172333;border-color:#0c121a}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#0c121a;border-color:#000}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#263c56;border-color:#1e3045}.btn-info .badge{color:#263c56;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-group .btn-default{border-bottom-width:1px}.btn-group .btn-default.active{border:1px solid #21a4ce;color:#21a4ce;background:#f5f5f5}.btn-link{color:#21a4ce;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#166f8c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#9a9a9a;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-file{position:relative;overflow:hidden}.btn-file input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;filter:alpha(opacity=0);opacity:0;background:red;cursor:inherit;display:block}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;margin-bottom:5px}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:1;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:48px;padding:10px 16px;font-size:19px;line-height:1.3333333;border-radius:2px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:48px;line-height:48px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:15px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#ececec;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:2px}.input-group-addon.input-lg{padding:10px 16px;font-size:19px;border-radius:2px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:1}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:1;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}ul.nav{margin-top:0}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#fff}.nav>li.disabled>a{color:#9a9a9a}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#9a9a9a;text-decoration:none;background-color:transparent;cursor:default}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#fff;border-color:#21a4ce}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{padding-top:5px;margin:0 -15px;border-bottom:2px solid #ececec}.nav-tabs>li{float:left;margin-bottom:-2px}.nav-tabs>li>a{line-height:1.42857143;border-radius:0;color:#166f8c}.nav-tabs>li>a:after{content:"";background:#21a4ce;height:2px;position:absolute;width:100%;left:0;bottom:-2px;transition:all .25s ease 0s;transform:scale(0)}.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{color:#21a4ce;transition:all .25s ease 0s}.nav-tabs>li>a:focus:after,.nav-tabs>li>a:hover:after{transform:scale(1)}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#21a4ce;cursor:default;border-bottom:2px solid #21a4ce}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ececec}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ececec;border-radius:2px 2px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#ececec}}@media screen and (max-width:888px){.nav-tabs>li{display:block;float:left;text-align:center;width:50%;padding:0 15px;font-size:14px;height:40px}.nav-tabs>li>a{border-bottom:1px solid #ececec;padding:19px 0;line-height:0}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#21a4ce}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ececec}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ececec;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#ececec}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.alert{padding:10px;margin-bottom:21px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:30px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#449d44}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#357935}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#172333}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#070b10}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#ec971f}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#c77c11}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#c9302c}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#a02622}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well h1:first-child,.well h2:first-child,.well h3:first-child,.well h4:first-child{margin-top:0}.well-lg{padding:24px;border-radius:2px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{transform:translateY(-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:2px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:800px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}body,html{height:100%}.container{width:100%;max-width:1300px;padding:0 5%}img{max-width:100%}textarea{resize:vertical}@media screen and (max-width:768px){header{text-align:center}}header p{float:right;font-size:18px;font-weight:200;margin-top:23px}@media screen and (max-width:768px){header p{float:none;text-align:center}}header img{float:left}@media screen and (max-width:768px){header img{float:none}}footer{background-color:#263c56;color:#fff;margin-top:100px}footer p{margin:10px 0}footer a{color:#74c4de}footer a:focus,footer a:hover{color:#5fbbd9}.announcement{padding:5px 10px;text-align:center;font-weight:300;color:#fff;display:block;background-color:#21a4ce}.announcement a{text-decoration:underline;color:#fff}.announcement:focus,.announcement:hover{color:#f2f2f2;text-decoration:none;background-color:#1d92b8}.announcement strong{font-weight:400}.annoucement-warning{background-color:#d9534f}.annoucement-warning:focus,.annoucement-warning:hover{background-color:#d43f3a}.annoucement-danger{background-color:#d9534f}.annoucement-danger a:focus,.annoucement-danger a:hover{color:#f2f2f2}.address-identicon-container{padding-left:0;padding-top:10px;text-align:right}@media screen and (max-width:768px){.address-identicon-container{padding-left:0;padding-top:0}}#addressIdenticon{width:64px;height:64px;background-size:cover;background-repeat:no-repeat;border-radius:50%;box-shadow:inset 0 2px 2px hsla(0,0%,100%,.5),inset 0 -1px 8px rgba(0,0,0,.6)}#addressIdenticon.med{width:40px;height:40px}#addressIdenticon.small{width:24px;height:24px}.address-identicon-container.small{display:inline}.address-identicon-container.small #addressIdenticon{width:32px;height:32px;box-shadow:inset 0 2px 2px hsla(0,0%,100%,.5),inset 0 -1px 5px rgba(0,0,0,.6);display:inline-block;vertical-align:middle}.wrap{word-wrap:break-word}.bigger-on-mobile.form-control[readonly]{height:120px}#paneHelp h3{margin-top:2em}.account-help-icon{position:relative;display:inline-block}.account-help-text{background:#fff;border-radius:3px;border:1px solid #cdcdcd;box-shadow:0 0 5px hsla(0,0%,39%,.2);display:none;font-size:14px;font-weight:400;left:30px;padding:5px;position:absolute;top:-5px;width:280px;z-index:2}.account-help-icon:hover .account-help-text{display:block}@media screen and (max-width:767px){.account-help-icon{width:100%}.account-help-icon svg{float:left;margin-right:5px;margin-top:7px}.account-help-icon .account-help-text{display:block;position:static;width:100%;border:none;box-shadow:0 0 0 #fff;padding:5px 0 0 30px;font-weight:300}.form-group{margin:15px 0}}.collapseButton{cursor:pointer;width:15px;margin:0 0 0 -21px;display:inline-block;padding:0 5px}.collapseContainer{margin-top:15px;margin-bottom:15px}.collapseContainer h4{font-size:20px;margin-top:1.5em;margin-bottom:.5em}#accountAddress,#accountAddressMainTbl-1,#accountBalance,#accountBalanceBtc,#accountBalanceEur,#accountBalancePopMB-0,#accountBalancePopMB-2,#accountBalanceUsd,.form-control,.mono{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-weight:400;letter-spacing:.02em}.offline-qrcode{margin-top:-150px;max-width:300px}@media screen and (max-width:942px){.offline-qrcode{margin-top:-78px}}@media screen and (max-width:769px){.offline-qrcode{margin-top:0}}.item .label,.item .output,.item label{display:block}.item .label em,.item .output em,.item label em{color:#9a9a9a}.item .check{font-weight:300}.item .output{font-weight:400;margin:5px 0}.boolean-yes:before{background:url(../images/icon-check.svg)}.boolean-no:before,.boolean-yes:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle}.boolean-no:before{background:url(../images/icon-x.svg)}input[type=text]+.eye{cursor:pointer}input[type=text]+.eye:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle;background:url(../images/icon-eye.svg)}input[type=password]+.eye{cursor:pointer}input[type=password]+.eye:before{content:"";width:20px;height:20px;margin-left:6px;margin-right:6px;display:inline-block;vertical-align:middle;background:url(../images/icon-eye-closed.svg)}.read-function{padding:5px 10px;background-color:#ececec}.read-function .output{margin-left:5px}.write-function{margin-top:15px;width:100%}.word-wrap{word-wrap:break-word}.form-control.valid:not(.ng-pristine){border:1px solid #5cb85c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(92,184,92,.6)}.form-control.invalid:not(.ng-pristine){border:1px solid #d9534f;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(217,83,79,.6)}.proposal-container{border-left:1px solid #fff}.proposal-container .proposal-item:nth-child(odd){background-color:#f5f5f5}.proposal-filter-container{display:block}.proposal-filter{width:50%;float:left;color:#fff;padding:10px 20px;text-align:center;border:1px solid #fff;border-bottom:0;background:#1b84a6;white-space:nowrap;margin-bottom:10px}.proposal-filter:focus,.proposal-filter:hover{color:#fff;text-decoration:none;background:#21a4ce}.proposal-filter.active{background:#21a4ce}.proposal-top{cursor:pointer}.proposal-item{padding:0 0 12px}.proposal-item h4{margin:0 0 4px;font-size:18px}.proposal-item p{margin:0 0 5px;font-size:14px}.proposal-item .description-html{font-size:16px;font-weight:500;padding:1em 0;border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-top:1em;margin-bottom:1em}.proposal-item .description-html p{font-size:16px}.proposal-item .description-html ul{margin:.5em 0}.proposal-item .description-html li{margin-bottom:0}.proposal-expanded tr:first-child td{border-top:0}.proposal-expanded table{margin:0 -8px}.proposal-expanded .form-group{padding:10px 0 0;margin:0 0 10px}.proposalOutput{vertical-align:middle}.proposalOutput .label{font-weight:300;padding-right:15px}.proposalOutput em{color:#9a9a9a}.proposalOutput tr:first-child td{border-top:0}.graph-container{position:relative;padding:0 0 21px}.graph-needed{background:#9a9a9a}.graph-needed,.graph-yes{position:absolute;left:0;height:5px}.graph-yes{background:#21a4ce}.graph-no{left:0;background:#d9534f}.graph-no,.graph-unfilled{position:absolute;height:5px}.graph-unfilled{right:0;width:100%;background:#ececec}.votes-yes:before{background-color:#21a4ce}.votes-no:before,.votes-yes:before{content:"";margin-right:5px;width:12px;height:12px;display:inline-block}.votes-no:before{background-color:#d9534f}.votes-needed:before{content:"";margin-right:5px;width:12px;height:12px;display:inline-block;background-color:#9a9a9a}.table-borderless td{border:0!important}.graph-bigger .graph-needed,.graph-bigger .graph-no,.graph-bigger .graph-unfilled,.graph-bigger .graph-yes{height:10px}.input-group-addon{cursor:pointer}article+.no-items{display:none}.no-items{margin-top:2em;animation:a 1.5s}@keyframes a{0%{opacity:0}70%{opacity:0}to{opacity:1}}#etherWalletPopUp{padding:25px 8px 10px;width:355px;position:relative}#etherWalletPopUp .back-icon{position:absolute;left:5px;top:5px}#etherWalletPopUp .back-icon:active,#etherWalletPopUp .back-icon:focus,#etherWalletPopUp .back-icon:hover{outline:0}.quicksend-address{font-family:Menlo,Monaco,Consolas,Courier New,monospace;max-width:170px;word-wrap:break-word;font-size:12px;font-weight:300;display:block}.text-navy{color:#263c56}.text-gray-lighter{color:#ececec}.text-blue{color:#21a4ce}.text-white{color:#fff}.bg-navy{background:#263c56}.bg-gradient{background:#122528;background:linear-gradient(135deg,#122528,#2e4868 26%,#2e4868 28%,#21a4ce 65%,#1ab29e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#122528',endColorstr='#1ab29e',GradientType=1)}.bg-gray-lighter{background-color:#ececec}.bg-blue{background-color:#21a4ce}.bg-white{background-color:#fff}.text-serif{font-family:Georgia,Times New Roman,Times,serif}.text-sans-serif{font-family:Lato,sans-serif}.pad-v-sm{padding-top:.5em;padding-bottom:.5em}.pad-v-md{padding-top:1em;padding-bottom:1em}.pad-v-lg{padding-top:1.5em;padding-bottom:1.5em}.pad-v-xl{padding-top:2em;padding-bottom:2em}.marg-v-sm{margin-top:.5em;margin-bottom:.5em}.marg-v-md{margin-top:1em;margin-bottom:1em}.marg-v-lg{margin-top:1.5em;margin-bottom:1.5em}.marg-v-xl{margin-top:2em;margin-bottom:2em}.img-fill{width:100%;height:auto;max-width:100%}.print-container{width:680px;height:280px;border:1px solid gray;margin-bottom:50px;position:relative}.print-title{float:left}.print-text{color:#1a81a2;text-transform:uppercase;letter-spacing:.05em;transform:rotate(-90deg);position:absolute;right:0;bottom:0;font-size:13px;font-weight:600}.print-qr-code-1{width:28%;float:left;position:relative;padding:20px}.print-qr-code-1 .print-text{right:-35px;bottom:69px}.print-qr-code-2{width:28%;float:left;position:relative;padding:20px}.print-qr-code-2 .print-text{right:-45px;bottom:69px}.print-notes{width:28%;float:left;position:relative;padding:20px}.print-notes .print-text{right:-45px;bottom:69px}.print-address-container{float:left;width:85%;padding:0 25px}.print-address-container p{font-size:14px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.ether-logo-1{position:absolute;left:100px}.ether-logo-2{position:absolute;right:32px;bottom:64px}
\ No newline at end of file
diff --git a/chrome-extension/cx-wallet.html b/chrome-extension/cx-wallet.html
index d00fec3476..d4bd820df0 100644
--- a/chrome-extension/cx-wallet.html
+++ b/chrome-extension/cx-wallet.html
@@ -1075,7 +1075,8 @@
Show....
-
+
+
@@ -1126,7 +1127,7 @@
Split
({{ (objProposal.nay * 100) | number:2 }} DAO)
- Quroum:
+ Quorum:
{{ objProposal.quorumCurrent | number:2 }}% of {{ objProposal.quorumPer | number:2}}%
@@ -1166,7 +1167,12 @@ Split
VOTE ON THIS PROPOSAL
+
+
+ Sorry...there are results with these filters.
+ Show All Proposals
+
diff --git a/chrome-extension/embedded-daoproposals.html b/chrome-extension/embedded-daoproposals.html
index 819efb48e0..6f3b6efc9d 100644
--- a/chrome-extension/embedded-daoproposals.html
+++ b/chrome-extension/embedded-daoproposals.html
@@ -48,7 +48,7 @@
-
+
@@ -97,7 +97,7 @@
Split
({{ (objProposal.nay * 100) | number:2 }} DAO)
- Quroum:
+ Quorum:
{{ objProposal.quorumCurrent | number:2 }}% of {{ objProposal.quorumPer | number:2}}%
diff --git a/chrome-extension/index.html b/chrome-extension/index.html
index 7d9d914fbb..9acde5f386 100644
--- a/chrome-extension/index.html
+++ b/chrome-extension/index.html
@@ -924,7 +924,8 @@ Show....
-
+
+
@@ -975,7 +976,7 @@
Split
({{ (objProposal.nay * 100) | number:2 }} DAO)
- Quroum:
+ Quorum:
{{ objProposal.quorumCurrent | number:2 }}% of {{ objProposal.quorumPer | number:2}}%
@@ -1015,7 +1016,12 @@ Split
VOTE ON THIS PROPOSAL
+
+
+ Sorry...there are results with these filters.
+ Show All Proposals
+
diff --git a/chrome-extension/js/etherwallet-master-min.js b/chrome-extension/js/etherwallet-master-min.js
index db3ea7a00f..5c2d0f93ea 100644
--- a/chrome-extension/js/etherwallet-master-min.js
+++ b/chrome-extension/js/etherwallet-master-min.js
@@ -1,2470 +1,2470 @@
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o
0)
- ajaxReq.queuePost();
- });
-}
-ajaxReq.post = function(data, callback) {
- this.pendingPosts.push({
- data: data,
- callback: callback
- });
- if(this.pendingPosts.length==1)
- this.queuePost();
-}
-ajaxReq.getETHvalue = function(callback) {
- var prefix = "eth";
- this.http.get(this.COINMARKETCAPAPI + prefix).then(function(data) {
- data = data['data']['price'];
- var priceObj = {
- usd: data['usd'].toFixed(6),
- eur: data['eur'].toFixed(6),
- btc: data['btc'].toFixed(6)
- };
- callback(priceObj);
- });
-}
-ajaxReq.getDAOProposals = function(callback) {
- this.http.get(this.DAOPROPOSALSURL).then(function(data) {
- callback(data.data);
- });
-}
+'use strict';
+var http;
+var ajaxReq = function() {}
+ajaxReq.http = null;
+ajaxReq.postSerializer = null;
+ajaxReq.SERVERURL = "https://rpc.myetherwallet.com/api.php";
+ajaxReq.DAOPROPOSALSURL = "https://rpc.myetherwallet.com/TheDAO/getDAOProposals.php";
+ajaxReq.COINMARKETCAPAPI = "https://coinmarketcap-nexuist.rhcloud.com/api/";
+ajaxReq.pendingPosts = [];
+ajaxReq.config = {
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
+ }
+};
+ajaxReq.getBalance = function(addr, callback) {
+ this.post({
+ balance: addr
+ }, callback);
+}
+ajaxReq.getTransactionData = function(addr, callback) {
+ this.post({
+ txdata: addr
+ }, callback);
+}
+ajaxReq.sendRawTx = function(rawTx, callback) {
+ this.post({
+ rawtx: rawTx
+ }, callback);
+}
+ajaxReq.getEstimatedGas = function(txobj, callback) {
+ this.post({
+ estimatedGas: txobj
+ }, callback);
+}
+ajaxReq.getEthCall = function(txobj, callback) {
+ this.post({
+ ethCall: txobj
+ }, callback);
+}
+ajaxReq.queuePost = function() {
+ var data = this.pendingPosts[0].data;
+ var callback = this.pendingPosts[0].callback;
+ this.http.post(this.SERVERURL, this.postSerializer(data), this.config).then(function(data) {
+ callback(data.data);
+ ajaxReq.pendingPosts.splice(0, 1);
+ if(ajaxReq.pendingPosts.length>0)
+ ajaxReq.queuePost();
+ });
+}
+ajaxReq.post = function(data, callback) {
+ this.pendingPosts.push({
+ data: data,
+ callback: callback
+ });
+ if(this.pendingPosts.length==1)
+ this.queuePost();
+}
+ajaxReq.getETHvalue = function(callback) {
+ var prefix = "eth";
+ this.http.get(this.COINMARKETCAPAPI + prefix).then(function(data) {
+ data = data['data']['price'];
+ var priceObj = {
+ usd: data['usd'].toFixed(6),
+ eur: data['eur'].toFixed(6),
+ btc: data['btc'].toFixed(6)
+ };
+ callback(priceObj);
+ });
+}
+ajaxReq.getDAOProposals = function(callback) {
+ this.http.get(this.DAOPROPOSALSURL).then(function(data) {
+ callback(data.data);
+ });
+}
module.exports = ajaxReq;
},{}],2:[function(require,module,exports){
-'use strict';
-var addWalletCtrl = function($scope, $sce) {
- $scope.showBtnGen = $scope.showBtnUnlock = $scope.showBtnAdd = $scope.showBtnAddWallet = $scope.showAddWallet = $scope.requireFPass = $scope.requirePPass = $scope.showPassTxt = false;
- $scope.nickNames = [];
- $scope.filePassword = $scope.fileContent = "";
- $scope.wallet = null;
- $scope.addAccount = {
- address: "",
- nickName: "",
- encStr: "",
- password: ""
- };
- $scope.onPrivKeyChange = function() {
- $scope.addWalletStats = "";
- $scope.requirePPass = $scope.manualprivkey.length == 128 || $scope.manualprivkey.length == 132;
- $scope.showBtnUnlock = $scope.manualprivkey.length == 64;
- };
- $scope.onPrivKeyPassChange = function() {
- $scope.showBtnUnlock = $scope.privPassword.length > 6;
- };
- $scope.showContent = function($fileContent) {
- $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getSuccessText("File Selected: " + document.getElementById('fselector').files[0].name));
- try {
- $scope.requireFPass = Wallet.walletRequirePass($fileContent);
- $scope.showBtnUnlock = !$scope.requireFPass;
- $scope.fileContent = $fileContent;
- } catch (e) {
- $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- };
- $scope.openFileDialog = function($fileContent) {
- $scope.addWalletStats = "";
- document.getElementById('fselector').click();
- };
- $scope.onFilePassChange = function() {
- $scope.showBtnUnlock = $scope.filePassword.length > 6;
- };
- $scope.decryptWallet = function() {
- $scope.wallet = null;
- $scope.addWalletStats = "";
- try {
- if ($scope.walletType == "pasteprivkey" && $scope.requirePPass) {
- $scope.wallet = Wallet.fromMyEtherWalletKey($scope.manualprivkey, $scope.privPassword);
- $scope.addAccount.password = $scope.privPassword;
- } else if ($scope.walletType == "pasteprivkey" && !$scope.requirePPass) {
- $scope.wallet = new Wallet($scope.manualprivkey);
- $scope.addAccount.password = '';
- } else if ($scope.walletType == "fileupload") {
- $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.fileContent, $scope.filePassword);
- $scope.addAccount.password = $scope.filePassword;
- }
- $scope.addAccount.address = $scope.wallet.getAddressString();
- } catch (e) {
- $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + e));
- }
- if ($scope.wallet != null) {
- $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
- $scope.showAddWallet = true;
- $scope.showPassTxt = $scope.addAccount.password == '';
- $scope.setBalance();
- }
- };
- $scope.setNickNames = function() {
- cxFuncs.getAllNickNames(function(nicks) {
- $scope.nickNames = nicks;
- });
- };
- $scope.setNickNames();
- $scope.newWalletChange = function(varStatus, shwbtn) {
- if ($scope.addAccount.nickName != "" && $scope.nickNames.indexOf($scope.addAccount.nickName) == -1 && $scope.addAccount.password.length > 8) $scope[shwbtn] = true;
- else $scope[shwbtn] = false;
- if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) $scope[varStatus] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
- else $scope[varStatus] = "";
- }
- $scope.watchOnlyChange = function() {
- if ($scope.addAccount.address != "" && $scope.addAccount.nickName != "" && $scope.nickNames.indexOf($scope.addAccount.nickName) == -1 && ethFuncs.validateEtherAddress($scope.addAccount.address)) $scope.showBtnAdd = true;
- else $scope.showBtnAdd = false;
- if ($scope.addAccount.address != "" && !ethFuncs.validateEtherAddress($scope.addAccount.address)) $scope.watchOnlyStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
- else if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) $scope.watchOnlyStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
- else $scope.watchOnlyStatus = "";
- }
- $scope.addWatchOnly = function() {
- if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) {
- $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
- return;
- }
- cxFuncs.addWatchOnlyAddress($scope.addAccount.address, $scope.addAccount.nickName, function() {
- if (chrome.runtime.lastError) {
- $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
- } else {
- $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[3] + $scope.addAccount.address));
- $scope.setNickNames();
- }
- $scope.$apply();
- });
- }
- $scope.isStrongPass = function(pass) {
- return globalFuncs.isStrongPass(pass);
- }
- $scope.$watch('walletType', function() {
- $scope.showBtnGen = $scope.showBtnUnlock = $scope.showBtnAdd = $scope.showAddWallet = false;
- $scope.addNewNick = $scope.addNewPass = "";
- $scope.addWalletStats = "";
- });
- $scope.addWalletToStorage = function(status) {
- if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
- return;
- } else if($scope.nickNames.indexOf(ethUtil.toChecksumAddress($scope.addAccount.address)) !== -1){
- $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[16]));
- return;
- }
- cxFuncs.addWalletToStorage($scope.addAccount.address, $scope.addAccount.encStr, $scope.addAccount.nickName, function() {
- if (chrome.runtime.lastError) {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
- } else {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[3] + $scope.addAccount.address));
- $scope.setNickNames();
- }
- $scope.$apply();
- });
- }
- $scope.importWalletToStorage = function() {
- var wStr = $scope.wallet.toV3($scope.addAccount.password, {
- kdf: globalFuncs.kdf,
- n: globalFuncs.scrypt.n
- });
- $scope.addAccount.encStr = JSON.stringify(wStr);
- $scope.addWalletToStorage('addStatus');
- }
- $scope.generateWallet = function() {
- var wallet = Wallet.generate(false);
- var wStr = wallet.toV3($scope.addAccount.password, {
- kdf: globalFuncs.kdf,
- n: globalFuncs.scrypt.n
- });
- $scope.addAccount.encStr = JSON.stringify(wStr);
- $scope.addAccount.address = wallet.getAddressString();
- $scope.addWalletToStorage('addWalletStats');
- }
- $scope.setBalance = function() {
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
- ajaxReq.getETHvalue(function(data) {
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
- });
- }
- });
- }
-};
-module.exports = addWalletCtrl;
+'use strict';
+var addWalletCtrl = function($scope, $sce) {
+ $scope.showBtnGen = $scope.showBtnUnlock = $scope.showBtnAdd = $scope.showBtnAddWallet = $scope.showAddWallet = $scope.requireFPass = $scope.requirePPass = $scope.showPassTxt = false;
+ $scope.nickNames = [];
+ $scope.filePassword = $scope.fileContent = "";
+ $scope.wallet = null;
+ $scope.addAccount = {
+ address: "",
+ nickName: "",
+ encStr: "",
+ password: ""
+ };
+ $scope.onPrivKeyChange = function() {
+ $scope.addWalletStats = "";
+ $scope.requirePPass = $scope.manualprivkey.length == 128 || $scope.manualprivkey.length == 132;
+ $scope.showBtnUnlock = $scope.manualprivkey.length == 64;
+ };
+ $scope.onPrivKeyPassChange = function() {
+ $scope.showBtnUnlock = $scope.privPassword.length > 6;
+ };
+ $scope.showContent = function($fileContent) {
+ $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getSuccessText("File Selected: " + document.getElementById('fselector').files[0].name));
+ try {
+ $scope.requireFPass = Wallet.walletRequirePass($fileContent);
+ $scope.showBtnUnlock = !$scope.requireFPass;
+ $scope.fileContent = $fileContent;
+ } catch (e) {
+ $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ };
+ $scope.openFileDialog = function($fileContent) {
+ $scope.addWalletStats = "";
+ document.getElementById('fselector').click();
+ };
+ $scope.onFilePassChange = function() {
+ $scope.showBtnUnlock = $scope.filePassword.length > 6;
+ };
+ $scope.decryptWallet = function() {
+ $scope.wallet = null;
+ $scope.addWalletStats = "";
+ try {
+ if ($scope.walletType == "pasteprivkey" && $scope.requirePPass) {
+ $scope.wallet = Wallet.fromMyEtherWalletKey($scope.manualprivkey, $scope.privPassword);
+ $scope.addAccount.password = $scope.privPassword;
+ } else if ($scope.walletType == "pasteprivkey" && !$scope.requirePPass) {
+ $scope.wallet = new Wallet($scope.manualprivkey);
+ $scope.addAccount.password = '';
+ } else if ($scope.walletType == "fileupload") {
+ $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.fileContent, $scope.filePassword);
+ $scope.addAccount.password = $scope.filePassword;
+ }
+ $scope.addAccount.address = $scope.wallet.getAddressString();
+ } catch (e) {
+ $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + e));
+ }
+ if ($scope.wallet != null) {
+ $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
+ $scope.showAddWallet = true;
+ $scope.showPassTxt = $scope.addAccount.password == '';
+ $scope.setBalance();
+ }
+ };
+ $scope.setNickNames = function() {
+ cxFuncs.getAllNickNames(function(nicks) {
+ $scope.nickNames = nicks;
+ });
+ };
+ $scope.setNickNames();
+ $scope.newWalletChange = function(varStatus, shwbtn) {
+ if ($scope.addAccount.nickName != "" && $scope.nickNames.indexOf($scope.addAccount.nickName) == -1 && $scope.addAccount.password.length > 8) $scope[shwbtn] = true;
+ else $scope[shwbtn] = false;
+ if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) $scope[varStatus] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
+ else $scope[varStatus] = "";
+ }
+ $scope.watchOnlyChange = function() {
+ if ($scope.addAccount.address != "" && $scope.addAccount.nickName != "" && $scope.nickNames.indexOf($scope.addAccount.nickName) == -1 && ethFuncs.validateEtherAddress($scope.addAccount.address)) $scope.showBtnAdd = true;
+ else $scope.showBtnAdd = false;
+ if ($scope.addAccount.address != "" && !ethFuncs.validateEtherAddress($scope.addAccount.address)) $scope.watchOnlyStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
+ else if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) $scope.watchOnlyStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
+ else $scope.watchOnlyStatus = "";
+ }
+ $scope.addWatchOnly = function() {
+ if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) {
+ $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
+ return;
+ }
+ cxFuncs.addWatchOnlyAddress($scope.addAccount.address, $scope.addAccount.nickName, function() {
+ if (chrome.runtime.lastError) {
+ $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
+ } else {
+ $scope.addWalletStats = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[3] + $scope.addAccount.address));
+ $scope.setNickNames();
+ }
+ $scope.$apply();
+ });
+ }
+ $scope.isStrongPass = function(pass) {
+ return globalFuncs.isStrongPass(pass);
+ }
+ $scope.$watch('walletType', function() {
+ $scope.showBtnGen = $scope.showBtnUnlock = $scope.showBtnAdd = $scope.showAddWallet = false;
+ $scope.addNewNick = $scope.addNewPass = "";
+ $scope.addWalletStats = "";
+ });
+ $scope.addWalletToStorage = function(status) {
+ if ($scope.nickNames.indexOf($scope.addAccount.nickName) !== -1) {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
+ return;
+ } else if($scope.nickNames.indexOf(ethUtil.toChecksumAddress($scope.addAccount.address)) !== -1){
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[16]));
+ return;
+ }
+ cxFuncs.addWalletToStorage($scope.addAccount.address, $scope.addAccount.encStr, $scope.addAccount.nickName, function() {
+ if (chrome.runtime.lastError) {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
+ } else {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[3] + $scope.addAccount.address));
+ $scope.setNickNames();
+ }
+ $scope.$apply();
+ });
+ }
+ $scope.importWalletToStorage = function() {
+ var wStr = $scope.wallet.toV3($scope.addAccount.password, {
+ kdf: globalFuncs.kdf,
+ n: globalFuncs.scrypt.n
+ });
+ $scope.addAccount.encStr = JSON.stringify(wStr);
+ $scope.addWalletToStorage('addStatus');
+ }
+ $scope.generateWallet = function() {
+ var wallet = Wallet.generate(false);
+ var wStr = wallet.toV3($scope.addAccount.password, {
+ kdf: globalFuncs.kdf,
+ n: globalFuncs.scrypt.n
+ });
+ $scope.addAccount.encStr = JSON.stringify(wStr);
+ $scope.addAccount.address = wallet.getAddressString();
+ $scope.addWalletToStorage('addWalletStats');
+ }
+ $scope.setBalance = function() {
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
+ ajaxReq.getETHvalue(function(data) {
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
+ });
+ }
+ });
+ }
+};
+module.exports = addWalletCtrl;
},{}],3:[function(require,module,exports){
-'use strict';
-var cxDecryptWalletCtrl = function($scope, $sce, walletService) {
- $scope.allWallets = [];
- $scope.selectedWallet = $scope.password = "";
- $scope.setAllWallets = function() {
- cxFuncs.getWalletsArr(function(wlts) {
- $scope.allWallets = wlts;
- $scope.updateBalance();
- $scope.$apply();
- });
- };
- $scope.updateBalance = function() {
- for (var i = 0; i < $scope.allWallets.length; i++) {
- $scope.setBalance($scope.allWallets[i].addr,i);
- }
- };
- $scope.setBalance = function(address,id) {
- ajaxReq.getBalance(address, function(data) {
- if (data.error) {
- $scope.allWallets[id].balance = data.msg;
- } else {
- $scope.allWallets[id].balance = etherUnits.toEther(data.data.balance, 'wei');
- }
- });
- };
- $scope.setAllWallets();
- $scope.getPrivFromAdd = function(){
- if ($scope.selectedWallet=="") throw globalFuncs.errorMsgs[5];
- for (var i = 0; i < $scope.allWallets.length; i++) {
- if( $scope.allWallets[i].addr==$scope.selectedWallet)
- return $scope.allWallets[i].priv;
- }
- throw globalFuncs.errorMsgs[14];
- }
- $scope.decryptWallet = function() {
- $scope.wallet=null;
- $scope.decryptStatus="";
- try {
- var priv = $scope.getPrivFromAdd();
- if (priv.length==132)
- $scope.wallet = Wallet.fromMyEtherWalletKey(priv, $scope.password);
- else
- $scope.wallet = Wallet.getWalletFromPrivKeyFile(priv, $scope.password);
- walletService.password = $scope.password;
- walletService.wallet = $scope.wallet;
- } catch (e) {
- $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + ":" + e));
- }
- if($scope.wallet!=null) $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
- };
-};
+'use strict';
+var cxDecryptWalletCtrl = function($scope, $sce, walletService) {
+ $scope.allWallets = [];
+ $scope.selectedWallet = $scope.password = "";
+ $scope.setAllWallets = function() {
+ cxFuncs.getWalletsArr(function(wlts) {
+ $scope.allWallets = wlts;
+ $scope.updateBalance();
+ $scope.$apply();
+ });
+ };
+ $scope.updateBalance = function() {
+ for (var i = 0; i < $scope.allWallets.length; i++) {
+ $scope.setBalance($scope.allWallets[i].addr,i);
+ }
+ };
+ $scope.setBalance = function(address,id) {
+ ajaxReq.getBalance(address, function(data) {
+ if (data.error) {
+ $scope.allWallets[id].balance = data.msg;
+ } else {
+ $scope.allWallets[id].balance = etherUnits.toEther(data.data.balance, 'wei');
+ }
+ });
+ };
+ $scope.setAllWallets();
+ $scope.getPrivFromAdd = function(){
+ if ($scope.selectedWallet=="") throw globalFuncs.errorMsgs[5];
+ for (var i = 0; i < $scope.allWallets.length; i++) {
+ if( $scope.allWallets[i].addr==$scope.selectedWallet)
+ return $scope.allWallets[i].priv;
+ }
+ throw globalFuncs.errorMsgs[14];
+ }
+ $scope.decryptWallet = function() {
+ $scope.wallet=null;
+ $scope.decryptStatus="";
+ try {
+ var priv = $scope.getPrivFromAdd();
+ if (priv.length==132)
+ $scope.wallet = Wallet.fromMyEtherWalletKey(priv, $scope.password);
+ else
+ $scope.wallet = Wallet.getWalletFromPrivKeyFile(priv, $scope.password);
+ walletService.password = $scope.password;
+ walletService.wallet = $scope.wallet;
+ } catch (e) {
+ $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + ":" + e));
+ }
+ if($scope.wallet!=null) $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
+ };
+};
module.exports = cxDecryptWalletCtrl;
},{}],4:[function(require,module,exports){
-'use strict';
-var mainPopCtrl = function($scope, $sce) {
- $scope.allWallets = [];
- $scope.allWatchOnly = [];
- $scope.setAllWallets = function() {
- cxFuncs.getWalletsArr(function(wlts) {
- $scope.allWallets = wlts;
- $scope.updateBalance('allWallets');
- });
- cxFuncs.getWatchOnlyArr(function(wlts) {
- $scope.allWatchOnly = wlts;
- $scope.updateBalance('allWatchOnly');
- $scope.$apply();
- });
- };
- $scope.updateBalance = function(varWal) {
- for (var i = 0; i < $scope[varWal].length; i++) {
- $scope.setBalance($scope[varWal][i].addr, i, varWal);
- }
- };
- $scope.setBalance = function(address, id, varWal) {
- ajaxReq.getBalance(address, function(data) {
- if (data.error) {
- $scope[varWal][id].balance = data.msg;
- } else {
- $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
- $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
- }
- });
- };
- $scope.setAllWallets();
-};
-module.exports = mainPopCtrl;
+'use strict';
+var mainPopCtrl = function($scope, $sce) {
+ $scope.allWallets = [];
+ $scope.allWatchOnly = [];
+ $scope.setAllWallets = function() {
+ cxFuncs.getWalletsArr(function(wlts) {
+ $scope.allWallets = wlts;
+ $scope.updateBalance('allWallets');
+ });
+ cxFuncs.getWatchOnlyArr(function(wlts) {
+ $scope.allWatchOnly = wlts;
+ $scope.updateBalance('allWatchOnly');
+ $scope.$apply();
+ });
+ };
+ $scope.updateBalance = function(varWal) {
+ for (var i = 0; i < $scope[varWal].length; i++) {
+ $scope.setBalance($scope[varWal][i].addr, i, varWal);
+ }
+ };
+ $scope.setBalance = function(address, id, varWal) {
+ ajaxReq.getBalance(address, function(data) {
+ if (data.error) {
+ $scope[varWal][id].balance = data.msg;
+ } else {
+ $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
+ $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
+ }
+ });
+ };
+ $scope.setAllWallets();
+};
+module.exports = mainPopCtrl;
},{}],5:[function(require,module,exports){
-'use strict';
-var myWalletsCtrl = function($scope, $sce) {
- $scope.editModal = new Modal(document.getElementById('editWallet'));
- $scope.viewModal = new Modal(document.getElementById('viewWalletDetails'));
- $scope.removeModal = new Modal(document.getElementById('removeWallet'));
- $scope.allWallets = [];
- $scope.allWatchOnly = [];
- $scope.nickNames = [];
- $scope.fiatVal = {
- usd: 0,
- eur: 0,
- btc: 0
- };
- $scope.viewWallet = {};
- $scope.setNickNames = function() {
- cxFuncs.getAllNickNames(function(nicks) {
- $scope.nickNames = nicks;
- });
- };
- $scope.setAllWallets = function() {
- cxFuncs.getWalletsArr(function(wlts) {
- $scope.allWallets = wlts;
- $scope.updateBalance('allWallets');
- });
- cxFuncs.getWatchOnlyArr(function(wlts) {
- $scope.allWatchOnly = wlts;
- $scope.updateBalance('allWatchOnly');
- $scope.$apply();
- });
- };
- $scope.updateBalance = function(varWal) {
- for (var i = 0; i < $scope[varWal].length; i++) {
- $scope.setBalance($scope[varWal][i].addr, i, varWal);
- }
- };
- $scope.setBalance = function(address, id, varWal) {
- ajaxReq.getBalance(address, function(data) {
- if (data.error) {
- $scope[varWal][id].balance = data.msg;
- } else {
- $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
- $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
- $scope[varWal][id].usd = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.usd);
- $scope[varWal][id].eur = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.eur);
- $scope[varWal][id].btc = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.btc);
- }
- });
- };
- $scope.setViewWalletObj = function(val, type) {
- var vtype = 'allWallets';
- if (type == 'watchOnly') vtype = 'allWatchOnly'
- $scope.viewWallet = {
- nick: $scope[vtype][val].nick,
- addr: $scope[vtype][val].addr,
- id: val,
- type: type
- }
- }
- $scope.editMWallet = function(val, type) {
- $scope.setViewWalletObj(val, type);
- $scope.editModal.open();
- }
- $scope.editSave = function() {
- if ($scope.nickNames.indexOf($scope.viewWallet.nick) !== -1) {
- $scope.editStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
- return;
- } else {
- cxFuncs.editNickName($scope.viewWallet.addr, $scope.viewWallet.nick, function() {
- if (chrome.runtime.lastError) $scope.editStatus = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
- else {
- $scope.setAllWallets();
- $scope.setNickNames();
- $scope.editModal.close();
- }
- });
- }
- }
- $scope.viewMWallet = function(val, type) {
- $scope.setViewWalletObj(val, type);
- $scope.viewModal.open();
- }
- $scope.decryptWallet = function() {
- $scope.wallet = null;
- $scope.viewStatus = "";
- try {
- var priv = $scope.allWallets[$scope.viewWallet.id].priv;
- if (priv.length==132)
- $scope.wallet = Wallet.fromMyEtherWalletKey(priv, $scope.password);
- else
- $scope.wallet = Wallet.getWalletFromPrivKeyFile(priv, $scope.password);
- $scope.viewModal.close();
- $scope.setWalletInfo();
- $scope.password = "";
- } catch (e) {
- $scope.viewStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + ":" + e));
- }
- };
- $scope.printQRCode = function() {
- globalFuncs.printPaperWallets(JSON.stringify([{
- address: $scope.wallet.getAddressString(),
- private: $scope.wallet.getPrivateKeyString()
- }]));
- }
- $scope.resetWallet = function() {
- $scope.wallet = null;
- $scope.blob = $scope.blobEnc = $scope.password = "";
- }
- $scope.setWalletInfo = function() {
- $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
- if ($scope.password != '') {
- $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3($scope.password, {
- kdf: globalFuncs.kdf,
- n: globalFuncs.scrypt.n
- }));
- $scope.encFileName = $scope.wallet.getV3Filename();
- }
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
- ajaxReq.getETHvalue(function(data) {
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
- });
- }
- });
- }
- $scope.deleteWalletMsg = function(val, type) {
- $scope.setViewWalletObj(val, type);
- $scope.removeModal.open();
- }
- $scope.deleteWallet = function() {
- cxFuncs.deleteAccount($scope.viewWallet.addr, function() {
- $scope.setAllWallets();
- $scope.setNickNames();
- $scope.removeModal.close();
- });
- }
- ajaxReq.getETHvalue(function(data) {
- $scope.fiatVal.usd = data.usd;
- $scope.fiatVal.eur = data.eur;
- $scope.fiatVal.btc = data.btc;
- $scope.setAllWallets();
- });
- $scope.setNickNames();
-};
+'use strict';
+var myWalletsCtrl = function($scope, $sce) {
+ $scope.editModal = new Modal(document.getElementById('editWallet'));
+ $scope.viewModal = new Modal(document.getElementById('viewWalletDetails'));
+ $scope.removeModal = new Modal(document.getElementById('removeWallet'));
+ $scope.allWallets = [];
+ $scope.allWatchOnly = [];
+ $scope.nickNames = [];
+ $scope.fiatVal = {
+ usd: 0,
+ eur: 0,
+ btc: 0
+ };
+ $scope.viewWallet = {};
+ $scope.setNickNames = function() {
+ cxFuncs.getAllNickNames(function(nicks) {
+ $scope.nickNames = nicks;
+ });
+ };
+ $scope.setAllWallets = function() {
+ cxFuncs.getWalletsArr(function(wlts) {
+ $scope.allWallets = wlts;
+ $scope.updateBalance('allWallets');
+ });
+ cxFuncs.getWatchOnlyArr(function(wlts) {
+ $scope.allWatchOnly = wlts;
+ $scope.updateBalance('allWatchOnly');
+ $scope.$apply();
+ });
+ };
+ $scope.updateBalance = function(varWal) {
+ for (var i = 0; i < $scope[varWal].length; i++) {
+ $scope.setBalance($scope[varWal][i].addr, i, varWal);
+ }
+ };
+ $scope.setBalance = function(address, id, varWal) {
+ ajaxReq.getBalance(address, function(data) {
+ if (data.error) {
+ $scope[varWal][id].balance = data.msg;
+ } else {
+ $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
+ $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
+ $scope[varWal][id].usd = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.usd);
+ $scope[varWal][id].eur = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.eur);
+ $scope[varWal][id].btc = etherUnits.toFiat($scope[varWal][id].balance, 'ether', $scope.fiatVal.btc);
+ }
+ });
+ };
+ $scope.setViewWalletObj = function(val, type) {
+ var vtype = 'allWallets';
+ if (type == 'watchOnly') vtype = 'allWatchOnly'
+ $scope.viewWallet = {
+ nick: $scope[vtype][val].nick,
+ addr: $scope[vtype][val].addr,
+ id: val,
+ type: type
+ }
+ }
+ $scope.editMWallet = function(val, type) {
+ $scope.setViewWalletObj(val, type);
+ $scope.editModal.open();
+ }
+ $scope.editSave = function() {
+ if ($scope.nickNames.indexOf($scope.viewWallet.nick) !== -1) {
+ $scope.editStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[13]));
+ return;
+ } else {
+ cxFuncs.editNickName($scope.viewWallet.addr, $scope.viewWallet.nick, function() {
+ if (chrome.runtime.lastError) $scope.editStatus = $sce.trustAsHtml(globalFuncs.getDangerText(chrome.runtime.lastError.message));
+ else {
+ $scope.setAllWallets();
+ $scope.setNickNames();
+ $scope.editModal.close();
+ }
+ });
+ }
+ }
+ $scope.viewMWallet = function(val, type) {
+ $scope.setViewWalletObj(val, type);
+ $scope.viewModal.open();
+ }
+ $scope.decryptWallet = function() {
+ $scope.wallet = null;
+ $scope.viewStatus = "";
+ try {
+ var priv = $scope.allWallets[$scope.viewWallet.id].priv;
+ if (priv.length==132)
+ $scope.wallet = Wallet.fromMyEtherWalletKey(priv, $scope.password);
+ else
+ $scope.wallet = Wallet.getWalletFromPrivKeyFile(priv, $scope.password);
+ $scope.viewModal.close();
+ $scope.setWalletInfo();
+ $scope.password = "";
+ } catch (e) {
+ $scope.viewStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6] + ":" + e));
+ }
+ };
+ $scope.printQRCode = function() {
+ globalFuncs.printPaperWallets(JSON.stringify([{
+ address: $scope.wallet.getAddressString(),
+ private: $scope.wallet.getPrivateKeyString()
+ }]));
+ }
+ $scope.resetWallet = function() {
+ $scope.wallet = null;
+ $scope.blob = $scope.blobEnc = $scope.password = "";
+ }
+ $scope.setWalletInfo = function() {
+ $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
+ if ($scope.password != '') {
+ $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3($scope.password, {
+ kdf: globalFuncs.kdf,
+ n: globalFuncs.scrypt.n
+ }));
+ $scope.encFileName = $scope.wallet.getV3Filename();
+ }
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
+ ajaxReq.getETHvalue(function(data) {
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
+ });
+ }
+ });
+ }
+ $scope.deleteWalletMsg = function(val, type) {
+ $scope.setViewWalletObj(val, type);
+ $scope.removeModal.open();
+ }
+ $scope.deleteWallet = function() {
+ cxFuncs.deleteAccount($scope.viewWallet.addr, function() {
+ $scope.setAllWallets();
+ $scope.setNickNames();
+ $scope.removeModal.close();
+ });
+ }
+ ajaxReq.getETHvalue(function(data) {
+ $scope.fiatVal.usd = data.usd;
+ $scope.fiatVal.eur = data.eur;
+ $scope.fiatVal.btc = data.btc;
+ $scope.setAllWallets();
+ });
+ $scope.setNickNames();
+};
module.exports = myWalletsCtrl;
},{}],6:[function(require,module,exports){
-'use strict';
-var quickSendCtrl = function($scope, $sce) {
- $scope.allWallets = [];
- $scope.selectedWallet = "";
- $scope.showConfirm = false;
- $scope.tx = {
- gasLimit: globalFuncs.defaultTxGasLimit,
- data: "",
- to: "",
- unit: "ether",
- value: "",
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.setAllWallets = function() {
- cxFuncs.getWalletsArr(function(wlts) {
- $scope.allWallets = wlts;
- $scope.updateBalance('allWallets');
- });
- };
- $scope.updateBalance = function(varWal) {
- for (var i = 0; i < $scope[varWal].length; i++) {
- $scope.setBalance($scope[varWal][i].addr, i, varWal);
- }
- };
- $scope.setBalance = function(address, id, varWal) {
- ajaxReq.getBalance(address, function(data) {
- if (data.error) {
- $scope[varWal][id].balance = data.msg;
- } else {
- $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
- $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
- }
- });
- };
- $scope.validateAddress = function() {
- if (ethFuncs.validateEtherAddress($scope.tx.to)) {
- $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
- } else {
- $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
- }
- }
- $scope.transferAllBalance = function() {
- $scope.wallet = {};
- $scope.wallet.getAddressString = function() {
- return $scope.allWallets[$scope.selectedWallet].addr;
- }
- uiFuncs.transferAllBalance($scope, $sce);
- }
- $scope.prepTX = function() {
- try {
- if (!ethFuncs.validateEtherAddress($scope.tx.to)) throw globalFuncs.errorMsgs[5];
- else if (!globalFuncs.isNumeric($scope.tx.value) || parseFloat($scope.tx.value) < 0) throw globalFuncs.errorMsgs[7];
- $scope.showConfirm = true;
- } catch (e) {
- $scope.prepTXStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.unlockAndSend = function() {
- try {
- $scope.decryptWallet();
- $scope.autoSend = true;
- uiFuncs.generateTx($scope, $sce);
- $scope.validateTxStatus = "";
- } catch (e) {
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.decryptWallet = function() {
- $scope.wallet = null;
- $scope.validateTxStatus = "";
- $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.allWallets[$scope.selectedWallet].priv, $scope.password);
- };
- $scope.setAllWallets();
-};
+'use strict';
+var quickSendCtrl = function($scope, $sce) {
+ $scope.allWallets = [];
+ $scope.selectedWallet = "";
+ $scope.showConfirm = false;
+ $scope.tx = {
+ gasLimit: globalFuncs.defaultTxGasLimit,
+ data: "",
+ to: "",
+ unit: "ether",
+ value: "",
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.setAllWallets = function() {
+ cxFuncs.getWalletsArr(function(wlts) {
+ $scope.allWallets = wlts;
+ $scope.updateBalance('allWallets');
+ });
+ };
+ $scope.updateBalance = function(varWal) {
+ for (var i = 0; i < $scope[varWal].length; i++) {
+ $scope.setBalance($scope[varWal][i].addr, i, varWal);
+ }
+ };
+ $scope.setBalance = function(address, id, varWal) {
+ ajaxReq.getBalance(address, function(data) {
+ if (data.error) {
+ $scope[varWal][id].balance = data.msg;
+ } else {
+ $scope[varWal][id].balance = etherUnits.toEther(data.data.balance, 'wei');
+ $scope[varWal][id].balanceR = new BigNumber($scope[varWal][id].balance).toPrecision(5);
+ }
+ });
+ };
+ $scope.validateAddress = function() {
+ if (ethFuncs.validateEtherAddress($scope.tx.to)) {
+ $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
+ } else {
+ $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
+ }
+ }
+ $scope.transferAllBalance = function() {
+ $scope.wallet = {};
+ $scope.wallet.getAddressString = function() {
+ return $scope.allWallets[$scope.selectedWallet].addr;
+ }
+ uiFuncs.transferAllBalance($scope, $sce);
+ }
+ $scope.prepTX = function() {
+ try {
+ if (!ethFuncs.validateEtherAddress($scope.tx.to)) throw globalFuncs.errorMsgs[5];
+ else if (!globalFuncs.isNumeric($scope.tx.value) || parseFloat($scope.tx.value) < 0) throw globalFuncs.errorMsgs[7];
+ $scope.showConfirm = true;
+ } catch (e) {
+ $scope.prepTXStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.unlockAndSend = function() {
+ try {
+ $scope.decryptWallet();
+ $scope.autoSend = true;
+ uiFuncs.generateTx($scope, $sce);
+ $scope.validateTxStatus = "";
+ } catch (e) {
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.decryptWallet = function() {
+ $scope.wallet = null;
+ $scope.validateTxStatus = "";
+ $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.allWallets[$scope.selectedWallet].priv, $scope.password);
+ };
+ $scope.setAllWallets();
+};
module.exports = quickSendCtrl;
},{}],7:[function(require,module,exports){
-'use strict';
-var bulkGenCtrl = function($scope) {
- $scope.showWallets = false;
- $scope.genWallets = function(){
- if($scope.amount==''||$scope.amount != parseInt($scope.amount, 10)) alert(globalFuncs.errorMsgs[0]);
- else {
- $scope.wallets = [];
- var csv = ''; var txt = '';
- $scope.jsonWallets = [];
- for(var i=0;i<$scope.amount;i++){
- var tWallet = Wallet.generate(false);
- csv += tWallet.getChecksumAddressString() + ',' + tWallet.getPrivateKeyString() + '\n';
- txt += tWallet.getChecksumAddressString() + '\t' + tWallet.getPrivateKeyString() + '\n';
- $scope.jsonWallets.push({
- address: tWallet.getChecksumAddressString(),
- private: tWallet.getPrivateKeyString()
- });
- $scope.wallets.push(tWallet);
- }
- $scope.showWallets = true;
- $scope.bJSON = globalFuncs.getBlob("text/json;charset=UTF-8",JSON.stringify($scope.jsonWallets));
- $scope.bTXT = globalFuncs.getBlob("text/plain;charset=UTF-8",txt);
- $scope.bCSV = globalFuncs.getBlob("text/csv;charset=UTF-8",csv);
- }
- }
- $scope.printQRCode = function() {
- globalFuncs.printPaperWallets(JSON.stringify($scope.jsonWallets));
- }
-};
+'use strict';
+var bulkGenCtrl = function($scope) {
+ $scope.showWallets = false;
+ $scope.genWallets = function(){
+ if($scope.amount==''||$scope.amount != parseInt($scope.amount, 10)) alert(globalFuncs.errorMsgs[0]);
+ else {
+ $scope.wallets = [];
+ var csv = ''; var txt = '';
+ $scope.jsonWallets = [];
+ for(var i=0;i<$scope.amount;i++){
+ var tWallet = Wallet.generate(false);
+ csv += tWallet.getChecksumAddressString() + ',' + tWallet.getPrivateKeyString() + '\n';
+ txt += tWallet.getChecksumAddressString() + '\t' + tWallet.getPrivateKeyString() + '\n';
+ $scope.jsonWallets.push({
+ address: tWallet.getChecksumAddressString(),
+ private: tWallet.getPrivateKeyString()
+ });
+ $scope.wallets.push(tWallet);
+ }
+ $scope.showWallets = true;
+ $scope.bJSON = globalFuncs.getBlob("text/json;charset=UTF-8",JSON.stringify($scope.jsonWallets));
+ $scope.bTXT = globalFuncs.getBlob("text/plain;charset=UTF-8",txt);
+ $scope.bCSV = globalFuncs.getBlob("text/csv;charset=UTF-8",csv);
+ }
+ }
+ $scope.printQRCode = function() {
+ globalFuncs.printPaperWallets(JSON.stringify($scope.jsonWallets));
+ }
+};
module.exports = bulkGenCtrl;
},{}],8:[function(require,module,exports){
-'use strict';
-var decryptWalletCtrl = function($scope, $sce, walletService) {
- $scope.walletType = "";
- $scope.requireFPass = $scope.requirePPass = $scope.showFDecrypt = $scope.showPDecrypt = false;
- $scope.filePassword = "";
- $scope.fileContent = "";
- $scope.showContent = function($fileContent) {
- $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getSuccessText("File Selected: " + document.getElementById('fselector').files[0].name));
- try {
- $scope.requireFPass = Wallet.walletRequirePass($fileContent);
- $scope.showFDecrypt = !$scope.requireFPass;
- $scope.fileContent = $fileContent;
- } catch (e) {
- $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- };
- $scope.openFileDialog = function($fileContent) {
- document.getElementById('fselector').click();
- };
- $scope.onFilePassChange = function() {
- $scope.showFDecrypt = $scope.filePassword.length > 3;
- };
- $scope.onPrivKeyChange = function() {
- $scope.requirePPass = $scope.manualprivkey.length == 128 || $scope.manualprivkey.length == 132;
- $scope.showPDecrypt = $scope.manualprivkey.length == 64;
- };
- $scope.onPrivKeyPassChange = function() {
- $scope.showPDecrypt = $scope.privPassword.length > 6;
- };
- $scope.decryptWallet = function() {
- $scope.wallet=null;
- $scope.decryptStatus="";
- try {
- if ($scope.showPDecrypt && $scope.requirePPass) {
- $scope.wallet = Wallet.fromMyEtherWalletKey($scope.manualprivkey, $scope.privPassword);
- walletService.password = $scope.privPassword;
- } else if ($scope.showPDecrypt && !$scope.requirePPass) {
- $scope.wallet = new Wallet($scope.manualprivkey);
- walletService.password = '';
- } else if ($scope.showFDecrypt) {
- $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.fileContent, $scope.filePassword);
- walletService.password = $scope.filePassword;
- }
- walletService.wallet = $scope.wallet;
- } catch (e) {
- $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6]+e));
- }
- if($scope.wallet!=null) $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
- };
-};
+'use strict';
+var decryptWalletCtrl = function($scope, $sce, walletService) {
+ $scope.walletType = "";
+ $scope.requireFPass = $scope.requirePPass = $scope.showFDecrypt = $scope.showPDecrypt = false;
+ $scope.filePassword = "";
+ $scope.fileContent = "";
+ $scope.showContent = function($fileContent) {
+ $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getSuccessText("File Selected: " + document.getElementById('fselector').files[0].name));
+ try {
+ $scope.requireFPass = Wallet.walletRequirePass($fileContent);
+ $scope.showFDecrypt = !$scope.requireFPass;
+ $scope.fileContent = $fileContent;
+ } catch (e) {
+ $scope.fileStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ };
+ $scope.openFileDialog = function($fileContent) {
+ document.getElementById('fselector').click();
+ };
+ $scope.onFilePassChange = function() {
+ $scope.showFDecrypt = $scope.filePassword.length > 3;
+ };
+ $scope.onPrivKeyChange = function() {
+ $scope.requirePPass = $scope.manualprivkey.length == 128 || $scope.manualprivkey.length == 132;
+ $scope.showPDecrypt = $scope.manualprivkey.length == 64;
+ };
+ $scope.onPrivKeyPassChange = function() {
+ $scope.showPDecrypt = $scope.privPassword.length > 6;
+ };
+ $scope.decryptWallet = function() {
+ $scope.wallet=null;
+ $scope.decryptStatus="";
+ try {
+ if ($scope.showPDecrypt && $scope.requirePPass) {
+ $scope.wallet = Wallet.fromMyEtherWalletKey($scope.manualprivkey, $scope.privPassword);
+ walletService.password = $scope.privPassword;
+ } else if ($scope.showPDecrypt && !$scope.requirePPass) {
+ $scope.wallet = new Wallet($scope.manualprivkey);
+ walletService.password = '';
+ } else if ($scope.showFDecrypt) {
+ $scope.wallet = Wallet.getWalletFromPrivKeyFile($scope.fileContent, $scope.filePassword);
+ walletService.password = $scope.filePassword;
+ }
+ walletService.wallet = $scope.wallet;
+ } catch (e) {
+ $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[6]+e));
+ }
+ if($scope.wallet!=null) $scope.decryptStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[1]));
+ };
+};
module.exports = decryptWalletCtrl;
},{}],9:[function(require,module,exports){
-'use strict';
-var digixCtrl = function($scope, $sce, walletService) {
- new Modal(document.getElementById('sendTransaction'));
- walletService.wallet = null;
- walletService.password = '';
- $scope.showSend = true;
- $scope.showRaw = false;
- $scope.digixContract = "0xf0160428a8552ac9bb7e050d90eeade4ddd52843";
- $scope.tokenContract = "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a";
- $scope.badgeContract = "0x54bda709fed875224eae569bb6817d96ef7ed9ad";
- $scope.digixUserInfo = "0x1959a002";
- $scope.digixClaim = "0x4e71d92d";
- $scope.digixTransfer = "0xa9059cbb";
- $scope.balanceOf = "0x70a08231";
- $scope.tx = {
- gasLimit: globalFuncs.digixClaimTxGasLimit,
- data: $scope.digixClaim,
- to: $scope.digixContract,
- unit: "ether",
- value: 0,
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.tokenTx = {
- to: '',
- value: 0,
- unit: "dgd"
- }
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- $scope.setBalance();
- });
- $scope.validateAddress = function(address, status) {
- if (ethFuncs.validateEtherAddress(address)) {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
- } else {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
- }
- }
- $scope.setBalance = function() {
- var tUserInfo = {
- to: $scope.digixContract,
- data: $scope.digixUserInfo
- };
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
- ajaxReq.getETHvalue(function(data) {
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
- });
- }
- });
- var userInfo = ethFuncs.getDataObj($scope.digixContract, $scope.digixUserInfo, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
- ajaxReq.getEthCall(userInfo, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- var digixObj = $scope.processDigixInfo(data.data);
- $scope.centsTotal = digixObj.centstotal;
- $scope.weiTotal = digixObj.weitotal;
- $scope.shareTotal = digixObj.share;
- $scope.badgesTotal = digixObj.badges;
- $scope.claimedTotal = digixObj.claimed.toString();
- }
- });
- var tokenBalance = ethFuncs.getDataObj($scope.tokenContract, $scope.balanceOf, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
- ajaxReq.getEthCall(tokenBalance, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.tokenBalance = new BigNumber(data.data).div(1000000000).toString();
- }
- });
- var badgeBalance = ethFuncs.getDataObj($scope.badgeContract, $scope.balanceOf, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
- ajaxReq.getEthCall(badgeBalance, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.badgeBalance = new BigNumber(data.data).toString();
- }
- });
- }
- $scope.processDigixInfo = function(data) {
- data = data.replace('0x', '');
- var values = data.match(/.{1,64}/g);
- var digixObj = {
- centstotal: new BigNumber('0x' + values[0]).div(100).toString(),
- weitotal: new BigNumber('0x' + values[1]).div(etherUnits.getValueOfUnit('ether')).toString(),
- share: new BigNumber('0x' + values[2]).div(etherUnits.getValueOfUnit('gwei')).toString(),
- badges: new BigNumber('0x' + values[3]).toString(),
- claimed: new BigNumber('0x' + values[4]).toString() == '1'
- };
- return digixObj;
- }
- $scope.$watch('tx', function() {
- $scope.showRaw = false;
- $scope.sendTxStatus = "";
- }, true);
- $scope.$watch('showSend', function() {
- $scope.showRaw = false;
- $scope.sendTxStatus = "";
- if (!$scope.showSend) {
- $scope.tx.data = $scope.digixClaim;
- $scope.tx.to = $scope.digixContract;
- $scope.tx.gasLimit = globalFuncs.digixClaimTxGasLimit;
- }
- });
- $scope.generateTokenTx = function() {
- try {
- if (!ethFuncs.validateEtherAddress($scope.tokenTx.to)) throw globalFuncs.errorMsgs[5];
- else if (!globalFuncs.isNumeric($scope.tokenTx.value) || parseFloat($scope.tokenTx.value) < 0) throw globalFuncs.errorMsgs[7];
- else if ($scope.tokenTx.unit == "dgd" && new BigNumber($scope.tokenTx.value).greaterThan(new BigNumber($scope.tokenBalance))) throw globalFuncs.errorMsgs[7];
- else if ($scope.tokenTx.unit == "dgdb" && new BigNumber($scope.tokenTx.value).greaterThan(new BigNumber($scope.badgeBalance))) throw globalFuncs.errorMsgs[7];
- var value = 0;
- if ($scope.tokenTx.unit == "dgd") {
- value = new BigNumber($scope.tokenTx.value).times(etherUnits.getValueOfUnit('gwei')).toString(16);
- $scope.tx.to = $scope.tokenContract;
- } else {
- value = new BigNumber($scope.tokenTx.value).toString(16);
- $scope.tx.to = $scope.badgeContract;
- }
- value = ethFuncs.padLeft(value, 64);
- var toAdd = ethFuncs.padLeft(ethFuncs.getNakedAddress($scope.tokenTx.to), 64);
- $scope.tx.data = $scope.digixTransfer + toAdd + value;
- $scope.tx.value = 0;
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
- $scope.generateTx();
- } catch (e) {
- $scope.showRaw = false;
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.generateTx = function(){
- uiFuncs.generateTx($scope,$sce);
- }
- $scope.sendTx = function() {
- uiFuncs.sendTx($scope,$sce);
- }
-};
-module.exports = digixCtrl;
+'use strict';
+var digixCtrl = function($scope, $sce, walletService) {
+ new Modal(document.getElementById('sendTransaction'));
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.showSend = true;
+ $scope.showRaw = false;
+ $scope.digixContract = "0xf0160428a8552ac9bb7e050d90eeade4ddd52843";
+ $scope.tokenContract = "0xe0b7927c4af23765cb51314a0e0521a9645f0e2a";
+ $scope.badgeContract = "0x54bda709fed875224eae569bb6817d96ef7ed9ad";
+ $scope.digixUserInfo = "0x1959a002";
+ $scope.digixClaim = "0x4e71d92d";
+ $scope.digixTransfer = "0xa9059cbb";
+ $scope.balanceOf = "0x70a08231";
+ $scope.tx = {
+ gasLimit: globalFuncs.digixClaimTxGasLimit,
+ data: $scope.digixClaim,
+ to: $scope.digixContract,
+ unit: "ether",
+ value: 0,
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.tokenTx = {
+ to: '',
+ value: 0,
+ unit: "dgd"
+ }
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ $scope.setBalance();
+ });
+ $scope.validateAddress = function(address, status) {
+ if (ethFuncs.validateEtherAddress(address)) {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
+ } else {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
+ }
+ }
+ $scope.setBalance = function() {
+ var tUserInfo = {
+ to: $scope.digixContract,
+ data: $scope.digixUserInfo
+ };
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
+ ajaxReq.getETHvalue(function(data) {
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
+ });
+ }
+ });
+ var userInfo = ethFuncs.getDataObj($scope.digixContract, $scope.digixUserInfo, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
+ ajaxReq.getEthCall(userInfo, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ var digixObj = $scope.processDigixInfo(data.data);
+ $scope.centsTotal = digixObj.centstotal;
+ $scope.weiTotal = digixObj.weitotal;
+ $scope.shareTotal = digixObj.share;
+ $scope.badgesTotal = digixObj.badges;
+ $scope.claimedTotal = digixObj.claimed.toString();
+ }
+ });
+ var tokenBalance = ethFuncs.getDataObj($scope.tokenContract, $scope.balanceOf, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
+ ajaxReq.getEthCall(tokenBalance, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.tokenBalance = new BigNumber(data.data).div(1000000000).toString();
+ }
+ });
+ var badgeBalance = ethFuncs.getDataObj($scope.badgeContract, $scope.balanceOf, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
+ ajaxReq.getEthCall(badgeBalance, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.badgeBalance = new BigNumber(data.data).toString();
+ }
+ });
+ }
+ $scope.processDigixInfo = function(data) {
+ data = data.replace('0x', '');
+ var values = data.match(/.{1,64}/g);
+ var digixObj = {
+ centstotal: new BigNumber('0x' + values[0]).div(100).toString(),
+ weitotal: new BigNumber('0x' + values[1]).div(etherUnits.getValueOfUnit('ether')).toString(),
+ share: new BigNumber('0x' + values[2]).div(etherUnits.getValueOfUnit('gwei')).toString(),
+ badges: new BigNumber('0x' + values[3]).toString(),
+ claimed: new BigNumber('0x' + values[4]).toString() == '1'
+ };
+ return digixObj;
+ }
+ $scope.$watch('tx', function() {
+ $scope.showRaw = false;
+ $scope.sendTxStatus = "";
+ }, true);
+ $scope.$watch('showSend', function() {
+ $scope.showRaw = false;
+ $scope.sendTxStatus = "";
+ if (!$scope.showSend) {
+ $scope.tx.data = $scope.digixClaim;
+ $scope.tx.to = $scope.digixContract;
+ $scope.tx.gasLimit = globalFuncs.digixClaimTxGasLimit;
+ }
+ });
+ $scope.generateTokenTx = function() {
+ try {
+ if (!ethFuncs.validateEtherAddress($scope.tokenTx.to)) throw globalFuncs.errorMsgs[5];
+ else if (!globalFuncs.isNumeric($scope.tokenTx.value) || parseFloat($scope.tokenTx.value) < 0) throw globalFuncs.errorMsgs[7];
+ else if ($scope.tokenTx.unit == "dgd" && new BigNumber($scope.tokenTx.value).greaterThan(new BigNumber($scope.tokenBalance))) throw globalFuncs.errorMsgs[7];
+ else if ($scope.tokenTx.unit == "dgdb" && new BigNumber($scope.tokenTx.value).greaterThan(new BigNumber($scope.badgeBalance))) throw globalFuncs.errorMsgs[7];
+ var value = 0;
+ if ($scope.tokenTx.unit == "dgd") {
+ value = new BigNumber($scope.tokenTx.value).times(etherUnits.getValueOfUnit('gwei')).toString(16);
+ $scope.tx.to = $scope.tokenContract;
+ } else {
+ value = new BigNumber($scope.tokenTx.value).toString(16);
+ $scope.tx.to = $scope.badgeContract;
+ }
+ value = ethFuncs.padLeft(value, 64);
+ var toAdd = ethFuncs.padLeft(ethFuncs.getNakedAddress($scope.tokenTx.to), 64);
+ $scope.tx.data = $scope.digixTransfer + toAdd + value;
+ $scope.tx.value = 0;
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
+ $scope.generateTx();
+ } catch (e) {
+ $scope.showRaw = false;
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.generateTx = function(){
+ uiFuncs.generateTx($scope,$sce);
+ }
+ $scope.sendTx = function() {
+ uiFuncs.sendTx($scope,$sce);
+ }
+};
+module.exports = digixCtrl;
},{}],10:[function(require,module,exports){
(function (Buffer){
-'use strict';
-var sendOfflineTxCtrl = function($scope, $sce, walletService) {
- walletService.wallet = null;
- walletService.password = '';
- $scope.showAdvance = false;
- $scope.showRaw = false;
- $scope.showWalletInfo = false;
- $scope.gasPriceDec = 0;
- $scope.nonceDec = 0;
- $scope.tx = {
- gasLimit: globalFuncs.defaultTxGasLimit,
- from: "",
- data: "",
- to: "",
- unit: "ether",
- value: '',
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- });
- $scope.getWalletInfo = function() {
- if (ethFuncs.validateEtherAddress($scope.tx.from)) {
- ajaxReq.getTransactionData($scope.tx.from, function(data) {
- if (data.error) throw data.msg;
- data = data.data;
- $scope.gasPriceDec = ethFuncs.hexToDecimal(ethFuncs.sanitizeHex(ethFuncs.addTinyMoreToGas(data.gasprice)));
- $scope.nonceDec = ethFuncs.hexToDecimal(data.nonce);
- $scope.showWalletInfo = true;
- });
- }
- }
- $scope.$watch('tx', function() {
- $scope.showRaw = false;
- $scope.sendTxStatus = "";
- }, true);
- $scope.validateAddress = function(address, status) {
- if (ethFuncs.validateEtherAddress(address)) {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
- } else {
- $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
- }
- }
- $scope.generateTx = function() {
- try {
- if (!ethFuncs.validateEtherAddress($scope.tx.to)) throw globalFuncs.errorMsgs[5];
- else if (!globalFuncs.isNumeric($scope.tx.value) || parseFloat($scope.tx.value) < 0) throw globalFuncs.errorMsgs[7];
- else if (!globalFuncs.isNumeric($scope.gasPriceDec) || parseFloat($scope.gasPriceDec) <= 0) throw globalFuncs.errorMsgs[10];
- else if (!globalFuncs.isNumeric($scope.nonceDec) || parseFloat($scope.nonceDec) < 0) throw globalFuncs.errorMsgs[11];
- else if (!globalFuncs.isNumeric($scope.tx.gasLimit) || parseFloat($scope.tx.gasLimit) <= 0) throw globalFuncs.errorMsgs[8];
- else if (!ethFuncs.validateHexString($scope.tx.data)) throw globalFuncs.errorMsgs[9];
- var rawTx = {
- nonce: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.nonceDec)),
- gasPrice: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.gasPriceDec)),
- gasLimit: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.tx.gasLimit)),
- to: ethFuncs.sanitizeHex($scope.tx.to),
- value: ethFuncs.sanitizeHex(ethFuncs.decimalToHex(etherUnits.toWei($scope.tx.value, $scope.tx.unit))),
- data: ethFuncs.sanitizeHex($scope.tx.data)
- }
- var eTx = new ethUtil.Tx(rawTx);
- eTx.sign(new Buffer($scope.wallet.getPrivateKeyString(), 'hex'));
- $scope.rawTx = JSON.stringify(rawTx);
- $scope.signedTx = '0x' + eTx.serialize().toString('hex');
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
- } catch (e) {
- $scope.showRaw = false;
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.confirmSendTx = function(){
- try {
- if($scope.signedTx=="" || !ethFuncs.validateHexString($scope.signedTx)) throw globalFuncs.errorMsgs[12];
- var eTx = new ethUtil.Tx($scope.signedTx);
- $scope.tx.to = '0x'+eTx.to.toString('hex');
- $scope.tx.value = etherUnits.toEther('0x'+eTx.value.toString('hex'),'wei');
- $scope.tx.unit = 'ether';
- new Modal(document.getElementById('sendTransactionOffline')).open();
- } catch (e){
- $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.sendTx = function() {
- new Modal(document.getElementById('sendTransactionOffline')).close();
- ajaxReq.sendRawTx($scope.signedTx, function(data) {
- if (data.error) {
- $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg));
- } else {
- $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[2] + " " + data.data));
- }
- });
- }
-};
+'use strict';
+var sendOfflineTxCtrl = function($scope, $sce, walletService) {
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.showAdvance = false;
+ $scope.showRaw = false;
+ $scope.showWalletInfo = false;
+ $scope.gasPriceDec = 0;
+ $scope.nonceDec = 0;
+ $scope.tx = {
+ gasLimit: globalFuncs.defaultTxGasLimit,
+ from: "",
+ data: "",
+ to: "",
+ unit: "ether",
+ value: '',
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ });
+ $scope.getWalletInfo = function() {
+ if (ethFuncs.validateEtherAddress($scope.tx.from)) {
+ ajaxReq.getTransactionData($scope.tx.from, function(data) {
+ if (data.error) throw data.msg;
+ data = data.data;
+ $scope.gasPriceDec = ethFuncs.hexToDecimal(ethFuncs.sanitizeHex(ethFuncs.addTinyMoreToGas(data.gasprice)));
+ $scope.nonceDec = ethFuncs.hexToDecimal(data.nonce);
+ $scope.showWalletInfo = true;
+ });
+ }
+ }
+ $scope.$watch('tx', function() {
+ $scope.showRaw = false;
+ $scope.sendTxStatus = "";
+ }, true);
+ $scope.validateAddress = function(address, status) {
+ if (ethFuncs.validateEtherAddress(address)) {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
+ } else {
+ $scope[status] = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
+ }
+ }
+ $scope.generateTx = function() {
+ try {
+ if (!ethFuncs.validateEtherAddress($scope.tx.to)) throw globalFuncs.errorMsgs[5];
+ else if (!globalFuncs.isNumeric($scope.tx.value) || parseFloat($scope.tx.value) < 0) throw globalFuncs.errorMsgs[7];
+ else if (!globalFuncs.isNumeric($scope.gasPriceDec) || parseFloat($scope.gasPriceDec) <= 0) throw globalFuncs.errorMsgs[10];
+ else if (!globalFuncs.isNumeric($scope.nonceDec) || parseFloat($scope.nonceDec) < 0) throw globalFuncs.errorMsgs[11];
+ else if (!globalFuncs.isNumeric($scope.tx.gasLimit) || parseFloat($scope.tx.gasLimit) <= 0) throw globalFuncs.errorMsgs[8];
+ else if (!ethFuncs.validateHexString($scope.tx.data)) throw globalFuncs.errorMsgs[9];
+ var rawTx = {
+ nonce: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.nonceDec)),
+ gasPrice: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.gasPriceDec)),
+ gasLimit: ethFuncs.sanitizeHex(ethFuncs.decimalToHex($scope.tx.gasLimit)),
+ to: ethFuncs.sanitizeHex($scope.tx.to),
+ value: ethFuncs.sanitizeHex(ethFuncs.decimalToHex(etherUnits.toWei($scope.tx.value, $scope.tx.unit))),
+ data: ethFuncs.sanitizeHex($scope.tx.data)
+ }
+ var eTx = new ethUtil.Tx(rawTx);
+ eTx.sign(new Buffer($scope.wallet.getPrivateKeyString(), 'hex'));
+ $scope.rawTx = JSON.stringify(rawTx);
+ $scope.signedTx = '0x' + eTx.serialize().toString('hex');
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
+ } catch (e) {
+ $scope.showRaw = false;
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.confirmSendTx = function(){
+ try {
+ if($scope.signedTx=="" || !ethFuncs.validateHexString($scope.signedTx)) throw globalFuncs.errorMsgs[12];
+ var eTx = new ethUtil.Tx($scope.signedTx);
+ $scope.tx.to = '0x'+eTx.to.toString('hex');
+ $scope.tx.value = etherUnits.toEther('0x'+eTx.value.toString('hex'),'wei');
+ $scope.tx.unit = 'ether';
+ new Modal(document.getElementById('sendTransactionOffline')).open();
+ } catch (e){
+ $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.sendTx = function() {
+ new Modal(document.getElementById('sendTransactionOffline')).close();
+ ajaxReq.sendRawTx($scope.signedTx, function(data) {
+ if (data.error) {
+ $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg));
+ } else {
+ $scope.offlineTxPublishStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[2] + " " + data.data));
+ }
+ });
+ }
+};
module.exports = sendOfflineTxCtrl;
}).call(this,require("buffer").Buffer)
-},{"buffer":84}],11:[function(require,module,exports){
-'use strict';
-var sendTxCtrl = function($scope, $sce, walletService) {
- new Modal(document.getElementById('sendTransaction'));
- walletService.wallet = null;
- walletService.password = '';
- $scope.showAdvance = false;
- $scope.showRaw = false;
- $scope.tx = {
- gasLimit: globalFuncs.urlGet('gaslimit') == null ? globalFuncs.defaultTxGasLimit : globalFuncs.urlGet('gaslimit'),
- data: globalFuncs.urlGet('data') == null ? "" : globalFuncs.urlGet('data'),
- to: globalFuncs.urlGet('to') == null ? "" : globalFuncs.urlGet('to'),
- unit: "ether",
- value: globalFuncs.urlGet('value') == null ? "" : globalFuncs.urlGet('value'),
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- $scope.setBalance();
- });
- $scope.setBalance = function() {
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
- ajaxReq.getETHvalue(function(data) {
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
- });
- }
- });
- }
- $scope.$watch('tx', function() {
- $scope.showRaw = false;
- $scope.sendTxStatus = "";
- }, true);
- $scope.validateAddress = function() {
- if (ethFuncs.validateEtherAddress($scope.tx.to)) {
- $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
- } else {
- $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
- }
- }
- $scope.toggleShowAdvance = function() {
- $scope.showAdvance = !$scope.showAdvance;
- }
- $scope.onDonateClick = function() {
- $scope.tx.to = globalFuncs.donateAddress;
- $scope.tx.donate = true;
- $scope.validateAddress();
- }
- $scope.generateTx = function(){
- uiFuncs.generateTx($scope,$sce);
- }
- $scope.sendTx = function() {
- uiFuncs.sendTx($scope,$sce);
- }
- $scope.transferAllBalance = function() {
- uiFuncs.transferAllBalance($scope,$sce);
- }
-};
+},{"buffer":83}],11:[function(require,module,exports){
+'use strict';
+var sendTxCtrl = function($scope, $sce, walletService) {
+ new Modal(document.getElementById('sendTransaction'));
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.showAdvance = false;
+ $scope.showRaw = false;
+ $scope.tx = {
+ gasLimit: globalFuncs.urlGet('gaslimit') == null ? globalFuncs.defaultTxGasLimit : globalFuncs.urlGet('gaslimit'),
+ data: globalFuncs.urlGet('data') == null ? "" : globalFuncs.urlGet('data'),
+ to: globalFuncs.urlGet('to') == null ? "" : globalFuncs.urlGet('to'),
+ unit: "ether",
+ value: globalFuncs.urlGet('value') == null ? "" : globalFuncs.urlGet('value'),
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ $scope.setBalance();
+ });
+ $scope.setBalance = function() {
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
+ ajaxReq.getETHvalue(function(data) {
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
+ });
+ }
+ });
+ }
+ $scope.$watch('tx', function() {
+ $scope.showRaw = false;
+ $scope.sendTxStatus = "";
+ }, true);
+ $scope.validateAddress = function() {
+ if (ethFuncs.validateEtherAddress($scope.tx.to)) {
+ $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[0]));
+ } else {
+ $scope.validateAddressStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[5]));
+ }
+ }
+ $scope.toggleShowAdvance = function() {
+ $scope.showAdvance = !$scope.showAdvance;
+ }
+ $scope.onDonateClick = function() {
+ $scope.tx.to = globalFuncs.donateAddress;
+ $scope.tx.donate = true;
+ $scope.validateAddress();
+ }
+ $scope.generateTx = function(){
+ uiFuncs.generateTx($scope,$sce);
+ }
+ $scope.sendTx = function() {
+ uiFuncs.sendTx($scope,$sce);
+ }
+ $scope.transferAllBalance = function() {
+ uiFuncs.transferAllBalance($scope,$sce);
+ }
+};
module.exports = sendTxCtrl;
},{}],12:[function(require,module,exports){
-'use strict';
-var tabsCtrl = function($scope, globalService) {
- $scope.tabNames = globalService.tabs;
- var hval = window.location.hash;
- if(hval!=""){
- hval = hval.replace("#",'');
- for (var key in $scope.tabNames) {
- if($scope.tabNames[key].url == hval){
- $scope.activeTab = globalService.currentTab = $scope.tabNames[key].id;
- break;
- }
- $scope.activeTab = globalService.currentTab;
- }
- } else {
- $scope.activeTab = globalService.currentTab;
- }
- $scope.tabClick = function(id) {
- $scope.activeTab = globalService.currentTab = id;
- for (var key in $scope.tabNames) {
- if($scope.tabNames[key].id == id)
- location.hash = $scope.tabNames[key].url;
- }
- }
-};
-module.exports = tabsCtrl;
+'use strict';
+var tabsCtrl = function($scope, globalService) {
+ $scope.tabNames = globalService.tabs;
+ var hval = window.location.hash;
+ if(hval!=""){
+ hval = hval.replace("#",'');
+ for (var key in $scope.tabNames) {
+ if($scope.tabNames[key].url == hval){
+ $scope.activeTab = globalService.currentTab = $scope.tabNames[key].id;
+ break;
+ }
+ $scope.activeTab = globalService.currentTab;
+ }
+ } else {
+ $scope.activeTab = globalService.currentTab;
+ }
+ $scope.tabClick = function(id) {
+ $scope.activeTab = globalService.currentTab = id;
+ for (var key in $scope.tabNames) {
+ if($scope.tabNames[key].id == id)
+ location.hash = $scope.tabNames[key].url;
+ }
+ }
+};
+module.exports = tabsCtrl;
},{}],13:[function(require,module,exports){
-'use strict';
-var theDaoCtrl = function($scope, $sce, walletService) {
- $scope.curTab = "send";
- new Modal(document.getElementById('sendTransaction'));
- $scope.voteModal = new Modal(document.getElementById('voteProposal'));
- $scope.showVoteYes = $scope.showVoteNo = true;
- walletService.wallet = null;
- walletService.password = '';
- $scope.showAdvance = false;
- $scope.showRaw = false;
- $scope.slockitContract = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413"; //0xd838f9c9792bf8398e1f5fbfbd3b43c5a86445aa
- $scope.slockitBalance = "0x70a08231";
- $scope.slockitSupply = "0x18160ddd";
- $scope.slockitTransfer = "0xa9059cbb";
- $scope.slockitProposal = "0x013cf08b";
- $scope.slockitminQuorumDivisor = "0x674ed066";
- $scope.slockitABalance = "0x39d1f908";
- $scope.slockitRToken = "0xcdef91d0";
- $scope.slockitVote = "0xc9d27afe";
- $scope.tx = {
- gasLimit: 150000,
- data: '',
- to: $scope.slockitContract,
- unit: "ether",
- value: 0,
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.token = {
- balance: 0,
- total: 0,
- totRaised: 0
- }
- $scope.tokenTx = {
- to: '',
- value: 0,
- unit: "dao"
- }
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- $scope.setBalance();
- });
- $scope.setBalance = function() {
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
- ajaxReq.getETHvalue(function(data) {
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
- });
- }
- });
- var userInfo = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitBalance, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
- ajaxReq.getEthCall(userInfo, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.token.balance = new BigNumber(data.data).div(etherUnits.getValueOfUnit('milli') * 10).toString();
- }
- });
- var totSupply = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitSupply, []);
- ajaxReq.getEthCall(totSupply, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.token.total = new BigNumber(data.data).toString();
- }
- });
- ajaxReq.getBalance($scope.slockitContract, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.token.totRaised = etherUnits.toEther(data.data.balance, 'wei');
- }
- });
- var minq = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitminQuorumDivisor, []);
- ajaxReq.getEthCall(minq, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.minQuorumDivisor = new BigNumber(data.data).toNumber();
- }
- });
- var actB = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitABalance, []);
- ajaxReq.getEthCall(actB, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.actualBalance = new BigNumber(data.data).toNumber();
- }
- });
- var rToken = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitRToken, [ethFuncs.getNakedAddress($scope.slockitContract)]);
- ajaxReq.getEthCall(rToken, function(data) {
- if (data.error) {
- $scope.etherBalance = data.msg;
- } else {
- $scope.rewardToken = new BigNumber(data.data).toNumber();
- }
- });
- }
-
- $scope.setProposal = function() {
- try {
- $scope.loadProposalStatus = "";
- if (!globalFuncs.isNumeric($scope.proposalId) || parseFloat($scope.proposalId) < 0) throw globalFuncs.errorMsgs[15];
- var callProposal = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitProposal, [new BigNumber($scope.proposalId).toString(16)]);
- ajaxReq.getEthCall(callProposal, function(data) {
- try {
- if (data.error) {
- $scope.loadProposalStatus = data.msg;
- } else {
- var proposal = ethFuncs.contractOutToArray(data.data);
- $scope.objProposal = {
- id: $scope.proposalId,
- recipient: '0x' + proposal[0],
- amount: etherUnits.toEther('0x' + proposal[1], 'wei'),
- content: proposal[12] == "0" ? "" : proposal.slice(13).join(),
- description: proposal[12] == "0" ? "Propsoal ID #" + $scope.proposalId : globalFuncs.stripTags(globalFuncs.hexToAscii(proposal.slice(13).join('')).replace(/ /g, '\n').replace(/\\n/g, '\n')),
- votingDeadline: new Date(new BigNumber("0x" + proposal[3]).toNumber() * 1000),
- today: new Date(),
- open: proposal[4] == '1' ? true : false,
- proposalPassed: proposal[5] == '1' ? true : false,
- proposalHash: '0x' + proposal[6],
- proposalDeposit: etherUnits.toEther('0x' + proposal[7], 'wei'),
- split: proposal[8] == '1' ? true : false,
- yea: etherUnits.toEther('0x' + proposal[9], 'wei'),
- nay: etherUnits.toEther('0x' + proposal[10], 'wei'),
- creator: "0x" + proposal[11],
- enabled: true,
- minQuroum: function() {
- var totalInWei = etherUnits.toWei($scope.token.totRaised, "ether");
- return etherUnits.toEther(totalInWei / $scope.minQuorumDivisor + (etherUnits.toWei(this.amount, "ether") * totalInWei) / (3 * ($scope.actualBalance + $scope.rewardToken)), "wei");
- },
- data: proposal
- };
- $scope.showProposal = true;
-
- var yeaBN = new BigNumber($scope.objProposal.yea);
- var nayBN = new BigNumber($scope.objProposal.nay);
- $scope.objProposal.totalVotes = yeaBN.plus(nayBN)
- $scope.objProposal.yeaPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : yeaBN.div($scope.objProposal.totalVotes).times(100).toNumber();
- $scope.objProposal.nayPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : nayBN.div($scope.objProposal.totalVotes).times(100).toNumber();
-
- $scope.objProposal.quorumCurrent = ($scope.objProposal.totalVotes * 100) / $scope.token.totRaised;
- $scope.objProposal.quorumPer = ($scope.objProposal.minQuroum() * 100) / $scope.token.totRaised;
-
- $scope.objProposal.openEnglish = $scope.objProposal.open == true ? "Yes" : "No";
- $scope.objProposal.splitEnglish = $scope.objProposal.split == true ? "Yes" : "No";
- $scope.objProposal.proposalPassedEnglish = $scope.objProposal.proposalPassed == true ? "Yes" : "No";
-
- if ($scope.objProposal.description.indexOf('\n') > 0) {
- var firstLine = $scope.objProposal.description.substring(0, $scope.objProposal.description.indexOf('\n'));
- $scope.objProposal.descriptionHTML = $sce.trustAsHtml(marked($scope.objProposal.description.substring(firstLine.length + 1) || ""));
- $scope.objProposal.description = firstLine;
- }
- }
- } catch (e) {
- $scope.loadProposalStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[15] + e));
- $scope.showProposal = false;
- }
- });
- } catch (e) {
- $scope.loadProposalStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.$watch('curTab', function() {
- $scope.tx.data = '';
- $scope.showRaw = $scope.showProposal = false;
- });
- $scope.$watch('[tx,curTab]', function() {
- $scope.showRaw = false;
- $scope.sendTxStatus = "";
- }, true);
-
- // sending
- $scope.generateTokenTx = function() {
- try {
- if (!ethFuncs.validateEtherAddress($scope.tokenTx.to)) throw globalFuncs.errorMsgs[5];
- else if (!globalFuncs.isNumeric($scope.tokenTx.value) || parseFloat($scope.tokenTx.value) < 0) throw globalFuncs.errorMsgs[7];
- $scope.tx.to = $scope.slockitContract;
- var value = ethFuncs.padLeft(new BigNumber($scope.tokenTx.value).times(etherUnits.getValueOfUnit('milli') * 10).toString(16), 64);
- var toAdd = ethFuncs.padLeft(ethFuncs.getNakedAddress($scope.tokenTx.to), 64);
- $scope.tx.data = $scope.slockitTransfer + toAdd + value;
- $scope.tx.value = 0;
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
- $scope.generateTx();
- } catch (e) {
- $scope.showRaw = false;
- $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- };
-
- $scope.generateTx = function() {
- uiFuncs.generateTx($scope, $sce);
- }
- $scope.sendTx = function() {
- uiFuncs.sendTx($scope, $sce);
- }
-
- // voting
- $scope.generateVoteTx = function(isYes) {
- if (isYes) $scope.showVoteNo = false;
- else $scope.showVoteYes = false;
- try {
- $scope.tx.to = $scope.slockitContract;
- var id = ethFuncs.padLeft(new BigNumber($scope.proposalId).toString(16), 64);
- var vote = isYes ? ethFuncs.padLeft("1", 64) : ethFuncs.padLeft("0", 64);
- $scope.tx.data = $scope.slockitVote + id + vote;
- $scope.tx.value = 0;
- $scope.generateTx2();
- } catch (e) {
- $scope.showRaw = false;
- $scope.voteTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.generateTx2 = function() {
- uiFuncs.generateTx($scope, $sce, function() {
- $scope.sendTx2();
- });
- }
- $scope.sendTx2 = function() {
- ajaxReq.sendRawTx($scope.signedTx, function(data) {
- if (data.error) {
- $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg + " " + globalFuncs.errorMsgs[17]));
- } else {
- $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[4] + " " + globalFuncs.successMsgs[2] + " " + data.data));
- }
- });
- }
-};
-module.exports = theDaoCtrl;
+'use strict';
+var theDaoCtrl = function($scope, $sce, walletService) {
+ $scope.curTab = "send";
+ new Modal(document.getElementById('sendTransaction'));
+ $scope.voteModal = new Modal(document.getElementById('voteProposal'));
+ $scope.showVoteYes = $scope.showVoteNo = true;
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.showAdvance = false;
+ $scope.showRaw = false;
+ $scope.slockitContract = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413"; //0xd838f9c9792bf8398e1f5fbfbd3b43c5a86445aa
+ $scope.slockitBalance = "0x70a08231";
+ $scope.slockitSupply = "0x18160ddd";
+ $scope.slockitTransfer = "0xa9059cbb";
+ $scope.slockitProposal = "0x013cf08b";
+ $scope.slockitminQuorumDivisor = "0x674ed066";
+ $scope.slockitABalance = "0x39d1f908";
+ $scope.slockitRToken = "0xcdef91d0";
+ $scope.slockitVote = "0xc9d27afe";
+ $scope.tx = {
+ gasLimit: 150000,
+ data: '',
+ to: $scope.slockitContract,
+ unit: "ether",
+ value: 0,
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.token = {
+ balance: 0,
+ total: 0,
+ totRaised: 0
+ }
+ $scope.tokenTx = {
+ to: '',
+ value: 0,
+ unit: "dao"
+ }
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ $scope.setBalance();
+ });
+ $scope.setBalance = function() {
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance, 'wei');
+ ajaxReq.getETHvalue(function(data) {
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance, 'ether', data.btc);
+ });
+ }
+ });
+ var userInfo = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitBalance, [ethFuncs.getNakedAddress($scope.wallet.getAddressString())]);
+ ajaxReq.getEthCall(userInfo, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.token.balance = new BigNumber(data.data).div(etherUnits.getValueOfUnit('milli') * 10).toString();
+ }
+ });
+ var totSupply = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitSupply, []);
+ ajaxReq.getEthCall(totSupply, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.token.total = new BigNumber(data.data).toString();
+ }
+ });
+ ajaxReq.getBalance($scope.slockitContract, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.token.totRaised = etherUnits.toEther(data.data.balance, 'wei');
+ }
+ });
+ var minq = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitminQuorumDivisor, []);
+ ajaxReq.getEthCall(minq, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.minQuorumDivisor = new BigNumber(data.data).toNumber();
+ }
+ });
+ var actB = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitABalance, []);
+ ajaxReq.getEthCall(actB, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.actualBalance = new BigNumber(data.data).toNumber();
+ }
+ });
+ var rToken = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitRToken, [ethFuncs.getNakedAddress($scope.slockitContract)]);
+ ajaxReq.getEthCall(rToken, function(data) {
+ if (data.error) {
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.rewardToken = new BigNumber(data.data).toNumber();
+ }
+ });
+ }
+
+ $scope.setProposal = function() {
+ try {
+ $scope.loadProposalStatus = "";
+ if (!globalFuncs.isNumeric($scope.proposalId) || parseFloat($scope.proposalId) < 0) throw globalFuncs.errorMsgs[15];
+ var callProposal = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitProposal, [new BigNumber($scope.proposalId).toString(16)]);
+ ajaxReq.getEthCall(callProposal, function(data) {
+ try {
+ if (data.error) {
+ $scope.loadProposalStatus = data.msg;
+ } else {
+ var proposal = ethFuncs.contractOutToArray(data.data);
+ $scope.objProposal = {
+ id: $scope.proposalId,
+ recipient: '0x' + proposal[0],
+ amount: etherUnits.toEther('0x' + proposal[1], 'wei'),
+ content: proposal[12] == "0" ? "" : proposal.slice(13).join(),
+ description: proposal[12] == "0" ? "Propsoal ID #" + $scope.proposalId : globalFuncs.stripTags(globalFuncs.hexToAscii(proposal.slice(13).join('')).replace(/ /g, '\n').replace(/\\n/g, '\n')),
+ votingDeadline: new Date(new BigNumber("0x" + proposal[3]).toNumber() * 1000),
+ today: new Date(),
+ open: proposal[4] == '1' ? true : false,
+ proposalPassed: proposal[5] == '1' ? true : false,
+ proposalHash: '0x' + proposal[6],
+ proposalDeposit: etherUnits.toEther('0x' + proposal[7], 'wei'),
+ split: proposal[8] == '1' ? true : false,
+ yea: etherUnits.toEther('0x' + proposal[9], 'wei'),
+ nay: etherUnits.toEther('0x' + proposal[10], 'wei'),
+ creator: "0x" + proposal[11],
+ enabled: true,
+ minQuroum: function() {
+ var totalInWei = etherUnits.toWei($scope.token.totRaised, "ether");
+ return etherUnits.toEther(totalInWei / $scope.minQuorumDivisor + (etherUnits.toWei(this.amount, "ether") * totalInWei) / (3 * ($scope.actualBalance + $scope.rewardToken)), "wei");
+ },
+ data: proposal
+ };
+ $scope.showProposal = true;
+
+ var yeaBN = new BigNumber($scope.objProposal.yea);
+ var nayBN = new BigNumber($scope.objProposal.nay);
+ $scope.objProposal.totalVotes = yeaBN.plus(nayBN)
+ $scope.objProposal.yeaPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : yeaBN.div($scope.objProposal.totalVotes).times(100).toNumber();
+ $scope.objProposal.nayPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : nayBN.div($scope.objProposal.totalVotes).times(100).toNumber();
+
+ $scope.objProposal.quorumCurrent = ($scope.objProposal.totalVotes * 100) / $scope.token.totRaised;
+ $scope.objProposal.quorumPer = ($scope.objProposal.minQuroum() * 100) / $scope.token.totRaised;
+
+ $scope.objProposal.openEnglish = $scope.objProposal.open == true ? "Yes" : "No";
+ $scope.objProposal.splitEnglish = $scope.objProposal.split == true ? "Yes" : "No";
+ $scope.objProposal.proposalPassedEnglish = $scope.objProposal.proposalPassed == true ? "Yes" : "No";
+
+ if ($scope.objProposal.description.indexOf('\n') > 0) {
+ var firstLine = $scope.objProposal.description.substring(0, $scope.objProposal.description.indexOf('\n'));
+ $scope.objProposal.descriptionHTML = $sce.trustAsHtml(marked($scope.objProposal.description.substring(firstLine.length + 1) || ""));
+ $scope.objProposal.description = firstLine;
+ }
+ }
+ } catch (e) {
+ $scope.loadProposalStatus = $sce.trustAsHtml(globalFuncs.getDangerText(globalFuncs.errorMsgs[15] + e));
+ $scope.showProposal = false;
+ }
+ });
+ } catch (e) {
+ $scope.loadProposalStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.$watch('curTab', function() {
+ $scope.tx.data = '';
+ $scope.showRaw = $scope.showProposal = false;
+ });
+ $scope.$watch('[tx,curTab]', function() {
+ $scope.showRaw = false;
+ $scope.sendTxStatus = "";
+ }, true);
+
+ // sending
+ $scope.generateTokenTx = function() {
+ try {
+ if (!ethFuncs.validateEtherAddress($scope.tokenTx.to)) throw globalFuncs.errorMsgs[5];
+ else if (!globalFuncs.isNumeric($scope.tokenTx.value) || parseFloat($scope.tokenTx.value) < 0) throw globalFuncs.errorMsgs[7];
+ $scope.tx.to = $scope.slockitContract;
+ var value = ethFuncs.padLeft(new BigNumber($scope.tokenTx.value).times(etherUnits.getValueOfUnit('milli') * 10).toString(16), 64);
+ var toAdd = ethFuncs.padLeft(ethFuncs.getNakedAddress($scope.tokenTx.to), 64);
+ $scope.tx.data = $scope.slockitTransfer + toAdd + value;
+ $scope.tx.value = 0;
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(''));
+ $scope.generateTx();
+ } catch (e) {
+ $scope.showRaw = false;
+ $scope.validateTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ };
+
+ $scope.generateTx = function() {
+ uiFuncs.generateTx($scope, $sce);
+ }
+ $scope.sendTx = function() {
+ uiFuncs.sendTx($scope, $sce);
+ }
+
+ // voting
+ $scope.generateVoteTx = function(isYes) {
+ if (isYes) $scope.showVoteNo = false;
+ else $scope.showVoteYes = false;
+ try {
+ $scope.tx.to = $scope.slockitContract;
+ var id = ethFuncs.padLeft(new BigNumber($scope.proposalId).toString(16), 64);
+ var vote = isYes ? ethFuncs.padLeft("1", 64) : ethFuncs.padLeft("0", 64);
+ $scope.tx.data = $scope.slockitVote + id + vote;
+ $scope.tx.value = 0;
+ $scope.generateTx2();
+ } catch (e) {
+ $scope.showRaw = false;
+ $scope.voteTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.generateTx2 = function() {
+ uiFuncs.generateTx($scope, $sce, function() {
+ $scope.sendTx2();
+ });
+ }
+ $scope.sendTx2 = function() {
+ ajaxReq.sendRawTx($scope.signedTx, function(data) {
+ if (data.error) {
+ $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg + " " + globalFuncs.errorMsgs[17]));
+ } else {
+ $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[4] + " " + globalFuncs.successMsgs[2] + " " + data.data));
+ }
+ });
+ }
+};
+module.exports = theDaoCtrl;
},{}],14:[function(require,module,exports){
-'use strict';
-var theDaoProposalCtrl = function($scope, $sce, walletService) {
- walletService.wallet = null;
- walletService.password = '';
- $scope.voteModal = new Modal(document.getElementById('voteProposal'));
- $scope.showVoteYes = $scope.showVoteNo = true;
- $scope.AllProposals = [];
- $scope.slockitContract = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413";
- $scope.slockitBalance = "0x70a08231";
- $scope.slockitSupply = "0x18160ddd";
- $scope.slockitTransfer = "0xa9059cbb";
- $scope.slockitProposal = "0x013cf08b";
- $scope.slockitminQuorumDivisor = "0x674ed066";
- $scope.slockitABalance = "0x39d1f908";
- $scope.slockitRToken = "0xcdef91d0";
- $scope.slockitVote = "0xc9d27afe";
- $scope.initValues = function() {
- ajaxReq.getBalance($scope.slockitContract, function(data) {
- if (!data.error) $scope.totRaised = etherUnits.toEther(data.data.balance, 'wei');
- var minq = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitminQuorumDivisor, []);
- ajaxReq.getEthCall(minq, function(data) {
- if (!data.error) $scope.minQuorumDivisor = new BigNumber(data.data).toNumber();
- var actB = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitABalance, []);
- ajaxReq.getEthCall(actB, function(data) {
- if (!data.error) $scope.actualBalance = new BigNumber(data.data).toNumber();
- var rToken = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitRToken, [ethFuncs.getNakedAddress($scope.slockitContract)]);
- ajaxReq.getEthCall(rToken, function(data) {
- if (!data.error) $scope.rewardToken = new BigNumber(data.data).toNumber();
- $scope.getAllProposals();
- });
- });
- });
- });
- }
- $scope.tx = {
- gasLimit: 150000,
- data: '',
- to: $scope.slockitContract,
- unit: "ether",
- value: 0,
- nonce: null,
- gasPrice: null,
- donate: false
- }
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- });
- $scope.openVote = function(id) {
- $scope.voteID = id;
- $scope.showVoteYes = $scope.showVoteNo = true;
- $scope.voteTxStatus = $scope.sendTxStatus = "";
- $scope.voteModal.open();
- }
- $scope.getAllProposals = function() {
- ajaxReq.getDAOProposals(function(proposals) {
- for (var i = 0; i < proposals.length; i++) {
- $scope.AllProposals.push($scope.getProposalObj(proposals[i]));
- }
- });
- }
- $scope.comparator = globalFuncs.urlGet('id') != null;
- $scope.filters = {
- id: globalFuncs.urlGet('id') != null ? parseInt(globalFuncs.urlGet('id')) : '',
- open: globalFuncs.urlGet('open') != null ? globalFuncs.urlGet('open') : (function () { return; })(),
- split: globalFuncs.urlGet('split') != null ? globalFuncs.urlGet('split') : (function () { return; })(),
- description: globalFuncs.urlGet('description') != null ? globalFuncs.urlGet('description') :(function () { return; })()
- };
- if ($scope.filters.id == '' && $scope.filters.open == undefined && $scope.filters.split == undefined && $scope.filters.description == undefined ) {
- $scope.filters.split = 'false';
- $scope.filters.open = 'true';
- }
- $scope.$watch('filters', function(newValue, oldValue) {
- if ((newValue.id != oldValue.id) && ($scope.filters.id == '' || $scope.filters.id == null)) {
- $scope.filters = {}
- $scope.comparator = false;
- }
- if (newValue.id != '' && newValue.id != null) {
- $scope.filters = {id:newValue.id};
- $scope.comparator = true;
- }
- }, true);
- $scope.initValues();
- $scope.showProposal = function(id) {
- if (!$scope.AllProposals[id].showprop) {
- var callProposal = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitProposal, [new BigNumber(id).toString(16)]);
- ajaxReq.getEthCall(callProposal, function(data) {
- var iobj = {
- proposalID: id,
- data: data.data
- };
- $scope.AllProposals[id] = $scope.getProposalObj(iobj);
- $scope.AllProposals[id].showprop = true;
- });
- } else {
- $scope.AllProposals[id].showprop = false;
- }
- }
- $scope.generateVoteTx = function(isYes) {
- if (isYes) $scope.showVoteNo = false;
- else $scope.showVoteYes = false;
- try {
- $scope.tx.to = $scope.slockitContract;
- var id = ethFuncs.padLeft(new BigNumber($scope.voteID).toString(16), 64);
- var vote = isYes ? ethFuncs.padLeft("1", 64) : ethFuncs.padLeft("0", 64);
- $scope.tx.data = $scope.slockitVote + id + vote;
- $scope.tx.value = 0;
- $scope.generateTx();
- } catch (e) {
- $scope.showRaw = false;
- $scope.voteTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
- }
- }
- $scope.getProposalObj = function(tProposal) {
- var proposal = ethFuncs.contractOutToArray(tProposal.data);
- var objProposal = {
- id: tProposal.proposalID,
- recipient: '0x' + proposal[0],
- amount: etherUnits.toEther('0x' + proposal[1], 'wei'),
- content: proposal[12] == "0" ? "" : proposal.slice(13).join(),
- description: proposal[12] == "0" ? "Propsoal ID #" + tProposal.proposalID : globalFuncs.stripTags(globalFuncs.hexToAscii(proposal.slice(13).join('')).replace(/ /g, '\n').replace(/\\n/g, '\n')),
- votingDeadline: new Date(new BigNumber("0x" + proposal[3]).toNumber() * 1000),
- today: new Date(),
- open: proposal[4] == '1' ? true : false,
- proposalPassed: proposal[5] == '1' ? true : false,
- proposalHash: '0x' + proposal[6],
- proposalDeposit: etherUnits.toEther('0x' + proposal[7], 'wei'),
- split: proposal[8] == '1' ? true : false,
- yea: etherUnits.toEther('0x' + proposal[9], 'wei'),
- nay: etherUnits.toEther('0x' + proposal[10], 'wei'),
- creator: "0x" + proposal[11],
- show: true,
- showprop: false,
- minQuroum: function() {
- var totalInWei = etherUnits.toWei($scope.totRaised, "ether");
- return etherUnits.toEther(totalInWei / $scope.minQuorumDivisor + (etherUnits.toWei(this.amount, "ether") * totalInWei) / (3 * ($scope.actualBalance + $scope.rewardToken)), "wei");
- },
- data: proposal
- };
- var yeaBN = new BigNumber(objProposal.yea);
- var nayBN = new BigNumber(objProposal.nay);
- objProposal.totalVotes = yeaBN.plus(nayBN)
- objProposal.yeaPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : yeaBN.div(objProposal.totalVotes).times(100).toNumber();
- objProposal.nayPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : nayBN.div(objProposal.totalVotes).times(100).toNumber();
- objProposal.quorumCurrent = (objProposal.totalVotes * 100) / $scope.totRaised;
- objProposal.quorumPer = (objProposal.minQuroum() * 100) / $scope.totRaised;
- objProposal.openEnglish = objProposal.open == true ? "Yes" : "No";
- objProposal.splitEnglish = objProposal.split == true ? "Yes" : "No";
- objProposal.proposalPassedEnglish = objProposal.proposalPassed == true ? "Yes" : "No";
- if (objProposal.description.indexOf('\n') > 0) {
- var firstLine = objProposal.description.substring(0, objProposal.description.indexOf('\n'));
- objProposal.descriptionHTML = $sce.trustAsHtml(marked(objProposal.description.substring(firstLine.length + 1) || ""));
- objProposal.description = firstLine;
- }
- return objProposal;
- }
- $scope.generateTx = function() {
- uiFuncs.generateTx($scope, $sce, function() {
- $scope.sendTx();
- });
- }
- $scope.sendTx = function() {
- ajaxReq.sendRawTx($scope.signedTx, function(data) {
- if (data.error) {
- $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg + " " + globalFuncs.errorMsgs[17]));
- } else {
- $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[4] + " " + globalFuncs.successMsgs[2] + " " + data.data));
- }
- });
- }
-};
+'use strict';
+var theDaoProposalCtrl = function($scope, $sce, walletService) {
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.voteModal = new Modal(document.getElementById('voteProposal'));
+ $scope.showVoteYes = $scope.showVoteNo = true;
+ $scope.AllProposals = [];
+ $scope.slockitContract = "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413";
+ $scope.slockitBalance = "0x70a08231";
+ $scope.slockitSupply = "0x18160ddd";
+ $scope.slockitTransfer = "0xa9059cbb";
+ $scope.slockitProposal = "0x013cf08b";
+ $scope.slockitminQuorumDivisor = "0x674ed066";
+ $scope.slockitABalance = "0x39d1f908";
+ $scope.slockitRToken = "0xcdef91d0";
+ $scope.slockitVote = "0xc9d27afe";
+ $scope.initValues = function() {
+ ajaxReq.getBalance($scope.slockitContract, function(data) {
+ if (!data.error) $scope.totRaised = etherUnits.toEther(data.data.balance, 'wei');
+ var minq = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitminQuorumDivisor, []);
+ ajaxReq.getEthCall(minq, function(data) {
+ if (!data.error) $scope.minQuorumDivisor = new BigNumber(data.data).toNumber();
+ var actB = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitABalance, []);
+ ajaxReq.getEthCall(actB, function(data) {
+ if (!data.error) $scope.actualBalance = new BigNumber(data.data).toNumber();
+ var rToken = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitRToken, [ethFuncs.getNakedAddress($scope.slockitContract)]);
+ ajaxReq.getEthCall(rToken, function(data) {
+ if (!data.error) $scope.rewardToken = new BigNumber(data.data).toNumber();
+ $scope.getAllProposals();
+ });
+ });
+ });
+ });
+ }
+ $scope.tx = {
+ gasLimit: 150000,
+ data: '',
+ to: $scope.slockitContract,
+ unit: "ether",
+ value: 0,
+ nonce: null,
+ gasPrice: null,
+ donate: false
+ }
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ });
+ $scope.openVote = function(id) {
+ $scope.voteID = id;
+ $scope.showVoteYes = $scope.showVoteNo = true;
+ $scope.voteTxStatus = $scope.sendTxStatus = "";
+ $scope.voteModal.open();
+ }
+ $scope.getAllProposals = function() {
+ ajaxReq.getDAOProposals(function(proposals) {
+ for (var i = 0; i < proposals.length; i++) {
+ $scope.AllProposals.push($scope.getProposalObj(proposals[i]));
+ }
+ });
+ }
+ $scope.comparator = globalFuncs.urlGet('id') != null;
+ $scope.filters = {
+ id: globalFuncs.urlGet('id') != null ? parseInt(globalFuncs.urlGet('id')) : '',
+ open: globalFuncs.urlGet('open') != null ? globalFuncs.urlGet('open') : (function () { return; })(),
+ split: globalFuncs.urlGet('split') != null ? globalFuncs.urlGet('split') : (function () { return; })(),
+ description: globalFuncs.urlGet('description') != null ? globalFuncs.urlGet('description') :(function () { return; })()
+ };
+ if ($scope.filters.id == '' && $scope.filters.open == undefined && $scope.filters.split == undefined && $scope.filters.description == undefined ) {
+ $scope.filters.split = 'false';
+ $scope.filters.open = 'true';
+ }
+ $scope.$watch('filters', function(newValue, oldValue) {
+ if ((newValue.id != oldValue.id) && ($scope.filters.id == '' || $scope.filters.id == null)) {
+ $scope.filters = {}
+ $scope.comparator = false;
+ }
+ if (newValue.id != '' && newValue.id != null) {
+ $scope.filters = {id:newValue.id};
+ $scope.comparator = true;
+ }
+ }, true);
+ $scope.initValues();
+ $scope.showProposal = function(id) {
+ if (!$scope.AllProposals[id].showprop) {
+ var callProposal = ethFuncs.getDataObj($scope.slockitContract, $scope.slockitProposal, [new BigNumber(id).toString(16)]);
+ ajaxReq.getEthCall(callProposal, function(data) {
+ var iobj = {
+ proposalID: id,
+ data: data.data
+ };
+ $scope.AllProposals[id] = $scope.getProposalObj(iobj);
+ $scope.AllProposals[id].showprop = true;
+ });
+ } else {
+ $scope.AllProposals[id].showprop = false;
+ }
+ }
+ $scope.generateVoteTx = function(isYes) {
+ if (isYes) $scope.showVoteNo = false;
+ else $scope.showVoteYes = false;
+ try {
+ $scope.tx.to = $scope.slockitContract;
+ var id = ethFuncs.padLeft(new BigNumber($scope.voteID).toString(16), 64);
+ var vote = isYes ? ethFuncs.padLeft("1", 64) : ethFuncs.padLeft("0", 64);
+ $scope.tx.data = $scope.slockitVote + id + vote;
+ $scope.tx.value = 0;
+ $scope.generateTx();
+ } catch (e) {
+ $scope.showRaw = false;
+ $scope.voteTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(e));
+ }
+ }
+ $scope.getProposalObj = function(tProposal) {
+ var proposal = ethFuncs.contractOutToArray(tProposal.data);
+ var objProposal = {
+ id: tProposal.proposalID,
+ recipient: '0x' + proposal[0],
+ amount: etherUnits.toEther('0x' + proposal[1], 'wei'),
+ content: proposal[12] == "0" ? "" : proposal.slice(13).join(),
+ description: proposal[12] == "0" ? "Propsoal ID #" + tProposal.proposalID : globalFuncs.stripTags(globalFuncs.hexToAscii(proposal.slice(13).join('')).replace(/ /g, '\n').replace(/\\n/g, '\n')),
+ votingDeadline: new Date(new BigNumber("0x" + proposal[3]).toNumber() * 1000),
+ today: new Date(),
+ open: proposal[4] == '1' ? true : false,
+ proposalPassed: proposal[5] == '1' ? true : false,
+ proposalHash: '0x' + proposal[6],
+ proposalDeposit: etherUnits.toEther('0x' + proposal[7], 'wei'),
+ split: proposal[8] == '1' ? true : false,
+ yea: etherUnits.toEther('0x' + proposal[9], 'wei'),
+ nay: etherUnits.toEther('0x' + proposal[10], 'wei'),
+ creator: "0x" + proposal[11],
+ show: true,
+ showprop: false,
+ minQuroum: function() {
+ var totalInWei = etherUnits.toWei($scope.totRaised, "ether");
+ return etherUnits.toEther(totalInWei / $scope.minQuorumDivisor + (etherUnits.toWei(this.amount, "ether") * totalInWei) / (3 * ($scope.actualBalance + $scope.rewardToken)), "wei");
+ },
+ data: proposal
+ };
+ var yeaBN = new BigNumber(objProposal.yea);
+ var nayBN = new BigNumber(objProposal.nay);
+ objProposal.totalVotes = yeaBN.plus(nayBN)
+ objProposal.yeaPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : yeaBN.div(objProposal.totalVotes).times(100).toNumber();
+ objProposal.nayPer = yeaBN.plus(nayBN).toNumber() == '0' ? 0 : nayBN.div(objProposal.totalVotes).times(100).toNumber();
+ objProposal.quorumCurrent = (objProposal.totalVotes * 100) / $scope.totRaised;
+ objProposal.quorumPer = (objProposal.minQuroum() * 100) / $scope.totRaised;
+ objProposal.openEnglish = objProposal.open == true ? "Yes" : "No";
+ objProposal.splitEnglish = objProposal.split == true ? "Yes" : "No";
+ objProposal.proposalPassedEnglish = objProposal.proposalPassed == true ? "Yes" : "No";
+ if (objProposal.description.indexOf('\n') > 0) {
+ var firstLine = objProposal.description.substring(0, objProposal.description.indexOf('\n'));
+ objProposal.descriptionHTML = $sce.trustAsHtml(marked(objProposal.description.substring(firstLine.length + 1) || ""));
+ objProposal.description = firstLine;
+ }
+ return objProposal;
+ }
+ $scope.generateTx = function() {
+ uiFuncs.generateTx($scope, $sce, function() {
+ $scope.sendTx();
+ });
+ }
+ $scope.sendTx = function() {
+ ajaxReq.sendRawTx($scope.signedTx, function(data) {
+ if (data.error) {
+ $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getDangerText(data.msg + " " + globalFuncs.errorMsgs[17]));
+ } else {
+ $scope.sendTxStatus = $sce.trustAsHtml(globalFuncs.getSuccessText(globalFuncs.successMsgs[4] + " " + globalFuncs.successMsgs[2] + " " + data.data));
+ }
+ });
+ }
+};
module.exports = theDaoProposalCtrl;
},{}],15:[function(require,module,exports){
-'use strict';
-var viewCtrl = function($scope, globalService) {
- $scope.globalService = globalService;
-};
+'use strict';
+var viewCtrl = function($scope, globalService) {
+ $scope.globalService = globalService;
+};
module.exports = viewCtrl;
},{}],16:[function(require,module,exports){
-'use strict';
-var viewWalletCtrl = function($scope, walletService) {
- walletService.wallet = null;
- walletService.password = '';
- $scope.$watch(function() {
- if (walletService.wallet == null) return null;
- return walletService.wallet.getAddressString();
- }, function() {
- if (walletService.wallet == null) return;
- $scope.wallet = walletService.wallet;
- $scope.showEnc = walletService.password != '';
- $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
- if (walletService.password != '') {
- $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3(walletService.password, {
- kdf: globalFuncs.kdf,
- n: globalFuncs.scrypt.n
- }));
- $scope.encFileName = $scope.wallet.getV3Filename();
- }
- ajaxReq.getBalance($scope.wallet.getAddressString(), function(data){
- if(data.error){
- $scope.etherBalance = data.msg;
- } else {
- $scope.etherBalance = etherUnits.toEther(data.data.balance,'wei');
- ajaxReq.getETHvalue(function(data){
- $scope.usdBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.usd);
- $scope.eurBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.eur);
- $scope.btcBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.btc);
- });
- }
- });
- });
- $scope.printQRCode = function() {
- globalFuncs.printPaperWallets(JSON.stringify([{
- address: $scope.wallet.getAddressString(),
- private: $scope.wallet.getPrivateKeyString()
- }]));
- }
-};
+'use strict';
+var viewWalletCtrl = function($scope, walletService) {
+ walletService.wallet = null;
+ walletService.password = '';
+ $scope.$watch(function() {
+ if (walletService.wallet == null) return null;
+ return walletService.wallet.getAddressString();
+ }, function() {
+ if (walletService.wallet == null) return;
+ $scope.wallet = walletService.wallet;
+ $scope.showEnc = walletService.password != '';
+ $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
+ if (walletService.password != '') {
+ $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3(walletService.password, {
+ kdf: globalFuncs.kdf,
+ n: globalFuncs.scrypt.n
+ }));
+ $scope.encFileName = $scope.wallet.getV3Filename();
+ }
+ ajaxReq.getBalance($scope.wallet.getAddressString(), function(data){
+ if(data.error){
+ $scope.etherBalance = data.msg;
+ } else {
+ $scope.etherBalance = etherUnits.toEther(data.data.balance,'wei');
+ ajaxReq.getETHvalue(function(data){
+ $scope.usdBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.usd);
+ $scope.eurBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.eur);
+ $scope.btcBalance = etherUnits.toFiat($scope.etherBalance,'ether',data.btc);
+ });
+ }
+ });
+ });
+ $scope.printQRCode = function() {
+ globalFuncs.printPaperWallets(JSON.stringify([{
+ address: $scope.wallet.getAddressString(),
+ private: $scope.wallet.getPrivateKeyString()
+ }]));
+ }
+};
module.exports = viewWalletCtrl;
},{}],17:[function(require,module,exports){
-'use strict';
-var walletGenCtrl = function($scope) {
- $scope.password = "";
- $scope.wallet = null;
- $scope.showWallet = false;
- $scope.blob = $scope.blobEnc = "";
- $scope.isDone = true;
- $scope.showPass = true;
- $scope.genNewWallet = function() {
- if (!$scope.isStrongPass()) {
- alert(globalFuncs.errorMsgs[1]);
- } else if($scope.isDone){
- $scope.isDone = false;
- $scope.wallet = Wallet.generate(false);
- $scope.showWallet = true;
- $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
- $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3($scope.password, {
- kdf: globalFuncs.kdf,
- n: globalFuncs.scrypt.n
- }));
- $scope.encFileName = $scope.wallet.getV3Filename();
- if(parent!=null)
- parent.postMessage(JSON.stringify({address:$scope.wallet.getAddressString(), checksumAddress: $scope.wallet.getChecksumAddressString()}),"*");
- $scope.isDone = true;
- }
- }
- $scope.printQRCode = function() {
- globalFuncs.printPaperWallets(JSON.stringify([{
- address: $scope.wallet.getAddressString(),
- private: $scope.wallet.getPrivateKeyString()
- }]));
- }
- $scope.isStrongPass = function(){
- return globalFuncs.isStrongPass($scope.password);
- }
-};
+'use strict';
+var walletGenCtrl = function($scope) {
+ $scope.password = "";
+ $scope.wallet = null;
+ $scope.showWallet = false;
+ $scope.blob = $scope.blobEnc = "";
+ $scope.isDone = true;
+ $scope.showPass = true;
+ $scope.genNewWallet = function() {
+ if (!$scope.isStrongPass()) {
+ alert(globalFuncs.errorMsgs[1]);
+ } else if($scope.isDone){
+ $scope.isDone = false;
+ $scope.wallet = Wallet.generate(false);
+ $scope.showWallet = true;
+ $scope.blob = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toJSON());
+ $scope.blobEnc = globalFuncs.getBlob("text/json;charset=UTF-8", $scope.wallet.toV3($scope.password, {
+ kdf: globalFuncs.kdf,
+ n: globalFuncs.scrypt.n
+ }));
+ $scope.encFileName = $scope.wallet.getV3Filename();
+ if(parent!=null)
+ parent.postMessage(JSON.stringify({address:$scope.wallet.getAddressString(), checksumAddress: $scope.wallet.getChecksumAddressString()}),"*");
+ $scope.isDone = true;
+ }
+ }
+ $scope.printQRCode = function() {
+ globalFuncs.printPaperWallets(JSON.stringify([{
+ address: $scope.wallet.getAddressString(),
+ private: $scope.wallet.getPrivateKeyString()
+ }]));
+ }
+ $scope.isStrongPass = function(){
+ return globalFuncs.isStrongPass($scope.password);
+ }
+};
module.exports = walletGenCtrl;
},{}],18:[function(require,module,exports){
-'use strict';
-var cxFuncs = function() {}
-cxFuncs.storage = chrome.storage.sync;
-cxFuncs.getAllNickNames = function(callback) {
- var nickNames = [];
- this.storage.get(null, function(items) {
- for (var key in items) {
- if (items.hasOwnProperty(key)) {
- var tobj = JSON.parse(items[key]);
- if (tobj.type == 'wallet' || tobj.type == 'watchOnly') {
- nickNames.push(tobj.nick);
- nickNames.push(key);
- }
- }
- }
- callback(nickNames);
- });
-}
-cxFuncs.addWalletToStorage = function(address, encStr, nickname, callback) {
- nickname = nickname.replace(/(<([^>]+)>)/ig, "");
- var value = {
- nick: nickname,
- priv: encStr,
- type: 'wallet'
- };
- var keyname = ethUtil.toChecksumAddress(address);
- var obj = {};
- obj[keyname] = JSON.stringify(value);
- this.storage.set(obj, callback);
-}
-cxFuncs.addWatchOnlyAddress = function(address, nickname, callback) {
- nickname = nickname.replace(/(<([^>]+)>)/ig, "");
- var value = {
- nick: nickname,
- type: 'watchOnly'
- };
- var keyname = ethUtil.toChecksumAddress(address);;
- var obj = {};
- obj[keyname] = JSON.stringify(value);
- this.storage.set(obj, callback);
-}
-cxFuncs.getStorageArr = function(filter, callback) {
- var wallets = [];
- this.storage.get(null, function(items) {
- for (var key in items) {
- if (items.hasOwnProperty(key)) {
- var tobj = JSON.parse(items[key]);
- if (tobj.type == filter) {
- tobj['addr'] = key;
- wallets.push(tobj);
- }
- }
- }
- wallets.sort(function(a, b) {
- if (a.nick < b.nick) return -1;
- if (a.nick > b.nick) return 1;
- return 0;
- });
- callback(wallets);
- });
-}
-cxFuncs.getWalletsArr = function(callback) {
- this.getStorageArr('wallet', callback);
-}
-cxFuncs.getWatchOnlyArr = function(callback) {
- this.getStorageArr('watchOnly', callback);
-}
-cxFuncs.deleteAccount = function(address,callback){
- this.storage.remove(address,function(){
- callback(address);
- });
-}
-cxFuncs.editNickName = function(address,newNick, callback){
- newNick = newNick.replace(/(<([^>]+)>)/ig,"");
- this.storage.get(address, function(account) {
- var accountInfo = account[address];
- accountInfo = JSON.parse(accountInfo);
- accountInfo['nick'] = newNick;
- account[address] = JSON.stringify(accountInfo);
- cxFuncs.storage.set(account,function(){
- callback(newNick);
- });
- });
-}
+'use strict';
+var cxFuncs = function() {}
+cxFuncs.storage = chrome.storage.sync;
+cxFuncs.getAllNickNames = function(callback) {
+ var nickNames = [];
+ this.storage.get(null, function(items) {
+ for (var key in items) {
+ if (items.hasOwnProperty(key)) {
+ var tobj = JSON.parse(items[key]);
+ if (tobj.type == 'wallet' || tobj.type == 'watchOnly') {
+ nickNames.push(tobj.nick);
+ nickNames.push(key);
+ }
+ }
+ }
+ callback(nickNames);
+ });
+}
+cxFuncs.addWalletToStorage = function(address, encStr, nickname, callback) {
+ nickname = nickname.replace(/(<([^>]+)>)/ig, "");
+ var value = {
+ nick: nickname,
+ priv: encStr,
+ type: 'wallet'
+ };
+ var keyname = ethUtil.toChecksumAddress(address);
+ var obj = {};
+ obj[keyname] = JSON.stringify(value);
+ this.storage.set(obj, callback);
+}
+cxFuncs.addWatchOnlyAddress = function(address, nickname, callback) {
+ nickname = nickname.replace(/(<([^>]+)>)/ig, "");
+ var value = {
+ nick: nickname,
+ type: 'watchOnly'
+ };
+ var keyname = ethUtil.toChecksumAddress(address);;
+ var obj = {};
+ obj[keyname] = JSON.stringify(value);
+ this.storage.set(obj, callback);
+}
+cxFuncs.getStorageArr = function(filter, callback) {
+ var wallets = [];
+ this.storage.get(null, function(items) {
+ for (var key in items) {
+ if (items.hasOwnProperty(key)) {
+ var tobj = JSON.parse(items[key]);
+ if (tobj.type == filter) {
+ tobj['addr'] = key;
+ wallets.push(tobj);
+ }
+ }
+ }
+ wallets.sort(function(a, b) {
+ if (a.nick < b.nick) return -1;
+ if (a.nick > b.nick) return 1;
+ return 0;
+ });
+ callback(wallets);
+ });
+}
+cxFuncs.getWalletsArr = function(callback) {
+ this.getStorageArr('wallet', callback);
+}
+cxFuncs.getWatchOnlyArr = function(callback) {
+ this.getStorageArr('watchOnly', callback);
+}
+cxFuncs.deleteAccount = function(address,callback){
+ this.storage.remove(address,function(){
+ callback(address);
+ });
+}
+cxFuncs.editNickName = function(address,newNick, callback){
+ newNick = newNick.replace(/(<([^>]+)>)/ig,"");
+ this.storage.get(address, function(account) {
+ var accountInfo = account[address];
+ accountInfo = JSON.parse(accountInfo);
+ accountInfo['nick'] = newNick;
+ account[address] = JSON.stringify(accountInfo);
+ cxFuncs.storage.set(account,function(){
+ callback(newNick);
+ });
+ });
+}
module.exports = cxFuncs;
},{}],19:[function(require,module,exports){
-'use strict';
-var QRCodeDrtv = function() {
- return function(scope, element, attrs) {
- var watchVar = attrs.watchVar;
- scope.$watch(watchVar, function() {
- var value = attrs.qrCode;
- element.empty();
- var delay = 0;
- if (element[0].clientWidth == 0) delay = 200;
- setTimeout(function() {
- new QRCode(element[0], {
- text: value,
- width: element[0].clientWidth,
- height: element[0].clientWidth,
- colorDark: "#000000",
- colorLight: "#ffffff",
- correctLevel: QRCode.CorrectLevel.H
- });
- }, delay);
- });
- };
-};
+'use strict';
+var QRCodeDrtv = function() {
+ return function(scope, element, attrs) {
+ var watchVar = attrs.watchVar;
+ scope.$watch(watchVar, function() {
+ var value = attrs.qrCode;
+ element.empty();
+ var delay = 0;
+ if (element[0].clientWidth == 0) delay = 200;
+ setTimeout(function() {
+ new QRCode(element[0], {
+ text: value,
+ width: element[0].clientWidth,
+ height: element[0].clientWidth,
+ colorDark: "#000000",
+ colorLight: "#ffffff",
+ correctLevel: QRCode.CorrectLevel.H
+ });
+ }, delay);
+ });
+ };
+};
module.exports = QRCodeDrtv;
},{}],20:[function(require,module,exports){
-'use strict';
-var blockiesDrtv = function() {
- return function(scope, element, attrs){
- var watchVar = attrs.watchVar;
- scope.$watch(watchVar, function() {
- var address = attrs.blockieAddress;
- var content = ethFuncs.validateEtherAddress(address) ? globalFuncs.getBlockie(address):'';
- element.css({
- 'background-image': 'url(' + content +')'
- });
- });
- };
-};
+'use strict';
+var blockiesDrtv = function() {
+ return function(scope, element, attrs){
+ var watchVar = attrs.watchVar;
+ scope.$watch(watchVar, function() {
+ var address = attrs.blockieAddress;
+ var content = ethFuncs.validateEtherAddress(address) ? globalFuncs.getBlockie(address):'';
+ element.css({
+ 'background-image': 'url(' + content +')'
+ });
+ });
+ };
+};
module.exports = blockiesDrtv;
},{}],21:[function(require,module,exports){
-'use strict';
-var cxWalletDecryptDrtv = function() {
- return {
- restrict : "E",
- template : '\n \
-
\n \
-
Select a Wallet: \n \
-
\n \
- {{twallet.nick}} ({{twallet.balance}} Ether) \n \
-
\n \
-
\n \
-
\n \
-
Enter the Password: \n \
- \n \
- \n \
-
\n \
-
'
- };
-};
-module.exports = cxWalletDecryptDrtv;
+'use strict';
+var cxWalletDecryptDrtv = function() {
+ return {
+ restrict : "E",
+ template : '\n \
+
\n \
+
Select a Wallet: \n \
+
\n \
+ {{twallet.nick}} ({{twallet.balance}} Ether) \n \
+
\n \
+
\n \
+
\n \
+
Enter the Password: \n \
+ \n \
+ \n \
+
\n \
+
'
+ };
+};
+module.exports = cxWalletDecryptDrtv;
},{}],22:[function(require,module,exports){
-'use strict';
-var fileReaderDrtv = function($parse) {
- return {
- restrict: 'A',
- scope: false,
- link: function(scope, element, attrs) {
- var fn = $parse(attrs.onReadFile);
- element.on('change', function(onChangeEvent) {
- var reader = new FileReader();
- reader.onload = function(onLoadEvent) {
- scope.$apply(function() {
- fn(scope, {
- $fileContent: onLoadEvent.target.result
- });
- });
- };
- reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
- });
- }
- };
-};
+'use strict';
+var fileReaderDrtv = function($parse) {
+ return {
+ restrict: 'A',
+ scope: false,
+ link: function(scope, element, attrs) {
+ var fn = $parse(attrs.onReadFile);
+ element.on('change', function(onChangeEvent) {
+ var reader = new FileReader();
+ reader.onload = function(onLoadEvent) {
+ scope.$apply(function() {
+ fn(scope, {
+ $fileContent: onLoadEvent.target.result
+ });
+ });
+ };
+ reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0]);
+ });
+ }
+ };
+};
module.exports = fileReaderDrtv;
},{}],23:[function(require,module,exports){
-'use strict';
-var walletDecryptDrtv = function() {
- return {
- restrict : "E",
- template : '\n \
- \n \
-
Select the format of your private key: \n \
-
\n \
- \n \
- JSON or Keystore File \n \
-
\n \
-
\n \
- \n \
- Plain Text Private Key \n \
-
\n \
-
\n \
- \n \
- \n \
-
\n \
-
Select your wallet file: \n \
-
\n \
-
\n \
-
\n \
- \n \
- \n \
-
\n \
-
Paste / type your private key: \n \
-
\n \
- \n \
-
\n \
-
\n \
-
\n \
- \n \
-
\n \
- \n \
-
Access Your Wallet: \n \
-
Access Your Wallet: \n \
-
\n \
-
\n \
-
\n \
- '
- };
-};
-module.exports = walletDecryptDrtv;
+'use strict';
+var walletDecryptDrtv = function() {
+ return {
+ restrict : "E",
+ template : '\n \
+ \n \
+
Select the format of your private key: \n \
+
\n \
+ \n \
+ JSON or Keystore File \n \
+
\n \
+
\n \
+ \n \
+ Plain Text Private Key \n \
+
\n \
+
\n \
+ \n \
+ \n \
+
\n \
+
Select your wallet file: \n \
+
\n \
+
\n \
+
\n \
+ \n \
+ \n \
+
\n \
+
Paste / type your private key: \n \
+
\n \
+ \n \
+
\n \
+
\n \
+
\n \
+ \n \
+
\n \
+ \n \
+
Access Your Wallet: \n \
+
Access Your Wallet: \n \
+
\n \
+
\n \
+
\n \
+ '
+ };
+};
+module.exports = walletDecryptDrtv;
},{}],24:[function(require,module,exports){
-'use strict';
-var ethFuncs = function() {}
-ethFuncs.validateEtherAddress = function(address) {
- if (address.substring(0, 2) != "0x") return false;
- else if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) return false;
- else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) return true;
- else
- return this.isChecksumAddress(address);
-}
-ethFuncs.isChecksumAddress = function(address) {
- return address == ethUtil.toChecksumAddress(address);
-}
-ethFuncs.validateHexString = function(str) {
- if (str == "") return true;
- str = str.substring(0, 2) == '0x' ? str.substring(2) : str;
- var re = /[0-9A-Fa-f]+$/g;
- return re.test(str);
-}
-ethFuncs.sanitizeHex = function(hex) {
- hex = hex.substring(0, 2) == '0x' ? hex.substring(2) : hex;
- if (hex == "") return "";
- return '0x' + this.padLeftEven(hex);
-}
-ethFuncs.padLeftEven = function(hex) {
- hex = hex.length % 2 != 0 ? '0' + hex : hex;
- return hex;
-}
-ethFuncs.addTinyMoreToGas = function(hex) {
- hex = this.sanitizeHex(hex);
- return new BigNumber(hex).plus(etherUnits.getValueOfUnit('gwei')).toDigits(2).toString(16);
-}
-ethFuncs.decimalToHex = function(dec) {
- return new BigNumber(dec).toString(16);
-}
-ethFuncs.hexToDecimal = function(hex) {
- return new BigNumber(this.sanitizeHex(hex)).toString();
-}
-ethFuncs.contractOutToArray = function(hex) {
- hex = hex.replace('0x', '').match(/.{64}/g);
- for(var i=0;i= width ? n : new Array(width - n.length + 1).join(z) + n;
-}
-ethFuncs.getDataObj = function(to, func, arrVals) {
- var val="";
- for(var i=0;i= width ? n : new Array(width - n.length + 1).join(z) + n;
+}
+ethFuncs.getDataObj = function(to, func, arrVals) {
+ var val="";
+ for(var i=0;i");
-}
-globalFuncs.getBlob = function(mime, str) {
- var str = (typeof str === 'object') ? JSON.stringify(str) : str;
- if (str == null) return '';
- var blob = new Blob([str], {
- type: mime
- });
- return window.URL.createObjectURL(blob);
-}
-globalFuncs.getSuccessText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.getDangerText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.errorMsgs = [
- "Please enter valid amount. ",
- "Your password must be at least 9 characters. Please ensure it is a strong password. ",
- "Sorry! We don't have a clue what type of wallet file this is. ",
- "This is not a valid wallet file. ",
- "This unit doesn\'t exists, please use the one of the following units ",
- "Invalid address. ",
- "Invalid password. ",
- "Invalid amount. ",
- "Invalid gas limit. ",
- "Invalid data value. ",
- "Invalid gas amount. ",
- "Invalid nonce. ",
- "Invalid signed transaction. ",
- "A wallet with this nickname already exists. ",
- "Wallet not found. ",
- "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
- "A wallet with this address already exists in storage. Please check your wallets page. ",
- "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
-globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
-globalFuncs.scrypt = {
- n: 1024
-};
-globalFuncs.postDelay = 300;
-globalFuncs.kdf = "scrypt";
-globalFuncs.defaultTxGasLimit = 21000;
-globalFuncs.digixClaimTxGasLimit = 150000;
-globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
-globalFuncs.isNumeric = function(n) {
- return !isNaN(parseFloat(n)) && isFinite(n);
-}
-globalFuncs.urlGet = function(name) {
- if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
-}
-globalFuncs.stripTags = function(str) {
- var SCRIPT_REGEX = /");
+}
+globalFuncs.getBlob = function(mime, str) {
+ var str = (typeof str === 'object') ? JSON.stringify(str) : str;
+ if (str == null) return '';
+ var blob = new Blob([str], {
+ type: mime
+ });
+ return window.URL.createObjectURL(blob);
+}
+globalFuncs.getSuccessText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.getDangerText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.errorMsgs = [
+ "Please enter valid amount. ",
+ "Your password must be at least 9 characters. Please ensure it is a strong password. ",
+ "Sorry! We don't have a clue what type of wallet file this is. ",
+ "This is not a valid wallet file. ",
+ "This unit doesn\'t exists, please use the one of the following units ",
+ "Invalid address. ",
+ "Invalid password. ",
+ "Invalid amount. ",
+ "Invalid gas limit. ",
+ "Invalid data value. ",
+ "Invalid gas amount. ",
+ "Invalid nonce. ",
+ "Invalid signed transaction. ",
+ "A wallet with this nickname already exists. ",
+ "Wallet not found. ",
+ "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
+ "A wallet with this address already exists in storage. Please check your wallets page. ",
+ "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
+globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
+globalFuncs.scrypt = {
+ n: 1024
+};
+globalFuncs.postDelay = 300;
+globalFuncs.kdf = "scrypt";
+globalFuncs.defaultTxGasLimit = 21000;
+globalFuncs.digixClaimTxGasLimit = 150000;
+globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
+globalFuncs.isNumeric = function(n) {
+ return !isNaN(parseFloat(n)) && isFinite(n);
+}
+globalFuncs.urlGet = function(name) {
+ if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
+}
+globalFuncs.stripTags = function(str) {
+ var SCRIPT_REGEX = /");
-}
-globalFuncs.getBlob = function(mime, str) {
- var str = (typeof str === 'object') ? JSON.stringify(str) : str;
- if (str == null) return '';
- var blob = new Blob([str], {
- type: mime
- });
- return window.URL.createObjectURL(blob);
-}
-globalFuncs.getSuccessText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.getDangerText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.errorMsgs = [
- "Please enter valid amount. ",
- "Your password must be at least 9 characters. Please ensure it is a strong password. ",
- "Sorry! We don't have a clue what type of wallet file this is. ",
- "This is not a valid wallet file. ",
- "This unit doesn\'t exists, please use the one of the following units ",
- "Invalid address. ",
- "Invalid password. ",
- "Invalid amount. ",
- "Invalid gas limit. ",
- "Invalid data value. ",
- "Invalid gas amount. ",
- "Invalid nonce. ",
- "Invalid signed transaction. ",
- "A wallet with this nickname already exists. ",
- "Wallet not found. ",
- "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
- "A wallet with this address already exists in storage. Please check your wallets page. ",
- "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
-globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
-globalFuncs.scrypt = {
- n: 1024
-};
-globalFuncs.postDelay = 300;
-globalFuncs.kdf = "scrypt";
-globalFuncs.defaultTxGasLimit = 21000;
-globalFuncs.digixClaimTxGasLimit = 150000;
-globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
-globalFuncs.isNumeric = function(n) {
- return !isNaN(parseFloat(n)) && isFinite(n);
-}
-globalFuncs.urlGet = function(name) {
- if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
-}
-globalFuncs.stripTags = function(str) {
- var SCRIPT_REGEX = /");
+}
+globalFuncs.getBlob = function(mime, str) {
+ var str = (typeof str === 'object') ? JSON.stringify(str) : str;
+ if (str == null) return '';
+ var blob = new Blob([str], {
+ type: mime
+ });
+ return window.URL.createObjectURL(blob);
+}
+globalFuncs.getSuccessText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.getDangerText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.errorMsgs = [
+ "Please enter valid amount. ",
+ "Your password must be at least 9 characters. Please ensure it is a strong password. ",
+ "Sorry! We don't have a clue what type of wallet file this is. ",
+ "This is not a valid wallet file. ",
+ "This unit doesn\'t exists, please use the one of the following units ",
+ "Invalid address. ",
+ "Invalid password. ",
+ "Invalid amount. ",
+ "Invalid gas limit. ",
+ "Invalid data value. ",
+ "Invalid gas amount. ",
+ "Invalid nonce. ",
+ "Invalid signed transaction. ",
+ "A wallet with this nickname already exists. ",
+ "Wallet not found. ",
+ "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
+ "A wallet with this address already exists in storage. Please check your wallets page. ",
+ "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
+globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
+globalFuncs.scrypt = {
+ n: 1024
+};
+globalFuncs.postDelay = 300;
+globalFuncs.kdf = "scrypt";
+globalFuncs.defaultTxGasLimit = 21000;
+globalFuncs.digixClaimTxGasLimit = 150000;
+globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
+globalFuncs.isNumeric = function(n) {
+ return !isNaN(parseFloat(n)) && isFinite(n);
+}
+globalFuncs.urlGet = function(name) {
+ if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
+}
+globalFuncs.stripTags = function(str) {
+ var SCRIPT_REGEX = /");
-}
-globalFuncs.getBlob = function(mime, str) {
- var str = (typeof str === 'object') ? JSON.stringify(str) : str;
- if (str == null) return '';
- var blob = new Blob([str], {
- type: mime
- });
- return window.URL.createObjectURL(blob);
-}
-globalFuncs.getSuccessText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.getDangerText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.errorMsgs = [
- "Please enter valid amount. ",
- "Your password must be at least 9 characters. Please ensure it is a strong password. ",
- "Sorry! We don't have a clue what type of wallet file this is. ",
- "This is not a valid wallet file. ",
- "This unit doesn\'t exists, please use the one of the following units ",
- "Invalid address. ",
- "Invalid password. ",
- "Invalid amount. ",
- "Invalid gas limit. ",
- "Invalid data value. ",
- "Invalid gas amount. ",
- "Invalid nonce. ",
- "Invalid signed transaction. ",
- "A wallet with this nickname already exists. ",
- "Wallet not found. ",
- "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
- "A wallet with this address already exists in storage. Please check your wallets page. ",
- "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
-globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
-globalFuncs.scrypt = {
- n: 1024
-};
-globalFuncs.postDelay = 300;
-globalFuncs.kdf = "scrypt";
-globalFuncs.defaultTxGasLimit = 21000;
-globalFuncs.digixClaimTxGasLimit = 150000;
-globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
-globalFuncs.isNumeric = function(n) {
- return !isNaN(parseFloat(n)) && isFinite(n);
-}
-globalFuncs.urlGet = function(name) {
- if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
-}
-globalFuncs.stripTags = function(str) {
- var SCRIPT_REGEX = /");
+}
+globalFuncs.getBlob = function(mime, str) {
+ var str = (typeof str === 'object') ? JSON.stringify(str) : str;
+ if (str == null) return '';
+ var blob = new Blob([str], {
+ type: mime
+ });
+ return window.URL.createObjectURL(blob);
+}
+globalFuncs.getSuccessText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.getDangerText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.errorMsgs = [
+ "Please enter valid amount. ",
+ "Your password must be at least 9 characters. Please ensure it is a strong password. ",
+ "Sorry! We don't have a clue what type of wallet file this is. ",
+ "This is not a valid wallet file. ",
+ "This unit doesn\'t exists, please use the one of the following units ",
+ "Invalid address. ",
+ "Invalid password. ",
+ "Invalid amount. ",
+ "Invalid gas limit. ",
+ "Invalid data value. ",
+ "Invalid gas amount. ",
+ "Invalid nonce. ",
+ "Invalid signed transaction. ",
+ "A wallet with this nickname already exists. ",
+ "Wallet not found. ",
+ "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
+ "A wallet with this address already exists in storage. Please check your wallets page. ",
+ "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
+globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
+globalFuncs.scrypt = {
+ n: 1024
+};
+globalFuncs.postDelay = 300;
+globalFuncs.kdf = "scrypt";
+globalFuncs.defaultTxGasLimit = 21000;
+globalFuncs.digixClaimTxGasLimit = 150000;
+globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
+globalFuncs.isNumeric = function(n) {
+ return !isNaN(parseFloat(n)) && isFinite(n);
+}
+globalFuncs.urlGet = function(name) {
+ if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
+}
+globalFuncs.stripTags = function(str) {
+ var SCRIPT_REGEX = /");
-}
-globalFuncs.getBlob = function(mime, str) {
- var str = (typeof str === 'object') ? JSON.stringify(str) : str;
- if (str == null) return '';
- var blob = new Blob([str], {
- type: mime
- });
- return window.URL.createObjectURL(blob);
-}
-globalFuncs.getSuccessText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.getDangerText = function(str) {
- return ' ' + str + '
'
-}
-globalFuncs.errorMsgs = [
- "Please enter valid amount. ",
- "Your password must be at least 9 characters. Please ensure it is a strong password. ",
- "Sorry! We don't have a clue what type of wallet file this is. ",
- "This is not a valid wallet file. ",
- "This unit doesn\'t exists, please use the one of the following units ",
- "Invalid address. ",
- "Invalid password. ",
- "Invalid amount. ",
- "Invalid gas limit. ",
- "Invalid data value. ",
- "Invalid gas amount. ",
- "Invalid nonce. ",
- "Invalid signed transaction. ",
- "A wallet with this nickname already exists. ",
- "Wallet not found. ",
- "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
- "A wallet with this address already exists in storage. Please check your wallets page. ",
- "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
-globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
-globalFuncs.scrypt = {
- n: 1024
-};
-globalFuncs.postDelay = 300;
-globalFuncs.kdf = "scrypt";
-globalFuncs.defaultTxGasLimit = 21000;
-globalFuncs.digixClaimTxGasLimit = 150000;
-globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
-globalFuncs.isNumeric = function(n) {
- return !isNaN(parseFloat(n)) && isFinite(n);
-}
-globalFuncs.urlGet = function(name) {
- if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
-}
-globalFuncs.stripTags = function(str) {
- var SCRIPT_REGEX = /");
+}
+globalFuncs.getBlob = function(mime, str) {
+ var str = (typeof str === 'object') ? JSON.stringify(str) : str;
+ if (str == null) return '';
+ var blob = new Blob([str], {
+ type: mime
+ });
+ return window.URL.createObjectURL(blob);
+}
+globalFuncs.getSuccessText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.getDangerText = function(str) {
+ return ' ' + str + '
'
+}
+globalFuncs.errorMsgs = [
+ "Please enter valid amount. ",
+ "Your password must be at least 9 characters. Please ensure it is a strong password. ",
+ "Sorry! We don't have a clue what type of wallet file this is. ",
+ "This is not a valid wallet file. ",
+ "This unit doesn\'t exists, please use the one of the following units ",
+ "Invalid address. ",
+ "Invalid password. ",
+ "Invalid amount. ",
+ "Invalid gas limit. ",
+ "Invalid data value. ",
+ "Invalid gas amount. ",
+ "Invalid nonce. ",
+ "Invalid signed transaction. ",
+ "A wallet with this nickname already exists. ",
+ "Wallet not found. ",
+ "Whoops. It doesnt look like a proposal with this ID exists yet or there is an error reading this proposal. ",
+ "A wallet with this address already exists in storage. Please check your wallets page. ",
+ "You need to have at some ETH in your account to cover the cost of gas. .05ETH should be more than sufficient for a few sends and votes. "];
+globalFuncs.successMsgs = ["Valid address", "Wallet successfully decrypted", "Transaction submitted. TX ID: ", "New wallet added: ", "You have successfully voted. Thank you for being an active participant in The DAO."];
+globalFuncs.scrypt = {
+ n: 1024
+};
+globalFuncs.postDelay = 300;
+globalFuncs.kdf = "scrypt";
+globalFuncs.defaultTxGasLimit = 21000;
+globalFuncs.digixClaimTxGasLimit = 150000;
+globalFuncs.donateAddress = "0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8";
+globalFuncs.isNumeric = function(n) {
+ return !isNaN(parseFloat(n)) && isFinite(n);
+}
+globalFuncs.urlGet = function(name) {
+ if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search)) return this.stripTags(decodeURIComponent(name[1]));
+}
+globalFuncs.stripTags = function(str) {
+ var SCRIPT_REGEX = /