diff --git a/data/css/style.css b/data/css/style.css index 30ae24a..11e9ee1 100644 --- a/data/css/style.css +++ b/data/css/style.css @@ -1128,3 +1128,23 @@ svg { text { text-anchor: end; } + + +/* Styles to implement vertical orientations */ + +.vert-switcher { + transform: rotate(270deg); + margin-top: 15px; + margin-bottom: 25px; +} + +.vert-slider { + width: 150px; + transform: rotate(270deg); + display: inline-block; + margin: 50px -45px 70px -45px; +} + +.vert-slider span { + transform: rotate(90deg); +} diff --git a/data/css/style.min.css b/data/css/style.min.css index 1d83c6b..48fe30c 100644 --- a/data/css/style.min.css +++ b/data/css/style.min.css @@ -1 +1 @@ -.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:35px}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}button:active{background-color:#666;transform:translateX(4px) translateY(4px)}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem;margin-left:.3rem;margin-right:.3rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-left:.3rem;margin-right:.3rem;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;margin-bottom:30px;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end} \ No newline at end of file +.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:35px}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}button:active{background-color:#666;transform:translateX(4px) translateY(4px)}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem;margin-left:.3rem;margin-right:.3rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-left:.3rem;margin-right:.3rem;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;margin-bottom:30px;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -45px 70px -45px}.vert-slider span{transform:rotate(90deg)} \ No newline at end of file diff --git a/data/js/controls.js b/data/js/controls.js index 2b5ff1c..595b686 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -700,7 +700,6 @@ var rangeSlider = function (isDiscrete) { var addToHTML = function(data) { panelStyle = data.hasOwnProperty('panelStyle') ? " style='" + data.panelStyle + "' " : ""; - elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : ""; panelwide = data.hasOwnProperty('wide') ? "wide" : ""; if(!data.hasOwnProperty('parentControl') || $("#tab" + data.parentControl).length > 0) { @@ -725,7 +724,7 @@ var addToHTML = function(data) { case UI_ACCEL: html = "
" + data.label + "

" + - elementHTML(data.type, data.id, data.value, data.label, elementStyle) + + elementHTML(data) + "
"; break; case UI_SEPARATOR: @@ -742,26 +741,30 @@ var addToHTML = function(data) { } else { //We are adding to an existing panel so we only need the HTML for the element var parent = $("#id" + data.parentControl); - parent.append(elementHTML(data.type, data.id, data.value, data.label, elementStyle)); + parent.append(elementHTML(data)); } } -var elementHTML = function(type, id, value, label, elementStyle) { - switch(type) { +var elementHTML = function(data) { + var id = data.id + var elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : ""; + switch(data.type) { case UI_LABEL: return "" + value + ""; + " class='label label-wrap'>" + data.value + ""; case UI_BUTTON: return ""; + data.value + ""; case UI_SWITCHER: return ""; + (data.value == "1" ? "checked" : "") + "/>"; case UI_CPAD: case UI_PAD: return ""; case UI_SLIDER: - return "
" + - "" + + "" + - value + "
"; + data.value + ""; case UI_NUMBER: return ""; + "' type='number' value='" + data.value + "' onchange='numberchange(" + id + ")' />"; case UI_TEXT_INPUT: return ""; + "' value='" + data.value + "' onchange='textchange(" + id + ")' />"; case UI_SELECT: return ""; + "' type='number' value='" + data.value + "' onchange='numberchange(" + id + ")' />"; case UI_ACCEL: return "ACCEL // Not implemented fully!
";
diff --git a/data/js/controls.min.js b/data/js/controls.min.js
index 60ee074..9fae5d1 100644
--- a/data/js/controls.min.js
+++ b/data/js/controls.min.js
@@ -52,21 +52,24 @@ function buttonclick(number,isdown){if(isdown)websock.send("bdown:"+number);else
 function padclick(type,number,isdown){switch(type){case CENTER:if(isdown)websock.send("pcdown:"+number);else websock.send("pcup:"+number);break;case UP:if(isdown)websock.send("pfdown:"+number);else websock.send("pfup:"+number);break;case DOWN:if(isdown)websock.send("pbdown:"+number);else websock.send("pbup:"+number);break;case LEFT:if(isdown)websock.send("pldown:"+number);else websock.send("plup:"+number);break;case RIGHT:if(isdown)websock.send("prdown:"+number);else websock.send("prup:"+number);break;}}
 function switcher(number,state){if(state==null){if(!$("#sl"+number).hasClass("checked")){websock.send("sactive:"+number);$("#sl"+number).addClass("checked");}else{websock.send("sinactive:"+number);$("#sl"+number).removeClass("checked");}}else if(state==1){$("#sl"+number).addClass("checked");$("#sl"+number).prop("checked",true);}else if(state==0){$("#sl"+number).removeClass("checked");$("#sl"+number).prop("checked",false);}}
 var rangeSlider=function(isDiscrete){var range=$(".range-slider__range");var slidercb=function(){sliderchange($(this).attr("id").replace(/^\D+/g,""));};range.on({input:function(){$(this).next().html(this.value)}});range.each(function(){$(this).next().html(this.value);if($(this).attr("callbackSet")!="true"){if(!isDiscrete){$(this).on({input:slidercb});}else{$(this).on({change:slidercb});}
-$(this).attr("callbackSet","true");}});};var addToHTML=function(data){panelStyle=data.hasOwnProperty('panelStyle')?" style='"+data.panelStyle+"' ":"";elementStyle=data.hasOwnProperty('elementStyle')?" style='"+data.elementStyle+"' ":"";panelwide=data.hasOwnProperty('wide')?"wide":"";if(!data.hasOwnProperty('parentControl')||$("#tab"+data.parentControl).length>0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
"+data.label+"

"+ -elementHTML(data.type,data.id,data.value,data.label,elementStyle)+ +elementHTML(data)+ "
";break;case UI_SEPARATOR:html="
"+ "
"+data.label+"

";break;case UI_TIME:break;} -parent.append(html);}else{var parent=$("#id"+data.parentControl);parent.append(elementHTML(data.type,data.id,data.value,data.label,elementStyle));}} -var elementHTML=function(type,id,value,label,elementStyle){switch(type){case UI_LABEL:return""+value+"";case UI_BUTTON:return"";case UI_SWITCHER:return"
";case UI_CPAD:case UI_PAD:return"";case UI_SLIDER:return"
"+ -"";case UI_SLIDER:return"
"+ +""+ -value+"
";case UI_NUMBER:return"";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";default:return"";}}
\ No newline at end of file
diff --git a/src/ESPUI.cpp b/src/ESPUI.cpp
index a3b74fa..89a4a32 100644
--- a/src/ESPUI.cpp
+++ b/src/ESPUI.cpp
@@ -855,6 +855,14 @@ void ESPUIClass::setPanelWide(uint16_t id, bool wide) {
     }
 }
 
+void ESPUIClass::setVertical(uint16_t id, bool vert) {
+    Control* control = getControl(id);
+    if (control)
+    {
+        control->vertical = vert;
+    }
+}
+
 void ESPUIClass::updateControl(uint16_t id, int clientId)
 {
     Control* control = getControl(id);
@@ -1097,6 +1105,8 @@ void ESPUIClass::prepareJSONChunk(AsyncWebSocketClient* client, uint16_t startin
             item["elementStyle"] = String(control->elementStyle);
         if (control->wide == true)
             item["wide"] = true;
+        if (control->vertical == true)
+            item["vertical"] = true;
 
         if (control->parentControl != Control::noParent)
         {
diff --git a/src/ESPUI.h b/src/ESPUI.h
index a850097..5643352 100644
--- a/src/ESPUI.h
+++ b/src/ESPUI.h
@@ -141,6 +141,7 @@ public:
     ControlColor color;
     bool visible;
     bool wide;
+    bool vertical;
     uint16_t parentControl;
     String panelStyle;
     String elementStyle;
@@ -157,6 +158,7 @@ public:
           color(color),
           visible(visible),
           wide(false),
+          vertical(false),
           parentControl(parentControl),
           next(nullptr)
     {
@@ -298,6 +300,7 @@ public:
     void setElementStyle(uint16_t id, String style, int clientId = -1);
 
     void setPanelWide(uint16_t id, bool wide);
+    void setVertical(uint16_t id, bool vert = true);
 
     // Variables
     const char* ui_title = "ESPUI"; // Store UI Title and Header Name
diff --git a/src/dataControlsJS.h b/src/dataControlsJS.h
index 06c02cc..c091fc5 100644
--- a/src/dataControlsJS.h
+++ b/src/dataControlsJS.h
@@ -53,21 +53,24 @@ function buttonclick(number,isdown){if(isdown)websock.send("bdown:"+number);else
 function padclick(type,number,isdown){switch(type){case CENTER:if(isdown)websock.send("pcdown:"+number);else websock.send("pcup:"+number);break;case UP:if(isdown)websock.send("pfdown:"+number);else websock.send("pfup:"+number);break;case DOWN:if(isdown)websock.send("pbdown:"+number);else websock.send("pbup:"+number);break;case LEFT:if(isdown)websock.send("pldown:"+number);else websock.send("plup:"+number);break;case RIGHT:if(isdown)websock.send("prdown:"+number);else websock.send("prup:"+number);break;}}
 function switcher(number,state){if(state==null){if(!$("#sl"+number).hasClass("checked")){websock.send("sactive:"+number);$("#sl"+number).addClass("checked");}else{websock.send("sinactive:"+number);$("#sl"+number).removeClass("checked");}}else if(state==1){$("#sl"+number).addClass("checked");$("#sl"+number).prop("checked",true);}else if(state==0){$("#sl"+number).removeClass("checked");$("#sl"+number).prop("checked",false);}}
 var rangeSlider=function(isDiscrete){var range=$(".range-slider__range");var slidercb=function(){sliderchange($(this).attr("id").replace(/^\D+/g,""));};range.on({input:function(){$(this).next().html(this.value)}});range.each(function(){$(this).next().html(this.value);if($(this).attr("callbackSet")!="true"){if(!isDiscrete){$(this).on({input:slidercb});}else{$(this).on({change:slidercb});}
-$(this).attr("callbackSet","true");}});};var addToHTML=function(data){panelStyle=data.hasOwnProperty('panelStyle')?" style='"+data.panelStyle+"' ":"";elementStyle=data.hasOwnProperty('elementStyle')?" style='"+data.elementStyle+"' ":"";panelwide=data.hasOwnProperty('wide')?"wide":"";if(!data.hasOwnProperty('parentControl')||$("#tab"+data.parentControl).length>0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
"+data.label+"

"+ -elementHTML(data.type,data.id,data.value,data.label,elementStyle)+ +elementHTML(data)+ "
";break;case UI_SEPARATOR:html="
"+ "
"+data.label+"

";break;case UI_TIME:break;} -parent.append(html);}else{var parent=$("#id"+data.parentControl);parent.append(elementHTML(data.type,data.id,data.value,data.label,elementStyle));}} -var elementHTML=function(type,id,value,label,elementStyle){switch(type){case UI_LABEL:return""+value+"";case UI_BUTTON:return"";case UI_SWITCHER:return"
";case UI_CPAD:case UI_PAD:return"";case UI_SLIDER:return"
"+ -"";case UI_SLIDER:return"
"+ +""+ -value+"
";case UI_NUMBER:return"";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";default:return"";}}
 )=====";
 
-const uint8_t JS_CONTROLS_GZIP[3927] PROGMEM = { 31,139,8,0,20,216,233,97,2,255,197,27,105,119,218,72,242,187,127,133,172,204,139,197,66,56,114,77,6,44,231,17,76,18,118,176,241,26,60,153,183,153,172,159,16,141,209,179,144,52,146,240,49,14,255,125,171,171,15,117,11,129,25,60,179,251,37,70,213,213,213,213,85,213,93,87,199,13,131,36,53,46,122,151,189,211,222,168,215,238,95,126,186,232,217,47,235,245,150,43,6,206,187,253,65,251,24,96,13,1,59,59,110,143,186,151,131,143,31,135,221,145,221,80,113,187,191,142,186,167,199,140,70,67,129,143,122,163,110,223,86,0,103,64,49,71,15,65,217,34,189,203,14,133,188,212,145,58,12,235,101,134,245,225,98,52,26,156,218,175,116,60,14,109,212,95,101,152,253,246,7,96,226,181,142,200,128,141,250,235,12,111,248,165,55,234,124,238,158,219,111,116,84,9,111,212,223,40,216,253,222,49,192,222,230,112,25,180,81,127,155,97,158,94,156,124,0,216,143,58,38,135,54,234,63,42,226,2,57,130,66,206,46,70,246,59,29,91,25,105,212,223,101,51,62,157,183,207,62,219,63,113,64,251,248,152,65,46,207,6,189,83,138,202,7,58,253,110,251,156,35,55,234,63,41,43,182,63,216,141,156,66,24,76,81,200,176,219,239,118,128,90,78,39,2,220,80,180,50,56,27,245,168,252,115,106,17,224,134,162,150,147,30,0,114,90,65,88,67,209,201,73,251,87,187,145,211,7,194,26,170,42,70,221,51,187,145,215,4,2,27,138,30,62,181,47,62,117,237,70,78,15,28,218,80,212,208,238,116,168,109,228,84,192,161,141,119,170,96,206,218,231,237,209,0,212,248,83,94,54,114,164,161,138,187,119,210,133,19,149,147,55,5,54,20,168,60,48,199,131,47,167,242,184,244,187,31,71,242,88,156,247,62,125,30,73,227,239,116,79,71,96,75,66,110,157,203,209,197,249,191,46,6,189,97,87,146,234,92,118,79,186,231,237,126,118,252,58,151,103,93,152,117,222,251,5,166,190,148,192,47,221,81,123,120,246,185,221,87,200,95,14,47,78,63,246,7,95,180,53,58,237,243,243,193,72,30,150,206,101,187,223,251,119,251,28,52,248,86,130,142,219,231,63,75,195,239,92,158,14,78,97,251,111,222,180,110,156,216,184,138,157,104,118,236,164,142,29,144,91,163,29,199,206,189,85,194,145,153,147,180,93,151,248,246,212,241,19,130,160,196,247,38,36,238,132,65,234,5,139,112,145,240,161,233,34,112,83,47,12,12,55,244,195,184,227,59,73,98,225,207,222,164,244,192,127,216,167,139,249,152,196,18,222,74,110,189,212,157,41,120,78,66,84,153,53,99,146,46,226,192,132,127,126,95,132,94,66,204,22,71,225,34,20,8,100,78,98,199,159,200,225,76,158,2,35,34,41,137,99,239,134,196,18,41,147,175,64,186,37,169,147,68,51,199,79,37,146,148,183,192,73,22,193,212,15,111,21,58,76,252,98,220,117,226,56,204,230,11,85,136,97,199,247,254,112,98,47,144,8,84,49,77,254,155,106,69,32,78,156,248,218,108,77,200,212,89,248,169,0,154,173,229,114,143,106,225,150,140,147,208,189,110,41,191,65,37,1,113,83,50,201,107,36,38,191,47,72,146,14,98,143,4,169,67,65,103,36,158,123,73,2,191,172,210,195,114,79,98,38,206,13,249,36,140,1,134,252,208,117,252,97,26,198,206,21,169,38,36,237,165,100,110,153,36,137,22,30,218,76,98,86,254,57,28,156,86,147,20,118,116,229,77,239,45,105,74,165,82,75,33,28,195,250,97,172,208,246,64,219,104,77,176,226,4,77,79,91,235,170,112,173,140,120,203,155,90,114,234,190,29,44,124,191,244,144,209,66,166,34,39,78,72,134,85,106,49,25,102,75,126,245,38,223,128,73,6,254,250,45,207,175,19,167,32,130,31,172,73,232,46,230,32,185,82,213,153,76,44,243,31,102,169,26,78,167,112,64,126,176,204,103,113,120,11,223,179,116,238,91,166,89,106,113,85,84,93,63,132,181,193,192,25,21,149,52,156,192,33,104,97,145,116,193,78,98,88,97,141,250,40,117,137,11,107,196,100,30,222,16,118,176,76,60,49,47,174,98,66,2,179,180,130,10,124,106,120,49,153,20,96,49,166,145,11,163,102,156,134,6,231,128,50,249,252,217,187,183,175,222,180,10,102,101,91,215,160,129,245,224,250,158,123,221,228,146,171,44,181,77,207,156,96,226,147,95,188,196,27,123,190,151,222,119,0,112,5,2,122,0,61,238,231,5,240,252,249,190,144,121,117,230,77,38,36,40,61,72,133,208,3,144,217,43,87,146,68,135,157,119,111,224,71,223,75,82,18,192,85,99,222,200,53,93,92,211,172,20,243,82,65,169,163,97,221,122,193,36,188,173,82,131,164,171,84,163,48,78,247,109,211,252,254,189,120,228,93,125,221,200,235,215,175,164,126,241,110,253,66,198,67,248,77,82,203,188,77,154,181,154,89,206,79,156,133,73,26,56,115,82,54,155,171,131,148,106,217,172,221,130,200,91,75,2,252,238,76,156,211,216,19,6,27,6,97,68,2,91,72,214,34,55,41,189,182,131,36,244,9,204,191,2,146,12,211,160,120,91,216,220,58,219,76,201,29,240,39,117,157,157,153,204,254,211,120,65,90,203,86,198,26,158,166,109,120,67,68,32,153,63,99,26,53,66,97,27,168,81,64,17,5,230,15,169,237,160,137,61,70,129,162,79,114,151,17,12,84,39,120,23,209,81,98,75,187,29,135,147,123,132,185,240,69,98,48,54,225,27,41,122,53,189,143,8,247,142,122,158,208,44,184,131,40,40,117,198,73,224,220,20,129,129,81,56,26,169,58,4,54,143,203,228,93,59,92,169,121,103,95,136,7,118,132,112,74,58,14,253,164,58,13,227,174,3,204,19,159,208,237,217,71,120,215,131,39,187,99,162,123,160,232,205,156,235,224,200,165,202,178,165,136,217,146,179,64,7,25,171,105,152,58,190,88,239,200,210,151,247,73,112,149,206,94,52,74,242,240,129,243,10,224,238,94,120,225,53,28,171,181,232,176,145,113,76,156,235,150,16,117,150,77,53,255,191,59,100,114,167,215,29,28,105,114,87,222,105,199,219,204,95,149,1,203,62,155,249,187,36,38,126,232,76,224,100,232,216,152,103,54,165,97,167,94,234,19,102,53,190,51,38,62,154,225,220,241,130,207,196,1,27,18,86,152,33,228,233,97,118,216,20,95,44,85,147,159,89,46,38,65,44,21,146,159,152,83,40,131,60,23,104,10,41,163,123,240,73,9,174,175,81,248,121,116,210,183,216,249,212,153,96,185,236,202,164,135,252,44,186,185,113,26,152,101,68,131,24,7,29,99,26,46,220,25,202,190,153,221,25,165,7,82,141,98,66,213,126,204,98,60,42,202,69,154,210,235,14,28,169,197,73,84,232,109,8,74,169,32,21,208,233,46,52,184,111,91,50,175,172,239,77,228,212,143,239,142,221,72,224,84,5,89,134,238,248,200,96,142,44,45,19,72,185,211,223,91,9,47,154,238,44,187,200,153,176,77,95,156,85,118,149,93,17,13,85,118,200,162,255,116,22,105,2,249,116,38,53,42,43,108,198,79,103,19,83,219,167,243,169,147,89,97,116,252,116,70,105,118,254,116,62,53,42,43,108,186,79,103,147,21,7,158,206,104,142,206,198,211,141,85,176,199,15,95,76,99,224,33,250,117,107,127,37,14,88,33,59,106,127,88,165,169,7,30,78,20,161,7,58,244,189,163,67,199,8,131,57,80,34,139,200,62,0,28,182,15,41,209,178,89,58,48,102,49,153,218,7,148,130,2,63,56,226,31,120,205,148,205,195,154,115,116,88,3,146,133,17,141,92,115,226,221,24,222,4,151,210,136,29,214,96,132,206,165,243,108,32,80,213,9,192,215,152,76,58,236,219,130,252,55,140,154,84,77,203,18,198,109,150,233,68,30,91,217,1,236,169,231,67,176,102,73,181,209,52,5,83,204,31,172,116,230,37,192,79,154,66,10,66,55,102,150,108,219,134,72,152,238,251,69,26,190,96,119,41,164,243,104,76,38,194,205,138,106,0,52,158,0,118,236,40,14,231,17,132,204,35,103,108,164,161,193,38,210,95,86,128,213,20,3,210,55,176,201,247,44,142,219,167,251,169,50,36,152,97,193,39,196,4,142,79,98,74,98,230,164,148,166,49,9,73,98,4,97,106,144,59,72,148,140,230,111,191,97,50,80,96,115,5,38,197,42,136,82,253,16,217,194,140,14,139,36,24,219,12,68,197,251,44,129,152,199,77,185,14,116,212,22,251,204,148,22,70,152,212,81,189,177,159,102,121,79,232,110,207,60,48,208,4,236,3,1,101,22,65,7,4,132,45,70,40,246,145,128,97,80,1,128,195,26,163,121,100,174,238,232,164,183,237,118,188,73,209,86,202,166,225,5,209,34,101,42,224,219,74,188,63,32,193,45,61,136,93,162,41,204,189,192,212,221,230,10,47,237,95,255,62,94,168,129,104,252,208,196,194,92,97,210,185,99,241,96,142,85,76,56,243,152,249,237,172,92,64,163,238,217,255,72,184,144,242,71,143,72,23,235,238,143,223,134,178,208,244,149,219,223,55,123,165,130,37,156,65,11,56,128,219,18,7,134,55,87,214,234,220,138,137,176,204,127,232,6,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,160,8,59,166,133,177,145,55,135,95,181,70,189,94,47,226,180,26,45,146,153,245,112,215,76,147,202,125,51,147,6,156,228,92,121,111,23,206,21,190,149,78,70,179,64,96,95,191,253,197,235,137,118,0,85,159,168,75,151,216,184,44,83,99,233,224,113,103,183,177,32,154,187,30,148,38,21,102,219,106,248,151,229,46,220,224,196,210,192,208,224,54,56,139,195,8,46,222,123,235,128,103,126,195,244,222,39,7,37,230,42,85,66,194,128,97,152,91,176,58,163,152,37,25,184,111,136,203,193,231,212,205,247,245,102,227,207,177,150,60,153,55,22,118,172,161,133,172,105,39,117,143,133,28,151,180,196,105,105,119,1,204,82,16,43,38,152,189,169,212,234,254,119,91,226,169,39,165,5,142,87,33,6,140,237,108,3,58,165,93,216,82,82,96,140,135,200,93,250,23,241,150,35,181,147,25,176,100,124,37,16,120,42,107,43,196,118,97,142,39,245,171,57,123,158,179,85,12,44,98,238,202,188,78,106,23,206,179,212,58,107,201,55,87,209,88,237,131,46,121,229,44,174,200,95,36,251,60,173,93,54,192,238,241,2,99,238,157,116,209,255,197,55,182,226,244,210,176,55,28,12,177,140,102,101,61,22,86,224,74,193,27,54,205,114,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,152,180,220,147,37,56,24,63,178,181,199,22,207,159,203,145,67,189,20,203,194,25,81,15,204,223,97,107,69,28,57,1,241,53,1,171,211,10,164,155,77,40,229,88,181,109,237,246,133,28,146,49,163,183,142,216,77,251,66,182,84,121,67,247,5,111,161,138,207,172,95,42,32,89,115,84,64,100,43,84,0,88,239,83,124,201,86,103,169,37,56,201,186,4,28,199,44,43,253,98,94,147,132,239,146,8,55,11,183,144,241,46,152,86,184,85,217,148,252,113,198,54,113,180,150,143,229,30,205,19,49,65,126,193,221,212,37,126,65,6,72,104,13,88,201,255,120,226,247,181,254,141,251,95,61,19,100,142,143,222,40,12,26,208,123,132,135,17,133,152,44,1,83,154,23,115,146,36,206,21,177,149,250,177,218,103,99,252,177,78,23,207,15,153,93,2,61,91,184,65,14,199,91,32,127,156,18,31,87,134,163,4,127,241,72,113,236,214,159,22,130,238,236,243,146,225,169,165,228,156,45,179,129,115,116,149,155,88,15,214,113,174,172,66,47,238,13,107,48,151,183,105,145,116,155,69,68,125,163,112,9,90,145,216,184,130,51,222,98,13,230,1,55,41,154,187,200,141,202,222,98,33,181,156,204,134,43,94,50,129,219,19,179,73,254,83,39,59,166,48,133,26,61,200,70,14,101,17,21,47,39,107,92,244,66,171,228,22,228,45,49,165,27,198,42,97,205,117,156,68,238,227,172,68,174,198,139,230,148,214,19,158,110,65,120,186,142,48,45,52,174,39,189,133,248,162,241,58,210,180,38,188,158,180,191,5,105,127,29,105,44,227,174,167,29,111,65,59,46,160,173,245,243,69,38,195,21,159,64,118,70,208,208,240,151,205,31,122,208,50,70,254,50,3,191,42,250,207,51,226,94,211,206,114,190,23,150,56,176,202,13,209,239,52,141,136,210,196,22,68,244,62,187,160,228,5,143,210,210,223,107,100,228,144,158,145,109,169,145,229,39,155,216,200,227,68,16,65,100,227,162,150,156,163,93,95,165,189,134,173,71,200,139,18,51,123,124,164,20,139,179,46,184,151,28,123,137,27,147,148,215,46,17,201,94,235,53,148,183,100,238,216,86,188,135,230,194,116,87,2,145,17,221,64,228,59,46,177,106,255,249,237,184,92,187,170,152,232,37,89,1,27,11,243,88,45,106,22,248,35,213,219,82,8,119,68,203,37,47,127,175,117,100,107,38,210,152,78,103,208,117,124,127,236,184,215,67,2,225,228,190,109,82,173,152,204,94,85,241,136,73,25,183,66,16,75,97,111,42,10,147,133,134,179,183,126,221,10,95,181,181,92,138,87,11,178,254,145,201,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,150,105,13,182,105,154,45,53,242,183,183,200,40,86,104,170,195,146,42,46,116,11,155,47,38,73,71,40,41,250,23,241,169,184,215,108,71,169,43,30,148,190,127,151,14,185,160,58,201,123,226,71,117,173,78,185,13,221,247,155,200,102,47,54,216,131,18,176,169,205,175,61,244,6,56,79,90,87,154,183,107,219,174,185,70,208,238,141,116,172,243,21,183,213,89,58,199,182,34,91,47,74,26,131,154,44,171,246,98,184,244,2,178,15,210,219,144,62,24,93,204,131,68,96,80,53,82,4,39,158,24,41,123,14,67,11,252,197,225,57,246,116,102,111,68,147,136,21,251,205,195,26,128,14,103,113,141,118,1,184,73,201,242,31,138,183,178,90,42,171,100,20,42,90,6,139,205,3,108,27,229,170,145,217,107,130,93,182,158,176,167,118,72,82,200,128,118,187,96,181,13,27,42,230,4,243,102,145,189,234,109,21,202,154,184,84,182,170,183,231,251,50,79,150,159,116,27,10,165,236,34,66,106,64,136,209,40,152,94,16,245,201,83,193,95,197,30,38,32,96,148,60,120,48,33,115,237,42,217,147,98,199,21,12,252,247,197,109,236,68,84,228,178,183,72,233,28,153,249,103,31,98,21,22,10,227,58,88,195,89,183,18,111,117,210,120,8,48,149,248,153,77,169,24,232,172,105,31,203,84,219,162,69,152,204,239,162,89,72,38,25,158,194,166,188,4,4,163,108,143,148,207,228,113,129,240,134,162,89,182,68,197,184,97,190,151,158,31,238,211,18,235,194,238,49,251,230,179,188,128,195,208,127,97,37,197,62,192,73,227,240,238,128,173,45,150,14,131,14,221,148,88,138,190,202,100,219,195,104,14,219,119,27,214,22,54,127,88,195,109,41,251,94,185,235,196,254,3,71,242,201,95,56,193,45,177,240,25,195,90,59,154,233,72,125,246,97,232,74,162,204,153,138,146,10,81,185,150,112,215,244,5,11,235,53,63,127,246,211,219,55,245,86,214,177,126,108,117,246,78,98,91,6,114,216,26,15,241,206,60,224,155,146,109,89,208,145,53,14,252,157,57,192,87,24,219,114,160,35,107,28,140,55,114,80,99,230,96,241,186,25,51,166,247,38,112,149,25,206,212,139,231,7,107,184,228,79,48,182,100,147,99,23,51,234,10,70,7,63,83,30,153,217,83,22,193,140,213,83,206,28,184,176,113,229,44,170,241,181,118,42,245,27,128,157,81,68,62,48,230,30,236,166,14,127,157,59,251,160,81,175,43,221,117,126,209,224,110,244,120,172,104,65,30,208,195,1,195,75,184,16,3,41,234,151,24,222,180,194,153,229,130,18,177,69,182,9,30,32,162,191,111,142,33,244,191,110,173,220,102,38,110,21,43,68,252,173,0,219,44,203,102,138,246,6,23,45,70,213,2,135,231,27,76,86,160,153,154,194,150,18,28,237,202,26,43,44,229,223,49,20,112,163,20,168,10,121,225,81,153,116,124,88,229,249,19,140,136,178,16,103,37,91,88,43,40,21,46,205,34,64,177,242,212,187,90,196,4,105,242,158,45,127,97,3,3,174,195,159,90,148,101,252,162,64,241,3,230,170,164,49,156,228,164,191,244,250,125,227,67,215,104,27,8,54,54,9,27,151,103,13,137,191,65,241,44,174,229,108,225,135,81,163,255,83,2,78,214,60,98,178,37,19,99,10,94,236,126,95,61,144,14,237,69,147,56,156,211,170,52,99,18,65,146,201,35,21,123,12,201,155,148,30,115,117,17,72,182,136,86,184,72,233,75,8,137,28,161,20,11,254,143,208,127,1,0,108,136,56,84,58,0,0 };
+const uint8_t JS_CONTROLS_GZIP[3941] PROGMEM = { 31,139,8,0,255,63,235,97,2,255,197,91,91,119,218,72,18,126,247,175,80,148,57,65,172,49,151,220,38,3,150,115,8,38,9,59,216,120,13,158,204,217,76,214,71,136,198,232,88,72,26,73,248,50,14,255,125,171,171,47,234,22,2,51,120,102,247,37,70,213,165,234,175,171,186,187,110,138,27,6,73,106,92,244,46,123,167,189,81,175,221,191,252,116,209,179,95,214,235,45,87,12,156,119,251,131,246,49,208,26,130,118,118,220,30,117,47,7,31,63,14,187,35,187,161,242,118,127,29,117,79,143,153,140,134,66,31,245,70,221,190,173,16,206,64,98,78,30,146,178,73,122,151,29,74,121,169,51,117,24,215,203,140,235,195,197,104,52,56,181,95,233,124,156,218,168,191,202,56,251,237,15,0,226,181,206,200,136,141,250,235,140,111,248,165,55,234,124,238,158,219,111,116,86,73,111,212,223,40,220,253,222,49,208,222,230,120,25,181,81,127,155,113,158,94,156,124,0,218,143,58,39,167,54,234,63,42,234,2,61,130,65,206,46,70,246,59,157,91,25,105,212,223,101,111,124,58,111,159,125,182,127,226,132,246,241,49,163,92,158,13,122,167,148,149,15,116,250,221,246,57,103,110,212,127,82,102,108,127,176,27,57,131,48,154,98,144,97,183,223,237,128,180,156,77,4,185,161,88,101,112,54,234,81,253,231,204,34,200,13,197,44,39,61,32,228,172,130,180,134,98,147,147,246,175,118,35,103,15,164,53,84,83,140,186,103,118,35,111,9,36,54,20,59,124,106,95,124,234,218,141,156,29,56,181,161,152,161,221,233,208,189,145,51,1,167,54,222,169,138,57,107,159,183,71,3,48,227,79,121,221,200,145,134,170,238,222,73,23,78,84,78,223,148,216,80,168,242,192,28,15,190,156,202,227,210,239,126,28,201,99,113,222,251,244,121,36,55,127,167,123,58,130,189,36,244,214,185,28,93,156,255,235,98,208,27,118,165,168,206,101,247,164,123,222,238,103,199,175,115,121,214,133,183,206,123,191,192,171,47,37,241,75,119,212,30,158,125,110,247,21,241,151,195,139,211,143,253,193,23,109,142,78,251,252,124,48,146,135,165,115,217,238,247,254,221,62,7,11,190,149,164,227,246,249,207,114,227,119,46,79,7,167,176,252,55,111,90,55,78,108,92,197,78,52,59,118,82,199,14,200,173,209,142,99,231,222,42,227,200,204,73,218,174,75,124,123,234,248,9,65,82,226,123,19,18,119,194,32,245,130,69,184,72,248,208,116,17,184,169,23,6,134,27,250,97,220,241,157,36,177,240,103,111,82,126,224,63,236,211,197,124,76,98,73,111,37,183,94,234,206,20,62,39,33,170,206,154,49,73,23,113,96,194,63,191,47,66,47,33,102,139,179,112,21,10,6,50,39,177,227,79,228,112,166,79,193,17,145,148,196,177,119,67,98,201,148,233,87,48,221,146,212,73,162,153,227,167,146,73,234,91,240,36,139,96,234,135,183,138,28,166,126,49,238,58,113,28,102,239,11,83,136,97,199,247,254,112,98,47,144,12,212,48,77,254,155,90,69,48,78,156,248,218,108,77,200,212,89,248,169,32,154,173,229,114,143,90,225,150,140,147,208,189,110,41,191,193,36,1,113,83,50,201,91,36,38,191,47,72,146,14,98,143,4,169,67,73,103,36,158,123,73,2,191,172,242,195,114,79,114,38,206,13,249,36,54,3,12,249,161,235,248,195,52,140,157,43,82,77,72,218,75,201,220,50,73,18,45,60,220,51,137,89,249,231,112,112,90,77,82,88,209,149,55,189,183,228,86,42,151,91,138,224,24,230,15,99,69,182,7,214,198,221,4,51,78,112,235,105,115,93,21,206,149,9,111,121,83,75,190,250,204,14,22,190,95,126,200,100,33,168,200,137,19,146,113,149,91,76,135,217,148,95,189,201,55,0,201,200,95,191,229,241,58,113,10,42,248,193,154,132,238,98,14,154,43,87,157,201,196,50,255,97,150,171,225,116,10,7,228,7,203,124,30,135,183,240,60,75,231,190,101,154,229,22,55,69,213,245,67,152,27,54,56,147,162,138,134,19,56,4,43,44,146,46,236,147,24,102,88,99,62,42,93,242,194,28,49,153,135,55,132,29,44,19,79,204,193,85,76,72,96,150,87,88,1,167,198,23,147,73,1,23,3,141,40,140,154,113,26,26,28,1,5,249,226,249,187,183,175,222,180,10,222,202,150,174,81,3,235,193,245,61,247,186,201,53,87,89,106,139,158,57,193,196,39,191,120,137,55,246,124,47,189,239,0,225,10,20,244,0,118,124,150,87,192,139,23,207,132,206,171,51,111,50,33,65,249,65,26,132,30,128,108,191,114,35,73,118,88,121,247,6,126,244,189,36,37,1,92,53,230,141,156,211,197,57,205,74,49,150,10,106,29,55,214,173,23,76,194,219,42,221,144,116,150,106,20,198,233,51,219,52,191,127,47,30,121,87,95,55,242,250,245,43,105,95,188,91,191,144,241,16,126,147,212,50,111,147,102,173,102,238,231,95,156,133,73,26,56,115,178,111,54,87,7,169,212,125,179,118,11,42,111,45,9,224,221,89,56,151,177,39,54,108,24,132,17,9,108,161,89,139,220,164,244,218,14,146,208,39,240,254,21,136,100,156,6,229,219,98,207,173,219,155,41,185,3,124,210,214,217,153,201,246,127,26,47,72,107,217,202,160,225,105,218,6,27,50,130,200,252,25,211,164,17,74,219,32,141,18,138,36,48,127,72,247,14,110,177,199,36,80,246,73,238,50,130,129,234,4,239,34,58,74,108,185,111,199,225,228,30,105,46,60,145,24,54,155,240,141,148,189,154,222,71,132,123,71,61,79,104,22,220,65,148,148,58,227,36,112,110,138,200,0,20,142,70,170,14,193,158,199,105,242,174,29,174,212,188,179,47,228,131,125,132,116,42,58,14,253,164,58,13,227,174,3,224,137,79,232,242,236,35,188,235,193,147,221,49,213,61,80,246,102,206,117,112,230,114,101,217,82,212,108,201,183,192,6,25,212,52,76,29,95,204,119,100,233,211,251,36,184,74,103,7,141,178,60,124,224,188,2,184,187,23,94,120,13,199,106,45,59,44,100,28,19,231,186,37,84,157,101,83,205,255,239,10,153,222,233,117,7,71,154,220,237,239,180,226,109,222,95,213,1,203,62,155,249,187,36,38,126,232,76,224,100,232,220,152,103,54,229,198,78,189,212,39,108,215,248,206,152,248,184,13,231,142,23,124,38,14,236,33,177,11,51,134,188,60,204,14,155,226,137,165,106,242,49,203,197,36,137,165,66,242,17,115,10,101,144,231,2,77,161,101,116,15,62,41,195,245,53,10,63,143,78,250,22,59,159,58,8,150,203,174,188,244,144,127,139,46,110,156,6,230,62,178,65,140,131,142,49,13,23,238,12,117,223,204,238,140,242,3,169,70,49,161,102,63,102,49,30,85,229,34,77,233,117,7,142,212,226,34,42,244,54,4,163,84,80,10,216,116,23,25,220,183,45,153,87,214,215,38,114,234,199,87,199,110,36,112,170,66,44,99,119,124,4,152,19,75,203,4,82,239,244,247,86,202,139,166,59,235,46,114,38,108,209,23,103,149,93,117,87,36,67,213,29,66,244,159,14,145,38,144,79,7,169,73,89,129,25,63,29,38,166,182,79,199,169,139,89,1,58,126,58,80,154,157,63,29,167,38,101,5,166,251,116,152,172,56,240,116,160,57,57,27,79,55,86,193,30,63,124,49,141,129,135,232,215,173,103,43,113,192,138,216,81,251,195,170,76,61,240,112,162,8,61,208,161,239,29,29,58,70,24,204,65,18,89,68,118,9,120,216,58,164,70,247,205,114,201,152,197,100,106,151,168,4,133,94,58,226,15,120,205,236,155,135,53,231,232,176,6,34,11,35,26,57,231,196,187,49,188,9,78,165,9,59,172,193,8,125,151,190,103,131,128,170,46,0,158,198,100,210,97,207,22,228,191,97,212,164,102,90,150,49,110,179,76,39,242,216,204,14,112,79,61,31,130,53,75,154,141,166,41,152,98,254,96,165,51,47,1,60,105,10,41,8,93,152,89,182,109,27,34,97,186,238,131,52,60,96,119,41,164,243,184,153,76,164,155,21,117,3,208,120,2,224,216,81,28,206,35,8,153,71,206,216,72,67,131,189,72,127,89,1,86,83,12,72,223,96,79,190,103,113,220,51,186,158,42,99,130,55,44,120,132,152,192,241,73,76,69,204,156,148,202,52,38,33,73,140,32,76,13,114,7,137,146,209,252,237,55,76,6,10,246,92,193,150,98,21,68,105,126,136,108,225,141,14,139,36,24,108,70,162,234,125,158,64,204,227,166,220,6,58,107,139,61,102,70,11,35,76,234,168,221,216,79,115,127,79,216,110,207,44,25,184,5,236,146,160,178,29,65,7,4,133,77,70,40,247,145,160,97,80,1,132,195,26,147,121,100,174,174,232,164,183,237,114,188,73,209,82,246,77,195,11,162,69,202,76,192,151,149,120,127,64,130,91,126,16,171,196,173,48,247,2,83,119,155,43,88,218,191,254,125,88,232,6,209,240,208,196,194,92,1,233,220,177,120,48,7,21,19,206,60,103,126,57,43,23,208,168,123,246,63,82,46,164,252,209,35,218,197,186,251,227,183,161,44,52,125,229,251,239,155,189,82,193,18,206,160,5,8,224,182,196,129,225,205,149,181,250,110,197,68,90,230,63,244,13,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,144,8,43,166,133,177,145,55,135,95,181,70,189,94,47,66,90,141,22,201,204,122,184,107,166,73,229,190,153,105,3,78,114,174,188,183,11,114,5,183,210,201,104,22,40,236,235,183,191,120,62,209,14,160,230,19,117,233,50,27,151,101,106,44,29,60,238,236,54,22,68,115,215,131,210,164,194,108,91,13,255,178,220,133,111,56,49,53,0,26,220,6,103,113,24,193,197,123,111,149,120,230,55,76,239,125,82,42,51,87,169,10,18,27,24,134,249,14,86,223,40,134,36,3,247,13,113,57,248,156,186,249,190,222,108,252,57,104,201,147,177,177,176,99,141,44,132,166,157,212,61,22,114,92,210,18,167,165,221,5,240,150,194,88,49,97,219,155,74,173,238,127,183,36,158,122,82,89,224,120,21,97,0,108,231,61,160,75,218,5,150,146,2,99,60,68,238,210,191,8,91,78,212,78,219,128,37,227,43,129,192,83,161,173,8,219,5,28,79,234,87,115,246,60,178,85,14,44,98,238,10,94,23,181,11,242,44,181,206,90,242,205,85,54,86,251,160,83,94,57,139,43,242,23,233,62,47,107,151,5,176,123,188,96,51,247,78,186,232,255,226,27,91,113,122,105,216,27,14,134,88,70,179,178,30,11,43,112,165,224,13,155,230,126,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,120,105,185,39,75,112,48,126,100,107,31,91,188,120,33,71,14,245,82,44,11,103,68,61,48,127,135,173,85,113,228,4,196,215,20,172,190,86,160,221,236,133,114,14,170,109,107,183,47,228,144,12,140,222,58,98,55,237,129,108,169,242,134,238,1,111,161,138,199,172,95,42,40,89,115,84,80,100,43,84,16,88,239,83,60,201,86,103,185,37,144,100,93,2,206,99,238,43,253,98,94,147,132,231,178,8,55,11,151,144,97,23,160,21,180,42,76,137,143,3,219,132,104,45,142,229,30,205,19,49,65,62,224,110,234,18,159,32,3,36,180,6,172,228,127,60,241,251,90,255,198,253,175,158,9,50,199,71,111,20,70,13,232,61,194,195,136,66,78,150,128,41,205,139,57,73,18,231,138,216,74,253,88,237,179,49,124,172,211,197,243,67,182,47,65,158,45,220,32,167,227,45,144,63,78,137,143,51,195,81,130,191,120,164,56,119,235,79,43,65,119,246,121,205,240,212,82,34,103,211,108,64,142,174,114,19,244,96,29,114,101,22,122,113,111,152,131,185,188,77,147,164,219,76,34,234,27,133,83,208,138,196,198,25,156,241,22,115,48,15,184,201,208,220,69,110,52,246,22,19,169,229,100,54,92,241,146,9,220,158,152,77,242,159,186,216,49,165,41,210,232,65,54,114,44,139,168,120,58,89,227,162,23,90,37,55,33,111,137,41,221,48,86,9,107,174,67,18,185,143,67,137,92,13,139,230,148,214,11,158,110,33,120,186,78,48,45,52,174,23,189,133,250,162,241,58,209,180,38,188,94,180,191,133,104,127,157,104,44,227,174,151,29,111,33,59,46,144,173,245,243,69,38,195,13,159,64,118,70,112,163,225,47,155,127,232,65,203,24,249,203,12,252,170,232,63,207,136,123,77,59,203,249,94,88,226,192,44,55,68,191,211,52,33,74,19,91,8,209,251,236,66,146,23,60,42,75,255,94,35,19,135,242,140,108,73,141,44,63,217,4,35,207,19,65,4,145,141,139,90,114,78,118,125,85,246,26,88,143,136,23,37,102,246,241,145,82,44,206,186,224,94,114,236,37,110,76,82,94,187,68,38,123,173,215,80,190,37,115,199,182,226,61,52,23,166,187,18,136,140,232,2,34,223,113,137,85,251,207,111,199,251,181,171,138,137,94,146,21,176,177,48,143,213,162,102,129,63,82,189,45,165,112,71,180,92,242,242,247,90,71,182,230,69,26,211,233,0,93,199,247,199,142,123,61,36,16,78,62,179,77,106,21,147,237,87,85,61,226,165,12,173,80,196,82,236,55,149,133,233,66,227,217,91,63,111,133,207,218,90,46,197,87,11,178,254,145,233,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,238,211,26,108,211,52,91,72,186,5,152,197,226,232,8,21,68,255,34,63,85,204,154,137,149,10,96,169,252,253,187,116,157,5,117,68,222,189,62,170,107,21,197,109,228,190,223,36,54,251,182,130,125,250,1,214,223,252,93,134,222,170,230,233,229,74,155,117,109,131,52,215,178,217,189,229,141,21,185,226,6,56,75,188,216,82,100,147,68,73,56,208,146,251,170,101,13,151,94,21,118,41,189,13,233,167,157,139,121,144,8,14,106,70,202,224,196,19,35,101,31,174,208,82,124,113,32,141,221,151,217,27,209,206,97,101,121,243,176,6,164,195,89,92,163,245,122,30,146,103,133,58,44,219,99,195,38,87,7,204,250,248,187,44,37,97,31,185,161,72,177,38,218,103,130,217,54,0,44,70,130,25,171,200,27,245,134,6,133,38,142,243,86,149,238,124,71,100,69,31,242,2,86,70,242,71,154,14,131,38,184,18,84,238,13,231,92,207,243,87,78,186,58,44,207,250,99,231,128,127,177,122,152,128,9,208,54,224,93,132,85,52,129,123,210,48,168,115,3,255,61,184,141,157,104,181,249,71,133,29,153,249,239,50,196,84,44,86,197,201,176,200,178,110,58,222,139,164,1,11,112,42,1,46,123,165,98,160,55,165,141,38,83,237,91,22,113,50,199,88,58,210,155,82,128,148,49,43,88,229,5,32,208,178,213,82,176,201,227,170,225,109,63,241,37,143,40,238,54,204,247,210,73,131,81,224,196,20,87,25,32,49,78,61,240,18,104,92,250,112,32,66,45,131,191,103,242,19,64,79,18,159,211,11,56,13,125,20,86,75,236,18,206,54,14,239,74,12,185,0,30,6,29,170,23,1,148,126,121,201,52,132,17,27,182,232,30,65,110,138,35,118,88,67,205,40,170,91,185,42,133,10,3,71,130,229,159,50,193,37,179,240,25,106,173,239,204,108,173,126,223,97,232,198,166,8,77,197,216,133,172,220,218,184,116,250,169,10,107,42,191,120,254,211,219,55,245,86,214,154,126,108,118,246,65,196,182,0,114,220,26,134,120,103,12,248,241,200,182,16,116,102,13,129,191,51,2,252,220,98,91,4,58,179,134,96,188,17,65,141,109,7,173,74,198,118,212,123,19,160,101,187,103,234,197,243,210,26,168,252,131,139,45,177,114,238,98,180,174,64,59,248,153,2,21,167,239,176,6,123,89,189,45,88,16,32,54,186,114,42,213,104,58,59,86,91,28,120,254,134,126,220,217,209,214,47,33,118,208,113,158,146,49,247,64,17,117,248,235,220,217,165,70,189,174,180,225,213,11,15,181,161,251,137,34,192,60,252,135,83,138,110,161,144,3,37,22,220,168,120,247,11,47,156,139,142,132,158,216,114,184,247,194,192,163,57,134,108,225,186,181,114,181,154,184,104,44,42,241,207,11,216,178,89,2,180,118,149,112,255,99,52,46,24,121,158,194,84,7,54,174,41,216,148,80,109,87,124,172,32,149,255,254,97,29,36,165,186,85,8,136,7,138,210,51,99,137,232,79,160,17,53,37,142,39,155,88,171,70,21,78,205,130,82,49,243,212,187,90,196,4,101,242,134,47,255,60,7,6,92,135,127,167,145,139,195,148,33,124,0,1,170,124,12,115,185,252,47,189,126,223,248,208,53,218,6,146,141,77,106,71,12,172,165,241,119,237,3,22,116,115,108,248,96,212,232,127,184,128,115,55,143,152,150,201,196,152,130,163,188,127,166,158,116,135,182,180,73,28,206,105,113,155,33,69,146,68,122,164,114,143,33,7,148,122,100,142,52,2,29,23,201,10,23,41,253,160,66,50,71,168,202,130,255,106,244,95,91,230,122,124,155,58,0,0 };