").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/js/main.js b/js/main.js
new file mode 100644
index 0000000..0f965af
--- /dev/null
+++ b/js/main.js
@@ -0,0 +1,14 @@
+/**
+ * Main entry point.
+ *
+ * the DOM has been localized and the user sees it in their language.
+ *
+ * @class Main
+ */
+(function() {
+ 'use strict';
+ document.addEventListener('DocumentLocalized', function() {
+ document.body.classList.remove('hidden');
+ // YourApp.init();
+ });
+}());
diff --git a/js/skel-layers.min.js b/js/skel-layers.min.js
new file mode 100644
index 0000000..375072b
--- /dev/null
+++ b/js/skel-layers.min.js
@@ -0,0 +1,2 @@
+/* skel-layers.js vx.x | (c) n33 | n33.co | MIT licensed */
+skel.registerPlugin("layers",function(e){function an(e,r,i){var o,u;this.id=e,this.index=i,this[n]={breakpoints:A,states:A,position:A,side:A,animation:mt,orientation:mt,width:0,height:0,zIndex:this.index,html:"",hidden:P,exclusive:kt,resetScroll:kt,resetForms:kt,swipeToClose:kt,clickToClose:P},t._.extend(this[n],r),this[z]=t._.newDiv(this[n].html),this[z].id=e,this[z]._layer=this,this[s]=A,this[st]=A,this[it]=A,this[Xt]=P,u=t._.cacheElement(this.id,this[z],Z,1),u.onAttach=function(){var e=this.object._layer;e[tt]()||e.init(),e.resume()},u.onDetach=function(){var e=this.object._layer;e.suspend()},this[n].states?(o=t._[sn](this[n].states),t._[qt](o,function(e){t._.addCachedElementToState(t._.sd+o[e],u)})):(this[n].breakpoints?o=t._[sn](this[n].breakpoints):o=t._.breakpointList,t._[qt](o,function(e){t._.addCachedElementToBreakpoint(o[e],u)}))}var t,n="config",r="_skel_layers_translateOrigin",i="cache",s="$element",o="_skel_layers_translate",u="_skel_layers_resetForms",f="_skel_layers_resume",l="activeWrapper",c="_skel_layers_promote",h="exclusiveLayer",p="moveToInactiveWrapper",d="_skel_layers_demote",v="moveToActiveWrapper",m="setTimeout",g="right",y="bottom",b="useActive",w="scrollTop",E="deactivate",S="width",x="css",T="center",N="_skel_layers_suspend",C="position",k="prototype",L="left",A=null,O="wrapper",M="skel-layers-layer-z-index",_="children",D="_skel_layers_init",P=!1,H="inactiveWrapper",B="height",j="length",F="deviceType",I="top",q="touchstart.lock click.lock scroll.lock",R="window",U="transform",z="element",W="stopPropagation",X="resetForms",V="overflow-x",$="preventDefault",J="recalcW",K="-webkit-",Q="padding-bottom",G="-webkit-tap-highlight-color",Y="hidden",Z="skel_layers_inactiveWrapper",et="skel-layers-exclusiveActive",tt="isInitialized",nt="animation",rt="originalEvent",it="touchPosY",st="touchPosX",ot="skel-layers-layer-index",ut="skel-layers-layer-position",at="z-index",ft='
0},e.fn[c]=function(r){var i,s,o;if(this[j]>1){for(i=0;i
1){for(t=0;t0&&(t[ht](),t[x](S,(t.data(Rt)+r)/12*100+"%"))},an[k][bt]={"top-left":{v:I,h:L,side:L},"top-right":{v:I,h:g,side:g},top:{v:I,h:T,side:I},"top-center":{v:I,h:T,side:I},"bottom-left":{v:y,h:L,side:L},"bottom-right":{v:y,h:g,side:g},bottom:{v:y,h:T,side:y},"bottom-center":{v:y,h:T,side:y},left:{v:T,h:L,side:L},"center-left":{v:T,h:L,side:L},right:{v:T,h:g,side:g},"center-right":{v:T,h:g,side:g}},an[k][ct]={none:{activate:function(e){var t=e[n],r=e[s];r[w](0)[c](t.zIndex).show(),t[X]&&r[u](),e[v]()},deactivate:function(e){var t=e[n],r=e[s];r.hide()[d](),e[p]()}},overlayX:{activate:function(e){var r=e[n],i=e[s];i[w](0)[c](r.zIndex)[x](r[Yt],Jt+t[J](t._[b](r[S]))+Vt).show(),r[X]&&i[u](),t[At]("x"),e[v](),window[m](function(){i[o]((r[Yt]==g?Jt:"")+t[J](t._[b](r[S])),0)},50)},deactivate:function(e){var i=e[n],o=e[s];o[wt](un).blur(),o[r](),window[m](function(){t[lt]("x"),e[p](),o[d]().hide()},t[n][yt]+50)}},overlayY:{activate:function(e){var r=e[n],i=e[s];i[w](0)[c](r.zIndex)[x](r[Yt],Jt+t[J](t._[b](r[B]))+Vt).show(),r[X]&&i[u](),t[At]("y"),e[v](),window[m](function(){i[o](0,(r[Yt]==y?Jt:"")+t[J](t._[b](r[B])))},50)},deactivate:function(e){var i=e[n],o=e[s];o[wt](un).blur(),o[r](),window[m](function(){t[lt]("y"),e[p](),o[d]().hide()},t[n][yt]+50)}},pushX:{activate:function(e){var r=e[n],a=e[s],f=t[i][O].add(t[i][l][_]());a[w](0)[x](r[Yt],Jt+t[J](t._[b](r[S]))+Vt).show(),r[X]&&a[u](),f[c](),t[At]("x"),e[v](),window[m](function(){a.add(f)[o]((r[Yt]==g?Jt:"")+t[J](t._[b](r[S])),0)},50)},deactivate:function(e){var o=e[n],u=e[s],a=t[i][O].add(t[i][l][_]());u[wt](un).blur(),u.add(a)[r](),window[m](function(){t[lt]("x"),u.hide(),e[p](),a[d]()},t[n][yt]+50)}},pushY:{activate:function(e){var r=e[n],a=e[s],f=t[i][O].add(t[i][l][_]());a[w](0)[x](r[Yt],Jt+t[Qt](t._[b](r[B]))+Vt).show(),r[X]&&a[u](),t[At]("y"),e[v](),window[m](function(){a.add(f)[o](0,(r[Yt]==y?Jt:"")+t[Qt](t._[b](r[B])))},50)},deactivate:function(e){var o=e[n],u=e[s],a=t[i][O].add(t[i][l][_]());u[wt](un).blur(),u.add(a)[r](),window[m](function(){t[lt]("y"),u.hide(),e[p]()},t[n][yt]+50)}},revealX:{activate:function(e){var r=e[n],a=e[s],f=t[i][O].add(t[i][l][_]());a[w](0).show(),r[X]&&a[u](),f[c](),t[At]("x"),e[v](),window[m](function(){f[o]((r[Yt]==g?Jt:"")+t[J](t._[b](r[S])),0)},50)},deactivate:function(e){var o=e[n],u=e[s],a=t[i][O].add(t[i][l][_]());u[wt](un).blur(),a[r](),window[m](function(){t[lt]("x"),u.hide(),a[d](),e[p]()},t[n][yt]+50)}}},an[k][v]=function(){t[i][l][Ct](this[s])},an[k][p]=function(){if(!this[s][xt]())return;t[i][H][Ct](this[s])},an[k][E]=function(){var e,r;if(!this[Xt]){t[i][H][Ct](this[z]);return}e=this[n],r=t._[b](e[nt]),r in this[ct]||(r=mt),this[ct][r][E](this),e[Y]&&e.exclusive&&t[i][h]===this&&(t[i][Wt].removeClass(et),t[i][h]=A),this[Xt]=P},an[k][vt]=function(){var e,r,o,u;if(this[Xt]){t[i][l][Ct](this[z]);return}e=this[n],r=t._[b](e[nt]),o=this[s],o[x](S,t._[b](e[S]))[x](B,t._[b](e[B])),t._[zt][F]=="ios"&&e[B]=="100%"&&!e[Y]&&o[x](B,"-webkit-calc("+t._[b](e[B])+" + 70px)"),u=this[bt][e[C]],o[nn]("skel-layer-"+e[C]).data(ut,e[C]);switch(u.v){case I:o[x](I,0);break;case y:o[x](y,0);break;case T:o[x](I,"50%")[x]("margin-top",Jt+t.getHalf(e[B]))}switch(u.h){case L:o[x](L,0);break;case g:o[x](g,0);break;case T:o[x](L,"50%")[x]("margin-left",Jt+t.getHalf(e[S]))}this[ct][r][vt](this),e[Y]&&e.exclusive&&(t[i][Wt][nn](et),t[i][h]=this),this[Xt]=kt},an[k][tt]=function(){return this[s]!==A},an[k][Zt]=function(){return this[s].is(":visible")},an[k].resume=function(r){if(!this[tt]())return;this[s][wt](un).each(function(){t.parseResume(e(this))}),this[n][Y]||this[vt](r)},an[k].suspend=function(){if(!this[tt]())return;this[s][r](),this[s][wt](un).each(function(){t.parseSuspend(e(this))}),this[Xt]&&this[E]()},an[k].init=function(){var r=this[n],o=e(this[z]),u=this;o[D](),o[wt](un).each(function(){t.parseInit(e(this))}),o[nn]("skel-layer").data(ot,this.index)[x](at,t[n].baseZIndex)[x](C,"fixed")[x]("-ms-overflow-style","-ms-autohiding-scrollbar")[x]("-webkit-overflow-scrolling","touch").hide();switch(r.orientation){case"vertical":o[x]("overflow-y",Pt);break;case"horizontal":o[x](V,Pt);break;case mt:default:}if(!r[C]||!(r[C]in this[bt]))r[C]="top-left";r[Yt]||(r[Yt]=this[bt][r[C]][Yt]);if(!r[nt]||typeof r[nt]!="object"&&!(r[nt]in this[ct]))r[nt]=mt;r.clickToClose&&o[wt]("a")[x](G,It).on("click.skel-layers",function(r){var i,s,o=e(this);if(o.hasClass("skel-layers-ignore"))return;r[$](),r[W](),u[E]();if(o.hasClass("skel-layers-ignoreHref"))return;i=o[Tt]("href"),s=o[Tt]("target"),window[m](function(){s=="_blank"&&t._[zt][F]!="wp"?window.open(i):window.location.href=i},t[n][yt]+10)}),t._[zt][F]=="ios"&&o[wt]("input,select,textarea").on("focus",function(n){var r=e(this);n[$](),n[W](),window[m](function(){var e=t[i][R][Dt],n=t[i][R][w]()-e;t[i][R][w](e),o[w](o[w]()+n),r.hide(),window[m](function(){r.show()},0)},100)}),t._[zt][Lt]&&o.on("touchstart",function(e){u[st]=e[rt][Kt][0].pageX,u[it]=e[rt][Kt][0].pageY}).on("touchmove",function(e){var t,n,i,s,a,f,l;if(u[st]===A||u[it]===A)return;t=u[st]-e[rt][Kt][0].pageX,n=u[it]-e[rt][Kt][0].pageY,i=o.outerHeight(),s=o.get(0).scrollHeight-o[w]();if(r[Y]&&r.swipeToClose){a=P,f=20,l=50;switch(r[Yt]){case L:a=n-1*f&&t>l;break;case g:a=n-1*f&&t<-1*l;break;case I:a=t-1*f&&n>l;break;case y:a=t-1*f&&n<-1*l}if(a)return u[st]=A,u[it]=A,u[E](),P}if(o[w]()==0&&n<0||s>i-2&&s0)return P}),this[s]=o},t={config:{baseZIndex:1e4,transform:kt,transformBreakpoints:A,transformTest:A,speed:250,layers:{}},cache:{layers:{},body:A,window:A,wrapper:A,inactiveWrapper:A,activeWrapper:A,exclusiveLayer:A},eventType:$t,getBaseFontSize:function(){return t._[zt].IEVersion<9?16.5:parseFloat(getComputedStyle(t[i][Wt].get(0)).fontSize)},recalc:function(e,n){var r=t._.parseMeasurement(e),i;switch(r[1]){case"%":i=Math.floor(n*(r[0]/100));break;case"em":i=t.getBaseFontSize()*r[0];break;default:case Vt:i=r[0]}return i},recalcW:function(n){return t.recalc(n,e(window)[S]())},recalcH:function(n){return t.recalc(n,e(window)[B]())},getHalf:function(e){var t=parseInt(e);return typeof e=="string"&&e.charAt(e[j]-1)=="%"?Math.floor(t/2)+"%":Math.floor(t/2)+Vt},parseSuspend:function(e){var t=e.get(0);t[N]&&t[N]()},parseResume:function(e){var t=e.get(0);t[f]&&t[f]()},parseInit:function(n){var r,s,o=n.get(0),u=n[Tt]("data-action"),a=n[Tt]("data-args"),l,c;u&&a&&(a=a.split(","));switch(u){case"toggleLayer":case"layerToggle":n[x](G,It)[x]("cursor","pointer"),r=function(n){n[$](),n[W]();if(t[i][h])return t[i][h][E](),P;var r=e(this),s=t[i][Nt][a[0]];s[Zt]()?s[E]():s[vt]()},t._[zt][F]==rn||t._[zt][F]=="wp"?n.on($t,r):n.on(t.eventType,r);break;case"navList":l=e(on+a[0]),r=l[wt]("a"),s=[],r.each(function(){var t=e(this),n;n=Math.max(0,t.parents("li")[j]-1),s.push(''+t.text()+"")}),s[j]>0&&n.html("");break;case"copyText":l=e(on+a[0]),n.html(l.text());break;case"copyHTML":l=e(on+a[0]),n.html(l.html());break;case"moveElementContents":l=e(on+a[0]),o[f]=function(){l[_]().each(function(){n[Ct](e(this))})},o[N]=function(){n[_]().each(function(){l[Ct](e(this))})},o[f]();break;case"moveElement":l=e(on+a[0]),o[f]=function(){e(ft+l[Tt]("id")+'" />').insertBefore(l),n[Ct](l)},o[N]=function(){e(_t+l[Tt]("id")).replaceWith(l)},o[f]();break;case"moveCell":l=e(on+a[0]),c=e(on+a[1]),o[f]=function(){e(ft+l[Tt]("id")+'" />').insertBefore(l),n[Ct](l),l[x](S,Pt),c&&c[St]()},o[N]=function(){e(_t+l[Tt]("id")).replaceWith(l),l[x](S,""),c&&c[x](S,"")},o[f]();break;default:}},lockView:function(e){t[i][R][Dt]=t[i][R][w](),t._[zt][Lt]&&t[i][Wt][x](Gt+e,Y),t[i][O].on(q,function(e){e[$](),e[W](),t[i][h]&&t[i][h][E]()}),t[i][R].on(gt,function(e){t[i][h]&&t[i][h][E]()}),t._[zt][Lt]||t[i][R].on(dt,function(e){t[i][h]&&t[i][h][E]()})},unlockView:function(e){t._[zt][Lt]&&t[i][Wt][x](Gt+e,Ft),t[i][O].off(q),t[i][R].off(gt),t._[zt][Lt]||t[i][R].off(dt)},initLayers:function(){var r,s,o,u=1;t._[qt](t[n][Nt],function(r){var s;if(!t[n][Nt][r].html&&(s=e(on+r))[j]==0)return;o=new an(r,t[n][Nt][r],u++),t[i][Nt][r]=o,s&&(s[_]()[Ut](o[z]),s.remove())})},initTransforms:function(){if(t[n][U])e.fn[r]=function(){return e(this)[o](0,0)},e.fn[o]=function(t,n){return e(this)[x](U,"translate("+t+"px, "+n+"px)")},e.fn[D]=function(){return e(this)[x]("backface-visibility",Y)[x]("perspective","500")[Ht]("transition","transform "+t[n][yt]/1e3+"s ease-in-out")};else{var s,u=[];t[i][R].resize(function(){if(t[n][yt]!=0){var e=t[n][yt];t[n][yt]=0,window[m](function(){t[n][yt]=e,u=[]},e)}}),e.fn[r]=function(){for(var r=0;r'),t[i][O]=e("#skel-layers-wrapper"),t[i][O][x](C,en)[x](L,"0")[x](g,"0")[x](I,"0")[D](),t[i][H]=e('')[Ut](t[i][Wt]),t[i][H][x](B,"100%"),t[i][l]=e('')[Ut](t[i][Wt]),t[i][l][x](C,en),t._[pt](Z,t[i][H][0]),t._[pt]("skel_layers_activeWrapper",t[i][l][0]),t._[pt]("skel_layers_wrapper",t[i][O][0]),e("[autofocus]").focus()})},initIncludes:function(){e(".skel-layers-include").each(function(){t.parseInit(e(this))})},init:function(){t[n][tn]&&(t[n][U]=t[n][tn]());if(t[n][U]){if(t._[zt][F]==rn&&t._[zt].deviceVersion<4||t._[zt][F]=="wp")t[n][U]=P;t._[zt].IEVersion<10&&(t[n][U]=P),t[n][jt]&&!t._.hasActive(t._[sn](t[n][jt]))&&(t[n][U]=P)}t.eventType=t._[zt][Lt]?"touchend":$t,t.initObjects(),t.initTransforms(),t._[Mt](function(){t.initLayers(),t.initIncludes(),t._.updateState(),t.refresh()})},refresh:function(){e(".skel-layers-fixed")[D]()[Ut](t[i][l])},activate:function(e){t._[Mt](function(){t[i][Nt][e][vt]()})},deactivate:function(e){t._[Mt](function(){t[i][Nt][e][E]()})},toggle:function(e){t._[Mt](function(){var n=t[i][Nt][e];n[Zt]()?n[E]():n[vt]()})}},t)}(jQuery));
\ No newline at end of file
diff --git a/js/skel.min.js b/js/skel.min.js
new file mode 100644
index 0000000..2415497
--- /dev/null
+++ b/js/skel.min.js
@@ -0,0 +1,2 @@
+/* skel.js vx.x | (c) n33 | n33.co | MIT licensed */
+var skel=function(){var e="config",t="breakpoints",n="iterate",r="elements",i="getCachedElement",s="stateId",o="getElementsByClassName",u=!1,a="stateElements",f="cacheElement",l="deviceType",c="length",h="getElementsByTagName",p="config_breakpoint",d="parentNode",v=null,m="height",g="match",y="insertBefore",b="vars",w="newInline",E="orientationChange",S="width",x="object",T="cache",N="lockState",C="!important",k="head",L="containers",A="createElement",O="_skel_isReversed",M="location",_="className",D="locations",P="}",H="extend",B=" 0 0 ",j="onorientationchange",F=!0,I="indexOf",q="replace",R="isArray",U="substring",z="devicePixelRatio",W="defaults",X="DOMReady",V="push",$="addEventListener",J="documentElement",K="{display:none!important}",Q="padding-top:0!important",G="parseMeasurement",Y="registerLocation",Z="events",et="^head",tt="hasOwnProperty",nt="android",rt="viewportWidth",it="DOMContentLoaded",st="getDevicePixelRatio",ot="string",ut="getViewportDimensions",at="matchMedia",ft="IEVersion",lt="_skel_attach",ct="states",ht="ios",pt="ignoreOrientation",dt="placeholder",vt="removeEventListener",mt="padding-top:",gt="resize",yt=".row",bt="attached",wt="stateChange",Et="firstChild",St="_skel_placeholder",xt="href",Tt="querySelectorAll",Nt="windows",Ct="previousSibling",kt="prototype",Lt="innerHTML",At="gutters",Ot="attachElements",Mt="text/css",_t="html",Dt="domready",Pt="padding:",Ht="readyState",Bt="onresize",jt="split",Ft=".\\3$1 ",It="collapse",qt="priority",Rt="attachElement",Ut={config:{containers:960,pollOnce:u,pollOnLock:u,prefix:v,preload:u,reset:u,perpetualLock:F,domainLock:F,ignoreOrientation:u,RTL:u,grid:{collapse:u,gutters:40},breakpoints:{global:{href:u,width:"*",height:"*"}},events:{}},isInit:u,lockState:v,stateId:"",me:v,breakpoints:[],breakpointList:[],events:[],plugins:{},cache:{elements:{},states:{},stateElements:{}},locations:{html:v,head:v,body:v},vars:{},lsc:"_skel_lock",sd:" ",css:{n:'article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"C" "D" "8" "9"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}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}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}',r:"html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}",bm:"*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}"},defaults:{breakpoint:{config:v,elements:v,test:{width:v,height:v}},config_breakpoint:{containers:"100%",grid:{},href:"",width:"*",height:"*",viewport:"",lockViewport:u,viewportWidth:u}},DOMReady:v,getElementsByClassName:v,indexOf:v,isArray:v,iterate:v,extend:function(e,t){var r;Ut[n](t,function(n){Ut[R](t[n])?(Ut[R](e[n])||(e[n]=[]),Ut[H](e[n],t[n])):typeof t[n]==x?(typeof e[n]!=x&&(e[n]={}),Ut[H](e[n],t[n])):e[n]=t[n]})},parseMeasurement:function(e){var t,n;if(typeof e!==ot)t=[e,"px"];else if(e=="fluid")t=[100,"%"];else{var n;n=e[g](/([0-9\.]+)([^\s]*)/),n[c]<3||!n[2]?t=[parseFloat(e),"px"]:t=[parseFloat(n[1]),n[2]]}return t},getArray:function(e){return Ut[R](e)?e:[e]},getDevicePixelRatio:function(){var e=navigator.userAgent;if(Ut[b][l]==ht||Ut[b][l]=="mac"||Ut[b][l]==Nt||Ut[b][l]==nt&&e[g](/Safari\/([0-9]+)/)&&parseInt(RegExp.$1)>=537)return 1;if(window[z]!==undefined&&!e[g](/(Firefox; Mobile)/))return window[z];if(window[at]){if(window[at]("(-webkit-min-device-pixel-ratio: 2),(min--moz-device-pixel-ratio: 2),(-o-min-device-pixel-ratio: 2/1),(min-resolution: 2dppx)").matches)return 2;if(window[at]("(-webkit-min-device-pixel-ratio: 1.5),(min--moz-device-pixel-ratio: 1.5),(-o-min-device-pixel-ratio: 3/2),(min-resolution: 1.5dppx)").matches)return 1.5}return 1},getLevel:function(e){return typeof e=="boolean"?e?1:0:parseInt(e)},getViewportDimensions:function(){var t,n,r,i;return t=window.orientation!==undefined?Math.abs(window.orientation):u,n=Ut[st](),r=document[J].clientWidth,i=document[J].clientHeight,screen[S]0&&r[_][g](/\bno-collapse-([0-9])\b/)&&parseInt(RegExp.$1)>=e)return;var i=r.children,s;for(s=1;s0&&Ut[X](function(){Ut[n](r,function(e){Ut[Rt](r[e])})})},poll:function(){var e,r,i,o,u="";r=Ut[ut](),Ut[N]?i=Ut[N]:i=r[S],o=r[m],Ut[b][rt]=i,Ut[b].viewportHeight=o,Ut[b][z]=Ut[st](),Ut[n](Ut[t],function(e){Ut[t][e].test[S](i)&&Ut[t][e].test[m](o)&&(u+=Ut.sd+e)}),u===""&&(u=Ut.sd),u!==Ut[s]&&(Ut[D][_t][_]=Ut[D][_t][_][q](Ut[s],""),Ut.changeState(u),Ut[D][_t][_]=Ut[D][_t][_]+Ut[s])},updateState:function(){var e,i,o,u,f=[];if(Ut[s]==Ut.sd)return;e=Ut[s][U](1)[jt](Ut.sd),Ut[n](e,function(o){i=Ut[t][e[o]];if(i[r][c]==0)return;Ut[n](i[r],function(e){Ut[T][ct][Ut[s]][r][V](i[r][e]),f[V](i[r][e])})}),Ut[T][a][Ut[s]]&&(Ut[n](Ut[T][a][Ut[s]],function(e){Ut[T][ct][Ut[s]][r][V](Ut[T][a][Ut[s]][e]),f[V](Ut[T][a][Ut[s]][e])}),Ut[T][a][Ut[s]]=[]),f[c]>0&&Ut[Ot](f)},changeState:function(l){var h,v,m,E,S,x,N,A;Ut[b].lastStateId=Ut[s],Ut[s]=l;if(!Ut[T][ct][Ut[s]]){Ut[T][ct][Ut[s]]={config:{},elements:[],values:{}},m=Ut[T][ct][Ut[s]],Ut[s]===Ut.sd?h=[]:h=Ut[s][U](1)[jt](Ut.sd),Ut[H](m[e],Ut[W][p]),Ut[n](h,function(n){Ut[H](m[e],Ut[t][h[n]][e])});switch(Ut[e].reset){case"full":x="iR",(S=Ut[i](x))||(S=Ut[f](x,Ut[w](Ut.css.r),et,2)),m[r][V](S);break;case"normalize":x="iN",(S=Ut[i](x))||(S=Ut[f](x,Ut[w](Ut.css.n),et,2)),m[r][V](S)}x="iBM",(S=Ut[i](x))||(S=Ut[f](x,Ut[w](Ut.css.bm),et,1)),m[r][V](S),N=m[e].viewport,m[e][rt]?N+=(N!=""?",":"")+"width="+m[e][rt]:m[e].lockViewport&&(N+=(N!=""?",":"")+"width=device-width"),m[e].lockViewport&&(N+=(N!=""?",":"")+"initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0"),N!=""&&(x="mV"+Ut[s],(S=Ut[i](x))||(S=Ut[f](x,Ut.newMeta("viewport",N),et,4)),m[r][V](S)),Ut[b][ft]>=10&&(x="mVIE"+Ut[s],(S=Ut[i](x))||(S=Ut[f](x,Ut[w]("@-ms-viewport{width: device-width}"),et,3)),m[r][V](S));var O,M;E=Ut[G](m[e][L]),O=E[0],M=E[1],m.values[L]=O+M,x="iC"+m.values[L];if(!(S=Ut[i](x))){var D,j,F;D=O*.75+M,j=O+M,F=O*1.25+M,S=Ut[f](x,Ut[w]("body{min-width:"+j+P+".container{margin-left:auto;margin-right:auto;width:"+j+P+".container.small{width:"+D+P+".container.big{width:100%;max-width:"+F+";min-width:"+j+P),k,3)}m[r][V](S),x="iG",(S=Ut[i](x))||(S=Ut[f](x,Ut[w](".\\31 2u{width:100%}.\\31 1u{width:91.6666666667%}.\\31 0u{width:83.3333333333%}.\\39 u{width:75%}.\\38 u{width:66.6666666667%}.\\37 u{width:58.3333333333%}.\\36 u{width:50%}.\\35 u{width:41.6666666667%}.\\34 u{width:33.3333333333%}.\\33 u{width:25%}.\\32 u{width:16.6666666667%}.\\31 u{width:8.3333333333%}.\\-11u{margin-left:91.6666666667%}.\\-10u{margin-left:83.3333333333%}.\\-9u{margin-left:75%}.\\-8u{margin-left:66.6666666667%}.\\-7u{margin-left:58.3333333333%}.\\-6u{margin-left:50%}.\\-5u{margin-left:41.6666666667%}.\\-4u{margin-left:33.3333333333%}.\\-3u{margin-left:25%}.\\-2u{margin-left:16.6666666667%}.\\-1u{margin-left:8.3333333333%}"),k,3)),m[r][V](S),x="iGR",(S=Ut[i](x))||(S=Ut[f](x,Ut[w](".row>*{float:left}.row:after{content:'';display:block;clear:both;height:0}.row:first-child>*{padding-top:0!important}"),k,3)),m[r][V](S),x="iGG"+m[e].grid[At];if(!(S=Ut[i](x))){var R,z,$,J,Y,Z,nt;E=Ut[G](m[e].grid[At]),R=E[0],z=E[1],$=R+z,J=R/2+z,Y=R/4+z,Z=R*1.5+z,nt=R*2+z,S=Ut[f]("iGG"+m[e].grid[At],Ut[w](".row>*{padding-left:"+$+P+".row+.row>*{padding:"+$+B+$+P+".row{margin-left:-"+$+P+".row.flush>*{padding-left:0}"+".row+.row.flush>*{padding:0}"+".row.flush{margin-left:0}"+".row.half>*{padding-left:"+J+P+".row+.row.half>*{padding:"+J+B+J+P+".row.half{margin-left:-"+J+P+".row.quarter>*{padding-left:"+Y+P+".row+.row.quarter>*{padding:"+Y+B+Y+P+".row.quarter{margin-left:-"+Y+P+".row.oneandhalf>*{padding-left:"+Z+P+".row+.row.oneandhalf>*{padding:"+Z+B+Z+P+".row.oneandhalf{margin-left:-"+Z+P+".row.double>*{padding-left:"+nt+P+".row+.row.double>*{padding:"+nt+B+nt+P+".row.double{margin-left:-"+nt+P),k,3)}m[r][V](S);if(m[e].grid[It]){var it=Ut.getLevel(m[e].grid[It]);x="iGC"+it+"-"+m.values[L];if(!(S=Ut[i](x))){N=":not(.no-collapse)";switch(it){case 4:break;case 3:N+=":not(.no-collapse-3)";break;case 2:N+=":not(.no-collapse-2):not(.no-collapse-3)";break;case 1:default:N+=":not(.no-collapse-1):not(.no-collapse-2):not(.no-collapse-3)"}E=Ut[G](m[e].grid[At]),A=E[0]+E[1],S=Ut[f](x,Ut[w](".row>*{padding-left:"+A+C+P+".row>*:first-child{"+Q+P+".row+.row>*{"+Pt+A+B+A+C+P+".row{"+"margin-left:-"+A+C+P+yt+N+">*{"+"float:none!important;"+"width:100%!important;"+"margin-left:0!important"+P+".row:not(.flush)"+N+":first-child>*{"+mt+A+C+P+yt+N+":first-child>:first-child {"+Q+P+yt+N+">*{"+mt+A+P+yt+N+">*:first-child{"+"padding-top:0"+P+".row+.row"+N+">*{"+Pt+A+B+A+P+".row.flush>*{"+"padding:0!important"+P+".row.flush{"+"margin-left:0px!important"+P+".container{"+"max-width:none!important;"+"min-width:0!important;"+"width:"+m[e][L]+C+P),k,3)}m[r][V](S)}x="iCd"+Ut[s];if(!(S=Ut[i](x))){N=[],A=[],Ut[n](Ut[t],function(e){Ut[I](h,e)!==-1?N[V](".not-"+e):A[V](".only-"+e)});var st=(N[c]>0?N.join(",")+K:"")+(A[c]>0?A.join(",")+K:"");S=Ut[f](x,Ut[w](st[q](/\.([0-9])/,Ft)),k,3),m[r][V](S)}Ut[n](h,function(s){Ut[t][h[s]][e][xt]&&(x="ss"+h[s],(S=Ut[i](x))||(S=Ut[f](x,Ut.newStyleSheet(Ut[t][h[s]][e][xt]),k,5)),m[r][V](S)),Ut[t][h[s]][r][c]>0&&Ut[n](Ut[t][h[s]][r],function(e){m[r][V](Ut[t][h[s]][r][e])})}),Ut[T][a][Ut[s]]&&(Ut[n](Ut[T][a][Ut[s]],function(e){m[r][V](Ut[T][a][Ut[s]][e])}),Ut[T][a][Ut[s]]=[])}else m=Ut[T][ct][Ut[s]];Ut.detachAllElements(m[r]),Ut[Ot](m[r]),Ut[X](function(){var t,r,i,s=Ut.getLevel(m[e].grid[It]);Ut[e].RTL&&(Ut.unreverseRows(),s>0&&Ut.reverseRows(s)),Ut[b][ft]>8&&(r="_skel_cell_important_placeholder",t=Ut[o]("skel-cell-important"),t&&t[c]>0&&Ut[n](t,function(e){if(e===c)return;var n=t[e],i=n[d],o;if(!i)return;i[_][g](/no-collapse-([0-9])/)?o=parseInt(RegExp.$1):i[_][g](/no-collapse/)?o=100:o=0;if(o'+e+""):(t=document[A]("style"),t.type=Mt,t[Lt]=e),t},newDiv:function(e){var t=document[A]("div");return t[Lt]=e,t},registerPlugin:function(e,t){if(!t)return u;Ut.plugins[e]=t,t._=this},initPlugin:function(t,n){typeof n==x&&Ut[H](t[e],n),t.init()},initConfig:function(i){function a(e,t){var n;return typeof t!=ot&&(n=function(e){return u}),t=="*"?n=function(e){return F}:t.charAt(0)=="-"?(s[e]=parseInt(t[U](1)),n=function(t){return t<=s[e]}):t.charAt(t[c]-1)=="-"?(s[e]=parseInt(t[U](0,t[c]-1)),n=function(t){return t>=s[e]}):Ut[I](t,"-")!=-1?(t=t[jt]("-"),s[e]=[parseInt(t[0]),parseInt(t[1])],n=function(t){return t>=s[e][0]&&t<=s[e][1]}):(s[e]=parseInt(t),n=function(t){return t==s[e]}),n}var s=[],o=[];typeof i==x&&(i[t]&&(Ut[e][t]={}),Ut[H](Ut[e],i)),Ut[H](Ut[W][p].grid,Ut[e].grid),Ut[W][p][L]=Ut[e][L],Ut[n](Ut[e][t],function(n){var i,s={};Ut[H](s,Ut[e][t][n]),xt in s||(s[xt]=Ut[W][p][xt]),m in s||(s[m]=Ut[W][p][m]),"range"in s?s[S]=s.range:S in s||(s[S]=Ut[W][p][S]),Ut[e][t][n]=s,i={},Ut[H](i,Ut[W].breakpoint),i[e]=Ut[e][t][n],i.test={width:a(n+"w",i[e][S]),height:a(n+"h",i[e][m])},i[r]=[],Ut[e].prefix&&i[e][xt]!==u&&(i[e][xt]=Ut[e].prefix+"-"+n+".css"),i[e][xt]===""&&(i[e][xt]=u),Ut[e].preload&&i[e][xt]&&o[V](i[e][xt]),Ut[t][n]=i,Ut.breakpointList[V](n)}),Ut[n](Ut[e][Z],function(t){Ut.bind(t,Ut[e][Z][t])}),o[c]>0&&window[M].protocol!="file:"&&Ut[X](function(){var e,t=document[h](k)[0],r=new XMLHttpRequest;Ut[n](o,function(e){r.open("GET",o[e],u),r.send("")})})},initEvents:function(){var t;Ut[e].pollOnce||(Ut.bind(gt,function(){Ut.poll()}),Ut[e][pt]||Ut.bind(E,function(){Ut.poll()})),Ut[b][l]==ht&&Ut[X](function(){Ut.bind(E,function(){var e=document[h]("input");Ut[n](e,function(t){e[t][St]=e[t][dt],e[t][dt]=""}),window.setTimeout(function(){Ut[n](e,function(t){e[t][dt]=e[t][St]})},100)})}),window[Bt]&&Ut.bind(gt,window[Bt]),window[Bt]=function(){Ut.trigger(gt)},window[j]&&Ut.bind(E,window[j]),window[j]=function(){Ut.trigger(E)}},initUtilityMethods:function(){document[$]?!function(e,t){Ut[X]=t()}(Dt,function(){function e(e){s=1;while(e=t.shift())e()}var t=[],n,r=document,i=it,s=/^loaded|^c/.test(r[Ht]);return r[$](i,n=function(){r[vt](i,n),e()}),function(e){s?e():t[V](e)}}):!function(e,t){Ut[X]=t()}(Dt,function(e){function t(e){p=1;while(e=n.shift())e()}var n=[],r,i=!1,s=document,o=s[J],u=o.doScroll,a=it,f=$,l="onreadystatechange",c=Ht,h=u?/^loaded|^c/:/^loaded|c/,p=h.test(s[c]);return s[f]&&s[f](a,r=function(){s[vt](a,r,i),t()},i),u&&s.attachEvent(l,r=function(){/^c/.test(s[c])&&(s.detachEvent(l,r),t())}),e=u?function(t){self!=top?p?t():n[V](t):function(){try{o.doScroll("left")}catch(n){return setTimeout(function(){e(t)},50)}t()}()}:function(e){p?e():n[V](e)}}),document[o]?Ut[o]=function(e){return document[o](e)}:Ut[o]=function(e){var t=document;return t[Tt]?t[Tt](("."+e[q](" "," ."))[q](/\.([0-9])/,Ft)):[]},Array[kt][I]?Ut[I]=function(e,t){return e[I](t)}:Ut[I]=function(e,t){if(typeof e==ot)return e[I](t);var n,r=t?t:0,i;if(!this)throw new TypeError;i=this[c];if(i===0||r>=i)return-1;r<0&&(r=i-Math.abs(r));for(n=r;n0:"ontouchstart"in window,Ut[b].isMobile=Ut[b][l]=="wp"||Ut[b][l]==nt||Ut[b][l]==ht,e=document.cookie[jt](";"),e=e.concat(window[M].search[U](1)[jt]("&")),Ut[n](e,function(t){var n=e[t][jt]("=");if(n[0][q](/^\s+|\s+$/g,"")==Ut.lsc){Ut[N]=n[1];return}})},init:function(e,t){Ut.initUtilityMethods(),Ut.initAPI(),Ut.initConfig(e),Ut[Y](_t,document[h](_t)[0]),Ut[Y](k,document[h](k)[0]),Ut[X](function(){Ut[Y]("body",document[h]("body")[0])}),Ut.initEvents(),Ut.poll(),Ut[n](Ut.plugins,function(e){Ut.initPlugin(Ut.plugins[e],typeof t==x&&e in t?t[e]:v)}),Ut.isInit=F}},zt=document[h]("script");return Ut.me=zt[zt[c]-1],Ut}();
\ No newline at end of file
diff --git a/js/thumbs-up.json b/js/thumbs-up.json
new file mode 100644
index 0000000..b1c2d2f
--- /dev/null
+++ b/js/thumbs-up.json
@@ -0,0 +1 @@
+[ { "theta": 0.0042372627762468085, "r": 0.9440084745382321 }, { "theta": 0.004255293464475951, "r": 0.9400085105997711 }, { "theta": 0.004273478258349339, "r": 0.9360085469695242 }, { "theta": 0.008474373402970414, "r": 0.9440338976964757 }, { "theta": 0.00851043282888897, "r": 0.9400340419367801 }, { "theta": 0.012657551834051706, "r": 0.9480759463249766 }, { "theta": 0.012711179763426284, "r": 0.9440762681054958 }, { "theta": 0.012765264026655565, "r": 0.9400765926242393 }, { "theta": 0.01687603484692124, "r": 0.9481350114830693 }, { "theta": 0.01694752980640457, "r": 0.9441355834836435 }, { "theta": 0.021093917253554473, "r": 0.948210946994391 }, { "theta": 0.021183271578959495, "r": 0.9442118406374704 }, { "theta": 0.025204745326941502, "r": 0.9523024729569908 }, { "theta": 0.02531104914284832, "r": 0.9483037488062568 }, { "theta": 0.02541825325907565, "r": 0.9443050354625881 }, { "theta": 0.02940328820400495, "r": 0.9524116756949171 }, { "theta": 0.029527280763816055, "r": 0.9484134119675871 }, { "theta": 0.033460310449650255, "r": 0.9565354149219986 }, { "theta": 0.033600794415993285, "r": 0.9525376632973628 }, { "theta": 0.03374246255742186, "r": 0.9485399306302291 }, { "theta": 0.03763911919938856, "r": 0.9566775841421183 }, { "theta": 0.03779711649456452, "r": 0.9526804291051643 }, { "theta": 0.04181661320751706, "r": 0.9568364541550453 }, { "theta": 0.04199210722136959, "r": 0.9528399655765915 }, { "theta": 0.04599264736156927, "r": 0.9570120166434694 }, { "theta": 0.046185619658877464, "r": 0.9530162642893353 }, { "theta": 0.05016707685413868, "r": 0.9572042624226033 }, { "theta": 0.05037750718105771, "r": 0.9532093159427262 }, { "theta": 0.0541137842290782, "r": 0.9614073018237379 }, { "theta": 0.054339757212768625, "r": 0.9574131814425787 }, { "theta": 0.05826730296953331, "r": 0.9616319462247498 }, { "theta": 0.058510544329667624, "r": 0.9576387627910641 }, { "theta": 0.06241880999595706, "r": 0.9618731725128838 }, { "theta": 0.06267929449123777, "r": 0.9578809946961053 }, { "theta": 0.06656816377582375, "r": 0.9621309682158661 }, { "theta": 0.0668458644073966, "r": 0.9581398645291824 }, { "theta": 0.07071522321994639, "r": 0.9624053200185461 }, { "theta": 0.07101011124067913, "r": 0.9584153588084865 }, { "theta": 0.07485984771076692, "r": 0.9626962137663159 }, { "theta": 0.07517189263510904, "r": 0.9587074632024098 }, { "theta": 0.07867544227009038, "r": 0.9669912098876597 }, { "theta": 0.07900189713040273, "r": 0.9630036344687386 }, { "theta": 0.08279782530853375, "r": 0.9673138063730922 }, { "theta": 0.08314123188844125, "r": 0.9633275663033836 }, { "theta": 0.08691738970361484, "r": 0.9676528303064069 }, { "theta": 0.08727771294946152, "r": 0.9636679926198649 }, { "theta": 0.09103399866851403, "r": 0.9680082644275305 }, { "theta": 0.09141120186028084, "r": 0.964024895944083 }, { "theta": 0.09514751601325155, "r": 0.9683800906668827 }, { "theta": 0.09554156077690301, "r": 0.9643982579826655 }, { "theta": 0.0992578061708107, "r": 0.9687682901499202 }, { "theta": 0.09966865249116186, "r": 0.9647880596276054 }, { "theta": 0.10336473422294912, "r": 0.9691728432018718 }, { "theta": 0.10379234045704289, "r": 0.9651942809610923 }, { "theta": 0.10746816592568909, "r": 0.9695937293526604 }, { "theta": 0.10791248881667626, "r": 0.9656169012605361 }, { "theta": 0.11156796773447253, "r": 0.97003092734201 }, { "theta": 0.11202896242598781, "r": 0.9660558990037791 }, { "theta": 0.11566400682897227, "r": 0.9704844151247355 }, { "theta": 0.11614162687998997, "r": 0.9665112518744932 }, { "theta": 0.12025034853771421, "r": 0.9669829367677591 }, { "theta": 0.12074862172202394, "r": 0.9630119417743479 }, { "theta": 0.12435499454676124, "r": 0.967470929795826 }, { "theta": 0.12486992755995097, "r": 0.9635019460281333 }, { "theta": 0.1284554328674674, "r": 0.9679752062940455 }, { "theta": 0.1289869737717808, "r": 0.9640082987194665 }, { "theta": 0.1325515322966737, "r": 0.9684957408269796 }, { "theta": 0.13309962761038374, "r": 0.9645309741008838 }, { "theta": 0.1366431624910871, "r": 0.9690325071946762 }, { "theta": 0.13720775720602774, "r": 0.9650699456516093 }, { "theta": 0.14073019399022524, "r": 0.969585478439111 }, { "theta": 0.14131123158975045, "r": 0.9656251860841245 }, { "theta": 0.14481249823893894, "r": 0.9701546268507922 }, { "theta": 0.14540992071629688, "r": 0.9661966673509075 }, { "theta": 0.14601225771127524, "r": 0.9622390555366167 }, { "theta": 0.14950369548660714, "r": 0.9667843606513296 }, { "theta": 0.15012248601576195, "r": 0.9628291644938888 }, { "theta": 0.1535924277698526, "r": 0.9673882364387113 }, { "theta": 0.15422760991306106, "r": 0.9634355193784376 }, { "theta": 0.15767599042500846, "r": 0.9680082644275305 }, { "theta": 0.15832750080842972, "r": 0.9640580895361025 }, { "theta": 0.16175425732195503, "r": 0.9686444136007806 }, { "theta": 0.16242203113842013, "r": 0.9646968435731507 }, { "theta": 0.16309529221024066, "r": 0.9607497072599085 }, { "theta": 0.1665110743918632, "r": 0.96535174936393 }, { "theta": 0.1672006581187131, "r": 0.9614073018237379 }, { "theta": 0.17059450513035523, "r": 0.9660227740586658 }, { "theta": 0.17130034280816897, "r": 0.9620810776644555 }, { "theta": 0.17467219900823938, "r": 0.9667098840913959 }, { "theta": 0.17539422054342246, "r": 0.9627710008096422 }, { "theta": 0.1787440327920775, "r": 0.9674130451880417 }, { "theta": 0.17948216672376782, "r": 0.9634770365711888 }, { "theta": 0.1802263558527537, "r": 0.9595415572032302 }, { "theta": 0.1828098843796031, "r": 0.9681322223746094 }, { "theta": 0.1835640579022444, "r": 0.9641991495536594 }, { "theta": 0.1843244088996987, "r": 0.960266629639914 }, { "theta": 0.18686963281815538, "r": 0.9688673799855169 }, { "theta": 0.18763977180436608, "r": 0.9649373036627821 }, { "theta": 0.19014347103354678, "r": 0.9735460954674925 }, { "theta": 0.190923158322585, "r": 0.969618481672044 }, { "theta": 0.19170918734630993, "r": 0.9656914621140646 }, { "theta": 0.19338595824191795, "r": 0.9782351455555051 }, { "theta": 0.19417495906864257, "r": 0.9743100122650901 }, { "theta": 0.19497034229263122, "r": 0.9703854904108985 }, { "theta": 0.19739555984988044, "r": 0.9790117466098147 }, { "theta": 0.1982000649055986, "r": 0.9750897394599125 }, { "theta": 0.2005853416949468, "r": 0.9837235383988735 }, { "theta": 0.20139874102752042, "r": 0.9798040620450602 }, { "theta": 0.202218673575826, "r": 0.9758852391546867 }, { "theta": 0.20374468088385678, "r": 0.9884452438046328 }, { "theta": 0.20456675165983684, "r": 0.9845283134577695 }, { "theta": 0.2053953891897673, "r": 0.980612053770501 }, { "theta": 0.2068739489797431, "r": 0.993176721434811 }, { "theta": 0.2077044729961237, "r": 0.989262351451828 }, { "theta": 0.2085415950696734, "r": 0.985348669253681 }, { "theta": 0.21081227645667866, "r": 0.9940060361989761 }, { "theta": 0.211657667248617, "r": 0.9900949449421506 }, { "theta": 0.21250976287039824, "r": 0.9861845669041875 }, { "theta": 0.2138905287245585, "r": 0.9987592302452079 }, { "theta": 0.21474397693202762, "r": 0.9948507425739802 }, { "theta": 0.21560415687081314, "r": 0.9909429852418352 }, { "theta": 0.21780089053641882, "r": 0.9996159262436748 }, { "theta": 0.21866894587394192, "r": 0.9957108013876318 }, { "theta": 0.22170449596038466, "r": 1.0004878809860718 }, { "theta": 0.22258707993777715, "r": 0.9965861728922392 }, { "theta": 0.22471116841464278, "r": 1.0052740919769094 }, { "theta": 0.22560124383602398, "r": 1.0013750546124065 }, { "theta": 0.2264982769778756, "r": 0.997476816773202 }, { "theta": 0.2285866888188588, "r": 1.0061729473604426 }, { "theta": 0.22949103419100547, "r": 1.00227740670934 }, { "theta": 0.23154377092565026, "r": 1.0109797228431439 }, { "theta": 0.23245523309899419, "r": 1.0070868880091728 }, { "theta": 0.23337376825179312, "r": 1.0031948963187562 }, { "theta": 0.23539122918455924, "r": 1.011905133893489 }, { "theta": 0.23631670459914744, "r": 1.0080158728908983 }, { "theta": 0.23829937314319105, "r": 1.0167320197574188 }, { "theta": 0.23923159996366028, "r": 1.0128454966084413 }, { "theta": 0.2401710078601731, "r": 1.0089598604503551 }, { "theta": 0.24211880438405808, "r": 1.0176836443610557 }, { "theta": 0.24306478986556357, "r": 1.0138007693822293 }, { "theta": 0.24593104379129915, "r": 1.0186500871251127 }, { "theta": 0.2468907066858752, "r": 1.014770910107301 }, { "theta": 0.24877011415357542, "r": 1.0235076941576942 }, { "theta": 0.24973600116635142, "r": 1.0196313059140545 }, { "theta": 0.25070925942140887, "r": 1.0157558761828551 }, { "theta": 0.25255427577805944, "r": 1.0244998779892558 }, { "theta": 0.25353358749828603, "r": 1.0206272581114026 }, { "theta": 0.2563310609393774, "r": 1.0255067040248933 }, { "theta": 0.2573237149710885, "r": 1.021637900628202 }, { "theta": 0.2591020177794099, "r": 1.030394099361987 }, { "theta": 0.2601003837573832, "r": 1.0265281291810762 }, { "theta": 0.2611062969705005, "r": 1.0226631899115173 }, { "theta": 0.26285070172368385, "r": 1.0314261970688936 }, { "theta": 0.26386215953911485, "r": 1.0275641099221011 }, { "theta": 0.2665918384684631, "r": 1.0324727599312247 }, { "theta": 0.2676163047847617, "r": 1.0286146022685074 }, { "theta": 0.27032534637866634, "r": 1.0335337440064547 }, { "theta": 0.2713627371932117, "r": 1.0296795618055161 }, { "theta": 0.27300870308671055, "r": 1.0384603988597734 }, { "theta": 0.2740511450024812, "r": 1.03460910492804 }, { "theta": 0.27510137566718296, "r": 1.030758943691492 }, { "theta": 0.276714036655322, "r": 1.0395460547758335 }, { "theta": 0.2777691550760988, "r": 1.0356987979137564 }, { "theta": 0.28041158828336066, "r": 1.040645953242504 }, { "theta": 0.2814792985280423, "r": 1.0368027777740567 }, { "theta": 0.2841012816760129, "r": 1.0417600491475953 }, { "theta": 0.2851814984831007, "r": 1.037920998920438 }, { "theta": 0.2877830417182192, "r": 1.0428882969906221 }, { "theta": 0.28887567926586, "r": 1.03905341537382 }, { "theta": 0.29145679447786677, "r": 1.044030650891055 }, { "theta": 0.29256176640384757, "r": 1.040199980772928 }, { "theta": 0.29512246720859947, "r": 1.0451870645965726 }, { "theta": 0.2962396866302832, "r": 1.041360648382682 }, { "theta": 0.29877998835224684, "r": 1.0463574914913163 }, { "theta": 0.2999093678864466, "r": 1.0425353711025827 }, { "theta": 0.3024292875408867, "r": 1.047541884604143 }, { "theta": 0.30357073932366374, "r": 1.0437241014750978 }, { "theta": 0.3060702955985324, "r": 1.0487401966168743 }, { "theta": 0.30722373130491354, "r": 1.0449267916940403 }, { "theta": 0.30970294454245595, "r": 1.049952379872535 }, { "theta": 0.3108682754060652, "r": 1.0461433936129405 }, { "theta": 0.3133271675841538, "r": 1.0511783863835862 }, { "theta": 0.31450430441674504, "r": 1.0473738587534063 }, { "theta": 0.316942899129951, "r": 1.0524181678401414 }, { "theta": 0.31813175234083957, "r": 1.0486181383134663 }, { "theta": 0.32055007478125663, "r": 1.053671675618169 }, { "theta": 0.32175055439664213, "r": 1.049876183175902 }, { "theta": 0.32414863133447147, "r": 1.0549388607876762 }, { "theta": 0.3253606470166419, "r": 1.0511479439165545 }, { "theta": 0.3277385067805554, "r": 1.0562196741208716 }, { "theta": 0.3289619678469684, "r": 1.0524333708126135 }, { "theta": 0.3313196403042524, "r": 1.0575140661003049 }, { "theta": 0.3325544557464881, "r": 1.0537324138508788 }, { "theta": 0.3348919722829917, "r": 1.058821986926981 }, { "theta": 0.3361380507855678, "r": 1.0550450227359969 }, { "theta": 0.3384554442854535, "r": 1.060143386528445 }, { "theta": 0.33971269424449924, "r": 1.0563711468986645 }, { "theta": 0.3420099990698211, "r": 1.0614782145668369 }, { "theta": 0.34327832861160346, "r": 1.057710735503805 }, { "theta": 0.3445557237516401, "r": 1.053944970100432 }, { "theta": 0.3468348975810076, "r": 1.0590637374587044 }, { "theta": 0.34812333528068473, "r": 1.0553028001479006 }, { "theta": 0.35038234605010876, "r": 1.0604301014211166 }, { "theta": 0.35168173275045067, "r": 1.0566740273140056 }, { "theta": 0.35392062011673, "r": 1.0618097758073242 }, { "theta": 0.3552308620466813, "r": 1.058058599511388 }, { "theta": 0.3587706702705722, "r": 1.0594564644193738 }, { "theta": 0.3601010464258265, "r": 1.055712081961744 }, { "theta": 0.3623011057351384, "r": 1.0608675694920644 }, { "theta": 0.36364219949257093, "r": 1.0571281852263708 }, { "theta": 0.36582211796129194, "r": 1.0622918619663808 }, { "theta": 0.3671738338182191, "r": 1.058557509065993 }, { "theta": 0.3706958999913894, "r": 1.06 }, { "theta": 0.37206775885812027, "r": 1.0562726920639387 }, { "theta": 0.37420834981758366, "r": 1.0614556043471626 }, { "theta": 0.37559068636994475, "r": 1.0577334257741882 }, { "theta": 0.37771113631420494, "r": 1.062924268233631 }, { "theta": 0.37910385348780773, "r": 1.0592072507304697 }, { "theta": 0.3805063771123649, "r": 1.0554923021983627 }, { "theta": 0.3826072143578001, "r": 1.0606941123622775 }, { "theta": 0.3840200660957094, "r": 1.0569843896671323 }, { "theta": 0.3861007243444652, "r": 1.062193955923305 }, { "theta": 0.3875238057802788, "r": 1.0584894897919395 }, { "theta": 0.38895688017900687, "r": 1.0547871823263686 }, { "theta": 0.39101755270582617, "r": 1.0600075471429435 }, { "theta": 0.3924608005855865, "r": 1.0563105603940537 }, { "theta": 0.3945012646354149, "r": 1.0615385061315488 }, { "theta": 0.39595458630683744, "r": 1.057846869825685 }, { "theta": 0.397418083884574, "r": 1.0541574834909628 }, { "theta": 0.39943819632618816, "r": 1.0593960543630507 }, { "theta": 0.40091170779890284, "r": 1.055712081961744 }, { "theta": 0.40291159085351547, "r": 1.060958057606426 }, { "theta": 0.40439501533737365, "r": 1.057279527844931 }, { "theta": 0.40588879492781293, "r": 1.0536033409210508 }, { "theta": 0.4078679679739099, "r": 1.0588597640858775 }, { "theta": 0.40937159703361825, "r": 1.055189082581885 }, { "theta": 0.4113305284102786, "r": 1.0604527335058362 }, { "theta": 0.4128439049425845, "r": 1.0567875850898325 }, { "theta": 0.4143678118683969, "r": 1.0531248738872327 }, { "theta": 0.4163056826626308, "r": 1.0583987906266712 }, { "theta": 0.41783926991400877, "r": 1.0547416745345755 }, { "theta": 0.4193835253505833, "r": 1.0510870563373902 }, { "theta": 0.4213000599802301, "r": 1.0563711468986645 }, { "theta": 0.4228539261329405, "r": 1.0527221855741427 }, { "theta": 0.4244185980132267, "r": 1.049075783725847 }, { "theta": 0.4263135213946496, "r": 1.0543699540483882 }, { "theta": 0.42788773190519924, "r": 1.050729270554504 }, { "theta": 0.42947288538461104, "r": 1.047091209016674 }, { "theta": 0.43134592303625974, "r": 1.0523953629696399 }, { "theta": 0.43294054057074405, "r": 1.0487630809672888 }, { "theta": 0.43454623796168246, "r": 1.0451334842975801 }, { "theta": 0.4347931407786194, "r": 1.0540740011972594 }, { "theta": 0.43639711610929455, "r": 1.0504475236774087 }, { "theta": 0.4380122004791285, "r": 1.0468237674030907 }, { "theta": 0.4398425828157362, "r": 1.0521444767711323 }, { "theta": 0.441466946869308, "r": 1.0485265852614325 }, { "theta": 0.4431025549674059, "r": 1.0449114795043646 }, { "theta": 0.4449104494227436, "r": 1.0502418769026494 }, { "theta": 0.44655525660308903, "r": 1.0466326958393761 }, { "theta": 0.44821144234056387, "r": 1.0430263659179475 }, { "theta": 0.449879115937339, "r": 1.0394229168149027 }, { "theta": 0.44999657989004804, "r": 1.0483663481817793 }, { "theta": 0.4516618816111131, "r": 1.044766002509653 }, { "theta": 0.4533386958545629, "r": 1.0411685742472252 }, { "theta": 0.4550271328886697, "r": 1.0375740937398157 }, { "theta": 0.45510080856819446, "r": 1.0465180361560904 }, { "theta": 0.45678665319260103, "r": 1.0429266513039162 }, { "theta": 0.4584841437020475, "r": 1.0393382510039741 }, { "theta": 0.46019339130550296, "r": 1.0357528662765072 }, { "theta": 0.46192939763325214, "r": 1.0411147871392472 }, { "theta": 0.46364760900080615, "r": 1.0375355415599024 }, { "theta": 0.46537771108082104, "r": 1.0339593802466323 }, { "theta": 0.4670899361957277, "r": 1.0393305537700699 }, { "theta": 0.46882890978504443, "r": 1.035760590097924 }, { "theta": 0.4705799069628882, "r": 1.0321937802564012 }, { "theta": 0.47226808511294216, "r": 1.0375740937398157 }, { "theta": 0.47402785899954614, "r": 1.0340135395631918 }, { "theta": 0.4757997885503129, "r": 1.0304562096469698 }, { "theta": 0.47746365558423776, "r": 1.0358455483323759 }, { "theta": 0.47758398890696263, "r": 1.0269021374989926 }, { "theta": 0.47924426449678004, "r": 1.0322945316139187 }, { "theta": 0.48103716029013643, "r": 1.0287468104446302 }, { "theta": 0.4828424589342224, "r": 1.0252024190373334 }, { "theta": 0.4844779290370229, "r": 1.0306037065720266 }, { "theta": 0.4846602776856219, "r": 1.0216613920472868 }, { "theta": 0.48629182147900485, "r": 1.0270657233108307 }, { "theta": 0.4881182478673436, "r": 1.0235311426624987 }, { "theta": 0.489957326253728, "r": 1.02 }, { "theta": 0.4915635662674922, "r": 1.0254130874920604 }, { "theta": 0.4918091759886982, "r": 1.0164723311531898 }, { "theta": 0.49341114627573823, "r": 1.0218884479237447 }, { "theta": 0.49527150913006546, "r": 1.0183673207639767 }, { "theta": 0.4971447749400646, "r": 1.0148497425727614 }, { "theta": 0.4987209395340315, "r": 1.020274472874824 }, { "theta": 0.5006026079900199, "r": 1.01676349265697 }, { "theta": 0.5024973098693626, "r": 1.0132561374104774 }, { "theta": 0.5040474078341837, "r": 1.0186893540230997 }, { "theta": 0.5044051673112131, "r": 1.009752444909147 }, { "theta": 0.5059503992710761, "r": 1.0151886524188496 }, { "theta": 0.5063263037736223, "r": 1.006252453413158 }, { "theta": 0.5078665533964588, "r": 1.0116916526293969 }, { "theta": 0.509795993032653, "r": 1.0081983931746767 }, { "theta": 0.5117388423153577, "r": 1.004708913068855 }, { "theta": 0.5132522728662607, "r": 1.0101564235305343 }, { "theta": 0.5136952267068091, "r": 1.0012232518274833 }, { "theta": 0.5152033056981482, "r": 1.006673730659542 }, { "theta": 0.5156652730089726, "r": 0.9977414494747625 }, { "theta": 0.5171678774601212, "r": 1.0031948963187562 }, { "theta": 0.519146114246523, "r": 0.9997199607890203 }, { "theta": 0.521138143484118, "r": 0.9962489648677182 }, { "theta": 0.5226131632570779, "r": 1.0017105370315318 }, { "theta": 0.5231440939448619, "r": 0.9927819498762052 }, { "theta": 0.5246132565946415, "r": 0.9982464625532114 }, { "theta": 0.5251640957586816, "r": 0.989318957667344 }, { "theta": 0.5266272714337505, "r": 0.9947864092356711 }, { "theta": 0.5286553371208251, "r": 0.9913304191842396 }, { "theta": 0.5306975843510067, "r": 0.9878785350436561 }, { "theta": 0.5321323971666954, "r": 0.993353914775595 }, { "theta": 0.5327541451804301, "r": 0.9844308000057698 }, { "theta": 0.5341825749053841, "r": 0.9899090867347364 }, { "theta": 0.5348251530384838, "r": 0.980987257817348 }, { "theta": 0.5362470627313005, "r": 0.9864684485577833 }, { "theta": 0.5369107427400452, "r": 0.977547952787995 }, { "theta": 0.5383259932104116, "r": 0.9830320442386403 }, { "theta": 0.5390110504976877, "r": 0.9741129297981831 }, { "theta": 0.540419500270584, "r": 0.9795999183340105 }, { "theta": 0.5411262139338482, "r": 0.9706822343073969 }, { "theta": 0.5425277192132487, "r": 0.9761721159713589 }, { "theta": 0.543256372092952, "r": 0.9672559123623903 }, { "theta": 0.5446507867250179, "r": 0.9727486828569853 }, { "theta": 0.5467888408892474, "r": 0.9693296652842107 }, { "theta": 0.5489420211975311, "r": 0.9659151101416729 }, { "theta": 0.5503061837781007, "r": 0.9714154620964194 }, { "theta": 0.5511104685611259, "r": 0.9625050649217385 }, { "theta": 0.5524671101247702, "r": 0.9680082644275305 }, { "theta": 0.5532943253222924, "r": 0.9590995777290281 }, { "theta": 0.5546432920250615, "r": 0.9646056188930272 }, { "theta": 0.5554937352655434, "r": 0.9556986972890567 }, { "theta": 0.5568348707696851, "r": 0.9612075738361616 }, { "theta": 0.5577088436287925, "r": 0.9523024729569908 }, { "theta": 0.5590419890640934, "r": 0.9578141782203895 }, { "theta": 0.5599397971143882, "r": 0.9489109547265223 }, { "theta": 0.5612647910390187, "r": 0.9544254816380375 }, { "theta": 0.5621867439000292, "r": 0.9455241932388616 }, { "theta": 0.5635034222608852, "r": 0.9510415343190853 }, { "theta": 0.5644498336495398, "r": 0.942142239791848 }, { "theta": 0.5657580297420903, "r": 0.9476623871400616 }, { "theta": 0.5667292175235064, "r": 0.9387651463491815 }, { "theta": 0.5680287619511364, "r": 0.9442880916330566 }, { "theta": 0.5690250481897485, "r": 0.9353929655497736 }, { "theta": 0.5703157688226068, "r": 0.9409186999948507 }, { "theta": 0.5713374798336268, "r": 0.9320257507172213 }, { "theta": 0.5726192017669725, "r": 0.9375542650961596 }, { "theta": 0.5736666681681606, "r": 0.928663555869401 }, { "theta": 0.5749392136802118, "r": 0.9341948404909973 }, { "theta": 0.5760127704439526, "r": 0.9253064357281862 }, { "theta": 0.5772759589532415, "r": 0.9308404804261576 }, { "theta": 0.5783759454588986, "r": 0.9219544457292888 }, { "theta": 0.5796295934811306, "r": 0.9274912398508139 }, { "theta": 0.5807563535676703, "r": 0.9186076420322226 }, { "theta": 0.5820002746720943, "r": 0.9241471744262383 }, { "theta": 0.5831541566909593, "r": 0.915266081530393 }, { "theta": 0.5843881614562458, "r": 0.9208083405356404 }, { "theta": 0.585569518324458, "r": 0.9119298218613098 }, { "theta": 0.5867934142940965, "r": 0.9174747952941269 }, { "theta": 0.5880026035475674, "r": 0.9085989214169253 }, { "theta": 0.5892161951847825, "r": 0.9141465965587795 }, { "theta": 0.5904535790318133, "r": 0.9052734393540992 }, { "theta": 0.5916566676740027, "r": 0.910823802938856 }, { "theta": 0.5929226130489491, "r": 0.9019534356051869 }, { "theta": 0.5941149968616566, "r": 0.90750647380611 }, { "theta": 0.5954098754787323, "r": 0.8986389708887547 }, { "theta": 0.596591349409151, "r": 0.9041946693052332 }, { "theta": 0.5979155378163505, "r": 0.8953301067204208 }, { "theta": 0.5990858935463734, "r": 0.9008884503644166 }, { "theta": 0.6004397731794762, "r": 0.8920269054238219 }, { "theta": 0.601598799078296, "r": 0.8975878787060351 }, { "theta": 0.6029827563149373, "r": 0.8887294301417051 }, { "theta": 0.6041302373912036, "r": 0.8942930168574503 }, { "theta": 0.6055446636049697, "r": 0.8854377448471462 }, { "theta": 0.6066803814585171, "r": 0.8910039281619357 }, { "theta": 0.6081256730730402, "r": 0.8821519143548916 }, { "theta": 0.6092494058461915, "r": 0.8877206767897209 }, { "theta": 0.6107259643892085, "r": 0.8788720043328265 }, { "theta": 0.6118374867176701, "r": 0.8844433277491554 }, { "theta": 0.61334571887501, "r": 0.8755980813135671 }, { "theta": 0.6144448018383657, "r": 0.8811719468979934 }, { "theta": 0.6159851195078296, "r": 0.8723302127061747 }, { "theta": 0.617071530579651, "r": 0.877906600954794 }, { "theta": 0.6186443509247468, "r": 0.8690684668079955 }, { "theta": 0.6197178539223276, "r": 0.8746473575104425 }, { "theta": 0.6213235994258146, "r": 0.8658129128166201 }, { "theta": 0.6223839544595506, "r": 0.8713942850397861 }, { "theta": 0.6240230529767565, "r": 0.8625636208419643 }, { "theta": 0.6250700163991851, "r": 0.8681474529133861 }, { "theta": 0.6267429012110468, "r": 0.8593206619184715 }, { "theta": 0.6277762255655599, "r": 0.8649069314093858 }, { "theta": 0.6294833354313409, "r": 0.8560841080174307 }, { "theta": 0.6305027694005951, "r": 0.8616727917254903 }, { "theta": 0.6322445486102355, "r": 0.852854032059414 }, { "theta": 0.6332498369642732, "r": 0.8584451059910586 }, { "theta": 0.6350267353903138, "r": 0.8496305079268281 }, { "theta": 0.6360176189344244, "r": 0.8552239472793077 }, { "theta": 0.6378300920834534, "r": 0.8464136104765801 }, { "theta": 0.638806307605789, "r": 0.8520093896196215 }, { "theta": 0.6406548166693593, "r": 0.8432034155528546 }, { "theta": 0.6416160968883333, "r": 0.8488015080099705 }, { "theta": 0.6435011087932843, "r": 0.84 }, { "theta": 0.6444471823047775, "r": 0.8456003784294328 }, { "theta": 0.6463691697629037, "r": 0.8368034416755228 }, { "theta": 0.6472997609873046, "r": 0.842406077850819 }, { "theta": 0.6492592025443074, "r": 0.8336138194631852 }, { "theta": 0.6501740316734166, "r": 0.8392186842533953 }, { "theta": 0.6521714117570698, "r": 0.8304312132862058 }, { "theta": 0.653070194700895, "r": 0.8360382766357052 }, { "theta": 0.6551060036683549, "r": 0.8272557041205579 }, { "theta": 0.655988452001834, "r": 0.8328649350284835 }, { "theta": 0.6580631861860229, "r": 0.8240873740083632 }, { "theta": 0.6589290070957055, "r": 0.8296987405076616 }, { "theta": 0.6610431688506866, "r": 0.8209263060713794 }, { "theta": 0.66189206508141, "r": 0.8265397752074609 }, { "theta": 0.6640461628266845, "r": 0.817772584524573 }, { "theta": 0.6648778326282829, "r": 0.8233881223335687 }, { "theta": 0.667072380891915, "r": 0.8146262946897798 }, { "theta": 0.6678865179660027, "r": 0.8202438661763951 }, { "theta": 0.6701220374264962, "r": 0.8114875230094422 }, { "theta": 0.6709183308733637, "r": 0.8171070921244045 }, { "theta": 0.6731953484001938, "r": 0.8083563570604242 }, { "theta": 0.6739734826658639, "r": 0.813977886677519 }, { "theta": 0.6762925313585777, "r": 0.8052328855678957 }, { "theta": 0.6770521861820651, "r": 0.8108563374605886 }, { "theta": 0.6794138054078482, "r": 0.8021171984192833 }, { "theta": 0.6801546557686771, "r": 0.807742533236922 }, { "theta": 0.6825593911982892, "r": 0.7990093866782793 }, { "theta": 0.6832811072643112, "r": 0.804636563921874 }, { "theta": 0.685729510906286, "r": 0.7959095425989061 }, { "theta": 0.6864317579818593, "r": 0.8015385205964839 }, { "theta": 0.6889243882148612, "r": 0.7928177596396286 }, { "theta": 0.6896068266894466, "r": 0.7984484955211576 }, { "theta": 0.6921442482926685, "r": 0.7897341324775066 }, { "theta": 0.6928065335898972, "r": 0.7953665821493885 }, { "theta": 0.6953893177713875, "r": 0.7866587570223826 }, { "theta": 0.6960311002986663, "r": 0.7922928751415097 }, { "theta": 0.6986598247214633, "r": 0.7835917304310964 }, { "theta": 0.6992807498201801, "r": 0.7892274703784709 }, { "theta": 0.7019559986261261, "r": 0.780533151121719 }, { "theta": 0.7025557065225247, "r": 0.7861704649756311 }, { "theta": 0.7052780703536339, "r": 0.7774831187877973 }, { "theta": 0.7058561961104264, "r": 0.7831219572965631 }, { "theta": 0.7086262721276699, "r": 0.7744417344126024 }, { "theta": 0.7091824455964635, "r": 0.7800820469668559 }, { "theta": 0.7120008374958364, "r": 0.771409100283371 }, { "theta": 0.7125346832704484, "r": 0.7770508348879113 }, { "theta": 0.7154020012961708, "r": 0.7683853200055295 }, { "theta": 0.7159131386669162, "r": 0.7740284232507227 }, { "theta": 0.7188299996216245, "r": 0.7653704985168948 }, { "theta": 0.7193180425306553, "r": 0.771014915549628 }, { "theta": 0.7222850697824281, "r": 0.7623647421018367 }, { "theta": 0.722749626780216, "r": 0.7680104165960251 }, { "theta": 0.7257674502662788, "r": 0.7593681584053943 }, { "theta": 0.7262081244693279, "r": 0.7650150325320412 }, { "theta": 0.7292773806962716, "r": 0.7563808564473323 }, { "theta": 0.7296937697461581, "r": 0.7620288708441433 }, { "theta": 0.7328151017865063, "r": 0.7534029466361278 }, { "theta": 0.7332067978103445, "r": 0.7590520403766793 }, { "theta": 0.7363808552952915, "r": 0.750434540782872 }, { "theta": 0.7367474448677256, "r": 0.7560846513453371 }, { "theta": 0.7399748839758713, "r": 0.747475752115077 }, { "theta": 0.7403159480827011, "r": 0.7531268153505092 }, { "theta": 0.7435974315245972, "r": 0.7445266952903704 }, { "theta": 0.743912545528147, "r": 0.7501786453905496 }, { "theta": 0.7472487425264656, "r": 0.7415874864100661 }, { "theta": 0.7475374761328095, "r": 0.7472402558749094 }, { "theta": 0.7478218740547247, "r": 0.7528930866995659 }, { "theta": 0.7511909796261049, "r": 0.7443117626371357 }, { "theta": 0.751448947976264, "r": 0.7499653325321112 }, { "theta": 0.751703056051432, "r": 0.755618951588696 }, { "theta": 0.7551044034786729, "r": 0.7470475219154401 }, { "theta": 0.7553320383484037, "r": 0.7527018001838444 }, { "theta": 0.7555562787303387, "r": 0.7583561168738603 }, { "theta": 0.755777199968322, "r": 0.7640104711324316 }, { "theta": 0.7591869392004469, "r": 0.7554495350451941 }, { "theta": 0.7593817299370751, "r": 0.7611044606359892 }, { "theta": 0.7595736474650145, "r": 0.7667594146797286 }, { "theta": 0.7597627548757706, "r": 0.7724143965514884 }, { "theta": 0.7630138430581579, "r": 0.7582084146196216 }, { "theta": 0.763179598070729, "r": 0.7638638622162983 }, { "theta": 0.7633429167039334, "r": 0.7695193304914438 }, { "theta": 0.76350385227467, "r": 0.7751748189924644 }, { "theta": 0.7636624565556556, "r": 0.7808303272798771 }, { "theta": 0.7669500720062916, "r": 0.7666342022111979 }, { "theta": 0.76708519253298, "r": 0.7722901009335805 }, { "theta": 0.7672183483244699, "r": 0.777946013551069 }, { "theta": 0.7673495819195169, "r": 0.7836019397627854 }, { "theta": 0.7674789346377899, "r": 0.7892578792764758 }, { "theta": 0.7708006601863882, "r": 0.7750716095948812 }, { "theta": 0.7709064243319483, "r": 0.7807278655203745 }, { "theta": 0.7710106670085226, "r": 0.7863841300535 }, { "theta": 0.7711134208100514, "r": 0.7920404030098465 }, { "theta": 0.7712147174061394, "r": 0.7976966842102329 }, { "theta": 0.7745682619089402, "r": 0.7835202613844775 }, { "theta": 0.7746458896063468, "r": 0.7891767862779543 }, { "theta": 0.774722412409993, "r": 0.7948333158593693 }, { "theta": 0.7747978537416409, "r": 0.8004898500293429 }, { "theta": 0.7748722363657228, "r": 0.8061463886912847 }, { "theta": 0.7782554277280349, "r": 0.7919797977221389 }, { "theta": 0.7783060837231286, "r": 0.7976365086930262 }, { "theta": 0.7783560262891358, "r": 0.8032932216818464 }, { "theta": 0.7784052703921147, "r": 0.8089499366462674 }, { "theta": 0.7784538305824324, "r": 0.8146066535451327 }, { "theta": 0.7818646091995869, "r": 0.8004498735086414 }, { "theta": 0.7818894058669095, "r": 0.8061066926902418 }, { "theta": 0.781913856940307, "r": 0.811763512360589 }, { "theta": 0.7819379695946234, "r": 0.8174203325095358 }, { "theta": 0.7819617508074606, "r": 0.8230771531272144 }, { "theta": 0.7853981633974483, "r": 0.8315575746753799 }, { "theta": 0.7853981633974483, "r": 0.8259007204258875 }, { "theta": 0.7853981633974483, "r": 0.8202438661763951 }, { "theta": 0.7853981633974483, "r": 0.8145870119269027 }, { "theta": 0.7853981633974483, "r": 0.8089301576774104 }, { "theta": 0.7887651540409562, "r": 0.8400476176979493 }, { "theta": 0.788787980921887, "r": 0.8343907957306336 }, { "theta": 0.7888111194289862, "r": 0.8287339742040265 }, { "theta": 0.788834575987436, "r": 0.8230771531272144 }, { "theta": 0.7888583572002732, "r": 0.8174203325095358 }, { "theta": 0.7920647313013163, "r": 0.8485469933951801 }, { "theta": 0.7921094720287707, "r": 0.8428902656929904 }, { "theta": 0.7921548173332336, "r": 0.8372335397008412 }, { "theta": 0.7922007795522572, "r": 0.8315768154536296 }, { "theta": 0.7922473713613831, "r": 0.825920092987209 }, { "theta": 0.7952988299854367, "r": 0.8570554241121167 }, { "theta": 0.7953646108036554, "r": 0.8513988489538848 }, { "theta": 0.7954312715448242, "r": 0.8457422775290354 }, { "theta": 0.7954988299827699, "r": 0.8400857099129827 }, { "theta": 0.795567304373241, "r": 0.8344291461831855 }, { "theta": 0.79846931434763, "r": 0.8655726428209247 }, { "theta": 0.798555298870204, "r": 0.8599162749942578 }, { "theta": 0.7986424220621773, "r": 0.8542599136094353 }, { "theta": 0.7987307066915941, "r": 0.8486035587952716 }, { "theta": 0.7988201761375393, "r": 0.8429472106840381 }, { "theta": 0.801683368540794, "r": 0.8684422836320213 }, { "theta": 0.8017901377054533, "r": 0.8627861844049196 }, { "theta": 0.8018983159828332, "r": 0.8571300951430885 }, { "theta": 0.8020079314513291, "r": 0.8514740160451169 }, { "theta": 0.8047505858129029, "r": 0.8769766245459454 }, { "theta": 0.8048762192139756, "r": 0.8713208364316786 }, { "theta": 0.8050034942546529, "r": 0.8656650622498288 }, { "theta": 0.8051324433190574, "r": 0.860009302275272 }, { "theta": 0.8077586532193823, "r": 0.8855190568248659 }, { "theta": 0.8079024021916137, "r": 0.8798636257966345 }, { "theta": 0.8080480110436032, "r": 0.8742082131849369 }, { "theta": 0.8081955160998495, "r": 0.8685528193495201 }, { "theta": 0.8108703599081708, "r": 0.8884143177594561 }, { "theta": 0.8110335719191255, "r": 0.8827593103445582 }, { "theta": 0.8111988884988728, "r": 0.8771043267479645 }, { "theta": 0.8113663506090045, "r": 0.8714493674333581 }, { "theta": 0.8137817059643808, "r": 0.896972686317705 }, { "theta": 0.8139618212362083, "r": 0.8913181250260762 }, { "theta": 0.8141442364111278, "r": 0.8856635930193811 }, { "theta": 0.8143289958112261, "r": 0.8800090908621343 }, { "theta": 0.8168343447537225, "r": 0.8998844370251106 }, { "theta": 0.8170331756255607, "r": 0.8942303953679946 }, { "theta": 0.8172345368245626, "r": 0.8885763895130233 }, { "theta": 0.8196526721255721, "r": 0.9084580342536467 }, { "theta": 0.8198672643969562, "r": 0.9028045192620604 }, { "theta": 0.8200845612210026, "r": 0.8971510463684474 }, { "theta": 0.8203046140301256, "r": 0.8914976163737063 }, { "theta": 0.8226480058926531, "r": 0.9113857580629621 }, { "theta": 0.8228806000891096, "r": 0.9057328524460179 }, { "theta": 0.8231161158643125, "r": 0.9000799964447604 }, { "theta": 0.8256241304365686, "r": 0.9143216064383474 }, { "theta": 0.8258744867075771, "r": 0.908669356806974 }, { "theta": 0.8261279770695138, "r": 0.9030171648423966 }, { "theta": 0.8283165774761527, "r": 0.9229171143715995 }, { "theta": 0.828581177734578, "r": 0.9172655013680608 }, { "theta": 0.828849058788979, "r": 0.9116139533815836 }, { "theta": 0.8312375892785648, "r": 0.9258682411660959 }, { "theta": 0.8315192794119595, "r": 0.9202173656261873 }, { "theta": 0.8318044505068909, "r": 0.9145665640072351 }, { "theta": 0.8341400147073799, "r": 0.9288272175167994 }, { "theta": 0.8344385667211993, "r": 0.9231771227668069 }, { "theta": 0.834740795650418, "r": 0.9175271113160635 }, { "theta": 0.8370239821610106, "r": 0.9317939686432832 }, { "theta": 0.8373391705219766, "r": 0.9261446971181123 }, { "theta": 0.8395620014343281, "r": 0.9404169288140234 }, { "theta": 0.8398896196381793, "r": 0.9347684205192214 }, { "theta": 0.8402212212619267, "r": 0.9291200137764766 }, { "theta": 0.84239342455189, "r": 0.9433981132056604 }, { "theta": 0.842737054719946, "r": 0.9377504998665689 }, { "theta": 0.8430848489581653, "r": 0.9321029986004765 }, { "theta": 0.8452069867769789, "r": 0.9463868130949417 }, { "theta": 0.845566414552458, "r": 0.9407401341497024 }, { "theta": 0.8459301831795552, "r": 0.9350935782048767 }, { "theta": 0.8480028124546375, "r": 0.9493829575045046 }, { "theta": 0.8483778258303927, "r": 0.9437372515695245 }, { "theta": 0.8507810254762909, "r": 0.9523864761744573 }, { "theta": 0.8511714147810849, "r": 0.9467417810575385 }, { "theta": 0.8535417492649326, "r": 0.9553972995565772 }, { "theta": 0.8539473071493133, "r": 0.9497536522698925 }, { "theta": 0.8562851067609327, "r": 0.9584153588084865 }, { "theta": 0.8567056281827385, "r": 0.9527727955814019 }, { "theta": 0.8590112204084543, "r": 0.9614405857878062 }, { "theta": 0.8594465026179656, "r": 0.955799142079548 }, { "theta": 0.8617202121424636, "r": 0.9644729130462919 }, { "theta": 0.8621700546672262, "r": 0.9588326235584602 }, { "theta": 0.86441220337632, "r": 0.9675122738239552 }, { "theta": 0.8648764080056548, "r": 0.9618731725128838 }, { "theta": 0.8666144698481859, "r": 0.9761967014900224 }, { "theta": 0.867087314989925, "r": 0.9705586020431739 }, { "theta": 0.867565685759148, "r": 0.9649207221321345 }, { "theta": 0.8692589921873477, "r": 0.9792486915998407 }, { "theta": 0.8697456673184218, "r": 0.973611832302792 }, { "theta": 0.8702380104927925, "r": 0.9679752062940455 }, { "theta": 0.8718870633158229, "r": 0.9823074875007317 }, { "theta": 0.8723873801414261, "r": 0.976671899872214 }, { "theta": 0.8744988003025913, "r": 0.9853730258130674 }, { "theta": 0.8750125726727793, "r": 0.9797387406854952 }, { "theta": 0.8770943196573113, "r": 0.9884452438046328 }, { "theta": 0.8776213635508001, "r": 0.9828122913354309 }, { "theta": 0.8796737373212626, "r": 0.991524079384863 }, { "theta": 0.8802138708290341, "r": 0.9858924890676468 }, { "theta": 0.8822371686587553, "r": 0.9946094710990842 }, { "theta": 0.8827902119674773, "r": 0.9889792717746919 }, { "theta": 0.884784728448984, "r": 0.9977013581227601 }, { "theta": 0.8853505038242622, "r": 0.9920725779901388 }, { "theta": 0.887316530878322, "r": 1.0007996802557444 }, { "theta": 0.8878948626477987, "r": 0.9951723468826894 }, { "theta": 0.8898326895330397, "r": 1.0039043779165424 }, { "theta": 0.8904234040693502, "r": 0.9982785182502927 }, { "theta": 0.8929362430960368, "r": 1.001391032514272 }, { "theta": 0.8954334941042519, "r": 1.0045098307134679 }, { "theta": 0.8979152708334781, "r": 1.0076348544983942 }, { "theta": 0.9003816863804963, "r": 1.0107660461254127 }, { "theta": 0.9010273759187832, "r": 1.0051467554541476 }, { "theta": 0.9028328531939689, "r": 1.0139033484509261 }, { "theta": 0.9034901918165423, "r": 1.0082856738048003 }, { "theta": 0.9052688830693936, "r": 1.0170467049255898 }, { "theta": 0.9059377064624807, "r": 1.0114306698928999 }, { "theta": 0.9076898871444072, "r": 1.020196059588548 }, { "theta": 0.9083700329617455, "r": 1.0145816871992122 }, { "theta": 0.9100959758944409, "r": 1.0233513570616888 }, { "theta": 0.9107872837389643, "r": 1.017738669796918 }, { "theta": 0.9124872591287043, "r": 1.0265125425439283 }, { "theta": 0.9131895705341972, "r": 1.0209015623457534 }, { "theta": 0.9148638459864964, "r": 1.0296795618055161 }, { "theta": 0.9155770043992182, "r": 1.0240703100861777 }, { "theta": 0.917225844933828, "r": 1.0328523611823714 }, { "theta": 0.917949695694122, "r": 1.0272448588335694 }, { "theta": 0.9195733637603509, "r": 1.0360308875704431 }, { "theta": 0.9203077540842464, "r": 1.030425154972451 }, { "theta": 0.9219065095765782, "r": 1.039215088420102 }, { "theta": 0.9226512885373892, "r": 1.0336111454507446 }, { "theta": 0.924980407321327, "r": 1.0368027777740567 }, { "theta": 0.9272952180016123, "r": 1.04 }, { "theta": 0.9280686130523623, "r": 1.0344003093580356 }, { "theta": 0.9295958274396448, "r": 1.0432027607325434 }, { "theta": 0.9303792483164424, "r": 1.0376049344524148 }, { "theta": 0.9318823417910096, "r": 1.046411009116399 }, { "theta": 0.9326756426382565, "r": 1.040815065225326 }, { "theta": 0.9341548665040698, "r": 1.0496246948314432 }, { "theta": 0.9349579032711515, "r": 1.044030650891055 }, { "theta": 0.9364135063188077, "r": 1.0528437680871745 }, { "theta": 0.9372261367412755, "r": 1.047251641201865 }, { "theta": 0.9394804488467181, "r": 1.0504779864423623 }, { "theta": 0.9417209446568751, "r": 1.0537096374238968 }, { "theta": 0.9425612075483918, "r": 1.0481221302882597 }, { "theta": 0.9439477285120521, "r": 1.056946545479004 }, { "theta": 0.9447972358812753, "r": 1.0513610226748944 }, { "theta": 0.9461609040232828, "r": 1.0601886624558858 }, { "theta": 0.9470195185804613, "r": 1.0546051393768192 }, { "theta": 0.9483605740723604, "r": 1.0634359407129328 }, { "theta": 0.9492281602577535, "r": 1.0578544323298928 }, { "theta": 0.9505468408120752, "r": 1.0666883331132857 }, { "theta": 0.9514232647769831, "r": 1.0611088539824742 }, { "theta": 0.9536049352545342, "r": 1.0643683572898999 }, { "theta": 0.9557732740600642, "r": 1.0676328957090073 }, { "theta": 0.9566763612447069, "r": 1.0620583788097526 }, { "theta": 0.9579283828174123, "r": 1.0709024231927016 }, { "theta": 0.9588399723775365, "r": 1.0653299958228906 }, { "theta": 0.9600703624056877, "r": 1.0741768941845657 }, { "theta": 0.9609903253476286, "r": 1.068606569322873 }, { "theta": 0.9631275219428015, "r": 1.0718880538563718 }, { "theta": 0.9652516631899264, "r": 1.075174404457249 }, { "theta": 0.9661977367014196, "r": 1.0696092744549293 }, { "theta": 0.967362849356634, "r": 1.0784655766411833 }, { "theta": 0.9683169683735056, "r": 1.0729026050858483 }, { "theta": 0.970423220281988, "r": 1.076200724772103 }, { "theta": 0.9725165927922212, "r": 1.079503589618858 }, { "theta": 0.9734964704768969, "r": 1.0739459949178078 }, { "theta": 0.9745971854974163, "r": 1.0828111562040723 }, { "theta": 0.9755847853080102, "r": 1.0772557727856462 }, { "theta": 0.9766650972210797, "r": 1.0861233815731988 }, { "theta": 0.9776602981140297, "r": 1.0805702198376559 }, { "theta": 0.9797231085376876, "r": 1.0838892932398585 }, { "theta": 0.9817733154382244, "r": 1.0872129506219101 }, { "theta": 0.9827937232473292, "r": 1.0816653826391969 }, { "theta": 0.9838110168943666, "r": 1.0905411500718347 }, { "theta": 0.9848387101716831, "r": 1.0849958525266352 }, { "theta": 0.9868711726178874, "r": 1.0883308320542977 }, { "theta": 0.9888912086550108, "r": 1.0916702798922393 }, { "theta": 0.9899437546188441, "r": 1.0861307471939095 }, { "theta": 0.9919584361014064, "r": 1.0894769387187595 }, { "theta": 0.9939607717264853, "r": 1.0928275252756037 }, { "theta": 0.9950380092716609, "r": 1.0872938885140484 }, { "theta": 0.9959508587200845, "r": 1.096182466562935 }, { "theta": 0.9970348763892107, "r": 1.0906511816341649 }, { "theta": 0.9990194796784699, "r": 1.0940127970001083 }, { "theta": 1.0009919162814542, "r": 1.0973786948906927 }, { "theta": 1.0021002671883408, "r": 1.0918534700224203 }, { "theta": 1.0029522825314565, "r": 1.1007488360202795 }, { "theta": 1.0040671092713902, "r": 1.095226004074045 }, { "theta": 1.0060218680214992, "r": 1.098602748949774 }, { "theta": 1.007154385457742, "r": 1.0930837113414507 }, { "theta": 1.007964639647168, "r": 1.1019836659406526 }, { "theta": 1.009103440500251, "r": 1.0964670537686028 }, { "theta": 1.0110404969322615, "r": 1.0998545358364442 }, { "theta": 1.0129656508080322, "r": 1.103246119413071 }, { "theta": 1.0141282566362775, "r": 1.0977358516510245 }, { "theta": 1.0160475892629575, "r": 1.1011339609693274 }, { "theta": 1.0179551052023572, "r": 1.104536101718726 }, { "theta": 1.0191413442663495, "r": 1.0990323016181098 }, { "theta": 1.0210429345580563, "r": 1.1024409281226817 }, { "theta": 1.0229327952930611, "r": 1.1058535165201584 }, { "theta": 1.0241424933302374, "r": 1.1003563059300383 }, { "theta": 1.0260263256931892, "r": 1.1037753394599827 }, { "theta": 1.0278985168522938, "r": 1.1071982658945958 }, { "theta": 1.0291314971556305, "r": 1.1017077652444862 }, { "theta": 1.0309975589088958, "r": 1.1051370955677853 }, { "theta": 1.0328520689939262, "r": 1.1085702503675625 }, { "theta": 1.0341081524909712, "r": 1.1030865786510142 }, { "theta": 1.0359564338422, "r": 1.1065260954898442 }, { "theta": 1.0377932542039137, "r": 1.109969368946729 }, { "theta": 1.0390722595360908, "r": 1.1044926437056972 }, { "theta": 1.0409027535560376, "r": 1.107942236761466 }, { "theta": 1.0427218783685368, "r": 1.1113955191559843 }, { "theta": 1.0440236219706645, "r": 1.1059258564659749 }, { "theta": 1.0458363245665319, "r": 1.1093854154440645 }, { "theta": 1.047637750800536, "r": 1.1128485970697002 }, { "theta": 1.0489620469804861, "r": 1.1073861115256955 }, { "theta": 1.0507569568681312, "r": 1.1108555261599053 }, { "theta": 1.0520990455523456, "r": 1.1053976660007927 }, { "theta": 1.0538873452815842, "r": 1.108873302050329 }, { "theta": 1.0556644639566275, "r": 1.1123524621270005 }, { "theta": 1.0570289146003833, "r": 1.106901983013853 }, { "theta": 1.0587993311421875, "r": 1.1103873198123255 }, { "theta": 1.0605586628500614, "r": 1.1138761151941448 }, { "theta": 1.0619452830120903, "r": 1.1084331283392788 }, { "theta": 1.0636978224025597, "r": 1.1119280552265962 }, { "theta": 1.065102315861079, "r": 1.1064899457292867 }, { "theta": 1.066847969490309, "r": 1.109990990954431 }, { "theta": 1.06858264049272, "r": 1.113495397386087 }, { "theta": 1.0700090990526605, "r": 1.1080649800440405 }, { "theta": 1.071736796376256, "r": 1.1115754585272202 }, { "theta": 1.0731812051156675, "r": 1.1061500802332385 }, { "theta": 1.0749018353588364, "r": 1.109666616601581 }, { "theta": 1.076611589664009, "r": 1.1131864174521713 }, { "theta": 1.0780777501247565, "r": 1.1077689289739083 }, { "theta": 1.0797803517729903, "r": 1.1112947403816866 }, { "theta": 1.0812645324303771, "r": 1.1058824530663285 }, { "theta": 1.082959888135254, "r": 1.1094142598686931 }, { "theta": 1.0846444789999246, "r": 1.112949235140579 }, { "theta": 1.086150189180822, "r": 1.1075450329444847 }, { "theta": 1.087827450938335, "r": 1.1110859552707881 }, { "theta": 1.0893512443983138, "r": 1.105687116683558 }, { "theta": 1.0910210839504542, "r": 1.109233969908964 }, { "theta": 1.0926802740904797, "r": 1.1127838963608343 }, { "theta": 1.0942253662157406, "r": 1.1073933357213237 }, { "theta": 1.0958770534679765, "r": 1.110949143750514 }, { "theta": 1.0974402849599816, "r": 1.1055641094029782 }, { "theta": 1.0990843764873235, "r": 1.1091257818660605 }, { "theta": 1.1006658264445455, "r": 1.1037463476723264 }, { "theta": 1.1023022290840574, "r": 1.1073138669772 }, { "theta": 1.1055305962289976, "r": 1.105513455368138 }, { "theta": 1.1071487177940904, "r": 1.1090897168398959 }, { "theta": 1.108769461917909, "r": 1.1037246033318275 }, { "theta": 1.110379724321381, "r": 1.1073066422631086 }, { "theta": 1.1120188091612535, "r": 1.101947367164149 }, { "theta": 1.1136211193213859, "r": 1.1055351645244036 }, { "theta": 1.1152786199740343, "r": 1.1001818031580053 }, { "theta": 1.1168728845363436, "r": 1.1037753394599827 }, { "theta": 1.1184567979683653, "r": 1.1073716629930532 }, { "theta": 1.1201350007142628, "r": 1.102027222894244 }, { "theta": 1.121710795186829, "r": 1.105629232609196 }, { "theta": 1.1234074475992202, "r": 1.1002908706337613 }, { "theta": 1.1249750302599826, "r": 1.1038985460629975 }, { "theta": 1.1266902039217643, "r": 1.0985663384611783 }, { "theta": 1.1282494816897093, "r": 1.1021796586763883 }, { "theta": 1.1299832473894424, "r": 1.096853682129025 }, { "theta": 1.1315341269668089, "r": 1.100472625738596 }, { "theta": 1.1332865546774435, "r": 1.0951529573534464 }, { "theta": 1.134828942561891, "r": 1.0987775024999373 }, { "theta": 1.1381339039163922, "r": 1.0970943441655325 }, { "theta": 1.1396575860761144, "r": 1.100727032465361 }, { "theta": 1.1414489854337302, "r": 1.0954232058889386 }, { "theta": 1.1429640149738791, "r": 1.0990614177560778 }, { "theta": 1.144774160470599, "r": 1.093764142765706 }, { "theta": 1.1462804444058476, "r": 1.0974078549017223 }, { "theta": 1.1481094013284059, "r": 1.0921172098268572 }, { "theta": 1.1496068465283669, "r": 1.0957663984627382 }, { "theta": 1.1514546792448666, "r": 1.0904824620322877 }, { "theta": 1.1529431924473197, "r": 1.0941371029263198 }, { "theta": 1.1548099643857541, "r": 1.0888599542640918 }, { "theta": 1.1562894522101106, "r": 1.092520022699813 }, { "theta": 1.1581752258368165, "r": 1.0872497413198128 }, { "theta": 1.1596455947978164, "r": 1.0909152121040389 }, { "theta": 1.161550431595863, "r": 1.0856518779056203 }, { "theta": 1.1630115881175067, "r": 1.0893227253665463 }, { "theta": 1.164935548565028, "r": 1.0840664186294122 }, { "theta": 1.1663873989947395, "r": 1.0877426166147945 }, { "theta": 1.1683305425432207, "r": 1.0824934179938464 }, { "theta": 1.16977299316624, "r": 1.0861749398692644 }, { "theta": 1.1717353782187627, "r": 1.0809329303893003 }, { "theta": 1.173168335272767, "r": 1.0846197490364997 }, { "theta": 1.1751500191622235, "r": 1.0793850100867624 }, { "theta": 1.1765733888521746, "r": 1.0830770979020838 }, { "theta": 1.1785744278194588, "r": 1.077849711230652 }, { "theta": 1.1799881163326733, "r": 1.0815470401235445 }, { "theta": 1.1820085655048573, "r": 1.0763270878315754 }, { "theta": 1.1834124790263, "r": 1.0800296292231988 }, { "theta": 1.185452392394805, "r": 1.0748171937590132 }, { "theta": 1.1868464371226006, "r": 1.0785249185809291 }, { "theta": 1.1889058675213706, "r": 1.0733200827339437 }, { "theta": 1.1902899496825317, "r": 1.0770329614269007 }, { "theta": 1.1923689487662195, "r": 1.0718358083214052 }, { "theta": 1.1937429746325883, "r": 1.075553810834214 }, { "theta": 1.194468198348573, "r": 1.0666433330781195 }, { "theta": 1.1958415928547634, "r": 1.0703644239229928 }, { "theta": 1.1972054687591647, "r": 1.0740875197114992 }, { "theta": 1.1979606499989854, "r": 1.0651797970295906 }, { "theta": 1.1993237553505522, "r": 1.0689059827692986 }, { "theta": 1.1996442137836625, "r": 0.7940680071631144 }, { "theta": 1.199905037982234, "r": 0.7725283166331186 }, { "theta": 1.200100426803507, "r": 1.06 }, { "theta": 1.2006963857463515, "r": 0.785162403582851 }, { "theta": 1.2009899304234268, "r": 0.7636229436050229 }, { "theta": 1.2014626691212709, "r": 1.0637292888700582 }, { "theta": 1.2014626691212709, "r": 0.7977969666525438 }, { "theta": 1.2017726985641357, "r": 0.7762576891728673 }, { "theta": 1.2021004241368467, "r": 0.7547184905645283 }, { "theta": 1.2022050594822846, "r": 0.8104319835741923 }, { "theta": 1.20253039293761, "r": 0.7888928951384973 }, { "theta": 1.2028153906499122, "r": 1.0674605379122921 }, { "theta": 1.2028739901224499, "r": 0.7673538948881409 }, { "theta": 1.2032641984739154, "r": 0.8015285397289357 }, { "theta": 1.2036224929766772, "r": 1.058557509065993 }, { "theta": 1.2036224929766772, "r": 0.7799897435223108 }, { "theta": 1.2039752266481152, "r": 0.814164602522119 }, { "theta": 1.2040011374114403, "r": 0.7584510531339514 }, { "theta": 1.204347130531001, "r": 0.7926260152177697 }, { "theta": 1.2046645210816365, "r": 0.8268010643437754 }, { "theta": 1.2047398109474783, "r": 0.7710875436680326 }, { "theta": 1.2049742088336044, "r": 1.0622918619663808 }, { "theta": 1.205049025532552, "r": 0.8052626900583436 }, { "theta": 1.2051550588266091, "r": 0.7495491978516153 }, { "theta": 1.2054546638836938, "r": 0.7837244413695416 }, { "theta": 1.2057292314328933, "r": 0.8178997493580737 }, { "theta": 1.205803514600191, "r": 1.0533907157365683 }, { "theta": 1.205883227633103, "r": 0.7621863289248896 }, { "theta": 1.2061468294827546, "r": 0.796361726855328 }, { "theta": 1.2063367166332502, "r": 0.7406483646103595 }, { "theta": 1.2063887376496938, "r": 0.8305371755677166 }, { "theta": 1.2065876436639777, "r": 0.7748238509493625 }, { "theta": 1.2068173702852525, "r": 0.8089993819527923 }, { "theta": 1.207028474356425, "r": 0.843174952189639 }, { "theta": 1.2070536651768848, "r": 0.7532861342146157 }, { "theta": 1.2071541273023254, "r": 1.0571281852263708 }, { "theta": 1.207269449820458, "r": 0.7874617451025796 }, { "theta": 1.2074672835386346, "r": 0.8216373896068753 }, { "theta": 1.2075471196084016, "r": 0.7317485907058516 }, { "theta": 1.2077469540286483, "r": 0.7659242782416549 }, { "theta": 1.2079297168787582, "r": 0.8000999937507811 }, { "theta": 1.208006026543229, "r": 1.0482289826178248 }, { "theta": 1.2080975061338772, "r": 0.834275733795488 }, { "theta": 1.208252089530389, "r": 0.7443869961249996 }, { "theta": 1.2084177347168812, "r": 0.7785627784578454 }, { "theta": 1.2084952210597582, "r": 1.0608675694920644 }, { "theta": 1.2085694490881254, "r": 0.8127385803565621 }, { "theta": 1.208708919101168, "r": 0.8469143994525067 }, { "theta": 1.208933520430026, "r": 0.7570257591390137 }, { "theta": 1.2090670852749643, "r": 0.7912016177940994 }, { "theta": 1.209189589255731, "r": 0.8253774893950041 }, { "theta": 1.209302351709866, "r": 0.8595533723975494 }, { "theta": 1.2093554359013439, "r": 1.0519695813092695 }, { "theta": 1.2094795130767106, "r": 0.7354889530101727 }, { "theta": 1.2095925713012148, "r": 0.7696648621315644 }, { "theta": 1.209696016009649, "r": 0.8038407802543984 }, { "theta": 1.2097910233724338, "r": 0.8380167062773868 }, { "theta": 1.2101483120464915, "r": 0.748128331237362 }, { "theta": 1.2102303263167906, "r": 1.0430723848324237 }, { "theta": 1.2102303263167906, "r": 0.7823042886243178 }, { "theta": 1.210305474734775, "r": 0.816480250832805 }, { "theta": 1.2103745848270422, "r": 0.8506562172816937 }, { "theta": 1.2106952803690696, "r": 1.055712081961744 }, { "theta": 1.2107369974438442, "r": 0.7265920450982105 }, { "theta": 1.210794887915008, "r": 0.7607680329772013 }, { "theta": 1.2108963515272717, "r": 0.8291200154380547 }, { "theta": 1.2109410582511333, "r": 0.8632960094892134 }, { "theta": 1.2113923443860688, "r": 0.739232033937924 }, { "theta": 1.2114459464443366, "r": 0.8075840513531702 }, { "theta": 1.211469483055531, "r": 0.8417600608249359 }, { "theta": 1.211578429362728, "r": 1.0468161252101535 }, { "theta": 1.2120256565243244, "r": 0.8544003745317531 }, { "theta": 1.2120256565243244, "r": 0.820224359550483 }, { "theta": 1.2120256565243244, "r": 0.7518723295879428 }, { "theta": 1.212476716484713, "r": 1.037920998920438 }, { "theta": 1.2125656132753047, "r": 0.8670409448232534 }, { "theta": 1.2125877700120569, "r": 0.8328649350284835 }, { "theta": 1.2126666820775478, "r": 0.7303369085565921 }, { "theta": 1.2129169218854787, "r": 1.0505617544913768 }, { "theta": 1.2130900520776549, "r": 0.8796817606384709 }, { "theta": 1.2131330757836902, "r": 0.8455057657993824 }, { "theta": 1.2132858953026473, "r": 0.7429777924002843 }, { "theta": 1.213662316274103, "r": 0.8581468405814939 }, { "theta": 1.2138234073965886, "r": 1.0416678933326111 }, { "theta": 1.2139724418650288, "r": 0.7214429984413183 }, { "theta": 1.2141761908434645, "r": 0.8707881487480178 }, { "theta": 1.2142640411463221, "r": 0.8366122160236485 }, { "theta": 1.2145766713987463, "r": 0.7340844638050855 }, { "theta": 1.2146753588552501, "r": 0.8834296802802133 }, { "theta": 1.2147455047586144, "r": 1.0327749028709015 }, { "theta": 1.214781989125047, "r": 0.8492537901004623 }, { "theta": 1.2151604424941367, "r": 1.0454166633452904 }, { "theta": 1.2151604424941367, "r": 0.7467261881037788 }, { "theta": 1.2152847433014518, "r": 0.8618955853234196 }, { "theta": 1.2157729623244318, "r": 0.8745375921022491 }, { "theta": 1.2158991039050737, "r": 0.7251923882667275 }, { "theta": 1.2160906747839562, "r": 1.0365249635199338 }, { "theta": 1.2162472673288711, "r": 0.8871798013931561 }, { "theta": 1.2164164076714588, "r": 0.8530041031554304 }, { "theta": 1.2164672516819903, "r": 0.7378346698278686 }, { "theta": 1.2167082445680348, "r": 0.899822204660454 }, { "theta": 1.2168931140275476, "r": 0.8656465791534095 }, { "theta": 1.2170370040945426, "r": 1.027634176154141 }, { "theta": 1.2172543670437779, "r": 0.7163016124510679 }, { "theta": 1.2173560964432235, "r": 0.8782892462053716 }, { "theta": 1.217426144075499, "r": 1.04027688621828 }, { "theta": 1.217805938967986, "r": 0.8909320961779298 }, { "theta": 1.217805938967986, "r": 0.7289444423273972 }, { "theta": 1.217999850154231, "r": 1.0187443251375685 }, { "theta": 1.2180365130934825, "r": 0.856756674908343 }, { "theta": 1.2182431929847195, "r": 0.9035751213927926 }, { "theta": 1.2183805414713056, "r": 1.0313874150870759 }, { "theta": 1.2184876021207547, "r": 0.869399792960638 }, { "theta": 1.2189257593285692, "r": 0.8820430828479979 }, { "theta": 1.2191776802200782, "r": 0.7200555534123739 }, { "theta": 1.219351532791345, "r": 1.0224988997549094 }, { "theta": 1.219351532791345, "r": 0.8946865372855456 }, { "theta": 1.2196932378865368, "r": 0.7326991196937526 }, { "theta": 1.2197143335977756, "r": 1.0351425022671998 }, { "theta": 1.2197654400524762, "r": 0.9073301493943646 }, { "theta": 1.220068378546693, "r": 0.873155198117723 }, { "theta": 1.2201679702204997, "r": 0.919973912673615 }, { "theta": 1.2203395527242638, "r": 1.0136113653664307 }, { "theta": 1.2204821145594944, "r": 0.8857990742826501 }, { "theta": 1.2205837096013068, "r": 0.711168053275736 }, { "theta": 1.2206933226667451, "r": 1.0262553288534 }, { "theta": 1.220884205410362, "r": 0.8984430978086481 }, { "theta": 1.2210810364283888, "r": 0.7238121303211213 }, { "theta": 1.2212751358048333, "r": 0.911087262560508 }, { "theta": 1.2213450512070825, "r": 1.0047248379531581 }, { "theta": 1.2216356116173126, "r": 0.8769127664711012 }, { "theta": 1.2216553639233918, "r": 0.9237315627388728 }, { "theta": 1.2216894145907717, "r": 1.0173691562063398 }, { "theta": 1.2220253232109894, "r": 1.030013592143327 }, { "theta": 1.2220253232109894, "r": 0.93637599285757 }, { "theta": 1.2220253232109894, "r": 0.8895571932146915 }, { "theta": 1.222368494096626, "r": 0.995839344472792 }, { "theta": 1.2223854240236562, "r": 0.9490205477227561 }, { "theta": 1.2224041110716612, "r": 0.9022017512729623 }, { "theta": 1.222503334646857, "r": 0.7149265696559333 }, { "theta": 1.222703059467778, "r": 1.008484010780538 }, { "theta": 1.2227724280402348, "r": 0.9148464352010124 }, { "theta": 1.2230293389378812, "r": 1.0211287871762307 }, { "theta": 1.223077585186698, "r": 0.9743100122650901 }, { "theta": 1.2231307022744151, "r": 0.9274912398508139 }, { "theta": 1.2234103638765768, "r": 0.9869549128506327 }, { "theta": 1.2234793389075063, "r": 0.9401361603512546 }, { "theta": 1.2235555438987857, "r": 0.8933174127934594 }, { "theta": 1.2237347232554059, "r": 0.9995999199679839 }, { "theta": 1.223818721575242, "r": 0.9527811920897683 }, { "theta": 1.2239114016987973, "r": 0.9059624716289301 }, { "theta": 1.223961429213889, "r": 0.7060424916391365 }, { "theta": 1.224050978779334, "r": 1.0122450296247445 }, { "theta": 1.2241492138227328, "r": 0.9654263306954084 }, { "theta": 1.2242574623609546, "r": 0.9186076420322226 }, { "theta": 1.2243594303426548, "r": 1.0248902380255165 }, { "theta": 1.2244028746036406, "r": 0.7186876929515351 }, { "theta": 1.2244711604023646, "r": 0.9780715720232339 }, { "theta": 1.2245941249001375, "r": 0.931252919458511 }, { "theta": 1.224784888472386, "r": 0.9907169121398908 }, { "theta": 1.224921766957655, "r": 0.9438982996064778 }, { "theta": 1.2250907087049328, "r": 1.0033623473102826 }, { "theta": 1.2252407462131845, "r": 0.9565437784022224 }, { "theta": 1.225388916311374, "r": 1.0160078739852365 }, { "theta": 1.2254062269331698, "r": 0.9097252332435327 }, { "theta": 1.22555140168626, "r": 0.9691893519844303 }, { "theta": 1.2257303822112677, "r": 0.9223708581693157 }, { "theta": 1.2258540549372674, "r": 0.9818350166906862 }, { "theta": 1.2258770133595607, "r": 0.709805607191152 }, { "theta": 1.2260457693849596, "r": 0.9350165773931498 }, { "theta": 1.2261490111768703, "r": 0.9944807690448317 }, { "theta": 1.2263527394005975, "r": 0.9476623871400616 }, { "theta": 1.2264365602919203, "r": 1.0071266057452757 }, { "theta": 1.2266516247252184, "r": 0.9603082838338947 }, { "theta": 1.2268887341741463, "r": 0.9134900108922922 }, { "theta": 1.2269427405468458, "r": 0.9729542640843917 }, { "theta": 1.227191328914892, "r": 0.9261360591187453 }, { "theta": 1.22722638588245, "r": 0.9856003246752711 }, { "theta": 1.2273885092337404, "r": 0.7009251029889 }, { "theta": 1.2274857713060885, "r": 0.9387821898608857 }, { "theta": 1.227502844601745, "r": 0.9982464625532114 }, { "theta": 1.2277723863741932, "r": 1.0108926748176583 }, { "theta": 1.2277723863741932, "r": 0.9514283998283843 }, { "theta": 1.2277723863741932, "r": 0.7135712998712883 }, { "theta": 1.2280514820967818, "r": 0.9640746859035352 }, { "theta": 1.2283233505057705, "r": 0.9767210451300822 }, { "theta": 1.2285882687060767, "r": 0.9893674747029033 }, { "theta": 1.2286404417117163, "r": 0.9299032207708499 }, { "theta": 1.2288464998171864, "r": 1.0020139719584753 }, { "theta": 1.2289142642678519, "r": 0.9425497334358542 }, { "theta": 1.2291808361470893, "r": 0.9551963149007643 }, { "theta": 1.2292996856830165, "r": 0.7046928408888514 }, { "theta": 1.2294404415410496, "r": 0.9678429624686021 }, { "theta": 1.2296933499827996, "r": 0.9804896735815222 }, { "theta": 1.2299398172798135, "r": 0.9931364458119539 }, { "theta": 1.2303313799353666, "r": 0.9463191850533307 }, { "theta": 1.2305782151502132, "r": 0.958966109932984 }, { "theta": 1.2308186245284165, "r": 0.9716130917191266 }, { "theta": 1.230865957325276, "r": 0.6958160676500651 }, { "theta": 1.2310528557438083, "r": 0.9842601282181453 }, { "theta": 1.2311905272587018, "r": 0.7084631253636282 }, { "theta": 1.231964648007678, "r": 0.9627377628409514 }, { "theta": 1.232472704285637, "r": 0.6869410455053622 }, { "theta": 1.2327723447081513, "r": 0.6995884504478329 }, { "theta": 1.234394806116861, "r": 0.6907155709841787 }, { "theta": 1.2346582760093285, "r": 0.7033633484906645 }, { "theta": 1.2360594894780819, "r": 0.6818445570656115 }, { "theta": 1.2362960079221104, "r": 0.6944926205511475 }, { "theta": 1.2379761138681473, "r": 0.6856238035541066 }, { "theta": 1.2381766352209842, "r": 0.6982721532468555 }, { "theta": 1.2397002500907643, "r": 0.6767569726275452 }, { "theta": 1.2398717178531442, "r": 0.6894055410279206 }, { "theta": 1.241610965153056, "r": 0.6805409612947629 }, { "theta": 1.2417466319545571, "r": 0.693189728717903 }, { "theta": 1.24339611499467, "r": 0.6716784945195133 }, { "theta": 1.243500542730297, "r": 0.6843274070209376 }, { "theta": 1.2453004715584184, "r": 0.6754672456899742 }, { "theta": 1.2453693183741446, "r": 0.6881162692452489 }, { "theta": 1.247148241468858, "r": 0.666609330867788 }, { "theta": 1.2471835771578892, "r": 0.6792584191601898 }, { "theta": 1.2490457723982542, "r": 0.6704028639556964 }, { "theta": 1.2509219428047482, "r": 0.6741987837425992 }, { "theta": 1.2509578159572654, "r": 0.6615496957901198 }, { "theta": 1.2528480354436051, "r": 0.6653480292298158 }, { "theta": 1.2547167891080853, "r": 0.6691487129181375 }, { "theta": 1.2548260548419161, "r": 0.6564998095963166 }, { "theta": 1.2567084576677936, "r": 0.660302960768767 }, { "theta": 1.2585692939918671, "r": 0.6641084248825639 }, { "theta": 1.2587542052323633, "r": 0.6514598989960932 }, { "theta": 1.2606282660069106, "r": 0.6552678841512072 }, { "theta": 1.2608562468525695, "r": 0.6426196386666065 }, { "theta": 1.262480664599468, "r": 0.6590781440770132 }, { "theta": 1.26274354577112, "r": 0.646430197314451 }, { "theta": 1.264608718135266, "r": 0.6502430314889964 }, { "theta": 1.2649174553900444, "r": 0.6375954830454809 }, { "theta": 1.2664521380403149, "r": 0.6540581013946696 }, { "theta": 1.266795387454752, "r": 0.6414109447148528 }, { "theta": 1.268651103255459, "r": 0.6452286416457348 }, { "theta": 1.269043106371405, "r": 0.6325820104935012 }, { "theta": 1.2704849821501714, "r": 0.6490485343947708 }, { "theta": 1.270911074470217, "r": 0.6364023884304646 }, { "theta": 1.2727567429026385, "r": 0.6402249604631172 }, { "theta": 1.2732346020570906, "r": 0.627579477038566 }, { "theta": 1.2750919850459446, "r": 0.63140478300374 }, { "theta": 1.2756243791311173, "r": 0.6187600504234255 }, { "theta": 1.2769269917624289, "r": 0.6352322409953701 }, { "theta": 1.2774933805682769, "r": 0.6225881463696525 }, { "theta": 1.2793395323170293, "r": 0.626418390534633 }, { "theta": 1.279963751961297, "r": 0.6137752031485143 }, { "theta": 1.2811632385018896, "r": 0.6302507437520403 }, { "theta": 1.28182091680233, "r": 0.617608290099801 }, { "theta": 1.2836551652038004, "r": 0.6214434809377277 }, { "theta": 1.2843741027438098, "r": 0.6088021024930843 }, { "theta": 1.285466906612761, "r": 0.6252807369494122 }, { "theta": 1.286218723361931, "r": 0.6126401880386235 }, { "theta": 1.2870022175865687, "r": 0.6 }, { "theta": 1.2880403693028906, "r": 0.616480332208579 }, { "theta": 1.2888570114320177, "r": 0.6038410386848513 }, { "theta": 1.2906883514968428, "r": 0.6076841284746541 }, { "theta": 1.2915733070180384, "r": 0.5950462166924516 }, { "theta": 1.2924966677897851, "r": 0.6115292306995636 }, { "theta": 1.2934140987250513, "r": 0.5988923108539632 }, { "theta": 1.295231392057132, "r": 0.6027404084678577 }, { "theta": 1.2962210453552712, "r": 0.5901050753891209 }, { "theta": 1.2970256223316672, "r": 0.6065904714055439 }, { "theta": 1.2980470270746114, "r": 0.5939562273433961 }, { "theta": 1.2998494764564759, "r": 0.5978093341526209 }, { "theta": 1.3009471708564273, "r": 0.5851768963313572 }, { "theta": 1.301628834009196, "r": 0.6016643582596529 }, { "theta": 1.302757501701487, "r": 0.5890331060305524 }, { "theta": 1.303935634992408, "r": 0.5764026370515666 }, { "theta": 1.304544277643971, "r": 0.5928912210515517 }, { "theta": 1.305753466897442, "r": 0.5802620097852349 }, { "theta": 1.307547271619969, "r": 0.5841232746604094 }, { "theta": 1.3088413659895948, "r": 0.5714962817026896 }, { "theta": 1.3093175110826472, "r": 0.5879863944004147 }, { "theta": 1.3106417630516531, "r": 0.5753607563954983 }, { "theta": 1.3124181306680718, "r": 0.579227071190565 }, { "theta": 1.3138319362783397, "r": 0.5666039180944658 }, { "theta": 1.31417093573264, "r": 0.58309518948453 }, { "theta": 1.3156139361740782, "r": 0.5704734875522262 }, { "theta": 1.3173719185412023, "r": 0.5743448441485307 }, { "theta": 1.3189093107042846, "r": 0.5617259118110897 }, { "theta": 1.3191063550367097, "r": 0.5782179519869649 }, { "theta": 1.3206719114876073, "r": 0.5656005657705798 }, { "theta": 1.3223089061374937, "r": 0.5529846290811345 }, { "theta": 1.3224105218266065, "r": 0.5694769530016118 }, { "theta": 1.32407550515184, "r": 0.5568626401546435 }, { "theta": 1.3258176636680323, "r": 0.5607423650840018 }, { "theta": 1.3275358750355863, "r": 0.5646237685397242 }, { "theta": 1.3275875733243268, "r": 0.5481313711146262 }, { "theta": 1.3293325876812707, "r": 0.5520144925633746 }, { "theta": 1.3310532179244399, "r": 0.5558992714512225 }, { "theta": 1.3327499616301144, "r": 0.5597856732714763 }, { "theta": 1.3329603993374457, "r": 0.5432936590831887 }, { "theta": 1.3346826796582207, "r": 0.5471818710447195 }, { "theta": 1.3363806510710856, "r": 0.5510716831774248 }, { "theta": 1.3380548150400715, "r": 0.5549630618338486 }, { "theta": 1.3384296075480888, "r": 0.5384719119879885 }, { "theta": 1.3401279568711932, "r": 0.5423651906234396 }, { "theta": 1.341802092586398, "r": 0.5462600113499065 }, { "theta": 1.3422996875030342, "r": 0.5297697613114587 }, { "theta": 1.3439974787410107, "r": 0.5336665625650534 }, { "theta": 1.3456706506319729, "r": 0.5375648798052195 }, { "theta": 1.3473197256542635, "r": 0.5414646802885669 }, { "theta": 1.347995173035502, "r": 0.5249761899362675 }, { "theta": 1.34966635225538, "r": 0.5288780577789175 }, { "theta": 1.351313048853402, "r": 0.5327813810560575 }, { "theta": 1.3529357881821988, "r": 0.5366861280115223 }, { "theta": 1.353795436087811, "r": 0.5201999615532473 }, { "theta": 1.3554386270971583, "r": 0.5241068593330943 }, { "theta": 1.3570574970983007, "r": 0.5280151512977634 }, { "theta": 1.358652573790421, "r": 0.5319248067161373 }, { "theta": 1.3597029935721499, "r": 0.5154415582779487 }, { "theta": 1.3613167630158012, "r": 0.519353444197687 }, { "theta": 1.3629063995926336, "r": 0.5232666624198412 }, { "theta": 1.3641131083106472, "r": 0.5067859508707794 }, { "theta": 1.36572042641215, "r": 0.5107014783608914 }, { "theta": 1.3673032815373338, "r": 0.5146183051544125 }, { "theta": 1.3688622201952954, "r": 0.518536401808012 }, { "theta": 1.3702757771174823, "r": 0.5020597573994554 }, { "theta": 1.371850380590338, "r": 0.5059802367681964 }, { "theta": 1.3734007669450157, "r": 0.5099019513592785 }, { "theta": 1.3749274833160776, "r": 0.5138248728895868 }, { "theta": 1.3765553306134926, "r": 0.49735299335582567 }, { "theta": 1.3780955681325109, "r": 0.5012783657809301 }, { "theta": 1.379611867197882, "r": 0.5052049089231022 }, { "theta": 1.3811047747725158, "r": 0.509132595695856 }, { "theta": 1.382954616382613, "r": 0.4926662156064692 }, { "theta": 1.3844587680178477, "r": 0.4965964156133228 }, { "theta": 1.3859392947764557, "r": 0.5005277215100079 }, { "theta": 1.3894765523934063, "r": 0.488 }, { "theta": 1.3909428270024182, "r": 0.4919349550499537 }, { "theta": 1.392385827443856, "r": 0.49587095095397554 }, { "theta": 1.3961241277866567, "r": 0.48335494204569796 }, { "theta": 1.3975506603425316, "r": 0.48729457210192684 }, { "theta": 1.3989543089093648, "r": 0.4912351778934404 }, { "theta": 1.401492548639109, "r": 0.47478837390989265 }, { "theta": 1.4029004035445218, "r": 0.4787316576120698 }, { "theta": 1.4042852524030334, "r": 0.482675874681965 }, { "theta": 1.4056476493802696, "r": 0.4866210024238576 }, { "theta": 1.4084448448820814, "r": 0.47018294311895237 }, { "theta": 1.409808513024089, "r": 0.47413078364518796 }, { "theta": 1.411149657134235, "r": 0.47807949129825683 }, { "theta": 1.4124688259864666, "r": 0.48202904476805125 }, { "theta": 1.4155343328877865, "r": 0.4656006872847161 }, { "theta": 1.4168516623365466, "r": 0.4695529789065341 }, { "theta": 1.4181469983996313, "r": 0.4735060717667726 }, { "theta": 1.4194208830608703, "r": 0.4774599459640568 }, { "theta": 1.4227643798328566, "r": 0.4610422974088169 }, { "theta": 1.424033130551433, "r": 0.4649989247299396 }, { "theta": 1.4252804701349302, "r": 0.46895628794163746 }, { "theta": 1.430138428929473, "r": 0.45650848842053304 }, { "theta": 1.4313562697035587, "r": 0.4604693257970611 }, { "theta": 1.432553336317168, "r": 0.4644308344630016 }, { "theta": 1.4376599992432488, "r": 0.452 }, { "theta": 1.4388245045782102, "r": 0.4559649109306549 }, { "theta": 1.4399689307208396, "r": 0.4599304295216832 }, { "theta": 1.4453326852522363, "r": 0.44751759741936403 }, { "theta": 1.446441332248135, "r": 0.4514864339047188 }, { "theta": 1.4475306564359973, "r": 0.45545581563967324 }, { "theta": 1.4531601561166008, "r": 0.4430620724006965 }, { "theta": 1.4542103213335809, "r": 0.4470346742703523 }, { "theta": 1.455241985121209, "r": 0.45100776046538266 }, { "theta": 1.4611461546259865, "r": 0.4386342439892261 }, { "theta": 1.4621351109543086, "r": 0.4426104381959377 }, { "theta": 1.463106455962076, "r": 0.4465870575822815 }, { "theta": 1.4692944957889433, "r": 0.434234959440163 }, { "theta": 1.4702194093400485, "r": 0.43821455931997516 }, { "theta": 1.4711276743037345, "r": 0.44219452732931913 }, { "theta": 1.4767350921669102, "r": 0.4258826129345973 }, { "theta": 1.4776090650260174, "r": 0.4298650951170611 }, { "theta": 1.4784669920632976, "r": 0.43384789961459996 }, { "theta": 1.4793093099233887, "r": 0.4378310176312318 }, { "theta": 1.4852910331166918, "r": 0.4215400336860071 }, { "theta": 1.4860938159252388, "r": 0.4255255573993177 }, { "theta": 1.486881699855705, "r": 0.4295113502574757 }, { "theta": 1.4876550949064553, "r": 0.43349740483652266 }, { "theta": 1.4947527675157795, "r": 0.4212172835960082 }, { "theta": 1.4954674359665563, "r": 0.425205832509386 }, { "theta": 1.4961688210873838, "r": 0.429194594560556 }, { "theta": 1.5035900010125316, "r": 0.41694124286282835 }, { "theta": 1.5042281630190726, "r": 0.4209322985944414 }, { "theta": 1.5048543370136263, "r": 0.42492352253081966 }, { "theta": 1.5126096559812923, "r": 0.4126984371184364 }, { "theta": 1.5131678993174225, "r": 0.41669173257937336 }, { "theta": 1.5137155443886319, "r": 0.4206851554309945 }, { "theta": 1.5218159258711692, "r": 0.40848990195597246 }, { "theta": 1.522290714554513, "r": 0.4124851512478965 }, { "theta": 1.522756393947134, "r": 0.4164804917400094 }, { "theta": 1.5312130528577996, "r": 0.40431670754496407 }, { "theta": 1.5316007248678418, "r": 0.40831360496559505 }, { "theta": 1.5319808807134327, "r": 0.41231056256176607 }, { "theta": 1.5408053219380187, "r": 0.4001799595182147 }, { "theta": 1.541102087187987, "r": 0.4041781785302121 }, { "theta": 1.5413930385908914, "r": 0.40817643244067875 }, { "theta": 1.5505970542138285, "r": 0.39608079983760885 }, { "theta": 1.550798992821746, "r": 0.4000799920015996 }, { "theta": 1.5509969342285037, "r": 0.40407920015759285 }, { "theta": 1.5606956602095745, "r": 0.39602020150492323 }, { "theta": 1.5607966601082313, "r": 0.400019999500025 }, { "theta": 1.5707963267948966, "r": 0.4 }, { "theta": 1.5707963267948966, "r": 0.396 }, { "theta": 1.5707963267948966, "r": 0.392 }, { "theta": 1.5808969933802184, "r": 0.39602020150492323 }, { "theta": 1.5810000542888507, "r": 0.3920204076320517 }, { "theta": 1.5811052399411398, "r": 0.38802061800888876 }, { "theta": 1.5912016574814345, "r": 0.39208162415497105 }, { "theta": 1.5914119624205003, "r": 0.3880824654632054 }, { "theta": 1.6013990147236152, "r": 0.3921836304589981 }, { "theta": 1.601714306357939, "r": 0.38818552265637113 }, { "theta": 1.6020361602251647, "r": 0.3841874542459709 }, { "theta": 1.6120100894532168, "r": 0.388329756778952 }, { "theta": 1.612438905893485, "r": 0.38433318878285805 }, { "theta": 1.622297137746122, "r": 0.38851512197081856 }, { "theta": 1.6228326416041128, "r": 0.3845204805988882 }, { "theta": 1.6233793884058383, "r": 0.38052595180880894 }, { "theta": 1.6332151367908538, "r": 0.38474926900515355 }, { "theta": 1.6338704446918086, "r": 0.38075714044519243 }, { "theta": 1.6435841753988216, "r": 0.3850194800266605 }, { "theta": 1.6443476172834364, "r": 0.3810301825315155 }, { "theta": 1.6539375586833378, "r": 0.3853310265213535 }, { "theta": 1.654808638602391, "r": 0.38134498816688284 }, { "theta": 1.664273107953486, "r": 0.3856838083197167 }, { "theta": 1.6652512621899431, "r": 0.3817014540187134 }, { "theta": 1.6662500411276107, "r": 0.37771947262485683 }, { "theta": 1.6756732655251303, "r": 0.382099463490856 }, { "theta": 1.6767806847844964, "r": 0.37812167353908716 }, { "theta": 1.6860724527658486, "r": 0.3825388869121674 }, { "theta": 1.6872877874895467, "r": 0.378565714242587 }, { "theta": 1.6964466574047428, "r": 0.3830195817448502 }, { "theta": 1.6977691164089754, "r": 0.3790514476954283 }, { "theta": 1.7067937448322805, "r": 0.3835413928117798 }, { "theta": 1.7082224722918398, "r": 0.3795787138394354 }, { "theta": 1.7156088250338355, "r": 0.3880618507403169 }, { "theta": 1.7171116147999268, "r": 0.3841041525419896 }, { "theta": 1.7257930687188374, "r": 0.38865923377683953 }, { "theta": 1.7273982037769118, "r": 0.3847076812334269 }, { "theta": 1.7359450042095232, "r": 0.38929680193908606 }, { "theta": 1.7376514871946855, "r": 0.3853517873320429 }, { "theta": 1.7460627027979774, "r": 0.3899743581314033 }, { "theta": 1.7478694815737719, "r": 0.3860362677262332 }, { "theta": 1.7561442767905913, "r": 0.39069169430639294 }, { "theta": 1.7580502465283794, "r": 0.38676090805561 }, { "theta": 1.7661878813114695, "r": 0.39144859177163993 }, { "theta": 1.7681918866447772, "r": 0.3875254830330517 }, { "theta": 1.7761917159846639, "r": 0.3922448215082004 }, { "theta": 1.7782925532300993, "r": 0.388329756778952 }, { "theta": 1.7861540264926346, "r": 0.3930801444998208 }, { "theta": 1.7883504459289048, "r": 0.3891734831665693 }, { "theta": 1.7960731060089519, "r": 0.39395431207184417 }, { "theta": 1.7983638142054807, "r": 0.39005640617736304 }, { "theta": 1.8059472965038403, "r": 0.3948670662387533 }, { "theta": 1.8083309586905092, "r": 0.3909782602651969 }, { "theta": 1.8157749899217606, "r": 0.3958181400592954 }, { "theta": 1.8182502323913747, "r": 0.3919387707282861 }, { "theta": 1.8255546292307914, "r": 0.39680725799813693 }, { "theta": 1.828120041765985, "r": 0.39293765408777 }, { "theta": 1.8352847093441291, "r": 0.3978341362930034 }, { "theta": 1.8379388476605918, "r": 0.39397461847179954 }, { "theta": 1.8449637779145553, "r": 0.3988984833262719 }, { "theta": 1.847705166112655, "r": 0.39504936400404445 }, { "theta": 1.8545904360032244, "r": 0.4 }, { "theta": 1.8574175690203492, "r": 0.3961615831955441 }, { "theta": 1.8641633386246061, "r": 0.4011383801133968 }, { "theta": 1.8670746846808162, "r": 0.3973109613388485 }, { "theta": 1.873681195169868, "r": 0.4023133107417651 }, { "theta": 1.8766751981997487, "r": 0.3984971769034255 }, { "theta": 1.883142769711395, "r": 0.4035244726159741 }, { "theta": 1.8862178517753367, "r": 0.3997199019313399 }, { "theta": 1.8925468811915387, "r": 0.40477154050155256 }, { "theta": 1.8957014448600156, "r": 0.4009788024322483 }, { "theta": 1.9018924034990285, "r": 0.4060541835765271 }, { "theta": 1.9051248342038214, "r": 0.402273538776788 }, { "theta": 1.9111782654368035, "r": 0.4073720658071685 }, { "theta": 1.914486933783501, "r": 0.4036037660874834 }, { "theta": 1.9204034505852983, "r": 0.408724846320847 }, { "theta": 1.923786714621807, "r": 0.4049691346263318 }, { "theta": 1.9295669970654687, "r": 0.4101121797752415 }, { "theta": 1.9330232045016675, "r": 0.40636929017828105 }, { "theta": 1.9386679972060499, "r": 0.4115337167231866 }, { "theta": 1.942195487580145, "r": 0.4078038744298539 }, { "theta": 1.9477055971197175, "r": 0.41298910397248983 }, { "theta": 1.9513027039072615, "r": 0.4092725253422223 }, { "theta": 1.9566789961929703, "r": 0.414477984940093 }, { "theta": 1.9603440488549289, "r": 0.4107748775180877 }, { "theta": 1.965587446494658, "r": 0.416 }, { "theta": 1.9693187724613168, "r": 0.41231056256176607 }, { "theta": 1.974430252108162, "r": 0.41755478682443575 }, { "theta": 1.9782261786960715, "r": 0.41387920943193074 }, { "theta": 1.9832067683922838, "r": 0.41914198071775155 }, { "theta": 1.9870656246518381, "r": 0.4154804447865146 }, { "theta": 1.9919164011759185, "r": 0.42076121494263224 }, { "theta": 1.9958365196675516, "r": 0.4171138933193187 }, { "theta": 2.0005586058915847, "r": 0.42241212103821074 }, { "theta": 2.0045383243889394, "r": 0.4187791780879274 }, { "theta": 2.0091328866528544, "r": 0.424094329129735 }, { "theta": 2.0131705497716412, "r": 0.42047592083257274 }, { "theta": 2.0176387952806607, "r": 0.42580746822948046 }, { "theta": 2.0217327560322764, "r": 0.42220374228564106 }, { "theta": 2.02607593028341, "r": 0.427551166528639 }, { "theta": 2.030224551552699, "r": 0.42396226247155533 }, { "theta": 2.0344439357957027, "r": 0.42932505167995966 }, { "theta": 2.0386455917425748, "r": 0.4257511009968148 }, { "theta": 2.0427425004803723, "r": 0.4311287510709533 }, { "theta": 2.04699557786527, "r": 0.42756987733001023 }, { "theta": 2.0509713563984233, "r": 0.4329618920875139 }, { "theta": 2.05527425583192, "r": 0.42941821107167777 }, { "theta": 2.059130277851302, "r": 0.4348241023678426 }, { "theta": 2.0634814149683476, "r": 0.4312957222138889 }, { "theta": 2.067219080199778, "r": 0.4367150100465978 }, { "theta": 2.0716168867593794, "r": 0.4332020313895123 }, { "theta": 2.075237618663568, "r": 0.4386342439892261 }, { "theta": 2.0796805435748706, "r": 0.4351367601111173 }, { "theta": 2.0831857871056343, "r": 0.44058143401645966 }, { "theta": 2.087672297381604, "r": 0.43709953099951965 }, { "theta": 2.091063516804943, "r": 0.44255621111899446 }, { "theta": 2.095592098445004, "r": 0.439089968002003 }, { "theta": 2.098870775221256, "r": 0.44455820766239373 }, { "theta": 2.1034399340244136, "r": 0.4411076966002747 }, { "theta": 2.10660756475536, "r": 0.4465870575822815 }, { "theta": 2.1112158270654806, "r": 0.4431523440082428 }, { "theta": 2.11427392150794, "r": 0.4486423965699185 }, { "theta": 2.1189198348929805, "r": 0.4452235393597243 }, { "theta": 2.121869914040114, "r": 0.45072386224827277 }, { "theta": 2.12655204790721, "r": 0.4473209138862166 }, { "theta": 2.129395642138459, "r": 0.452831094338717 }, { "theta": 2.1341125882868646, "r": 0.44944410108488464 }, { "theta": 2.136851235587158, "r": 0.4549637348185018 }, { "theta": 2.141601608701121, "r": 0.4515927368769343 }, { "theta": 2.1442368529497253, "r": 0.4571214280691729 }, { "theta": 2.1490192910334334, "r": 0.45376645975655805 }, { "theta": 2.151552680362567, "r": 0.4593038210161113 }, { "theta": 2.1563658451193546, "r": 0.4559649109306549 }, { "theta": 2.158798930342464, "r": 0.4615105632593906 }, { "theta": 2.1636415075005107, "r": 0.45818773444953764 }, { "theta": 2.1659758406098852, "r": 0.4637413071961565 }, { "theta": 2.17084654019665, "r": 0.46043457732885357 }, { "theta": 2.173083672929861, "r": 0.46599570813474234 }, { "theta": 2.177981229497524, "r": 0.46270508966295154 }, { "theta": 2.1801227119719857, "r": 0.4682734244007447 }, { "theta": 2.1850458847761627, "r": 0.4649989247299396 }, { "theta": 2.1870932641909677, "r": 0.47057411743528776 }, { "theta": 2.1920408373249574, "r": 0.4673157390886808 }, { "theta": 2.1939956567289625, "r": 0.47289745188571275 }, { "theta": 2.1989664392157757, "r": 0.4696551926679828 }, { "theta": 2.2008302363408117, "r": 0.4752430956889327 }, { "theta": 2.2058230621852104, "r": 0.47201694884823786 }, { "theta": 2.2075973683431456, "r": 0.4776107201476952 }, { "theta": 2.212611096545876, "r": 0.4744006745357768 }, { "theta": 2.214297435588181, "r": 0.48 }, { "theta": 2.2193309501245713, "r": 0.47680604023019674 }, { "theta": 2.2209308374629195, "r": 0.4824106134819175 }, { "theta": 2.2259830472279485, "r": 0.4792327200849291 }, { "theta": 2.2274979889143305, "r": 0.4848422423840563 }, { "theta": 2.2325678276362444, "r": 0.48168039196130874 }, { "theta": 2.23399931950099, "r": 0.48729457210192684 }, { "theta": 2.2390857456254807, "r": 0.4841487374764082 }, { "theta": 2.240435272471534, "r": 0.4897672916804469 }, { "theta": 2.245537269018449, "r": 0.4866374420448965 }, { "theta": 2.246806303870205, "r": 0.49226009385283304 }, { "theta": 2.2519228782646894, "r": 0.48914619491518074 }, { "theta": 2.2531128816696446, "r": 0.49477267507411926 }, { "theta": 2.2582430655495673, "r": 0.4916746892000848 }, { "theta": 2.2593554849310378, "r": 0.4973047355495421 }, { "theta": 2.264498333932482, "r": 0.4942226219023164 }, { "theta": 2.2655346029915995, "r": 0.49985597925802583 }, { "theta": 2.27068919651414, "r": 0.49678969393496886 }, { "theta": 2.271650734679347, "r": 0.5024261139709997 }, { "theta": 2.276816175632771, "r": 0.49937561013729936 }, { "theta": 2.277704387555013, "r": 0.5050148512667721 }, { "theta": 2.282879802089074, "r": 0.5019800792860211 }, { "theta": 2.2836960771809163, "r": 0.5076219065406851 }, { "theta": 2.2888806143996394, "r": 0.5046028141023393 }, { "theta": 2.289626326416521, "r": 0.5102469990112632 }, { "theta": 2.294819158078528, "r": 0.5072435312549585 }, { "theta": 2.295495664740392, "r": 0.5128898517225702 }, { "theta": 2.300695984946628, "r": 0.5099019513592785 }, { "theta": 2.301304627598191, "r": 0.5155501915429768 }, { "theta": 2.3065116524683873, "r": 0.5125777989729949 }, { "theta": 2.307053755776325, "r": 0.5182277491605404 }, { "theta": 2.312266723115455, "r": 0.5152708025883089 }, { "theta": 2.312743594800814, "r": 0.5209222590751906 }, { "theta": 2.317961763756743, "r": 0.5179806946209482 }, { "theta": 2.318374694360928, "r": 0.5236334595879069 }, { "theta": 2.323597345074392, "r": 0.5207072113961934 }, { "theta": 2.323947607757091, "r": 0.5263610927870713 }, { "theta": 2.32917404100508, "r": 0.5234500931320961 }, { "theta": 2.329462891372552, "r": 0.5291049045321731 }, { "theta": 2.3346924282061137, "r": 0.5262090839200707 }, { "theta": 2.3349211041682834, "r": 0.5318646444350291 }, { "theta": 2.340153085545701, "r": 0.5289839317030338 }, { "theta": 2.340322807200555, "r": 0.5346400658386912 }, { "theta": 2.3455565936168035, "r": 0.5317743882512583 }, { "theta": 2.3456685631606193, "r": 0.5374309257941898 }, { "theta": 2.350903534273944, "r": 0.5345802091361034 }, { "theta": 2.350958935935937, "r": 0.5402369850352714 }, { "theta": 2.356194490192345, "r": 0.5374011537017761 }, { "theta": 2.356194490192345, "r": 0.5430580079512685 }, { "theta": 2.3613757909765836, "r": 0.5458937625582472 }, { "theta": 2.3614300444487526, "r": 0.5402369850352714 }, { "theta": 2.366503403338588, "r": 0.5487440204685605 }, { "theta": 2.3666107801233145, "r": 0.5430874699346322 }, { "theta": 2.37157789197294, "r": 0.5516085568589377 }, { "theta": 2.3717372799218612, "r": 0.5459523788756672 }, { "theta": 2.3765998208788828, "r": 0.5544871504372306 }, { "theta": 2.376810125817949, "r": 0.5488314859772534 }, { "theta": 2.381569753038309, "r": 0.5573795834079321 }, { "theta": 2.381829898714022, "r": 0.5517245689653489 }, { "theta": 2.3864882501111198, "r": 0.5602856414365801 }, { "theta": 2.3867971781210637, "r": 0.5546314091358332 }, { "theta": 2.391355872147373, "r": 0.563205113613149 }, { "theta": 2.3917125418560845, "r": 0.5575517913162866 }, { "theta": 2.3961731773156347, "r": 0.5661377924145322 }, { "theta": 2.3965765657568445, "r": 0.5604855038268162 }, { "theta": 2.4009407216469603, "r": 0.56908347366621 }, { "theta": 2.401389823413174, "r": 0.5634323384400295 }, { "theta": 2.405659058793936, "r": 0.5720419565031922 }, { "theta": 2.4061528859142873, "r": 0.5663920903402518 }, { "theta": 2.4103287398042252, "r": 0.5750130433303231 }, { "theta": 2.410866321611495, "r": 0.569364558082078 }, { "theta": 2.4149503129080676, "r": 0.5779965397820301 }, { "theta": 2.415530695895716, "r": 0.572349543548346 }, { "theta": 2.419524323319197, "r": 0.5809922546815922 }, { "theta": 2.420146570989222, "r": 0.5753468519076123 }, { "theta": 2.4240513130486487, "r": 0.584 }, { "theta": 2.42471450575104, "r": 0.5783562915712078 }, { "theta": 2.4285318207309396, "r": 0.5870195908144804 }, { "theta": 2.429235055495464, "r": 0.5813776741499452 }, { "theta": 2.4329663814621227, "r": 0.5900508452667448 }, { "theta": 2.4337087718231367, "r": 0.584410814410548 }, { "theta": 2.4373555266492186, "r": 0.5930935845210266 }, { "theta": 2.4381362024641717, "r": 0.5874555302318636 }, { "theta": 2.4416997838705496, "r": 0.5961476327219626 }, { "theta": 2.4425178911328076, "r": 0.5905116425609236 }, { "theta": 2.4459996767465126, "r": 0.5992128169523746 }, { "theta": 2.44685437739309, "r": 0.5935789753689057 }, { "theta": 2.450255724820331, "r": 0.6022889671909988 }, { "theta": 2.451146196535101, "r": 0.5966573556070519 }, { "theta": 2.454468443448354, "r": 0.605375916270213 }, { "theta": 2.455393879461265, "r": 0.5997466131625923 }, { "theta": 2.4586383436994694, "r": 0.6084734998338054 }, { "theta": 2.4595979525822704, "r": 0.6028465808147211 }, { "theta": 2.462765932263223, "r": 0.6115815562948248 }, { "theta": 2.463758937722173, "r": 0.6059570941906696 }, { "theta": 2.4668517113662407, "r": 0.6146999267935535 }, { "theta": 2.4678773520322443, "r": 0.609077991721914 }, { "theta": 2.470896178696562, "r": 0.6178284551556362 }, { "theta": 2.4719537079131557, "r": 0.6122091146005587 }, { "theta": 2.4748998273355216, "r": 0.6209669878504009 }, { "theta": 2.4759885129451003, "r": 0.6153503067359275 }, { "theta": 2.4788631456968018, "r": 0.6241153739494004 }, { "theta": 2.479982269825461, "r": 0.6185014147113974 }, { "theta": 2.4827866174723168, "r": 0.6272734650852051 }, { "theta": 2.4839354763136576, "r": 0.6216622877415037 }, { "theta": 2.486670721584594, "r": 0.630441115410472 }, { "theta": 2.4878486251828034, "r": 0.624832777629343 }, { "theta": 2.4917222041778455, "r": 0.6280127387243033 }, { "theta": 2.4955566959798303, "r": 0.6312020278801392 }, { "theta": 2.4968127731150327, "r": 0.6256005115087423 }, { "theta": 2.4993525781759938, "r": 0.6344005044134187 }, { "theta": 2.5006360685669886, "r": 0.6288020356201147 }, { "theta": 2.5031103232353553, "r": 0.6376080300623573 }, { "theta": 2.504420574212711, "r": 0.6320126581010858 }, { "theta": 2.5081667706206483, "r": 0.6352322409953701 }, { "theta": 2.5118751329808005, "r": 0.6384606487482216 }, { "theta": 2.5132610511557836, "r": 0.6328728150268426 }, { "theta": 2.5155461310962615, "r": 0.6416977481649753 }, { "theta": 2.5169572308181793, "r": 0.6361131974735313 }, { "theta": 2.520615895007923, "r": 0.6393621821784582 }, { "theta": 2.524237515530508, "r": 0.6426196386666065 }, { "theta": 2.525722701650267, "r": 0.6370431696517905 }, { "theta": 2.529331378226777, "r": 0.6403124237432849 }, { "theta": 2.5329033462623816, "r": 0.6435899315558005 }, { "theta": 2.5344619484915785, "r": 0.6380219431963136 }, { "theta": 2.5380203740148692, "r": 0.6413111569277428 }, { "theta": 2.5415424401880395, "r": 0.644608408260395 }, { "theta": 2.543173760111256, "r": 0.6390492938733286 }, { "theta": 2.546681697078478, "r": 0.6423581555487562 }, { "theta": 2.550153637452238, "r": 0.6456748407673943 }, { "theta": 2.551856949524397, "r": 0.6401249877953523 }, { "theta": 2.5553141862648427, "r": 0.6434531840002037 }, { "theta": 2.5587358022226505, "r": 0.6467889918667447 }, { "theta": 2.560510354792466, "r": 0.6412487816752559 }, { "theta": 2.5639167053242655, "r": 0.6445959975054143 }, { "theta": 2.5657422295917325, "r": 0.6390618123468184 }, { "theta": 2.569132839771742, "r": 0.6424204230875603 }, { "theta": 2.572488143621327, "r": 0.645786342376486 }, { "theta": 2.5743842794187213, "r": 0.6402624461890608 }, { "theta": 2.577723294809093, "r": 0.6436396507363418 }, { "theta": 2.579671091332978, "r": 0.6381222453417527 }, { "theta": 2.5829933382462307, "r": 0.641510716979849 }, { "theta": 2.586280637384579, "r": 0.6449061947291249 }, { "theta": 2.5882983282675003, "r": 0.6393997184860187 }, { "theta": 2.591568325955098, "r": 0.6428063471995279 }, { "theta": 2.5936383120627804, "r": 0.6373068334797611 }, { "theta": 2.596890524255589, "r": 0.6407245898199944 }, { "theta": 2.5990133294638027, "r": 0.6352322409953701 }, { "theta": 2.6022472667622023, "r": 0.6386610994886098 }, { "theta": 2.6044234127296164, "r": 0.6331761208384283 }, { "theta": 2.6076385804703626, "r": 0.6366160538346485 }, { "theta": 2.6098685863309874, "r": 0.6311386535461126 }, { "theta": 2.6130644846864013, "r": 0.6345896311790793 }, { "theta": 2.61852499081851, "r": 0.6325820104935012 }, { "theta": 2.6240201021672407, "r": 0.6305933713574858 }, { "theta": 2.6295498137157804, "r": 0.6286238939143182 }, { "theta": 2.6351141119202595, "r": 0.6266737588251162 }, { "theta": 2.640712974500342, "r": 0.6247431472213201 }, { "theta": 2.6463463702303693, "r": 0.6228322406555397 }, { "theta": 2.652014258731342, "r": 0.6209412210507529 }, { "theta": 2.6577165902640263, "r": 0.6190702706478481 }, { "theta": 2.663453305523487, "r": 0.6172195719515057 }, { "theta": 2.669224335435364, "r": 0.6153893076744185 }, { "theta": 2.675029600954212, "r": 0.6135796606798501 }, { "theta": 2.6808690128642354, "r": 0.6117908139225368 }, { "theta": 2.686742471582767, "r": 0.6100229503879342 }, { "theta": 2.6926498669668386, "r": 0.608276253029822 }, { "theta": 2.698591078123205, "r": 0.6065509047062744 }, { "theta": 2.704565973222199, "r": 0.6048470881140126 }, { "theta": 2.7105744093157824, "r": 0.6031649857211541 }, { "theta": 2.716616232160199, "r": 0.6015047796983828 }, { "theta": 2.7226912760436024, "r": 0.5998666518485587 }, { "theta": 2.728799363619074, "r": 0.5982507835347982 }, { "theta": 2.7349403057434287, "r": 0.5966573556070519 }, { "theta": 2.741113901322223, "r": 0.5950865483272161 }, { "theta": 2.747319937161374, "r": 0.5935385412928127 }, { "theta": 2.753558187825817, "r": 0.5920135133592813 }, { "theta": 2.7598284155056105, "r": 0.5905116425609236 }, { "theta": 2.7661303698899182, "r": 0.5890331060305524 }, { "theta": 2.7724637880492864, "r": 0.5875780799178948 }, { "theta": 2.7788283943266356, "r": 0.5861467393068053 }, { "theta": 2.7852239002373897, "r": 0.5847392581313486 }, { "theta": 2.7916500043791546, "r": 0.5833558090908155 }, { "theta": 2.7981063923513583, "r": 0.581996563563738 }, { "theta": 2.8045927366852603, "r": 0.580661691520975 }, { "theta": 2.811108696784724, "r": 0.5793513614379446 }, { "theta": 2.8176539188781504, "r": 0.5780657402060773 }, { "theta": 2.824228035981943, "r": 0.5768049930435762 }, { "theta": 2.8308306678758846, "r": 0.5755692834055689 }, { "theta": 2.8374614210907767, "r": 0.5743587728937375 }, { "theta": 2.844119888908687, "r": 0.5731736211655243 }, { "theta": 2.850805651376132, "r": 0.5720139858430037 }, { "theta": 2.8575182753305075, "r": 0.5708800224215242 }, { "theta": 2.864257314440062, "r": 0.5697718841782209 }, { "theta": 2.871022309257678, "r": 0.5686897220805032 }, { "theta": 2.8778127872887316, "r": 0.5676336846946277 }, { "theta": 2.8846282630732363, "r": 0.5666039180944658 }, { "theta": 2.891468238282504, "r": 0.5656005657705798 }, { "theta": 2.898332201830483, "r": 0.5646237685397242 }, { "theta": 2.9052196299999413, "r": 0.5636736644548865 }, { "theta": 2.9121299865836208, "r": 0.5627503887159919 }, { "theta": 2.9190627230404553, "r": 0.5618540735813882 }, { "theta": 2.9260172786669343, "r": 0.5609848482802365 }, { "theta": 2.9329930807836355, "r": 0.5601428389259298 }, { "theta": 2.93998954493695, "r": 0.5593281684306629 }, { "theta": 2.9470060751159606, "r": 0.5585409564212817 }, { "theta": 2.9540420639844234, "r": 0.5577813191565312 }, { "theta": 2.961096893127758, "r": 0.5570493694458329 }, { "theta": 2.9681699333149156, "r": 0.5563452165697121 }, { "theta": 2.975260544774973, "r": 0.5556689662020006 }, { "theta": 2.9823680774882417, "r": 0.5550207203339349 }, { "theta": 2.989491871491675, "r": 0.5544005772002768 }, { "theta": 2.9966312571982914, "r": 0.553808631207568 }, { "theta": 3.003785555730326, "r": 0.5532449728646434 }, { "theta": 3.010954079265758, "r": 0.5527096887155136 }, { "theta": 3.0181361313978528, "r": 0.5522028612747312 }, { "theta": 3.0253310075073068, "r": 0.5517245689653489 }, { "theta": 3.032537995146556, "r": 0.5512748860595774 }, { "theta": 3.039756374435775, "r": 0.5508538826222431 }, { "theta": 3.0469854184700633, "r": 0.550461624457146 }, { "theta": 3.0542243937372833, "r": 0.5500981730564101 }, { "theta": 3.0614725605459787, "r": 0.5497635855529175 }, { "theta": 3.0687291734627933, "r": 0.5494579146759104 }, { "theta": 3.075993481758754, "r": 0.5491812087098392 }, { "theta": 3.083264729863787, "r": 0.5489335114565334 }, { "theta": 3.090542157828783, "r": 0.5487148622007608 }, { "theta": 3.0978250017945386, "r": 0.5485252956792421 }, { "theta": 3.1051124944668436, "r": 0.5483648420531717 }, { "theta": 3.1124038655969986, "r": 0.5482335268843014 }, { "theta": 3.119698342467015, "r": 0.5481313711146262 }, { "theta": 3.126995150378733, "r": 0.5480583910497129 }, { "theta": 3.134293513146096, "r": 0.548014598345701 }, { "theta": 3.141592653589793, "r": 0.548 }, { "theta": 3.1488917940334904, "r": 0.548014598345701 }, { "theta": 3.1561901568008532, "r": 0.5480583910497129 }, { "theta": 3.1634869647125714, "r": 0.5481313711146262 }, { "theta": 3.1707814415825877, "r": 0.5482335268843014 }, { "theta": 3.1780728127127427, "r": 0.5483648420531717 }, { "theta": 3.1853603053850477, "r": 0.5485252956792421 }, { "theta": 3.192643149350803, "r": 0.5487148622007608 }, { "theta": 3.1999205773157993, "r": 0.5489335114565334 }, { "theta": 3.207191825420832, "r": 0.5491812087098392 }, { "theta": 3.214456133716793, "r": 0.5494579146759104 }, { "theta": 3.2217127466336075, "r": 0.5497635855529175 }, { "theta": 3.228960913442303, "r": 0.5500981730564101 }, { "theta": 3.236199888709523, "r": 0.550461624457146 }, { "theta": 3.2434289327438113, "r": 0.5508538826222431 }, { "theta": 3.2506473120330304, "r": 0.5512748860595774 }, { "theta": 3.2578542996722795, "r": 0.5517245689653489 }, { "theta": 3.2650491757817335, "r": 0.5522028612747312 }, { "theta": 3.2722312279138284, "r": 0.5527096887155136 }, { "theta": 3.2793997514492603, "r": 0.5532449728646434 }, { "theta": 3.286554049981295, "r": 0.553808631207568 }, { "theta": 3.2936934356879113, "r": 0.5544005772002768 }, { "theta": 3.3008172296913445, "r": 0.5550207203339349 }, { "theta": 3.307924762404613, "r": 0.5556689662020006 }, { "theta": 3.3150153738646706, "r": 0.5563452165697121 }, { "theta": 3.3220884140518283, "r": 0.5570493694458329 }, { "theta": 3.329143243195163, "r": 0.5577813191565312 }, { "theta": 3.3361792320636257, "r": 0.5585409564212817 }, { "theta": 3.3431957622426363, "r": 0.5593281684306629 }, { "theta": 3.3501922263959507, "r": 0.5601428389259298 }, { "theta": 3.357168028512652, "r": 0.5609848482802365 }, { "theta": 3.364122584139131, "r": 0.5618540735813882 }, { "theta": 3.3710553205959655, "r": 0.5627503887159919 }, { "theta": 3.377965677179645, "r": 0.5636736644548865 }, { "theta": 3.3848531053491033, "r": 0.5646237685397242 }, { "theta": 3.391717068897082, "r": 0.5656005657705798 }, { "theta": 3.39855704410635, "r": 0.5666039180944658 }, { "theta": 3.4053725198908547, "r": 0.5676336846946277 }, { "theta": 3.412162997921908, "r": 0.5686897220805032 }, { "theta": 3.4189279927395244, "r": 0.5697718841782209 }, { "theta": 3.4256670318490787, "r": 0.5708800224215242 }, { "theta": 3.4323796558034543, "r": 0.5720139858430037 }, { "theta": 3.439065418270899, "r": 0.5731736211655243 }, { "theta": 3.4457238860888095, "r": 0.5743587728937375 }, { "theta": 3.4523546393037017, "r": 0.5755692834055689 }, { "theta": 3.4589572711976433, "r": 0.5768049930435762 }, { "theta": 3.465531388301436, "r": 0.5780657402060773 }, { "theta": 3.472076610394862, "r": 0.5793513614379446 }, { "theta": 3.478592570494326, "r": 0.580661691520975 }, { "theta": 3.485078914828228, "r": 0.581996563563738 }, { "theta": 3.4915353028004317, "r": 0.5833558090908155 }, { "theta": 3.4979614069421965, "r": 0.5847392581313486 }, { "theta": 3.5043569128529506, "r": 0.5861467393068053 }, { "theta": 3.5107215191303, "r": 0.5875780799178948 }, { "theta": 3.517054937289668, "r": 0.5890331060305524 }, { "theta": 3.5233568916739757, "r": 0.5905116425609236 }, { "theta": 3.529627119353769, "r": 0.5920135133592813 }, { "theta": 3.5358653700182123, "r": 0.5935385412928127 }, { "theta": 3.5420714058573632, "r": 0.5950865483272161 }, { "theta": 3.5482450014361575, "r": 0.5966573556070519 }, { "theta": 3.5543859435605123, "r": 0.5982507835347982 }, { "theta": 3.560494031135984, "r": 0.5998666518485587 }, { "theta": 3.566569075019387, "r": 0.6015047796983828 }, { "theta": 3.572610897863804, "r": 0.6031649857211541 }, { "theta": 3.5786193339573873, "r": 0.6048470881140126 }, { "theta": 3.584594229056381, "r": 0.6065509047062744 }, { "theta": 3.5905354402127476, "r": 0.608276253029822 }, { "theta": 3.5964428355968194, "r": 0.6100229503879342 }, { "theta": 3.602316294315351, "r": 0.6117908139225368 }, { "theta": 3.608155706225374, "r": 0.6135796606798501 }, { "theta": 3.613960971744222, "r": 0.6153893076744185 }, { "theta": 3.619732001656099, "r": 0.6172195719515057 }, { "theta": 3.62546871691556, "r": 0.6190702706478481 }, { "theta": 3.6311710484482442, "r": 0.6209412210507529 }, { "theta": 3.636838936949217, "r": 0.6228322406555397 }, { "theta": 3.6424723326792443, "r": 0.6247431472213201 }, { "theta": 3.6455642138272273, "r": 0.621237474722831 }, { "theta": 3.6480711952593268, "r": 0.6266737588251162 }, { "theta": 3.651184918398719, "r": 0.6231789470128143 }, { "theta": 3.653635493463806, "r": 0.6286238939143182 }, { "theta": 3.6567705346972827, "r": 0.6251399843235114 }, { "theta": 3.6591652050123455, "r": 0.6305933713574858 }, { "theta": 3.662321044996864, "r": 0.6271204031125124 }, { "theta": 3.664660316361076, "r": 0.6325820104935012 }, { "theta": 3.6678364404456403, "r": 0.6291200203458797 }, { "theta": 3.670120822493185, "r": 0.6345896311790793 }, { "theta": 3.673316720848599, "r": 0.6311386535461126 }, { "theta": 3.6765477273758895, "r": 0.6276941930590086 }, { "theta": 3.67876189444997, "r": 0.6331761208384283 }, { "theta": 3.682012153860377, "r": 0.6297428046432924 }, { "theta": 3.6841719777157835, "r": 0.6352322409953701 }, { "theta": 3.687440982176999, "r": 0.6318100980516218 }, { "theta": 3.690745556268804, "r": 0.6283947803729755 }, { "theta": 3.6928342421774407, "r": 0.6338958905056886 }, { "theta": 3.6961570210931693, "r": 0.6304918714781341 }, { "theta": 3.698191971600016, "r": 0.636 }, { "theta": 3.7015324507041814, "r": 0.6326073031510149 }, { "theta": 3.704908915081761, "r": 0.6292217415188385 }, { "theta": 3.7068718962957194, "r": 0.6347408920181525 }, { "theta": 3.7102655032625016, "r": 0.6313667713777785 }, { "theta": 3.71369553702443, "r": 0.628 }, { "theta": 3.7155856658762536, "r": 0.6335297940902227 }, { "theta": 3.7190322697343072, "r": 0.6301745789858553 }, { "theta": 3.7225157293966658, "r": 0.626826929861824 }, { "theta": 3.7243321478397653, "r": 0.632366982060259 }, { "theta": 3.7278315905356676, "r": 0.6290310008258735 }, { "theta": 3.7313683049247723, "r": 0.6257028048522717 }, { "theta": 3.7331101811505993, "r": 0.6312527227664052 }, { "theta": 3.7349427997465114, "r": 0.6223825190347171 }, { "theta": 3.736662277295334, "r": 0.627936302502093 }, { "theta": 3.740252047304194, "r": 0.624627889226858 }, { "theta": 3.7438799997247574, "r": 0.6213276108463232 }, { "theta": 3.745523113592747, "r": 0.6268907400815552 }, { "theta": 3.7475466499594576, "r": 0.6180355976802631 }, { "theta": 3.7491657119788155, "r": 0.6236024374551467 }, { "theta": 3.752846879947824, "r": 0.620322496770833 }, { "theta": 3.7565671319816314, "r": 0.6170510513725749 }, { "theta": 3.7581080269806426, "r": 0.6226266939346562 }, { "theta": 3.760326989216898, "r": 0.6137882370981054 }, { "theta": 3.7618421395726145, "r": 0.6193674192270692 }, { "theta": 3.7641269794656114, "r": 0.6105341923266869 }, { "theta": 3.76561570656655, "r": 0.6161168720299744 }, { "theta": 3.7679676372309805, "r": 0.6072890580275591 }, { "theta": 3.7694292474015825, "r": 0.6128751912094338 }, { "theta": 3.7732832879287623, "r": 0.6096425182022658 }, { "theta": 3.777178360414344, "r": 0.6064189970639112 }, { "theta": 3.781115003537638, "r": 0.6032047745169131 }, { "theta": 3.7824656475403184, "r": 0.6088021024930843 }, { "theta": 3.7850937623830774, "r": 0.6 }, { "theta": 3.7864147655776836, "r": 0.6056005284013547 }, { "theta": 3.7891151884261274, "r": 0.5968048257177551 }, { "theta": 3.7904057974113745, "r": 0.6024084992760311 }, { "theta": 3.793179839512651, "r": 0.5936194066908528 }, { "theta": 3.7944392846905672, "r": 0.5992261676529155 }, { "theta": 3.797288279831329, "r": 0.5904439008068421 }, { "theta": 3.7985157751231684, "r": 0.5960536888569686 }, { "theta": 3.8014410798787157, "r": 0.5872784688714545 }, { "theta": 3.80263582244048, "r": 0.5928912210515517 }, { "theta": 3.8056388164164776, "r": 0.5841232746604094 }, { "theta": 3.8067999863544264, "r": 0.5897389252881312 }, { "theta": 3.8098820724203772, "r": 0.5809784849716898 }, { "theta": 3.811008832506917, "r": 0.5865969655564202 }, { "theta": 3.814171437020504, "r": 0.5778442696782585 }, { "theta": 3.8152629324108904, "r": 0.5834655088349268 }, { "theta": 3.81850750543227, "r": 0.5747208017811779 }, { "theta": 3.8195628633825853, "r": 0.5803447251418763 }, { "theta": 3.822890878877642, "r": 0.5716082574630985 }, { "theta": 3.823909208464541, "r": 0.5772347875864725 }, { "theta": 3.8273221644960795, "r": 0.5685068161420758 }, { "theta": 3.828302556338835, "r": 0.5741358724204576 }, { "theta": 3.8318019752446144, "r": 0.5654166605256694 }, { "theta": 3.8327435012300297, "r": 0.5710481590899318 }, { "theta": 3.836330929786496, "r": 0.5623379766652792 }, { "theta": 3.837232642797291, "r": 0.5679718302873832 }, { "theta": 3.8409096523678, "r": 0.5592709540106656 }, { "theta": 3.8417705860151123, "r": 0.5649070720038828 }, { "theta": 3.8455387726813703, "r": 0.5562157854645983 }, { "theta": 3.8463579410420676, "r": 0.5618540735813882 }, { "theta": 3.8502189257174635, "r": 0.5531726674375732 }, { "theta": 3.850995323076989, "r": 0.5588130277651014 }, { "theta": 3.8549507516004136, "r": 0.5501417999025342 }, { "theta": 3.855683352201951, "r": 0.5557841307558179 }, { "theta": 3.8597348954106407, "r": 0.5471233864495284 }, { "theta": 3.8604226532114176, "r": 0.5527675822622018 }, { "theta": 3.864572006991284, "r": 0.5441176343402225 }, { "theta": 3.8652138554268918, "r": 0.5497635855529175 }, { "theta": 3.869462740738733, "r": 0.5411247545621989 }, { "theta": 3.870057592496388, "r": 0.5467723475085403 }, { "theta": 3.8744077553763, "r": 0.5381449618829485 }, { "theta": 3.874954502178025, "r": 0.5437940786731683 }, { "theta": 3.879407713710258, "r": 0.5351784749034662 }, { "theta": 3.879905226107021, "r": 0.5408289933056474 }, { "theta": 3.884463282367457, "r": 0.5322255161113567 }, { "theta": 3.884910409545351, "r": 0.5378773094303197 }, { "theta": 3.8895751315136904, "r": 0.529286311933343 }, { "theta": 3.8899707011133113, "r": 0.5349392488871985 }, { "theta": 3.8947439345519874, "r": 0.5263610927870713 }, { "theta": 3.895086752502219, "r": 0.5320150373814635 }, { "theta": 3.899970367799977, "r": 0.5234500931320961 }, { "theta": 3.9002592181674487, "r": 0.5291049045321731 }, { "theta": 3.9052551101454487, "r": 0.5205535515199181 }, { "theta": 3.9054887550010102, "r": 0.5262090839200707 }, { "theta": 3.910598842679236, "r": 0.5176717106429518 }, { "theta": 3.9107760219828394, "r": 0.523327813134368 }, { "theta": 3.916002248304508, "r": 0.5148048173822775 }, { "theta": 3.9161216798099714, "r": 0.5204613338183731 }, { "theta": 3.9214660113215687, "r": 0.5119531228540364 }, { "theta": 3.9215263905027538, "r": 0.5176098917138273 }, { "theta": 3.9269908169872414, "r": 0.5091168824543142 }, { "theta": 3.9269908169872414, "r": 0.5147737367038066 }, { "theta": 3.932515622652914, "r": 0.5119531228540364 }, { "theta": 3.9325773510478976, "r": 0.5062963559023509 }, { "theta": 3.938101470884849, "r": 0.5091483084524586 }, { "theta": 3.938226299245204, "r": 0.503491807281906 }, { "theta": 3.943749024569479, "r": 0.5063595560468865 }, { "theta": 3.9439383467936464, "r": 0.5007035050806016 }, { "theta": 3.949458945573067, "r": 0.5035871324805669 }, { "theta": 3.9497141778288825, "r": 0.4979317222270539 }, { "theta": 3.9552318941920293, "r": 0.5008313089254705 }, { "theta": 3.9555544748260014, "r": 0.49517673612559787 }, { "theta": 3.9610685285742493, "r": 0.4980923609131142 }, { "theta": 3.9614599179867493, "r": 0.4924388286883966 }, { "theta": 3.9669695041105317, "r": 0.4953705683627157 }, { "theta": 3.9674311845948114, "r": 0.48971828636472214 }, { "theta": 3.972935472795361, "r": 0.4926662156064692 }, { "theta": 3.9734689483382444, "r": 0.48701540016718153 }, { "theta": 3.978967082556153, "r": 0.48997959141172404 }, { "theta": 3.979573878598183, "r": 0.4843304656946536 }, { "theta": 3.9850649765501953, "r": 0.48731098899983777 }, { "theta": 3.985746639702964, "r": 0.4816637831516918 }, { "theta": 3.9912297924285314, "r": 0.4846607060614673 }, { "theta": 3.991987890146844, "r": 0.47901565736414087 }, { "theta": 3.997462161566037, "r": 0.48202904476805125 }, { "theta": 3.9982982817725317, "r": 0.47638639779070097 }, { "theta": 4.003762708257019, "r": 0.4794163117792301 }, { "theta": 4.004678458916787, "r": 0.4737763185301688 }, { "theta": 4.010132048875683, "r": 0.47682281824593925 }, { "theta": 4.011129057518413, "r": 0.4711857383240711 }, { "theta": 4.016570791000878, "r": 0.47424887980890373 }, { "theta": 4.017650704187987, "r": 0.46861498055439926 }, { "theta": 4.0230795325046085, "r": 0.4716948165922539 }, { "theta": 4.024244015238807, "r": 0.46606437323614425 }, { "theta": 4.029658860603826, "r": 0.46916095319197226 }, { "theta": 4.030909595678533, "r": 0.46353424900432116 }, { "theta": 4.0363093508751415, "r": 0.4666476186588762 }, { "theta": 4.037648038161137, "r": 0.4610249450951651 }, { "theta": 4.043031566232146, "r": 0.46415514647583084 }, { "theta": 4.044459921898867, "r": 0.4585368033211729 }, { "theta": 4.049826055865136, "r": 0.46168387452888154 }, { "theta": 4.051345811534003, "r": 0.45607017003965516 }, { "theta": 4.056693354143153, "r": 0.4592341450719883 }, { "theta": 4.058306255970329, "r": 0.4536253961144592 }, { "theta": 4.063633979478329, "r": 0.45680630468503824 }, { "theta": 4.065341787164367, "r": 0.4512028368705144 }, { "theta": 4.070648433152686, "r": 0.45440070422480644 }, { "theta": 4.0724529188765235, "r": 0.4488028520408488 }, { "theta": 4.077737198107663, "r": 0.45201769876853276 }, { "theta": 4.079640145382506, "r": 0.44642580570571855 }, { "theta": 4.084900737696757, "r": 0.4496576475497776 }, { "theta": 4.0869039401454605, "r": 0.4440720662234904 }, { "theta": 4.092139494401868, "r": 0.4473209138862166 }, { "theta": 4.094244754449503, "r": 0.4417420061529127 }, { "theta": 4.099453888514072, "r": 0.44500786509903395 }, { "theta": 4.101663015995481, "r": 0.43943600216641326 }, { "theta": 4.1068443167797195, "r": 0.4427188724235731 }, { "theta": 4.109159127460005, "r": 0.437154434954056 }, { "theta": 4.114311151012982, "r": 0.4404543109109048 }, { "theta": 4.11673346501898, "r": 0.43489768911779697 }, { "theta": 4.121854736676114, "r": 0.43821455931997516 }, { "theta": 4.124386376837122, "r": 0.4326661530556787 }, { "theta": 4.129475391428955, "r": 0.436 }, { "theta": 4.132118181525159, "r": 0.43046021883560853 }, { "theta": 4.137173403649411, "r": 0.4338110187627788 }, { "theta": 4.139929166566638, "r": 0.42828028205837354 }, { "theta": 4.144949030926841, "r": 0.4316480047446067 }, { "theta": 4.14781958671659, "r": 0.4261267417095529 }, { "theta": 4.152802498530597, "r": 0.4295113502574757 }, { "theta": 4.155789662374467, "r": 0.424 }, { "theta": 4.160733997856143, "r": 0.42740145062926493 }, { "theta": 4.163839577934162, "r": 0.4219004621945798 }, { "theta": 4.168743684851485, "r": 0.4253187040326348 }, { "theta": 4.171969480114106, "r": 0.41982853642886164 }, { "theta": 4.176831678426893, "r": 0.4232635113023564 }, { "theta": 4.180179476270811, "r": 0.41778463351348866 }, { "theta": 4.184998058851196, "r": 0.42123627574082456 }, { "theta": 4.188469632699491, "r": 0.41576916672596104 }, { "theta": 4.193242866138167, "r": 0.41923740291152456 }, { "theta": 4.19683997292571, "r": 0.41378255158960003 }, { "theta": 4.201566098426866, "r": 0.41726730042024623 }, { "theta": 4.205290475992353, "r": 0.41182520563948005 }, { "theta": 4.2099677103600595, "r": 0.41532637768386443 }, { "theta": 4.2138210747464715, "r": 0.40989754817515067 }, { "theta": 4.218447611465109, "r": 0.4134150456865352 }, { "theta": 4.222431654130961, "r": 0.408 }, { "theta": 4.227005664542091, "r": 0.4115337167231866 }, { "theta": 4.231122049486258, "r": 0.406132983147146 }, { "theta": 4.235641684064106, "r": 0.40968280413021974 }, { "theta": 4.239892044867625, "r": 0.4042969205917849 }, { "theta": 4.244355434595091, "r": 0.4078627220033721 }, { "theta": 4.2487413713838835, "r": 0.40249223594996214 }, { "theta": 4.253146629230694, "r": 0.40607388490273544 }, { "theta": 4.25766970556372, "r": 0.4007193531637822 }, { "theta": 4.262014928068059, "r": 0.40431670754496407 }, { "theta": 4.266676667756054, "r": 0.3989786961731165 }, { "theta": 4.270959936710603, "r": 0.4025916044827562 }, { "theta": 4.275761820571148, "r": 0.39727068857392434 }, { "theta": 4.279981204814152, "r": 0.4008989897717379 }, { "theta": 4.284924667369465, "r": 0.3955957532633534 }, { "theta": 4.28907822468097, "r": 0.39923927662493325 }, { "theta": 4.2941646508054605, "r": 0.39395431207184417 }, { "theta": 4.298250429908478, "r": 0.39761287705505716 }, { "theta": 4.303481151433765, "r": 0.39234678538252354 }, { "theta": 4.307497194099606, "r": 0.39602020150492323 }, { "theta": 4.312873486385315, "r": 0.390773591738234 }, { "theta": 4.316817829641883, "r": 0.39446165846632036 }, { "theta": 4.32234090812124, "r": 0.3892351474366106 }, { "theta": 4.3262115865624935, "r": 0.39293765408777 }, { "theta": 4.331882603272325, "r": 0.3877318661136843 }, { "theta": 4.335677651466627, "r": 0.39144859177163993 }, { "theta": 4.341497691572028, "r": 0.3862641583165593 }, { "theta": 4.345215146566471, "r": 0.3899948717611554 }, { "theta": 4.351185224891008, "r": 0.3848324310657822 }, { "theta": 4.354823128808259, "r": 0.38857689071791185 }, { "theta": 4.360944186381138, "r": 0.38343708740809096 }, { "theta": 4.364500589104694, "r": 0.387195041290562 }, { "theta": 4.370773489736883, "r": 0.38207852596030567 }, { "theta": 4.374246451680042, "r": 0.3858497116754139 }, { "theta": 4.380671978581841, "r": 0.38075714044519243 }, { "theta": 4.384059573535031, "r": 0.3845412851697461 }, { "theta": 4.3906384259880475, "r": 0.3794733192202055 }, { "theta": 4.393938744038534, "r": 0.38327013971871066 }, { "theta": 4.400671534135423, "r": 0.37822744480008325 }, { "theta": 4.4038826846527765, "r": 0.3820366474567591 }, { "theta": 4.41076993411845, "r": 0.3770198933743417 }, { "theta": 4.41389004879851, "r": 0.3808411742445924 }, { "theta": 4.420932185906823, "r": 0.3758510343207798 }, { "theta": 4.423959421866295, "r": 0.37968407920269714 }, { "theta": 4.431156778466395, "r": 0.37472122971617183 }, { "theta": 4.434089321379578, "r": 0.378565714242587 }, { "theta": 4.441442130046269, "r": 0.3736308338453881 }, { "theta": 4.444278197314863, "r": 0.37748642359692886 }, { "theta": 4.451786588637349, "r": 0.37258019271024057 }, { "theta": 4.454524432583693, "r": 0.37644654334978295 }, { "theta": 4.462188432607049, "r": 0.37156964353940436 }, { "theta": 4.46482634368067, "r": 0.37544640096823406 }, { "theta": 4.472645871514233, "r": 0.37059951430081506 }, { "theta": 4.4751821815010455, "r": 0.3744863148367374 }, { "theta": 4.480672139194239, "r": 0.3657758876689386 }, { "theta": 4.483157047107694, "r": 0.3696701232179847 }, { "theta": 4.491341917709671, "r": 0.36487806182339877 }, { "theta": 4.493720034510748, "r": 0.3687817782917155 }, { "theta": 4.502063106719632, "r": 0.3640219773585106 }, { "theta": 4.504332843593664, "r": 0.36793477682872006 }, { "theta": 4.512833596679402, "r": 0.3632079294288603 }, { "theta": 4.514993420534809, "r": 0.3671294049786805 }, { "theta": 4.523651212864556, "r": 0.3624362012823774 }, { "theta": 4.5256996495704405, "r": 0.3663659372812926 }, { "theta": 4.534513717378613, "r": 0.3617070637961056 }, { "theta": 4.536449354932162, "r": 0.36564463622484605 }, { "theta": 4.545418811359761, "r": 0.3610207750254824 }, { "theta": 4.547240302970063, "r": 0.3649657518178932 }, { "theta": 4.556364137383638, "r": 0.3603775797687753 }, { "theta": 4.558070204458571, "r": 0.3643295211755424 }, { "theta": 4.567347282058084, "r": 0.3597777091483017 }, { "theta": 4.568936717081031, "r": 0.36373616812189574 }, { "theta": 4.578365778804626, "r": 0.35922138021003147 }, { "theta": 4.579837448088016, "r": 0.36318590281011737 }, { "theta": 4.589417110820392, "r": 0.35870879554312574 }, { "theta": 4.590769957123343, "r": 0.3626789213615812 }, { "theta": 4.600498714213014, "r": 0.3582401429209183 }, { "theta": 4.601731759210794, "r": 0.3622154055254967 }, { "theta": 4.611607981300022, "r": 0.3578155949647807 }, { "theta": 4.612720327893528, "r": 0.36179552236035206 }, { "theta": 4.622742264063203, "r": 0.35743530883224167 }, { "theta": 4.623733098517253, "r": 0.36141942393844856 }, { "theta": 4.633898877747358, "r": 0.3570994259306503 }, { "theta": 4.634767471647296, "r": 0.3610872470747202 }, { "theta": 4.645075104591985, "r": 0.356808071657579 }, { "theta": 4.645820816608866, "r": 0.3607991130809498 }, { "theta": 4.646550211081996, "r": 0.3647903507495778 }, { "theta": 4.656890475138972, "r": 0.3605551275463989 }, { "theta": 4.657499117790536, "r": 0.3645490364820623 }, { "theta": 4.667973765137779, "r": 0.3603553801457667 }, { "theta": 4.6684612133078, "r": 0.36435147865762807 }, { "theta": 4.6790679845064425, "r": 0.36019994447528725 }, { "theta": 4.679433882770391, "r": 0.3641977484828812 }, { "theta": 4.69017041505797, "r": 0.3600888779176608 }, { "theta": 4.690414496088027, "r": 0.3640879014743555 }, { "theta": 4.701278326487082, "r": 0.36002222153639346 }, { "theta": 4.701400411701956, "r": 0.3640219773585106 }, { "theta": 4.71238898038469, "r": 0.36 }, { "theta": 4.71238898038469, "r": 0.364 }, { "theta": 4.72325811756196, "r": 0.368021738488367 }, { "theta": 4.723377549067424, "r": 0.3640219773585106 }, { "theta": 4.723499634282297, "r": 0.36002222153639346 }, { "theta": 4.734124687226482, "r": 0.3680869462504749 }, { "theta": 4.734363464681352, "r": 0.3640879014743555 }, { "theta": 4.744986125502643, "r": 0.3681956001909854 }, { "theta": 4.745344077998988, "r": 0.3641977484828812 }, { "theta": 4.75583987577622, "r": 0.3683476618630828 }, { "theta": 4.75631674746158, "r": 0.36435147865762807 }, { "theta": 4.766683392292996, "r": 0.3685430775363987 }, { "theta": 4.767278842978843, "r": 0.3645490364820623 }, { "theta": 4.776815819810244, "r": 0.3727733896082176 }, { "theta": 4.777514143719076, "r": 0.3687817782917155 }, { "theta": 4.7875161362954515, "r": 0.37305227515724926 }, { "theta": 4.788329616650584, "r": 0.369063680142059 }, { "theta": 4.798199245081192, "r": 0.37337380732986614 }, { "theta": 4.799127319060675, "r": 0.3693886841796863 }, { "theta": 4.8078426947174036, "r": 0.37771947262485683 }, { "theta": 4.808862755567277, "r": 0.3737378760575385 }, { "theta": 4.809904783672236, "r": 0.36975667674837187 }, { "theta": 4.81837333837429, "r": 0.37812167353908716 }, { "theta": 4.819504303736921, "r": 0.3741443571671234 }, { "theta": 4.82888044107934, "r": 0.378565714242587 }, { "theta": 4.830121555188783, "r": 0.37459311259018097 }, { "theta": 4.839361769998769, "r": 0.3790514476954283 }, { "theta": 4.840712208070484, "r": 0.3750839905941068 }, { "theta": 4.848386398422074, "r": 0.3835413928117798 }, { "theta": 4.849815125881633, "r": 0.3795787138394354 }, { "theta": 4.8512739959049025, "r": 0.3756168260341914 }, { "theta": 4.85870426838972, "r": 0.3841041525419896 }, { "theta": 4.860238345643445, "r": 0.3801473398565351 }, { "theta": 4.868990857366705, "r": 0.3847076812334269 }, { "theta": 4.870629304835569, "r": 0.38075714044519243 }, { "theta": 4.877537657799317, "r": 0.38929680193908606 }, { "theta": 4.879244140784479, "r": 0.3853517873320429 }, { "theta": 4.880985919994119, "r": 0.38140791811392694 }, { "theta": 4.8876553563877705, "r": 0.3899743581314033 }, { "theta": 4.889462135163565, "r": 0.3860362677262332 }, { "theta": 4.897736930380384, "r": 0.39069169430639294 }, { "theta": 4.899642900118173, "r": 0.38676090805561 }, { "theta": 4.905816307095537, "r": 0.39537324138085017 }, { "theta": 4.907780534901263, "r": 0.39144859177163993 }, { "theta": 4.90978454023457, "r": 0.3875254830330517 }, { "theta": 4.915725064412966, "r": 0.3961615831955441 }, { "theta": 4.917784369574457, "r": 0.3922448215082004 }, { "theta": 4.925593499774144, "r": 0.3969886648255842 }, { "theta": 4.927746680082428, "r": 0.3930801444998208 }, { "theta": 4.933217750114038, "r": 0.401756144943671 }, { "theta": 4.935419948756248, "r": 0.39785424466756664 }, { "theta": 4.937665759598745, "r": 0.39395431207184417 }, { "theta": 4.942910819428058, "r": 0.40265121383152447 }, { "theta": 4.945202793491424, "r": 0.3987580720186113 }, { "theta": 4.952559988244863, "r": 0.40358394418014204 }, { "theta": 4.95494046381188, "r": 0.3996998874155458 }, { "theta": 4.9597429359565135, "r": 0.408431144747802 }, { "theta": 4.962163769805938, "r": 0.40455407549547684 }, { "theta": 4.964631438274508, "r": 0.4006794229805169 }, { "theta": 4.969215430354497, "r": 0.4094288705013363 }, { "theta": 4.971720724785374, "r": 0.4055613393803704 }, { "theta": 4.978641029535615, "r": 0.4104631530356897 }, { "theta": 4.981229462063668, "r": 0.40660545987480295 }, { "theta": 4.9853976834714, "r": 0.41538415954390945 }, { "theta": 4.988018418766821, "r": 0.4115337167231866 }, { "theta": 4.990688639389801, "r": 0.407686153799709 }, { "theta": 4.994646402366181, "r": 0.4164804917400094 }, { "theta": 4.997346330634844, "r": 0.4126402791778815 }, { "theta": 5.003845774862556, "r": 0.41761226035642196 }, { "theta": 5.006623545495877, "r": 0.41378255158960003 }, { "theta": 5.010192017859124, "r": 0.42260146710583013 }, { "theta": 5.0129946504270855, "r": 0.4187791780879274 }, { "theta": 5.015848891824511, "r": 0.41496023905911755 }, { "theta": 5.019215269791247, "r": 0.4237924020083418 }, { "theta": 5.022091924927146, "r": 0.419980951949014 }, { "theta": 5.02818722412674, "r": 0.42501764669246384 }, { "theta": 5.031136540805334, "r": 0.4212172835960082 }, { "theta": 5.034139534781332, "r": 0.43006976178289963 }, { "theta": 5.037106885122407, "r": 0.4262769053092133 }, { "theta": 5.040127487165245, "r": 0.42248786964834856 }, { "theta": 5.042936961775112, "r": 0.4313513648987331 }, { "theta": 5.045973301884483, "r": 0.42756987733001023 }, { "theta": 5.051681594838734, "r": 0.4326661530556787 }, { "theta": 5.05478556831555, "r": 0.428896257852642 }, { "theta": 5.057256803165625, "r": 0.4377761985307104 }, { "theta": 5.060372582556523, "r": 0.4340138246646067 }, { "theta": 5.063542822985337, "r": 0.43025573790479543 }, { "theta": 5.0658292107363625, "r": 0.4391446231026858 }, { "theta": 5.0690091163361215, "r": 0.4353940743740089 }, { "theta": 5.074347737622419, "r": 0.44054511687226766 }, { "theta": 5.0775904301728625, "r": 0.43680659335683114 }, { "theta": 5.079562814202909, "r": 0.4457084248698918 }, { "theta": 5.082811665670265, "r": 0.4419773749865484 }, { "theta": 5.086115800350243, "r": 0.4382510695936748 }, { "theta": 5.087912010044883, "r": 0.4471599266481736 }, { "theta": 5.091220317187597, "r": 0.44344108966129875 }, { "theta": 5.0962066036732585, "r": 0.4486423965699185 }, { "theta": 5.0995730545660125, "r": 0.44493595044680306 }, { "theta": 5.101078480890925, "r": 0.4538546022681713 }, { "theta": 5.104445998899957, "r": 0.4501555286787001 }, { "theta": 5.107869279851286, "r": 0.4464616444891991 }, { "theta": 5.109207124335243, "r": 0.45538555093458993 }, { "theta": 5.112629637418664, "r": 0.4516990148317793 }, { "theta": 5.117280766669773, "r": 0.45694638635183454 }, { "theta": 5.120756998321921, "r": 0.4532725449439884 }, { "theta": 5.121826189910832, "r": 0.46220341842093726 }, { "theta": 5.125298922440035, "r": 0.4585368033211729 }, { "theta": 5.128827597576281, "r": 0.45487580722654397 }, { "theta": 5.129737653445172, "r": 0.46381030605194623 }, { "theta": 5.133261141375204, "r": 0.46015649511878026 }, { "theta": 5.137593999364308, "r": 0.4654460226492434 }, { "theta": 5.141167007830706, "r": 0.46180515371745257 }, { "theta": 5.1418294056141525, "r": 0.4707440918375928 }, { "theta": 5.145394842008317, "r": 0.4671102653549802 }, { "theta": 5.149016140198231, "r": 0.46348247000291176 }, { "theta": 5.149527649105027, "r": 0.472423538786966 }, { "theta": 5.153139828164112, "r": 0.4688027303674756 }, { "theta": 5.157170903363825, "r": 0.47413078364518796 }, { "theta": 5.160828636459758, "r": 0.47052311314110806 }, { "theta": 5.161112324395411, "r": 0.4794663700406943 }, { "theta": 5.1647588720471, "r": 0.4758655272238156 }, { "theta": 5.1684609767343, "r": 0.47227110858065413 }, { "theta": 5.168601782140298, "r": 0.48121512860673865 }, { "theta": 5.17229128854566, "r": 0.47762746989678057 }, { "theta": 5.176036589385496, "r": 0.4829906831399546 }, { "theta": 5.1796995766657306, "r": 0.4883605225650411 }, { "theta": 5.179767915352155, "r": 0.4794163117792301 }, { "theta": 5.183416529204169, "r": 0.4847927392195555 }, { "theta": 5.186985057013594, "r": 0.4901754787828539 }, { "theta": 5.187188543411111, "r": 0.4812317529008243 }, { "theta": 5.190741411763348, "r": 0.4866210024238576 }, { "theta": 5.194216404458475, "r": 0.49201625989391856 }, { "theta": 5.1976159729520255, "r": 0.49741732981471404 }, { "theta": 5.198011073682158, "r": 0.4884751784891429 }, { "theta": 5.201393472243593, "r": 0.49388257713752165 }, { "theta": 5.2047025699497755, "r": 0.499295503684942 }, { "theta": 5.205225377378291, "r": 0.4903549734631026 }, { "theta": 5.208516138172996, "r": 0.4957741421252222 }, { "theta": 5.21173570206482, "r": 0.5011985634456667 }, { "theta": 5.215584303974055, "r": 0.4976906669810074 }, { "theta": 5.218715284158312, "r": 0.503126226706579 }, { "theta": 5.221779306585699, "r": 0.5085666131393212 }, { "theta": 5.222597894652967, "r": 0.49963186447623614 }, { "theta": 5.22564125325095, "r": 0.5050782117652671 }, { "theta": 5.228619650996437, "r": 0.5105291372683836 }, { "theta": 5.229556857844811, "r": 0.5015974481593781 }, { "theta": 5.23251356790016, "r": 0.507054237730048 }, { "theta": 5.235407292122108, "r": 0.5125153656233148 }, { "theta": 5.238239974998745, "r": 0.5179806946209482 }, { "theta": 5.239332207574119, "r": 0.5090540246378571 }, { "theta": 5.242142218504203, "r": 0.5145250236868951 }, { "theta": 5.244893078686541, "r": 0.52 }, { "theta": 5.246097172023951, "r": 0.5110772935672255 }, { "theta": 5.2488244379894216, "r": 0.5165578380007412 }, { "theta": 5.251494420964846, "r": 0.522042143892617 }, { "theta": 5.2554539771291235, "r": 0.5186135362676142 }, { "theta": 5.2580440349116815, "r": 0.5241068593330943 }, { "theta": 5.260580344898494, "r": 0.5296036253652349 }, { "theta": 5.2620308805797364, "r": 0.5206918474491415 }, { "theta": 5.2645419708401935, "r": 0.5261938806181615 }, { "theta": 5.267001076028542, "r": 0.5316991630612183 }, { "theta": 5.268555210505143, "r": 0.5227925018590072 }, { "theta": 5.270988295728252, "r": 0.5283029433951698 }, { "theta": 5.273371134744993, "r": 0.5338164478545037 }, { "theta": 5.275705241876658, "r": 0.5393329213018616 }, { "theta": 5.277383092651164, "r": 0.5304337847460322 }, { "theta": 5.279690607691128, "r": 0.5359552220101974 }, { "theta": 5.281951051520034, "r": 0.5414794548272354 }, { "theta": 5.2837264602183165, "r": 0.5325861432669836 }, { "theta": 5.285959596300721, "r": 0.5381152292957336 }, { "theta": 5.288147297907925, "r": 0.5436469442570242 }, { "theta": 5.292178216265486, "r": 0.540296215052447 }, { "theta": 5.294294098524576, "r": 0.5458351399461197 }, { "theta": 5.296367460784818, "r": 0.5513764594177013 }, { "theta": 5.298346597007903, "r": 0.5424979262633176 }, { "theta": 5.300391583932257, "r": 0.5480437938705264 }, { "theta": 5.302395589265565, "r": 0.5535919074553024 }, { "theta": 5.306439897274629, "r": 0.5502726596879042 }, { "theta": 5.3083754462281245, "r": 0.5558273113117059 }, { "theta": 5.312439193786443, "r": 0.5525214927946243 }, { "theta": 5.314307186632397, "r": 0.558082431187365 }, { "theta": 5.316138313782126, "r": 0.5636452785218732 }, { "theta": 5.318389640310084, "r": 0.5547900503794205 }, { "theta": 5.32019097649865, "r": 0.5603570290448759 }, { "theta": 5.321956867700416, "r": 0.5659257901880776 }, { "theta": 5.324291414819356, "r": 0.5570780914737179 }, { "theta": 5.326026992453935, "r": 0.5626508686565764 }, { "theta": 5.327728522190082, "r": 0.5682253074265524 }, { "theta": 5.3318154212858655, "r": 0.5649637156490671 }, { "theta": 5.333453462112086, "r": 0.5705436004373373 }, { "theta": 5.335059769141758, "r": 0.5761249864395747 }, { "theta": 5.337556459504076, "r": 0.5672953375447396 }, { "theta": 5.339131881595737, "r": 0.5728804412789811 }, { "theta": 5.340676878435177, "r": 0.5784669394183214 }, { "theta": 5.343250312909628, "r": 0.5696455038003898 }, { "theta": 5.344763983628587, "r": 0.5752356039050434 }, { "theta": 5.34624851467097, "r": 0.5808269966177536 }, { "theta": 5.3503499796542, "r": 0.5776088641979102 }, { "theta": 5.351774886070863, "r": 0.5832049382506976 }, { "theta": 5.355890089177974, "r": 0.58 }, { "theta": 5.357256208546698, "r": 0.5856005464478324 }, { "theta": 5.3585964425164025, "r": 0.5912021650839923 }, { "theta": 5.3613845393811905, "r": 0.5824087911424415 }, { "theta": 5.362692705332783, "r": 0.5880136052847758 }, { "theta": 5.363976166307547, "r": 0.5936194066908528 }, { "theta": 5.366833564743452, "r": 0.5848350194713036 }, { "theta": 5.368084606626226, "r": 0.5904439008068421 }, { "theta": 5.369312101918066, "r": 0.5960536888569686 }, { "theta": 5.373432149235377, "r": 0.5928912210515517 }, { "theta": 5.374604481640862, "r": 0.5985048036565788 }, { "theta": 5.378735576236454, "r": 0.5953553560689615 }, { "theta": 5.379853543752086, "r": 0.6009725451299752 }, { "theta": 5.38399513663843, "r": 0.5978360979398952 }, { "theta": 5.385059532191761, "r": 0.6034567093006755 }, { "theta": 5.386104281942238, "r": 0.609077991721914 }, { "theta": 5.389211085056221, "r": 0.6003332407921453 }, { "theta": 5.39022269625231, "r": 0.6059570941906696 }, { "theta": 5.39121570171126, "r": 0.6115815562948248 }, { "theta": 5.395343290275013, "r": 0.6084734998338054 }, { "theta": 5.396285312776184, "r": 0.6141009688968094 }, { "theta": 5.4004215733543965, "r": 0.6110057282873869 }, { "theta": 5.401313368599551, "r": 0.6166360352752668 }, { "theta": 5.405457809050539, "r": 0.6135535836420484 }, { "theta": 5.40630012691063, "r": 0.6191865631617016 }, { "theta": 5.4071272565813935, "r": 0.6248199740725323 }, { "theta": 5.410452265109306, "r": 0.6161168720299744 }, { "theta": 5.411245849438578, "r": 0.6217523622793886 }, { "theta": 5.412025176598276, "r": 0.627388237059 }, { "theta": 5.415405213190447, "r": 0.6186954016315299 }, { "theta": 5.4161508016530675, "r": 0.6243332443495221 }, { "theta": 5.416883044626907, "r": 0.629971427923521 }, { "theta": 5.42101525251236, "r": 0.6269290230959164 }, { "theta": 5.421701123461053, "r": 0.6325693637855061 }, { "theta": 5.425839474218757, "r": 0.6295395142483116 }, { "theta": 5.426479678996848, "r": 0.6351818637209347 }, { "theta": 5.430623741981375, "r": 0.632164535544347 }, { "theta": 5.431218980006314, "r": 0.6378087487640789 }, { "theta": 5.435368333786181, "r": 0.6348039067302595 }, { "theta": 5.435919297917758, "r": 0.6404498419080139 }, { "theta": 5.440073530173173, "r": 0.6374574495603609 }, { "theta": 5.440580906602977, "r": 0.6431049681039636 }, { "theta": 5.444739614020667, "r": 0.6401249877953523 }, { "theta": 5.4452040821711964, "r": 0.6457739542595381 }, { "theta": 5.445660494736492, "r": 0.6514230576207753 }, { "theta": 5.449366870336563, "r": 0.6428063471995279 }, { "theta": 5.449789102769632, "r": 0.6484566292359112 }, { "theta": 5.450204040505154, "r": 0.6541070248820142 }, { "theta": 5.4539555860565, "r": 0.645501355536919 }, { "theta": 5.454336248390607, "r": 0.6511528238439882 }, { "theta": 5.454710359858376, "r": 0.6568043848818308 }, { "theta": 5.458845800685099, "r": 0.6538623708396133 }, { "theta": 5.4591797276539875, "r": 0.6595149732947692 }, { "theta": 5.46331804278263, "r": 0.6565851049178622 }, { "theta": 5.463612420165942, "r": 0.6622386276864254 }, { "theta": 5.467753259117388, "r": 0.6593208627064671 }, { "theta": 5.468008714917977, "r": 0.6649751875070227 }, { "theta": 5.472151735260461, "r": 0.6620694827584186 }, { "theta": 5.472368890523063, "r": 0.6677244940841993 }, { "theta": 5.476513757758077, "r": 0.6648308055437865 }, { "theta": 5.4766932265285835, "r": 0.670486390615052 }, { "theta": 5.480839613975733, "r": 0.6676046734408021 }, { "theta": 5.480982003267096, "r": 0.6732607221574715 }, { "theta": 5.485129591948086, "r": 0.6703909307262442 }, { "theta": 5.4852355017125705, "r": 0.6760473356208129 }, { "theta": 5.489383980234491, "r": 0.6731894235651656 }, { "theta": 5.4894540033420025, "r": 0.678846079755934 }, { "theta": 5.493603067780063, "r": 0.676 }, { "theta": 5.493637790002271, "r": 0.6816568051446417 }, { "theta": 5.497787143782138, "r": 0.6844793641885779 }, { "theta": 5.497787143782138, "r": 0.6788225099390857 }, { "theta": 5.501902346889249, "r": 0.6873136110975834 }, { "theta": 5.501936497562005, "r": 0.6816568051446417 }, { "theta": 5.505983681532051, "r": 0.6901594018775662 }, { "theta": 5.506051418441789, "r": 0.6845027392202313 }, { "theta": 5.510031429806469, "r": 0.6930165943179138 }, { "theta": 5.510132195626363, "r": 0.687360167597745 }, { "theta": 5.514045873587268, "r": 0.6958850479784718 }, { "theta": 5.514179118090143, "r": 0.6902289475239357 }, { "theta": 5.518027294423928, "r": 0.6987646241761242 }, { "theta": 5.518192474468677, "r": 0.6931089380465383 }, { "theta": 5.521975973440974, "r": 0.701655185971001 }, { "theta": 5.522172552954856, "r": 0.696 }, { "theta": 5.525892191242594, "r": 0.7045565981523415 }, { "theta": 5.529776227821453, "r": 0.7074687272240379 }, { "theta": 5.53362836247159, "r": 0.7103914413898862 }, { "theta": 5.537448873705266, "r": 0.7133246105385682 }, { "theta": 5.541238039173669, "r": 0.7162681062283871 }, { "theta": 5.544996135591353, "r": 0.7192218016717792 }, { "theta": 5.548723438664298, "r": 0.7221855717196239 }, { "theta": 5.552420223021498, "r": 0.725159292845372 }, { "theta": 5.556086762149947, "r": 0.7281428431290113 }, { "theta": 5.559723328332942, "r": 0.7311361022408892 }, { "theta": 5.563330192591572, "r": 0.7341389514254096 }, { "theta": 5.56690762462932, "r": 0.7371512734846221 }, { "theta": 5.5704558927796555, "r": 0.7401729527617177 }, { "theta": 5.573975263956526, "r": 0.7432038751244506 }, { "theta": 5.577466003607661, "r": 0.746243927948496 }, { "theta": 5.580928375670579, "r": 0.7492930001007617 }, { "theta": 5.584362642531212, "r": 0.7523509819226661 }, { "theta": 5.587769064985061, "r": 0.755417765213395 }, { "theta": 5.591147902200791, "r": 0.7584932432131481 }, { "theta": 5.594499411686176, "r": 0.7615773105863908 }, { "theta": 5.597823849256313, "r": 0.7646698634051168 }, { "theta": 5.601121469004033, "r": 0.7677707991321369 }, { "theta": 5.604392523272402, "r": 0.7708800166044 }, { "theta": 5.607637262629268, "r": 0.7739974160163585 }, { "theta": 5.6108559358437535, "r": 0.7771228989033846 }, { "theta": 5.614048789864624, "r": 0.7802563681252463 }, { "theta": 5.6172160698004765, "r": 0.7833977278496537 }, { "theta": 5.620358018901651, "r": 0.7865468835358768 }, { "theta": 5.623474878543828, "r": 0.7897037419184488 }, { "theta": 5.62656688821321, "r": 0.7928682109909565 }, { "theta": 5.6296342854932675, "r": 0.7960401999899251 }, { "theta": 5.632677306052937, "r": 0.7992196193788038 }, { "theta": 5.63363588504393, "r": 0.7936145159962739 }, { "theta": 5.635696183636257, "r": 0.802406380832057 }, { "theta": 5.636672159302352, "r": 0.7968036144496334 }, { "theta": 5.638691150053347, "r": 0.8056003972193658 }, { "theta": 5.639684198386302, "r": 0.8 }, { "theta": 5.641662435172703, "r": 0.8088015825899453 }, { "theta": 5.642672237302256, "r": 0.803203585649367 }, { "theta": 5.644610266914725, "r": 0.8120098521569797 }, { "theta": 5.6456365090408935, "r": 0.8064142855877492 }, { "theta": 5.647534871246446, "r": 0.8152251222821828 }, { "theta": 5.648577244572011, "r": 0.8096320151772656 }, { "theta": 5.650436472177404, "r": 0.8184473104604841 }, { "theta": 5.651494672840617, "r": 0.8128566909363544 }, { "theta": 5.653315291756599, "r": 0.821676335304845 }, { "theta": 5.654389020764153, "r": 0.8160882305241266 }, { "theta": 5.656171550070504, "r": 0.8249121165312097 }, { "theta": 5.657260513230797, "r": 0.8193265527248583 }, { "theta": 5.659005465242057, "r": 0.8281545749435911 }, { "theta": 5.660109373098793, "r": 0.8225715774326268 }, { "theta": 5.661817253430618, "r": 0.831403632419296 }, { "theta": 5.662935821196765, "r": 0.8258232256360921 }, { "theta": 5.664607128832826, "r": 0.8346592118942916 }, { "theta": 5.6657400763249655, "r": 0.8290814194034263 }, { "theta": 5.668522355257421, "r": 0.8323460818673926 }, { "theta": 5.67128287274492, "r": 0.8356171372105768 }, { "theta": 5.672459342790377, "r": 0.8300457818698919 }, { "theta": 5.6740218415188135, "r": 0.8388945106507731 }, { "theta": 5.6752119901832865, "r": 0.8333258666332157 }, { "theta": 5.676739472295587, "r": 0.8421781284265223 }, { "theta": 5.677943032437489, "r": 0.8366122160236485 }, { "theta": 5.67943597378215, "r": 0.8454679177828097 }, { "theta": 5.680652682658567, "r": 0.8399047565051646 }, { "theta": 5.682111552681837, "r": 0.8487638069569178 }, { "theta": 5.683341151883303, "r": 0.8432034155528546 }, { "theta": 5.686008649086909, "r": 0.8465081216385346 }, { "theta": 5.688655381190895, "r": 0.8498188042165223 }, { "theta": 5.689926510250713, "r": 0.8442653611276493 }, { "theta": 5.691281553071539, "r": 0.8531353937095799 }, { "theta": 5.692564908564702, "r": 0.8475848040166836 }, { "theta": 5.693887367568934, "r": 0.8564578214950226 }, { "theta": 5.695182703632019, "r": 0.8509101010095015 }, { "theta": 5.696473025496564, "r": 0.8597860198909959 }, { "theta": 5.69778010038832, "r": 0.8542411837414537 }, { "theta": 5.699038725651401, "r": 0.8631199221429198 }, { "theta": 5.700357301688918, "r": 0.8575779847920537 }, { "theta": 5.702914508320054, "r": 0.8609204376712171 }, { "theta": 5.7054519190106205, "r": 0.864268476805674 }, { "theta": 5.706810086588403, "r": 0.8587339518151125 }, { "theta": 5.707969730444308, "r": 0.8676220375255576 }, { "theta": 5.7093387721148705, "r": 0.8620904824900922 }, { "theta": 5.710468137272167, "r": 0.8709810560511635 }, { "theta": 5.711847827345959, "r": 0.8654524828088483 }, { "theta": 5.7143374487582275, "r": 0.8688198892751017 }, { "theta": 5.716807830760111, "r": 0.8721926392718526 }, { "theta": 5.7182259993123745, "r": 0.8666717948566228 }, { "theta": 5.719259165706312, "r": 0.875570671048317 }, { "theta": 5.720687376110513, "r": 0.8700528719566415 }, { "theta": 5.723129682185945, "r": 0.8734391793364894 }, { "theta": 5.725553109522898, "r": 0.8768306563983721 }, { "theta": 5.727019077059133, "r": 0.8713208364316786 }, { "theta": 5.727957848036095, "r": 0.8802272433866154 }, { "theta": 5.729433263614856, "r": 0.8747205267969879 }, { "theta": 5.730344085587047, "r": 0.8836288813749809 }, { "theta": 5.731828743024753, "r": 0.8781252758006685 }, { "theta": 5.734205704712577, "r": 0.8815350248288494 }, { "theta": 5.73656433602185, "r": 0.884949716085609 }, { "theta": 5.7380856538729095, "r": 0.8794543763038536 }, { "theta": 5.738904822233606, "r": 0.8883692925805123 }, { "theta": 5.7404348087998756, "r": 0.8828771148919876 }, { "theta": 5.742765806909002, "r": 0.8863046880164857 }, { "theta": 5.7450788328534195, "r": 0.8897370398044582 }, { "theta": 5.746644763404582, "r": 0.884253357358625 }, { "theta": 5.747374069219123, "r": 0.893174115164563 }, { "theta": 5.748948108359906, "r": 0.8876936408468858 }, { "theta": 5.75123365685689, "r": 0.8911385975256598 }, { "theta": 5.753501590750729, "r": 0.8945881734071829 }, { "theta": 5.755110858753227, "r": 0.8891164153247875 }, { "theta": 5.757368919431519, "r": 0.8925738064720474 }, { "theta": 5.7596095430575724, "r": 0.8960357135739624 }, { "theta": 5.7612536848170555, "r": 0.8905728493503493 }, { "theta": 5.761832908592334, "r": 0.8995020844889688 }, { "theta": 5.763484254033314, "r": 0.8940425045824164 }, { "theta": 5.765697566205478, "r": 0.8975165736631273 }, { "theta": 5.7678937993930415, "r": 0.9009950055355468 }, { "theta": 5.769579302456838, "r": 0.8955445270895244 }, { "theta": 5.770073129577189, "r": 0.9044777498645281 }, { "theta": 5.771765308513749, "r": 0.8990305890235326 }, { "theta": 5.773934416959129, "r": 0.9025209138851021 }, { "theta": 5.77565371489748, "r": 0.8970797066035995 }, { "theta": 5.776086802787249, "r": 0.9060154524068561 }, { "theta": 5.777812426613664, "r": 0.9005775924372093 }, { "theta": 5.779954424241684, "r": 0.9040796425094417 }, { "theta": 5.782079881720021, "r": 0.9075858086153618 }, { "theta": 5.783838585499456, "r": 0.9021574142022001 }, { "theta": 5.785953492462563, "r": 0.9056710219500235 }, { "theta": 5.788052043711183, "r": 0.9091886492912238 }, { "theta": 5.7898434585718705, "r": 0.9037698822156003 }, { "theta": 5.791931301154669, "r": 0.9072948803999723 }, { "theta": 5.794002974312421, "r": 0.910823802938856 }, { "theta": 5.795826727674396, "r": 0.9054148220567189 }, { "theta": 5.79788753819507, "r": 0.9089510437861876 }, { "theta": 5.799932367321576, "r": 0.9124910958469677 }, { "theta": 5.801788083122283, "r": 0.9070920570702843 }, { "theta": 5.80382189983109, "r": 0.9106393358514665 }, { "theta": 5.805839924805914, "r": 0.9141903521696124 }, { "theta": 5.807727223724465, "r": 0.9088014084496129 }, { "theta": 5.809734090699484, "r": 0.9123595782365634 }, { "theta": 5.811725357118679, "r": 0.9159213940071494 }, { "theta": 5.813643856798518, "r": 0.9105426953196648 }, { "theta": 5.81562382383883, "r": 0.9141115905621151 }, { "theta": 5.817588382909015, "r": 0.9176840414870469 }, { "theta": 5.81953769817878, "r": 0.9123157348199141 }, { "theta": 5.821490820695259, "r": 0.9158951905103553 }, { "theta": 5.823428729125425, "r": 0.9194781128444548 }, { "theta": 5.825408472217788, "r": 0.9141203421869574 }, { "theta": 5.827334811121687, "r": 0.9177101939065514 }, { "theta": 5.829246131012889, "r": 0.9213034245024817 }, { "theta": 5.831255911781174, "r": 0.9159563308367926 }, { "theta": 5.833155533370676, "r": 0.9195564148000926 }, { "theta": 5.835040332103796, "r": 0.923159791152106 }, { "theta": 5.83519199662072, "r": 0.9142166045308957 }, { "theta": 5.837079758236182, "r": 0.9178235124467012 }, { "theta": 5.838952734081099, "r": 0.9214336655451656 }, { "theta": 5.841018768519689, "r": 0.9161047974986268 }, { "theta": 5.842879761433963, "r": 0.9197216970366634 }, { "theta": 5.844726168258747, "r": 0.9233417568809503 }, { "theta": 5.846821374525009, "r": 0.9180239648288055 }, { "theta": 5.84865567968582, "r": 0.9216506930502467 }, { "theta": 5.850475599251074, "r": 0.9252804980112788 }, { "theta": 5.852599576358609, "r": 0.919973912673615 }, { "theta": 5.85440727973357, "r": 0.9236103074349051 }, { "theta": 5.85655781405271, "r": 0.9183114939931875 }, { "theta": 5.858353144260244, "r": 0.9219544457292888 }, { "theta": 5.8601343367142205, "r": 0.9256003457216294 }, { "theta": 5.862313146189073, "r": 0.9203129902375605 }, { "theta": 5.864081856947713, "r": 0.9239653673163296 }, { "theta": 5.8662872367696925, "r": 0.9186860181803139 }, { "theta": 5.868043310419164, "r": 0.9223448378995787 }, { "theta": 5.869785501571593, "r": 0.9260064794589723 }, { "theta": 5.872018646035354, "r": 0.9207388337634077 }, { "theta": 5.8737480976534435, "r": 0.9244068368418745 }, { "theta": 5.876007810589339, "r": 0.919147431046837 }, { "theta": 5.877724368992384, "r": 0.9228217596047462 }, { "theta": 5.879427307256758, "r": 0.9264987857520375 }, { "theta": 5.881714260117461, "r": 0.9212513229298507 }, { "theta": 5.88340420893679, "r": 0.9249345922820705 }, { "theta": 5.885717713442592, "r": 0.9196956018161662 }, { "theta": 5.887394521035084, "r": 0.9233850767691667 }, { "theta": 5.889057977624615, "r": 0.927077127320052 }, { "theta": 5.891398183784231, "r": 0.9218503132287801 }, { "theta": 5.89304840919244, "r": 0.9255484860340921 }, { "theta": 5.895415135304267, "r": 0.9203303754630725 }, { "theta": 5.8970519798095715, "r": 0.9240346313856423 }, { "theta": 5.8994453115884244, "r": 0.918825337047254 }, { "theta": 5.901068625500974, "r": 0.9225356361680561 }, { "theta": 5.902678930067221, "r": 0.9262483468271347 }, { "theta": 5.9050982801855625, "r": 0.9210515729317224 }, { "theta": 5.906694972733064, "r": 0.9247702417357514 }, { "theta": 5.9091408756636525, "r": 0.9195825139703343 }, { "theta": 5.91072380880052, "r": 0.9233070995069842 }, { "theta": 5.913196341605006, "r": 0.9181285313070279 }, { "theta": 5.914765368087339, "r": 0.9218589913864267 }, { "theta": 5.916321743286254, "r": 0.9255917026421531 }, { "theta": 5.918819578304777, "r": 0.9204259883336628 }, { "theta": 5.92036197419249, "r": 0.9241644875237308 }, { "theta": 5.922886365047382, "r": 0.9190081610083776 }, { "theta": 5.924414636909014, "r": 0.9227524044942934 }, { "theta": 5.926965651783436, "r": 0.9176055797563569 }, { "theta": 5.928479655168646, "r": 0.92135552312883 }, { "theta": 5.931057359846049, "r": 0.9162183145953806 }, { "theta": 5.932556950605189, "r": 0.919973912673615 }, { "theta": 5.935161408424925, "r": 0.9148464352010124 }, { "theta": 5.936646442745644, "r": 0.9186076420322226 }, { "theta": 5.938119362595957, "r": 0.9223708581693157 }, { "theta": 5.9407480490030995, "r": 0.9172567797514499 }, { "theta": 5.942206353683237, "r": 0.9210255153903175 }, { "theta": 5.944861684670327, "r": 0.9159213940071494 }, { "theta": 5.9463052332801425, "r": 0.9196956018161662 }, { "theta": 5.948987262914083, "r": 0.914601552589979 }, { "theta": 5.95041591500799, "r": 0.9183811844762501 }, { "theta": 5.953124694770152, "r": 0.9132973228910726 }, { "theta": 5.954538310394596, "r": 0.9170823300009656 }, { "theta": 5.957273889139125, "r": 0.9120087718876392 }, { "theta": 5.958672328870412, "r": 0.9157991046075552 }, { "theta": 5.961434752782944, "r": 0.9107359661284933 }, { "theta": 5.962817877765408, "r": 0.9145315740858814 }, { "theta": 5.965607190322228, "r": 0.9094789717195225 }, { "theta": 5.966974862306718, "r": 0.9132798037841414 }, { "theta": 5.96979110423438, "r": 0.9082378543091012 }, { "theta": 5.971143185617053, "r": 0.9120438585945305 }, { "theta": 5.975322748713911, "r": 0.910823802938856 }, { "theta": 5.976647963525741, "r": 0.9146365398342666 }, { "theta": 5.979513450509586, "r": 0.9096197007541118 }, { "theta": 5.980822904796783, "r": 0.9134374636503585 }, { "theta": 5.983715187811991, "r": 0.9084316154780172 }, { "theta": 5.985008748245038, "r": 0.9122543504966145 }, { "theta": 5.98792785532631, "r": 0.9072596100345258 }, { "theta": 5.989205389376365, "r": 0.911087262560508 }, { "theta": 5.992151345657493, "r": 0.9061037468193143 }, { "theta": 5.993412721635581, "r": 0.9099362615040681 }, { "theta": 5.996385549313597, "r": 0.9049640876852517 }, { "theta": 5.997630636409978, "r": 0.9088014084496129 }, { "theta": 6.000630354709999, "r": 0.9038406939278625 }, { "theta": 6.001859023033702, "r": 0.9076827639654726 }, { "theta": 6.004885648174475, "r": 0.9027336262707842 }, { "theta": 6.006097768792966, "r": 0.906580388051716 }, { "theta": 6.007945614144082, "r": 0.8977928491584237 }, { "theta": 6.00915131395317, "r": 0.9016429448512311 }, { "theta": 6.012238456841166, "r": 0.8967140012289314 }, { "theta": 6.013427234217457, "r": 0.9005687092054665 }, { "theta": 6.016541562004823, "r": 0.8956517180243669 }, { "theta": 6.017713289071706, "r": 0.8995109782542956 }, { "theta": 6.020854806553421, "r": 0.8946060585531488 }, { "theta": 6.022009356561959, "r": 0.8984698102885817 }, { "theta": 6.023154017597454, "r": 0.9023347494139855 }, { "theta": 6.02631531268553, "r": 0.8974452629547943 }, { "theta": 6.027442797125186, "r": 0.9013145954659781 }, { "theta": 6.028560640985045, "r": 0.9051850639510133 }, { "theta": 6.031741216901569, "r": 0.9003110573574002 }, { "theta": 6.032841888653323, "r": 0.9041858216096955 }, { "theta": 6.033933165794373, "r": 0.9080616719144136 }, { "theta": 6.037132530609728, "r": 0.9032031886569045 }, { "theta": 6.038206644052722, "r": 0.9070832376358853 }, { "theta": 6.03927160637642, "r": 0.9109643242191211 }, { "theta": 6.042489273116342, "r": 0.9061214046693743 }, { "theta": 6.043537083971621, "r": 0.9100065933827074 }, { "theta": 6.044575984671385, "r": 0.9138927727036691 }, { "theta": 6.047811471416833, "r": 0.9090654541890809 }, { "theta": 6.0488332365949855, "r": 0.9129556396671198 }, { "theta": 6.0520946399836895, "r": 0.908140958221795 }, { "theta": 6.053099159987353, "r": 0.9120350870443528 }, { "theta": 6.05409513744006, "r": 0.9159301283394929 }, { "theta": 6.057373625636231, "r": 0.9111311650909544 }, { "theta": 6.058352380577308, "r": 0.9150300541512284 }, { "theta": 6.059322829152839, "r": 0.9189298123360674 }, { "theta": 6.062617929794202, "r": 0.9141465965587795 }, { "theta": 6.0635711820029865, "r": 0.9180501075649412 }, { "theta": 6.066891653750604, "r": 0.9132798037841414 }, { "theta": 6.067827607481848, "r": 0.9171870038329153 }, { "theta": 6.068755619942476, "r": 0.9210950005292614 }, { "theta": 6.07209197395684, "r": 0.9163405480496866 }, { "theta": 6.073002720517417, "r": 0.9202521393618164 }, { "theta": 6.073905756732046, "r": 0.9241644875237308 }, { "theta": 6.077257531172327, "r": 0.9194259078359713 }, { "theta": 6.078143337307141, "r": 0.9233417568809503 }, { "theta": 6.081519918453333, "r": 0.9186163508233457 }, { "theta": 6.082388399902465, "r": 0.9225356361680561 }, { "theta": 6.083249532641046, "r": 0.9264556114569116 }, { "theta": 6.086640810954015, "r": 0.9217461689641026 }, { "theta": 6.08748466096093, "r": 0.92566948745219 }, { "theta": 6.090900435371992, "r": 0.9209733980957321 }, { "theta": 6.091726912512037, "r": 0.9248999945940102 }, { "theta": 6.092546401265491, "r": 0.9288272175167994 }, { "theta": 6.095976152207253, "r": 0.9241471744262383 }, { "theta": 6.09677831601244, "r": 0.9280775829638382 }, { "theta": 6.100232243504688, "r": 0.9234110677266111 }, { "theta": 6.101016996706823, "r": 0.9273445961453596 }, { "theta": 6.104495048428935, "r": 0.9226917144962341 }, { "theta": 6.105262306919393, "r": 0.9266282965677229 }, { "theta": 6.1060230734770204, "r": 0.9305654195165433 }, { "theta": 6.109514108838013, "r": 0.9259287229587384 }, { "theta": 6.110257437326693, "r": 0.9298688079508851 }, { "theta": 6.1137722632899685, "r": 0.9252459132576593 }, { "theta": 6.1144980741166775, "r": 0.9291888936056004 }, { "theta": 6.118036629764959, "r": 0.9245799046053294 }, { "theta": 6.118744844944004, "r": 0.9285257131603841 }, { "theta": 6.119447066065227, "r": 0.932471983493338 }, { "theta": 6.1229976096186025, "r": 0.9278793024957502 }, { "theta": 6.123682300197964, "r": 0.931828310366239 }, { "theta": 6.12725622668722, "r": 0.9272496966836926 }, { "theta": 6.127923313272476, "r": 0.9312013745694322 }, { "theta": 6.131520553457971, "r": 0.926636929978511 }, { "theta": 6.132169964258226, "r": 0.9305912099305472 }, { "theta": 6.132813879172452, "r": 0.9345458790236036 }, { "theta": 6.136422110936123, "r": 0.9299978494598792 }, { "theta": 6.137048423347322, "r": 0.9339550310373621 }, { "theta": 6.140679609923859, "r": 0.9294213253417418 }, { "theta": 6.141288252575422, "r": 0.9333809511662428 }, { "theta": 6.144942316701858, "r": 0.9288616689260032 }, { "theta": 6.145533224045277, "r": 0.9328236703686287 }, { "theta": 6.1492100856397895, "r": 0.9283189107198021 }, { "theta": 6.149783193857534, "r": 0.9322832187699187 }, { "theta": 6.154038017051566, "r": 0.9317596256545999 }, { "theta": 6.154588556524683, "r": 0.9357264557550994 }, { "theta": 6.1582975476326185, "r": 0.931252919458511 }, { "theta": 6.1588303126328245, "r": 0.9352218988026318 }, { "theta": 6.162561638599484, "r": 0.930763127761301 }, { "theta": 6.163076571612674, "r": 0.934734186814626 }, { "theta": 6.166830141972712, "r": 0.9302902772790866 }, { "theta": 6.16732718727336, "r": 0.9342633461717312 }, { "theta": 6.17110290882333, "r": 0.9298343938573148 }, { "theta": 6.171582012494198, "r": 0.9338094023943001 }, { "theta": 6.175379789302063, "r": 0.9293955024638327 }, { "theta": 6.175840899253336, "r": 0.9333723801356028 }, { "theta": 6.179660632669043, "r": 0.9289736271821714 }, { "theta": 6.180103698656886, "r": 0.932952303175248 }, { "theta": 6.183945287323983, "r": 0.9285687912050459 }, { "theta": 6.1843702609685085, "r": 0.9325491944128202 }, { "theta": 6.1882336008368295, "r": 0.9281810168280754 }, { "theta": 6.188640435639446, "r": 0.9321630758617292 }, { "theta": 6.192525419978841, "r": 0.9278103254437299 }, { "theta": 6.1929140713389845, "r": 0.9317939686432832 }, { "theta": 6.196820590754103, "r": 0.9274567375355036 }, { "theta": 6.197191015985346, "r": 0.9314418929809846 }, { "theta": 6.201118958431463, "r": 0.9271202726723217 }, { "theta": 6.201471116776959, "r": 0.9311068681950532 }, { "theta": 6.2054203675768544, "r": 0.9268009495031823 }, { "theta": 6.205754220224144, "r": 0.9307889126971808 }, { "theta": 6.209724662086012, "r": 0.9264987857520375 }, { "theta": 6.210040172181146, "r": 0.9304880439855205 }, { "theta": 6.214031685217549, "r": 0.926213798212918 }, { "theta": 6.214328817878542, "r": 0.9302042786399125 }, { "theta": 6.2183412796263795, "r": 0.9259460027453005 }, { "theta": 6.21862000195597, "r": 0.9299376323173507 }, { "theta": 6.222653287397479, "r": 0.9256954142697261 }, { "theta": 6.222913568495193, "r": 0.9296881197476925 }, { "theta": 6.226967550079955, "r": 0.9254620467636693 }, { "theta": 6.227209361053461, "r": 0.929455754729616 }, { "theta": 6.23105865813394, "r": 0.9212513229298507 }, { "theta": 6.231283908721414, "r": 0.9252459132576593 }, { "theta": 6.235395635014816, "r": 0.9210515729317224 }, { "theta": 6.235602203902603, "r": 0.9250470258316601 }, { "theta": 6.2397344117880555, "r": 0.9208691546577071 }, { "theta": 6.239922275772319, "r": 0.9248653956117074 }, { "theta": 6.244074826123963, "r": 0.9207040784095615 }, { "theta": 6.244243964082547, "r": 0.9247010327668073 }, { "theta": 6.248265010542175, "r": 0.9165587815301319 }, { "theta": 6.248416715323504, "r": 0.9205563535167198 }, { "theta": 6.248567108223825, "r": 0.9245539465060977 }, { "theta": 6.2526271369020865, "r": 0.9164278476781464 }, { "theta": 6.252759916354634, "r": 0.9204259883336628 }, { "theta": 6.252891547260811, "r": 0.9244241450762739 }, { "theta": 6.2571042658888345, "r": 0.9203129902375605 }, { "theta": 6.25721711996803, "r": 0.9243116357592822 }, { "theta": 6.2573290018203265, "r": 0.9283102929516617 }, { "theta": 6.2615436648657825, "r": 0.924216424870279 }, { "theta": 6.261636918870772, "r": 0.9282154922214991 }, { "theta": 6.265871020256199, "r": 0.9241385177558611 }, { "theta": 6.265945635985057, "r": 0.9281379207854833 }, { "theta": 6.266019611425076, "r": 0.9321373289381775 }, { "theta": 6.270254993364409, "r": 0.9280775829638382 }, { "theta": 6.2703104821278774, "r": 0.9320772500174006 }, { "theta": 6.270365496706686, "r": 0.9360769199163069 }, { "theta": 6.2746018269978805, "r": 0.9320343341315276 }, { "theta": 6.2746385067469745, "r": 0.9360341874098402 }, { "theta": 6.278893488037575, "r": 0.9320085836514598 }, { "theta": 6.2789118289212364, "r": 0.9360085469695242 }, { "theta": 6.27893001371511, "r": 0.9400085105997711 }, { "theta": 6.283185307179586, "r": 0.94 }, { "theta": 6.283185307179586, "r": 0.936 } ]
diff --git a/js/vars.js b/js/vars.js
new file mode 100644
index 0000000..67bb090
--- /dev/null
+++ b/js/vars.js
@@ -0,0 +1,3 @@
+'use strict';
+
+var FACEBOOK_APP_ID = '621968141165255';
diff --git a/js/wordcloud2 b/js/wordcloud2
deleted file mode 160000
index 85934a1..0000000
--- a/js/wordcloud2
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 85934a1a45e1a750abd93212676af66b4851567e
diff --git a/js/wordfreq b/js/wordfreq
deleted file mode 160000
index 1f98a9f..0000000
--- a/js/wordfreq
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1f98a9f270008a0d372247ef3940abeb37466408
diff --git a/js/xd_calc.js b/js/xd_calc.js
new file mode 100644
index 0000000..d5f5252
--- /dev/null
+++ b/js/xd_calc.js
@@ -0,0 +1,67 @@
+'use strict';
+
+var xdRegexes = {
+ 'XD': /XD+/gi,
+ '^_^': /\^_+\^/g,
+ '>///<': />\/\/\/+= 0.10.0",
+ "npm": ">= 1.0.0"
+ },
+ "dependencies": {
+ "express": "~4.6.1",
+ "compression": "~1.0.9",
+ "serve-static": "~1.3.2",
+ "errorhandler": "~1.1.1",
+ "body-parser": "~1.5.0",
+ "swig": "~1.4.1"
+ },
+ "devDependencies": {
+ "bower": "~1.3.8",
+ "chai": "~1.9.1",
+ "grunt-contrib-clean": "~0.5.0",
+ "grunt-contrib-copy": "~0.5.0",
+ "grunt-contrib-cssmin": "~0.10.0",
+ "grunt-contrib-jshint": "~0.10.0",
+ "grunt-contrib-uglify": "~0.5.0",
+ "grunt-contrib-watch": "~0.6.1",
+ "grunt-dom-munger": "~3.4.0",
+ "grunt-express-server": "~0.4.17",
+ "grunt-gh-pages": "~0.9.1",
+ "grunt-jscs": "~0.6.1",
+ "grunt-jsdoc": "~0.5.4",
+ "grunt-jsonlint": "~1.0.4",
+ "grunt-karma": "^0.8.3",
+ "grunt-manifest": "~0.4.0",
+ "grunt-mocha-cov": "~0.2.1",
+ "grunt-mocha-phantomjs": "~0.5.0",
+ "grunt-plato": "~1.1.0",
+ "grunt-rename": "~0.1.3",
+ "grunt-sloc": "~0.5.2",
+ "grunt-zip": "~0.15.0",
+ "jscs-jsdoc": "~0.0.6",
+ "karma": "^0.12.16",
+ "karma-chai": "^0.1.0",
+ "karma-chrome-launcher": "^0.1.4",
+ "karma-firefox-launcher": "^0.1.3",
+ "karma-mocha": "^0.1.4",
+ "karma-phantomjs-launcher": "^0.1.4",
+ "karma-sinon": "^1.0.3",
+ "load-grunt-tasks": "^0.6.0",
+ "mocha": "^1.20.1",
+ "plato": "~1.1.0",
+ "sinon": "~1.10.2",
+ "time-grunt": "~0.4.0"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "start": "./node_modules/http-server/bin/http-server -p 8080",
+ "blanket": {
+ "pattern": [
+ "public"
+ ]
+ },
+ "postinstall": "node_modules/.bin/bower install"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/XDDDDD/xd.git"
+ },
+ "authors": [
+ "Yuren Ju (http://yurinfore.blogspot.com/)",
+ "Fred Lin (http://www.gasolin.idv.tw/)"
+ ],
+ "licenses": [
+ {
+ "type": "MIT License",
+ "url": "http://opensource.org/licenses/mit-license.html"
+ }
+ ]
+}
diff --git a/query.js b/query.js
new file mode 100644
index 0000000..2f580db
--- /dev/null
+++ b/query.js
@@ -0,0 +1,98 @@
+var querystring = require('querystring');
+var http = require('http');
+
+var keywords = ['xd', 'orz', '冏', 'kerker', '呵呵', '哈哈', 'TT', '@@', '科科',
+ '!!', 'qq', 'q_q', '-_-'];
+
+function post(host, path, data, callback) {
+
+ var post_data = querystring.stringify(data);
+
+ // An object of options to indicate where to post to
+ var post_options = {
+ host: host,
+ port: '80',
+ path: path,
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Content-Length': post_data.length
+ }
+ };
+
+ // Set up the request
+ var post_req = http.request(post_options, function(res) {
+ var data = '';
+ res.setEncoding('utf8');
+ res.on('data', function (chunk) {
+ data += chunk;
+ });
+ res.on('end', function() {
+ callback(data);
+ });
+ });
+
+ // post the data
+ post_req.write(post_data);
+ post_req.end();
+}
+
+var min30 = 60 * 1000 * 30;
+var tokenTime;
+var cachedToken;
+var usageCount = 0;
+
+function requestToken(callback) {
+ console.log('request token');
+ var now = (new Date()).getTime();
+ if ((now - tokenTime) < min30 && usageCount < 5) {
+ console.log('use cached token');
+ usageCount++;
+ callback(cachedToken);
+ return;
+ }
+ tokenTime = (new Date()).getTime();
+ usageCount = 0;
+ var data = {
+ 'id': 'af028008ce5492cbb15f06098e847e63',
+ 'secret_key': '4c6703c5dc240720d2213eb5c50fbbd2'
+ };
+ post('api.ser.ideas.iii.org.tw', '/api/user/get_token', data,
+ function(str) {
+ var d = JSON.parse(str);
+ if (d.result && d.result.token) {
+ cachedToken = d.result.token;
+ console.log('got token: ' + cachedToken);
+ callback(cachedToken);
+ } else {
+ console.log('request token error');
+ callback(null);
+ }
+ });
+}
+
+function doQuery() {
+ console.log('do query');
+ requestToken(function(token) {
+ var keyword = keywords[Math.round(Math.random() * keywords.length)];
+ console.log('keyword: ' + keyword);
+ var data = {
+ 'keyword': keyword,
+ 'limit': 7,
+ 'sort': 'push',
+ 'token': token
+ };
+ post('api.ser.ideas.iii.org.tw', '/api/keyword_search/ptt/content',
+ data, function(str) {
+ var d = JSON.parse(str);
+ if (d.result) {
+ console.log('query result: ' + JSON.stringify(d.result));
+ } else {
+ console.log('no result');
+ }
+ setTimeout(doQuery, 500 + Math.random() * 2500);
+ });
+ });
+}
+
+doQuery();
diff --git a/style/font-awesome.min.css b/style/font-awesome.min.css
new file mode 100644
index 0000000..3d920fc
--- /dev/null
+++ b/style/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.1.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}
\ No newline at end of file
diff --git a/style/friend-list.css b/style/friend-list.css
new file mode 100644
index 0000000..8f1cac2
--- /dev/null
+++ b/style/friend-list.css
@@ -0,0 +1,75 @@
+.avatar {
+ width: 136px;
+ height: 136px;
+ display: block;
+ border-radius: 50%;
+ background-color: #44eace;
+ position: relative;
+ -webkit-transition: 0.3s ease-in-out;
+ -moz-transition: 0.3s ease-in-out;
+ -o-transition: 0.3s ease-in-out;
+ transition: 0.3s ease-in-out;
+}
+.avatar:hover {
+ cursor: pointer;
+}
+
+.avatar.friend {
+ position: absolute;
+}
+
+.avatar.friend.focused {
+ z-index: 9999;
+}
+
+.avatar .avatar-image {
+ width: 128px;
+ height: 128px;
+ border-radius: 128px 128px 128px 128px;
+ position: absolute;
+ left: 4px;
+ top: 4px;
+ background-size: 128px auto;
+ background-position: center center;
+ background-repeat: no-repeat;
+}
+
+.avatar .avatar-name {
+ width: 130px;
+ height: 64px;
+ position: absolute;
+ top: 68px;
+ left: 4px;
+ line-height: 64px;
+ border-radius: 0 0 130px 130px;
+ color: #fff;
+ text-align: center;
+ font-weight: normal;
+ font-size: 18px;
+ /* Firefox */
+ -moz-transition: 0.3s ease-in;
+ /* WebKit */
+ -webkit-transition: 0.3s ease-in;
+ /* Opera */
+ -o-transition: 0.3s ease-in;
+ /* Standard */
+ transition: 0.3s ease-in;
+ background-color: rgba(68, 250, 207, 0.7);
+}
+
+.avatar:hover .avatar-name {
+ background-color: rgba(68, 250, 207, 0);
+ color: rgba(255, 255, 255, 0);
+}
+
+.avatar.userSelf {
+ display: none;
+}
+
+#friendlist {
+ height: 800px;
+}
+
+.friends-container {
+ margin: 68px;
+}
diff --git a/style/hackathon.css b/style/hackathon.css
new file mode 100755
index 0000000..2e438cd
--- /dev/null
+++ b/style/hackathon.css
@@ -0,0 +1,283 @@
+@import "http://meyerweb.com/eric/tools/css/reset/reset.css";
+body {
+ font-family: 'Quicksand', sans-serif;
+ font-weight: 300;
+ background-color: #999;
+}
+.face {
+ width: 200px;
+ height: 100px;
+ font-size: 60px;
+ color: #fff;
+ font-weight: bold;
+}
+.btn_shadow {
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+}
+.btn_shadow_hover {
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+a.btn_faceChange {
+ text-decoration: none;
+ width: 73px;
+ display: block;
+ padding-left: 3px;
+}
+a.btn_faceChange div {
+ border-radius: 50%;
+ width: 70px;
+ height: 70px;
+ background: #19b8dd url("../images/icon_change.png") center center no-repeat;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+}
+a.btn_faceChange p {
+ width: 100%;
+ color: #fff;
+ text-align: center;
+ font-size: 11px;
+ margin-top: 5px;
+ font-weight: normal;
+}
+a.btn_faceChange:hover div {
+ background-color: #0c8ea3;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+.round4 {
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+a.btn_fblogin {
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ width: 238px;
+ height: 45px;
+ display: block;
+ background-color: #19b8dd;
+ color: #fff;
+ line-height: 45px;
+ text-align: center;
+ text-decoration: none;
+ font-weight: normal;
+ background: #19b8dd url("../images/icon_fbLogin.png") 15px center no-repeat;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+}
+a.btn_fblogin:hover {
+ background-color: #0c8ea3;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+a.btn_back {
+ border-radius: 50%;
+ width: 34px;
+ height: 34px;
+ display: block;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.5);
+}
+a.btn_back.btn_account {
+ background: #19b8dd url("../images/icon_account.png") center center no-repeat;
+}
+a.btn_back.btn_account:hover {
+ background-color: #0c8ea3;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+a.btn_back.btn_cloud {
+ background: #19b8dd url("../images/icon_cloud.png") center center no-repeat;
+}
+a.btn_back.btn_cloud:hover {
+ background-color: #0c8ea3;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+a.btn_back.btn_uparrow {
+ background: #19b8dd url("../images/icon_uparrow.png") center center no-repeat;
+}
+a.btn_back.btn_uparrow:hover {
+ background-color: #0c8ea3;
+ -moz-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ -webkit-box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+ box-shadow: 2px 2px rgba(51, 51, 102, 0.8);
+}
+p.fb_wording {
+ font-size: 72px;
+ font-weight: bold;
+ font-style: italic;
+ color: #44eace;
+}
+p.fb_wording span {
+ font-size: 36px;
+ font-weight: normal;
+}
+a.btn_spread {
+ height: 18px;
+ line-height: 18px;
+ display: block;
+ color: #fff;
+ font-size: 12px;
+ padding: 0 0 0 22px;
+ background: url("../images/icon_spread.png") left top no-repeat;
+}
+a.btn_spread:hover {
+ background-position: left -18px;
+}
+a.btn_collapse {
+ height: 18px;
+ line-height: 18px;
+ display: block;
+ color: #fff;
+ font-size: 12px;
+ padding: 0 0 0 22px;
+ background: url("../images/icon_spread.png") left -36px no-repeat;
+}
+a.btn_collapse:hover {
+ background-position: left -54px;
+}
+div.btn_scroll {
+ width: 36px;
+ height: 68px;
+}
+div.btn_scroll a {
+ width: 36px;
+ height: 34px;
+ display: block;
+ text-indent: -9999px;
+ background: url("../images/icon_scroll.png") left top no-repeat;
+}
+div.btn_scroll a.up {
+ background-position: left top;
+}
+div.btn_scroll a.up:hover {
+ background-position: right top;
+}
+div.btn_scroll a.down {
+ background-position: left bottom;
+}
+div.btn_scroll a.down:hover {
+ background-position: right bottom;
+}
+div.circle_score {
+ width: 56px;
+ height: 56px;
+ border-radius: 50%;
+ background-color: #9cf2e2;
+ position: relative;
+}
+div.circle_score div.fb_score {
+ font-size: 25px;
+ left: 0;
+ position: absolute;
+ text-align: center;
+ top: 20px;
+ width: 100%;
+ color: #fff;
+}
+div.circle_score div.fb_score span.dec {
+ font-size: 15px;
+}
+div.circle_score div.circle_score_pie {
+ width: 56px;
+ height: 56px;
+}
+div.circle_score div.circle_score_pie div.pie_b {
+ border-radius: 28px;
+ clip: rect(0em, 28px, 56px, 56px);
+ height: 45px;
+ position: absolute;
+ width: 45px;
+ background-color: red;
+}
+div.circle_score div.circle_score_pie div.pie_s {
+ transform: rotate(180deg) !important;
+ border-radius: 28px;
+ clip: rect(0em, 28px, 56px, 56px);
+ height: 45px;
+ position: absolute;
+ width: 45px;
+ background-color: green;
+}
+ul#comment_wrap {
+ width: 758px;
+ background: url("../images/comment_bg.png") 120px top repeat-y;
+ padding-left: 50px;
+}
+ul#comment_wrap li {
+ width: 100%;
+ /* comment_content end */
+
+}
+ul#comment_wrap li div.circle_score {
+ display: inline-block;
+ vertical-align: top;
+}
+ul#comment_wrap li div.comment_content {
+ width: 620px;
+ display: inline-block;
+ background: url("../images/comment_arrow.png") left 15px no-repeat;
+ margin: 12px 0 45px 9px;
+ padding-left: 35px;
+}
+ul#comment_wrap li div.comment_content div.comment_date {
+ height: 18px;
+ width: 635px;
+ margin-bottom: 5px;
+ padding-left: 10px;
+}
+ul#comment_wrap li div.comment_content div.comment_date p,
+ul#comment_wrap li div.comment_content div.comment_date time {
+ color: #fff;
+ line-height: 18px;
+ font-size: 12px;
+ float: left;
+}
+ul#comment_wrap li div.comment_content div.comment_date time {
+ margin-right: 12px;
+}
+ul#comment_wrap li div.comment_content div.comment_date a.btn_spread,
+ul#comment_wrap li div.comment_content div.comment_date a.btn_collapse {
+ float: right;
+}
+ul#comment_wrap li div.comment_content div.comment_detail {
+ width: 625px;
+ background-color: #fff;
+ padding: 10px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+ul#comment_wrap li div.comment_content div.comment_detail p {
+ font-size: 14px;
+ line-height: 22px;
+ color: #44eace;
+}
+ul#comment_wrap li div.comment_content div.comment_detail p span {
+ color: #ff8b00;
+}
+ul#comment_wrap li div.comment_content div.comment_img {
+ width: 645px;
+ margin: 15px 0 10px 0;
+ height: 130px;
+}
+ul#comment_wrap li div.comment_content p.comment_info {
+ color: #fff;
+ font-size: 12px;
+}
+.btn_fblogin p {
+ font-size: 12px;
+}
diff --git a/style/hackathon.less b/style/hackathon.less
new file mode 100755
index 0000000..95ff413
--- /dev/null
+++ b/style/hackathon.less
@@ -0,0 +1,296 @@
+@import "http://meyerweb.com/eric/tools/css/reset/reset.css";
+body {
+ font-family: 'Quicksand', sans-serif;
+ font-weight: 300;
+ background-color:#999;
+}
+.face{
+ width:200px;
+ height:100px;
+ font-size:60px;
+ color:#fff;
+ font-weight:bold;
+}
+
+.btn_shadow{
+ -moz-box-shadow:2px 2px rgba(20%,20%,40%,0.5);
+ -webkit-box-shadow:2px 2px rgba(20%,20%,40%,0.5);
+ box-shadow:2px 2px rgba(20%,20%,40%,0.5);
+}
+.btn_shadow_hover{
+ -moz-box-shadow:2px 2px rgba(20%,20%,40%,0.8);
+ -webkit-box-shadow:2px 2px rgba(20%,20%,40%,0.8);
+ box-shadow:2px 2px rgba(20%,20%,40%,0.8);
+}
+a.btn_faceChange{
+ text-decoration:none;
+ width:73px;
+ display:block;
+ padding-left:3px;
+ div{
+ border-radius: 50%;
+ width:70px;
+ height:70px;
+ background:#19b8dd url("../images/icon_change.png") center center no-repeat;
+ .btn_shadow;
+ }
+ p{
+ width:100%;
+ color:#fff;
+ text-align:center;
+ font-size:11px;
+ margin-top:5px;
+ font-weight:normal;
+ }
+ &:hover{
+ div{
+ background-color:#0c8ea3;
+ .btn_shadow_hover;
+ }
+ }
+}
+
+.round4{
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+a.btn_fblogin{
+ .round4;
+ width:238px;
+ height:45px;
+ display:block;
+ background-color:#19b8dd;
+ color:#fff;
+ line-height:45px;
+ text-align:center;
+ text-decoration:none;
+ font-weight:normal;
+ background:#19b8dd url("../images/icon_fbLogin.png") 15px center no-repeat;
+ .btn_shadow;
+ &:hover{
+ background-color:#0c8ea3;
+ .btn_shadow_hover;
+ }
+}
+
+a.btn_back{
+ border-radius: 50%;
+ width:34px;
+ height:34px;
+ display:block;
+ .btn_shadow;
+}
+a.btn_back.btn_account{
+ background:#19b8dd url("../images/icon_account.png") center center no-repeat;
+ &:hover{
+ background-color:#0c8ea3;
+ .btn_shadow_hover;
+ }
+}
+a.btn_back.btn_cloud{
+ background:#19b8dd url("../images/icon_cloud.png") center center no-repeat;
+ &:hover{
+ background-color:#0c8ea3;
+ .btn_shadow_hover;
+ }
+}
+a.btn_back.btn_uparrow{
+ background:#19b8dd url("../images/icon_uparrow.png") center center no-repeat;
+ &:hover{
+ background-color:#0c8ea3;
+ .btn_shadow_hover;
+ }
+}
+div.avatar{
+ width:124px;
+ height:124px;
+ display:block;
+ border-radius:50%;
+ background-color:#44eace;
+ position:relative;
+ div{
+ width:116px;
+ height:58px;
+ border-radius:124px 124px 0 0;
+ position:absolute;
+ left:4px;
+ top:4px;
+ }
+ p{
+ width:124px;
+ font-size:18px;
+ color:#fff;
+ text-align:center;
+ position:absolute;
+ left:4px;
+ bottom:30px;
+ font-weight:normal;
+ }
+}
+
+p.fb_wording{
+ font-size:72px;
+ font-weight:bold;
+ font-style:italic;
+ color:#44eace;
+ span{
+ font-size:36px;
+ font-weight:normal;
+ }
+}
+
+a.btn_spread{
+ height:18px;
+ line-height:18px;
+ display:block;
+ color:#fff;
+ font-size:12px;
+ padding:0 0 0 22px;
+ background:url("../images/icon_spread.png") left top no-repeat;
+ &:hover{
+ background-position:left -18px;
+ }
+}
+a.btn_collapse{
+ height:18px;
+ line-height:18px;
+ display:block;
+ color:#fff;
+ font-size:12px;
+ padding:0 0 0 22px;
+ background:url("../images/icon_spread.png") left -36px no-repeat;
+ &:hover{
+ background-position:left -54px;
+ }
+}
+div.btn_scroll{
+ width:36px;
+ height:68px;
+ a{
+ width:36px;
+ height:34px;
+ display:block;
+ text-indent:-9999px;
+ background:url("../images/icon_scroll.png") left top no-repeat;
+ }
+ a.up{
+ background-position:left top;
+ &:hover{
+ background-position:right top;
+ }
+ }
+ a.down{
+ background-position:left bottom;
+ &:hover{
+ background-position:right bottom;
+ }
+ }
+}
+
+div.circle_score{
+ width:56px;
+ height:56px;
+ border-radius: 50%;
+ background-color:#9cf2e2;
+ position:relative;
+ div.fb_score{
+ font-size: 25px;
+ left: 0;
+ position: absolute;
+ text-align: center;
+ top: 20px;
+ width: 100%;
+ color:#fff;
+ span.int{}
+ span.dec{
+ font-size:15px;
+ }
+ }
+ div.circle_score_pie{
+ width:56px;
+ height:56px;
+ div.pie_b{
+ border-radius: 28px;
+ clip: rect(0em, 28px, 56px, 56px);
+ height: 45px;
+ position: absolute;
+ width: 45px;
+ background-color:red;
+ }
+ div.pie_s{
+ transform: rotate(180deg) !important;
+ border-radius: 28px;
+ clip: rect(0em, 28px, 56px, 56px);
+ height: 45px;
+ position: absolute;
+ width: 45px;
+ background-color:green;
+ }
+ }
+}
+
+ul#comment_wrap{
+ width:758px;
+ background:url("../images/comment_bg.png") 120px top repeat-y;
+ padding-left:50px;
+ li{
+ width:100%;
+ div.circle_score{
+ display:inline-block;
+ vertical-align:top
+ }
+ div.comment_content{
+ width:620px;
+ display:inline-block;
+ background:url("../images/comment_arrow.png") left 15px no-repeat;
+ margin:12px 0 45px 9px;
+ padding-left:35px;
+ div.comment_date{
+ height:18px;
+ width:635px;
+ margin-bottom:5px;
+ padding-left:10px;
+ p,time{
+ color:#fff;
+ line-height:18px;
+ font-size:12px;
+ float:left;
+ }
+ time{
+ margin-right:12px;
+ }
+ a.btn_spread , a.btn_collapse{
+ float:right;
+ }
+ }
+ div.comment_detail{
+ width:625px;
+ background-color:#fff;
+ padding:10px;
+ .round4;
+ p{
+ font-size:14px;
+ line-height:22px;
+ color:#44eace;
+ span{
+ color:#ff8b00;
+ }
+ }
+ }
+ div.comment_img{
+ width:645px;
+ margin:15px 0 10px 0;
+ height:130px;
+ }
+ p.comment_info{
+ color:#fff;
+ font-size:12px;
+ }
+ }/* comment_content end */
+ }
+}
+.btn_fblogin p{
+ font-size:12px;
+}
+
diff --git a/style/icons/apple-touch-icon-precomposed.png b/style/icons/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..7787fa6
Binary files /dev/null and b/style/icons/apple-touch-icon-precomposed.png differ
diff --git a/style/icons/favicon.ico b/style/icons/favicon.ico
new file mode 100644
index 0000000..3ad5f49
Binary files /dev/null and b/style/icons/favicon.ico differ
diff --git a/style/icons/icon128.png b/style/icons/icon128.png
new file mode 100644
index 0000000..6389c86
Binary files /dev/null and b/style/icons/icon128.png differ
diff --git a/style/ie/backgroundsize.min.htc b/style/ie/backgroundsize.min.htc
new file mode 100644
index 0000000..3d9960d
--- /dev/null
+++ b/style/ie/backgroundsize.min.htc
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/style/ie/html5shiv.js b/style/ie/html5shiv.js
new file mode 100644
index 0000000..dcf351c
--- /dev/null
+++ b/style/ie/html5shiv.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
+for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/style/images/dark-br.svg b/style/images/dark-br.svg
new file mode 100644
index 0000000..fb444d2
--- /dev/null
+++ b/style/images/dark-br.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/dark-tl.svg b/style/images/dark-tl.svg
new file mode 100644
index 0000000..4521f11
--- /dev/null
+++ b/style/images/dark-tl.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/dark-tr.svg b/style/images/dark-tr.svg
new file mode 100644
index 0000000..be03be1
--- /dev/null
+++ b/style/images/dark-tr.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/light-bl.svg b/style/images/light-bl.svg
new file mode 100644
index 0000000..c0a953b
--- /dev/null
+++ b/style/images/light-bl.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/light-br.svg b/style/images/light-br.svg
new file mode 100644
index 0000000..ca10b30
--- /dev/null
+++ b/style/images/light-br.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/light-tl.svg b/style/images/light-tl.svg
new file mode 100644
index 0000000..8bcc931
--- /dev/null
+++ b/style/images/light-tl.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/light-tr.svg b/style/images/light-tr.svg
new file mode 100644
index 0000000..ad0f90a
--- /dev/null
+++ b/style/images/light-tr.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/style/images/overlay.png b/style/images/overlay.png
new file mode 100644
index 0000000..49f0570
Binary files /dev/null and b/style/images/overlay.png differ
diff --git a/style/main.css b/style/main.css
new file mode 100644
index 0000000..8db8dbf
--- /dev/null
+++ b/style/main.css
@@ -0,0 +1,18 @@
+mark { background-color:#ff9; color:#000; font-style:normal; font-weight:bold; }
+
+.hidden { display: none; }
+
+/* app default style */
+/*html, body {
+ margin: 0;
+ padding: 0;
+ font-size: 10px;
+ background-color: #fff;
+}
+body {
+ background: none;
+}
+section[role="region"] {
+ margin-bottom: 1.5rem;
+ position: relative;
+}*/
diff --git a/style/skel.css b/style/skel.css
new file mode 100644
index 0000000..f7d6e26
--- /dev/null
+++ b/style/skel.css
@@ -0,0 +1,185 @@
+/* Resets (http://meyerweb.com/eric/tools/css/reset/ | v2.0 | 20110126 | License: none (public domain)) */
+
+ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{line-height:1;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}table{border-collapse:collapse;border-spacing:0;}body{-webkit-text-size-adjust:none}
+
+/* Box Model */
+
+ *, *:before, *:after {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+
+/* Container */
+
+ body {
+ /* min-width: (containers) */
+ min-width: 1200px;
+ }
+
+ .container {
+ margin-left: auto;
+ margin-right: auto;
+
+ /* width: (containers) */
+ width: 1200px;
+ }
+
+ /* Modifiers */
+
+ .container.small {
+ /* width: (containers) * 0.75; */
+ width: 900px;
+ }
+
+ .container.big {
+ width: 100%;
+
+ /* max-width: (containers) * 1.25; */
+ max-width: 1500px;
+
+ /* min-width: (containers); */
+ min-width: 1200px;
+ }
+
+/* Grid */
+
+ .\31 2u { width: 100% }
+ .\31 1u { width: 91.6666666667% }
+ .\31 0u { width: 83.3333333333% }
+ .\39 u { width: 75% }
+ .\38 u { width: 66.6666666667% }
+ .\37 u { width: 58.3333333333% }
+ .\36 u { width: 50% }
+ .\35 u { width: 41.6666666667% }
+ .\34 u { width: 33.3333333333% }
+ .\33 u { width: 25% }
+ .\32 u { width: 16.6666666667% }
+ .\31 u { width: 8.3333333333% }
+ .\-11u { margin-left: 91.6666666667% }
+ .\-10u { margin-left: 83.3333333333% }
+ .\-9u { margin-left: 75% }
+ .\-8u { margin-left: 66.6666666667% }
+ .\-7u { margin-left: 58.3333333333% }
+ .\-6u { margin-left: 50% }
+ .\-5u { margin-left: 41.6666666667% }
+ .\-4u { margin-left: 33.3333333333% }
+ .\-3u { margin-left: 25% }
+ .\-2u { margin-left: 16.6666666667% }
+ .\-1u { margin-left: 8.3333333333% }
+
+ /* Rows */
+
+ .row > * {
+ float: left;
+ }
+
+ .row:after {
+ content: '';
+ display: block;
+ clear: both;
+ height: 0;
+ }
+
+ .row:first-child > * {
+ padding-top: 0 !important;
+ }
+
+ /* Normal */
+
+ .row > * {
+ /* padding-left: (gutters) */
+ padding-left: 50px;
+ }
+
+ .row + .row > * {
+ /* padding: (gutters) 0 0 (gutters) */
+ padding: 50px 0 0 50px;
+ }
+
+ .row {
+ /* margin-left: -(gutters) */
+ margin-left: -50px;
+ }
+
+ /* Flush */
+
+ .row.flush > * {
+ padding-left: 0;
+ }
+
+ .row + .row.flush > * {
+ padding: 0;
+ }
+
+ .row.flush {
+ margin-left: 0;
+ }
+
+ /* Quarter */
+
+ .row.quarter > * {
+ /* padding-left: (gutters * 0.25) */
+ padding-left: 12.5px;
+ }
+
+ .row + .row.quarter > * {
+ /* padding: (gutters * 0.25) 0 0 (gutters * 0.25) */
+ padding: 12.5px 0 0 12.5px;
+ }
+
+ .row.quarter {
+ /* margin-left: -(gutters * 0.25) */
+ margin-left: -12.5px;
+ }
+
+ /* Half */
+
+ .row.half > * {
+ /* padding-left: (gutters * 0.5) */
+ padding-left: 25px;
+ }
+
+ .row + .row.half > * {
+ /* padding: (gutters * 0.5) 0 0 (gutters * 0.5) */
+ padding: 25px 0 0 25px;
+ }
+
+ .row.half {
+ /* margin-left: -(gutters * 0.5) */
+ margin-left: -25px;
+ }
+
+ /* One and (a) Half */
+
+ .row.oneandhalf > * {
+ /* padding-left: (gutters * 1.5) */
+ padding-left: 75px;
+ }
+
+ .row + .row.oneandhalf > * {
+ /* padding: (gutters * 1.5) 0 0 (gutters * 1.5) */
+ padding: 75px 0 0 75px;
+ }
+
+ .row.oneandhalf {
+ /* margin-left: -(gutters * 1.5) */
+ margin-left: -75px;
+ }
+
+ /* Double */
+
+ .row.double > * {
+ /* padding-left: (gutters * 2) */
+ padding-left: 100px;
+ }
+
+ .row + .row.double > * {
+ /* padding: (gutters * 2) 0 0 (gutters * 2) */
+ padding: 100px 0 0 100px;
+ }
+
+ .row.double {
+ /* margin-left: -(gutters * 2) */
+ margin-left: -100px;
+ }
\ No newline at end of file
diff --git a/style/style-mobile.css b/style/style-mobile.css
new file mode 100644
index 0000000..9e9b55b
--- /dev/null
+++ b/style/style-mobile.css
@@ -0,0 +1,165 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ body {
+ min-width: 320px;
+ }
+
+ h2 {
+ font-size: 1.25em;
+ letter-spacing: 0.1em;
+ }
+
+ h3 {
+ font-size: 1em;
+ letter-spacing: 0.025em;
+ }
+
+ p {
+ text-align: justify;
+ }
+
+ header {
+ text-align: center;
+ }
+
+ header.major {
+ padding-bottom: 0;
+ }
+
+ header.special {
+ margin-bottom: 3em;
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ }
+
+ header.special:before, header.special:after {
+ width: 38%;
+ }
+
+ header.special .icon {
+ font-size: 0.75em;
+ top: 1.5em;
+ }
+
+ header p {
+ text-align: center;
+ }
+
+ footer.major {
+ padding-top: 0;
+ }
+
+/* Icon */
+
+ .icon.circle {
+ font-size: 1em;
+ }
+
+/* Button */
+
+ .button {
+ max-width: 20em;
+ width: 100%;
+ }
+
+ .button.fit {
+ width: auto;
+ }
+
+/* Lists */
+
+ ul.icons li {
+ padding-left: 0.25em;
+ }
+
+ ul.feature-icons li .icon {
+ width: 1.1em;
+ }
+
+ ul.buttons {
+ text-align: center;
+ }
+
+/* Wrapper */
+
+ .wrapper {
+ margin-bottom: 2.5em;
+ padding: 2.25em 1.5em;
+ }
+
+ .wrapper.special br {
+ display: none;
+ }
+
+ .wrapper.style1 {
+ padding: 0 1.5em;
+ }
+
+ .wrapper.style2 {
+ background-size: 10em;
+ padding: 2.25em 1.5em;
+ }
+
+ .wrapper.style4 {
+ background-size: 10em;
+ padding: 1.5em 1.5em 3em 1.5em;
+ }
+
+/* Banner */
+
+ #banner {
+ background-size: 10em, 10em, auto, cover;
+ padding: 6em 0;
+ }
+
+ #banner .inner {
+ background: none;
+ display: block;
+ padding: 0 1.5em;
+ }
+
+ #banner .inner header h2 {
+ font-size: 1.5em;
+ }
+
+ #banner .inner p {
+ text-align: center;
+ }
+
+ #banner .inner br {
+ display: none;
+ }
+
+/* Main */
+
+ #main {
+ background-size: 10em;
+ padding: 3.5em 0 2.5em 0;
+ }
+
+ body.index #main {
+ padding: 2.5em 0 0 0;
+ }
+
+ body.contact #main {
+ padding-bottom: 0;
+ }
+
+/* CTA */
+
+ #cta {
+ background-size: 10em, 10em, auto, cover;
+ padding: 3em 1.5em;
+ }
+
+/* Footer */
+
+ #footer {
+ padding: 3em 1.5em;
+ }
\ No newline at end of file
diff --git a/style/style-narrow.css b/style/style-narrow.css
new file mode 100644
index 0000000..82aff34
--- /dev/null
+++ b/style/style-narrow.css
@@ -0,0 +1,72 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ body, input, select, textarea {
+ font-size: 13pt;
+ letter-spacing: 0.025em;
+ line-height: 1.5em;
+ }
+
+ header br {
+ display: none;
+ }
+
+ header.major {
+ padding-bottom: 1em;
+ }
+
+ header.special {
+ padding-left: 2.5em;
+ padding-right: 2.5em;
+ }
+
+ footer.major {
+ padding-top: 1.5em;
+ }
+
+/* Wrapper */
+
+ .wrapper {
+ margin-bottom: 3em;
+ padding: 3em 2.5em;
+ }
+
+ .wrapper.special br {
+ display: none;
+ }
+
+ .wrapper.style1 {
+ padding: 0 2.5em;
+ }
+
+ .wrapper.style2 {
+ background-size: 15em;
+ }
+
+ .wrapper.style4 {
+ padding: 2.5em;
+ }
+
+/* Banner */
+
+ #banner {
+ background-size: 15em, 15em, auto, cover;
+ }
+
+/* Main */
+
+ #main {
+ background-size: 15em;
+ }
+
+/* CTA */
+
+ #cta {
+ background-size: 15em, 15em, auto, cover;
+ padding: 3em;
+ }
\ No newline at end of file
diff --git a/style/style-narrower.css b/style/style-narrower.css
new file mode 100644
index 0000000..231d4f5
--- /dev/null
+++ b/style/style-narrower.css
@@ -0,0 +1,116 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ header.major {
+ padding-bottom: 0.25em;
+ }
+
+ header.special {
+ margin-bottom: 4em;
+ padding-top: 5em;
+ }
+
+ header.special:before, header.special:after {
+ width: 40%;
+ }
+
+ header.special h2 + p {
+ padding-top: 1.25em;
+ }
+
+ section {
+ margin: 1em 0 1em 0;
+ }
+
+ section:first-child {
+ margin-top: 0;
+ }
+
+/* Button */
+
+ .button.small {
+ font-size: 0.8em;
+ min-width: 18em;
+ padding: 0.75em 0;
+ }
+
+/* Lists */
+
+ ul.feature-icons {
+ margin: 0;
+ }
+
+ ul.feature-icons li {
+ display: inline-block;
+ float: none;
+ width: auto;
+ }
+
+ ul.feature-icons li .icon {
+ font-size: 4em;
+ width: 1.25em;
+ }
+
+ ul.buttons li {
+ display: block;
+ padding: 1em 0 0 0;
+ }
+
+/* Header */
+
+ #header {
+ display: none;
+ }
+
+/* Banner */
+
+ #banner {
+ margin: 0;
+ }
+
+/* Wrapper */
+
+ .wrapper.special-alt {
+ text-align: center;
+ }
+
+ .wrapper.style4 {
+ padding-bottom: 3em;
+ }
+
+/* Main */
+
+ #main {
+ padding: 5em 0;
+ }
+
+ #main .sidebar {
+ border-top: solid 1px rgba(124, 128, 129, 0.1);
+ padding-top: 3em;
+ }
+
+ #main .sidebar section {
+ border-top: 0;
+ padding-top: 0;
+ }
+
+ body.index #main {
+ padding-top: 4.5em;
+ }
+
+/* CTA */
+
+ #cta {
+ margin: 0;
+ }
+
+/* Footer */
+
+ #footer {
+ padding: 4em 1.5em;
+ }
\ No newline at end of file
diff --git a/style/style-normal.css b/style/style-normal.css
new file mode 100644
index 0000000..32285cb
--- /dev/null
+++ b/style/style-normal.css
@@ -0,0 +1,61 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ body, input, select, textarea {
+ font-size: 13pt;
+ letter-spacing: 0.025em;
+ line-height: 1.65em;
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ line-height: 1.5em;
+ }
+
+ header.major {
+ padding-bottom: 1.5em;
+ }
+
+ footer.major {
+ padding-top: 2em;
+ }
+
+/* Wrapper */
+
+ .wrapper {
+ margin-bottom: 4em;
+ padding: 4em 3em;
+ }
+
+ .wrapper.style4 {
+ padding: 3em;
+ }
+
+/* Header */
+
+ #header nav ul li {
+ margin-left: 1em;
+ }
+
+/* Banner */
+
+ #banner {
+ background-attachment: scroll;
+ }
+
+/* CTA */
+
+ #cta {
+ padding: 4em;
+ background-attachment: scroll;
+ }
+
+/* Footer */
+
+ #footer {
+ padding: 4em;
+ }
\ No newline at end of file
diff --git a/style/style-noscript.css b/style/style-noscript.css
new file mode 100644
index 0000000..4afdb12
--- /dev/null
+++ b/style/style-noscript.css
@@ -0,0 +1,11 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Banner */
+
+ #banner .inner {
+ opacity: 1.0;
+ }
\ No newline at end of file
diff --git a/style/style-wide.css b/style/style-wide.css
new file mode 100644
index 0000000..71d77d6
--- /dev/null
+++ b/style/style-wide.css
@@ -0,0 +1,16 @@
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ body, input, select, textarea {
+ font-size: 14pt;
+ }
+
+ header.special {
+ padding-top: 5.5em;
+ margin-bottom: 4em;
+ }
\ No newline at end of file
diff --git a/style/style.css b/style/style.css
new file mode 100644
index 0000000..f94a575
--- /dev/null
+++ b/style/style.css
@@ -0,0 +1,1041 @@
+@charset "UTF-8";
+@import url("font-awesome.min.css");
+@import url("http://fonts.googleapis.com/css?family=Lato:300,400,900");
+
+/*
+ Twenty 1.0 by HTML5 UP
+ html5up.net | @n33co
+ Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
+*/
+
+/* Basic */
+
+ body, #skel-layers-wrapper {
+ background: #f3f6fa;
+ }
+
+ body.loading * {
+ -moz-animation: none !important;
+ -webkit-animation: none !important;
+ -o-animation: none !important;
+ -ms-animation: none !important;
+ animation: none !important;
+ -moz-transition: none !important;
+ -webkit-transition: none !important;
+ -o-transition: none !important;
+ -ms-transition: none !important;
+ transition: none !important;
+ }
+
+ body, input, select, textarea {
+ color: #7c8081;
+ font-family: 'Lato', sans-serif;
+ font-size: 15pt;
+ font-weight: 300;
+ letter-spacing: 0.025em;
+ line-height: 1.75em;
+ }
+
+ a {
+ -moz-transition: all 0.2s ease-in-out;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ color: #3fb1a3;
+ text-decoration: none;
+ border-bottom: dotted 1px;
+ }
+
+ a:hover {
+ border-bottom-color: transparent;
+ }
+
+ strong, b {
+ font-weight: 400;
+ }
+
+ p, ul, ol, dl, table, blockquote {
+ margin: 0 0 2em 0;
+ }
+
+ h1, h2, h3, h4, h5, h6 {
+ color: inherit;
+ font-weight: 300;
+ line-height: 1.75em;
+ margin-bottom: 1em;
+ text-transform: uppercase;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: inherit;
+ text-decoration: none;
+ border: 0;
+ }
+
+ h2 {
+ font-size: 1.5em;
+ letter-spacing: 0.1em;
+ }
+
+ h3 {
+ font-size: 1.15em;
+ letter-spacing: 0.025em;
+ }
+
+ sub {
+ font-size: 0.8em;
+ position: relative;
+ top: 0.5em;
+ }
+
+ sup {
+ font-size: 0.8em;
+ position: relative;
+ top: -0.5em;
+ }
+
+ hr {
+ border-top: solid 1px rgba(124, 128, 129, 0.2);
+ border: 0;
+ margin-bottom: 1.5em;
+ }
+
+ blockquote {
+ border-left: solid 0.5em rgba(124, 128, 129, 0.2);
+ font-style: italic;
+ padding: 1em 0 1em 2em;
+ }
+
+ section.special, article.special {
+ text-align: center;
+ }
+
+ header.major {
+ padding-bottom: 2em;
+ }
+
+ header.special {
+ margin-bottom: 5em;
+ padding-top: 7em;
+ position: relative;
+ text-align: center;
+ }
+
+ header.special:before, header.special:after {
+ border-bottom: solid 1.5px;
+ border-top: solid 1.5px;
+ content: '';
+ height: 7px;
+ opacity: 0.1;
+ position: absolute;
+ top: 1.75em;
+ width: 43%;
+ }
+
+ header.special:before {
+ left: 0;
+ }
+
+ header.special:after {
+ right: 0;
+ }
+
+ header.special h2 {
+ margin-bottom: 0;
+ }
+
+ header.special h2 + p {
+ margin-bottom: 0;
+ padding-top: 1.5em;
+ }
+
+ header.special .icon {
+ cursor: default;
+ height: 7em;
+ left: 0;
+ position: absolute;
+ text-align: center;
+ top: 1em;
+ width: 100%;
+ }
+
+ header.special .icon:before {
+ font-size: 3.5em;
+ opacity: 0.35;
+ }
+
+ footer > :last-child {
+ margin-bottom: 0;
+ }
+
+ footer.major {
+ padding-top: 3em;
+ }
+
+/* Form */
+
+ input[type="text"],
+ input[type="password"],
+ input[type="email"],
+ textarea {
+ -moz-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -o-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -ms-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
+ -moz-appearance: none;
+ -webkit-appearance: none;
+ -o-appearance: none;
+ -ms-appearance: none;
+ appearance: none;
+ background: none;
+ border: solid 1px rgba(124, 128, 129, 0.2);
+ color: inherit;
+ display: block;
+ padding: 0.75em;
+ text-decoration: none;
+ width: 100%;
+ outline: 0;
+ }
+
+ input[type="text"]:focus,
+ input[type="password"]:focus,
+ input[type="email"]:focus,
+ textarea:focus {
+ border-color: #83d3c9;
+ }
+
+ input[type="text"],
+ input[type="password"],
+ input[type="email"] {
+ line-height: 1em;
+ }
+
+ ::-webkit-input-placeholder {
+ color: inherit;
+ opacity: 0.5;
+ position: relative;
+ top: 3px;
+ }
+
+ :-moz-placeholder {
+ color: inherit;
+ opacity: 0.5;
+ }
+
+ ::-moz-placeholder {
+ color: inherit;
+ opacity: 0.5;
+ }
+
+ :-ms-input-placeholder {
+ color: inherit;
+ opacity: 0.5;
+ }
+
+ .formerize-placeholder {
+ color: rgba(124, 128, 129, 0.5) !important;
+ }
+
+/* Image */
+
+ .image {
+ border: 0;
+ position: relative;
+ }
+
+ .image:before {
+ background: url("images/overlay.png");
+ content: '';
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ .image.fit {
+ display: block;
+ }
+
+ .image.fit img {
+ display: block;
+ width: 100%;
+ }
+
+ .image.feature {
+ display: block;
+ margin: 0 0 2em 0;
+ }
+
+ .image.feature img {
+ display: block;
+ width: 100%;
+ }
+
+/* Icon */
+
+ .icon {
+ position: relative;
+ }
+
+ .icon:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+ .icon.circle {
+ -moz-transition: all 0.2s ease-in-out;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ border: 0;
+ border-radius: 100%;
+ display: inline-block;
+ font-size: 1.25em;
+ height: 2.25em;
+ left: 0;
+ line-height: 2.25em;
+ text-align: center;
+ text-decoration: none;
+ top: 0;
+ width: 2.25em;
+ }
+
+ .icon.circle:hover {
+ top: -0.2em;
+ }
+
+ .icon.circle.fa-twitter {
+ background: #70aecd;
+ color: white;
+ }
+
+ .icon.circle.fa-twitter:hover {
+ background: #7fb7d2;
+ }
+
+ .icon.circle.fa-facebook {
+ background: #7490c3;
+ color: white;
+ }
+
+ .icon.circle.fa-facebook:hover {
+ background: #829bc9;
+ }
+
+ .icon.circle.fa-google-plus {
+ background: #db6b67;
+ color: white;
+ }
+
+ .icon.circle.fa-google-plus:hover {
+ background: #df7b77;
+ }
+
+ .icon.circle.fa-github {
+ background: #dcad8b;
+ color: white;
+ }
+
+ .icon.circle.fa-github:hover {
+ background: #e1b89b;
+ }
+
+ .icon.circle.fa-dribbble {
+ background: #da83ae;
+ color: white;
+ }
+
+ .icon.circle.fa-dribbble:hover {
+ background: #df93b8;
+ }
+
+ .icon.feature {
+ cursor: default;
+ display: block;
+ margin: 0 0 1.5em 0;
+ opacity: 0.35;
+ text-align: center;
+ }
+
+ .icon.feature:before {
+ font-size: 5em;
+ line-height: 1em;
+ }
+
+ .icon > .label {
+ display: none;
+ }
+
+/* Lists */
+
+ ol.default {
+ list-style: decimal;
+ padding-left: 1.25em;
+ }
+
+ ol.default li {
+ padding-left: 0.25em;
+ }
+
+ ul.default {
+ list-style: disc;
+ padding-left: 1em;
+ }
+
+ ul.default li {
+ padding-left: 0.5em;
+ }
+
+ ul.icons {
+ cursor: default;
+ }
+
+ ul.icons li {
+ display: inline-block;
+ line-height: 1em;
+ padding-left: 0.5em;
+ }
+
+ ul.icons li:first-child {
+ padding-left: 0;
+ }
+
+ ul.feature-icons {
+ cursor: default;
+ margin: -0.75em 0 0 0;
+ opacity: 0.35;
+ overflow: hidden;
+ position: relative;
+ }
+
+ ul.feature-icons li {
+ display: block;
+ float: left;
+ text-align: center;
+ width: 50%;
+ }
+
+ ul.feature-icons li .icon {
+ display: inline-block;
+ font-size: 6.25em;
+ height: 1.25em;
+ line-height: 1.25em;
+ width: 1em;
+ }
+
+ ul.buttons {
+ cursor: default;
+ }
+
+ ul.buttons:last-child {
+ margin-bottom: 0;
+ }
+
+ ul.buttons li {
+ display: inline-block;
+ padding: 0 0 0 1.5em;
+ }
+
+ ul.buttons li:first-child {
+ padding: 0;
+ }
+
+ ul.buttons.vertical li {
+ display: block;
+ padding: 1.5em 0 0 0;
+ }
+
+ ul.buttons.vertical li:first-child {
+ padding: 0;
+ }
+
+/* Tables */
+
+ table {
+ width: 100%;
+ }
+
+ table.default {
+ width: 100%;
+ }
+
+ table.default tbody tr {
+ border-bottom: solid 1px rgba(124, 128, 129, 0.2);
+ }
+
+ table.default td {
+ padding: 0.5em 1em 0.5em 1em;
+ }
+
+ table.default th {
+ font-weight: 400;
+ padding: 0.5em 1em 0.5em 1em;
+ text-align: left;
+ }
+
+ table.default thead {
+ background: #7c8081;
+ color: #fff;
+ }
+
+/* Button */
+
+ .button {
+ background: none;
+ border: solid 1px;
+ color: inherit;
+ display: inline-block;
+ font-size: 0.8em;
+ font-weight: 900;
+ letter-spacing: 2px;
+ min-width: 18em;
+ padding: 0.75em 0;
+ text-align: center;
+ text-decoration: none;
+ text-transform: uppercase;
+ }
+
+ .button:hover {
+ background: rgba(188, 202, 206, 0.15);
+ border-color: inherit;
+ }
+
+ .button.special {
+ background: #83d3c9;
+ border-color: #83d3c9;
+ color: white !important;
+ }
+
+ .button.special:hover {
+ background: #96dad1 !important;
+ border-color: #96dad1 !important;
+ }
+
+ .button.fit {
+ width: 100%;
+ }
+
+ .button.small {
+ font-size: 0.7em;
+ min-width: 14em;
+ padding: 0.5em 0;
+ }
+
+/* Wrapper */
+
+ .wrapper {
+ margin-bottom: 5em;
+ padding: 5em;
+ }
+
+ .wrapper.style1 {
+ padding: 0;
+ }
+
+ .wrapper.style2 {
+ background-color: #83d3c9;
+ background-image: url("images/light-bl.svg"), url("images/light-br.svg");
+ background-position: bottom left, bottom right;
+ background-repeat: no-repeat, no-repeat;
+ background-size: 25em, 25em;
+ color: white;
+ }
+
+ .wrapper.style2 .button:hover {
+ background: rgba(255, 255, 255, 0.15) !important;
+ }
+
+ .wrapper.style2 .button.special {
+ background: white;
+ border-color: white;
+ color: #83d3c9 !important;
+ }
+
+ .wrapper.style2 .button.special:hover {
+ border-color: inherit !important;
+ color: white !important;
+ }
+
+ .wrapper.style3 {
+ background: white;
+ color: inherit;
+ }
+
+ .wrapper.style4 {
+ background: white;
+ color: inherit;
+ padding: 4em;
+ }
+
+/* Header */
+ @-moz-keyframes reveal-header { 0% { top: -5em; } 100% { top: 0; } }
+ @-webkit-keyframes reveal-header { 0% { top: -5em; } 100% { top: 0; } }
+ @-o-keyframes reveal-header { 0% { top: -5em; } 100% { top: 0; } }
+ @-ms-keyframes reveal-header { 0% { top: -5em; } 100% { top: 0; } }
+ @keyframes reveal-header { 0% { top: -5em; } 100% { top: 0; } }
+
+ #header {
+ background: white;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.075);
+ color: inherit;
+ cursor: default;
+ font-size: 0.8em;
+ left: 0;
+ padding: 1em 1.5em;
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 10000;
+ }
+
+ #header h1 {
+ font-weight: 900;
+ margin: 0;
+ }
+
+ #header h1 span {
+ font-weight: 300;
+ }
+
+ #header nav {
+ letter-spacing: 0.075em;
+ position: absolute;
+ right: 1.5em;
+ text-transform: uppercase;
+ top: 0.75em;
+ }
+
+ #header nav ul li {
+ display: inline-block;
+ margin-left: 1.5em;
+ }
+
+ #header nav ul li > ul {
+ display: none;
+ }
+
+ #header nav ul li a {
+ border: solid 1px transparent;
+ color: inherit;
+ display: inline-block;
+ padding: 0em 0.75em;
+ text-decoration: none;
+ }
+
+ #header nav ul li .button {
+ font-size: 1em;
+ min-width: 0;
+ width: auto;
+ }
+
+ #header nav ul li.submenu > a:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+ #header nav ul li.submenu > a:before {
+ content: '\f107';
+ margin-right: 0.65em;
+ }
+
+ #header nav ul li.active > a, #header nav ul li:hover > a {
+ -moz-transition: all 0.2s ease-in-out;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ background: rgba(188, 202, 206, 0.15);
+ }
+
+ #header nav ul li.current > a {
+ font-weight: 900;
+ }
+
+ #header.reveal {
+ -moz-animation: reveal-header 0.5s;
+ -webkit-animation: reveal-header 0.5s;
+ -o-animation: reveal-header 0.5s;
+ -ms-animation: reveal-header 0.5s;
+ animation: reveal-header 0.5s;
+ }
+
+ #header.alt {
+ -moz-animation: none;
+ -webkit-animation: none;
+ -o-animation: none;
+ -ms-animation: none;
+ animation: none;
+ background: transparent;
+ box-shadow: none;
+ color: white;
+ padding: 2em 2.5em;
+ position: absolute;
+ }
+
+ #header.alt nav {
+ right: 2.5em;
+ top: 1.75em;
+ }
+
+ #header.alt nav ul li.active > a, #header.alt nav ul li:hover > a {
+ border: solid 1px;
+ }
+
+/* Dropotron */
+
+ .dropotron {
+ background: #fff;
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.075);
+ line-height: 2.25em;
+ min-width: 13em;
+ padding: 1em 0;
+ text-transform: uppercase;
+ }
+
+ .dropotron.level-0 {
+ font-size: 0.7em;
+ font-weight: 400;
+ margin-top: 1.5em;
+ }
+
+ .dropotron.level-0:before {
+ border-bottom: solid 0.5em #fff;
+ border-left: solid 0.5em transparent;
+ border-right: solid 0.5em transparent;
+ content: '';
+ left: 0.75em;
+ position: absolute;
+ top: -0.45em;
+ }
+
+ .dropotron > li {
+ border-top: solid 1px rgba(124, 128, 129, 0.2);
+ }
+
+ .dropotron > li > a {
+ -moz-transition: none;
+ -webkit-transition: none;
+ -o-transition: none;
+ -ms-transition: none;
+ transition: none;
+ color: inherit;
+ text-decoration: none;
+ padding: 0 1em;
+ border: 0;
+ }
+
+ .dropotron > li:hover > a {
+ background: #83d3c9;
+ color: white;
+ }
+
+ .dropotron > li:first-child {
+ border-top: 0;
+ }
+
+/* Banner */
+ @-moz-keyframes reveal-banner { 0% { opacity: 0; } 100% { opacity: 1; } }
+ @-webkit-keyframes reveal-banner { 0% { opacity: 0; } 100% { opacity: 1; } }
+ @-o-keyframes reveal-banner { 0% { opacity: 0; } 100% { opacity: 1; } }
+ @-ms-keyframes reveal-banner { 0% { opacity: 0; } 100% { opacity: 1; } }
+ @keyframes reveal-banner { 0% { opacity: 0; } 100% { opacity: 1; } }
+
+ #banner {
+ background-attachment: scroll, scroll, scroll, fixed;
+ background-color: #72ebcf;
+ /*background-image: url("images/light-bl.svg"), url("images/light-br.svg"), url("images/overlay.png"), url("../images/banner.jpg");*/
+ background-position: bottom left, bottom right, top left, top center;
+ background-repeat: no-repeat, no-repeat, repeat, no-repeat;
+ background-size: 25em, 25em, auto, cover;
+ color: white;
+ cursor: default;
+ padding: 6em 0;
+ text-align: center;
+ }
+
+ #banner .inner {
+ -moz-animation: reveal-banner 1s 0.25s ease-in-out;
+ -webkit-animation: reveal-banner 1s 0.25s ease-in-out;
+ -o-animation: reveal-banner 1s 0.25s ease-in-out;
+ -ms-animation: reveal-banner 1s 0.25s ease-in-out;
+ animation: reveal-banner 1s 0.25s ease-in-out;
+ -moz-animation-fill-mode: forwards;
+ -webkit-animation-fill-mode: forwards;
+ -o-animation-fill-mode: forwards;
+ -ms-animation-fill-mode: forwards;
+ animation-fill-mode: forwards;
+ color: white;
+ display: inline-block;
+ opacity: 0;
+ padding: 3em;
+ text-align: center;
+ }
+
+ #banner .inner header {
+ display: inline-block;
+ border-bottom: solid 2px;
+ border-top: solid 2px;
+ margin: 0 0 2em 0;
+ padding: 3px 0 3px 0;
+ }
+
+ #banner .inner header h2 {
+ border-bottom: solid 2px;
+ border-top: solid 2px;
+ font-size: 2.5em;
+ font-weight: 900;
+ letter-spacing: 0.2em;
+ margin: 0;
+ padding-left: 0.05em;
+ position: relative;
+ text-transform: uppercase;
+ }
+
+ #banner .inner p {
+ letter-spacing: 0.1em;
+ margin: 0;
+ text-transform: uppercase;
+ margin-top: 1em;
+ }
+
+ #banner .inner p a {
+ color: inherit;
+ font-weight: 400;
+ text-decoration: none;
+ }
+
+ #banner .inner footer {
+ margin: 2em 0 0 0;
+ }
+
+/* Main */
+
+ #main {
+ background-image: url("images/dark-tl.svg"), url("images/dark-tr.svg"), url("images/dark-bl.svg"), url("images/dark-br.svg");
+ background-position: top left, top right, bottom left, bottom right;
+ background-repeat: no-repeat;
+ background-size: 25em;
+ padding: 7em 0;
+ }
+
+ #main > :last-child {
+ margin-bottom: 0;
+ }
+
+ #main .sidebar section {
+ border-top: solid 1px rgba(124, 128, 129, 0.2);
+ margin: 3em 0 0 0;
+ padding: 3em 0 0 0;
+ }
+
+ #main .sidebar section:first-child {
+ border-top: 0;
+ padding-top: 0;
+ margin-top: 0;
+ }
+
+ body.index #main {
+ padding-top: 5em;
+ }
+
+/* CTA */
+
+ #cta {
+ background-attachment: scroll, scroll, scroll, fixed;
+ background-color: #645862;
+ background-image: url("images/light-tl.svg"), url("images/light-tr.svg"), url("images/overlay.png"), url("../images/banner.jpg");
+ background-position: top left, top right, top left, bottom center;
+ background-repeat: no-repeat, no-repeat, repeat, no-repeat;
+ background-size: 25em, 25em, auto, cover;
+ color: white;
+ padding: 5em;
+ text-align: center;
+ }
+
+ #cta header {
+ margin-bottom: 2em;
+ }
+
+/* Footer */
+
+ #footer {
+ background: #e8eef4;
+ color: #7c8081;
+ padding: 5em 5em 10em 5em;
+ text-align: center;
+ }
+
+ #footer .copyright {
+ font-size: 0.8em;
+ }
+
+ #footer .copyright a {
+ color: inherit;
+ }
+
+/* Layers */
+
+ #topButton .toggle {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ width: 100%;
+ }
+
+ #topButton .toggle:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+ #topButton .toggle:before {
+ color: white;
+ content: '\f039';
+ font-size: 0.75em;
+ height: 30px;
+ left: 0;
+ line-height: 30px;
+ opacity: 0.5;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ z-index: 1;
+ }
+
+ #topButton .toggle:after {
+ background: rgba(163, 169, 170, 0.75);
+ border-radius: 0 0 4px 4px;
+ content: '';
+ height: 30px;
+ left: 50%;
+ margin-left: -40px;
+ position: absolute;
+ top: 0;
+ width: 80px;
+ }
+
+ #sideButton .toggle {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ width: 100%;
+ }
+
+ #sideButton .toggle:before {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ }
+
+ #sideButton .toggle:before {
+ color: white;
+ content: '\f039';
+ font-size: 1em;
+ height: 40px;
+ left: 10px;
+ line-height: 40px;
+ opacity: 0.5;
+ position: absolute;
+ top: 11px;
+ width: 60px;
+ z-index: 1;
+ }
+
+ #sideButton .toggle:after {
+ background: rgba(163, 169, 170, 0.75);
+ border-radius: 2px;
+ content: '';
+ height: 40px;
+ left: 10px;
+ position: absolute;
+ top: 10px;
+ width: 60px;
+ }
+
+ #topPanel,
+ #sidePanel {
+ background: #1c2021;
+ color: white;
+ font-size: 0.8em;
+ letter-spacing: 0.075em;
+ text-transform: uppercase;
+ }
+
+ #topPanel nav,
+ #sidePanel nav {
+ padding: 0.25em 0.5em 1em 0.5em;
+ }
+
+ #topPanel .link,
+ #sidePanel .link {
+ border: 0;
+ border-top: solid 1px rgba(255, 255, 255, 0.05);
+ color: inherit;
+ display: block;
+ height: 3em;
+ line-height: 3em;
+ opacity: 0.75;
+ text-decoration: none;
+ }
+
+ #topPanel .link.depth-0,
+ #sidePanel .link.depth-0 {
+ font-weight: 900;
+ }
+
+ #topPanel .link:first-child,
+ #sidePanel .link:first-child {
+ border-top: 0;
+ }
+
+ #topPanel .indent-1,
+ #sidePanel .indent-1 {
+ display: inline-block;
+ width: 1em;
+ }
+
+ #topPanel .indent-2,
+ #sidePanel .indent-2 {
+ display: inline-block;
+ width: 2em;
+ }
+
+ #topPanel .indent-3,
+ #sidePanel .indent-3 {
+ display: inline-block;
+ width: 3em;
+ }
+
+ #topPanel .indent-4,
+ #sidePanel .indent-4 {
+ display: inline-block;
+ width: 4em;
+ }
+
+ #topPanel .indent-5,
+ #sidePanel .indent-5 {
+ display: inline-block;
+ width: 5em;
+ }
+
+.hideItem {
+ display: none;
+ }
diff --git a/style/xd.css b/style/xd.css
new file mode 100644
index 0000000..6abb58f
--- /dev/null
+++ b/style/xd.css
@@ -0,0 +1,329 @@
+strong {
+ font-weight: bold;
+}
+
+#nav {
+ line-height: 20px;
+}
+
+#nav img {
+ vertical-align: text-bottom;
+}
+
+#friendlist-container {
+ width: 100%;
+}
+
+#friendlist {
+ width: 100%;
+}
+
+#friendlist circle, #friendlist text {
+ cursor: pointer;
+ cursor: hand;
+}
+
+#friendlist circle[r="0"] {
+ display: none;
+}
+
+.cube-container {
+ width: 200px;
+ height: 200px;
+ position: relative;
+ margin: 0 auto 40px;
+ }
+
+#cube-outer {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ -webkit-perspective: 1000px;
+ -moz-perspective: 1000px;
+ -o-perspective: 1000px;
+ perspective: 1000px;
+ transition: 1s ease-in-out;
+}
+
+#back-to-banner {
+ transform: translate(0, 50px);
+}
+
+#cube-outer.friend-list {
+ -webkit-transform: translate(0, 1050px) scale(0.3);
+ -moz-transform: translate(0, 1050px) scale(0.3);
+ -o-transform: translate(0, 1050px) scale(0.3);
+ transform: translate(0, 1050px) scale(0.3);
+}
+#cube-outer.friend-list:hover {
+ cursor: pointer;
+}
+#cube-outer.word-cloud {
+ -webkit-transform: translate(400px, 1680px) scale(0.3);
+ -moz-transform: translate(400px, 1680px) scale(0.3);
+ -o-transform: translate(400px, 1680px) scale(0.3);
+ transform: translate(400px, 1680px) scale(0.3);
+}
+
+ #cube {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ -webkit-transform-style: preserve-3d;
+ -moz-transform-style: preserve-3d;
+ -o-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-transition: -webkit-transform 1s;
+ -moz-transition: -moz-transform 1s;
+ -o-transition: -o-transform 1s;
+ transition: transform 1s;
+ }
+
+ #cube figure {
+ display: block;
+ position: absolute;
+ width: 200px;
+ height: 200px;
+ border: 3px solid black;
+ line-height: 196px;
+ font-size: 40px;
+ font-weight: bold;
+ color: #50b9de;
+ text-align: center;
+ }
+
+ #cube.panels-backface-invisible figure {
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ -o-backface-visibility: hidden;
+ backface-visibility: hidden;
+ }
+
+ #cube .front { background: white; }
+ #cube .back { background: white; }
+ #cube .right { background: white; }
+ #cube .left { background: white; }
+ #cube .top { background: white; }
+ #cube .bottom { background: white; }
+
+ #cube .front {
+ -webkit-transform: rotateX( -20deg ) translateZ( 100px );
+ -moz-transform: rotateX( -20deg ) translateZ( 100px );
+ -o-transform: rotateX( -20deg ) translateZ( 100px );
+ transform: rotateX( -20deg ) translateZ( 100px );
+ }
+ #cube .back {
+ -webkit-transform: rotateX( -200deg ) translateZ( 100px );
+ -moz-transform: rotateX( -200deg ) translateZ( 100px );
+ -o-transform: rotateX( -200deg ) translateZ( 100px );
+ transform: rotateX( -200deg ) translateZ( 100px );
+ }
+ #cube .right {
+ -webkit-transform: rotateX( -20deg ) rotateY( 90deg ) translateZ( 100px );
+ -moz-transform: rotateX( -20deg ) rotateY( 90deg ) translateZ( 100px );
+ -o-transform: rotateX( -20deg ) rotateY( 90deg ) translateZ( 100px );
+ transform: rotateX( -20deg ) rotateY( 90deg ) translateZ( 100px );
+ }
+ #cube .left {
+ -webkit-transform: rotateX( -20deg ) rotateY( -90deg ) translateZ( 100px );
+ -moz-transform: rotateX( -20deg ) rotateY( -90deg ) translateZ( 100px );
+ -o-transform: rotateX( -20deg ) rotateY( -90deg ) translateZ( 100px );
+ transform: rotateX( -20deg ) rotateY( -90deg ) translateZ( 100px );
+ }
+ #cube .top {
+ -webkit-transform: rotateX( 70deg ) translateZ( 100px );
+ -moz-transform: rotateX( 70deg ) translateZ( 100px );
+ -o-transform: rotateX( 70deg ) translateZ( 100px );
+ transform: rotateX( 70deg ) translateZ( 100px );
+ }
+ #cube .bottom {
+ -webkit-transform: rotateX( -110deg ) translateZ( 100px );
+ -moz-transform: rotateX( -110deg ) translateZ( 100px );
+ -o-transform: rotateX( -110deg ) translateZ( 100px );
+ transform: rotateX( -110deg ) translateZ( 100px );
+ }
+
+ #cube.show-front {
+ -webkit-transform: translateZ( -100px );
+ -moz-transform: translateZ( -100px );
+ -o-transform: translateZ( -100px );
+ transform: translateZ( -100px );
+ }
+ #cube.show-back {
+ -webkit-transform: translateZ( -100px ) rotateX( -180deg );
+ -moz-transform: translateZ( -100px ) rotateX( -180deg );
+ -o-transform: translateZ( -100px ) rotateX( -180deg );
+ transform: translateZ( -100px ) rotateX( -180deg );
+ }
+ #cube.show-right {
+ -webkit-transform: translateZ( -100px ) rotateY( -90deg ) rotateZ(20deg) rotateX(20deg);
+ -moz-transform: translateZ( -100px ) rotateY( -90deg ) rotateZ(20deg) rotateX(20deg);
+ -o-transform: translateZ( -100px ) rotateY( -90deg ) rotateZ(20deg) rotateX(20deg);
+ transform: translateZ( -100px ) rotateY( -90deg ) rotateZ(20deg) rotateX(20deg);
+ }
+ #cube.show-left {
+ -webkit-transform: translateZ( -100px ) rotateY( 90deg ) rotateZ(-20deg) rotateX(20deg);
+ -moz-transform: translateZ( -100px ) rotateY( 90deg ) rotateZ(-20deg) rotateX(20deg);
+ -o-transform: translateZ( -100px ) rotateY( 90deg ) rotateZ(-20deg) rotateX(20deg);
+ transform: translateZ( -100px ) rotateY( 90deg ) rotateZ(-20deg) rotateX(20deg);
+ }
+ #cube.show-top {
+ -webkit-transform: translateZ( -100px ) rotateX( -90deg );
+ -moz-transform: translateZ( -100px ) rotateX( -90deg );
+ -o-transform: translateZ( -100px ) rotateX( -90deg );
+ transform: translateZ( -100px ) rotateX( -90deg );
+ }
+ #cube.show-bottom {
+ -webkit-transform: translateZ( -100px ) rotateX( 90deg );
+ -moz-transform: translateZ( -100px ) rotateX( 90deg );
+ -o-transform: translateZ( -100px ) rotateX( 90deg );
+ transform: translateZ( -100px ) rotateX( 90deg );
+ }
+
+ #cube.spin {
+ transition: none;
+ -webkit-animation: spin_animation 4s linear 0s infinite;
+ -moz-animation: spin_animation 4s linear 0s infinite;
+ -o-animation: spin_animation 4s linear 0s infinite;
+ animation: spin_animation 4s linear 0s infinite;
+ }
+
+ #cube.loading {
+ animation-duration: 1s;
+ }
+
+ #cube > figure {
+ transition: background-color 1s;
+}
+
+#cube.loading > figure {
+ background: red;
+ }
+
+ @-webkit-keyframes spin_animation { from { transform: translateZ( -100px ) rotateY( 0deg ); } to { transform: translateZ( -100px ) rotateY( 360deg ); } }
+ @-moz-keyframes spin_animation { from { transform: translateZ( -100px ) rotateY( 0deg ); } to { transform: translateZ( -100px ) rotateY( 360deg ); } }
+ @-o-keyframes spin_animation { from { transform: translateZ( -100px ) rotateY( 0deg ); } to { transform: translateZ( -100px ) rotateY( 360deg ); } }
+ @keyframes spin_animation { from { transform: translateZ( -100px ) rotateY( 0deg ); } to { transform: translateZ( -100px ) rotateY( 360deg ); } }
+
+#change-face {
+ position: absolute;
+ right: 25em;
+ top: 15em;
+}
+
+#wc-canvas-hover {
+ position: absolute;
+ border: 2px solid #fff;
+ box-shadow: 0 0 4px 0 #008;
+ padding: 2px;
+ margin: -4px 0 0 -4px;
+ pointer-events: none;
+ transition: transform 0.2s;
+}
+
+#wordcloud-container {
+ position: relative;
+}
+
+#wc-canvas-hover-label {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ background-color: rgba(255, 255, 255, 0.8);
+ color: #333;
+ margin-top: 6px;
+ padding: 0 0.5em;
+ border-radius: 0.5em;
+ white-space: nowrap;
+}
+
+svg:not(:root) {
+ overflow: visible;
+}
+
+circle.hidden {
+ display: none;
+}
+
+text.hidden {
+ display: none;
+}
+
+#friendAvatar{
+ background-color:#fff;
+ background-size:116px auto;
+}
+
+section#friendWrapper{
+ margin-bottom: 0px;
+ padding: 2em 5em;
+}
+
+#wordcloud-break {
+ height: 50px;
+}
+
+.related-ptt {
+ display: none;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ position: absolute;
+ width: 350px;
+ height: 150px;
+ background-color: #44EACE;
+ transform: translate(500px, -140px);
+}
+
+.related-ptt ul {
+ padding: 10px;
+ text-align: left;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.related-ptt li {
+ text-overflow: ellipsis;
+ white-space:nowrap;
+ overflow:hidden;
+ padding-bottom: 5px;
+}
+
+#friendInfoBox {
+ display: inline-block;
+}
+
+#friendInfoBox.hideItem{
+ display: none;
+}
+
+#fblogin.hideItem {
+ visibility: hidden;
+}
+
+.fb_wording {
+ display: inline-block;
+ vertical-align: 60%;
+ margin-left: 0.5em;
+}
+
+.friendInfoBoxHeader {
+ text-align: left;
+}
+
+div.circle_score {
+ line-height: 56px;
+ text-align: center;
+ font-size: 25px;
+ background:rgb(0, 31, 170);
+ /* Firefox */
+ -moz-transition: all 1s ease-in;
+ /* WebKit */
+ -webkit-transition: all 1s ease-in;
+ /* Opera */
+ -o-transition: all 1s ease-in;
+ /* Standard */
+ transition: all 1s ease-in;
+}
+
diff --git a/template.html b/template.html
new file mode 100644
index 0000000..348c908
--- /dev/null
+++ b/template.html
@@ -0,0 +1,71 @@
+
+
+
+
+IDEAS Tech Hackathon
+
+
+
+
+
+ ^____^
+ ( ิω ิ)
+
+
+
+ Change Face
+
+
+
+
+ Login with Facebook
+
+
+
+
+
+
+
+ likeX 1230 msg
+
+ 展開留言
+ 收合留言
+
+
+
+
+
+
+
+
+
diff --git a/vendor/color-thief/.bower.json b/vendor/color-thief/.bower.json
new file mode 100644
index 0000000..0d17e1a
--- /dev/null
+++ b/vendor/color-thief/.bower.json
@@ -0,0 +1,35 @@
+{
+ "name": "color-thief",
+ "homepage": "http://lokeshdhakar.com/projects/color-thief/",
+ "authors": [
+ "Lokesh Dhakar"
+ ],
+ "description": "Grab the dominant color or color palette from an image.",
+ "main": "js/color-thief.js",
+ "keywords": [
+ "color",
+ "palette",
+ "sampling",
+ "image",
+ "picture",
+ "photo",
+ "canvas"
+ ],
+ "license": "CC BY 2.5",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ],
+ "_release": "d515f4c344",
+ "_resolution": {
+ "type": "branch",
+ "branch": "master",
+ "commit": "d515f4c34459a5b2708522a1bd9458f76dd192c6"
+ },
+ "_source": "git://github.com/lokesh/color-thief.git",
+ "_target": "*",
+ "_originalSource": "color-thief"
+}
\ No newline at end of file
diff --git a/vendor/color-thief/Gruntfile.js b/vendor/color-thief/Gruntfile.js
new file mode 100644
index 0000000..0e30ab5
--- /dev/null
+++ b/vendor/color-thief/Gruntfile.js
@@ -0,0 +1,77 @@
+module.exports = function(grunt) {
+
+ grunt.initConfig({
+ host_config: grunt.file.readJSON('.host_config'),
+ compass: {
+ dist: {
+ options: {
+ sassDir: 'examples/sass',
+ cssDir: 'examples/css',
+ environment: 'production'
+ }
+ }
+ },
+ connect: {
+ server: {
+ options: {
+ port: 8000
+ }
+ }
+ },
+ 'ftp-deploy': {
+ build: {
+ auth: {
+ host: '<%- host_config.host %>',
+ port: '<%- host_config.port %>'
+ },
+ src: '.',
+ dest: '<%- host_config.directory %>',
+ exclusions: [
+ '**/.*',
+ '.*',
+ 'bower_components',
+ 'node_modules'
+ ]
+ }
+ },
+ jshint: {
+ files: ['src/color-thief.js']
+ },
+ uglify: {
+ options: {
+ preserveComments: 'some',
+ sourceMap: false
+ },
+ dist: {
+ files: {
+ 'dist/color-thief.min.js': ['src/color-thief.js']
+ }
+ }
+ },
+ watch: {
+ sass: {
+ files: ['examples/sass/*.sass'],
+ tasks: ['compass'],
+ options: {
+ livereload: true,
+ spawn: false
+ },
+ },
+ test: {
+ files: ['src/color-thief.js'],
+ tasks: ['jshint']
+ }
+ }
+ });
+
+ grunt.loadNpmTasks('grunt-contrib-compass');
+ grunt.loadNpmTasks('grunt-contrib-connect');
+ grunt.loadNpmTasks('grunt-contrib-jshint');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+ grunt.loadNpmTasks('grunt-ftp-deploy');
+
+
+ grunt.registerTask('default', ['compass', 'connect', 'watch']);
+ grunt.registerTask('build', ['compass', 'jshint', 'uglify']);
+};
\ No newline at end of file
diff --git a/vendor/color-thief/HISTORY.md b/vendor/color-thief/HISTORY.md
new file mode 100644
index 0000000..975b9d0
--- /dev/null
+++ b/vendor/color-thief/HISTORY.md
@@ -0,0 +1,13 @@
+v2.0.0
+---
+- Embed quantize into color thief file
+- Strip out jQuery requirement
+- Credit those who helped with edits - Nathan Spady for drag and drop support.
+
+**Demo page and example changes**
+
+- Don't show yellow circle buttons till images have loaded
+- Add FB and Twitter buttons
+- Add drag n drop support
+- Make design responsive
+- Touch support on demo page
diff --git a/vendor/color-thief/README.md b/vendor/color-thief/README.md
new file mode 100644
index 0000000..583c41e
--- /dev/null
+++ b/vendor/color-thief/README.md
@@ -0,0 +1,50 @@
+#Color Thief
+
+A script for grabbing the color palette from an image. Uses Javascript and the canvas tag to make it happen.
+
+[See a Demo](http://lokeshdhakar.com/projects/color-thief) | [Read more on my blog](http://lokeshdhakar.com/color-thief)
+
+##How to use
+
+###Get the dominant color from an image
+```js
+var colorThief = new ColorThief();
+colorThief.getColor(sourceImage);
+```
+
+```js
+getColor(sourceImage[, quality])
+returns {r: num, g: num, b: num}
+```
+
+###Build a color palette from an image
+
+In this example, we build an 8 color palette.
+
+```js
+var colorThief = new ColorThief();
+colorThief.getPalette(sourceImage, 8);
+```
+
+```js
+getPalette(sourceImage[, colorCount, quality])
+returns [ [num, num, num], [num, num, num], ... ]
+```
+
+##Credits and license
+
+###Author
+by Lokesh Dhakar
+[lokeshdhakar.com](http://www.lokeshdhakar.com)
+[twitter.com/lokesh](http://twitter.com/lokesh)
+
+###Thanks
+* Nick Rabinowitz - For creating quantize.js.
+* John Schulz - For clean up and optimization. @JFSIII
+* Nathan Spady - For adding drag and drop support to the demo page.
+
+###License
+Licensed under the [Creative Commons Attribution 2.5 License](http://creativecommons.org/licenses/by/2.5/)
+
+* Free for use in both personal and commercial projects.
+* Attribution requires leaving author name, author homepage link, and the license info intact.
diff --git a/vendor/color-thief/bower.json b/vendor/color-thief/bower.json
new file mode 100644
index 0000000..167fdf4
--- /dev/null
+++ b/vendor/color-thief/bower.json
@@ -0,0 +1,27 @@
+{
+ "name": "color-thief",
+ "version": "2.0.0",
+ "homepage": "http://lokeshdhakar.com/projects/color-thief/",
+ "authors": [
+ "Lokesh Dhakar"
+ ],
+ "description": "Grab the dominant color or color palette from an image.",
+ "main": "js/color-thief.js",
+ "keywords": [
+ "color",
+ "palette",
+ "sampling",
+ "image",
+ "picture",
+ "photo",
+ "canvas"
+ ],
+ "license": "CC BY 2.5",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ]
+}
diff --git a/vendor/color-thief/dist/color-thief.min.js b/vendor/color-thief/dist/color-thief.min.js
new file mode 100644
index 0000000..bb88218
--- /dev/null
+++ b/vendor/color-thief/dist/color-thief.min.js
@@ -0,0 +1,26 @@
+/*!
+ * Color Thief v2.0
+ * by Lokesh Dhakar - http://www.lokeshdhakar.com
+ *
+ * License
+ * -------
+ * Creative Commons Attribution 2.5 License:
+ * http://creativecommons.org/licenses/by/2.5/
+ *
+ * Thanks
+ * ------
+ * Nick Rabinowitz - For creating quantize.js.
+ * John Schulz - For clean up and optimization. @JFSIII
+ * Nathan Spady - For adding drag and drop support to the demo page.
+ *
+ */
+var CanvasImage=function(a){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),document.body.appendChild(this.canvas),this.width=this.canvas.width=a.width,this.height=this.canvas.height=a.height,this.context.drawImage(a,0,0,this.width,this.height)};CanvasImage.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},CanvasImage.prototype.update=function(a){this.context.putImageData(a,0,0)},CanvasImage.prototype.getPixelCount=function(){return this.width*this.height},CanvasImage.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},CanvasImage.prototype.removeCanvas=function(){this.canvas.parentNode.removeChild(this.canvas)};var ColorThief=function(){};/*!
+ * quantize.js Copyright 2008 Nick Rabinowitz.
+ * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+ */
+/*!
+ * Block below copied from Protovis: http://mbostock.github.com/protovis/
+ * Copyright 2010 Stanford Visualization Group
+ * Licensed under the BSD License: http://www.opensource.org/licenses/bsd-license.php
+ */
+if(ColorThief.prototype.getColor=function(a,b){var c=this.getPalette(a,5,b),d=c[0];return d},ColorThief.prototype.getPalette=function(a,b,c){"undefined"==typeof b&&(b=10),"undefined"==typeof c&&(c=10);for(var d,e,f,g,h,i=new CanvasImage(a),j=i.getImageData(),k=j.data,l=i.getPixelCount(),m=[],n=0;l>n;n+=c)d=4*n,e=k[d+0],f=k[d+1],g=k[d+2],h=k[d+3],h>=125&&(e>250&&f>250&&g>250||m.push([e,f,g]));var o=MMCQ.quantize(m,b),p=o.palette();return i.removeCanvas(),p},!pv)var pv={map:function(a,b){var c={};return b?a.map(function(a,d){return c.index=d,b.call(c,a)}):a.slice()},naturalOrder:function(a,b){return b>a?-1:a>b?1:0},sum:function(a,b){var c={};return a.reduce(b?function(a,d,e){return c.index=e,a+b.call(c,d)}:function(a,b){return a+b},0)},max:function(a,b){return Math.max.apply(null,b?pv.map(a,b):a)}};var MMCQ=function(){function a(a,b,c){return(a<<2*i)+(b<>j,e=b[1]>>j,f=b[2]>>j,c=a(d,e,f),h[c]=(h[c]||0)+1}),h}function f(a,b){var d,e,f,g=1e6,h=0,i=1e6,k=0,l=1e6,m=0;return a.forEach(function(a){d=a[0]>>j,e=a[1]>>j,f=a[2]>>j,g>d?g=d:d>h&&(h=d),i>e?i=e:e>k&&(k=e),l>f?l=f:f>m&&(m=f)}),new c(g,h,i,k,l,m,b)}function g(b,c){function d(a){var b,d,e,f,g,h=a+"1",j=a+"2",k=0;for(i=c[h];i<=c[j];i++)if(o[i]>n/2){for(e=c.copy(),f=c.copy(),b=i-c[h],d=c[j]-i,g=d>=b?Math.min(c[j]-1,~~(i+d/2)):Math.max(c[h],~~(i-1-b/2));!o[g];)g++;for(k=p[g];!k&&o[g-1];)k=p[--g];return e[j]=g,f[h]=e[j]+1,[e,f]}}if(c.count()){var e=c.r2-c.r1+1,f=c.g2-c.g1+1,g=c.b2-c.b1+1,h=pv.max([e,f,g]);if(1==c.count())return[c.copy()];var i,j,k,l,m,n=0,o=[],p=[];if(h==e)for(i=c.r1;i<=c.r2;i++){for(l=0,j=c.g1;j<=c.g2;j++)for(k=c.b1;k<=c.b2;k++)m=a(i,j,k),l+=b[m]||0;n+=l,o[i]=n}else if(h==f)for(i=c.g1;i<=c.g2;i++){for(l=0,j=c.r1;j<=c.r2;j++)for(k=c.b1;k<=c.b2;k++)m=a(j,i,k),l+=b[m]||0;n+=l,o[i]=n}else for(i=c.b1;i<=c.b2;i++){for(l=0,j=c.r1;j<=c.r2;j++)for(k=c.g1;k<=c.g2;k++)m=a(j,k,i),l+=b[m]||0;n+=l,o[i]=n}return o.forEach(function(a,b){p[b]=n-a}),d(h==e?"r":h==f?"g":"b")}}function h(a,c){function h(a,b){for(var c,d=1,e=0;k>e;)if(c=a.pop(),c.count()){var f=g(i,c),h=f[0],j=f[1];if(!h)return;if(a.push(h),j&&(a.push(j),d++),d>=b)return;if(e++>k)return}else a.push(c),e++}if(!a.length||2>c||c>256)return!1;var i=e(a),j=0;i.forEach(function(){j++});var m=f(a,i),n=new b(function(a,b){return pv.naturalOrder(a.count(),b.count())});n.push(m),h(n,l*c);for(var o=new b(function(a,b){return pv.naturalOrder(a.count()*a.volume(),b.count()*b.volume())});n.size();)o.push(n.pop());h(o,c-o.size());for(var p=new d;o.size();)p.push(o.pop());return p}var i=5,j=8-i,k=1e3,l=.75;return c.prototype={volume:function(a){var b=this;return(!b._volume||a)&&(b._volume=(b.r2-b.r1+1)*(b.g2-b.g1+1)*(b.b2-b.b1+1)),b._volume},count:function(b){var c=this,d=c.histo;if(!c._count_set||b){var e,f,g,h=0;for(e=c.r1;e<=c.r2;e++)for(f=c.g1;f<=c.g2;f++)for(g=c.b1;g<=c.b2;g++)index=a(e,f,g),h+=d[index]||0;c._count=h,c._count_set=!0}return c._count},copy:function(){var a=this;return new c(a.r1,a.r2,a.g1,a.g2,a.b1,a.b2,a.histo)},avg:function(b){var c=this,d=c.histo;if(!c._avg||b){var e,f,g,h,j,k=0,l=1<<8-i,m=0,n=0,o=0;for(f=c.r1;f<=c.r2;f++)for(g=c.g1;g<=c.g2;g++)for(h=c.b1;h<=c.b2;h++)j=a(f,g,h),e=d[j]||0,k+=e,m+=e*(f+.5)*l,n+=e*(g+.5)*l,o+=e*(h+.5)*l;c._avg=k?[~~(m/k),~~(n/k),~~(o/k)]:[~~(l*(c.r1+c.r2+1)/2),~~(l*(c.g1+c.g2+1)/2),~~(l*(c.b1+c.b2+1)/2)]}return c._avg},contains:function(a){var b=this,c=a[0]>>j;return gval=a[1]>>j,bval=a[2]>>j,c>=b.r1&&c<=b.r2&&gval>=b.g1&&gval<=b.g2&&bval>=b.b1&&bval<=b.b2}},d.prototype={push:function(a){this.vboxes.push({vbox:a,color:a.avg()})},palette:function(){return this.vboxes.map(function(a){return a.color})},size:function(){return this.vboxes.size()},map:function(a){for(var b=this.vboxes,c=0;cc||void 0===b)&&(b=c,d=e.peek(f).color);return d},forcebw:function(){var a=this.vboxes;a.sort(function(a,b){return pv.naturalOrder(pv.sum(a.color),pv.sum(b.color))});var b=a[0].color;b[0]<5&&b[1]<5&&b[2]<5&&(a[0].color=[0,0,0]);var c=a.length-1,d=a[c].color;d[0]>251&&d[1]>251&&d[2]>251&&(a[c].color=[255,255,255])}},{quantize:h}}();
\ No newline at end of file
diff --git a/vendor/color-thief/examples/css/screen.css b/vendor/color-thief/examples/css/screen.css
new file mode 100644
index 0000000..783b394
--- /dev/null
+++ b/vendor/color-thief/examples/css/screen.css
@@ -0,0 +1 @@
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{background:#fff;color:#000;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}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}input[type='checkbox'],input[type='radio']{box-sizing:border-box;padding:0}input[type='search']{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type='search']::-webkit-search-cancel-button,input[type='search']::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}html{font:87%/1.5 "Karla","lucida grande",sans-serif,sans-serif;font-weight:400}@media (min-width: 40rem){html{font-size:100%}}@media (min-width: 64rem){html{font-size:106%}}body{color:#777;background-color:#f3f3f3}h1,h2,h3,h4,h5{color:#222;line-height:1.2em;font-family:"Montserrat","Helvetica",sans-serif;font-weight:700}h1{font-size:4rem;margin:0 0 0.2em 0;line-height:1.1em}@media (min-width: 40rem){h1{font-size:4.5rem}}@media (min-width: 64rem){h1{font-size:5rem}}h2{color:#e67e39;margin-bottom:1.5rem;font-size:1.5rem;text-transform:uppercase}@media (min-width: 40rem){h2{font-size:2rem}}h3{font-size:1.2rem;margin-bottom:0.5rem}p{margin:0 auto 2em auto;text-align:left}.lead{max-width:50rem;margin-bottom:1.4rem;font-size:1.1rem}@media (min-width: 40rem){.lead{font-size:1.25rem}}strong{font-weight:bold}a{color:#4ae;text-decoration:none}a:hover{text-decoration:underline}::-moz-selection,::selection{background:#e67e39;color:#fff}code{color:#aaa;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px;font-family:Consolas,Courier,monospace;font-size:0.9rem;padding:0.1rem 0.3rem;position:relative;top:-1px}ul{margin:0;text-align:left}@media (min-width: 40rem){ul{display:inline-block}}.button{display:block;padding:0.7rem 2rem;margin-bottom:0.5rem;border:none;color:#fff;background-color:#4ae;font-size:1.1rem;font-weight:bold;text-transform:uppercase;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px;vertical-align:middle;white-space:nowrap}.button:hover{background:#1595ea;text-decoration:none}@media (min-width: 40rem){.button{display:inline-block;margin:0 0.25rem}}.button-minor{padding:0.35rem 1rem;border:2px solid #4ae;color:#4ae;background-color:transparent;font-size:0.8rem}.button-minor:hover{color:#fff}hr{border:0;border-top:2px solid #e6e6e6;margin:2rem auto;width:3rem}@media (min-width: 40rem){hr{margin:2.5rem auto}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;padding:0;background:#f3f3f3}section{border-top:2px solid #e6e6e6;text-align:center;padding:1.5rem 0}section:first-of-type{border-top:none}@media (min-width: 40rem){section{padding:2rem 0}}.container{margin:0 auto;max-width:40rem;width:90%}header{padding:4rem 0 2rem 0;background-color:#fff;text-align:center}header p{text-align:center}@media (min-width: 40rem){header{padding:2rem 0}}.image-section{margin-bottom:80px}.image-section .image-wrap{position:relative;line-height:1em}.examples-section .image-section .target-image{-moz-border-radius-bottomleft:8px;-webkit-border-bottom-left-radius:8px;border-bottom-left-radius:8px;-moz-border-radius-bottomright:8px;-webkit-border-bottom-right-radius:8px;border-bottom-right-radius:8px}.examples-section .image-section.with-color-thief-output .target-image{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0}.run-functions-button{position:absolute;top:50%;left:50%;width:8rem;height:8rem;margin-top:-4rem;margin-left:-4rem;border:none;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;color:#777;background-color:#fdf485;font-size:2rem;font-weight:bold;cursor:pointer;text-transform:uppercase;outline:none}.run-functions-button:hover{-webkit-transform:scale(1.1, 1.1);-moz-transform:scale(1.1, 1.1);-ms-transform:scale(1.1, 1.1);-o-transform:scale(1.1, 1.1);transform:scale(1.1, 1.1);-webkit-transition:-webkit-transform 0.2s;-moz-transition:-moz-transform 0.2s;-o-transition:-o-transform 0.2s;transition:transform 0.2s}.run-functions-button:active{-webkit-transform:scale(0.9, 0.9);-moz-transform:scale(0.9, 0.9);-ms-transform:scale(0.9, 0.9);-o-transform:scale(0.9, 0.9);transform:scale(0.9, 0.9)}.run-functions-button.hide{background-color:#fdf485;color:#777;-webkit-transition:-webkit-transform 0.8s,top 0.8s cubic-bezier(0.22, -0.37, 0.75, 0.75);-moz-transition:-moz-transform 0.8s,top 0.8s cubic-bezier(0.22, -0.37, 0.75, 0.75);-o-transition:-o-transform 0.8s,top 0.8s cubic-bezier(0.22, -0.37, 0.75, 0.75);transition:transform 0.8s,top 0.8s cubic-bezier(0.22, -0.37, 0.75, 0.75);top:105%;-webkit-transform:scale(0, 0);-moz-transform:scale(0, 0);-ms-transform:scale(0, 0);-o-transform:scale(0, 0);transform:scale(0, 0)}.touch .touch-label{display:inline}.touch .no-touch-label{display:none}.no-touch .touch-label{display:none}.no-touch .no-touch-label{display:inline}.target-image{display:block;width:100%;-moz-border-radius-topleft:8px;-webkit-border-top-left-radius:8px;border-top-left-radius:8px;-moz-border-radius-topright:8px;-webkit-border-top-right-radius:8px;border-top-right-radius:8px}.color-thief-output{display:none;padding:1.5rem;background-color:#fff;border:1px solid #e6e6e6;border-top-width:0;-moz-border-radius-bottomleft:8px;-webkit-border-bottom-left-radius:8px;border-bottom-left-radius:8px;-moz-border-radius-bottomright:8px;-webkit-border-bottom-right-radius:8px;border-bottom-right-radius:8px}.function-title{margin-top:0}.function{margin-bottom:1.5rem}.swatch{display:inline-block;margin:0;background:#ddd}@media (min-width: 40rem){.swatch{margin-right:-2px}}.get-color .swatch{width:6rem;height:3rem}.get-palette .swatch{width:3rem;height:2rem}@media (min-width: 40rem){.get-palette .swatch{width:4rem;height:2.7rem}}canvas{display:none}footer{padding:2rem 0;background-color:#fff;text-align:center}footer p{text-align:center}footer .button{margin-top:0.5rem}.sharing-section{position:fixed;z-index:10;top:20px;right:0}.drag-drop-section{display:none}.drop-zone{height:25rem;margin-bottom:4rem;background-color:#222;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px}.drop-zone.dragging{font-weight:700;-webkit-box-shadow:inset 0 0 0 8px #4ae;-moz-box-shadow:inset 0 0 0 8px #4ae;box-shadow:inset 0 0 0 8px #4ae}.drop-zone.dragging .drop-zone-label{color:#4ae}.drop-zone.dragging .default-label{display:none}.drop-zone.dragging .dragging-label{display:block}.drop-zone-label{position:relative;top:11rem;color:#fdf485;font-size:1.8rem;text-align:center;pointer-events:none;text-transform:uppercase;-webkit-border-radius:8px;-moz-border-radius:8px;-ms-border-radius:8px;-o-border-radius:8px;border-radius:8px}@media (min-width: 40rem){.drop-zone-label{top:10.5rem;font-size:2.4rem}}.dragging-label{display:none}.dropped-image .run-functions-button{display:none}
diff --git a/vendor/color-thief/examples/img/photo1.jpg b/vendor/color-thief/examples/img/photo1.jpg
new file mode 100644
index 0000000..ee92327
Binary files /dev/null and b/vendor/color-thief/examples/img/photo1.jpg differ
diff --git a/vendor/color-thief/examples/img/photo2.jpg b/vendor/color-thief/examples/img/photo2.jpg
new file mode 100644
index 0000000..350e738
Binary files /dev/null and b/vendor/color-thief/examples/img/photo2.jpg differ
diff --git a/vendor/color-thief/examples/img/photo3.jpg b/vendor/color-thief/examples/img/photo3.jpg
new file mode 100644
index 0000000..792469b
Binary files /dev/null and b/vendor/color-thief/examples/img/photo3.jpg differ
diff --git a/vendor/color-thief/examples/js/demo.js b/vendor/color-thief/examples/js/demo.js
new file mode 100644
index 0000000..e035cd3
--- /dev/null
+++ b/vendor/color-thief/examples/js/demo.js
@@ -0,0 +1,140 @@
+/*! Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-canvas-draganddrop-touch-shiv-cssclasses-teststyles-hasevent-prefixes-css_pointerevents-file_api-load
+ */
+;window.Modernizr=function(a,b,c){function x(a){j.cssText=a}function y(a,b){return x(m.join(a+";")+(b||""))}function z(a,b){return typeof a===b}function A(a,b){return!!~(""+a).indexOf(b)}function B(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:z(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={},o={},p={},q=[],r=q.slice,s,t=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},u=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=z(e[d],"function"),z(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),v={}.hasOwnProperty,w;!z(v,"undefined")&&!z(v.call,"undefined")?w=function(a,b){return v.call(a,b)}:w=function(a,b){return b in a&&z(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=r.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(r.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(r.call(arguments)))};return e}),n.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},n.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:t(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},n.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a};for(var C in n)w(n,C)&&(s=C.toLowerCase(),e[s]=n[C](),q.push((e[s]?"":"no-")+s));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)w(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},x(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.hasEvent=u,e.testStyles=t,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+q.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f= 0 && j < len ? [ this[j] ] : [] );
+ },
+
+ end: function() {
+ return this.prevObject || this.constructor(null);
+ },
+
+ // For internal use only.
+ // Behaves like an Array's method, not like a jQuery method.
+ push: push,
+ sort: arr.sort,
+ splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+
+ // skip the boolean and the target
+ target = arguments[ i ] || {};
+ i++;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( i === length ) {
+ target = this;
+ i--;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging plain objects or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+ if ( copyIsArray ) {
+ copyIsArray = false;
+ clone = src && jQuery.isArray(src) ? src : [];
+
+ } else {
+ clone = src && jQuery.isPlainObject(src) ? src : {};
+ }
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ // Unique for each copy of jQuery on the page
+ expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+ // Assume jQuery is ready without the ready module
+ isReady: true,
+
+ error: function( msg ) {
+ throw new Error( msg );
+ },
+
+ noop: function() {},
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ return jQuery.type(obj) === "function";
+ },
+
+ isArray: Array.isArray,
+
+ isWindow: function( obj ) {
+ return obj != null && obj === obj.window;
+ },
+
+ isNumeric: function( obj ) {
+ // parseFloat NaNs numeric-cast false positives (null|true|false|"")
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+ // subtraction forces infinities to NaN
+ return obj - parseFloat( obj ) >= 0;
+ },
+
+ isPlainObject: function( obj ) {
+ // Not plain objects:
+ // - Any object or value whose internal [[Class]] property is not "[object Object]"
+ // - DOM nodes
+ // - window
+ if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ // Support: Firefox <20
+ // The try/catch suppresses exceptions thrown when attempting to access
+ // the "constructor" property of certain host objects, ie. |window.location|
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=814622
+ try {
+ if ( obj.constructor &&
+ !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
+ return false;
+ }
+ } catch ( e ) {
+ return false;
+ }
+
+ // If the function hasn't returned already, we're confident that
+ // |obj| is a plain object, created by {} or constructed with new Object
+ return true;
+ },
+
+ isEmptyObject: function( obj ) {
+ var name;
+ for ( name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ type: function( obj ) {
+ if ( obj == null ) {
+ return obj + "";
+ }
+ // Support: Android < 4.0, iOS < 6 (functionish RegExp)
+ return typeof obj === "object" || typeof obj === "function" ?
+ class2type[ toString.call(obj) ] || "object" :
+ typeof obj;
+ },
+
+ // Evaluates a script in a global context
+ globalEval: function( code ) {
+ var script,
+ indirect = eval;
+
+ code = jQuery.trim( code );
+
+ if ( code ) {
+ // If the code includes a valid, prologue position
+ // strict mode pragma, execute code by injecting a
+ // script tag into the document.
+ if ( code.indexOf("use strict") === 1 ) {
+ script = document.createElement("script");
+ script.text = code;
+ document.head.appendChild( script ).parentNode.removeChild( script );
+ } else {
+ // Otherwise, avoid the DOM node creation, insertion
+ // and removal by using an indirect global eval
+ indirect( code );
+ }
+ }
+ },
+
+ // Convert dashed to camelCase; used by the css and data modules
+ // Microsoft forgot to hump their vendor prefix (#9572)
+ camelCase: function( string ) {
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+ },
+
+ nodeName: function( elem, name ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+ },
+
+ // args is for internal usage only
+ each: function( obj, callback, args ) {
+ var value,
+ i = 0,
+ length = obj.length,
+ isArray = isArraylike( obj );
+
+ if ( args ) {
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback.apply( obj[ i ], args );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ value = callback.apply( obj[ i ], args );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback.call( obj[ i ], i, obj[ i ] );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( i in obj ) {
+ value = callback.call( obj[ i ], i, obj[ i ] );
+
+ if ( value === false ) {
+ break;
+ }
+ }
+ }
+ }
+
+ return obj;
+ },
+
+ trim: function( text ) {
+ return text == null ? "" : trim.call( text );
+ },
+
+ // results is for internal usage only
+ makeArray: function( arr, results ) {
+ var ret = results || [];
+
+ if ( arr != null ) {
+ if ( isArraylike( Object(arr) ) ) {
+ jQuery.merge( ret,
+ typeof arr === "string" ?
+ [ arr ] : arr
+ );
+ } else {
+ push.call( ret, arr );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, arr, i ) {
+ return arr == null ? -1 : indexOf.call( arr, elem, i );
+ },
+
+ merge: function( first, second ) {
+ var len = +second.length,
+ j = 0,
+ i = first.length;
+
+ for ( ; j < len; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, invert ) {
+ var callbackInverse,
+ matches = [],
+ i = 0,
+ length = elems.length,
+ callbackExpect = !invert;
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( ; i < length; i++ ) {
+ callbackInverse = !callback( elems[ i ], i );
+ if ( callbackInverse !== callbackExpect ) {
+ matches.push( elems[ i ] );
+ }
+ }
+
+ return matches;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ var value,
+ i = 0,
+ length = elems.length,
+ isArray = isArraylike( elems ),
+ ret = [];
+
+ // Go through the array, translating each of the items to their new values
+ if ( isArray ) {
+ for ( ; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+
+ // Go through every key on the object,
+ } else {
+ for ( i in elems ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret.push( value );
+ }
+ }
+ }
+
+ // Flatten any nested arrays
+ return concat.apply( [], ret );
+ },
+
+ // A global GUID counter for objects
+ guid: 1,
+
+ // Bind a function to a context, optionally partially applying any
+ // arguments.
+ proxy: function( fn, context ) {
+ var tmp, args, proxy;
+
+ if ( typeof context === "string" ) {
+ tmp = fn[ context ];
+ context = fn;
+ fn = tmp;
+ }
+
+ // Quick check to determine if target is callable, in the spec
+ // this throws a TypeError, but we will just return undefined.
+ if ( !jQuery.isFunction( fn ) ) {
+ return undefined;
+ }
+
+ // Simulated bind
+ args = slice.call( arguments, 2 );
+ proxy = function() {
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+ };
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+ return proxy;
+ },
+
+ now: Date.now,
+
+ // jQuery.support is not used in Core but other projects attach their
+ // properties to it so it needs to exist.
+ support: support
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
+ class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+function isArraylike( obj ) {
+ var length = obj.length,
+ type = jQuery.type( obj );
+
+ if ( type === "function" || jQuery.isWindow( obj ) ) {
+ return false;
+ }
+
+ if ( obj.nodeType === 1 && length ) {
+ return true;
+ }
+
+ return type === "array" || length === 0 ||
+ typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v1.10.16
+ * http://sizzlejs.com/
+ *
+ * Copyright 2013 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-01-13
+ */
+(function( window ) {
+
+var i,
+ support,
+ Expr,
+ getText,
+ isXML,
+ compile,
+ outermostContext,
+ sortInput,
+ hasDuplicate,
+
+ // Local document vars
+ setDocument,
+ document,
+ docElem,
+ documentIsHTML,
+ rbuggyQSA,
+ rbuggyMatches,
+ matches,
+ contains,
+
+ // Instance-specific data
+ expando = "sizzle" + -(new Date()),
+ preferredDoc = window.document,
+ dirruns = 0,
+ done = 0,
+ classCache = createCache(),
+ tokenCache = createCache(),
+ compilerCache = createCache(),
+ sortOrder = function( a, b ) {
+ if ( a === b ) {
+ hasDuplicate = true;
+ }
+ return 0;
+ },
+
+ // General-purpose constants
+ strundefined = typeof undefined,
+ MAX_NEGATIVE = 1 << 31,
+
+ // Instance methods
+ hasOwn = ({}).hasOwnProperty,
+ arr = [],
+ pop = arr.pop,
+ push_native = arr.push,
+ push = arr.push,
+ slice = arr.slice,
+ // Use a stripped-down indexOf if we can't use a native one
+ indexOf = arr.indexOf || function( elem ) {
+ var i = 0,
+ len = this.length;
+ for ( ; i < len; i++ ) {
+ if ( this[i] === elem ) {
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+ // Regular expressions
+
+ // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+ whitespace = "[\\x20\\t\\r\\n\\f]",
+ // http://www.w3.org/TR/css3-syntax/#characters
+ characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+ // Loosely modeled on CSS identifier characters
+ // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
+ // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+ identifier = characterEncoding.replace( "w", "w#" ),
+
+ // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
+ attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+ "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
+
+ // Prefer arguments quoted,
+ // then not containing pseudos/brackets,
+ // then attribute selectors/non-parenthetical expressions,
+ // then anything else
+ // These preferences are here to reduce the number of selectors
+ // needing tokenize in the PSEUDO preFilter
+ pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
+
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+ rpseudo = new RegExp( pseudos ),
+ ridentifier = new RegExp( "^" + identifier + "$" ),
+
+ matchExpr = {
+ "ID": new RegExp( "^#(" + characterEncoding + ")" ),
+ "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+ "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+ "ATTR": new RegExp( "^" + attributes ),
+ "PSEUDO": new RegExp( "^" + pseudos ),
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+ // For use in libraries implementing .is()
+ // We use this for POS matching in `select`
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+ },
+
+ rinputs = /^(?:input|select|textarea|button)$/i,
+ rheader = /^h\d$/i,
+
+ rnative = /^[^{]+\{\s*\[native \w/,
+
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+ rsibling = /[+~]/,
+ rescape = /'|\\/g,
+
+ // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+ funescape = function( _, escaped, escapedWhitespace ) {
+ var high = "0x" + escaped - 0x10000;
+ // NaN means non-codepoint
+ // Support: Firefox
+ // Workaround erroneous numeric interpretation of +"0x"
+ return high !== high || escapedWhitespace ?
+ escaped :
+ high < 0 ?
+ // BMP codepoint
+ String.fromCharCode( high + 0x10000 ) :
+ // Supplemental Plane codepoint (surrogate pair)
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+ };
+
+// Optimize for push.apply( _, NodeList )
+try {
+ push.apply(
+ (arr = slice.call( preferredDoc.childNodes )),
+ preferredDoc.childNodes
+ );
+ // Support: Android<4.0
+ // Detect silently failing push.apply
+ arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+ push = { apply: arr.length ?
+
+ // Leverage slice if possible
+ function( target, els ) {
+ push_native.apply( target, slice.call(els) );
+ } :
+
+ // Support: IE<9
+ // Otherwise append directly
+ function( target, els ) {
+ var j = target.length,
+ i = 0;
+ // Can't trust NodeList.length
+ while ( (target[j++] = els[i++]) ) {}
+ target.length = j - 1;
+ }
+ };
+}
+
+function Sizzle( selector, context, results, seed ) {
+ var match, elem, m, nodeType,
+ // QSA vars
+ i, groups, old, nid, newContext, newSelector;
+
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+ setDocument( context );
+ }
+
+ context = context || document;
+ results = results || [];
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( documentIsHTML && !seed ) {
+
+ // Shortcuts
+ if ( (match = rquickExpr.exec( selector )) ) {
+ // Speed-up: Sizzle("#ID")
+ if ( (m = match[1]) ) {
+ if ( nodeType === 9 ) {
+ elem = context.getElementById( m );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document (jQuery #6963)
+ if ( elem && elem.parentNode ) {
+ // Handle the case where IE, Opera, and Webkit return items
+ // by name instead of ID
+ if ( elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ } else {
+ return results;
+ }
+ } else {
+ // Context is not a document
+ if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+ contains( context, elem ) && elem.id === m ) {
+ results.push( elem );
+ return results;
+ }
+ }
+
+ // Speed-up: Sizzle("TAG")
+ } else if ( match[2] ) {
+ push.apply( results, context.getElementsByTagName( selector ) );
+ return results;
+
+ // Speed-up: Sizzle(".CLASS")
+ } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
+ push.apply( results, context.getElementsByClassName( m ) );
+ return results;
+ }
+ }
+
+ // QSA path
+ if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+ nid = old = expando;
+ newContext = context;
+ newSelector = nodeType === 9 && selector;
+
+ // qSA works strangely on Element-rooted queries
+ // We can work around this by specifying an extra ID on the root
+ // and working up from there (Thanks to Andrew Dupont for the technique)
+ // IE 8 doesn't work on object elements
+ if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+ groups = tokenize( selector );
+
+ if ( (old = context.getAttribute("id")) ) {
+ nid = old.replace( rescape, "\\$&" );
+ } else {
+ context.setAttribute( "id", nid );
+ }
+ nid = "[id='" + nid + "'] ";
+
+ i = groups.length;
+ while ( i-- ) {
+ groups[i] = nid + toSelector( groups[i] );
+ }
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
+ newSelector = groups.join(",");
+ }
+
+ if ( newSelector ) {
+ try {
+ push.apply( results,
+ newContext.querySelectorAll( newSelector )
+ );
+ return results;
+ } catch(qsaError) {
+ } finally {
+ if ( !old ) {
+ context.removeAttribute("id");
+ }
+ }
+ }
+ }
+ }
+
+ // All others
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ * deleting the oldest entry
+ */
+function createCache() {
+ var keys = [];
+
+ function cache( key, value ) {
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
+ // Only keep the most recent entries
+ delete cache[ keys.shift() ];
+ }
+ return (cache[ key + " " ] = value);
+ }
+ return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+ fn[ expando ] = true;
+ return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+ var div = document.createElement("div");
+
+ try {
+ return !!fn( div );
+ } catch (e) {
+ return false;
+ } finally {
+ // Remove from its parent by default
+ if ( div.parentNode ) {
+ div.parentNode.removeChild( div );
+ }
+ // release memory in IE
+ div = null;
+ }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+ var arr = attrs.split("|"),
+ i = attrs.length;
+
+ while ( i-- ) {
+ Expr.attrHandle[ arr[i] ] = handler;
+ }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+ var cur = b && a,
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+ ( ~b.sourceIndex || MAX_NEGATIVE ) -
+ ( ~a.sourceIndex || MAX_NEGATIVE );
+
+ // Use IE sourceIndex if available on both nodes
+ if ( diff ) {
+ return diff;
+ }
+
+ // Check if b follows a
+ if ( cur ) {
+ while ( (cur = cur.nextSibling) ) {
+ if ( cur === b ) {
+ return -1;
+ }
+ }
+ }
+
+ return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+ return function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return (name === "input" || name === "button") && elem.type === type;
+ };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+ return markFunction(function( argument ) {
+ argument = +argument;
+ return markFunction(function( seed, matches ) {
+ var j,
+ matchIndexes = fn( [], seed.length, argument ),
+ i = matchIndexes.length;
+
+ // Match elements found at the specified indexes
+ while ( i-- ) {
+ if ( seed[ (j = matchIndexes[i]) ] ) {
+ seed[j] = !(matches[j] = seed[j]);
+ }
+ }
+ });
+ });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+ return context && typeof context.getElementsByTagName !== strundefined && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+ var hasCompare,
+ doc = node ? node.ownerDocument || node : preferredDoc,
+ parent = doc.defaultView;
+
+ // If no document and documentElement is available, return
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+ return document;
+ }
+
+ // Set our document
+ document = doc;
+ docElem = doc.documentElement;
+
+ // Support tests
+ documentIsHTML = !isXML( doc );
+
+ // Support: IE>8
+ // If iframe document is assigned to "document" variable and if iframe has been reloaded,
+ // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
+ // IE6-8 do not support the defaultView property so parent will be undefined
+ if ( parent && parent !== parent.top ) {
+ // IE11 does not have attachEvent, so all must suffer
+ if ( parent.addEventListener ) {
+ parent.addEventListener( "unload", function() {
+ setDocument();
+ }, false );
+ } else if ( parent.attachEvent ) {
+ parent.attachEvent( "onunload", function() {
+ setDocument();
+ });
+ }
+ }
+
+ /* Attributes
+ ---------------------------------------------------------------------- */
+
+ // Support: IE<8
+ // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
+ support.attributes = assert(function( div ) {
+ div.className = "i";
+ return !div.getAttribute("className");
+ });
+
+ /* getElement(s)By*
+ ---------------------------------------------------------------------- */
+
+ // Check if getElementsByTagName("*") returns only elements
+ support.getElementsByTagName = assert(function( div ) {
+ div.appendChild( doc.createComment("") );
+ return !div.getElementsByTagName("*").length;
+ });
+
+ // Check if getElementsByClassName can be trusted
+ support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
+ div.innerHTML = "";
+
+ // Support: Safari<4
+ // Catch class over-caching
+ div.firstChild.className = "i";
+ // Support: Opera<10
+ // Catch gEBCN failure to find non-leading classes
+ return div.getElementsByClassName("i").length === 2;
+ });
+
+ // Support: IE<10
+ // Check if getElementById returns elements by name
+ // The broken getElementById methods don't pick up programatically-set names,
+ // so use a roundabout getElementsByName test
+ support.getById = assert(function( div ) {
+ docElem.appendChild( div ).id = expando;
+ return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
+ });
+
+ // ID find and filter
+ if ( support.getById ) {
+ Expr.find["ID"] = function( id, context ) {
+ if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
+ var m = context.getElementById( id );
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ return m && m.parentNode ? [m] : [];
+ }
+ };
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ return elem.getAttribute("id") === attrId;
+ };
+ };
+ } else {
+ // Support: IE6/7
+ // getElementById is not reliable as a find shortcut
+ delete Expr.find["ID"];
+
+ Expr.filter["ID"] = function( id ) {
+ var attrId = id.replace( runescape, funescape );
+ return function( elem ) {
+ var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+ return node && node.value === attrId;
+ };
+ };
+ }
+
+ // Tag
+ Expr.find["TAG"] = support.getElementsByTagName ?
+ function( tag, context ) {
+ if ( typeof context.getElementsByTagName !== strundefined ) {
+ return context.getElementsByTagName( tag );
+ }
+ } :
+ function( tag, context ) {
+ var elem,
+ tmp = [],
+ i = 0,
+ results = context.getElementsByTagName( tag );
+
+ // Filter out possible comments
+ if ( tag === "*" ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem.nodeType === 1 ) {
+ tmp.push( elem );
+ }
+ }
+
+ return tmp;
+ }
+ return results;
+ };
+
+ // Class
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+ if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
+ return context.getElementsByClassName( className );
+ }
+ };
+
+ /* QSA/matchesSelector
+ ---------------------------------------------------------------------- */
+
+ // QSA and matchesSelector support
+
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+ rbuggyMatches = [];
+
+ // qSa(:focus) reports false when true (Chrome 21)
+ // We allow this because of a bug in IE8/9 that throws an error
+ // whenever `document.activeElement` is accessed on an iframe
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
+ // See http://bugs.jquery.com/ticket/13378
+ rbuggyQSA = [];
+
+ if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
+ // Build QSA regex
+ // Regex strategy adopted from Diego Perini
+ assert(function( div ) {
+ // Select is set to empty string on purpose
+ // This is to test IE's treatment of not explicitly
+ // setting a boolean content attribute,
+ // since its presence should be enough
+ // http://bugs.jquery.com/ticket/12359
+ div.innerHTML = "";
+
+ // Support: IE8, Opera 10-12
+ // Nothing should be selected when empty strings follow ^= or $= or *=
+ if ( div.querySelectorAll("[t^='']").length ) {
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+ }
+
+ // Support: IE8
+ // Boolean attributes and "value" are not treated correctly
+ if ( !div.querySelectorAll("[selected]").length ) {
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+ }
+
+ // Webkit/Opera - :checked should return selected option elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":checked").length ) {
+ rbuggyQSA.push(":checked");
+ }
+ });
+
+ assert(function( div ) {
+ // Support: Windows 8 Native Apps
+ // The type and name attributes are restricted during .innerHTML assignment
+ var input = doc.createElement("input");
+ input.setAttribute( "type", "hidden" );
+ div.appendChild( input ).setAttribute( "name", "D" );
+
+ // Support: IE8
+ // Enforce case-sensitivity of name attribute
+ if ( div.querySelectorAll("[name=d]").length ) {
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+ }
+
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+ // IE8 throws error here and will not see later tests
+ if ( !div.querySelectorAll(":enabled").length ) {
+ rbuggyQSA.push( ":enabled", ":disabled" );
+ }
+
+ // Opera 10-11 does not throw on post-comma invalid pseudos
+ div.querySelectorAll("*,:x");
+ rbuggyQSA.push(",.*:");
+ });
+ }
+
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
+ docElem.mozMatchesSelector ||
+ docElem.oMatchesSelector ||
+ docElem.msMatchesSelector) )) ) {
+
+ assert(function( div ) {
+ // Check to see if it's possible to do matchesSelector
+ // on a disconnected node (IE 9)
+ support.disconnectedMatch = matches.call( div, "div" );
+
+ // This should fail with an exception
+ // Gecko does not error, returns false instead
+ matches.call( div, "[s!='']:x" );
+ rbuggyMatches.push( "!=", pseudos );
+ });
+ }
+
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+ /* Contains
+ ---------------------------------------------------------------------- */
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+ // Element contains another
+ // Purposefully does not implement inclusive descendent
+ // As in, an element does not contain itself
+ contains = hasCompare || rnative.test( docElem.contains ) ?
+ function( a, b ) {
+ var adown = a.nodeType === 9 ? a.documentElement : a,
+ bup = b && b.parentNode;
+ return a === bup || !!( bup && bup.nodeType === 1 && (
+ adown.contains ?
+ adown.contains( bup ) :
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+ ));
+ } :
+ function( a, b ) {
+ if ( b ) {
+ while ( (b = b.parentNode) ) {
+ if ( b === a ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ };
+
+ /* Sorting
+ ---------------------------------------------------------------------- */
+
+ // Document order sorting
+ sortOrder = hasCompare ?
+ function( a, b ) {
+
+ // Flag for duplicate removal
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ // Sort on method existence if only one input has compareDocumentPosition
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+ if ( compare ) {
+ return compare;
+ }
+
+ // Calculate position if both inputs belong to the same document
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+ a.compareDocumentPosition( b ) :
+
+ // Otherwise we know they are disconnected
+ 1;
+
+ // Disconnected nodes
+ if ( compare & 1 ||
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+ // Choose the first element that is related to our preferred document
+ if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+ return -1;
+ }
+ if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+ return 1;
+ }
+
+ // Maintain original order
+ return sortInput ?
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+ 0;
+ }
+
+ return compare & 4 ? -1 : 1;
+ } :
+ function( a, b ) {
+ // Exit early if the nodes are identical
+ if ( a === b ) {
+ hasDuplicate = true;
+ return 0;
+ }
+
+ var cur,
+ i = 0,
+ aup = a.parentNode,
+ bup = b.parentNode,
+ ap = [ a ],
+ bp = [ b ];
+
+ // Parentless nodes are either documents or disconnected
+ if ( !aup || !bup ) {
+ return a === doc ? -1 :
+ b === doc ? 1 :
+ aup ? -1 :
+ bup ? 1 :
+ sortInput ?
+ ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+ 0;
+
+ // If the nodes are siblings, we can do a quick check
+ } else if ( aup === bup ) {
+ return siblingCheck( a, b );
+ }
+
+ // Otherwise we need full lists of their ancestors for comparison
+ cur = a;
+ while ( (cur = cur.parentNode) ) {
+ ap.unshift( cur );
+ }
+ cur = b;
+ while ( (cur = cur.parentNode) ) {
+ bp.unshift( cur );
+ }
+
+ // Walk down the tree looking for a discrepancy
+ while ( ap[i] === bp[i] ) {
+ i++;
+ }
+
+ return i ?
+ // Do a sibling check if the nodes have a common ancestor
+ siblingCheck( ap[i], bp[i] ) :
+
+ // Otherwise nodes in our document sort first
+ ap[i] === preferredDoc ? -1 :
+ bp[i] === preferredDoc ? 1 :
+ 0;
+ };
+
+ return doc;
+};
+
+Sizzle.matches = function( expr, elements ) {
+ return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ // Make sure that attribute selectors are quoted
+ expr = expr.replace( rattributeQuotes, "='$1']" );
+
+ if ( support.matchesSelector && documentIsHTML &&
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
+
+ try {
+ var ret = matches.call( elem, expr );
+
+ // IE 9's matchesSelector returns false on disconnected nodes
+ if ( ret || support.disconnectedMatch ||
+ // As well, disconnected nodes are said to be in a document
+ // fragment in IE 9
+ elem.document && elem.document.nodeType !== 11 ) {
+ return ret;
+ }
+ } catch(e) {}
+ }
+
+ return Sizzle( expr, document, null, [elem] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+ // Set document vars if needed
+ if ( ( context.ownerDocument || context ) !== document ) {
+ setDocument( context );
+ }
+ return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+ // Set document vars if needed
+ if ( ( elem.ownerDocument || elem ) !== document ) {
+ setDocument( elem );
+ }
+
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+ fn( elem, name, !documentIsHTML ) :
+ undefined;
+
+ return val !== undefined ?
+ val :
+ support.attributes || !documentIsHTML ?
+ elem.getAttribute( name ) :
+ (val = elem.getAttributeNode(name)) && val.specified ?
+ val.value :
+ null;
+};
+
+Sizzle.error = function( msg ) {
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+ var elem,
+ duplicates = [],
+ j = 0,
+ i = 0;
+
+ // Unless we *know* we can detect duplicates, assume their presence
+ hasDuplicate = !support.detectDuplicates;
+ sortInput = !support.sortStable && results.slice( 0 );
+ results.sort( sortOrder );
+
+ if ( hasDuplicate ) {
+ while ( (elem = results[i++]) ) {
+ if ( elem === results[ i ] ) {
+ j = duplicates.push( i );
+ }
+ }
+ while ( j-- ) {
+ results.splice( duplicates[ j ], 1 );
+ }
+ }
+
+ // Clear input after sorting to release objects
+ // See https://github.com/jquery/sizzle/pull/225
+ sortInput = null;
+
+ return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+ // If no nodeType, this is expected to be an array
+ while ( (node = elem[i++]) ) {
+ // Do not traverse comment nodes
+ ret += getText( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += getText( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+ // Can be adjusted by the user
+ cacheLength: 50,
+
+ createPseudo: markFunction,
+
+ match: matchExpr,
+
+ attrHandle: {},
+
+ find: {},
+
+ relative: {
+ ">": { dir: "parentNode", first: true },
+ " ": { dir: "parentNode" },
+ "+": { dir: "previousSibling", first: true },
+ "~": { dir: "previousSibling" }
+ },
+
+ preFilter: {
+ "ATTR": function( match ) {
+ match[1] = match[1].replace( runescape, funescape );
+
+ // Move the given value to match[3] whether quoted or unquoted
+ match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
+
+ if ( match[2] === "~=" ) {
+ match[3] = " " + match[3] + " ";
+ }
+
+ return match.slice( 0, 4 );
+ },
+
+ "CHILD": function( match ) {
+ /* matches from matchExpr["CHILD"]
+ 1 type (only|nth|...)
+ 2 what (child|of-type)
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
+ 5 sign of xn-component
+ 6 x of xn-component
+ 7 sign of y-component
+ 8 y of y-component
+ */
+ match[1] = match[1].toLowerCase();
+
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
+ // nth-* requires argument
+ if ( !match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ // numeric x and y parameters for Expr.filter.CHILD
+ // remember that false/true cast respectively to 0/1
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+ // other types prohibit arguments
+ } else if ( match[3] ) {
+ Sizzle.error( match[0] );
+ }
+
+ return match;
+ },
+
+ "PSEUDO": function( match ) {
+ var excess,
+ unquoted = !match[5] && match[2];
+
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
+ return null;
+ }
+
+ // Accept quoted arguments as-is
+ if ( match[3] && match[4] !== undefined ) {
+ match[2] = match[4];
+
+ // Strip excess characters from unquoted arguments
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
+ // Get excess from tokenize (recursively)
+ (excess = tokenize( unquoted, true )) &&
+ // advance to the next closing parenthesis
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+ // excess is a negative index
+ match[0] = match[0].slice( 0, excess );
+ match[2] = unquoted.slice( 0, excess );
+ }
+
+ // Return only captures needed by the pseudo filter method (type and argument)
+ return match.slice( 0, 3 );
+ }
+ },
+
+ filter: {
+
+ "TAG": function( nodeNameSelector ) {
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+ return nodeNameSelector === "*" ?
+ function() { return true; } :
+ function( elem ) {
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+ };
+ },
+
+ "CLASS": function( className ) {
+ var pattern = classCache[ className + " " ];
+
+ return pattern ||
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+ classCache( className, function( elem ) {
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
+ });
+ },
+
+ "ATTR": function( name, operator, check ) {
+ return function( elem ) {
+ var result = Sizzle.attr( elem, name );
+
+ if ( result == null ) {
+ return operator === "!=";
+ }
+ if ( !operator ) {
+ return true;
+ }
+
+ result += "";
+
+ return operator === "=" ? result === check :
+ operator === "!=" ? result !== check :
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
+ operator === "$=" ? check && result.slice( -check.length ) === check :
+ operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+ false;
+ };
+ },
+
+ "CHILD": function( type, what, argument, first, last ) {
+ var simple = type.slice( 0, 3 ) !== "nth",
+ forward = type.slice( -4 ) !== "last",
+ ofType = what === "of-type";
+
+ return first === 1 && last === 0 ?
+
+ // Shortcut for :nth-*(n)
+ function( elem ) {
+ return !!elem.parentNode;
+ } :
+
+ function( elem, context, xml ) {
+ var cache, outerCache, node, diff, nodeIndex, start,
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
+ parent = elem.parentNode,
+ name = ofType && elem.nodeName.toLowerCase(),
+ useCache = !xml && !ofType;
+
+ if ( parent ) {
+
+ // :(first|last|only)-(child|of-type)
+ if ( simple ) {
+ while ( dir ) {
+ node = elem;
+ while ( (node = node[ dir ]) ) {
+ if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+ return false;
+ }
+ }
+ // Reverse direction for :only-* (if we haven't yet done so)
+ start = dir = type === "only" && !start && "nextSibling";
+ }
+ return true;
+ }
+
+ start = [ forward ? parent.firstChild : parent.lastChild ];
+
+ // non-xml :nth-child(...) stores cache data on `parent`
+ if ( forward && useCache ) {
+ // Seek `elem` from a previously-cached index
+ outerCache = parent[ expando ] || (parent[ expando ] = {});
+ cache = outerCache[ type ] || [];
+ nodeIndex = cache[0] === dirruns && cache[1];
+ diff = cache[0] === dirruns && cache[2];
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+ // Fallback to seeking `elem` from the start
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ // When found, cache indexes on `parent` and break
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
+ outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+ break;
+ }
+ }
+
+ // Use previously-cached element index if available
+ } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+ diff = cache[1];
+
+ // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
+ } else {
+ // Use the same loop as above to seek `elem` from the start
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
+ (diff = nodeIndex = 0) || start.pop()) ) {
+
+ if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+ // Cache the index of each encountered element
+ if ( useCache ) {
+ (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+ }
+
+ if ( node === elem ) {
+ break;
+ }
+ }
+ }
+ }
+
+ // Incorporate the offset, then check against cycle size
+ diff -= last;
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
+ }
+ };
+ },
+
+ "PSEUDO": function( pseudo, argument ) {
+ // pseudo-class names are case-insensitive
+ // http://www.w3.org/TR/selectors/#pseudo-classes
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+ // Remember that setFilters inherits from pseudos
+ var args,
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+ Sizzle.error( "unsupported pseudo: " + pseudo );
+
+ // The user may use createPseudo to indicate that
+ // arguments are needed to create the filter function
+ // just as Sizzle does
+ if ( fn[ expando ] ) {
+ return fn( argument );
+ }
+
+ // But maintain support for old signatures
+ if ( fn.length > 1 ) {
+ args = [ pseudo, pseudo, "", argument ];
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+ markFunction(function( seed, matches ) {
+ var idx,
+ matched = fn( seed, argument ),
+ i = matched.length;
+ while ( i-- ) {
+ idx = indexOf.call( seed, matched[i] );
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
+ }
+ }) :
+ function( elem ) {
+ return fn( elem, 0, args );
+ };
+ }
+
+ return fn;
+ }
+ },
+
+ pseudos: {
+ // Potentially complex pseudos
+ "not": markFunction(function( selector ) {
+ // Trim the selector passed to compile
+ // to avoid treating leading and trailing
+ // spaces as combinators
+ var input = [],
+ results = [],
+ matcher = compile( selector.replace( rtrim, "$1" ) );
+
+ return matcher[ expando ] ?
+ markFunction(function( seed, matches, context, xml ) {
+ var elem,
+ unmatched = matcher( seed, null, xml, [] ),
+ i = seed.length;
+
+ // Match elements unmatched by `matcher`
+ while ( i-- ) {
+ if ( (elem = unmatched[i]) ) {
+ seed[i] = !(matches[i] = elem);
+ }
+ }
+ }) :
+ function( elem, context, xml ) {
+ input[0] = elem;
+ matcher( input, null, xml, results );
+ return !results.pop();
+ };
+ }),
+
+ "has": markFunction(function( selector ) {
+ return function( elem ) {
+ return Sizzle( selector, elem ).length > 0;
+ };
+ }),
+
+ "contains": markFunction(function( text ) {
+ return function( elem ) {
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+ };
+ }),
+
+ // "Whether an element is represented by a :lang() selector
+ // is based solely on the element's language value
+ // being equal to the identifier C,
+ // or beginning with the identifier C immediately followed by "-".
+ // The matching of C against the element's language value is performed case-insensitively.
+ // The identifier C does not have to be a valid language name."
+ // http://www.w3.org/TR/selectors/#lang-pseudo
+ "lang": markFunction( function( lang ) {
+ // lang value must be a valid identifier
+ if ( !ridentifier.test(lang || "") ) {
+ Sizzle.error( "unsupported lang: " + lang );
+ }
+ lang = lang.replace( runescape, funescape ).toLowerCase();
+ return function( elem ) {
+ var elemLang;
+ do {
+ if ( (elemLang = documentIsHTML ?
+ elem.lang :
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+ elemLang = elemLang.toLowerCase();
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+ }
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+ return false;
+ };
+ }),
+
+ // Miscellaneous
+ "target": function( elem ) {
+ var hash = window.location && window.location.hash;
+ return hash && hash.slice( 1 ) === elem.id;
+ },
+
+ "root": function( elem ) {
+ return elem === docElem;
+ },
+
+ "focus": function( elem ) {
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+ },
+
+ // Boolean properties
+ "enabled": function( elem ) {
+ return elem.disabled === false;
+ },
+
+ "disabled": function( elem ) {
+ return elem.disabled === true;
+ },
+
+ "checked": function( elem ) {
+ // In CSS3, :checked should return both checked and selected elements
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+ var nodeName = elem.nodeName.toLowerCase();
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+ },
+
+ "selected": function( elem ) {
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ if ( elem.parentNode ) {
+ elem.parentNode.selectedIndex;
+ }
+
+ return elem.selected === true;
+ },
+
+ // Contents
+ "empty": function( elem ) {
+ // http://www.w3.org/TR/selectors/#empty-pseudo
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+ // but not by others (comment: 8; processing instruction: 7; etc.)
+ // nodeType < 6 works because attributes (2) do not appear as children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ if ( elem.nodeType < 6 ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "parent": function( elem ) {
+ return !Expr.pseudos["empty"]( elem );
+ },
+
+ // Element/input types
+ "header": function( elem ) {
+ return rheader.test( elem.nodeName );
+ },
+
+ "input": function( elem ) {
+ return rinputs.test( elem.nodeName );
+ },
+
+ "button": function( elem ) {
+ var name = elem.nodeName.toLowerCase();
+ return name === "input" && elem.type === "button" || name === "button";
+ },
+
+ "text": function( elem ) {
+ var attr;
+ return elem.nodeName.toLowerCase() === "input" &&
+ elem.type === "text" &&
+
+ // Support: IE<8
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+ },
+
+ // Position-in-collection
+ "first": createPositionalPseudo(function() {
+ return [ 0 ];
+ }),
+
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
+ return [ length - 1 ];
+ }),
+
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ return [ argument < 0 ? argument + length : argument ];
+ }),
+
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 0;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
+ var i = 1;
+ for ( ; i < length; i += 2 ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; --i >= 0; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ }),
+
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+ var i = argument < 0 ? argument + length : argument;
+ for ( ; ++i < length; ) {
+ matchIndexes.push( i );
+ }
+ return matchIndexes;
+ })
+ }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+ Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+ Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+function tokenize( selector, parseOnly ) {
+ var matched, match, tokens, type,
+ soFar, groups, preFilters,
+ cached = tokenCache[ selector + " " ];
+
+ if ( cached ) {
+ return parseOnly ? 0 : cached.slice( 0 );
+ }
+
+ soFar = selector;
+ groups = [];
+ preFilters = Expr.preFilter;
+
+ while ( soFar ) {
+
+ // Comma and first run
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
+ if ( match ) {
+ // Don't consume trailing commas as valid
+ soFar = soFar.slice( match[0].length ) || soFar;
+ }
+ groups.push( (tokens = []) );
+ }
+
+ matched = false;
+
+ // Combinators
+ if ( (match = rcombinators.exec( soFar )) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ // Cast descendant combinators to space
+ type: match[0].replace( rtrim, " " )
+ });
+ soFar = soFar.slice( matched.length );
+ }
+
+ // Filters
+ for ( type in Expr.filter ) {
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+ (match = preFilters[ type ]( match ))) ) {
+ matched = match.shift();
+ tokens.push({
+ value: matched,
+ type: type,
+ matches: match
+ });
+ soFar = soFar.slice( matched.length );
+ }
+ }
+
+ if ( !matched ) {
+ break;
+ }
+ }
+
+ // Return the length of the invalid excess
+ // if we're just parsing
+ // Otherwise, throw an error or return tokens
+ return parseOnly ?
+ soFar.length :
+ soFar ?
+ Sizzle.error( selector ) :
+ // Cache the tokens
+ tokenCache( selector, groups ).slice( 0 );
+}
+
+function toSelector( tokens ) {
+ var i = 0,
+ len = tokens.length,
+ selector = "";
+ for ( ; i < len; i++ ) {
+ selector += tokens[i].value;
+ }
+ return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+ var dir = combinator.dir,
+ checkNonElements = base && dir === "parentNode",
+ doneName = done++;
+
+ return combinator.first ?
+ // Check against closest ancestor/preceding element
+ function( elem, context, xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ return matcher( elem, context, xml );
+ }
+ }
+ } :
+
+ // Check against all ancestor/preceding elements
+ function( elem, context, xml ) {
+ var oldCache, outerCache,
+ newCache = [ dirruns, doneName ];
+
+ // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+ if ( xml ) {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ if ( matcher( elem, context, xml ) ) {
+ return true;
+ }
+ }
+ }
+ } else {
+ while ( (elem = elem[ dir ]) ) {
+ if ( elem.nodeType === 1 || checkNonElements ) {
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
+ if ( (oldCache = outerCache[ dir ]) &&
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+ // Assign to newCache so results back-propagate to previous elements
+ return (newCache[ 2 ] = oldCache[ 2 ]);
+ } else {
+ // Reuse newcache so results back-propagate to previous elements
+ outerCache[ dir ] = newCache;
+
+ // A match means we're done; a fail means we have to keep checking
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ };
+}
+
+function elementMatcher( matchers ) {
+ return matchers.length > 1 ?
+ function( elem, context, xml ) {
+ var i = matchers.length;
+ while ( i-- ) {
+ if ( !matchers[i]( elem, context, xml ) ) {
+ return false;
+ }
+ }
+ return true;
+ } :
+ matchers[0];
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+ var elem,
+ newUnmatched = [],
+ i = 0,
+ len = unmatched.length,
+ mapped = map != null;
+
+ for ( ; i < len; i++ ) {
+ if ( (elem = unmatched[i]) ) {
+ if ( !filter || filter( elem, context, xml ) ) {
+ newUnmatched.push( elem );
+ if ( mapped ) {
+ map.push( i );
+ }
+ }
+ }
+ }
+
+ return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+ if ( postFilter && !postFilter[ expando ] ) {
+ postFilter = setMatcher( postFilter );
+ }
+ if ( postFinder && !postFinder[ expando ] ) {
+ postFinder = setMatcher( postFinder, postSelector );
+ }
+ return markFunction(function( seed, results, context, xml ) {
+ var temp, i, elem,
+ preMap = [],
+ postMap = [],
+ preexisting = results.length,
+
+ // Get initial elements from seed or context
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
+ matcherIn = preFilter && ( seed || !selector ) ?
+ condense( elems, preMap, preFilter, context, xml ) :
+ elems,
+
+ matcherOut = matcher ?
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+ // ...intermediate processing is necessary
+ [] :
+
+ // ...otherwise use results directly
+ results :
+ matcherIn;
+
+ // Find primary matches
+ if ( matcher ) {
+ matcher( matcherIn, matcherOut, context, xml );
+ }
+
+ // Apply postFilter
+ if ( postFilter ) {
+ temp = condense( matcherOut, postMap );
+ postFilter( temp, [], context, xml );
+
+ // Un-match failing elements by moving them back to matcherIn
+ i = temp.length;
+ while ( i-- ) {
+ if ( (elem = temp[i]) ) {
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+ }
+ }
+ }
+
+ if ( seed ) {
+ if ( postFinder || preFilter ) {
+ if ( postFinder ) {
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
+ temp = [];
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) ) {
+ // Restore matcherIn since elem is not yet a final match
+ temp.push( (matcherIn[i] = elem) );
+ }
+ }
+ postFinder( null, (matcherOut = []), temp, xml );
+ }
+
+ // Move matched elements from seed to results to keep them synchronized
+ i = matcherOut.length;
+ while ( i-- ) {
+ if ( (elem = matcherOut[i]) &&
+ (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
+
+ seed[temp] = !(results[temp] = elem);
+ }
+ }
+ }
+
+ // Add elements to results, through postFinder if defined
+ } else {
+ matcherOut = condense(
+ matcherOut === results ?
+ matcherOut.splice( preexisting, matcherOut.length ) :
+ matcherOut
+ );
+ if ( postFinder ) {
+ postFinder( null, results, matcherOut, xml );
+ } else {
+ push.apply( results, matcherOut );
+ }
+ }
+ });
+}
+
+function matcherFromTokens( tokens ) {
+ var checkContext, matcher, j,
+ len = tokens.length,
+ leadingRelative = Expr.relative[ tokens[0].type ],
+ implicitRelative = leadingRelative || Expr.relative[" "],
+ i = leadingRelative ? 1 : 0,
+
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
+ matchContext = addCombinator( function( elem ) {
+ return elem === checkContext;
+ }, implicitRelative, true ),
+ matchAnyContext = addCombinator( function( elem ) {
+ return indexOf.call( checkContext, elem ) > -1;
+ }, implicitRelative, true ),
+ matchers = [ function( elem, context, xml ) {
+ return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+ (checkContext = context).nodeType ?
+ matchContext( elem, context, xml ) :
+ matchAnyContext( elem, context, xml ) );
+ } ];
+
+ for ( ; i < len; i++ ) {
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+ } else {
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+ // Return special upon seeing a positional matcher
+ if ( matcher[ expando ] ) {
+ // Find the next relative operator (if any) for proper handling
+ j = ++i;
+ for ( ; j < len; j++ ) {
+ if ( Expr.relative[ tokens[j].type ] ) {
+ break;
+ }
+ }
+ return setMatcher(
+ i > 1 && elementMatcher( matchers ),
+ i > 1 && toSelector(
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+ ).replace( rtrim, "$1" ),
+ matcher,
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+ j < len && toSelector( tokens )
+ );
+ }
+ matchers.push( matcher );
+ }
+ }
+
+ return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+ var bySet = setMatchers.length > 0,
+ byElement = elementMatchers.length > 0,
+ superMatcher = function( seed, context, xml, results, outermost ) {
+ var elem, j, matcher,
+ matchedCount = 0,
+ i = "0",
+ unmatched = seed && [],
+ setMatched = [],
+ contextBackup = outermostContext,
+ // We must always have either seed elements or outermost context
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+ // Use integer dirruns iff this is the outermost matcher
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+ len = elems.length;
+
+ if ( outermost ) {
+ outermostContext = context !== document && context;
+ }
+
+ // Add elements passing elementMatchers directly to results
+ // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
+ // Support: IE<9, Safari
+ // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+ if ( byElement && elem ) {
+ j = 0;
+ while ( (matcher = elementMatchers[j++]) ) {
+ if ( matcher( elem, context, xml ) ) {
+ results.push( elem );
+ break;
+ }
+ }
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ }
+ }
+
+ // Track unmatched elements for set filters
+ if ( bySet ) {
+ // They will have gone through all possible matchers
+ if ( (elem = !matcher && elem) ) {
+ matchedCount--;
+ }
+
+ // Lengthen the array for every element, matched or not
+ if ( seed ) {
+ unmatched.push( elem );
+ }
+ }
+ }
+
+ // Apply set filters to unmatched elements
+ matchedCount += i;
+ if ( bySet && i !== matchedCount ) {
+ j = 0;
+ while ( (matcher = setMatchers[j++]) ) {
+ matcher( unmatched, setMatched, context, xml );
+ }
+
+ if ( seed ) {
+ // Reintegrate element matches to eliminate the need for sorting
+ if ( matchedCount > 0 ) {
+ while ( i-- ) {
+ if ( !(unmatched[i] || setMatched[i]) ) {
+ setMatched[i] = pop.call( results );
+ }
+ }
+ }
+
+ // Discard index placeholder values to get only actual matches
+ setMatched = condense( setMatched );
+ }
+
+ // Add matches to results
+ push.apply( results, setMatched );
+
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
+ if ( outermost && !seed && setMatched.length > 0 &&
+ ( matchedCount + setMatchers.length ) > 1 ) {
+
+ Sizzle.uniqueSort( results );
+ }
+ }
+
+ // Override manipulation of globals by nested matchers
+ if ( outermost ) {
+ dirruns = dirrunsUnique;
+ outermostContext = contextBackup;
+ }
+
+ return unmatched;
+ };
+
+ return bySet ?
+ markFunction( superMatcher ) :
+ superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
+ var i,
+ setMatchers = [],
+ elementMatchers = [],
+ cached = compilerCache[ selector + " " ];
+
+ if ( !cached ) {
+ // Generate a function of recursive functions that can be used to check each element
+ if ( !group ) {
+ group = tokenize( selector );
+ }
+ i = group.length;
+ while ( i-- ) {
+ cached = matcherFromTokens( group[i] );
+ if ( cached[ expando ] ) {
+ setMatchers.push( cached );
+ } else {
+ elementMatchers.push( cached );
+ }
+ }
+
+ // Cache the compiled function
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+ }
+ return cached;
+};
+
+function multipleContexts( selector, contexts, results ) {
+ var i = 0,
+ len = contexts.length;
+ for ( ; i < len; i++ ) {
+ Sizzle( selector, contexts[i], results );
+ }
+ return results;
+}
+
+function select( selector, context, results, seed ) {
+ var i, tokens, token, type, find,
+ match = tokenize( selector );
+
+ if ( !seed ) {
+ // Try to minimize operations if there is only one group
+ if ( match.length === 1 ) {
+
+ // Take a shortcut and set the context if the root selector is an ID
+ tokens = match[0] = match[0].slice( 0 );
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+ support.getById && context.nodeType === 9 && documentIsHTML &&
+ Expr.relative[ tokens[1].type ] ) {
+
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+ if ( !context ) {
+ return results;
+ }
+ selector = selector.slice( tokens.shift().value.length );
+ }
+
+ // Fetch a seed set for right-to-left matching
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+ while ( i-- ) {
+ token = tokens[i];
+
+ // Abort if we hit a combinator
+ if ( Expr.relative[ (type = token.type) ] ) {
+ break;
+ }
+ if ( (find = Expr.find[ type ]) ) {
+ // Search, expanding context for leading sibling combinators
+ if ( (seed = find(
+ token.matches[0].replace( runescape, funescape ),
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+ )) ) {
+
+ // If seed is empty or no tokens remain, we can return early
+ tokens.splice( i, 1 );
+ selector = seed.length && toSelector( tokens );
+ if ( !selector ) {
+ push.apply( results, seed );
+ return results;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Compile and execute a filtering function
+ // Provide `match` to avoid retokenization if we modified the selector above
+ compile( selector, match )(
+ seed,
+ context,
+ !documentIsHTML,
+ results,
+ rsibling.test( selector ) && testContext( context.parentNode ) || context
+ );
+ return results;
+}
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome<14
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+ // Should return 1, but returns 4 (following)
+ return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+ div.innerHTML = "";
+ return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
+ if ( !isXML ) {
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+ }
+ });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+ div.innerHTML = "";
+ div.firstChild.setAttribute( "value", "" );
+ return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+ addHandle( "value", function( elem, name, isXML ) {
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+ return elem.defaultValue;
+ }
+ });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+ return div.getAttribute("disabled") == null;
+}) ) {
+ addHandle( booleans, function( elem, name, isXML ) {
+ var val;
+ if ( !isXML ) {
+ return elem[ name ] === true ? name.toLowerCase() :
+ (val = elem.getAttributeNode( name )) && val.specified ?
+ val.value :
+ null;
+ }
+ });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.pseudos;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep( elements, function( elem, i ) {
+ /* jshint -W018 */
+ return !!qualifier.call( elem, i, elem ) !== not;
+ });
+
+ }
+
+ if ( qualifier.nodeType ) {
+ return jQuery.grep( elements, function( elem ) {
+ return ( elem === qualifier ) !== not;
+ });
+
+ }
+
+ if ( typeof qualifier === "string" ) {
+ if ( risSimple.test( qualifier ) ) {
+ return jQuery.filter( qualifier, elements, not );
+ }
+
+ qualifier = jQuery.filter( qualifier, elements );
+ }
+
+ return jQuery.grep( elements, function( elem ) {
+ return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
+ });
+}
+
+jQuery.filter = function( expr, elems, not ) {
+ var elem = elems[ 0 ];
+
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return elems.length === 1 && elem.nodeType === 1 ?
+ jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+ jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+ return elem.nodeType === 1;
+ }));
+};
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ var i,
+ len = this.length,
+ ret = [],
+ self = this;
+
+ if ( typeof selector !== "string" ) {
+ return this.pushStack( jQuery( selector ).filter(function() {
+ for ( i = 0; i < len; i++ ) {
+ if ( jQuery.contains( self[ i ], this ) ) {
+ return true;
+ }
+ }
+ }) );
+ }
+
+ for ( i = 0; i < len; i++ ) {
+ jQuery.find( selector, self[ i ], ret );
+ }
+
+ // Needed because $( selector, context ) becomes $( context ).find( selector )
+ ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+ ret.selector = this.selector ? this.selector + " " + selector : selector;
+ return ret;
+ },
+ filter: function( selector ) {
+ return this.pushStack( winnow(this, selector || [], false) );
+ },
+ not: function( selector ) {
+ return this.pushStack( winnow(this, selector || [], true) );
+ },
+ is: function( selector ) {
+ return !!winnow(
+ this,
+
+ // If this is a positional/relative selector, check membership in the returned set
+ // so $("p:first").is("p:last") won't return true for a doc with two "p".
+ typeof selector === "string" && rneedsContext.test( selector ) ?
+ jQuery( selector ) :
+ selector || [],
+ false
+ ).length;
+ }
+});
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+ // A simple way to check for HTML strings
+ // Prioritize #id over to avoid XSS via location.hash (#9521)
+ // Strict HTML recognition (#11290: must start with <)
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+ init = jQuery.fn.init = function( selector, context ) {
+ var match, elem;
+
+ // HANDLE: $(""), $(null), $(undefined), $(false)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
+ // Assume that strings that start and end with <> are HTML and skip the regex check
+ match = [ null, selector, null ];
+
+ } else {
+ match = rquickExpr.exec( selector );
+ }
+
+ // Match html or make sure no context is specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ context = context instanceof jQuery ? context[0] : context;
+
+ // scripts is true for back-compat
+ // Intentionally let the error be thrown if parseHTML is not present
+ jQuery.merge( this, jQuery.parseHTML(
+ match[1],
+ context && context.nodeType ? context.ownerDocument || context : document,
+ true
+ ) );
+
+ // HANDLE: $(html, props)
+ if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
+ for ( match in context ) {
+ // Properties of context are called as methods if possible
+ if ( jQuery.isFunction( this[ match ] ) ) {
+ this[ match ]( context[ match ] );
+
+ // ...and otherwise set as attributes
+ } else {
+ this.attr( match, context[ match ] );
+ }
+ }
+ }
+
+ return this;
+
+ // HANDLE: $(#id)
+ } else {
+ elem = document.getElementById( match[2] );
+
+ // Check parentNode to catch when Blackberry 4.6 returns
+ // nodes that are no longer in the document #6963
+ if ( elem && elem.parentNode ) {
+ // Inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return ( context || rootjQuery ).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return this.constructor( context ).find( selector );
+ }
+
+ // HANDLE: $(DOMElement)
+ } else if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return typeof rootjQuery.ready !== "undefined" ?
+ rootjQuery.ready( selector ) :
+ // Execute immediately if ready is not present
+ selector( jQuery );
+ }
+
+ if ( selector.selector !== undefined ) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.makeArray( selector, this );
+ };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
+
+jQuery.extend({
+ dir: function( elem, dir, until ) {
+ var matched = [],
+ truncate = until !== undefined;
+
+ while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
+ if ( elem.nodeType === 1 ) {
+ if ( truncate && jQuery( elem ).is( until ) ) {
+ break;
+ }
+ matched.push( elem );
+ }
+ }
+ return matched;
+ },
+
+ sibling: function( n, elem ) {
+ var matched = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ matched.push( n );
+ }
+ }
+
+ return matched;
+ }
+});
+
+jQuery.fn.extend({
+ has: function( target ) {
+ var targets = jQuery( target, this ),
+ l = targets.length;
+
+ return this.filter(function() {
+ var i = 0;
+ for ( ; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ closest: function( selectors, context ) {
+ var cur,
+ i = 0,
+ l = this.length,
+ matched = [],
+ pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+ jQuery( selectors, context || this.context ) :
+ 0;
+
+ for ( ; i < l; i++ ) {
+ for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
+ // Always skip document fragments
+ if ( cur.nodeType < 11 && (pos ?
+ pos.index(cur) > -1 :
+
+ // Don't pass non-elements to Sizzle
+ cur.nodeType === 1 &&
+ jQuery.find.matchesSelector(cur, selectors)) ) {
+
+ matched.push( cur );
+ break;
+ }
+ }
+ }
+
+ return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+
+ // No argument, return index in parent
+ if ( !elem ) {
+ return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+ }
+
+ // index in selector
+ if ( typeof elem === "string" ) {
+ return indexOf.call( jQuery( elem ), this[ 0 ] );
+ }
+
+ // Locate the position of the desired element
+ return indexOf.call( this,
+
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[ 0 ] : elem
+ );
+ },
+
+ add: function( selector, context ) {
+ return this.pushStack(
+ jQuery.unique(
+ jQuery.merge( this.get(), jQuery( selector, context ) )
+ )
+ );
+ },
+
+ addBack: function( selector ) {
+ return this.add( selector == null ?
+ this.prevObject : this.prevObject.filter(selector)
+ );
+ }
+});
+
+function sibling( cur, dir ) {
+ while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
+ return cur;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ parentsUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ },
+ next: function( elem ) {
+ return sibling( elem, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return sibling( elem, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ nextUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ },
+ prevUntil: function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return elem.contentDocument || jQuery.merge( [], elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var matched = jQuery.map( this, fn, until );
+
+ if ( name.slice( -5 ) !== "Until" ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ matched = jQuery.filter( selector, matched );
+ }
+
+ if ( this.length > 1 ) {
+ // Remove duplicates
+ if ( !guaranteedUnique[ name ] ) {
+ jQuery.unique( matched );
+ }
+
+ // Reverse order for parents* and prev-derivatives
+ if ( rparentsprev.test( name ) ) {
+ matched.reverse();
+ }
+ }
+
+ return this.pushStack( matched );
+ };
+});
+var rnotwhite = (/\S+/g);
+
+
+
+// String to Object options format cache
+var optionsCache = {};
+
+// Convert String-formatted options into Object-formatted ones and store in cache
+function createOptions( options ) {
+ var object = optionsCache[ options ] = {};
+ jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+ object[ flag ] = true;
+ });
+ return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ * options: an optional list of space-separated options that will change how
+ * the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ * once: will ensure the callback list can only be fired once (like a Deferred)
+ *
+ * memory: will keep track of previous values and will call any callback added
+ * after the list has been fired right away with the latest "memorized"
+ * values (like a Deferred)
+ *
+ * unique: will ensure a callback can only be added once (no duplicate in the list)
+ *
+ * stopOnFalse: interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+ // Convert options from String-formatted to Object-formatted if needed
+ // (we check in cache first)
+ options = typeof options === "string" ?
+ ( optionsCache[ options ] || createOptions( options ) ) :
+ jQuery.extend( {}, options );
+
+ var // Last fire value (for non-forgettable lists)
+ memory,
+ // Flag to know if list was already fired
+ fired,
+ // Flag to know if list is currently firing
+ firing,
+ // First callback to fire (used internally by add and fireWith)
+ firingStart,
+ // End of the loop when firing
+ firingLength,
+ // Index of currently firing callback (modified by remove if needed)
+ firingIndex,
+ // Actual callback list
+ list = [],
+ // Stack of fire calls for repeatable lists
+ stack = !options.once && [],
+ // Fire callbacks
+ fire = function( data ) {
+ memory = options.memory && data;
+ fired = true;
+ firingIndex = firingStart || 0;
+ firingStart = 0;
+ firingLength = list.length;
+ firing = true;
+ for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+ if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
+ memory = false; // To prevent further calls using add
+ break;
+ }
+ }
+ firing = false;
+ if ( list ) {
+ if ( stack ) {
+ if ( stack.length ) {
+ fire( stack.shift() );
+ }
+ } else if ( memory ) {
+ list = [];
+ } else {
+ self.disable();
+ }
+ }
+ },
+ // Actual Callbacks object
+ self = {
+ // Add a callback or a collection of callbacks to the list
+ add: function() {
+ if ( list ) {
+ // First, we save the current length
+ var start = list.length;
+ (function add( args ) {
+ jQuery.each( args, function( _, arg ) {
+ var type = jQuery.type( arg );
+ if ( type === "function" ) {
+ if ( !options.unique || !self.has( arg ) ) {
+ list.push( arg );
+ }
+ } else if ( arg && arg.length && type !== "string" ) {
+ // Inspect recursively
+ add( arg );
+ }
+ });
+ })( arguments );
+ // Do we need to add the callbacks to the
+ // current firing batch?
+ if ( firing ) {
+ firingLength = list.length;
+ // With memory, if we're not firing then
+ // we should call right away
+ } else if ( memory ) {
+ firingStart = start;
+ fire( memory );
+ }
+ }
+ return this;
+ },
+ // Remove a callback from the list
+ remove: function() {
+ if ( list ) {
+ jQuery.each( arguments, function( _, arg ) {
+ var index;
+ while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+ list.splice( index, 1 );
+ // Handle firing indexes
+ if ( firing ) {
+ if ( index <= firingLength ) {
+ firingLength--;
+ }
+ if ( index <= firingIndex ) {
+ firingIndex--;
+ }
+ }
+ }
+ });
+ }
+ return this;
+ },
+ // Check if a given callback is in the list.
+ // If no argument is given, return whether or not list has callbacks attached.
+ has: function( fn ) {
+ return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
+ },
+ // Remove all callbacks from the list
+ empty: function() {
+ list = [];
+ firingLength = 0;
+ return this;
+ },
+ // Have the list do nothing anymore
+ disable: function() {
+ list = stack = memory = undefined;
+ return this;
+ },
+ // Is it disabled?
+ disabled: function() {
+ return !list;
+ },
+ // Lock the list in its current state
+ lock: function() {
+ stack = undefined;
+ if ( !memory ) {
+ self.disable();
+ }
+ return this;
+ },
+ // Is it locked?
+ locked: function() {
+ return !stack;
+ },
+ // Call all callbacks with the given context and arguments
+ fireWith: function( context, args ) {
+ if ( list && ( !fired || stack ) ) {
+ args = args || [];
+ args = [ context, args.slice ? args.slice() : args ];
+ if ( firing ) {
+ stack.push( args );
+ } else {
+ fire( args );
+ }
+ }
+ return this;
+ },
+ // Call all the callbacks with the given arguments
+ fire: function() {
+ self.fireWith( this, arguments );
+ return this;
+ },
+ // To know if the callbacks have already been called at least once
+ fired: function() {
+ return !!fired;
+ }
+ };
+
+ return self;
+};
+
+
+jQuery.extend({
+
+ Deferred: function( func ) {
+ var tuples = [
+ // action, add listener, listener list, final state
+ [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
+ [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
+ [ "notify", "progress", jQuery.Callbacks("memory") ]
+ ],
+ state = "pending",
+ promise = {
+ state: function() {
+ return state;
+ },
+ always: function() {
+ deferred.done( arguments ).fail( arguments );
+ return this;
+ },
+ then: function( /* fnDone, fnFail, fnProgress */ ) {
+ var fns = arguments;
+ return jQuery.Deferred(function( newDefer ) {
+ jQuery.each( tuples, function( i, tuple ) {
+ var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+ // deferred[ done | fail | progress ] for forwarding actions to newDefer
+ deferred[ tuple[1] ](function() {
+ var returned = fn && fn.apply( this, arguments );
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
+ returned.promise()
+ .done( newDefer.resolve )
+ .fail( newDefer.reject )
+ .progress( newDefer.notify );
+ } else {
+ newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
+ }
+ });
+ });
+ fns = null;
+ }).promise();
+ },
+ // Get a promise for this deferred
+ // If obj is provided, the promise aspect is added to the object
+ promise: function( obj ) {
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
+ }
+ },
+ deferred = {};
+
+ // Keep pipe for back-compat
+ promise.pipe = promise.then;
+
+ // Add list-specific methods
+ jQuery.each( tuples, function( i, tuple ) {
+ var list = tuple[ 2 ],
+ stateString = tuple[ 3 ];
+
+ // promise[ done | fail | progress ] = list.add
+ promise[ tuple[1] ] = list.add;
+
+ // Handle state
+ if ( stateString ) {
+ list.add(function() {
+ // state = [ resolved | rejected ]
+ state = stateString;
+
+ // [ reject_list | resolve_list ].disable; progress_list.lock
+ }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+ }
+
+ // deferred[ resolve | reject | notify ]
+ deferred[ tuple[0] ] = function() {
+ deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
+ return this;
+ };
+ deferred[ tuple[0] + "With" ] = list.fireWith;
+ });
+
+ // Make the deferred a promise
+ promise.promise( deferred );
+
+ // Call given func if any
+ if ( func ) {
+ func.call( deferred, deferred );
+ }
+
+ // All done!
+ return deferred;
+ },
+
+ // Deferred helper
+ when: function( subordinate /* , ..., subordinateN */ ) {
+ var i = 0,
+ resolveValues = slice.call( arguments ),
+ length = resolveValues.length,
+
+ // the count of uncompleted subordinates
+ remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+ // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
+ deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+ // Update function for both resolve and progress values
+ updateFunc = function( i, contexts, values ) {
+ return function( value ) {
+ contexts[ i ] = this;
+ values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+ if ( values === progressValues ) {
+ deferred.notifyWith( contexts, values );
+ } else if ( !( --remaining ) ) {
+ deferred.resolveWith( contexts, values );
+ }
+ };
+ },
+
+ progressValues, progressContexts, resolveContexts;
+
+ // add listeners to Deferred subordinates; treat others as resolved
+ if ( length > 1 ) {
+ progressValues = new Array( length );
+ progressContexts = new Array( length );
+ resolveContexts = new Array( length );
+ for ( ; i < length; i++ ) {
+ if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+ resolveValues[ i ].promise()
+ .done( updateFunc( i, resolveContexts, resolveValues ) )
+ .fail( deferred.reject )
+ .progress( updateFunc( i, progressContexts, progressValues ) );
+ } else {
+ --remaining;
+ }
+ }
+ }
+
+ // if we're not waiting on anything, resolve the master
+ if ( !remaining ) {
+ deferred.resolveWith( resolveContexts, resolveValues );
+ }
+
+ return deferred.promise();
+ }
+});
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+ // Add the callback
+ jQuery.ready.promise().done( fn );
+
+ return this;
+};
+
+jQuery.extend({
+ // Is the DOM ready to be used? Set to true once it occurs.
+ isReady: false,
+
+ // A counter to track how many items to wait for before
+ // the ready event fires. See #6781
+ readyWait: 1,
+
+ // Hold (or release) the ready event
+ holdReady: function( hold ) {
+ if ( hold ) {
+ jQuery.readyWait++;
+ } else {
+ jQuery.ready( true );
+ }
+ },
+
+ // Handle when the DOM is ready
+ ready: function( wait ) {
+
+ // Abort if there are pending holds or we're already ready
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+ return;
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If a normal DOM Ready event fired, decrement, and wait if need be
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
+ return;
+ }
+
+ // If there are functions bound, to execute
+ readyList.resolveWith( document, [ jQuery ] );
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.trigger ) {
+ jQuery( document ).trigger("ready").off("ready");
+ }
+ }
+});
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+ document.removeEventListener( "DOMContentLoaded", completed, false );
+ window.removeEventListener( "load", completed, false );
+ jQuery.ready();
+}
+
+jQuery.ready.promise = function( obj ) {
+ if ( !readyList ) {
+
+ readyList = jQuery.Deferred();
+
+ // Catch cases where $(document).ready() is called after the browser event has already occurred.
+ // we once tried to use readyState "interactive" here, but it caused issues like the one
+ // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
+ if ( document.readyState === "complete" ) {
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ setTimeout( jQuery.ready );
+
+ } else {
+
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", completed, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", completed, false );
+ }
+ }
+ return readyList.promise( obj );
+};
+
+// Kick off the DOM ready check even if the user does not
+jQuery.ready.promise();
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+ var i = 0,
+ len = elems.length,
+ bulk = key == null;
+
+ // Sets many values
+ if ( jQuery.type( key ) === "object" ) {
+ chainable = true;
+ for ( i in key ) {
+ jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
+ }
+
+ // Sets one value
+ } else if ( value !== undefined ) {
+ chainable = true;
+
+ if ( !jQuery.isFunction( value ) ) {
+ raw = true;
+ }
+
+ if ( bulk ) {
+ // Bulk operations run against the entire set
+ if ( raw ) {
+ fn.call( elems, value );
+ fn = null;
+
+ // ...except when executing function values
+ } else {
+ bulk = fn;
+ fn = function( elem, key, value ) {
+ return bulk.call( jQuery( elem ), value );
+ };
+ }
+ }
+
+ if ( fn ) {
+ for ( ; i < len; i++ ) {
+ fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
+ }
+ }
+ }
+
+ return chainable ?
+ elems :
+
+ // Gets
+ bulk ?
+ fn.call( elems ) :
+ len ? fn( elems[0], key ) : emptyGet;
+};
+
+
+/**
+ * Determines whether an object can have data
+ */
+jQuery.acceptData = function( owner ) {
+ // Accepts only:
+ // - Node
+ // - Node.ELEMENT_NODE
+ // - Node.DOCUMENT_NODE
+ // - Object
+ // - Any
+ /* jshint -W018 */
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+function Data() {
+ // Support: Android < 4,
+ // Old WebKit does not have Object.preventExtensions/freeze method,
+ // return new empty object instead with no [[set]] accessor
+ Object.defineProperty( this.cache = {}, 0, {
+ get: function() {
+ return {};
+ }
+ });
+
+ this.expando = jQuery.expando + Math.random();
+}
+
+Data.uid = 1;
+Data.accepts = jQuery.acceptData;
+
+Data.prototype = {
+ key: function( owner ) {
+ // We can accept data for non-element nodes in modern browsers,
+ // but we should not, see #8335.
+ // Always return the key for a frozen object.
+ if ( !Data.accepts( owner ) ) {
+ return 0;
+ }
+
+ var descriptor = {},
+ // Check if the owner object already has a cache key
+ unlock = owner[ this.expando ];
+
+ // If not, create one
+ if ( !unlock ) {
+ unlock = Data.uid++;
+
+ // Secure it in a non-enumerable, non-writable property
+ try {
+ descriptor[ this.expando ] = { value: unlock };
+ Object.defineProperties( owner, descriptor );
+
+ // Support: Android < 4
+ // Fallback to a less secure definition
+ } catch ( e ) {
+ descriptor[ this.expando ] = unlock;
+ jQuery.extend( owner, descriptor );
+ }
+ }
+
+ // Ensure the cache object
+ if ( !this.cache[ unlock ] ) {
+ this.cache[ unlock ] = {};
+ }
+
+ return unlock;
+ },
+ set: function( owner, data, value ) {
+ var prop,
+ // There may be an unlock assigned to this node,
+ // if there is no entry for this "owner", create one inline
+ // and set the unlock as though an owner entry had always existed
+ unlock = this.key( owner ),
+ cache = this.cache[ unlock ];
+
+ // Handle: [ owner, key, value ] args
+ if ( typeof data === "string" ) {
+ cache[ data ] = value;
+
+ // Handle: [ owner, { properties } ] args
+ } else {
+ // Fresh assignments by object are shallow copied
+ if ( jQuery.isEmptyObject( cache ) ) {
+ jQuery.extend( this.cache[ unlock ], data );
+ // Otherwise, copy the properties one-by-one to the cache object
+ } else {
+ for ( prop in data ) {
+ cache[ prop ] = data[ prop ];
+ }
+ }
+ }
+ return cache;
+ },
+ get: function( owner, key ) {
+ // Either a valid cache is found, or will be created.
+ // New caches will be created and the unlock returned,
+ // allowing direct access to the newly created
+ // empty data object. A valid owner object must be provided.
+ var cache = this.cache[ this.key( owner ) ];
+
+ return key === undefined ?
+ cache : cache[ key ];
+ },
+ access: function( owner, key, value ) {
+ var stored;
+ // In cases where either:
+ //
+ // 1. No key was specified
+ // 2. A string key was specified, but no value provided
+ //
+ // Take the "read" path and allow the get method to determine
+ // which value to return, respectively either:
+ //
+ // 1. The entire cache object
+ // 2. The data stored at the key
+ //
+ if ( key === undefined ||
+ ((key && typeof key === "string") && value === undefined) ) {
+
+ stored = this.get( owner, key );
+
+ return stored !== undefined ?
+ stored : this.get( owner, jQuery.camelCase(key) );
+ }
+
+ // [*]When the key is not a string, or both a key and value
+ // are specified, set or extend (existing objects) with either:
+ //
+ // 1. An object of properties
+ // 2. A key and value
+ //
+ this.set( owner, key, value );
+
+ // Since the "set" path can have two possible entry points
+ // return the expected data based on which path was taken[*]
+ return value !== undefined ? value : key;
+ },
+ remove: function( owner, key ) {
+ var i, name, camel,
+ unlock = this.key( owner ),
+ cache = this.cache[ unlock ];
+
+ if ( key === undefined ) {
+ this.cache[ unlock ] = {};
+
+ } else {
+ // Support array or space separated string of keys
+ if ( jQuery.isArray( key ) ) {
+ // If "name" is an array of keys...
+ // When data is initially created, via ("key", "val") signature,
+ // keys will be converted to camelCase.
+ // Since there is no way to tell _how_ a key was added, remove
+ // both plain key and camelCase key. #12786
+ // This will only penalize the array argument path.
+ name = key.concat( key.map( jQuery.camelCase ) );
+ } else {
+ camel = jQuery.camelCase( key );
+ // Try the string as a key before any manipulation
+ if ( key in cache ) {
+ name = [ key, camel ];
+ } else {
+ // If a key with the spaces exists, use it.
+ // Otherwise, create an array by matching non-whitespace
+ name = camel;
+ name = name in cache ?
+ [ name ] : ( name.match( rnotwhite ) || [] );
+ }
+ }
+
+ i = name.length;
+ while ( i-- ) {
+ delete cache[ name[ i ] ];
+ }
+ }
+ },
+ hasData: function( owner ) {
+ return !jQuery.isEmptyObject(
+ this.cache[ owner[ this.expando ] ] || {}
+ );
+ },
+ discard: function( owner ) {
+ if ( owner[ this.expando ] ) {
+ delete this.cache[ owner[ this.expando ] ];
+ }
+ }
+};
+var data_priv = new Data();
+
+var data_user = new Data();
+
+
+
+/*
+ Implementation Summary
+
+ 1. Enforce API surface and semantic compatibility with 1.9.x branch
+ 2. Improve the module's maintainability by reducing the storage
+ paths to a single mechanism.
+ 3. Use the same single mechanism to support "private" and "user" data.
+ 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+ 5. Avoid exposing implementation details on user objects (eg. expando properties)
+ 6. Provide a clear path for implementation upgrade to WeakMap in 2014
+*/
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+ rmultiDash = /([A-Z])/g;
+
+function dataAttr( elem, key, data ) {
+ var name;
+
+ // If nothing was found internally, try to fetch any
+ // data from the HTML5 data-* attribute
+ if ( data === undefined && elem.nodeType === 1 ) {
+ name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+ data = elem.getAttribute( name );
+
+ if ( typeof data === "string" ) {
+ try {
+ data = data === "true" ? true :
+ data === "false" ? false :
+ data === "null" ? null :
+ // Only convert to a number if it doesn't change the string
+ +data + "" === data ? +data :
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ data;
+ } catch( e ) {}
+
+ // Make sure we set the data so it isn't changed later
+ data_user.set( elem, key, data );
+ } else {
+ data = undefined;
+ }
+ }
+ return data;
+}
+
+jQuery.extend({
+ hasData: function( elem ) {
+ return data_user.hasData( elem ) || data_priv.hasData( elem );
+ },
+
+ data: function( elem, name, data ) {
+ return data_user.access( elem, name, data );
+ },
+
+ removeData: function( elem, name ) {
+ data_user.remove( elem, name );
+ },
+
+ // TODO: Now that all calls to _data and _removeData have been replaced
+ // with direct calls to data_priv methods, these can be deprecated.
+ _data: function( elem, name, data ) {
+ return data_priv.access( elem, name, data );
+ },
+
+ _removeData: function( elem, name ) {
+ data_priv.remove( elem, name );
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ var i, name, data,
+ elem = this[ 0 ],
+ attrs = elem && elem.attributes;
+
+ // Gets all values
+ if ( key === undefined ) {
+ if ( this.length ) {
+ data = data_user.get( elem );
+
+ if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
+ i = attrs.length;
+ while ( i-- ) {
+ name = attrs[ i ].name;
+
+ if ( name.indexOf( "data-" ) === 0 ) {
+ name = jQuery.camelCase( name.slice(5) );
+ dataAttr( elem, name, data[ name ] );
+ }
+ }
+ data_priv.set( elem, "hasDataAttrs", true );
+ }
+ }
+
+ return data;
+ }
+
+ // Sets multiple values
+ if ( typeof key === "object" ) {
+ return this.each(function() {
+ data_user.set( this, key );
+ });
+ }
+
+ return access( this, function( value ) {
+ var data,
+ camelKey = jQuery.camelCase( key );
+
+ // The calling jQuery object (element matches) is not empty
+ // (and therefore has an element appears at this[ 0 ]) and the
+ // `value` parameter was not undefined. An empty jQuery object
+ // will result in `undefined` for elem = this[ 0 ] which will
+ // throw an exception if an attempt to read a data cache is made.
+ if ( elem && value === undefined ) {
+ // Attempt to get data from the cache
+ // with the key as-is
+ data = data_user.get( elem, key );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to get data from the cache
+ // with the key camelized
+ data = data_user.get( elem, camelKey );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // Attempt to "discover" the data in
+ // HTML5 custom data-* attrs
+ data = dataAttr( elem, camelKey, undefined );
+ if ( data !== undefined ) {
+ return data;
+ }
+
+ // We tried really hard, but the data doesn't exist.
+ return;
+ }
+
+ // Set the data...
+ this.each(function() {
+ // First, attempt to store a copy or reference of any
+ // data that might've been store with a camelCased key.
+ var data = data_user.get( this, camelKey );
+
+ // For HTML5 data-* attribute interop, we have to
+ // store property names with dashes in a camelCase form.
+ // This might not apply to all properties...*
+ data_user.set( this, camelKey, value );
+
+ // *... In the case of properties that might _actually_
+ // have dashes, we need to also store a copy of that
+ // unchanged property.
+ if ( key.indexOf("-") !== -1 && data !== undefined ) {
+ data_user.set( this, key, value );
+ }
+ });
+ }, null, value, arguments.length > 1, null, true );
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ data_user.remove( this, key );
+ });
+ }
+});
+
+
+jQuery.extend({
+ queue: function( elem, type, data ) {
+ var queue;
+
+ if ( elem ) {
+ type = ( type || "fx" ) + "queue";
+ queue = data_priv.get( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( data ) {
+ if ( !queue || jQuery.isArray( data ) ) {
+ queue = data_priv.access( elem, type, jQuery.makeArray(data) );
+ } else {
+ queue.push( data );
+ }
+ }
+ return queue || [];
+ }
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ),
+ startLength = queue.length,
+ fn = queue.shift(),
+ hooks = jQuery._queueHooks( elem, type ),
+ next = function() {
+ jQuery.dequeue( elem, type );
+ };
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ startLength--;
+ }
+
+ if ( fn ) {
+
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift( "inprogress" );
+ }
+
+ // clear up the last queue stop function
+ delete hooks.stop;
+ fn.call( elem, next, hooks );
+ }
+
+ if ( !startLength && hooks ) {
+ hooks.empty.fire();
+ }
+ },
+
+ // not intended for public consumption - generates a queueHooks object, or returns the current one
+ _queueHooks: function( elem, type ) {
+ var key = type + "queueHooks";
+ return data_priv.get( elem, key ) || data_priv.access( elem, key, {
+ empty: jQuery.Callbacks("once memory").add(function() {
+ data_priv.remove( elem, [ type + "queue", key ] );
+ })
+ });
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ var setter = 2;
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ setter--;
+ }
+
+ if ( arguments.length < setter ) {
+ return jQuery.queue( this[0], type );
+ }
+
+ return data === undefined ?
+ this :
+ this.each(function() {
+ var queue = jQuery.queue( this, type, data );
+
+ // ensure a hooks for this queue
+ jQuery._queueHooks( this, type );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+ clearQueue: function( type ) {
+ return this.queue( type || "fx", [] );
+ },
+ // Get a promise resolved when queues of a certain type
+ // are emptied (fx is the type by default)
+ promise: function( type, obj ) {
+ var tmp,
+ count = 1,
+ defer = jQuery.Deferred(),
+ elements = this,
+ i = this.length,
+ resolve = function() {
+ if ( !( --count ) ) {
+ defer.resolveWith( elements, [ elements ] );
+ }
+ };
+
+ if ( typeof type !== "string" ) {
+ obj = type;
+ type = undefined;
+ }
+ type = type || "fx";
+
+ while ( i-- ) {
+ tmp = data_priv.get( elements[ i ], type + "queueHooks" );
+ if ( tmp && tmp.empty ) {
+ count++;
+ tmp.empty.add( resolve );
+ }
+ }
+ resolve();
+ return defer.promise( obj );
+ }
+});
+var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+ // isHidden might be called from jQuery#filter function;
+ // in that case, element will be second argument
+ elem = el || elem;
+ return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
+ };
+
+var rcheckableType = (/^(?:checkbox|radio)$/i);
+
+
+
+(function() {
+ var fragment = document.createDocumentFragment(),
+ div = fragment.appendChild( document.createElement( "div" ) );
+
+ // #11217 - WebKit loses check when the name is after the checked attribute
+ div.innerHTML = "";
+
+ // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
+ // old WebKit doesn't clone checked state correctly in fragments
+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+ // Make sure textarea (and checkbox) defaultValue is properly cloned
+ // Support: IE9-IE11+
+ div.innerHTML = "";
+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+})();
+var strundefined = typeof undefined;
+
+
+
+support.focusinBubbles = "onfocusin" in window;
+
+
+var
+ rkeyEvent = /^key/,
+ rmouseEvent = /^(?:mouse|contextmenu)|click/,
+ rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+ rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
+
+function returnTrue() {
+ return true;
+}
+
+function returnFalse() {
+ return false;
+}
+
+function safeActiveElement() {
+ try {
+ return document.activeElement;
+ } catch ( err ) { }
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+ global: {},
+
+ add: function( elem, types, handler, data, selector ) {
+
+ var handleObjIn, eventHandle, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = data_priv.get( elem );
+
+ // Don't attach events to noData or text/comment nodes (but allow plain objects)
+ if ( !elemData ) {
+ return;
+ }
+
+ // Caller can pass in an object of custom data in lieu of the handler
+ if ( handler.handler ) {
+ handleObjIn = handler;
+ handler = handleObjIn.handler;
+ selector = handleObjIn.selector;
+ }
+
+ // Make sure that the handler has a unique ID, used to find/remove it later
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // Init the element's event structure and main handler, if this is the first
+ if ( !(events = elemData.events) ) {
+ events = elemData.events = {};
+ }
+ if ( !(eventHandle = elemData.handle) ) {
+ eventHandle = elemData.handle = function( e ) {
+ // Discard the second event of a jQuery.event.trigger() and
+ // when an event is called after a page has unloaded
+ return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
+ jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+ };
+ }
+
+ // Handle multiple events separated by a space
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[t] ) || [];
+ type = origType = tmp[1];
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+ // There *must* be a type, no attaching namespace-only handlers
+ if ( !type ) {
+ continue;
+ }
+
+ // If event changes its type, use the special event handlers for the changed type
+ special = jQuery.event.special[ type ] || {};
+
+ // If selector defined, determine special event api type, otherwise given type
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+
+ // Update special based on newly reset type
+ special = jQuery.event.special[ type ] || {};
+
+ // handleObj is passed to all event handlers
+ handleObj = jQuery.extend({
+ type: type,
+ origType: origType,
+ data: data,
+ handler: handler,
+ guid: handler.guid,
+ selector: selector,
+ needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+ namespace: namespaces.join(".")
+ }, handleObjIn );
+
+ // Init the event handler queue if we're the first
+ if ( !(handlers = events[ type ]) ) {
+ handlers = events[ type ] = [];
+ handlers.delegateCount = 0;
+
+ // Only use addEventListener if the special events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, eventHandle, false );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ special.add.call( elem, handleObj );
+
+ if ( !handleObj.handler.guid ) {
+ handleObj.handler.guid = handler.guid;
+ }
+ }
+
+ // Add to the element's handler list, delegates in front
+ if ( selector ) {
+ handlers.splice( handlers.delegateCount++, 0, handleObj );
+ } else {
+ handlers.push( handleObj );
+ }
+
+ // Keep track of which events have ever been used, for event optimization
+ jQuery.event.global[ type ] = true;
+ }
+
+ },
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler, selector, mappedTypes ) {
+
+ var j, origCount, tmp,
+ events, t, handleObj,
+ special, handlers, type, namespaces, origType,
+ elemData = data_priv.hasData( elem ) && data_priv.get( elem );
+
+ if ( !elemData || !(events = elemData.events) ) {
+ return;
+ }
+
+ // Once for each type.namespace in types; type may be omitted
+ types = ( types || "" ).match( rnotwhite ) || [ "" ];
+ t = types.length;
+ while ( t-- ) {
+ tmp = rtypenamespace.exec( types[t] ) || [];
+ type = origType = tmp[1];
+ namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+ // Unbind all events (on this namespace, if provided) for the element
+ if ( !type ) {
+ for ( type in events ) {
+ jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+ }
+ continue;
+ }
+
+ special = jQuery.event.special[ type ] || {};
+ type = ( selector ? special.delegateType : special.bindType ) || type;
+ handlers = events[ type ] || [];
+ tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
+
+ // Remove matching events
+ origCount = j = handlers.length;
+ while ( j-- ) {
+ handleObj = handlers[ j ];
+
+ if ( ( mappedTypes || origType === handleObj.origType ) &&
+ ( !handler || handler.guid === handleObj.guid ) &&
+ ( !tmp || tmp.test( handleObj.namespace ) ) &&
+ ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+ handlers.splice( j, 1 );
+
+ if ( handleObj.selector ) {
+ handlers.delegateCount--;
+ }
+ if ( special.remove ) {
+ special.remove.call( elem, handleObj );
+ }
+ }
+ }
+
+ // Remove generic event handler if we removed something and no more handlers exist
+ // (avoids potential for endless recursion during removal of special event handlers)
+ if ( origCount && !handlers.length ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+ jQuery.removeEvent( elem, type, elemData.handle );
+ }
+
+ delete events[ type ];
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ if ( jQuery.isEmptyObject( events ) ) {
+ delete elemData.handle;
+ data_priv.remove( elem, "events" );
+ }
+ },
+
+ trigger: function( event, data, elem, onlyHandlers ) {
+
+ var i, cur, tmp, bubbleType, ontype, handle, special,
+ eventPath = [ elem || document ],
+ type = hasOwn.call( event, "type" ) ? event.type : event,
+ namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
+
+ cur = tmp = elem = elem || document;
+
+ // Don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // focus/blur morphs to focusin/out; ensure we're not firing them right now
+ if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+ return;
+ }
+
+ if ( type.indexOf(".") >= 0 ) {
+ // Namespaced trigger; create a regexp to match event type in handle()
+ namespaces = type.split(".");
+ type = namespaces.shift();
+ namespaces.sort();
+ }
+ ontype = type.indexOf(":") < 0 && "on" + type;
+
+ // Caller can pass in a jQuery.Event object, Object, or just an event type string
+ event = event[ jQuery.expando ] ?
+ event :
+ new jQuery.Event( type, typeof event === "object" && event );
+
+ // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+ event.isTrigger = onlyHandlers ? 2 : 3;
+ event.namespace = namespaces.join(".");
+ event.namespace_re = event.namespace ?
+ new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
+ null;
+
+ // Clean up the event in case it is being reused
+ event.result = undefined;
+ if ( !event.target ) {
+ event.target = elem;
+ }
+
+ // Clone any incoming data and prepend the event, creating the handler arg list
+ data = data == null ?
+ [ event ] :
+ jQuery.makeArray( data, [ event ] );
+
+ // Allow special events to draw outside the lines
+ special = jQuery.event.special[ type ] || {};
+ if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+ return;
+ }
+
+ // Determine event propagation path in advance, per W3C events spec (#9951)
+ // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+ if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+ bubbleType = special.delegateType || type;
+ if ( !rfocusMorph.test( bubbleType + type ) ) {
+ cur = cur.parentNode;
+ }
+ for ( ; cur; cur = cur.parentNode ) {
+ eventPath.push( cur );
+ tmp = cur;
+ }
+
+ // Only add window if we got to document (e.g., not plain obj or detached DOM)
+ if ( tmp === (elem.ownerDocument || document) ) {
+ eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+ }
+ }
+
+ // Fire handlers on the event path
+ i = 0;
+ while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
+
+ event.type = i > 1 ?
+ bubbleType :
+ special.bindType || type;
+
+ // jQuery handler
+ handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
+ if ( handle ) {
+ handle.apply( cur, data );
+ }
+
+ // Native handler
+ handle = ontype && cur[ ontype ];
+ if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
+ event.result = handle.apply( cur, data );
+ if ( event.result === false ) {
+ event.preventDefault();
+ }
+ }
+ }
+ event.type = type;
+
+ // If nobody prevented the default action, do it now
+ if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+ if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
+ jQuery.acceptData( elem ) ) {
+
+ // Call a native DOM method on the target with the same name name as the event.
+ // Don't do default actions on window, that's where global variables be (#6170)
+ if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ tmp = elem[ ontype ];
+
+ if ( tmp ) {
+ elem[ ontype ] = null;
+ }
+
+ // Prevent re-triggering of the same event, since we already bubbled it above
+ jQuery.event.triggered = type;
+ elem[ type ]();
+ jQuery.event.triggered = undefined;
+
+ if ( tmp ) {
+ elem[ ontype ] = tmp;
+ }
+ }
+ }
+ }
+
+ return event.result;
+ },
+
+ dispatch: function( event ) {
+
+ // Make a writable jQuery.Event from the native event object
+ event = jQuery.event.fix( event );
+
+ var i, j, ret, matched, handleObj,
+ handlerQueue = [],
+ args = slice.call( arguments ),
+ handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
+ special = jQuery.event.special[ event.type ] || {};
+
+ // Use the fix-ed jQuery.Event rather than the (read-only) native event
+ args[0] = event;
+ event.delegateTarget = this;
+
+ // Call the preDispatch hook for the mapped type, and let it bail if desired
+ if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+ return;
+ }
+
+ // Determine handlers
+ handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+ // Run delegates first; they may want to stop propagation beneath us
+ i = 0;
+ while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
+ event.currentTarget = matched.elem;
+
+ j = 0;
+ while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
+
+ // Triggered event must either 1) have no namespace, or
+ // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+ if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
+
+ event.handleObj = handleObj;
+ event.data = handleObj.data;
+
+ ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+ .apply( matched.elem, args );
+
+ if ( ret !== undefined ) {
+ if ( (event.result = ret) === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+ }
+ }
+ }
+
+ // Call the postDispatch hook for the mapped type
+ if ( special.postDispatch ) {
+ special.postDispatch.call( this, event );
+ }
+
+ return event.result;
+ },
+
+ handlers: function( event, handlers ) {
+ var i, matches, sel, handleObj,
+ handlerQueue = [],
+ delegateCount = handlers.delegateCount,
+ cur = event.target;
+
+ // Find delegate handlers
+ // Black-hole SVG
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
' + whoSaid + '
'; + if (comments !== null) { + result = result + '' + + '展開留言'; + } + result = result + '[' + searchText + '] ' + message +'
' + + '